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