Священные войны в интернете о системах типов по-прежнему страдают от распространенного мифа о том, что динамические системы типов по своей природе лучше подходят для моделирования предметных областей «открытого мира». Обычно аргумент звучит так: цель статической типизации состоит в том, чтобы как можно более точно зафиксировать все сущности, однако в реальном мире это просто неудобно. Реальные системы должны быть слабо связаны и должны как можно меньше быть завязаны на представление данных, поэтому динамическая типизация приводит к более устойчивой системе в целом.
Пользователь
Создание бизнес-процесса на языке BPEL с использованием платформы Serena Business Manager
3 мин
13KПройдясь поиском по Хабрахабру, удалось обнаружить не так уж и много информации, посвященной, надо сказать, не очень распространённому языку BPEL (Business Process Execution Language). Если говорить в общем, то BPEL – это язык, основанный на формате XML, который позволяет описывать логику бизнес-процессов через использование веб-служб.
Реализаций движков, позволяющих создавать процессы с использованием этого языка, мне известно не так уж и много. В частности, можно упомянуть Oracle BPEL Process Manager и продукт, о котором пойдет речь дальше – Serena Business Manager (SBM). SBM позволяет быстро создавать web-приложения, автоматизирующие какой-нибудь процесс. В модели процесса (workflow) предусмотрена возможность в момент изменения состояния вызвать внешнюю web службу. А если нужно реализовать какую-нибудь логику и одного вызова недостаточно? Вот тут и пригодится процедура, написанная на языке BPEL и исполняемая средствами той же платформы BPM.
Подробнее на самом языке я останавливаться не буду, в сети можно найти достаточно информации на эту тему, например, здесь. Я же опишу реализацию конкретной задачи.
Реализаций движков, позволяющих создавать процессы с использованием этого языка, мне известно не так уж и много. В частности, можно упомянуть Oracle BPEL Process Manager и продукт, о котором пойдет речь дальше – Serena Business Manager (SBM). SBM позволяет быстро создавать web-приложения, автоматизирующие какой-нибудь процесс. В модели процесса (workflow) предусмотрена возможность в момент изменения состояния вызвать внешнюю web службу. А если нужно реализовать какую-нибудь логику и одного вызова недостаточно? Вот тут и пригодится процедура, написанная на языке BPEL и исполняемая средствами той же платформы BPM.
Подробнее на самом языке я останавливаться не буду, в сети можно найти достаточно информации на эту тему, например, здесь. Я же опишу реализацию конкретной задачи.
+6
Языки описания интерфейсов
10 мин
17KНаткнулся на любопытный обзор языков описания интерфейсов на сайте www.raleigh.ru. Обзор, правда, не первой свежести, но все еще вполне актуальный.
+7
Веб-сервисы в теории и на практике для начинающих
9 мин
610KЧто такое веб-сервисы?
Прежде всего, веб-сервисы (или веб-службы) — это технология. И как и любая другая технология, они имеют довольно четко очерченную среду применения.
Если посмотреть на веб-сервисы в разрезе стека сетевых протококолов, мы увидим, что это, в классическом случае, не что иное, как еще одна надстройка поверх протокола HTTP.
С другой стороны, если гипотетически разделить Интернет на несколько слоев, мы сможем выделить, как минимум, два концептуальных типа приложений — вычислительные узлы, которые реализуют нетривиальные функции и прикладные веб-ресурсы. При этом вторые, зачастую заинтересованы в услугах первых.
Но и сам Интернет — разнороден, т. е. различные приложения на различных узлах сети функционируют на разных аппаратно-программных платформах, и используют различные технологии и языки.
Чтобы связать все это и предоставить возможность одним приложениям обмениваться данными с другими, и были придуманы веб-сервисы.
+60
Типизируя техническое интервью
9 мин
9.3KПредлагаю читателям "Хабрахабра" перевод статьи Kyle Kingsbury, a.k.a "Aphyr".
Ранее: Заклиная техническое интервью
В прежние времена, задолго до восхода Церкви, все заклятья произносились по чистому случаю, все действия были разрешены, а смерть была обыденностью. Многие ведьмы покалечились из-за своей магии, их находили изломанными в центре круга искривленных, застеклившихся деревьев и горящих камней, не гаснущих даже под водой; некоторые полностью исчезали, или начинали путешествовать по горным перевалам, никогда не касаясь ногами земли, никогда не согревая воздух своим дыханием.
+13
Почему люди не используют формальные методы?
20 мин
14KПеревод
На Software Engineering Stack Exchange я увидел такой вопрос: «Что мешает широкому внедрению формальных методов?» Вопрос был закрыт как предвзятый, а большинство ответов представляли собой комментарии типа «Слишком дорого!!!» или «Сайт — это не самолёт!!!» В каком-то смысле это верно, но мало что объясняет. Я написал эту статью, чтобы дать более широкую историческую картину формальных методов (FM), почему они на самом деле не используются и что мы делаем для исправления ситуации.
Прежде чем начать, нужно сформулировать некоторые условия. На самом деле существует не так много формальных методов: всего несколько крошечных групп. Это означает, что разные группы по-разному применяют термины. В широком смысле есть две группы формальных методов: формальная спецификация изучает запись точных, однозначных спецификаций, а формальная проверка — методы доказательства. Сюда входят и код, и абстрактные системы. Мало того, что мы используем разные термины для кода и систем, мы часто используем разные инструменты для их верификации. Чтобы ещё больше всё запутать, если кто-то говорит, что создаёт формальную спецификацию, обычно это означает и верификацию дизайна. А если кто-то говорит, что делает формальную верификацию, обычно это относится к верификации кода.
Прежде чем начать, нужно сформулировать некоторые условия. На самом деле существует не так много формальных методов: всего несколько крошечных групп. Это означает, что разные группы по-разному применяют термины. В широком смысле есть две группы формальных методов: формальная спецификация изучает запись точных, однозначных спецификаций, а формальная проверка — методы доказательства. Сюда входят и код, и абстрактные системы. Мало того, что мы используем разные термины для кода и систем, мы часто используем разные инструменты для их верификации. Чтобы ещё больше всё запутать, если кто-то говорит, что создаёт формальную спецификацию, обычно это означает и верификацию дизайна. А если кто-то говорит, что делает формальную верификацию, обычно это относится к верификации кода.
+35
Идея, взятая из физики, помогает ИИ работать в высших измерениях
11 мин
11KПеревод
Законы физики не меняются от смены точки зрения. Однако эта идея помогает компьютерам распознавать определённые особенности в искривлённом пространстве высших измерений.
Компьютеры учатся водить автомобили, обыгрывают чемпионов мира в настольные игры, и даже пишут прозу. По большей части революция ИИ зиждется на возможностях одного типа искусственной нейронной сети, схема работы которой вдохновлена связанными друг с другом слоями нейронов в зрительной коре мозга млекопитающих. Так называемые «свёрточные нейронные сети» (СНС) оказались удивительно хорошо приспособленными к поиску закономерностей в двумерных данных – особенно в таких задачах компьютерного зрения, как распознавание рукописных слов или объектов на цифровых изображениях.
Но в применении к наборам данных, не сводимых к геометрии на плоскости – к примеру, к моделям неправильных форм, используемых в трёхмерной компьютерной анимации, к облакам точек, генерируемых робомобилями для разметки окружающего их мира – эта эффективная архитектура машинного обучения (МО) уже не так хорошо работает. В 2016 году появилась новая дисциплина, геометрическое глубокое обучение (ГГО), целью которой стало вывести СНС за пределы плоскости.
+13
Марвин Мински «The Emotion Machine»: Глава 5 «Обдумывание»
10 мин
2.2KПеревод
Как привнести «человеческое» в технологии и как технологии помогают понять и улучшить и масштабировать «человеческое»?
В этом нам поможет суровый Марвин Мински, который своим беспощадным разумом анализирует чувства, эмоции, боль, влюбленность и сознание.
Когда Джоан выбирала что ей делать – перебегать дорогу вперёд или убежать назад, ей нужно было выбрать одно из следующих правил:
Если ты на проезжей части, То убеги с неё
Если ты на проезжей части, То быстро перебеги её
Однако, для того, чтобы Джоан приняла эти решения, ей необходим какой-то механизм, который бы предсказывал и сравнивал возможные варианты разрешения этой ситуации. Что помогает Джоан делать подобные предсказания? Простейший способ – иметь при себе коллекцию трёхсоставных правил «Если –> То –> В таком случае», в котором каждое Если описывает конкретную ситуацию, каждое То описывает конкретное действие, а каждое Затем описывает возможный результат проделанной работы.
Если ты находишься на проезжей части, То убеги назад, В таком случае попробуй перейти дорогу немного позже
Если ты находишься на проезжей части, То перейди её, В таком случае ты прибудешь гораздо раньше
Если ты находишься на проезжей части, То перейди, В таком случае ты можешь получить раны
В этом нам поможет суровый Марвин Мински, который своим беспощадным разумом анализирует чувства, эмоции, боль, влюбленность и сознание.
§5-3. Обдумывание
Когда Джоан выбирала что ей делать – перебегать дорогу вперёд или убежать назад, ей нужно было выбрать одно из следующих правил:
Если ты на проезжей части, То убеги с неё
Если ты на проезжей части, То быстро перебеги её
Однако, для того, чтобы Джоан приняла эти решения, ей необходим какой-то механизм, который бы предсказывал и сравнивал возможные варианты разрешения этой ситуации. Что помогает Джоан делать подобные предсказания? Простейший способ – иметь при себе коллекцию трёхсоставных правил «Если –> То –> В таком случае», в котором каждое Если описывает конкретную ситуацию, каждое То описывает конкретное действие, а каждое Затем описывает возможный результат проделанной работы.
Если ты находишься на проезжей части, То убеги назад, В таком случае попробуй перейти дорогу немного позже
Если ты находишься на проезжей части, То перейди её, В таком случае ты прибудешь гораздо раньше
Если ты находишься на проезжей части, То перейди, В таком случае ты можешь получить раны
+6
Ричард Хэмминг: «Необъяснимо высокая эффективность математики»
23 мин
49KПеревод
«Это самое глубокое эссе, которое я видел относительно философии науки; на самом деле, оно важно для всего нашего понимания мысли, познания или реальности.»
Из заголовка понятно, что это философский вопрос. Не буду извиняться за философию, хотя я знаю, что многие ученые, инженеры и математики не уделяют ей внимания. Вместо этого я дам этот небольшой пролог, чтобы обосновать свой подход.
Человек, насколько мы знаем, всегда задавался вопросом о себе, мире вокруг и смысле жизни. Во множестве мифов повествуется о том почему и как Бог или боги создали человека и вселенную. Это теологические объяснения. Их отличительная черта — нет смысла спрашивать почему вещи таковы, как они есть, если боги создали их такими.
Философия возникла тогда, когда человек задался вопросом о мире вне этих теологических рамок. Например, мир древние философы представляли как сочетание земли, огня, воды и воздуха. Без сомнения их убеждали в том, что мир создан богами и не нужно беспокоиться по этому поводу.
Из этих ранних попыток объяснить мир постепенно возникла философия, также как и современная наука. Не то чтобы наука объясняет «почему» вещи таковы, как они есть — гравитация не объясняет «почему» предметы падают, но наука дает нам столь детальное объяснение «каким образом» это происходит, что у нас появляется чувство, будто мы знаем «почему». Давайте проясним; море связанных между собой фактов позволяет науке сказать «почему» вселенная именно такая.
Пролог
Из заголовка понятно, что это философский вопрос. Не буду извиняться за философию, хотя я знаю, что многие ученые, инженеры и математики не уделяют ей внимания. Вместо этого я дам этот небольшой пролог, чтобы обосновать свой подход.
Человек, насколько мы знаем, всегда задавался вопросом о себе, мире вокруг и смысле жизни. Во множестве мифов повествуется о том почему и как Бог или боги создали человека и вселенную. Это теологические объяснения. Их отличительная черта — нет смысла спрашивать почему вещи таковы, как они есть, если боги создали их такими.
Философия возникла тогда, когда человек задался вопросом о мире вне этих теологических рамок. Например, мир древние философы представляли как сочетание земли, огня, воды и воздуха. Без сомнения их убеждали в том, что мир создан богами и не нужно беспокоиться по этому поводу.
Из этих ранних попыток объяснить мир постепенно возникла философия, также как и современная наука. Не то чтобы наука объясняет «почему» вещи таковы, как они есть — гравитация не объясняет «почему» предметы падают, но наука дает нам столь детальное объяснение «каким образом» это происходит, что у нас появляется чувство, будто мы знаем «почему». Давайте проясним; море связанных между собой фактов позволяет науке сказать «почему» вселенная именно такая.
+35
Алгоритм Беллмана-Форда
5 мин
73KПеревод
В преддверии старта курса «Алгоритмы для разработчиков» подготовили очередной перевод интересной статьи.
Задача: Дан граф и начальная вершина src в графе, необходимо найти кратчайшие пути от src до всех вершин в данном графе. В графе могут присутствовать ребра с отрицательными весами.
Мы уже обсуждали алгоритм Дейкстры в качестве способа решения этой задачи. Алгоритм Дейкстры является жадным алгоритмом, а его сложность равна O(VLogV) (с использованием кучи Фибоначчи). Однако Дейкстра не работает для графов с отрицательными весами ребер, тогда как Беллман-Форд — вполне. Алгоритм Беллмана-Форда даже проще, чем алгоритм Дейкстры, и хорошо подходит для распределенных систем. В то же время сложность его равна O(VE), что больше, чем показатель для алгоритма Дейкстры.
Рекомендация: Прежде, чем двигаться к просмотру решения, попробуйте попрактиковаться самостоятельно.
Задача: Дан граф и начальная вершина src в графе, необходимо найти кратчайшие пути от src до всех вершин в данном графе. В графе могут присутствовать ребра с отрицательными весами.
Мы уже обсуждали алгоритм Дейкстры в качестве способа решения этой задачи. Алгоритм Дейкстры является жадным алгоритмом, а его сложность равна O(VLogV) (с использованием кучи Фибоначчи). Однако Дейкстра не работает для графов с отрицательными весами ребер, тогда как Беллман-Форд — вполне. Алгоритм Беллмана-Форда даже проще, чем алгоритм Дейкстры, и хорошо подходит для распределенных систем. В то же время сложность его равна O(VE), что больше, чем показатель для алгоритма Дейкстры.
Рекомендация: Прежде, чем двигаться к просмотру решения, попробуйте попрактиковаться самостоятельно.
+10
Машинное обучение столкнулось с нерешенной математической проблемой
4 мин
27KПеревод
Салют, хабровчане! В преддверии запуска новых потоков по продвинутому и базовому курсам «Математика для Data Science» хотим поделиться с вами достаточно интересным переводом. В этой статье не будет практики, но материал интересен для общего развития и обсуждения.
Группа исследователей столкнулась с открытой математической проблемой, связанной с рядом логических парадоксов, которые были открыты знаменитым австрийским математиком Куртом Гёделем еще в 1930-х годах.
Математики, работавшие над проблемами машинного обучения, доказали, что возможность «обучаемости», то есть то, может ли алгоритм извлечь паттерн из ограниченных данных, тесно связана с парадоксом, известным как гипотеза континуума. Гедель говорил о том, что с помощью стандартных возможностей математического языка гипотезу нельзя ни подтвердить, ни опровергнуть. Последние результаты исследований на эту тему были опубликованы в Nature Machine Intelligence от 7 января.
Группа исследователей столкнулась с открытой математической проблемой, связанной с рядом логических парадоксов, которые были открыты знаменитым австрийским математиком Куртом Гёделем еще в 1930-х годах.
Математики, работавшие над проблемами машинного обучения, доказали, что возможность «обучаемости», то есть то, может ли алгоритм извлечь паттерн из ограниченных данных, тесно связана с парадоксом, известным как гипотеза континуума. Гедель говорил о том, что с помощью стандартных возможностей математического языка гипотезу нельзя ни подтвердить, ни опровергнуть. Последние результаты исследований на эту тему были опубликованы в Nature Machine Intelligence от 7 января.
+17
Как прошел 2019 год в области математики и Computer Science
6 мин
8.6KПеревод
Перевод статьи подготовлен специально для студентов базового и продвинутого курсов «Математика для Data Science».
Математики и информатики за прошедший год добились больших успехов в теории чисел, теории графов, машинном обучении и квантовых вычислениях, даже пересмотрели наши фундаментальные понятия математики и нейронных сетей.
Для математиков и специалистов по computer science 2019 год был годом повторений и пристального изучения. Одни пересматривали основополагающие принципы, в том время как другие находили поразительно простые доказательства, новые методы решения проблем или постигали неожиданные решения давних задач. Некоторые из этих достижений уже нашли широкое применение в физике и других научных дисциплинах. Другие же существуют исключительно в качестве теории (или просто для развлечения), и с практической точки зрения на сегодняшний день не несут никакой пользы.
Математики и информатики за прошедший год добились больших успехов в теории чисел, теории графов, машинном обучении и квантовых вычислениях, даже пересмотрели наши фундаментальные понятия математики и нейронных сетей.
Для математиков и специалистов по computer science 2019 год был годом повторений и пристального изучения. Одни пересматривали основополагающие принципы, в том время как другие находили поразительно простые доказательства, новые методы решения проблем или постигали неожиданные решения давних задач. Некоторые из этих достижений уже нашли широкое применение в физике и других научных дисциплинах. Другие же существуют исключительно в качестве теории (или просто для развлечения), и с практической точки зрения на сегодняшний день не несут никакой пользы.
+17
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность