08 Фев

Коронные фишки вредоносных программ

 

Развитие информационных технологий сказывается на разработке всего спектра программного обеспечения (ПО). Не обходит оно стороной и вредоносные программы. Можно выделить основные приемы, применяемые при разработке «передового» вредоносного программного обеспечения (ВПО).

08 Фев

Обзор ограничений, накладываемых на исключения, на примере наследования и реализации интерфейса

 

Как известно исключения в Java, при наследовании подчиняются требованию сужения спецификации, а не ее расширения, в отличие от обычных классов.
В книге Bruce Eckel «Thinking in Java, 4 ed.» приведено описание ограничений, накладываемых при использовании исключений. Пример кода описывает наследование от базового класса и одновременную реализацию интерфейса, причем у обоих имеются методы с одинаковой сингатурой, но разной спецификацией исключений. Попытки реализации методов интерфейса пересекаются с попытками одновременного переопределения методов базового класса, в результате которых делается упор на недопущение расширения спецификации исключений. Упрощенный пример кода, доносящий идею:

08 Фев

Алгоритм сортировочной станции — способ разбора математических выражений, представленных в инфиксной нотации. Может быть использован для получения вывода в виде обратной польской нотации или в виде абстрактного синтаксического дерева. Алгоритм изобретен Эдсгером Дейкстрой и назван им «алгоритм сортировочной станции», поскольку напоминает действие железнодорожной сортировочной станции.

08 Фев

От переводчика:
Немало копий сломано в спорах о том, когда уместнее KISS, а когда DRY, когда лучше как можно быстрее и проще решить задачу любыми средствами, а когда стоит создавать красивые и универсальные абстракции. Натан Марц, автор популярного фреймворка Storm, используемого в Твиттере, предлагает свой вариант. Чтобы не создавать тонны бесполезного кода ради абстрактной универсальности и в то же время не позволять системе превращаться в кашу из костылей, он использует «разработку через страдание» (suffering oriented programming). 

08 Фев

Изучаем Storm Framework. Часть III tutorial

 

Во второй части статьи рассказывалось о механизмах обнаружения ошибок в процессе обработки.

Обработка завершилась с ошибкой, что делать дальше? Вполне возможно, что потеряна связь с одним из узлов кластера или временно недоступна база данных. В этом случае, нельзя с уверенностью сказать, какие операции выполнились успешно, а какие — нет. Если все операции в цепочке повторно применимы (идемпотентны), например установка флага, то можно просто перезапустить обработку. Если нет, то на помощь приходят механизмы транзакций Storm.

08 Фев

Изучаем Storm Framework. Часть II tutorial

В первой части рассматривались базовые понятия Storm.

Разные классы задач предъявляют различные требования к надежности. Одно дело пропустить пару записей при подсчете статистики посещений, где счет идет на сотни тысяч и особая точность не нужна. И совсем другое — потерять, например, информацию о платеже клиента.

08 Фев

Twitter следит за тобой, анонимус

 

Часто приходиться слышать о том, что крупные корпорации вроде Google, Facebook или LG следят за каждым пуком несчастных пользователей. И исследовав некоторое из их software, я должен признать что таки да — они следят.

08 Фев

Изучаем Storm Framework. Часть I tutorial

 

В 2011 году Twitter открыл, под лицензией Eclipse Public License, проект распределенных вычислений Storm. Storm был создан в компании BackType и перешел к Twitter после покупки.

Storm это система ориентированная на распределенную обработку больших потоков данных, аналогичная Apache Hadoop, но в реальном времени.

08 Фев

 

Storm («Hadoop в реальном времени») теперь Open Source

 

Как и обещалось, Twitter выложил на github распределённую систему обработки данных в реальном времени Storm (от компании BackType). Теперь это проект open source.

В пояснительной записке автор проекта Натан Марц объясняет, что за последнее десятилетие такие технологии как MapReduce, Hadoop и проч. произвели настоящую революцию в области обработки больших объёмов данных. К сожалению, они никак не предназначены для работы realtime. Storm предалагет альтернативное решение. Фактически, Storm можно назвать «Hadoop в реальном времени», здесь реализована такая же схема с набором базовых примитивов. Это чрезвычайно надёжная и масштабируемая система с поддержкой любых языков программирования, устанавливается одной строчкой на Amazon EC2.

Вверх