Как стать автором
Обновить
8
0

Пользователь

Отправить сообщение

Строим DSL на C# при помощи парсер-комбинаторов

Время на прочтение9 мин
Количество просмотров13K

Перевод статьи Николаса Блумхардта, известного .NET разработчика, автора IoC/DI контейнера Autofac. В этой статье Николас показывает на реальном примере как с наименьшими усилиями написать парсер предметно-ориентированного языка программирования с помощью Sprache, библиотеки парсер-комбинаторов.


Наш текущий проект включает в себя небольшой процесс подачи и утверждения заявок на создание учетных записей пользователей. Это хороший пример для обсуждения предметно-ориентированных языков и Sprache. Сейчас я опишу некоторые требования.

Набор типов учетных записей пользователей является неограниченным; в настоящее время это «служащий», «подрядчик», «временный сотрудник» и так далее. Для получения учетной записи, пользователь должен заполнить соответствующую анкету.

При сборе и сохранении данных анкеты, её содержание не имеет значения, пока соответствующая информация не будет представлена администратору, который в конечном итоге утвердит или отклонит заявку.

Читать дальше →
Всего голосов 50: ↑44 и ↓6+38
Комментарии11

Кодим безумный пассивный сниффер в виде модуля для Python

Время на прочтение6 мин
Количество просмотров37K


Сразу скажу: то, чем мы с вами будем здесь заниматься, не претендует, скажем, на какую-то промышленную применимость. Более того, я признаю, что мой код в данном примере может быть ужасен, страшен и ненужен. И тем не менее — почему бы не поперехватывать пакеты посреди недели? Так, слегка.

Итак, сегодня мы вот что наколдуем:

1. Реализуем простейший пассивный перехватчик пакетов для TCP и UDP
2. Засунем его в C-библиотеку в виде расширения для Python
3. Приделаем ко всему этому интерфейс итератора, дабы байты сыпались, как из рога изобилия
4.…
5. PROFIT!
Берите стул, садитесь ближе к камину
Всего голосов 66: ↑60 и ↓6+54
Комментарии15

Нахождение максимальной общей подпоследовательности

Время на прочтение6 мин
Количество просмотров46K
В настоящей статье я хотел бы сделать обзор популярных алгоритмов для решения задачи нахождения максимальной общей подпоследовательности или LCS (longest common sequense). Так как акцент сделан на обучении, а не на реальном использовании, в качестве языка для реализации выбран Python, что позволит сократить количество кода и сконцентрироваться на основных идеях.
Читать дальше →
Всего голосов 68: ↑64 и ↓4+60
Комментарии20

Нейросети для чайников. Начало

Время на прочтение5 мин
Количество просмотров803K


Так получилось, что в университете тема нейросетей успешно прошла мимо моей специальности, несмотря на огромный интерес с моей стороны. Попытки самообразования несколько раз разбивались невежественным челом о несокрушимые стены цитадели науки в облике непонятных «с наскока» терминов и путанных объяснений сухим языком вузовских учебников.

В данной статье (цикле статей?) я попытаюсь осветить тему нейросетей с точки зрения человека непосвященного, простым языком, на простых примерах, раскладывая все по полочкам, а не «массив нейронов образует перцептрон, работающий по известной, зарекомендовавшей себя схеме».

Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 258: ↑226 и ↓32+194
Комментарии91

Зачем делать работу хорошо? Манифест Качества

Время на прочтение3 мин
Количество просмотров34K
Генеральный директор компании Nekki Дмитрий Терёхин поделился своими мыслями о том, почему одни люди делают работу хорошо, даже когда этого никто не видит, а другие поступают небрежно, независимо от вознаграждения.

image
Читать дальше →
Всего голосов 34: ↑30 и ↓4+26
Комментарии47

Среда статистических вычислений R: опыт использования в преподавании

Время на прочтение5 мин
Количество просмотров23K
Хочу рассказать об использовании свободной среды статистического анализа R. Рассматриваю ее как альтернативу статистических пакетов типа SPSS Statistics. К моему глубокому сожалению, она совершенно неизвестна на просторах нашей Родины, а зря. Полагаю, что возможность написания дополнительных процедур статистического анализа на языке S делает систему R полезным инструментом анализа данных.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии7

Я не знаю Си

Время на прочтение4 мин
Количество просмотров51K
Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.
Читать дальше →
Всего голосов 285: ↑268 и ↓17+251
Комментарии309

Анонс Visual Studio 11 beta

Время на прочтение4 мин
Количество просмотров14K

23 февраля состоялся анонс Visual Studio 11 beta и в часовом выступлении было рассказано об основных функциональных новинках будущего продукта. Сама Visual Studio 11 beta станет доступна для загрузки уже на следующей неделе, 29 февраля. Visual Studio 11 beta будет выпущена в «go live» лицензии и позволит разрабатывать приложения для будущей операционной системы Windows 8. Не даром на 29 февраля запланировано еще одно мероприятие – анонс Windows 8 Consumer Preview в рамках Mobile World Congress, который пройдет в Барселоне. Но возможность разрабатывать приложения для Windows 8 это ожидаемая функция, и в ней, пожалуй, нет ничего необычного для будущей версии продукта. Для тех, кому не терпится узнать о некоторых нововведениях связанных именно с инструментарием, добро пожаловать под кат.
Читать дальше →
Всего голосов 48: ↑38 и ↓10+28
Комментарии15

Как проверить приложение на соответствие архитектуре слоев

Время на прочтение3 мин
Количество просмотров7K
Любому разработчику известен архитектурный шаблон слоев. При всей его незамысловатости он позволяет эффективно прятать реализацию и абстрагировать компоненты разного уровня. Слои нижнего уровня могут изменяться без особого риска испортить работу приложения, облегчен рефакторинг. Единственное очевидное условие, которое вы должны соблюдать – это придерживаться принятой архитектуры. Но иногда бывает, что программист нет-нет да и соблазняется вызвать пару методов «через голову». Например из слоя интерфейса обратиться прямиком в слой базы данных. Не будем здесь искать злого умысла, может этот случай был связан со спешкой при выпуске срочного исправления для заказчика. Но постепенно количество таких небольших «грешков» может свести на нет принятую когда то стройную архитектуру и вы опять окажетесь со «спагетти кодом». Вылавливать такие случаи несоответствия кода архитектуре слоев на большой системе может быть очень затруднительно. К счастью в Visual Studio 2010 (редакций Premium и Ultimate) есть инструменты, которые могут значительно облегчить эту задачу.
Читать дальше →
Всего голосов 61: ↑53 и ↓8+45
Комментарии17

Точное вычисление геометрических предикатов

Время на прочтение7 мин
Количество просмотров10K
Доброго вам дня, коллеги. Предлагаю вам прочитать статью о базовом аспекте вычислительной геометрии — точном вычислении предикатов.

Возможно, многие из вас сталкивались со «странным» поведением реализаций алгоритмов вычгеома: падениями и некорректными результатами. В общем, ничего удивительного в этих странностях нет — это издержки переноса непрерывной геометрии в суровые дискретные реалии арифметики с плавающей точкой. Рискну предположить, что кто-то из вас, отлаживая свои алгоритмы, решал подобные проблемы, подбирая магические константы. Скорее всего, если этот способ и приводил к результату, то, вероятно, к временному.

В этой статье я расскажу, как избавиться от недостатков вычислений с плавающей точкой практически без ущерба для эффективности. План статьи:
  • геометрический предикат «поворот»;
  • противоречивость «наивной» реализации поворота;
  • применение интервальной арифметики для упрощения расчета предикатов;
  • длинная арифметика и несколько альтернативных способов вычислений предикатов;
  • расчет погрешности вычисления поворота в числах с плавающей точкой.

Итак, если вы хотите знать, почему вычислительная геометрия не является «наукой о подборе эпсилонов» и как можно корректно и эффективно реализовать геометрический алгоритм, жмите
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии14

Microsoft выпустила математическую библиотеку, оптимизированную для работы в Облаке: Cloud Numerics

Время на прочтение3 мин
Количество просмотров8.2K
На этой неделе Microsoft анонсировала выпуск нового продукта для Azure и платформы .Net — Microsoft Codename “Cloud Numerics” Lab. Это математическая библиотека способная параллельно обрабатывать большие объемы данных в облаке. Она также позволяет масштабировать вычислительные модели, реализованные на C# для Windows Azure.

Выпуск этой библиотеки явился плодом труда нескольких лет серьезной работы специалистов в области параллельных вычислений и вычислительной математики. Значительная часть этих работ была выполнена Российским подразделением Microsoft.

Эта библиотека предоставляет легкую в использовании модель программирования скрывающую сложность разработки распределенных алгоритмов, доступ к .NET библиотеке численных алгоритмов состоящих из широкого набора функций. От элементарных, до сложных статистических и функций линейной алгебры. Cloud Numerics также дает возможность запускать программы в Azure и получать доступ к неограниченным вычислительным мощностям в облаке.

Читать дальше →
Всего голосов 41: ↑33 и ↓8+25
Комментарии5
12 ...
25

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность