#  CNTK — нейросетевой инструментарий от Microsoft Research
habrabot (difrex,1) → All  –  23:00:02 2016-01-26


2015 год был очень богат на события, связанные с нейросетевыми технологиями и машинным обучением. Особенно заметный прогресс показали сверточные и рекуррентные сети, подходящие для решения задач в области компьютерного зрения и распознавания речи. Многие крупные компании опубликовали на Github свои разработки, Google выпустил в свет [TensorFlow][1], Baidu — [warp-ctc][2]. Группа ученых из Microsoft Research тоже решила присоединиться к этой инициативе, выпустив [Computational Network Toolkit][3], набор инструментов для проектирования и тренировки сетей различного типа, которые можно использовать для распознавания образов, понимания речи, анализа текстов и многого другого. **И****нтригующим при этом является то, ****что эта сеть победила в конкурсе **[**ImageNet** **LSVR**** 2015**][4]** и является самой быстрой среди существующих конкурентов.** ![][5] [Читать дальше →][6]

[1]: https://github.com/tensorflow/tensorflow
[2]: https://github.com/baidu-research/warp-ctc
[3]: https://github.com/Microsoft/CNTK.git
[4]: http://image-net.org/challenges/LSVRC/2015/results
[5]: https://habrastorage.org/getpro/habr/post_images/4d8/169/f88/4d8169f88549625769aa6dc507ebd528.png
[6]: https://habrahabr.ru/post/275959/#habracut
#  Python и красивые ножки — как бы я знакомил сына с математикой и программированием
habrabot (difrex,1) → All  –  22:30:02 2016-01-26


Раньше мы уже [искали][1] необычные модели Playboy с помощью библиотеки Python Scikit-learn. Теперь мы продемонстрируем некоторые возможности библиотек SymPy, SciPy, Matplotlib и Pandas на живом примере из разряда занимательных школьных задач по математике. Цель — облегчить порог вхождения при изучении Python библиотек для анализа данных.



[Читать дальше →][2]

[1]: https://habrahabr.ru/post/251225/
[2]: https://habrahabr.ru/post/275963/#habracut
#  iOS App Reverse Engineering — (уже бесплатная) книга от китайских мастеров
habrabot (difrex,1) → All  –  18:00:09 2016-01-26


Для нетерпеливых — сразу [ссылка на PDF][1], (но можно и [купить][2], поддержав автора). [Здесь — Table of contents][3] Автор адресует издание следующим категориям читателей:

* любопытствующие,
* ведущие разработчики с уже существующей хорошей командой, желающие лучше понимать iOS,
* архитекторы, которые хотят прокачать свой навык проектирования,
* реверсеры из других областей, интересующиеся также и iOS.



> The book iOS App Reverse Engineering, as a gift to the whole jailbreak community, is now open-sourced on github
>
> — iOSAppRE (@iOSAppRE)
>
> [12 сентября 2015][4]

>> Читать далее
#  Рекурсия. Тренировочные задачи
habrabot (difrex,1) → All  –  15:30:04 2016-01-26


Здравствуй Хабрахабр! В этой статье речь пойдет о задачах на рекурсию и о том как их решать. ![image][1]

### **Кратко о рекурсии**

Рекурсия достаточно распространённое явление, которое встречается не только в областях науки, но и в повседневной жизни. Например, эффект Дросте, треугольник Серпинского и т. д. Самый простой вариант увидеть рекурсию – это навести Web-камеру на экран монитора компьютера, естественно, предварительно её включив. Таким образом, камера будет записывать изображение экрана компьютера, и выводить его же на этот экран, получится что-то вроде замкнутого цикла. В итоге мы будем наблюдать нечто похожее на тоннель. В программировании рекурсия тесно связана с функциями, точнее именно благодаря функциям в программировании существует такое понятие как рекурсия или рекурсивная функция. Простыми словами, рекурсия – определение части функции (метода) через саму себя, то есть это функция, которая вызывает саму себя, непосредственно (в своём теле) или косвенно (через другую функцию). О рекурсии сказано много. Вот несколько хороших ресурсов: [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/53e/cfb/6df/53ecfb6dfd029da416f36d03f2d01aec.jpg
[2]: https://habrahabr.ru/post/275813/#habracut
#  [Из песочницы] Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1
habrabot (difrex,1) → All  –  15:30:03 2016-01-26


![][1] Нечеткий поиск строк является весьма дорогостоящей в смысле вычислительных ресурсов задачей, особенно если вам необходима высокая точность получаемых результатов. В статье описан алгоритм нечеткого поиска в словаре, который обеспечивает высокую скорость поиска при сохранении 100% точности и сравнительно низком потреблении памяти. Именно автомат Левенштейна позволил разработчикам Lucene повысить скорость нечеткого поиска [на два порядка][2] [Читать дальше →][3]

[1]: https://habrastorage.org/files/543/5b4/0f0/5435b40f0ed04ef2971984189149ce95.png
[2]: http://blog.mikemccandless.com/2011/03/lucenes-fuzzyquery-is-100-times-faster.html
[3]: https://habrahabr.ru/post/275937/#habracut
#  Амнезия FreeBSD
habrabot (difrex,1) → All  –  15:30:03 2016-01-26


Я никогда не понимал как работает распределение памяти во FreeBSD. Из всего многообразия документации полезное помнилось, лишь

> An urban myth has circulated for years that Linux did a better job avoiding swapouts than FreeBSD, but this in fact is not true. What was actually occurring was that FreeBSD was proactively paging out unused pages in order to make room for more disk cache while Linux was keeping unused pages in core and leaving less memory available for cache and process pages.

Ну лучше чем Linux, да и пусть. Я не против. Но хуже самого непонимая процесса выделения памяти меня убивала _Inactive_ память. Что это такое и можно ли «это» безболезненно использовать? Считать ли эту память доступной для использования приложением? Под cut'ом больше вопросов чем ответов. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/275917/#habracut
#  iOS App Reverse Engineering — (уже) бесплатная книга от китайских мастеров
habrabot (difrex,1) → All  –  15:30:03 2016-01-26


Для нетерпеливых — сразу [ссылка на PDF][1], (но можно и [купить][2], поддержав автора). [Здесь — Table of contents][3] Автор адресует издание следующим категориям читателей:

* любопытствующие,
* ведущие разработчики с уже существующей хорошей командой, желающие лучше понимать iOS,
* архитекторы, которые хотят прокачать свой навык проектирования,
* реверсеры из других областей, интересующиеся также и iOS.



> The book iOS App Reverse Engineering, as a gift to the whole jailbreak community, is now open-sourced on github
>
> — iOSAppRE (@iOSAppRE)
>
> [12 сентября 2015][4]

>> Читать далее
#  [Из песочницы] «Hello World!» на C массивом int main[]
habrabot (difrex,1) → All  –  14:30:22 2016-01-26


Я хотел бы рассказать о том, как я писал реализацию «Hello, World!» на C. Для подогрева сразу покажу код. Кого интересует как до этого доходил я, добро пожаловать под кат.

#include <stdio.h>
const void *ptrprintf = printf;
#pragma section(".exre", execute, read)
__declspec(allocate(".exre")) int main[] =
{
0x646C6890, 0x20680021, 0x68726F57,
0x2C6F6C6C, 0x48000068, 0x24448D65,
0x15FF5002, &ptrprintf, 0xC314C483
};

[Реализация][1]


>> Читать далее
#  А вы задумывались о безопасности… автомобиля?
habrabot (difrex,1) → All  –  12:00:06 2016-01-26


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




[Читать дальше →][1]

[1]: https://habrahabr.ru/post/275505/#habracut
#  Книга «Создание микросервисов»
habrabot (difrex,1) → All  –  12:00:06 2016-01-26


Привет, Хаброжители! У нас вышла новая книга Сэма Ньюмена. [![image][1]][2] Книга посвящена программированию микросервисов — небольших автономных компонентов, позволяющих добиться модульности и отказоустойчивости любой программы. Теория микро-сервисов тесно связана с философией Unix, способствует улучшению архитектуры любых приложений, дает возможность избегать громоздкого и запутанного кода. Эта книга поможет читателю заново взглянуть на многие, казалось бы, трудноразрешимые проблемы, масшта-бировать любые проекты, ювелирно разрабатывать даже самые сложные системы. Эта книга полна конкретных примеров использования микросервисов, собранных по всему миру, включая их применение в таких организациях, как Netflix, Amazon, Gilt и REA group, пришедших к мысли, что возросшая автономность этой архитектуры дает их командам огромные преимущества. [Читать дальше →][3]

[1]: https://habrastorage.org/files/cf7/43f/9ad/cf743f9adaa14e22944b419156fb2423.jpg
[2]: https://habrahabr.ru/company/piter/blog/275891/
[3]: https://habrahabr.ru/post/275891/#habracut
#  Какие страны и языки программирования чаще побеждают в игре для программистов CodeBattle?
habrabot (difrex,1) → All  –  11:30:04 2016-01-26


Привет, Хабр! В прошлом году мы [запустили][1] игру для программистов [CodeBattle][2]. Напомню, идея игры очень простая: вам и сопернику дается задача, вы решаете её на выбранном вами языке. Вы видите код соперника в реальном времени, результаты запуска тестов и можете общаться с ним и зрителями в чате. Кто первый решит задачу (удовлетворит тестам) — тот победил. С тех пор были сыграны тысячи игр, и мы собрали интересную статистику. По состоянию на 31 декабря 2015 года, какие страны и какие языки программирования чаще побеждали? Иными словами, мы наконец можем ответить на вопрос «какой язык круче?» :) Шучу-шучу, давайте не холиварить. Вот статистика за три последних месяца прошлого года: [![][3]][4] [Читать дальше →][5]

[1]: https://habrahabr.ru/company/hexlet/blog/269613/
[2]: https://battle.hexlet.io/?utm_source=habr&utm_medium=blog&utm_campaign=battle_stats
[3]: https://habrastorage.org/files/3d4/ccd/353/3d4ccd353e7c420ea588ad355d6948db.png
[4]: https://habrastorage.org/files/3d4/ccd/353/3d4ccd353e7c420ea588ad355d6948db.png
[5]: https://habrahabr.ru/post/275867/#habracut
#  [Из песочницы] Пирожки в дистрибутивной семантике
habrabot (difrex,1) → All  –  11:30:04 2016-01-26


Уже несколько месяцев с любопытством гляжу в сторону [дистрибутивной семантики][1] — познакомился с теорией, узнал про [word2vec][2], нашёл соответствующую библиотеку для Питона (gensim) и даже раздобыл [модель][3] лексических векторов, сформированную по национальному корпусу русского языка. Однако для творческого погружения в материал не хватало душезабирающих данных, которые было бы интересно через дистрибутивную семантику покрутить. Одновременно с этим увлечённо почитывал [стишки-пирожки][4] (эдакий синтез задиристых частушек и глубокомысленных хокку) — некоторые даже заучивал наизусть и по случаю угощал знакомых. И вот, наконец, увлечённость и любопытство нашли друг друга, породив воодушевляющую идею в ассоциативных глубинах сознания — отчего бы не совместить приятное с полезным и не собрать из подручных средств какой-нибудь «поэтичный» поисковик по базе пирожков.

> из ложных умозаключений
>
>
>
> мы можем истину сложить
>
>
>
> примерно как перемножают
>
>
>

>> Читать далее
#  [Перевод] Реализация Swift словаря
habrabot (difrex,1) → All  –  11:00:03 2016-01-26


![image][1] _Swift словарь представляет собой контейнер, который хранит несколько значений одного и того же типа. Каждое значение связано с уникальным ключом, который выступает в качестве идентификатора этого значения внутри словаря. В отличие от элементов в массиве, элементы в словаре не имеют определенного порядка. Используйте словарь, когда вам нужно искать значения на основе их идентификатора, так же как в реальном мире словарь используется для поиска определения конкретного слова. (прим.)_ **Swift словарь:**

* Swift словарь состоит из двух общих типов: ключей (должны относиться к категории Hashable) и значений;
* Можно создавать записи посредством введения ключа и его значения;
* Значение может задаваться через ссылку на введенный ранее ключ;
* Можно удалить запись, указав соответствующий ключ;
* Каждый ключ связан с одним единственным значением.

Существует несколько способов хранения данных записей (ключей, значений), один из которых предполагает открытую адресацию посредством линейного пробирования, необходимого для запуска Swift-словаря. Рассмотрим пример словаря, рассчитанного на 8 элементов: в нем предусмотрено максимум 7 записей (ключей, значений) и, как минимум, одно пустое место (так называемый пробел) в буфере словаря, благодаря которому происходит своеобразная блокировка поиска по выборкам/вставкам (retrivals/insertions). [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/34b/d41/8fd/34bd418fda252189e7daabd1b5aa3113.png
[2]: https://habrahabr.ru/post/275911/#habracut
#  [Из песочницы] Первые шаги в Xenko
habrabot (difrex,1) → All  –  08:30:05 2016-01-26


Тот, кто интересуется миром игровых движков, знает, что с первого декабря 2015 года бывший Paradox3D сменил название на Xenko, но так как на Хабре нет туториалов ни по первому, ни по второму — я решил сделать небольшую статью для тех, кто хочет попробовать что-то новое (или не очень) и рассказать об особенностях Xenko. Если вас это заинтересовало — добро пожаловать под кат! ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/a6f/6cb/1ee/a6f6cb1ee2cc4cdeb5c37b2c2e9f95bf.png
[2]: https://habrahabr.ru/post/275859/#habracut
#  Microsoft выложила на Github инструментарий CNTK для глубинного обучения
habrabot (difrex,1) → All  –  08:30:05 2016-01-26


![][1] Microsoft выложила в открытый доступ исходный код инструментов, которые используются в компании для ускорения разработок в области искусственного интеллекта: набор Computational Network Toolkit опубликован [на Github][2]. [Читать дальше →][3]

[1]: https://habrastorage.org/files/9eb/b5e/084/9ebb5e084b3f4a418ea6ae24efbc7b15.jpg
[2]: https://github.com/Microsoft/CNTK
[3]: https://habrahabr.ru/post/275887/#habracut
#  Наконец-то: https://habrahabr.ru
habrabot (difrex,1) → All  –  08:00:05 2016-01-26


UPD: Первая же ветка комментариев показала, что даже на Хабре пока не все серьезно относятся к вопросу; добавил в хаб ИБ — ещё одно напоминание не будет лишним. [][1]

[1]: https://habrahabr.ru/post/275743/#habracut
#  Что не так с безопасностью в Интернете Вещей: Как Shodan стал «поисковиком спящих детей»
habrabot (difrex,1) → All  –  15:00:03 2016-01-25


[![][1]][2] Знаменитый поисковый сервис Shodan не так давно запустил раздел, позволяющий пользователям [просматривать][3] изображения с уязвимых подключенных к интернету веб-камер. За короткое время работы в кадр уже попали плантации конопли, задние дворы банков, детские спальни, кухни, гостиные, бассейны, школы и колледжи, лаборатории, магазины. Shodan ищет подключенные к сети устройства с открытыми портами. Если подключиться к порту можно без пароля и он транслирует видео, то робот делает скриншот и двигается дальше. Помимо вопросов о правомерности подобных действий со стороны администрации Shodan, новый раздел проекта подчеркивает сегодняшний уровень безопасности Интернета Вещей. [Читать дальше →][4]

[1]: https://habrastorage.org/files/8c9/9ce/e29/8c99cee2969f484a99e3124c04daac5c.jpg
[2]: https://habrahabr.ru/company/pt/blog/275853/
[3]: http://images.shodan.io/
[4]: https://habrahabr.ru/post/275853/#habracut
#  Техники машинного обучения для прогнозирования цен акций: функции индикаторов и анализ новостей
habrabot (difrex,1) → All  –  14:00:04 2016-01-25


[![][1]][2] В нашем блоге мы уже затрагивали тему предсказания цен акций с помощью [алгоритма адаптивной фильтрации][3]. Финансист из Нью-Йорка Ватсал Шах (Vatsal Shah) в своей [работе][4] рассмотрел возможность использования для этих целей алгоритмов машинного обучения. Мы представляем вашему вниманию главные мысли этого документа. [Читать дальше →][5]

[1]: https://habrastorage.org/files/d08/298/d8c/d08298d8c6ff4c6ab1ff4ae74ec06d7b.png
[2]: https://habrahabr.ru/company/itinvest/blog/275825/
[3]: https://habrahabr.ru/company/itinvest/blog/274821/
[4]: http://www.vatsals.com/Essays/MachineLearningTechniquesforStockPrediction.pdf
[5]: https://habrahabr.ru/post/275825/#habracut
#  Шифровальная машина NEMA
habrabot (difrex,1) → All  –  14:00:04 2016-01-25


Во время Второй мировой войны швейцарская армия использовала усовершенствованную версию коммерческой Enigma K, которую иногда называют Swiss К. Когда швейцарцы обнаружили, что их секретные сообщения расшифровываются как Союзниками так и немцами, они решили разработать собственную шифровальную машину NEMA. NEMA (сокращенно от «Neue Maschine») — электромеханическая шифровальная машина, разработанная компанией Zellweger AG (г. Устер, Швейцария) во время Второй мировой войны и пришедшая на смену знаменитой немецкой Энигме. Машина также известна под названием T-D и как NEMA Modell 45. На первый взгляд у машины насчитывалось 10 роторов, но только 5 из них соединялись электрическим контуром. Также 4 из 5 были кодирующими роторами с 26 контактами с каждой стороны. А пятый диск — рефлекторный, который во время шифровки мог перемещаться (в отличие от Энигмы, где рефлектор был фиксирован). NEMA состояла из клавиатуры на 26 букв (A-Z) для ввода открытых сообщений, а также из 26 лампочек, подсвечивающих нужные буквы шифрованного текста. Но по сравнению с Энигмой, у NEMA были дополнительные переключатели между буквами и числами. Они использовались для соединения с электронным печатающим устройством. В NEMA присутствовали конструктивные улучшения, такие как нерегулярные пошаговые вращения шифрующих роторов (за счет добавления дополнительных колес). Взломать шифр было особенно сложно. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/791/0e3/3f6/7910e33f64564bca93094ba7166c2478.jpg
[2]: https://habrahabr.ru/post/275529/#habracut
#  [Из песочницы] Недокументированные возможности оптического терминала ZTE ZXHN F660 от МГТС
habrabot (difrex,1) → All  –  14:00:04 2016-01-25


По результатам собственных изысканий родилась идея набросать небольшой Q&A по работе с некоторыми недокументированными функциями оптического терминала ZTE ZXHN F660, устанавливаемого сейчас в квартиры фирмой МГТС. ![][1] Статья расcчитана на начинающих, которые, тем не менее, уже ознакомились с Web-интерфейсом управления терминалом и знают, как делать в нем базовые вещи: смена пароля, активация SAMBA, проброс портов, настройка WLAN, настройка фильтрации, и т.д. В ней мы не будем рассматривать смену прошивки или «отвязку» от провайдера – все вещи, связанные с удаленным обновлением, настройкой VOIP, и т.д. трогать крайне не рекомендую. Оставьте провайдеру возможность выполнять свою работу и обслуживать свое устройство (оно его, а не ваше, если помните договор). [Читать дальше →][2]

[1]: https://habrastorage.org/files/26d/420/226/26d4202266f54ef4bb1349d43a2a8bad.jpg
[2]: https://habrahabr.ru/post/275819/#habracut
#  Что не так с безопасностью в интернете вещей: Как Shodan стал «поисковиком спящих детей»
habrabot (difrex,1) → All  –  14:00:04 2016-01-25


[![][1]][2] Знаменитый поисковый сервис Shodan не так давно запустил раздел, позволяющий пользователям [просматривать][3] изображения с уязвимых подключенных к интернету веб-камер. За короткое время работы в кадр уже попали плантации конопли, задние дворы банков, детские спальни, кухни, гостиные, бассейны, школы и колледжи, лаборатории, магазины. Shodan ищет подключенные к сети устройства с открытыми портами. Если подключиться к порту можно без пароля и он транслирует видео, то робот делает скриншот и двигается дальше. Помимо вопросов о правомерности подобных действий со стороны администрации Shodan, новый раздел проекта подчеркивает сегодняшний уровень безопасности интернета вещей. [Читать дальше →][4]

[1]: https://habrastorage.org/files/8c9/9ce/e29/8c99cee2969f484a99e3124c04daac5c.jpg
[2]: https://habrahabr.ru/company/pt/blog/275853/
[3]: http://images.shodan.io/
[4]: https://habrahabr.ru/post/275853/#habracut
#  Правительство Великобритании продвигает криптопротокол для VoIP с бэкдором
habrabot (difrex,1) → All  –  14:00:04 2016-01-25


Британское правительство совместно с экспертами спецслужбы GCHQ предлагают принять новый стандарт для криптографически защищённых голосовых коммуникаций — протокол под названием MIKEY-SAKKE. Этот протокол якобы должен повысить безопасность VoIP и телефонной связи за счёт шифрования трафика. Но эксперты [обращают внимание][1] на специфические особенности протокола, которые делают его уязвимым по своей архитектуре. ![][2] MIKEY-SAKKE — система шифрования на основе личных данных (ID-based system), которая обязательно требует наличия доверенного центра распространения ключей. Поэтому здесь по существу встроено депонирование ключей и отсутствует совершенная прямая секретность. «Единственным разумным объяснением для проектирования протокола с такими свойствами является прослушка третьей стороной», — [говорит][3] Брюс Шнайер. [Читать дальше →][4]

[1]: https://www.benthamsgaze.org/2016/01/19/insecure-by-design-protocols-for-encrypted-phone-calls/
[2]: https://habrastorage.org/files/142/eec/227/142eec2270134d9cbaa00ca75244d9cd.png
[3]: https://www.schneier.com/blog/archives/2016/01/uk_government_p.html
[4]: https://habrahabr.ru/post/275835/#habracut
#  [Из песочницы] Как я писал политику безопасности
habrabot (difrex,1) → All  –  14:00:04 2016-01-25


Так получилось, что за последние несколько лет мне довелось несколько раз написать «с нуля» и внедрить в разных компаниях политику информационной безопасности, а также понаблюдать, как это делают коллеги по цеху. В предлагаемой заметке делается попытка обобщить полученный опыт и упомянуть про грабли, оставившие наиболее заметный след на лбу автора. Сразу оговоримся, что далее речь пойдет не о рекомендациях по защите от вирусов или выбору стойкого пароля, а в основном о логике, структуре и назначении подобных документов. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/ac5/d4c/720/ac5d4c7202974367b6b0f21d62a6742c.jpg
[2]: https://habrahabr.ru/post/275811/#habracut
#  Немного о static
habrabot (difrex,1) → All  –  14:00:04 2016-01-25




#### **Чуть-чуть о статье**

Теперь попробуем создать что-то вроде «глобальной переменной» с помощью ключевого слова **static**.

> _«Они похожи на постоянные, но статические значения не встраиваются в место их использования. Это значит, что каждое значение существует в единственном экземпляре, и у него есть определённый адрес». _

[Читать дальше →][1]

[1]: https://habrahabr.ru/post/275791/#habracut
#  [Перевод] Представляем бесплатную лабораторию программирования Wolfram Programming Lab для изучения языка Wolfram Language
habrabot (difrex,1) → All  –  14:00:03 2016-01-25


[][1]



_Перевод поста Stephen Wolfram "[Announcing Wolfram Programming Lab][2]". Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][3] за помощь в переводе и подготовке публикации_

----

Я рад объявить о запуске **[Лаборатории программирования Wolfram][4]** — среды для всех, кто хочет обучиться программированию и вычислительному мышлению вместе с [Wolfram Language][5]. **Wolfram Programming Lab** можно запускать как в браузере, так и на настольных системах (Mac, Windows, Linux). Я давно хотел найти способ, позволяющий кому бы то ни было, будь то детям или взрослым, познакомиться с Wolfram Language и всеми его возможностями, даже при полном отсутствии знаний и опыта в сфере программирования. Теперь он у нас есть! Стартовый экран (_см. рис. в самом верху поста_) предоставляет возможность пойти по одному из четырех путей. Во-первых, есть небольшое видео. Далее следует раздел «Попробуйте сами», содержащий несколько весьма простых, но интересных вычислений. [![][6]][7] [Читать дальше →][8]

[1]: http://www.wolfram.com/programming-lab/
[2]: http://blog.wolfram.com/2016/01/19/announcing-wolfram-programming-lab/
[3]: https://habrahabr.ru/users/kirillguzenko/
[4]: http://www.wolfram.com/programming-lab/

>> Читать далее
#  Немного о константах
habrabot (difrex,1) → All  –  09:30:09 2016-01-25




#### **Ключевое слово const**



##### **О статье**

Здесь будет рассмотрено использование ключевого слова **const.** С помощью этого слова создаётся константа. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/275763/#habracut
#  [Перевод] Примечания к статье «Как писать на С в 2016 году»
habrabot (difrex,1) → All  –  09:30:09 2016-01-25


![][1] _На самом деле так выглядел бы Ассемблер, если бы он был оружием, но с C тоже надо быть предельно аккуратным_ _От переводчика: Данная публикация является переводом статьи-ответа на текст [«How to C in 2016»][2]. Перевод последнего [был опубликован мной][3] в пятницу и вызвал, местами, неоднозначную реакцию сообщества. Наводку на данный «ответ», для поддержания обсуждения вопроса уже в рамках Хабра, дал пользователь [CodeRush][4], за что ему отдельное спасибо._ Ранее в сети была опубликована статья [«Программирование на С в 2016 году»][5] с множеством полезных советов, среди которых, увы, были и не очень удачные идеи. Именно поэтому я решил прокомментировать соответствующие моменты. Пока я готовил новый материал, кто-то заметил, что за работу на C должны браться только ответственные программисты, в то время как безответственным хватит и других языков, в рамках которых имеется больше возможностей для совершенствования имеющихся навыков. Давайте разбираться в секретах специалистов своего дела. [Читать дальше →][6]

[1]: https://habrastorage.org/files/dfb/b54/b1b/dfbb54b1b7c9423b8e3c418463c7e4a1.png
[2]: https://matt.sh/howto-c
[3]: https://habrahabr.ru/company/inoventica/blog/275685/
[4]: https://habrahabr.ru/users/coderush/
[5]: https://habrahabr.ru/company/inoventica/blog/275685/
[6]: https://habrahabr.ru/post/275823/#habracut
#  [Перевод] Домашние животные vs крупный рогатый скот
habrabot (difrex,1) → All  –  08:00:05 2016-01-25


![][1]В ряде статей на Хабре [упоминалось][2] разделение серверов на «pets» и «cattle». Эта терминология пошла с одной небезинтересной статьи за авторством Noah Slater — open source активиста и соавтора CouchDB. Я не смог скрафтить хороший перевод английского «cattle», «животные, выращиваемые в промышленном животноводстве», поэтому под катом вас ждет перевод с котом. Очень крупным. [почитать про животноводство, деплой и облака][3]

[1]: https://habrastorage.org/files/54b/cea/778/54bcea7786d141d08e5d64ffeadcc0a0.png
[2]: https://habrahabr.ru/company/mirantis_openstack/blog/223795/
[3]: https://habrahabr.ru/post/275771/#habracut
#  [Перевод] Rust и парадокс Блаба
habrabot (difrex,1) → All  –  08:00:05 2016-01-25


Несколько недель назад я наткнулся на [сравнительный анализ Rust, D и Go][1] от Андрея Александреску. Андрей, [уважаемый член сообщества C++][2] и главный разработчик [языка программирования D][3], нанес Rust сокрушительный удар под конец своего повествования, высказав нечто, что выглядит довольно проницательным наблюдением: _Чтение кода на Rust навевает шутки о том, как «друзья не позволяют друзьям пропускать день ног» и вызывает в голове комические образы мужчин с халкообразным торсом, балансирующим на тощих ногах. Rust ставит во главу угла безопасность и ювелирное обращение с памятью. В действительности, это довольно редко является настоящий проблемой, и такой подход превращает процесс мышления и написания кода в монотонный и скучный процесс._ После нескольких встреч с Андреем, увидев некоторые из его выступлений, я убедился, что он _любит подшучивать_. Тем не менее, давайте проглотим наживку. Эта шутка смешная только потому, что она выглядит смешной, или может быть потому, что в ней только доля шутки? [Читать дальше →][4]

[1]: https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why
[2]: http://www.amazon.com/Modern-Design-Generic-Programming-Patterns/dp/0201704315
[3]: http://dlang.org/
[4]: https://habrahabr.ru/post/275801/#habracut
#  Centos 7.x USB Install Media (Добавляем Centos в Multiboot)
habrabot (difrex,1) → All  –  07:30:08 2016-01-25


Как бывало здорово, берешь образ CentOS 6.x, выдергиваешь из него куски, и пихаешь все это на USB флешку, по соседству с другими системами. Но, начиная с Centos 7, сделать это стало немного сложнее, и единственным официальным способом стала запись образа на прямую на носитель (с потерей всего что на нем уже есть). Но, применив немножко смекалки, все решается, прошу под кат: [Читать дальше →][1]

[1]: https://habrahabr.ru/post/275751/#habracut
#  Использование SikuliX в фоновом режиме на Cloud9
habrabot (difrex,1) → All  –  23:30:02 2016-01-24


SikuliX (старое название Sikuli) — это инструмент, который позволяет автоматизировать то, что вы видите на экране с помощью визуального распознавания (картинок). На хабре уже есть достаточно информации по [нему][1], но все примеры подразумевают использование реального экрана. Здесь же я опишу свой опыт использования SikuliX в фоновом режиме на облачной IDE [Cloud9][2]. В процессе работы с данным инструментом набил немного шишек, поэтому возможно, мой опыт будет кому-то полезен. Вариантов использования SikuliX достаточно много, вот некоторые из действий, которые вы можете автоматизировать:

* Работа с флеш сайтами (и любими другими)
* Автоматизация браузерных игр (собирать урожай на ферме)
* Работа с десктопными приложениями
* Настройка компьютера
* Разнообразные боты
* Всякого рода рутинная работа с сайтами/документами

[Читать дальше →][3]

[1]: http://habrahabr.ru/search/?q=Sikuli
[2]: https://c9.io
[3]: https://habrahabr.ru/post/275717/#habracut
#  Наконец-то https://habrahabr.ru
habrabot (difrex,1) → All  –  14:00:02 2016-01-23


![][1] UPD: первая же ветка комментариев показала, что даже на хабре пока не все серьезно относятся к вопросу; добавил в хаб ИБ — ещё одно напоминание не будет лишним. [][2]

[1]: https://habrastorage.org/files/6a5/316/49b/6a531649b5a74dc0817cce57a32adf5b.png
[2]: https://habrahabr.ru/post/275743/#habracut
#  Кроссплатформенный Open Source Time Tracker
habrabot (difrex,1) → All  –  12:30:02 2016-01-23


![][1] В этой статье я хочу рассказать о том, зачем мне понадобился тайм-трекер, как я его искал, почему не нашел и что из этого всего в итоге получилось. [Читать дальше →][2]

[1]: https://habrastorage.org/files/95f/6e4/8eb/95f6e48ebf5e42419fc5bf78b0031572.png
[2]: https://habrahabr.ru/post/275447/#habracut
#  Метод Санделиуса для получения случайных перестановок
habrabot (difrex,1) → All  –  09:00:03 2016-01-23


Статьи о получении (псевдо)случайных чисел, о проверке качества полученных последовательностей неизменно вызывают интерес у населения Хабра. Однако в приложениях наряду с последовательностями случайных и псевдослучайных чисел требуется получать [перестановки][1] чисел, имеющие [равномерное распределение][2]. Например, потребность в таких перестановках периодически появляется в криптографических приложениях. Метод описанный ниже предложен Санделиусом (М. Sandelius) еще в 1962 г. в работе [1]. [Читать дальше →][3]

[1]: https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0
[2]: https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D1%81%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D0%B2%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5
[3]: https://habrahabr.ru/post/275731/#habracut
#  Проект Qt меняет лицензию и открывает код некоторых модулей
habrabot (difrex,1) → All  –  23:30:02 2016-01-22


На прошлой неделе компания Qt Company (подразделение Digia) обновила текст соглашения с организацией KDE Free Qt Foundation и объявила о новой политике лицензирования Qt. Организация KDE Free Qt Foundation была основана в 1998 г. с целью защиты Qt как свободного ПО. Между организацией и компанией Trolltech был заключен договор, позволяющий в случае прекращения разработки свободной версии Qt, выпустить Qt под лицензией типа BSD (или любой другой свободной). Договор обновлялся, по мере того, как права на Qt переходили к Nokia, а затем к Digia. Подробности новой лицензионной политики Qt под катом.



[Читать дальше →][1]

[1]: https://habrahabr.ru/post/275725/#habracut
#  Проект Qt меняет лицензию, а также открывает код некоторых модулей
habrabot (difrex,1) → All  –  23:00:02 2016-01-22


На прошлой неделе компания Qt Company (подразделение Digia) обновила текст соглашения с организацией KDE Free Qt Foundation и объявила о новой политике лицензирования Qt. Организация KDE Free Qt Foundation была основана в 1998 г. с целью защиты Qt как свободного ПО. Между организацией и компанией Trolltech был заключен договор, позволяющий в случае прекращения разработки свободной версии Qt, выпустить Qt под лицензией типа BSD (или любой другой свободной). Договор обновлялся, по мере того, как права на Qt переходили к Nokia, а затем к Digia. Подробности новой лицензионной политики Qt под катом.



[Читать дальше →][1]

[1]: https://habrahabr.ru/post/275725/#habracut
#  [Перевод] Процедурная генерация случайных игровых подземелий
habrabot (difrex,1) → All  –  19:30:02 2016-01-22


![image][1] В посте подробно рассматривается техника генерации случайных подземелий. Основной алгоритм генерации, пример работы которого можно [посмотреть здесь][2], используется разработчиками игры [TinyKeep][3]. Оригинальный пост от разработчика [был размещён на reddit][4].

#### Оригинальное описание алгоритма

1. Сначала я задаю нужное количество комнат – к примеру, 150. Естественно, цифра произвольная, и чем она больше, тем сложнее будет подземелье. 2. Для каждой комнаты я создаю прямоугольник со случайными шириной и высотой, находящимися в пределах заданного радиуса. Радиус не имеет большого значения, хотя разумно предположить, что он должен быть пропорционален количеству комнат. Вместо равномерно распределённых случайных чисел (какие выдаёт генератор Math.random в большинстве языков), я использую [нормальное распределение Парка-Миллера][5]. В результате вероятность появления маленьких комнат превышает вероятность появления больших. Зачем это надо, объясню позже. Кроме того я проверяю, что соотношение длины и ширины комнаты не слишком велико. Нам не нужны как идеально квадратные комнаты, так и сильно вытянутые. 3. И вот у нас есть 150 случайных комнат, расположенных на небольшом пространстве. Большинство из них наезжают друг на друга. Теперь мы осуществляем их разделение по технологии separation steering, чтобы разделить прямоугольники так, чтоб они не пересекались. В результате они не пересекаются, но находятся достаточно близко друг от друга. 4. Заполняем промежутки клетками размером 1х1. В результате у нас получается квадратная решётка из комнат различного размера. 5. И тут начинается основное веселье. Определяем, какие из клеток решётки являются комнатами – это будут любые клетки с шириной и высотой, превышающими заданные. Из-за распределения Парка-Миллера мы получим сравнительно небольшое количество комнат, между которыми есть довольно много свободного пространства. Но оставшиеся клетки нам также пригодятся. 6. Следующий шаг – связывание комнат вместе. Для этого мы строим граф, содержащий центры всех комнат при помощи [триангуляции Делоне][6]. Теперь все комнаты связаны меж собой непересекающимися линиями. 7. Поскольку нам не нужно, чтобы все комнаты были связаны со всеми, мы строим [минимальное остовное дерево][7]. В результате получается граф, в котором гарантированно можно достичь любой комнаты. 8. Дерево получается аккуратным, но скучным – никаких вам замкнутых ходов. Поэтому мы случайным образом добавляем обратно примерно 15% ранее исключённых рёбер графа. В результате получится граф, где все комнаты гарантированно достижимы, с несколькими замкнутыми ходами. 9. Чтобы превратить его в коридоры, для каждого ребра строится серия прямых линий (в форме Г), идущих по рёбрам графа, соединяющим комнаты. Тут нам пригождаются те клетки, которые остались неиспользованными (те, что не превратились в комнаты). Все клетки, накладывающиеся на Г-образные линии, становятся коридорами. А из-за разнообразия размеров клеток стены коридоров будут неровными, что как раз хорошо для подземелья. И вот [пример результата][8]! Осторожно — под катом много анимированных гифок! [Читать дальше →][9]

[1]: https://habrastorage.org/getpro/habr/post_images/5b0/d69/ca8/5b0d69ca8da486503d313162d6ad0147.png
[2]: http://tinykeep.com/dungen/
[3]: http://store.steampowered.com/app/278620/
[4]: https://www.reddit.com/r/gamedev/comments/1dlwc4/procedural_dungeon_generation_algorithm_explained/
[5]: https://en.wikipedia.org/wiki/Normal_distribution
[6]: http://en.wikipedia.org/wiki/Delaunay_triangulation
[7]: http://en.wikipedia.org/wiki/Minimum_spanning_tree
[8]: http://tinykeep.com/images/tinykeep/dungen_example.png

>> Читать далее
#  Новости про C++ продукты и JetBrains C++ Night в Санкт-Петербурге
habrabot (difrex,1) → All  –  17:30:02 2016-01-22


Привет, Хабр! Праздники отгремели, зима в полном разгаре, кто-то уже выкинул новогоднюю елку, а кто-то ждет потепления. А мы упорно трудимся над новыми версиями наших C++ продуктов. Так, например, с декабря открыта программа раннего доступа (Early Access Program) CLion — нашей кросс-платформенной IDE для C/C++. Там очень много всего нового и интересного: [Читать дальше →][1]

[1]: https://habrahabr.ru/post/275723/#habracut
#  Обновлённое приложение «Мой проездной» в помощь москвичам 
habrabot (difrex,1) → All  –  15:30:03 2016-01-22


Приложение является частью экосистемы Единой платежной платформы Банка Москвы. Благодаря этому пользователи, зарегистрированные на других сервисах платформы, могут зайти в приложение, используя логин и пароль уже существующей учетной записи – никаких дополнительных танцев с бубном. [Подробнее][1]

[1]: https://habrahabr.ru/post/274259/#habracut
#  Skype начал скрывать IP адреса по умолчанию
habrabot (difrex,1) → All  –  15:00:03 2016-01-22


![image][1] Корпорация Microsoft наконец решила проблему с IP адресами в своем мессенджере Skype. Еще четыре года назад было известно, что уязвимость в VoIP мессенджере позволяла злоумышленнику получать IP адреса пользователей в сервисе. Несмотря на то, что Microsoft относительно недавно предоставила возможность пользователям скрывать свой IP, только сейчас эта опция [стала дефолтной][2]. Тяжелее всего приходилось геймерам и стримерам (и тем более геймерам-стримерам). Противники игрока всегда могли вычислить его IP, и осуществить DDoS атаку, выбрасывая геймера из системы. Изначально злоумышленнику нужен был Skype ID, после чего этот идентификатор при помощи сервиса резолвился в IP. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/1f0/949/850/1f0949850dacd17dd5b9b20d4960ff80.png
[2]: http://blogs.skype.com/2016/01/21/to-our-gamers-ip-will-now-be-hidden-by-default-in-latest-update/
[3]: https://habrahabr.ru/post/275695/#habracut
#  [Из песочницы] Как правильно мониторить UPS ippon с NUT и Zabbix
habrabot (difrex,1) → All  –  15:00:03 2016-01-22


Длинный комментарий к [посту][1], в котором автор рассказал как мониторить ippon smart winner с помощью apcupsd. На мой взгляд это не правильное решение. В комментариях всплывал вопрос про NUT и я был удивлен, что никто не рассказал про работающее решение. Будем исправлять.

#### Часть первая: NUT

На самом деле NUT очень даже работает с представителями семейства smart winner от Ippon. И с InnovaRT тоже работает. [Читать дальше →][2]

[1]: https://habrahabr.ru/post/275535
[2]: https://habrahabr.ru/post/275665/#habracut
#  [Из песочницы] OpenShift: немного внутренностей Gear'ов
habrabot (difrex,1) → All  –  15:00:03 2016-01-22




## Немного высокого

Gear — «движок» Openshift, собственно среда исполнения вашего приложения. При бесплатной регистрации сразу дают три. Собственно говоря об устройстве можно ничего и не знать. Но это вредно. 1. Имеется определенная структура каталогов. Для вашего приложения отведен ~/app-root. типа ls

build-dependencies -> runtime/build-dependencies
data
dependencies -> runtime/dependencies
logs
repo -> runtime/repo
runtime

Собственно говоря интересны data и repo. Забавная деталь три каталога являются ссылками на подкаталоги runtime, а runtime/data — линком на data в текущем каталоге. runtime/.state содержит текущее состояние gear'a: started, idle, deploing. 2. Все адреса, пароли, каталоги и прочее содержаться в переменных окружения, с ними то и предстоит работа. Подробно переменные описаны [здесь][1].

>> Читать далее
#  Security Week 03 или неделя патчей: Linux, OpenSSH, Cisco, Yahoo Mail, Apple
habrabot (difrex,1) → All  –  15:00:02 2016-01-22


![][1]В информационной безопасности бывают такие периоды, когда никаких особых открытий не происходит. Вместо этого достаточно рутинная работа по закрытию (или незакрытию) ранее обнаруженных уязвимостей. На этой неделе как раз такой период: самые популярные новости практически полностью посвящены заплаткам. Что ж, тоже неплохо, тем более, что подход у разных компаний к патчам серьезно отличается, да и восприятие этой темы иногда бывает, ну, несколько странным. Простой пример: в конце прошлого года в софте Apple (конкретно Mac OS X и iOS) [насчитали][2] рекордное количество уязвимостей. Ну то есть посмотрели в базу данных CVE, и обнаружили, что больше всего уязвимостей было обнаружено в Mac OS X, iOS и Adobe Flash. В некоторых СМИ даже назвали платформы Apple «самыми опасными», что, конечно, неправда. Ведь связь между «обнаружили уязвимость» и «пользователи в опасности» практически не прослеживается. Наоборот, в контексте базы CVE «обнаружили» как правило означает «закрыли». А это, в общем-то, хорошие новости. Возможно тут дело в том, что многие ухватились за простой и понятный рейтинг дыр, с абсолютными цифрами, которые дают ложное чувство понимания ландшафта угроз. Хорошая попытка «упростить» тему, но нет, с безопасностью этот прием не проходит. Поэтому посмотрим на патчи этой недели внимательнее. Все выпуски дайджеста — [тут][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/21b/692/38f/21b69238ff8e46e4a7b042eae6ca382a.png
[2]: http://venturebeat.com/2015/12/31/software-with-the-most-vulnerabilities-in-2015-mac-os-x-ios-and-flash/
[3]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[4]: https://habrahabr.ru/post/275693/#habracut
#  Во FreeBSD обнаружены критически опасные уязвимости
habrabot (difrex,1) → All  –  12:00:06 2016-01-22


[![][1]][2] Команда проекта FreeBSD сообщает, что в операционной системе обнаружен ряд критически опасных уязвимостей, позволяющих злоумышленникам проводить атаки, направленные на отказ в обслуживании, повышать привилегии и раскрывать важные данные. [Читать дальше →][3]

[1]: https://habrastorage.org/files/050/05e/854/05005e854a9040d9b8d190a7f7b38ec5.png
[2]: https://habrahabr.ru/company/pt/blog/275637/
[3]: https://habrahabr.ru/post/275637/#habracut
#  ChakraCore: проверка JavaScript-движка для Microsoft Edge
habrabot (difrex,1) → All  –  12:00:06 2016-01-22


![][1]В декабре 2015 года на конференции JSConf US разработчики объявили, что планируют открыть исходный код ключевых компонентов JavaScript-движка Chakra, работающего в Microsoft Edge. Недавно исходный код ChackraCore под MIT лицензией опубликовали в соответствующем репозитории на GitHub. В статье я расскажу, что удалось найти интересного в проекте с помощью статического анализатора PVS-Studio.

## Введение

[ChakraCore][2] это базовая составляющая Chakra, высокопроизводительный движок JavaScript, который запускает приложения Microsoft Edge и Windows, написанные на HTML/CSS/JS. ChakraCore поддерживает JIT-компиляцию на JavaScript для x86/x64/ARM, сборку мусора и широкий спектр самых последних возможностей JavaScript. [PVS-Studio][3] — это статический анализатор для выявления ошибок в исходном коде программ, написанных на языках С, C++ и C#. Инструмент PVS-Studio предназначен для разработчиков современных приложений и интегрируется в среды Visual Studio 2010-2015. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/4bf/919/24d/4bf91924dae0c9a42ba65ac3ffca2ca2.png
[2]: https://github.com/Microsoft/ChakraCore
[3]: http://www.viva64.com/ru/pvs-studio/
[4]: https://habrahabr.ru/post/275701/#habracut
#  [Перевод] Советы о том, как писать на С в 2016 году
habrabot (difrex,1) → All  –  11:00:03 2016-01-22


![][1] _Если бы язык С был оружием_ _От автора: Наброски для этой статьи появились еще в начале 2015 года, правда, до публикации материалов дело так и не дошло. Наконец, решив, что в ящике моего письменного стола от вышеупомянутого «черновика» не будет никакой пользы, представляю его вашему вниманию в исходном виде. Единственное, что изменилось в тексте – год, с 2015 на 2016. И я всегда рад услышать комментарии по поводу необходимых исправлений, уточнений или даже ваши жалобы. Итак, статья ..._ Первое правило программирования на С – не используйте его, если можно обойтись другими инструментами. Когда найти альтернативный метод не удается, самое время вспомнить о современных заповедях программиста. [Читать дальше →][2]

[1]: https://habrastorage.org/files/da2/e08/e17/da2e08e172854d3ea0b0db284a03685a.png
[2]: https://habrahabr.ru/post/275685/#habracut
#  Common Lisp SDL2 туториал: урок 1
habrabot (difrex,1) → All  –  11:00:03 2016-01-22


SDL2 — отличная библиотека, но туториалов по ней не очень много. Common Lisp — отличный язык, но статей по нему катастрофически мало. Думаю этого вполне достаточно, для того чтобы написать этот цикл статей. Почему я выбрал общелисп? Что ж, на вкус и цвет как говорится. Впрочем, причины есть:




[Читать дальше →][1]

[1]: https://habrahabr.ru/post/275651/#habracut
#  Research Day
habrabot (difrex,1) → All  –  10:00:09 2016-01-22


**“Research day is coming”** — вот уже больше года все команды Plesk каждые две недели получают такое сообщение, напоминающее, что пора оторваться от своих текущих задач и заняться чем-то другим. «Свободный от работы день», так еще называют практику, принятую в Google, Apple, Microsoft, Linkedin и много где еще. Насколько она эффективна? Мы в Plesk, например, провели более 70 исследований, требовавших в обычных условиях в 4 раза больше времени. Другой вопрос, что компании понимают над «свободой от работы». В этой статье мы расскажем, что именно мы понимаем под практикой Research Day в нашей компании, как это работает, и что разработчики придумали, пока «отдыхали» от основных задач. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/275625/#habracut
#  Systemd: пишем собственные .service и .target
habrabot (difrex,1) → All  –  08:00:04 2016-01-22


У меня появился Linux на домашнем компьютере, и я поспешил обжиться в новой ОС. Она была установлена с systemd init process. Это было мое первое знакомство с этим новым инструментом. Cвой ноутбук я использую для каждодневной жизни и для программирования. Мне хотелось включать рабочие программы (Apache2 и MySQL) только на время, пока я их использую, чтобы не тратить впустую ресурсы своего компьютера. Дополнительно, для тестирования я написал bash скрипт, который выгружает содержимое одной из MySQL БД c жесткого диска в ОЗУ (в tmpfs) – так тесты выполняются значительно быстрее. По идее, я мог бы начинать свой рабочий день вот так:

systemctl start apache2.service
systemctl start mysqld.service
/root/scripts/mysqld-tmpfs start


И заканчивать его:

systemctl stop apache2.service
systemctl stop mysqld.service
/root/scripts/mysqld-tmpfs stop



>> Читать далее
#  Project Abacus от Google: биометрия вместо пароля
habrabot (difrex,1) → All  –  08:00:04 2016-01-22


Соответствие процесса аутентификации пользователей различных сервисов и устройств при помощи связки логин/пароль текущим потребностям и желаниям самих пользователей — большой вопрос. Обсуждений, посвященных поиску возможных альтернатив логину и пароля в Сети тоже очень много, как среди обывателей, так и среди технических специалистов высокого класса. Корпорация Google решила предложить собственный метод аутентификации, где не используется привычная форма с предложением ввести свои данные. Сейчас специалисты компании работают над проектом, получившим название Project Abacus. Работает над проектом команда Advanced Technology and Projects (ATAP). В рамках проекта разработчики пытаются найти надежный способ аутентификации пользователя при помощи биометрии. И здесь имеются в виду не отпечатки пальцев, проект более универсальный. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/275649/#habracut
#  О действительно БОЛЬШИХ числах (часть 1)
habrabot (difrex,1) → All  –  05:30:02 2016-01-22


![image][1]Идея написать популярно про большие числа пришла во время чтения [этой статьи][2]. Речь в ней шла о числах-гигантах, имеющих хоть какой-то физический смысл. И заканчивается она упоминанием числа Грэма. Того числа, которое будет точкой отсчета сегодняшней статьи. Чтобы представить себе масштабы бедствия я настоятельно рекомендую предварительно прочитать [вот эту статью][3], в которое объясняется о числе Грэма на пальцах — там автор очень красочно и последовательно рассказывает о границах восприятия, в которые мы себя зажимаем, когда говорим о больших числах.




[итак, поехали...][4]

[1]: https://habrastorage.org/getpro/habr/post_images/ea8/dd4/e0c/ea8dd4e0c033f21dd1558e85feae0edc.png
[2]: http://geektimes.ru/post/253552/
[3]: http://sly2m.livejournal.com/620353.html
[4]: https://habrahabr.ru/post/265067/#habracut
#  [Перевод] Анонс Rust 1.6
habrabot (difrex,1) → All  –  23:00:02 2016-01-21


Привет в 2016-м году! Мы рады объявить первый в этом году релиз Rust — 1.6. Rust — системный язык программирования, нацеленный на безопасную работу с памятью, скорость и параллельное выполнение кода. Как всегда, вы можете [установить Rust 1.6][1] с соответствующей страницы нашего сайта, а также посмотреть [подробный список изменений для версии 1.6][2] на Github. Этот релиз включил в себя 1100 патчей.

### Что вошло в стабильную версию 1.6

В этот релиз вошли ряд небольших доработок, одно большое нововведение и изменение на [Crates.io][3]. [Читать дальше →][4]

[1]: http://www.rust-lang.org/install.html
[2]: https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-160-2016-01-21
[3]: https://crates.io
[4]: https://habrahabr.ru/post/275593/#habracut
#  Как в первый раз запустить i2pd: инструкция под Debian/Ubuntu
habrabot (difrex,1) → All  –  20:30:04 2016-01-21


![][1] I2p — это сеть со специализацией на анонимности внутрисетевых ресурсов, этим она отличается от сети tor, основной задачей которой являются не внутренние ресурсы, а построение безопасного доступа к интернету. Зная об этих двух особенностях, люди могут гораздо эффективнее работать в обеих сетях. В i2p ты можешь заниматься множеством вещей: посещать и создавать сайты, форумы и торговые площадки, принимать почту, чатиться и скачивать торренты, и многое многое другое. Программа i2pd способна работать с большим числом программ и сервисов. [Читать дальше →][2]

[1]: https://habrastorage.org/files/ee1/86f/775/ee186f775e9e4e7d826489e62f25918e.png
[2]: https://habrahabr.ru/post/275643/#habracut
#  Как пользоваться i2pd: исчерпывающая инструкция под MS Windows
habrabot (difrex,1) → All  –  20:00:02 2016-01-21


![][1] I2p — это сеть со специализацией на анонимности внутрисетевых ресурсов, этим она отличается от сети tor, основной задачей которой являются не внутренние ресурсы, а построение безопасного доступа к интернету. Зная об этих двух особенностях, люди могут гораздо эффективнее работать в обеих сетях. В i2p ты можешь заниматься множеством вещей: посещать и создавать сайты, форумы и торговые площадки, принимать почту, чатиться и скачивать торренты, и многое многое другое. Программа i2pd способна работать с большим числом программ и сервисов. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/144/2ca/908/1442ca908ce24a53a701c2fed63b9bf8.jpg
[2]: https://habrahabr.ru/post/275647/#habracut
#  [Перевод] Микросервисные паттерны проектирования
habrabot (difrex,1) → All  –  17:30:08 2016-01-21


Здравствуйте, Хабр! В ближайшее время читайте пост о русском переводе долгожданной книги "[Создание Микросервисов][1]" Сэма Ньюмена, которая уже отправилась в магазины. Пока же мы предлагаем почитать перевод статьи Аруна Гупты, автор которой описывает самые интересные паттерны проектирования, применимые в микросервисной архитектуре [Читать дальше →][2]

[1]: http://www.piter.com/product_by_id/51778339
[2]: https://habrahabr.ru/post/275633/#habracut
#  В операционной системе FreeBSD обнаружены критические уязвимости (+ демонстрация атаки)
habrabot (difrex,1) → All  –  15:30:09 2016-01-21


[![][1]][2] Согласно сообщению команды проекта FreeBSD, в операционной системе обнаружен ряд критических уязвимостей, позволяющих злоумышленникам проводить атаки отказа в обслуживании, осуществлять повышение привилегий и раскрывать важные данные. [Читать дальше →][3]

[1]: https://habrastorage.org/files/050/05e/854/05005e854a9040d9b8d190a7f7b38ec5.png
[2]: https://habrahabr.ru/company/pt/blog/275637/
[3]: https://habrahabr.ru/post/275637/#habracut
#  Entity vs Value Object: полный список отличий
habrabot (difrex,1) → All  –  14:00:10 2016-01-21


Тема отличий таких понятий как Entity (Сущность) и Value Object (Объект-Значение) из Domain-Driven Design не нова. Тем не менее, я не смог найти статью с полным списком их отличий, так что решил написать свою. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/275599/#habracut
#  Используем Apache Spark как SQL Engine
habrabot (difrex,1) → All  –  13:30:09 2016-01-21


![][1] Привет, Хабр! Мы, [Wrike][2], ежедневно сталкиваемся с потоком данных от сотен тысяч пользователей. Все эти сведения необходимо сохранять, обрабатывать и извлекать из них ценность. Справиться с этим колоссальным объёмом данных нам помогает [Apache Spark][3]. Мы не будем делать введение в Spark или описывать его положительные и отрицательные стороны. Об этом вы можете почитать [здесь][4], [здесь][5] или в [официальной документации][6]. В данной статье мы делаем упор на библиотеку [Spark SQL][7] и её практическое применение для анализа больших данных. [Читать дальше →][8]

[1]: https://habrastorage.org/files/6b9/92a/816/6b992a816c524f9c945a0296451bb434.png
[2]: https://www.wrike.com/ru
[3]: http://spark.apache.org
[4]: http://habrahabr.ru/company/mlclass/blog/250811/
[5]: http://habrahabr.ru/post/263491/
[6]: http://spark.apache.org/docs/latest/quick-start.html
[7]: http://spark.apache.org/docs/latest/sql-programming-guide.html
[8]: https://habrahabr.ru/post/275567/#habracut
#  Stream API: универсальная промежуточная операция
habrabot (difrex,1) → All  –  13:00:11 2016-01-21


Я разрабатываю бесплатную библиотеку [StreamEx][1], которая расширяет стандартное Java 8 Stream API, добавляя туда новые операции, коллекторы и источники стримов. Обычно я не добавляю всё подряд, а всесторонне рассматриваю каждую потенциальную фичу. Например, при добавлении новой промежуточной ([intermediate][2]) операции встают такие вопросы:

1. Будет ли она действительно промежуточной, то есть не будет трогать источник до выполнения терминальной операции?
2. Будет ли она ленивой и вытаскивать из источника не больше данных, чем требуется?
3. Сработает ли она на бесконечном стриме? Требует ли она ограниченный объём памяти?
4. Будет ли она хорошо параллелиться?

Минусик по любому из этих пунктов заставляет серьёзно задуматься, добавлять ли такую операцию. Минусик по первому — это сразу нет. Например, у конкурентов в jOOλ есть операция [shuffle()][3], которая выглядит как промежуточная, но на самом деле прямо сразу потребляет весь стрим в список, перемешивает его и создаёт новый стрим. Я такое не уважаю. Минусики по остальными пунктам не означают сразу нет, потому что есть и стандартные операции, которые их нарушают. Второй пункт нарушает `flatMap()`, третий — `sorted()`, четвёртый — всякие `limit()` и `takeWhile()` (в JDK-9). Но всё-таки я стараюсь этого избегать. Однако на днях я открыл для себя операцию, которая плохо параллелится и в зависимости от использования может не сработать на бесконечном стриме, но всё же слишком хороша. Через неё удаётся буквально в несколько строчек выразить как практически любую существующую промежуточную операцию, так и кучу несуществующих. Я назвал операцию [headTail()][4]. [Читать дальше →][5]

[1]: https://github.com/amaembo/streamex
[2]: https://docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html#StreamOps
[3]: http://www.jooq.org/products/jOO%CE%BB/javadoc/0.9.7/org/jooq/lambda/Seq.html#shuffle--
[4]: http://amaembo.github.io/streamex/javadoc/one/util/streamex/StreamEx.html#headTail-java.util.function.BiFunction-java.util.function.Supplier-
[5]: https://habrahabr.ru/post/262139/#habracut
#  Конкурс GraphHPC-2016 на самую быструю реализацию параллельного алгоритма Community Detection
habrabot (difrex,1) → All  –  09:30:09 2016-01-21


![][1] Совсем скоро, в рамках третьей научно-технической конференции [GraphHPC-2016][2], стартует конкурс [GraphHPC][3], посвященный проблемам параллельной обработки больших графов с использованием суперкомьютеров. В этот раз участникам предстоит найти самую быструю реализацию задачи (поиск сообществ) в неориентированном графе с весами. [Читать дальше →][4]

[1]: https://habrastorage.org/files/4b7/8b0/2c1/4b78b02c1d6643b09627d9dc072ef1c2.jpg
[2]: http://www.dislab.org/GraphHPC-2016/
[3]: http://contest.dislab.org/
[4]: https://habrahabr.ru/post/275577/#habracut
#  [Перевод] Взгляд внутрь кибермошеннических колл-центров
habrabot (difrex,1) → All  –  08:30:09 2016-01-21


Brian Krebs, автор блога о взломах, хакерах, вирусах и другом, что связано с компьютерной безопасностью, не так давно написал пост о мошеннических колл-центрах. Что интересно, в статье описаны не те колл-центры, которые работают для обмана «своих» жертв, а те, которые работают, обманывая «чужих» клиентов за комиссию от звонка, т.е. колл-центры, которые работают на аутсорс. Такой себе **«CCCCaaS» – «Cyber-Crime-Call-Center-as-a-Service».** Термин мой, родился при написании данной статьи (к тому же, аббревиатура «CCaaS» в интернете уже занята такими понятиями как «Contact-Center-as-a-Service» и «Customer-Care-as-a-Service»). Второй особенностью таких онлайн-бизнесов является их принадлежность к постсоветскому пространству. Ниже _художественный_ перевод данной статьи (_замечания просьба писать в личные сообщения_). ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/94f/70d/3d8/94f70d3d82944870bd9f668e97078c61.jpg
[2]: https://habrahabr.ru/post/275591/#habracut
#  Сторожевой таймер для 4G модема в CentOS 7
habrabot (difrex,1) → All  –  04:00:03 2016-01-21


Эта статья является дополнением моей предыдущий [публикации][1] о настройке домашнего роутера / файл-сервера. Здесь речь пойдет о проблеме автоматического переподключения к интернету при зависании 4G USB модема. На оригинальность идеи не претендую, просто хочу поделиться с читателями своим решением. ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/post/273547/
[2]: https://habrastorage.org/files/d7c/477/ed9/d7c477ed972e4803959a0bb3108c53fd.png
[3]: https://habrahabr.ru/post/275551/#habracut
#  Linux в кармане — на службе у фотографа
habrabot (difrex,1) → All  –  04:00:03 2016-01-21


![][1]Так получилось, что фотография, это мой основной профессиональный вид деятельности, а программирование — хобби, которое иногда позволяет размять мозг. Кроме непосредственно разминки для мозга, программирование помогает и в работе. Например, писал полезные штуки, такие как [это][2] или [это][3], или [это][4]. Недавно поставил себе задачу, как бы еще порадовать своих клиентов. Вспомнил многочисленные просьбы клиентов на свадебную съемку: «Как хорошо было бы, если бы на банкете вы смогли показать коротенькое слайдшоу из фотографий, которые отсняли за день». На эти просьбы приходилось отказывать, по нескольким причинам: лень таскать с собой ноутбук для сборки слайдшоу, нет времени на отбор пары десятков снимков из сотен, из raw опять же нужно конвертировать, и самое главное — на это все нужно время, которого нет. Это рассказ, о том, как мне удалось сделать для себя инструмент, который с минимальным моим участием и минимальным дополнительным весом в рюкзаке, помогает сделать красивые слайдшоу. И конечно же рассказ о python, ffmpeg и linux на android. [Читать дальше →][5]

[1]: https://habrastorage.org/files/3d2/f39/c60/3d2f39c605de4fda954bec52724d35b5.jpg
[2]: https://habrahabr.ru/post/216039/
[3]: https://habrahabr.ru/post/149898/
[4]: https://habrahabr.ru/post/162085/
[5]: https://habrahabr.ru/post/275595/#habracut
#  Экосистема российского ПО. Экономикс
habrabot (difrex,1) → All  –  01:00:03 2016-01-21


[Экосистема российского ПО. Вступление][1] [Экосистема российского ПО. Термины и классификация][2] Здравствуйте, Хабр. Позвольте продолжить цикл материалов по совместной работе над общим поиском наилучших сценариев импортозамещения в ИТ-отрасли. Сегодня предлагаю посмотреть на роль нашей отрасли в национальной экономике. Изменения происходят стремительные, а в некоторых моментах даже тектонические. Так например, вчера, 19 января, с небольшой задержкой получила таки общественный резонанс тема обновлений в [Стратегии национальной безопасности РФ][3]. Наряду с традиционной риторикой о статусе мировой державы в доке появляются новые цели, например, такие как:

* создание условий для развития личности;
* устранение структурных дисбалансов в экономике;
* повышение эффективности и качества государственного управления экономикой;
* стимулирование малого и среднего предпринимательства в производственной сфере.

Эти изменения важны, как мне кажется, и вот почему. [Читать дальше →][4]

[1]: http://habrahabr.ru/post/268415/
[2]: http://habrahabr.ru/post/268869/
[3]: http://www.rg.ru/2015/12/31/nac-bezopasnost-site-dok.html
[4]: https://habrahabr.ru/post/275559/#habracut
#  Зачем и как мы бэкапим github
habrabot (difrex,1) → All  –  20:30:05 2016-01-20


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

##### И все же зачем..?

Действительно, можно нафантазировать большое количество количество возможных проблем, например:

* Недоступность удаленного репозитория и отсутсвие актуальной локальной копии
* Злоумышленники с помощью украденного пароля испортили/удалили репозитории
* Ошибки в манипуляциях с репозиториями



##### Итак, что и как бэкапить...


>> Читать далее
#  Защита утилиты шифрования Scrypt с помощью Intel® Tamper Protection Toolkit
habrabot (difrex,1) → All  –  18:30:04 2016-01-20


![][1]В нашей статье мы покажем, как _Intel Tamper Protection Toolkit_ позволяет защитить критически важные участки кода и ценные данные в утилите шифрования [Scrypt][2] против статического/динамического реверс-инженеринга и изменений. _Scrypt_ – наиболее новая и безопасная функция выработки ключа по паролю, широко применяемая на практике. Однако существует угроза фальсификации параметров функции _scrypt_, что приведет к появлению уязвимостей пароля пользователя. Инструментарий позволяет уменьшить эти угрозы. Мы определяем модель угроз для рассматриваемого приложения, объясняем как провести его рефакторинг для дальнейшей защиты, учитывая особенности применения инструмента _Tamper Protection_ к приложению. Основной целью этой статьи является демонстрация возможностей _Intel Tamper Protection Toolkit_ по защите от атак на критически важные участки кода и ценные данные, находящиеся в реальных приложениях. Инструментарий позволяет противодействовать статическому и динамическому реверс-инженерингу путем обфускации и препятствовать внесению изменений в защищаемое приложение путем контроля целостности во время выполнения. [Читать дальше →][3]

[1]: https://habrastorage.org/files/1f9/a19/34c/1f9a1934c18b42c6a609793f5f2e9d26.jpg
[2]: https://github.com/Tarsnap/scrypt/tree/1.1.6
[3]: https://habrahabr.ru/post/274045/#habracut
#  [recovery mode] Мониторинг блока бесперебойного питания ippon winner 3000 используя apcupsd+Zabbix в Ubuntu
habrabot (difrex,1) → All  –  17:00:05 2016-01-20


Что побудило меня написать данную статью? Поискав на просторах интернета по запросу «мониторин ippon winner 3000». Интернет выдавал как правило статьи про настройку [NUT][1]. Проект действительно интересный, имеет много возможностей. Но есть одно маленькое НО! Не поддерживается ippon winner 3000 по USB. По COM-порту все работает замечательно. Видел конфиги подключение по USB, но мне кажется это копипаст без практической проверки. Хотя может я и ошибаюсь. Я по крайней мере убил пол дня на попытки заставить это рабоатать, но тщетно. [Читать далее][2]

[1]: http://www.networkupstools.org
[2]: https://habrahabr.ru/post/275535/#habracut
#  Немного о модульной системе языка Rust(часть 2)
habrabot (difrex,1) → All  –  15:00:04 2016-01-20




##### **Продолжаем**

Хорошо. Давайте теперь попробуем подключить в main.rs ещё один модуль — **number2**. И в нём мы определим функцию _one2()_, которая возвращает не «one», а «one2». Подключаем:

use num::number;
use num::number2;


[Читать дальше →][1]

[1]: https://habrahabr.ru/post/275533/#habracut
#  Монте-Карло моделирование в Mathcad Express
habrabot (difrex,1) → All  –  15:00:04 2016-01-20


На Хабре много статей посвящено алгоритмам Монте-Карло, например,[ вот эта, вчерашняя][1]. Как основная идея, так и реализация методов весьма несложная, но небольшим препятствием может служить отсутствие под рукой подходящих инструментов для моделирования. Тем из читателей, для кого проблема актуальна, советую использовать бесплатный математический редактор Mathcad Express, про который [я и пишу в моем блоге][2]. Mathcad Express — это «легкая» версия известного пакета PTC Mathcad Prime, в которой большая часть функционала выключена. Тем не менее, датчики псевдослучайных чисел остаются доступными, что позволяет реализовать (довольно быстро и наглядно) различные статистические модели на основе алгоритмов Монте-Карло. Сразу оговорюсь, что некоторые решения будут не самыми лучшими, с точки зрения пользователей коммерческой версии Mathcad Prime, однако, они гарантированно не выведут нас за пределы функционала бесплатного Mathcad Express. Напомню, что алгоритмы Монте-Карло — это общее название группы численных методов, основанных на программном создании определенной последовательности псевдослучайных чисел, моделирующей тот или иной эффект, например, [последовательность отказов техники][3]. Получив большое число реализаций случайного процесса, можно надеяться, что его вероятностные характеристики совпадут с аналогичными величинами решаемой задачи «реального мира». Файл с дальнейшими расчетами в форматах Mathcad и XPS лежит [здесь][4].

## Часть 1. Как сгенерировать выборку псевдослучайных чисел

В Mathcad Express доступен ряд генераторов псевдослучайных чисел, создающих выборки псевдослучайных данных с различными законами распределения. Для создания вектора из N псевдослучайных чисел нужна всего лишь одна строка Mathcad-документа. Например сгенерировать N=5 псевдослучайных чисел с нормальным распределением (нулевым средним и единичной дисперсией) можно так: ![][5] Векторы случайных чисел удобно визуализировать на графиках так: одна выборка (т.е. компоненты одного из случайных векторов **T1**) по оси абсцисс, а другая выборка (другой случайный вектор **T2**)  – по оси ординат. На следующем рисунке приведены графики пар псевдослучайных чисел для экспоненциального (слева) и нормального (справа) распределения. Параметры распределений задаются в формулах над графиками. ![][6] [Читать дальше →][7]

[1]: http://habrahabr.ru/post/274975/
[2]: http://habrahabr.ru/company/nerepetitor/blog/247999/
[3]: http://habrahabr.ru/company/nerepetitor/blog/255407/
[4]: http://nerepetitor.ru/habr/Monte-Karlo-Express.zip
[5]: https://habrastorage.org/files/75f/142/79b/75f14279bfb440d896278f6206ab28d3.png
[6]: https://habrastorage.org/files/824/85f/bf2/82485fbf295143a884489772f1b6c474.jpg
[7]: https://habrahabr.ru/post/272713/#habracut
#  FlyElephant как инструмент для вычислений на C++, R, Python или Octave
habrabot (difrex,1) → All  –  13:30:05 2016-01-20


![][1] Приветствую всех! Сегодня я расскажу о возможностях платформы [FlyElephant][2] для ученых и инженеров, которые в своей работе проводят различные вычисления на C++, R, Python или Octave. Это могут быть научные расчеты, анализ данных, моделирование или другие задачи.** 22 января** я буду проводить **[вебинар “Введение в FlyElephant”][3]**, на котором детально расскажу о платформе FlyElephant, а сегодня в общих чертах познакомлю вас с ней и покажу процесс проведения расчетов. **FlyElephant** — это платформа, которая предоставляет ученым готовую вычислительную инфраструктуру для проведения расчетов, автоматизирует рутинные задачи и позволяет сосредоточиться на основных вопросах исследований. [Читать дальше →][4]

[1]: https://habrastorage.org/files/aae/fc6/278/aaefc62783734fd4872b0ccf694a6364.png
[2]: http://flyelephant.net/
[3]: https://flyelephant.clickwebinar.com/introduction-to-flyelephant-ru/register
[4]: http://habrahabr.ru/post/275571/#habracut
#  Корпоративные лаборатории 2016 — практическая подготовка в области информационной безопасности
habrabot (difrex,1) → All  –  13:00:04 2016-01-20


![][1] В современных реалиях цифрового мира необходимо обладать актуальными знаниями в вопросе обеспечения информационной безопасности для построения максимально эффективной защиты инфраструктуры. Для этого необходимо иметь знания и навыки как построения систем защиты, так и практический опыт компрометации современных информационных систем. [Читать дальше →][2]

[1]: https://habrastorage.org/files/0d7/01b/1e9/0d701b1e95ba44f68773458f3bfd2bf2.png
[2]: http://habrahabr.ru/post/275525/#habracut
#  [Из песочницы] Белый список с брандмауэром Windows
habrabot (difrex,1) → All  –  10:30:09 2016-01-20


![image][1] Если паранойя подсказывает, что вы недостаточно защищены, а под рукой имеются только бесплатные инструменты для безопасности, то нужно это чувство удовлетворить! Под катом будем создавать белый список программ для выхода в сеть с помощью стандартного брандмауэра Windows, в том числе и на PowerShell. [Читать дальше →][2]

[1]: https://habrastorage.org/files/e3d/02c/32a/e3d02c32abcc443abf3aee35eff329f2.jpg
[2]: http://habrahabr.ru/post/275549/#habracut
#  Несколько интересностей и полезностей для всех
habrabot (difrex,1) → All  –  10:00:06 2016-01-20


![][1] Доброго времени суток, уважаемые хабравчане! Обычно мои подборки ориентированы сугубо на веб-разработку, но этот выпуск охватывает все сферы программирования. Но самое главное, что интересность и полезность каждого материала имеет социальное доказательство, благодаря замечательному сервису [Slant.co][2]. Это некий аналог Quora, сфокусированный сугубо на разработчиков.

#### **Коллекция из почти 200 ответов в Slant на вопросы «Какие лучшие...» **

[Читать дальше →][3]

[1]: https://habrastorage.org/files/e93/0c4/bf7/e930c4bf7f2c4eb6b2b05e4083ab15c4.jpg
[2]: http://slant.co
[3]: http://habrahabr.ru/post/275547/#habracut
#  Параллельные алгоритмы для обработки BigData: подводные камни и непростые решения
habrabot (difrex,1) → All  –  08:30:05 2016-01-20


_Эта публикация написана по материалам выступления [Александра Сербула][1] на осенней конференции [BigData Conference][2]._ Большие данные — тема модная и востребованная. Но многих по-прежнему отпугивает избыток теоретических рассуждений и некоторый недостаток практических рекомендаций. В этом посте я хочу отчасти заполнить этот пробел и рассказать об использовании параллельных алгоритмов для обработки больших данных на примере кластеризации товарного каталога из 10 млн позиций. [Читать дальше →][3]

[1]: http://bigdataconf.com.ua/2015/agenda/3125/
[2]: http://bigdataconf.com.ua/
[3]: http://habrahabr.ru/post/275455/#habracut
#  Новый интерфейс для получения атрибутов процессов в Linux
habrabot (difrex,1) → All  –  05:00:02 2016-01-20


Разрабатывая CRIU, мы поняли, что текущий интерфейс получения информации о процессах не идеален. К тому же, подобная проблема была успешно решена для сокетов. Мы попытались перенести эти наработки на процессы и получили достаточно хорошие результаты, о которых вы узнаете, дочитав эту статью до конца.

# Недостатки текущего интерфейса

Прочитав заголовок, возникает вопрос:”A чем же старый интерфейс не угодил”? Многие из вас знают, что сейчас информация о процессах собирается по файловой системе _procfs_. Здесь каждому процессу соответствует директория, которая содержит несколько десятков файлов.

$ ls /proc/self/
attr cwd loginuid numa_maps schedstat task
autogroup environ map_files oom_adj sessionid timers
auxv exe maps oom_score setgroups uid_map
cgroup fd mem oom_score_adj smaps wchan
clear_refs fdinfo mountinfo pagemap stack
cmdline gid_map mounts personality stat
comm io mountstats projid_map statm

>> Читать далее
#  В ядре Linux обнаружили уязвимость, позволяющую получить права суперпользователя
habrabot (difrex,1) → All  –  04:30:02 2016-01-20


![][1] Практически все версии ядра Linux, от 3.8 до 4.5 (в git) [подвержены достаточно серьезной уязвимости][2], которая дает возможность локальному юзеру получить права суперпользователя. Оказывается, уязвимость CVE-2016-0728 существует с 2012 года, а наиболее подвержены риску пользователи ОС Android. дело в том, что код приложений и игр, созданных с использованием NDK (Native Development Kit) и выложенных в Google Play, компания Google проверить не может. Что касается ПК и серверов, то здесь ситуация не такая сложная, в особенности, если в системе всего один пользователь. Кроме того, не является слишком опасной эта уязвимость и тогда, если пользователям запрещено исполнять код, либо же различные экземпляры ОС находятся в среде виртуализации. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/715/b1e/1d4/715b1e1d415d81d7723764ebd1450132.png
[2]: http://perception-point.io/2016/01/14/analysis-and-exploitation-of-a-linux-kernel-vulnerability-cve-2016-0728/
[3]: http://habrahabr.ru/post/275543/#habracut
#  Хостер FirstVDS оставил ключ доступа по SSH в поставляемых клиентам VDS
habrabot (difrex,1) → All  –  22:30:02 2016-01-19


Хостер FirstVDS (у них есть [блог на хабре][1]) поставляет VDS своим пользователям с вот таким вот содержимым файла /root/.ssh/authorized\_keys:



Т.е. это даёт возможность получать доступ через SSH к арендуемым пользователями VDS тем личностям, которые установили этот ключ. Комментарий в файле гласит, что этот ключ — для доступа техподдержки. При этом никакого оповещения пользователю не выдаётся. В [базе знаний][2] ответа тоже не нашлось. Решил написать в техподдержку для разъяснения этой ситуации и получил вот такой ответ: [Читать дальше →][3]

[1]: http://habrahabr.ru/company/first/
[2]: https://firstvds.ru/technology
[3]: http://habrahabr.ru/post/275523/#habracut
#  Небезопасный способ авторизации в GitLab CE с использованием LDAP аккаунтов и метод устранения уязвимости
habrabot (difrex,1) → All  –  16:00:04 2016-01-19


При эксплуатации системы GitLab CE на своем предприятии (имеющему большую филиальную структуру), была обнаружена уязвимость, которая может привести к получению полного доступа к аккаунту любого пользователя системы администраторами филиалов предприятия. Проблема выявлена в подсистеме LDAP-аутентификации пользователей. Дело в том, что основной сущностью, с использованием которой происходит авторизация в GitLab является E-Mail пользователя. Однако при входе пользователей в GitLab с использованием LDAP процесс аутентификации/авторизации происходит следующим образом:

* Пользователь вводит на странице Sign-In системы свои имя/пароль из службы каталогов LDAP (Active Directory).
* GitLab, используя введенные данные аккаунта производит аутентификацию пользователя в LDAP.
* В случае успешной аутентификации GitLab считывает из атрибута MAIL аутентифицированного аккаунта адрес электронной почты и авторизует по нему в GitLab без всяких дополнительных проверок

. В результате, например, «нехороший» системный администратор «филиала A», может используя свои полномочия, к примеру в Active Directory, создать в своем OU **«Филиал А»** любого пользователя (например** hackuser**) и записать в его LDAP-атрибут **MAIL** адрес электронной почты пользователя любого другого филиала, на который даже не распространяются полномочия этого администратора. После этого «нехороший» администратор «Филиала А» может авторизоваться пользователем **hackuser** в системе GitLab, при этом в результате авторизации будет получен полный доступ к аккаунту пользователя, имеющего адрес электронной почты установленный «нехорошим» администратором для **hackuser**. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/275403/#habracut
#  Поиск множества регулярных выражений при помощи библиотеки Hyperscan
habrabot (difrex,1) → All  –  16:00:04 2016-01-19


В данной статье я бы хотел рассказать о собственном опыте оптимизации выполнения множества регулярных выражений при помощи системы [hyperscan][1]. Так вышло, что при разработке своего спам-фильтра [rspamd][2] я столкнулся с необходимостью портировать большой объем старых правил, написанных для spamassassin за несколько лет работы. Моим первым решением было написать [плагин][3], который бы читал эти правила и строил из них синтаксическое дерево. Затем на этом дереве выполнялись различные оптимизации, чтобы сократить общее время выполнения (об этом я даже делал небольшую [презентацию][4]). К сожалению, в ходе эксплуатации выяснилось, что pcre все равно являются узким местом, и на больших письмах этот набор правил работает слишком медленно. Выяснилось, например, что на письме размером в мегабайт pcre проверяет около гигабайта (!) текста. Различные трюки, вроде ограничения количества текста для регулярных выражений, оказывали негативное влияние на срабатывания правил, а оптимизации pcre путем интенсивного использования jit fast path через **pcre\_jit\_exec** оказались слишком опасными — некоторые старые выражения были откровенно некорректными и в сочетании с некорректным входным текстом, например, содержащим «битые» UTF8 символы, приводили к воспроизводимым багам с повреждением стека программы. Однако на конференции [highload][5] мы поговорили со Славой Ольховченковым, и он мне посоветовал посмотреть на hyperscan. Далее я перейду к сути и расскажу, что из этого получилось. [Читать дальше →][6]

[1]: https://github.com/01org/hyperscan
[2]: https://rspamd.com
[3]: https://rspamd.com/doc/modules/spamassassin.html
[4]: https://highsecure.ru/ast-rspamd.pdf
[5]: http://highload.ru
[6]: http://habrahabr.ru/post/275507/#habracut
#  Пользователи LastPass уязвимы для простейшей фишинговой атаки в Chrome
habrabot (difrex,1) → All  –  16:00:04 2016-01-19


![image][1] Один из наиболее популярных менеджеров паролей, LastPass, несколько раз испытывал проблемы с безопасностью. К примеру, [сервис взломали][2] летом 2015 года, после чего пользователям пришлось менять свои данные для доступа к LastPass. В ноябре прошлого же года специалисты по информационной безопасности обнаружили у сервиса ряд багов, позволявших злоумышленникам получить доступ к учетным данным пользователей. Теперь же обнаружилось, что и двухфакторная защита сервиса не спасает, если злоумышленник будет использовать простейшую фишинговую атаку. Специалист по информационной безопаности Шон Кессиди, обнаруживший уязвимость, придумал и название для нее — «LostPass». Для того, чтобы продемонстрировать уязвимость, специалист создал специальный инструмент. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/4cf/966/5a3/4cf9665a333885b2c16930dfe0d630f6.png
[2]: http://habrahabr.ru/company/defconru/blog/260383/
[3]: http://habrahabr.ru/post/275443/#habracut
#  [Из песочницы] Немного о модульной системе языка Rust
habrabot (difrex,1) → All  –  13:00:04 2016-01-19




#### Чуть-чуть о статье

В этой статье будет идти речь о самых основных способах использования модулей в данном языке (используемая ОС: Linux). Всем известно, что лучший способ запомнить информацию надолго — это предоставить её кому-либо в виде лекции. Для этого и была написана данная статья — чтобы помочь самому себе, но буду очень рад, если она поможет и тебе, читатель. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/275467/#habracut
#  Про трекпоинт и эмуляцию мыши
habrabot (difrex,1) → All  –  10:30:03 2016-01-19




# Зачем это нужно и как реализовать программно



## Много рассуждений

В предыдущей статье про настройку док-станций, я упоминал как тяжко, в свое время, мне было пользоваться лаптопами «потребительского» сегмента. Отсутствие docking-port'a и необходимость каждый раз по приходу домой или на работу подключать кучу кабелей — все это неприятно и раздражало, но что действительно вызывало страдания, так это отсутствие трекпоинта: той самой «красной пимпочки», которую можно встретить на лаптопах от IBM/Lenovo (синяя или серая в случае HP и DELL). Подробней можно почитать на той же [Википедии][1]. Зачем он нужен? Когда большая часть операций производится с клавиатуры, будь то написание кода, либо работа в командной оболочке, необходимость переместить руку на мышь дабы переместить графический курсор и что-нибудь там кликнуть не вызывает особой радости. ![][2] [Читать дальше →][3]

[1]: https://ru.wikipedia.org/wiki/Тензометрический_джойстик
[2]: https://habrastorage.org/files/fe5/76c/4d1/fe576c4d11364046945f1d144315c874.png
[3]: http://habrahabr.ru/post/275427/#habracut
#  Измерение веса руды по току статора. Практика. Часть 1. Алгоритм обработки сигналов в МК
habrabot (difrex,1) → All  –  08:30:03 2016-01-19


В прошлой [статье][1] мы рассмотрели теоретически основы измерения веса руды в сосуде ШПУ по измерению силы, развиваемым двигателем при подъеме. Схемотехнически подготовили сигналы тока и напряжения статора двигателя для обработки их в МК. В этой статье мы рассмотрим программную реализацию вычисления массы поднимаемого груза на МК. Для того что бы приступить к написанию программы для МК, необходимо разобраться, как правильно нужно данные сигналы в МК обрабатывать. Итак приступим. Сигналы тока и напряжения представляют собой синусоидальный сигнал, в основе своей содержащий основную частоту питающей сети (для наших реалий 50 Гц). Про гармоники и прочие составляющие в сетевом напряжении говорить не будем, они есть и оказывают влияние на качество сети и динамические свойства электродвигателей. На любом производстве с ними борются по мере сил, так что их влияние, пусть и не ничтожно, но все-таки мало. Останавливаться на этом не станем. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/275141/
[2]: http://habrahabr.ru/post/275459/#habracut
#  Автоматизация Jira на Groovy
habrabot (difrex,1) → All  –  19:00:06 2016-01-18






В крупных организациях часто возникает необходимость прикрутить к JIRA какой-либо дополнительный функционал, которого нет в стандартной поставке: автоматизацию, интеграцию с другими системами и прочие кастомизации. Зачастую это решается сторонними плагинами, в **Atlassian Market** их огромное количество. Но что делать, если подходящего плагина нет? Или он стоит 3000$, а вам нужна всего одна функция в нем? Очевидно, написать свой. Ещё один вариант для расширения — плагины, добавляющие возможность использовать свои скрипты в JIRA: [ScriptRunner ][1](Groovy), [Jira Scripting Suite][2] (SIL), [JJupin][3] (Jython). В этой статье я расскажу о самом популярном и функциональном из них — [ScriptRunner][4] от [Adaptavist][5]. [Читать дальше →][6]

[1]: https://marketplace.atlassian.com/plugins/com.onresolve.jira.groovy.groovyrunner
[2]: https://marketplace.atlassian.com/plugins/com.quisapps.jira.jss
[3]: https://marketplace.atlassian.com/plugins/com.keplerrominfo.jira.plugins.jjupin
[4]: https://scriptrunner.adaptavist.com
[5]: http://www.adaptavist.com
[6]: http://habrahabr.ru/post/271805/#habracut
#  [Из песочницы] 3 место за 11 шагов в конкурсе по JavaScript от Hola
habrabot (difrex,1) → All  –  12:30:08 2016-01-18


Наверняка у многих из вас перед глазами уже мелькали заголовки статей с [конкурсом от Hola][1], который недавно подошел к своему логическому завершению. В [окончательных результатах][2] мне посчастливилось быть на 3 месте. По этой причине я позволил себе поделиться описанием [своего решения][3], а также того, как я до него докатился. [Читать дальше →][4]

[1]: http://habrahabr.ru/company/hola/blog/270847/
[2]: http://habrahabr.ru/company/hola/blog/275111/
[3]: https://github.com/hola/challenge_mail_filter/blob/master/submissions/Evgeny%20Zeyler/filter.js
[4]: http://habrahabr.ru/post/275343/#habracut
#  Заметки о SQL и реляционной алгебре
habrabot (difrex,1) → All  –  12:00:03 2016-01-18


![][1] На Хабре и за его пределами часто [обсуждают][2] реляционную алгебру и SQL, но далеко не так часто акцентируют внимание на связи между этими формализмами. В данной статье мы отправимся к самым корням теории запросов: реляционному исчислению, реляционной алгебре и языку SQL. Мы разберем их на простых примерах, а также увидим, что бывает полезно переключаться между формализмами для анализа и написания запросов. Зачем это может быть нужно сегодня? Не только специалистам по анализу данных и администраторам баз данных приходится работать с данными, фактически мало кому не приходится что-то извлекать из (полу-)структурированных данных или трансформировать уже имеющиеся. Для того, чтобы иметь хорошее представление почему языки запросов устроены определенным образом и осознанно их использовать нужно разобраться с ядром, лежащим в основе. Об этом мы сегодня и поговорим. Большую часть статьи составляют примеры с вкраплениями теории. В конце разделов приведены ссылки на дополнительные материалы, а для заинтересовавшихся и небольшая подборка литературы и курсов в конце. Содержание

* [Реляционная алгебра][3]
* [SQL][4]
* [Реляционное исчисление][5]
* [Равенство формализмов (теорема Кодда)][6]
* [Conjunctive Queries (CQ)][7]
* [Вычислительная сложность][8]
* [Свойства и анализ запросов][9]
* [Пример использования RA для оптимизации запросов][10]
* [Литература, материалы и слайды][11]

[Читать дальше →][12]


>> Читать далее
#  Microsoft заставит перейти на Windows 10 владельцев новых микропроцессоров
habrabot (difrex,1) → All  –  09:30:03 2016-01-18


Компания [анонсировала][1] в своем блоге информацию, согласно которой владельцы компьютеров с микропроцессором современной архитектуры Intel Core Skylake и установленной на них Windows 7 или Windows 8.1 досрочно лишаться возможности получать необходимые обновления. Пользователям таких ОС на микропроцессорах указанной архитектуры предлагается обновиться до Windows 10 в течение 18 месяцев. После июля 2017 г. не перешедшие на эту ОС пользователи будут лишены возможности получать обновления в полном объеме. ![][2] Microsoft указывает, что устройства на архитектуре Skylake под управлением Windows 10 работают гораздо эффективнее чем указанные версии Windows. Возможно, это стало одной из причин того, что компания досрочно прекратит их поддержку (т. н. best supported Windows experience) и, таким образом, будет стимулировать пользователей к переходу на новую ОС. После июля 2017 г. критические и прочие обновления для Windows 7 и 8.1 на Skylake будут доставляться только в том случае, если компания сможет обеспечить их «полную совместимость и надежность» с другими архитектурами. [Читать дальше →][3]

[1]: https://blogs.windows.com/windowsexperience/2016/01/15/windows-10-embracing-silicon-innovation/
[2]: https://habrastorage.org/files/aa0/fda/97b/aa0fda97bfad4128a62fdc83ffa70b33.png
[3]: http://habrahabr.ru/post/275275/#habracut
#  Работа инфраструктуры Tor: подробная визуализация в проекте TorFlow
habrabot (difrex,1) → All  –  09:30:03 2016-01-18


Для инструмента, который должен обеспечивать анонимность пользователя в сети, Tor удивительно «прозрачен». Как [известно][1], c помощью Tor пользователи могут сохранять анонимность в интернете при посещении сайтов, ведении блогов, отправке мгновенных и почтовых сообщений, а также при работе с другими приложениями, использующими протокол TCP. Анонимизация трафика обеспечивается за счёт использования распределённой сети серверов — узлов. Технология Tor также обеспечивает защиту от механизмов анализа трафика, которые ставят под угрозу не только приватность в интернете, но также конфиденциальность коммерческих тайн, деловых контактов и тайну связи в целом. Компания, которая занимается визуализацией данных, сейчас собрала доступную в Сети информацию о размещении узлов Tor, обслуживающих серверах, пропускной способности некоторых сетей и дата-центров, задействованных в системе Tor. Эту информацию визуализировали и представили в доступном для понимания виде. [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/Tor
[2]: http://habrahabr.ru/post/275289/#habracut
#  9 секретов онлайн-платежей. Часть 1: настройка 3-D Secure
habrabot (difrex,1) → All  –  09:30:03 2016-01-18


![image][1]_Российский рынок e-commerce живет в условиях кризиса, сейчас то время, когда одной из ключевых задач для успешного «выживания» является настройка всех «винтиков» механизма вашего сайта. Один из таких «винтиков» — это сервис приема онлайн-платежей на сайте. При правильном подходе он может стать фактором успеха, а при неверном использовании — привести к серьезным проблемам. В данном выпуске, первом из серии «9 секретов онлайн-платежей», содержащей восьмилетний опыт работы команды [PayOnline][2], мы поделимся правилами настройки протокола 3-D Secure для успешной обработке платежей на вашем сайте._

### Краткий экскурс в историю вопроса

Создатель протокола 3-D Secure (3DS) – международная платежная система Visa (программа Verified by Visa). 3DS поддерживается ключевыми мировыми платежными системами: MasterCard SecureCode и J/Secure от JCB International. [Читать дальше →][3]

[1]: https://habrastorage.org/files/15b/95f/26f/15b95f26ffec455a872253f31a4e7c56.JPG
[2]: http://payonline.ru/?utm_source=habrahabr&utm_medium=referral&utm_campaign=webpayments-main
[3]: http://habrahabr.ru/post/275101/#habracut
#  Взлом банковских карт, автомобилей и мессенджеров и др. особенности обучения на лучшей магистратуре Нидерландов
habrabot (difrex,1) → All  –  09:30:03 2016-01-18


Всем привет! Меня зовут Марат Нигматуллин. Я — студент[ Университета Иннополис][1], который готовит специалистов по информационным технологиям. Вуз активно сотрудничает в вузами-партнерами из числа лучших университетов мира с целью адаптации лучших практик. Сейчас я нахожусь как раз в одном из таких — в Университете Амстердама и обучаюсь по программе [System and Network Engineering][2], с будущего учебного года эта программа будет предлагаться уже самим Университетом Иннополис. История, которую я хочу рассказать, достаточно простая, но от этого не менее интересная. Нюансы обучения за рубежом, сходство нидерландского и русского языков, интересные практические задания, университетская комиссия по этике и ещё много других подробностей под катом. ![][3] [Читать дальше →][4]

[1]: http://university.innopolis.ru/
[2]: http://gss.uva.nl/future-msc-students/information-sciences/content35/study-programme/study-programme.html#anker-research-projects
[3]: https://habrastorage.org/files/b2e/ca5/471/b2eca54719e54e0691ec9442a809400c.jpg
[4]: http://habrahabr.ru/post/275161/#habracut
#  Опыт использования Intel Multi-OS Engine для разработки iOS-приложения на Java
habrabot (difrex,1) → All  –  09:30:03 2016-01-18


![][1]В августе на Intel Developer Forum в Сан-Франциско [мы][2] представили нативное мобильное приложение для iPаd для мониторинга пациентов, разработанное с помощью платформы [Intel Multi-OS Engine][3]. Приложение предоставляет данные о наиболее важных параметрах состояния пациента, подключаясь к прикроватным мониторам по WiFi-сети (более подробно о самом приложении и его функционале можно почитать на [нашем сайте][4]). В данной статье мы поделимся опытом использования платформы Intel Multi-OS Engine, которая позволяет разрабатывать нативные приложения для iOS на Java. [Читать дальше →][5]

[1]: https://habrastorage.org/files/2fc/7f3/b0b/2fc7f3b0bfed4935a1fb327bdc72de3a.png
[2]: http://auriga.com/
[3]: https://software.intel.com/en-us/multi-os-engine
[4]: http://auriga.com/blog/ru/auriga-idf-intel-inde/
[5]: http://habrahabr.ru/post/275305/#habracut
#  [recovery mode] Шифрование фотографий в Google Диск
habrabot (difrex,1) → All  –  09:30:03 2016-01-18


Нужно зашифровать важные фотографии и другие документы, поместить их в облако в зашифрованном виде и синхронизировать с другим Android-устройством? Вам кажется, что все это довольно сложно, а работать с зашифрованными данными будет неудобно. Это не так. В этой статье будет показано, как реализовать данный сценарий всего за две минуты. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/2fe/880/b98/2fe880b986b947cf8098adc97c5da16b.jpg
[2]: http://habrahabr.ru/post/274999/#habracut
#  [Перевод] Перевод: full stack разработчик — это миф
habrabot (difrex,1) → All  –  07:00:02 2016-01-18


![][1]Вашему вниманию предлагается перевод любопытной статьи [Скотта Хадфилда][2], CTO и со-основателя стартапа “Hello Pretty”. Сейчас в половине вакансий, связанных с вебом и серверной разработкой, встречается волшебная фраза “full stack”. Чаще всего с эпитетами вроде “джедай”, “супер-герой” и “ниндзя”. Кого ищут все эти люди, и кого им на самом деле удается получить в свою команду? [Читать дальше →][3]

[1]: https://habrastorage.org/files/aaa/5fe/8a5/aaa5fe8a5b9e4681866a1a5543d6c35e.jpg
[2]: https://medium.com/@hadsie
[3]: http://habrahabr.ru/post/275229/#habracut
#  [recovery mode] Всего хорошего и спасибо за рыбу
habrabot (difrex,1) → All  –  04:30:03 2016-01-18


Я бы очень хотел поднять проблему негатива в русском сегменте интеренета и на данном ресурсе в частности, но мне кажется, что всем будет как всегда… Поэтому я просто быстро выскажу свою точку зрения. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/275297/#habracut
#  Атака на пользователей Linux или как собрать ботнет руками админов
habrabot (difrex,1) → All  –  17:30:02 2016-01-17


Для чистоты эксперимента предлагаю перейти по [ссылке][1] и выполнить по указанной инструкции «установку полезных пакетов». Инструкция для владельцев Ubuntu. По ссылке всего лишь «демонстрация» данного вида атаки, но в любом случае данные действия лучше производить на виртуалке. Ниже описание того, что случилось, в том случае, если вы не поленились произвести указанные выше действия. [Читать дальше →][2]

[1]: http://sli.su/linux_copy/index.html
[2]: http://habrahabr.ru/post/275075/#habracut
#  [Перевод] Лучшая подарочная книга для начитанных фанатов JavaScript
habrabot (difrex,1) → All  –  12:30:02 2016-01-17


Здравствуйте, уважаемые хаброжители! Мы вынашиваем амбициозные планы по изданию вот такой [книги][1]: ![][2] Как вы понимаете, эта книга требует не только литературного перевода, но и классной полиграфии, хорошей бумаги, широкого формата и т.п. Поэтому предлагаем ознакомиться с замечательной публикацией об этой книге, появившейся в блоге автора Ангуса Кролла спустя несколько месяцев после публикации оригинала. Приятного чтения, и поучаствуйте пожалуйста в опросе! [Читать дальше →][3]

[1]: http://www.amazon.com/Hemingway-Wrote-JavaScript-Angus-Croll/dp/1593275854/
[2]: https://habrastorage.org/files/d9f/bf7/570/d9fbf7570a4c44ebbe92ace3e20a5d49.jpg
[3]: http://habrahabr.ru/post/275245/#habracut
#  [recovery mode] Добавляем в игру мультиплеер с помощью Node.JS и Frida. Часть 1
habrabot (difrex,1) → All  –  07:00:03 2016-01-17


![][1] На хабре уже есть пару упоминаний об инструменте Frida([Frida-node или немножко странного кода][2], [Точки соприкосновения JavaScript и Reverse Engineering][3]). В одной статье уже упоминается использование Frida на практике, однако почти везде инструмент используют как фреймворк для реверс-инжиниринга и исследования функционала программ (может даже взлом).   Я же хочу рассказать о процессе превращения одной любимой для меня однопользовательской игрушки в полноценную, многопользовательскую.   [Читать дальше →][4]

[1]: https://habrastorage.org/files/c6c/138/ef1/c6c138ef18b148f0a9b3553f6f0353ad.jpeg
[2]: http://habrahabr.ru/post/268997/
[3]: http://habrahabr.ru/company/dsec/blog/253309/
[4]: http://habrahabr.ru/post/275235/#habracut
#  Язык программирования APL
habrabot (difrex,1) → All  –  19:00:03 2016-01-16


Тысячи языков программирования были изобретены за первые 50 лет развития компьютеров. Одни из них были характерными, другие следовали традиционным, эволюционным путем их предшественников. У некоторых революционных языков наблюдалась четкая направленность, дифференцирующая их от большего количества собратьев общего назначения. LISP подходил для обработки списка. SNOBOL использовался для обработки текстовых данных. SIMSCRIPT помогал в моделировании. А язык APL предназначался для математики с акцентом на обработку множества. APL (от А Programming Language — язык программирования) был разработан в 1957 г. профессором Гарварда Кеннетом Айверсоном (Kenneth Iverson), который в дальнейшем перешел работать в фирму IBM. ![][1] _Кеннет Айверсон (1920 — 2004) — канадский ученый в области теории вычислительных систем, создатель языка программирования APL_ [Читать дальше →][2]

[1]: https://habrastorage.org/files/c20/413/6a2/c204136a28374cf6a2c912353ab687b8.jpg
[2]: http://habrahabr.ru/post/275177/#habracut
#  Система плагинов и модулей в Unreal Engine 4
habrabot (difrex,1) → All  –  19:00:03 2016-01-16


![][1] Здравствуйте меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби. Сегодня я расскажу как создать свой модуль, а потом как создать плагин в Unreal Engine 4. [Читать дальше →][2]

[1]: https://habrastorage.org/files/932/2a8/5d2/9322a85d2f824646bfeb3682a3278488.jpg
[2]: http://habrahabr.ru/post/275239/#habracut
#  Измерение веса полезных ископаемых в горнорудной промышленности. Теоретическая основа
habrabot (difrex,1) → All  –  11:30:03 2016-01-16


В горнодобывающей промышленности для транспортирования полезных ископаемых из шахты на поверхность применятся много техники. Это самоходные установки, наклонные съезды с вагонами, шахтные подъемные установки (ШПУ или ). Вот о ШПМ мы и поговорим. ![][1] Они бывают разных типов, как по используемым подъемным сосудам (скип, клеть, бадья), так и количеством подвешенных подъемных сосудов (одноконцевые, двуконцевые). Очень много нюансов там, в плане механики. Посмотреть описание можно [тут][2] и [тут][3]. Приводы тоже бывают разные. Постоянного и переменного тока. Для переменного тока это могут быть высоковольтные асинхронные электродвигатели с фазным ротором, синхронные электродвигатели, низковольтные асинхронные электродвигатели с короткозамкнутым ротором. Поговорим о ШПУ с высоковольтным асинхронным электродвигателем с фазным ротором. [Читать дальше →][4]

[1]: https://habrastorage.org/files/5c6/40c/0a8/5c640c0a81094475b4cc0acc0c71aa3a.jpg
[2]: https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%85%D1%82%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%B4%D1%8A%D1%91%D0%BC%D0%BD%D0%B0%D1%8F_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0
[3]: http://dic.academic.ru/dic.nsf/ruwiki/1198380
[4]: http://habrahabr.ru/post/275141/#habracut
#  Как правильно внести свою лепту в Open Source проект: простые подсказки
habrabot (difrex,1) → All  –  11:00:04 2016-01-16


Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные. Такие проекты как [Bootstrap][1], [Angular.js][2], [Elasticsearch][3], [Symfony Framework][4], [Swift][5] и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир. Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д. Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат. ![][6] [Читать дальше →][7]

[1]: https://github.com/twbs/bootstrap
[2]: https://github.com/angular/angular.js
[3]: https://github.com/elastic/elasticsearch
[4]: https://github.com/symfony/symfony
[5]: https://github.com/apple/swift
[6]: https://habrastorage.org/files/e52/8f0/8cd/e528f08cd83a4585a6f092776f535678.jpg
[7]: http://habrahabr.ru/post/275219/#habracut
#  Генераторы дискретно распределенных случайных величин
habrabot (difrex,1) → All  –  08:30:05 2016-01-16


Данная статья является продолжением поста [ Генераторы непрерывно распределенных случайных величин][1]. В этой главе учитывается, что все теоремы из предыдущей статьи уже доказаны и генераторы, указанные в ней, уже написаны. Как и ранее, у нас имеется некий базовый генератор натуральных чисел от 0 до RAND\_MAX:

unsigned long long BasicRandGenerator() {
unsigned long long randomVariable;
// some magic here
...
return randomVariable;
}


С дискретными величинами все интуитивно понятнее. Функция распределения дискретной случайной величины:




>> Читать далее
#  Читаем контейнер закрытого ключа КриптоПро средствами OpenSSL
habrabot (difrex,1) → All  –  21:00:06 2016-01-15


Речь пойдет о файлах primary.key, masks.key и header.key, которые лежат в директории ххххх.000 на флешке. Данные файлы входят в состав криптоконтейнера закрытого ключа электронной подписи криптопровайдера КриптоПро, формат которого нигде не опубликован. Целью данной статьи является чтение контейнера и преобразование закрытого ключа в формат, который может быть прочитан в библиотеке OpenSSL. Долгое время было распространено ошибочное суждение, что достаточно сделать нечто вида (primary\_key XOR masks\_key) и мы получим закрытый ключ в чистом (raw) виде, однако забегая вперед, можно утверждать, что в КриптоПро было применено более сложное преобразование, в худшем случае состоящее из более чем 2000 (двух тысяч) операций хеширования. Стоит упомянуть о существовании утилиты [P12FromGostCSP][1] которая позволяет конвертировать ключ в формат P12, доступный для работы с OpenSSL, но утилита имеет следующие существенные недостатки:

* Читает контейнер не напрямую, а через криптопровайдер, поэтому там, где кроме OpenSSL ничего нет, не работает.
* Если в свойствах ключа не отмечено, что ключ «экспортируемый», то конвертировать его невозможно.
* В демо версии не формирует файл с ключом, эта возможность присутствует только в платной версии.



# Файл primary.key

Содержит 32 байта ключа в формате Asn1. Это только половина ключа, полный ключ получается при делении этого числа по модулю Q на маску. Поле, хранящее модуль Q в библиотеке OpenSSL имеет название order. Маска лежит в файле masks.key ![primary.key][2] [Читать дальше →][3]

[1]: http://soft.lissi.ru/downloads/
[2]: https://habrastorage.org/files/0aa/ee2/1ef/0aaee21ef1774fd790b79cdaa1aa6bf3.png

>> Читать далее
#  Security Week 02: уязвимые вебкамеры, продолжение истории с Juniper, Zero-Day в Silverlight и как его нашли
habrabot (difrex,1) → All  –  16:30:03 2016-01-15


![][1]На этой неделе одной из самых обсуждаемых новостей стало [окончание][2] поддержки Microsoft Internet Explorer 8, 9 и 10. Данные версии браузеров перестанут получать обновления даже в случае обнаружения серьезных уязвимостей. Новость достаточно очевидная, чтобы не тратить на нее много места в дайджесте, но она наводит меня на еще одну мысль. Тем, кто пользуется IE 8, уже давно пора обновиться, и возможно прекращение поддержки их наконец-то подтолкнет к этому шагу. Обновиться достаточно просто, хотя кому-то придется для этого купить новый компьютер, но и это — не большая проблема. Проблемы начнутся, когда «компьютеров» с аналогичным подходом к разработке и развитию, когда типичный софт и железо устаревают максимум за 2-3 года, будет несколько десятков в каждой отдельно взятой квартире — от счетчика электроэнергии до чайника и электроплиты. Заметный упор в сторону «умных» бытовых приборов на [CES][3] (пока в основном довольно странных и безумно дорогих холодильников и стиральных машин) показывает, что это произойдет довольно скоро. В нынешнем виде такие устройства могут работать десятилетиями. А в будущем? Представьте себе экосистему Android, распространенную на утюги и кофемолки. Получатся небезопасные устройства, которые надо обновлять, небезопасные устройства, которые не поддерживаются производителем, небезопасные устройства, о которых даже сам производитель не знает, что они небезопасные. Какая-то не очень радужная перспектива, но пока я не вижу других вариантов развития. Производителям «умных вещей», увы, придется набить те же шишки на лбу, которые для производителей «больших» операционных систем давно пройденный этап. Все выпуски дайджеста — [тут][4]. [Читать дальше →][5]

[1]: https://habrastorage.org/files/f7b/595/448/f7b595448388499ba73b4e7ef9352a81.jpg
[2]: https://threatpost.ru/older-ie-versions-losing-security-support-on-tuesday/14136/
[3]: https://blog.kaspersky.ru/bionicman-ces-2016-impressions/10442/
[4]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[5]: http://habrahabr.ru/post/275185/#habracut
#  В клиенте OpenSSH обнаружена серьёзная уязвимость CVE-2016-0777
habrabot (difrex,1) → All  –  12:30:03 2016-01-15


![][1] Сегодня стало известно о новой уязвимости в клиенте OpenSSH получившей идентификаторы CVE-2016-0777 и CVE-2016-0778. Ей подвержены все версии программы от 5.4 до 7.1. Обнаруженный баг позволяет осуществить атаку, **приводящую к утечке приватного ключа**. Аутентификация ключа сервера предотвращает атаку типа man-in-the-middle, так что злоумышленникам понадобится сначала получить доступ к машине, на которую вы пытаетесь зайти. Хотя, при подключении к машине впервые, не сверяя ключ, MITM возможен. До тех пор пока вы не обновите уязвимые системы рекомендуется использовать следующий фикс:

echo -e 'Host *\nUseRoaming no' >> /etc/ssh/ssh_config


Обновления для различных ОС уже выходят, в том числе выпущена [portable версия][2] OpenSSH 7.1p2. Клиент OpenSSH версий от 5.4 до 7.1 содержит код экспериментальной функции «roaming», позволяющей продолжать сессии. Серверная часть этой функциональности никогда не была опубликована, но существующий код клиента уязвим — злоумышленники могут получить часть памяти клиентской машины, содержащую приватный ключ. **По умолчанию эта функция включена**, поэтому узявимость достаточно серьёзна. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c9e/9d7/28c/c9e9d728c5a1419295e7340f2c1cb795.jpg
[2]: https://lists.mindrot.org/pipermail/openssh-unix-dev/2016-January/034680.html
[3]: http://habrahabr.ru/post/275137/#habracut
#  [Из песочницы] Проектирование сложных приложений в Flask
habrabot (difrex,1) → All  –  11:30:02 2016-01-15


_Данная статья, [размещенная][1] в репозитории Flask на GitHub, является плодом коллективного творчества небезразличных программистов, а изначальный её автор — [Brice Leroy][2]. Она представляет собой достаточно полезный для начинающих материал по Flask. Лично для меня он стал ответом на многие простые вопросы, основным из которых был «как структурировать проект». Для хоть сколько-то опытных программистов она вряд ли будет полезна, многие могут вовсе не согласиться с описанными принципами, однако для находящихся на ранней стадии обучения она может стать толчком к развитию, как стала для меня. Именно поэтому я сделал перевод на русский язык — у этой статьи очень низкий порог вхождения и стоит сделать его еще ниже. Описанный пример протестирован на Python 3.5, Flask 0.10, Flask-SQLAlchemy 2.1, Flask-WTG 0.9._ [Читать дальше →][3]

[1]: https://github.com/mitsuhiko/flask/wiki/Large-app-how-to
[2]: //bbrriiccee@gmail.com">http://bbrriiccee@gmail.com
[3]: http://habrahabr.ru/post/275099/#habracut
#  АНБ помогало британским спецслужбам использовать уязвимости в продуктах Juniper
habrabot (difrex,1) → All  –  11:00:03 2016-01-15


[![][1]][2] В нашем блоге мы пишем о развитии собственного облачного проекта [1cloud][3], а также рассматриваем интересные вопросы, связанные с технологиями. Один из самых важных аспектов построения инфраструктуры — это выбор оборудования и обеспечение его безопасности. В частности, компаниям важно знать, в каких из использующихся ими инструментах обнаруживаются ошибки безопасности. В конце 2015 года СМИ [опубликовали документ][4] от февраля 2011 года, под грифом «совершенно секретно», в котором говорится о том, что британская разведывательная служба Центр правительственной связи (The Government Communications Headquarters, GCHQ) с помощью специалистов АНБ получила возможность тайно пользоваться уязвимостями в 13 моделях межсетевых экранов от Juniper Networks – одного из ведущих производителей телекоммуникационного оборудования в мире (в нашей системе ни один из них не используется). Этот шестистраничный документ, озаглавленный «Оценка возможностей использования Juniper в целях разведки», поставил вопрос о мере ответственности разведывательных агентств за само появление [проблем][5] с безопасностью сетевой защиты Juniper, о которых компания сообщила в декабре прошлого года. [Читать дальше →][6]

[1]: https://habrastorage.org/files/be7/5fa/d1b/be75fad1bc5145fba3dff050f6cf1a17.jpg
[2]: http://habrahabr.ru/company/1cloud/blog/275167/
[3]: http://1cloud.ru/
[4]: https://theintercept.com/2015/12/23/juniper-firewalls-successfully-targeted-by-nsa-and-gchq/
[5]: https://forums.juniper.net/t5/Security-Incident-Response/Important-Announcement-about-ScreenOS/ba-p/285554
[6]: http://habrahabr.ru/post/275167/#habracut
#  [Из песочницы] Слабые ссылки в PHP 7
habrabot (difrex,1) → All  –  09:30:03 2016-01-15


[Слабая ссылка][1] — механизм позволяющий ссылаться на объект, при этом не запрещая сборщику мусора удалять объект в языках программирования с автоматической сборкой мусора. В первом приближении слабая ссылка обозначает что объект нам конечно нужен, но если есть необходимость, его можно и удалить, как нибудь обойдемся. Изначально в PHP концепция слабых ссылок отсутствует, но это довольно легко исправить. Далее речь пойдет о PHP 7. [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%B0%D0%B1%D0%B0%D1%8F_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0
[2]: http://habrahabr.ru/post/275151/#habracut
#  В OpenSSH обнаружена серьёзная уязвимость CVE-2016-0777
habrabot (difrex,1) → All  –  02:30:05 2016-01-15


![][1] Сегодня стало известно о новой уязвимости в клиенте OpenSSH получившей идентификаторы CVE-2016-0777 и CVE-2016-0778. Ей подвержены все версии программы от 5.4 до 7.1. Обнаруженный баг позволяет осуществить атаку, **приводящую к утечке приватного ключа**. Аутентификация ключа сервера предотвращает атаку типа man-in-the-middle, так что злоумышленникам понадобится сначала получить доступ к машине, на которую вы пытаетесь зайти. Хотя, при подключении к машине впервые, не сверяя ключ, MITM возможен. До тех пор пока вы не обновите уязвимые системы рекомендуется использовать следующий фикс:

echo -e 'Host *\nUseRoaming no' >> /etc/ssh/ssh_config


Обновления для различных ОС уже выходят, в том числе выпущена [portable версия][2] OpenSSH 7.1p2. Клиент OpenSSH версий от 5.4 до 7.1 содержит код эксперементальной функции «roaming», позволяющей продолжать сессии. Серверная часть этой функциональности никогда не была опубликована, но существующий код клиента уязвим — злоумышленники могут получить часть памяти клиентской машины, содержащую приватный ключ. **По умолчанию эта функция включена**, поэтому узявимость достаточно серьёзна. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c9e/9d7/28c/c9e9d728c5a1419295e7340f2c1cb795.jpg
[2]: https://lists.mindrot.org/pipermail/openssh-unix-dev/2016-January/034680.html
[3]: http://habrahabr.ru/post/275137/#habracut
#  [Из песочницы] Простое снятие «навороченной» защиты kraftway credo vv18
habrabot (difrex,1) → All  –  17:30:03 2016-01-14


По государственной программе нам на предприятие выделили несколько таких тонких клиентов. Многие были рады, что он занимает мало места (крепится сзади на монитор), абсолютно бесшумно работает в отсутствие вентиляторов и сравнительно шустро работает по сравнению со старыми компьютерами которые стояли раньше. Самое интересное началось позже, когда пользователи стали терять ключи eToken. ![image][1] [Читать дальше →][2]

[1]: http://i6.pixs.ru/storage/6/3/1/1jpg_3486577_11334631.jpg
[2]: http://habrahabr.ru/post/275123/#habracut
#  Недавно принятый стандарт Wi-Fi 802.11ah может вернуть уже забытые проблемы безопасности
habrabot (difrex,1) → All  –  16:30:03 2016-01-14


![image][1] Как уже [упоминалось на Хабре][2], разработчики решили порадовать потребителей новым протоколом Wi-Fi для интернета вещей. Правда, не исключено, что обеспечивать безопасность в процессе использования данного продукта будет гораздо сложнее, чем раньше. Новый протокол на базе стандарта 802.11ah от IEEE известен в кругах Wi-Fi Alliance, как Wi-Fi HaLow. Он отличается от ныне используемого Wi-fi, характерного для большинства современных устройств, несколькими ключевыми характеристиками. Во-первых, это маломощный протокол, который будет работать в диапазоне до гигагерца. Во-вторых, у нового продукта гораздо большая дальность, чем у традиционного Wi-Fi, и именно благодаря данной особенности он будет чрезвычайно эффективен в приложениях, регулирующих функционирование светофоров и камер наблюдения в умных городах. Новая версия Wi-Fi также может пригодиться для соединения небольших, маломощных гаджетов, таких как смарт-часы, фитнес-браслеты с другими полезными аксессуарами и предметами одежды, для обеспечения связи с которыми сейчас используется Bluetooth. Wi-Fi Alliance, утверждающий устройства, поддерживающие Wi-Fi, и тестирующий новую разработку, уверяет, что она является расширенной и улучшенной версией существующего протокола. «Wi-Fi HaLow прекрасно соответствует уникальным потребностям Умного дома, Умного города и промышленных рынков благодаря низкой энергозатратности, способности работать через стены. Причем дальность протокола существенно превышает показатели современного Wi-Fi», — отмечает Эдгар Фигероа, президент и исполнительный директор Wi-Fi Alliance. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/fa1/6bc/da0/fa16bcda097f37bdc375a8283fd293b6.jpg
[2]: http://habrahabr.ru/post/274613/
[3]: http://habrahabr.ru/post/275093/#habracut
#  Кибербезопасность 2015 года
habrabot (difrex,1) → All  –  16:00:04 2016-01-14


Прошедший 2015 год был весьма «богатым» на кибератаки и показал, что даже самая надежная защита крупных международных корпораций подвержена взлому. Даже супер защищенные компании не устояли перед нападением хакеров. Такие, как: американская Служба управления персоналом; американская компания по медицинскому страхованию Anthem и Premera; сайта знакомств для супружеских измен Ashley Madison; сеть отелей Mandarin Oriental, Hilton и Trump Hotels; британская телекоммуникационная компания TalkTalk и гонконгский интернет-магазин VTech. В 2014 году группа хакеров взломала известную кинокомпанию Sony Pictures, планомерно выкладывая в сеть личные данные сотрудников, пиратские копии фильмов и другую секретную информацию. Атака принесла убытки от которых кинокомпания оправляется до сих пор. В прошедшем году особой популярности набрали кибербанды, занимающиеся вымогательством. Такие вот, как хакеры группы под названием DD4BC, использующие DDoS-атаки для вымогательства денег от интернет-компаний, корпораций и частных людей. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/e9a/9d6/3af/e9a9d63afd114cbb9b31020c1a515c19.jpg
[2]: http://habrahabr.ru/post/274359/#habracut
#  Docker compose и объединение проектов с помощью mixer-a
habrabot (difrex,1) → All  –  15:30:03 2016-01-14


Одна из проблем, с которыми приходится столкиваться, занимаясь настройкой окружения для разработчиков, с использованием Docker и Docker-compose, это вопрос о том, как сводить вместе несколько различных проектов. При условии, что все проекты, конечно же, имеют `docker-compose.yml` файл.



Причин, по которым становится необходимо делать это, может быть несколько:

* Разработка низко связанных компонентов огромной системы. Где каждый проект, по сути, может являться отдельным самостоятельным приложением
* Подключение отдельных компонентов для тестирования. Вынесение `mock`-сервисов и тестов в отдельные контейнеры со своей логикой линковки и взаимодействия
* Внешнии, по отношению к проекту, системы, которые тем не менее 'живут' в docker среде

[Читать дальше →][1]

[1]: http://habrahabr.ru/post/274581/#habracut
#  Как студенты становятся продвинутыми программистами
habrabot (difrex,1) → All  –  14:00:02 2016-01-14


[][1] С момента возникновения программирования было написано множество приложений и библиотек, реализованы сотни алгоритмов, родилось и сменилось не одно поколение программистов. Достаточно внушительную долю специалистов в этой области за свою богатую историю подготовил Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики ([ИТМО][2]). Университет всячески способствует развитию молодых талантов – чтобы стать продвинутым программистом, студенту нужно лишь проявлять тягу к знаниям. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/spbifmo/blog/275071/
[2]: http://www.ifmo.ru/
[3]: http://habrahabr.ru/post/275071/#habracut
#  Школьник взломал email и получил доступ к личным данным главы Национальной разведки США
habrabot (difrex,1) → All  –  16:00:03 2016-01-13


[![][1]][2] Как сообщают американские СМИ, глава Национальной разведки США Джеймс Клеппер стал жертвой хакеров, которые смогли взломать его личную электронную почту и получить доступ к персональным сетевым учетным записям. [Читать дальше →][3]

[1]: https://habrastorage.org/files/cd6/169/92b/cd616992b89d4539b775b653c2a9c51c.jpg
[2]: http://habrahabr.ru/company/pt/blog/275031/
[3]: http://habrahabr.ru/post/275031/#habracut
#  [Перевод] Shazam: алгоритмы распознавания музыки, сигнатуры, обработка данных
habrabot (difrex,1) → All  –  15:30:04 2016-01-13


В ресторане заиграла почти забытая песня. Вы слушали её в далёком прошлом. Сколько трогательных воспоминаний способны вызвать аккорды и слова… Вы отчаянно хотите послушать эту песню снова, но вот её название напрочь вылетело из головы! Как быть? К счастью, в нашем фантастическом высокотехнологичном мире есть ответ на этот вопрос. У вас в кармане лежит смартфон, на котором установлена программа для распознавания музыкальных произведений. Эта программа – ваш спаситель. Для того чтобы узнать название песни, не придётся ходить из угла в угол в попытках выудить из собственной памяти заветную строчку. И ведь не факт, что это получится. Программа, если дать ей «послушать» музыку, тут же сообщит название композиции. После этого можно будет слушать милые сердцу звуки снова и снова. До тех пор, пока они не станут с вами единым целым, или – до тех пор, пока вам всё это не надоест. [][1]



[Мобильные технологии][2] и невероятный прогресс в области обработки звука дают [разработчикам алгоритмов][3] возможность создавать приложения для распознавания музыкальных произведений. Одно из самых популярных решений такого рода называется [Shazam][4]. Если дать ему 20 секунд звучания, неважно, будет ли это кусок вступления, припева или часть основного мотива, Shazam создаст сигнатурный код, сверится с базой данных и воспользуется собственным алгоритмом распознавания музыки для того, чтобы выдать название произведения. Как же всё это работает? [Читать дальше →][5]

[1]: http://habrahabr.ru/company/wunderfund/blog/275043/
[2]: http://www.toptal.com/mobile/context-aware-apps-and-complex-event-processing
[3]: http://www.toptal.com/algorithms
[4]: http://www.shazam.com/
[5]: http://habrahabr.ru/post/275043/#habracut
#  [Перевод] Мой подход к Class Based Views
habrabot (difrex,1) → All  –  14:00:02 2016-01-13


_Люк Плант (Luke Plant) — программист-фрилансер с многолетним стажем, один из ключевых разработчиков Django._ Когда-то я писал о своей [неприязни к Class Based Views (CBV) в Django][1]. Их использование заметно усложняет код и увеличивает его объём, при этом CBV мешают применять некоторые достаточно распространённые шаблоны (скажем, когда две формы представлены в одном view). И судя по всему, я [не единственный][2] из разработчиков Django, придерживающийся такой точки зрения. Но в этом посте я хочу рассказать об ином подходе, который я применил в одном из проектов. Этот подход можно охарактеризовать одной фразой: «_Создавайте свой собственный базовый класс_». [Читать дальше →][3]

[1]: http://lukeplant.me.uk/blog/posts/djangos-cbvs-were-a-mistake/
[2]: http://www.reddit.com/r/django/comments/1kc3go/cbv_lifecycle_documentation/cbnkwig
[3]: http://habrahabr.ru/post/274995/#habracut
#  [Из песочницы] DLP система своими руками
habrabot (difrex,1) → All  –  14:00:02 2016-01-13


Помимо основной задачи предотвращения утечек конфиденциальной информации у DLP-системы могут быть и второстепенные (дополнительные) задачи. К ним относятся:

* копирование передаваемых сообщений для расследования инцидентов безопасности, в будущем;
* устранение возможности оправки не только конфиденциальной информации, но и различной нежелательной (спама, оскорбительных выражений, информации эротического содержания, огромных объёмов данных и т.п.);
* фильтрация нежелательной информации при получении, а не только при отправке;
* устранения способов использования информационных ресурсов, сотрудниками, в личных целях;
* уменьшение трафика, оптимизация нагрузки каналов;
* контроль рабочего времени сотрудников.

Наша ручная DLP система не будет решать все поставленные задачи, а сосредоточиться только на:

* поиске определенных файлов в сети;
* составление отчетов и доставка отчетов системному администратору или офицеру безопасности;
* выполнение удаления, по определенным критериям.

>> Читать далее
#  Microsoft и Adobe исправили уязвимости в своих продуктах
habrabot (difrex,1) → All  –  14:00:02 2016-01-13


Компания Microsoft [выпустила][1] обновления для своих продуктов, которые закрывают 25 уникальных уязвимостей (6 обновлений со статусом Critical и еще 3 Important). Обновлению подверглись различные компоненты и драйверы Windows, веб-браузеры Internet Explorer и Edge, Office, а также продукт Exchange Server. Обновления не закрывают каких-либо уязвимостей, которые использовались в кибератаках на пользователей. Для Internet Explorer и Edge было закрыто всего по две уязвимости. ![][2] В свою очередь, Adobe выпустила обновление [APSB16-02][3], которое исправляет 17 уязвимостей в продуктах Reader и Acrobat, которые используются для просмотра и создания PDF-файлов. Большинство из закрытых уязвимостей позволяют атакующим удаленно исполнить код с использованием специального вредоносного файла PDF. [Читать дальше →][4]

[1]: https://technet.microsoft.com/library/security/ms16-Jan
[2]: https://habrastorage.org/files/6e7/65c/456/6e765c45605a41fa93e65c7951f251b8.jpeg
[3]: https://helpx.adobe.com/security/products/reader/apsb16-02.html
[4]: http://habrahabr.ru/post/274981/#habracut
#  Разные языки программирования и их области применения. Лекция в Яндексе
habrabot (difrex,1) → All  –  13:00:03 2016-01-13


Наш первый пост в этом году мы решили посвятить очень базовой теме, лекция на которую была прочитана в Малом ШАДе. Занимаются в нём старшеклассники, которым интересны технологии, отсюда специфичность изложения — лекция будет особенно интересна тем, кто только начинает программировать и задумывается о том, в каком направлении развиваться. Для них же у Яндекса есть курс [«Введение в программирование (С++)»][1], который можно пройти на платформе Stepic.org. Лектор Михаил Густокашин — куратор академических программ Яндекса, директор центра студенческих олимпиад факультета компьютерных наук ВШЭ. Михаил подготовил десятки победителей и призёров Всероссийских олимпиад по программированию.




В рамках лекции рассказывается о том, какие бывают языки программирования, чем они отличаются, как они появились и какие из них лучше, а какие — хуже. В начале речь немного пойдет об истории языков — как они появились, как люди начали программировать, как все развивалось, что сейчас происходит. Во второй части будет затронуто то, для каких задач какой язык подходит, как «выбрать себе любимый язык и получать удовольствие от жизни». Лектор также немного расскажет о том, как, по его мнению, всему этому научиться и потом устроиться на работу. Как всегда, под катом — подробная расшифровка лекции, чтобы вы могли сориентироваться в ее содержании. [Читать дальше →][2]

[1]: https://stepic.org/course/Введение-в-программирование-%28C%2B%2B%29-363/
[2]: http://habrahabr.ru/post/272759/#habracut
#  Кто вы, пишущие на Gherkin? Или корнишон в поисках целевой аудитории
habrabot (difrex,1) → All  –  12:00:03 2016-01-13


![][1]

Сценарий: Определение причин слабой распространенности Gherkin
Допустим я решил разобраться, почему Gherkin используется небольшим количеством команд
Когда начал анализ причин
Тогда понял, что неверно выбрана целевая аудитория


Не так давно среди моих знакомых возник вопрос: “Зачем Gherkin?”. Причем вопрос был поставлен не как вброс на лопате, а чтобы понять его применимость. Старт обсуждению дал [kuntashov][2] в G+ заметкой со следующим содержанием (сюда я привожу сухой остаток, совсем немного подкорректированный мной):

> Gherkin был создан, чтобы сценарии использования можно было редактировать как нарратив (повествование), т.е. “почти на человеческом языке” в простой, лаконичной форме и доступном формате. Т.е. назначение формата было — быть в первую очередь лицом к не-технарям, но при этом сохранить более-менее достаточную формальность, чтобы можно было автоматически обрабатывать.
>
>
>

>> Читать далее
#  Go-клиент для PayPal API
habrabot (difrex,1) → All  –  07:30:02 2016-01-13


![][1] Всем привет! Мы разрабатываем сервис для сбора, доставки и анализа логов, серверная часть которого написана на [Go][2]. В этой статье мы расскажем о проблеме, с которой мы столкнулись при подключении нашего проекта к платежной системе PayPal и о решении, которое мы разработали и успешно внедрили. [Читать дальше →][3]

[1]: https://habrastorage.org/files/ff3/e5c/bc1/ff3e5cbc1ad1474a94e4d3bddd80b07e.png
[2]: https://golang.org/
[3]: http://habrahabr.ru/post/274555/#habracut
#  Постановка задачи компьютерного зрения
habrabot (difrex,1) → All  –  04:00:02 2016-01-13


![][1] Последние лет восемь я активно занимаюсь задачами, связанными с распознаванием образов, компьютерным зрением, машинным обучением. Получилось накопить достаточно большой багаж опыта и проектов (что-то своё, что-то в ранге штатного программиста, что-то под заказ). К тому же, с тех пор, как я написал пару статей на Хабре, со мной часто связываются читатели, просят помочь с их задачей, посоветовать что-то. Так что достаточно часто натыкаюсь на совершенно непредсказуемые применения CV алгоритмов. Но, чёрт подери, в 90% случаев я вижу одну и ту же системную ошибку. Раз за разом. За последние лет 5 я её объяснял уже десяткам людей. Да что там, периодически и сам её совершаю… _В 99% задач компьютерного зрения то представление о задаче, которое вы сформулировали у себя в голове, а тем более тот путь решения, который вы наметили, не имеет с реальностью ничего общего. Всегда будут возникать ситуации, про которые вы даже не могли подумать. Единственный способ сформулировать задачу — набрать базу примеров и работать с ней, учитывая как идеальные, так и самые плохие ситуации. Чем шире база-тем точнее поставлена задача. Без базы говорить о задаче нельзя._ Тривиальная мысль. Но все ошибаются. Абсолютно все. В статье я приведу несколько примеров таких ситуаций. Когда задача поставлена плохо, когда хорошо. И какие подводные камни вас ждут в формировании ТЗ для систем компьютерного зрения. [Читать дальше →][2]

[1]: https://habrastorage.org/files/c04/7a7/b0e/c047a7b0e97f4381b7eb609c2d8f4fe6.jpg
[2]: http://habrahabr.ru/post/274725/#habracut
#  Isotoxin: свободный мультипротокольный мессенджер с поддержкой Tox
habrabot (difrex,1) → All  –  18:00:04 2016-01-12


Вы наверняка слышали о Tox. Напомню: это свободный защищенный p2p протокол для передачи сообщений, аудио и видео потоков между участниками Tox-сети. По сути — это альтернатива скайпу. Когда я впервые услышал о Tox, мой градус неприязни к скайпу был еще не слишком высок, но я уже начал поиск альтернатив. Мне очень понравилась идея, лежащая в основе Tox: мы пишем протокол со всеми нужными плюшками, а вы пишете к нему клиенты. Когда появились первые клиенты для сети Tox, я подумал: «черт возьми, я смогу сделать это не хуже!». Вобщем, подталкиваемый неприязнью к скайпу, я взялся за проект мессенджера своей мечты. Сейчас, когда в моем локальном hg-репозитории первому комиту исполнилось 19 месяцев и был сделан 414-й комит, я наконец то созрел до того, чтобы рассказать об этом клиенте широкой аудитории Хабра. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/cb4/2ae/898/cb42ae8984ff437bae243069c0fa3e5d.png
[2]: http://habrahabr.ru/post/274417/#habracut
#  О пересмотре результатов конкурса по программированию на JS
habrabot (difrex,1) → All  –  17:00:03 2016-01-12


Спасибо участникам [конкурса по программированию][1] за долготерпение. Я пишу этот пост, чтобы признать и исправить серьёзную ошибку, которую мы допустили при подведении итогов. Мы получили множество замечаний о методике тестирования решений. Ниже наши ответы на эти замечания.

## Тесты на корректность неполны

Спасибо двоим участникам конкурса, приславшим дополнения к нашему набору тестов на корректность. Благодаря этим дополнениям нам удалось выявить несколько решений, выдающих неправильные результаты в редких случаях.

## Тесты на производительность дают искажённые результаты из-за особенностей методики тестирования

[Читать дальше →][2]

[1]: http://habrahabr.ru/company/hola/blog/270847/
[2]: http://habrahabr.ru/post/274961/#habracut
#  [Из песочницы] Разбор решения занявшего второе (пока что) место в конкурсе Hola по программированию почтовых фильтров на JavaScript
habrabot (difrex,1) → All  –  13:00:04 2016-01-12


В ноябре прошлого (уже) года, Hola объявила [конкурс по программированию почтовых фильтров на js][1], и недавно опубликовала [его результаты][2]. Я разделил второе место с Ильей Макаровым, и сейчас я расскажу…

## Как это было

[Читать дальше →][3]

[1]: http://habrahabr.ru/company/hola/blog/270847/
[2]: http://habrahabr.ru/company/hola/blog/274697/
[3]: http://habrahabr.ru/post/274935/#habracut
#  [Из песочницы] Вычисление биномиальных коэффициентов… всё-таки программно
habrabot (difrex,1) → All  –  13:00:04 2016-01-12


Ранее, в трёх статьях была затронута тема вычисления биномиальных коэффициентов. [Расчет биномиальных коэффициентов на Си (С++)][1] [Расчет биномиальных коэффициентов с использованием Фурье-преобразований][2] [Вычисление биномиальных коэффициентов… вручную][3] В последней статье автор продемонстрировал чисто математическую оптимизацию вычисления биномиальных коэффициентов. Оказалось, что для их вычисления и компьютер-то не особенно нужен. Хватит бумаги, ручки, калькулятора . Однако, если одной из вышеперечисленных вещей под рукой не окажется, но в области досягаемости будет простаивающий компьютер, то можно сделать то же самое и на компьютере. [Подробности][4]

[1]: http://habrahabr.ru/post/274689/
[2]: http://habrahabr.ru/post/274729/
[3]: http://habrahabr.ru/post/274889/
[4]: http://habrahabr.ru/post/274911/#habracut
#  [Из песочницы] Django Single Sign-On и Microsoft Active Directory
habrabot (difrex,1) → All  –  13:00:04 2016-01-12




### Начало

Однажды мне пришлось заняться разработкой Web-приложения для корпоративного использования на Python+Django. И самым первым вопросом, который пришлось решать — это прозрачная авторизация на сайте или **Single Sign-On (SSO)**. На предприятии широко используется служба каталогов на базе Microsoft Active Directory, и к настоящему моменту практически все корпоративные приложения позволяют использовать windows-авторизацию и не вводить постоянно логины/пароли, поэтому новое приложение просто должно было удовлетворять существующему положению вещей и реализовывать указанную выше возможность для «прозрачной» авторизации пользователей. Хотя о вопросе реализации SSO для Django написано немало статей, однако для того, чтобы реализовать то, что мне было необходимо, пришлось затратить относительно много времени. Поэтому, чтобы избавить некоторых из вас от возможных долгих поисков информации и ее сборки в работающую схему, предлагаю вам свой мануал, как сделать прозрачную авторизацию в приложении Django с использованием учетных записей Active Directory. **Итак мы имеем:** [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274931/#habracut
#  [Из песочницы] График счастья с python, pandas и matplotlib
habrabot (difrex,1) → All  –  12:30:03 2016-01-12


![image][1] Зима — это по истине прекрасное время года. Но именно зимой я всегда задумываюсь о том, что встаю и ухожу на работу, а затем и возвращаюсь с работы, не видя солнечного света. Сегодня мне захотелось визуализировать данные о восходе и заходе солнца и соотнести их со столь привычным для многих распорядком дня (рабочие часы и время бодрствования). Для работы мы будем использовать Python (pandas + matplotlib). Посмотрим, что из этого получилось. [Читать дальше →][2]

[1]: https://habrastorage.org/files/553/f10/7c5/553f107c5c7a414187e431f96fe456bf.png
[2]: http://habrahabr.ru/post/274927/#habracut
#  Быстрое создание phar файлов используя Box
habrabot (difrex,1) → All  –  12:00:03 2016-01-12


![][1] `Phar` — это аналог `jar` из мира Java, но только применительно к PHP. `Phar` упаковывает файлы проекта в специальный архив и позволяет легко переносить и устанавливать приложение без манипуляций с самим проектом в виде исполняемой программы.

Phar archives are best characterized as a convenient way to group several files into a single file. As such, a phar archive provides a way to distribute a complete PHP application in a single file and run it from that file without the need to extract it to disk. Additionally, phar archives can be executed by PHP as easily as any other file, both on the commandline and from a web server. Phar is kind of like a thumb drive for PHP applications.



Для создания phar файлов в PHP существует [довольно развесистый API][2], но есть способ проще и удобнее — использовать проект [Box][3]. [][4]

## Формат JSON файла

Проект Box позволяет описать процесс создания phar файла в удобном JSON формате. Самый простой файл выглядит так:

{
"files": ["src/Put.php"],

>> Читать далее
#  [Из песочницы] Автоматический контроль времени жизни общих C++-QML объектов
habrabot (difrex,1) → All  –  12:00:03 2016-01-12


Речь пойдет об объектах, используемых в C++ и QML одновременно, верхушкой иерархии наследования которых является QObject. Насколько мне известно, реализации механизма автоматического контроля времени жизни таких объектов на уровне библиотеки не существует. Подобный механизм избавил бы от сложностей, возникающих при ручном контроле времени жизни объектов, а так же от потенциальных багов, утечек памяти и крешей приложения. В этой статье я опишу этапы реализации данного механизма, а так же проблемы, рассмотренные в процессе исследования данной проблемы. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274915/#habracut
#  [Из песочницы] GIF изнутри
habrabot (difrex,1) → All  –  10:30:04 2016-01-12


![][1] Вам когда-нибудь было интересно, как устроены gif-ки? В данной статье попробуем разобраться с внутренним строением [GIF][2]-формата и методом сжатия [LZW][3].

# Структура GIF

Файл в формате [GIF][4] состоит из фиксированной области в начале файла, за которой располагается переменное число блоков, и заканчивается файл завершителем изображения. ![][5] **Основные характеристики формата GIF:**

* Изображение в формате [GIF ][6]хранится построчно, поддерживается только формат с индексированной палитрой цветов;
* Поддерживается 256-цветовая палитра;
* Этот формат позволяет хранить несколько изображений в одном файле;
* GIF поддерживает анимационные изображения; _Такие изображения представляют собой последовательность из нескольких статичных кадров, а также информацию о том, сколько времени каждый кадр должен быть показан на экране. Анимацию можно сделать цикличной, тогда вслед за последним кадром начнётся воспроизведение первого кадра и т. д._
* Поддерживает «прозрачность»; _Один из цветов в палитре может быть объявлен «прозрачным». В этом случае в программах, которые поддерживают прозрачность GIF (например, большинство современных браузеров) сквозь пиксели, окрашенные «прозрачным» цветом, будет виден фон. GIF анимация может использовать прозрачность для того чтобы не сохранять очередной кадр целиком, а только изменения относительно предыдущего._
* Используется универсальный алгоритм сжатия без потерь LZW.

[Читать дальше →][7]

>> Читать далее
#  Java и время: часть вторая
habrabot (difrex,1) → All  –  09:30:02 2016-01-12


Эта статья написана в продолжение к [первой части][1] и посвящена [новому Date Time API][2], который был введен в Java 8. Я изначально хотел оформить эту тему отдельно, поскольку она достаточно большая и серьезная. Я еще сам не в полной мере начал использовать этот API в проектах, поэтому разбираться будем вместе по ходу. В принципе в переходе на новый API нет никакой срочной необходимости, более того многие еще и не начинали проекты на Java 8, а это означает, что время на освоение еще есть. В статье я постараюсь не скатываться в банальный перевод штатной документации, больше я хотел бы сконцентрироваться на том, что мне показалось особенно важным. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/274811/
[2]: https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
[3]: http://habrahabr.ru/post/274905/#habracut
#  Стандарты симметричного шифрования стран СНГ на Python
habrabot (difrex,1) → All  –  09:30:02 2016-01-12


Первые недели нового года самое подходящее время для того, чтобы уютно устроившись у окошка, вспомнить что же нам принес год ушедший. А принес он нам два новых стандарта шифрования. Российский стандарт ГОСТ Р 34.12-2015 (блочный шифр Кузнечик). И украинский ДСТУ 7624:2014 (блочный шифр Калина). Холодными, зимними вечерами нельзя упускать такой удачный повод покодить. Под катом краткое описание алгоритмов и их реализация на Python. А чтобы новым шифрам было веселее, разбавим их общество белорусским СТБ 34.101.31-2007. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273895/#habracut
#  Выходу Dolphin Smalltalk 7 под Open Sourсe посвящается
habrabot (difrex,1) → All  –  09:30:02 2016-01-12


![][1]На днях компания ObjectArts полностью открыла исходники и выпустила язык, и среду разработки Dolphin Smalltalk под открытой лицензией MIT! Я не смог пройти мимо, не попробовав проверить этот проект с помощью анализатора кода PVS-Studio. Могу поздравить разработчиков с тем, что у них получилось создать код высокого качества. Мне не удалось найти значимых ошибок. Однако как всегда есть некоторое количество багов и пахнущего кода. Надеюсь благодаря этой статье код станет чуть лучше.

## О проекте

[Dolphin Smalltalk][2] — это среда разработки на собственном диалекте Smalltalk для Windows. Ключевыми особенностями является тесная интеграция с нативными виджетами и подсистемами операционной системы, включая COM и ActiveX, и приятный глазу графический дизайн. Долгое время Dolphin Smalltalk был доступен в двух вариантах: условно-бесплатная ограниченная версия (community edition) и платный пакет для профессиональной разработки. Последний давал доступ ко всем функциям, включая продвинутые редакторы и публикацию приложений в standalone режиме, однако стоил около четырехсот долларов. С помощью [PVS-Studio][3] 6.00 были проверены открытые исходники [Dolphin Smalltalk Virtual Machine][4]. Далее представлены результаты проверки статическим анализатором. Несмотря на то, что проект DolphinVM очень маленький, в его коде всё равно встречаются подозрительные места. [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/874/540/a7b/874540a7b0d09c427394c728e5cd429f.png
[2]: http://object-arts.com/dolphin7.html
[3]: http://www.viva64.com/ru/pvs-studio/
[4]: https://github.com/objectarts/DolphinVM
[5]: http://habrahabr.ru/post/274909/#habracut
#  Опасное видео: как я нашёл уязвимость в видеохостингах и не умер через 7 дней
habrabot (difrex,1) → All  –  09:00:03 2016-01-12


![][1] Всем привет! В сегодняшнем посте я хочу рассказать об одной довольно интересной уязвимости, которую нашёл и зарепортил в bug bounty нескольких крупных компаний, за что получил солидное вознаграждение. Уязвимость заключается в следующем: если сформировать специальный видеофайл и загрузить его на сервер, то:

* можно получить на нём SSRF;
* можно получить local file read;
* если пользователь скачает этот файл, то автоматически будет подвержен уязвимостям, даже если его не откроет: можно будет получить доступ к данным на компьютере пользователя и узнать его имя.

[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/756/9da/20a/7569da20abba3a0d1755c8f1e2d1677a.jpg
[2]: http://habrahabr.ru/post/274855/#habracut
#  Уязвимость в продуктах Trend Micro позволяет любому веб-сайту выполнить произвольную команду Windows
habrabot (difrex,1) → All  –  06:00:02 2016-01-12


[Тавис Орманди][1] из Google Project Zero обнаружил удивительнейшую [уязвимость][2] в антивирусных продуктах Trend Micro под Windows, позволяющую любому веб-сайту, который посещает пользователь, выполнить произвольному команду на его машине.



Орманди, занимающийся аудитом популярных антивирусных продуктов, обратил внимание на один из компонентов Trend Micro AV — [менеджер паролей][3], написанный на JavaScript с использованием node.js. Оказалось, что он открывает несколько HTTP RPC-портов, позволяющих выполнять произвольные команды! Это означает, что любой веб-сайт способен запустить на машине пользователя скрипт, который, например, может стереть всю информацию на диске, установить другую вредоносную программу из внешней сети или или просто-напросто удалить тот же самый антивирус. [Читать дальше →][4]

[1]: https://twitter.com/taviso
[2]: https://code.google.com/p/google-security-research/issues/detail?id=693
[3]: http://www.trendmicro.com/us/home/products/software/password-manager/index.html
[4]: http://habrahabr.ru/post/274899/#habracut
#  Слон и Моська, или подключение LCD к Attiny13A
habrabot (difrex,1) → All  –  05:00:02 2016-01-12


Вновь приветствую читателей «Хабра»! **Присказка.** Честно сказать, хотел написать статью несколько другого содержания, которая затрагивала бы тему применения и использования сдвиговых регистров, когда сам, даже не думал что в моих проектах это станет необходимым. Но так однажды случилось, что я решил втянуть в область программирования микроконтроллеров своего друга, который во многих вопросах с легкостью разберется сам, а в других… [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274895/#habracut
#  Про волнения в головах
habrabot (difrex,1) → All  –  22:00:02 2016-01-11


Пару месяцев назад мне захотелось поэкспериментировать с нейроинтерфейсом. Никогда этой темой не занимался, но вдруг стало любопытно. Вроде как лет 5-10 назад обещали бум нейроустройств, а всё что мы сейчас имеем на рынке — устройство чтобы махать [ушами][1], устройство чтобы светить [камешком][2], да устройство чтобы левитировать [шаром][3]. Где-то на подходе устройство чтобы будить вовремя. Вот [тут][4] есть неплохая статья про всё это дело. В то же время регулярно появляются какие-то исследования, где рассказывают, что люди могут научиться двигать роботическими руками-ногами или писать тексты ([1][5], [2][6], [3][7], вот [тут][8] есть подборка). Но это всё опытное, в единственном экземпляре, со стоимостью аппаратуры как хорошее авто. А где что-то посередине? Что-то полезное обычному пользователю? Пусть даже не везде, а в каких-то отдельных применениях. Ведь даже навскидку придумывается несколько вещей: детектор засыпания для водителя, повышение работоспособности (например через выбор музыки, или управление перерывами!). Можно выбрать что-то более специфическое. Например смотреть и анализировать своё состояние в киберспорте. Для этого же даже трекеры зрачков выпускают и используют. Почему нет таких применений? Этот вопрос мучил меня. В итоге решил почитать куда наука движется, а так же купить простенькую нейрогарнитуру и затестить. В статье — попытка разобраться в теме, немного исходников и много анализа текущих достижений потребительской электроники. [Читать дальше →][9]

[1]: http://www.necomimi.com
[2]: https://www.youtube.com/watch?v=WYXsQlLOzg8
[3]: http://www.amazon.com/Mattel-P2639-Mindflex-Game/dp/B001UEUHCG/ref=pd_sim_21_2?ie=UTF8&dpID=41a9RLcHYAL&dpSrc=sims&preST=_AC_UL160_SR138%2C160_&refRID=1G4T8T1EE1AQW5WYHH7H
[4]: http://habrahabr.ru/company/neuronspace/blog/262357/
[5]: http://vk.com/video-55155418_171160287
[6]: https://www.youtube.com/watch?v=9uw5R_qx3-0
[7]: https://www.youtube.com/watch?v=QRt8QCx3BCo
[8]: http://brain.bio.msu.ru/bci_r.htm
[9]: http://habrahabr.ru/post/274665/#habracut
#  Вычисление биномиальных коэффициентов… вручную
habrabot (difrex,1) → All  –  21:30:02 2016-01-11


Ранее в двух статьях была затронута тема вычисления биномиальных коэффициентов с помощью компьютера. [Расчет биномиальных коэффициентов на Си (С++) ][1] [Расчет биномиальных коэффициентов с использованием Фурье-преобразований][2] По их прочтению может сложиться мнение что это сложная и ресурсоемкая задача. Прежде чем программировать что-то, попробуем разобраться что здесь к чему. Факториальная формула: ![image][3] Раскроем ее: ![][4] Очевидно, что ![][5] и тогда ![][6] А теперь попробуем посчитать например ![][7]: [Читать дальше →][8]

[1]: http://habrahabr.ru/post/274689/
[2]: http://habrahabr.ru/post/274729/
[3]: https://habrastorage.org/getpro/habr/post_images/01d/df4/164/01ddf4164554f2f65f67842dd8ea7dbf.png
[4]: https://habrastorage.org/files/672/a9c/bf6/672a9cbf660f4d688a2e256dbaebc44d.png
[5]: https://habrastorage.org/files/8c2/4c5/dfb/8c24c5dfb1644635ba87c07cc47add69.png
[6]: https://habrastorage.org/files/baf/7dc/cb0/baf7dccb02924c11ba7b41a5ab4c35d0.png
[7]: https://habrastorage.org/files/ace/a73/910/acea739101d14d598d9e2ca61db10c53.png
[8]: http://habrahabr.ru/post/274889/#habracut
#  Рекурентная нейронная сеть в 10 строчек кода оценила отзывы зрителей нового эпизода “Звездных войн”
habrabot (difrex,1) → All  –  14:30:05 2016-01-11


Hello, Habr! Недавно мы получили от “Известий” заказ на проведение исследования общественного мнения по поводу фильма «Звёздные войны: Пробуждение Силы», премьера которого состоялась 17 декабря. Для этого мы решили провести анализ тональности российского сегмента Twitter по нескольким релевантным хэштегам. Результата от нас ждали всего через 3 дня (и это в самом конце года!), поэтому нам нужен был очень быстрый способ. В интернете мы нашли несколько подобных онлайн-сервисов (среди которых [sentiment140][1] и [tweet\_viz][2]), но оказалось, что они не работают с русским языком и по каким-то причинам анализируют только маленький процент твитов. Нам помог бы сервис [AlchemyAPI][3], но ограничение в 1000 запросов в сутки нас также не устраивало. Тогда мы решили сделать свой анализатор тональности с блэк-джеком и всем остальным, создав простенькую рекурентную нейронную сеть с памятью. Результаты нашего исследования были использованы в [статье][4] “Известий”, опубликованной 3 января.



В этой статье я немного расскажу о такого рода сетях и познакомлю с парой классных инструментов для домашних экспериментов, которые позволят строить нейронные сети любой сложности в несколько строк кода даже школьникам. Добро пожаловать под кат. [Читать дальше →][5]

[1]: http://www.sentiment140.com/
[2]: https://www.csc.ncsu.edu/faculty/healey/tweet_viz/tweet_app/
[3]: http://www.alchemyapi.com/developers/getting-started-guide/twitter-sentiment-analysis
[4]: http://izvestia.ru/news/601050
[5]: http://habrahabr.ru/post/274027/#habracut
#  Линус Торвальдс анонсировал выход ядра Linux 4.4 LTS (Long-Term Support)
habrabot (difrex,1) → All  –  14:30:05 2016-01-11


Тихо и незаметно вышло в свет ядро Linux 4.4 LTS (Long-Term Support), о чем известил Линус Торвальдс. Новинка включает довольно значительные обновления, включая, например, 3D поддержку виртуальных дравейров GPU. Благодаря этому можно использовать аппаратную поддержку графики в guest VM. Также включена поддержка Open-Channel Solid State Drives (SSDs) посредством LightNVM. Более того, Linux kernel 4.4 LTS поддерживает RAID5 MD, есть интеграция eBPF, что позволяет непривилегированным пользователям запускать eBPF программы. Также стоит упомянуть поддержку Block polling для улучшения общей производительности high-end устройств хранения данных, mlock2() syscal и многое другое. Улучшена поддержка 64-битных ARM, решена проблема с утечкой памяти в Skylake CPU от Intel. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274871/#habracut
#  Хорошо настроенный Emacs
habrabot (difrex,1) → All  –  13:00:05 2016-01-11


Все что нужно знать для того чтобы быстро и грамотно настроить Emacs. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274759/#habracut
#  Михаил Романович Шура-Бура — патриарх отечественного программирования и его разработки
habrabot (difrex,1) → All  –  13:00:05 2016-01-11


![][1]![][2] Михаила Романовича Шура-Бура — прекрасный ученый, который внес огромный вклад в создание и разработку первых отечественных ЭВМ. Известен также как создатель первой ПП (программирующей программы), интерпретирующей системы ИС-2 для машины М-20. Вспоминая о космическом корабле Буран, нельзя не упомянуть фамилию Михаила Шура-Буры, который был одним из разработчиков программного обеспечения для корабля. Родился Михаил Романович 21 октября 1918 года в селе Парафиевка (Украина, Черниговская область), куда его родители переехали из Киева, так как началась гражданская война и нужно было как-то прокормить семью. Дед был простым деревенским кузнецом, отец окончил университет и практиковал адвокатскую деятельность. [Подробности][3]

[1]: https://habrastorage.org/files/23b/59d/561/23b59d56161c47498c348e6d7a5357c0.jpg
[2]: https://habrastorage.org/files/33c/932/2aa/33c9322aae004648b8a28080d8e8b396.jpg
[3]: http://habrahabr.ru/post/274851/#habracut
#  [recovery mode] Защищает ли ваши персональные данные Электронное правительство Республики Казахстан (www.egov.kz)?
habrabot (difrex,1) → All  –  13:00:05 2016-01-11


Большое количество пользователей Казнета уже давно использует удобный портал egov.kz для получения онлайн услуг. Полагаясь на квалификацию разработчиков портала, пользователи указывают свои данные, в частности номера мобильного телефона, для пользования «мобильным правительством» (если вами не указан номер телефона, то при каждой авторизации сайт настойчиво просит его указать). [Скрин 1] ![image][1] После указания номера телефона ваши данные с этого момента находятся под угрозой. Узнать ваш номер телефона зная только ФИО не составит труда, и для этого даже не нужно взламывать сам портал. Итак, предположим, что злоумышленник хочет узнать номер телефона определенного человека и использовать его в своих целях. Что для этого нужно. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/fd1/69e/4b5/fd169e4b54b6616800df2233b0df68ad.png
[2]: http://habrahabr.ru/post/274869/#habracut
#  Prolog для программистов ч.2
habrabot (difrex,1) → All  –  13:00:05 2016-01-11


Публикация первой части ( [habrahabr.ru/post/274603][1] ) вызвала довольно обширную и интересную дискуссию по различным аспектам языка применения ПРОЛОГ. Цель была – показать опытным, и не очень, программистам, что ничего сложного в Прологе нет, и каждый может его применять в работе. Почему-то не было вопросов непосредственно по тексту публикации. Буду думать, что там все понятно. Приступим к рассмотрению более практических аспектов программирования на языке Пролог. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/274603/
[2]: http://habrahabr.ru/post/274799/#habracut
#  Сэр Чарльз Энтони Ричард Хоар или просто батя Quicksort, NULL и проблемы обедающих философов
habrabot (difrex,1) → All  –  12:30:04 2016-01-11


![][1] Рыцарь в образовании и компьютерных науках, мужик, в честь которого назвали логику, первый, кто признался в своей ошибке на миллиард долларов, разработчик qsort, празднует сегодня, 11 января, свое 82-летие. (Наверняка вместе с [Кнутом][2].) [Читать дальше →][3]

[1]: https://habrastorage.org/files/092/de5/ec6/092de5ec62f541e7925d0349f18ca4f8.jpg
[2]: http://habrahabr.ru/post/274787/
[3]: http://habrahabr.ru/post/274865/#habracut
#  [Перевод] Новое в Wolfram Language | Аналитическое решение уравнений в частных производных
habrabot (difrex,1) → All  –  12:30:04 2016-01-11






_Перевод поста Devendra Kapadia "[New in the Wolfram Language: Symbolic PDEs][1]". Код, приведенный в статье, можно скачать [здесь][2]. Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][3] за помощь в переводе и подготовке публикации_.

----

Уравнения в частных производных (УрЧП) играют очень важную роль в математике и ее приложениях. Их можно использовать для моделирования реальных явлений, таких как колебания натянутой струны, распространения потока тепла в стержне, в финансовых областях. Цель этой статьи — приоткрыть завесу в мир УрЧП (тем кто еще с ним не знаком) и ознакомить читателя с тем, как можно эффективно решать УрЧП в Wolfram Language, используя новый функционал для решения краевых задач в [**DSolve**][4], а так же новую функцию [**DEigensystem**][5], которая появилась в [версии 10.3][6]. История УрЧП восходит к работам известных математиков восемнадцатого века — [Эйлера,][7] [Даламбера,][8] [Лапласа,][9] однако развитие этой области в последние три столетия так и не остановилось. И потому в статье я приведу как классические, так и современные примеры УрЧП, что позволит рассмотреть эту область знаний под разными углами. Давайте начнем с рассмотрения колебаний натянутой струны с длиной [π][10], закрепленной на обоих концах. Колебания струны можно смоделировать с помощью одномерного волнового уравнения, приведённого ниже. Здесь _u(x,t)_ — вертикальное смещение точки струны с координатой _х_ в момент времени _t_: ![][11] [Читать дальше →][12]

[1]: http://blog.wolfram.com/2016/01/07/new-in-the-wolfram-language-symbolic-pdes/
[2]: http://blog.wolfram.com/data/uploads/2016/01/New-in-the-Wolfram-Language-Symbolic-PDEs-Blog-Post.cdf
[3]: http://habrahabr.ru/users/kirillguzenko/
[4]: http://reference.wolfram.com/language/ref/DSolve.html

>> Читать далее
#  [Перевод] GlassRAT: анализ трояна из Китая с помощью RSA Security Analytics и RSA ECAT
habrabot (difrex,1) → All  –  12:30:04 2016-01-11


![][1] Специалистами RSA Research была обнаружена троянская программа GlassRAT для удаленного администрирования (Remote Administration Tool — RAT) с «нулевым уровнем обнаружения», подписанная сертификатом, украденным или полученным от популярного китайского разработчика ПО. Эта вредоносная программа могла избегать обнаружения на протяжении несколько лет. Телеметрия и ограниченные отчеты, не выдерживающие никакой критики, свидетельствуют, что целью GlassRAT являлись китайские граждане, связанные с транснациональными корпорациями. Будучи полностью «прозрачным» для большинства антивирусных продуктов, троянец GlassRAT можно обнаружить с помощью детальной экспертизы, а также с помощью конечных инструментов для обнаружения угроз, таких как RSA Security Analytics и/или RSA ECAT. Также представлены доказательства того, что способ организации командной инфраструктуры сети GlassRAT имеет много общего с другими вредоносными кампаниями, которые ранее были направлены на Азиатские организации геополитического и стратегического значения. Более подробно с этой информацией можно ознакомиться тут: . [Читать дальше →][2]

[1]: https://habrastorage.org/files/d6d/f6d/b89/d6df6db8931a47d187f271d120539fe9.jpg
[2]: http://habrahabr.ru/post/274245/#habracut
#  [Перевод] Кастомные корутины в Unity 5.3
habrabot (difrex,1) → All  –  12:30:04 2016-01-11


_Всем привет. Это перевод статьи из официального [блога][1] движка Unity. В ней пойдет речь о способе создания своих корутин, появившемся в версии 5.3._ ![][2] Среди новых блестящих возможностей Unity 5.3 я обнаружил одну небольшую вещь, которая оказалась мне полезной, и, думаю, может пригодиться и вам. Это кастомные корутины, представленные классом _CustomYieldInstruction_. Благодаря ему, вы сможете очень просто создать свои собственные [корутинные][3] yield-операторы. Давайте рассмотрим это на живом примере. [Читать дальше →][4]

[1]: http://blogs.unity3d.com/
[2]: https://habrastorage.org/files/1e5/d05/e9a/1e5d05e9a8614188b0afb1311b4d8db2.png
[3]: http://docs.unity3d.com/Manual/Coroutines.html
[4]: http://habrahabr.ru/post/274305/#habracut
#  Проверяем IronPython и IronRuby с помощью PVS-Studio
habrabot (difrex,1) → All  –  12:00:09 2016-01-11


Совсем недавно мы выпустили новую версию нашего анализатора PVS-Studio с поддержкой проверки C# проектов. Пока на время релиза дальнейшая разработка продукта была приостановлена, я занимался тестированием анализатора. В качестве проектов для своих экспериментов я взял IronPython и IronRuby. А раз эти проекты были проверены, я решил написать небольшую статью-отчёт. ![][1]

## IronPython и IronRuby

IronPython и IronRuby представляют собой реализацию языков программирования Python и Ruby на платформе .NET. Исходный код этих проектов доступен на GitHub по этой [ссылке][2]. Также в комплекте идёт исходный код [DLR][3]. Начиная с .NET Framework 4.0 DLR является его частью, и IronPython и IronRuby используют её. Тем не менее я всё равно проверил старую версию DLR, раз уж она там оказалась. [Подробности][4]

[1]: https://habrastorage.org/getpro/habr/post_images/151/718/fc4/151718fc401e86e72f3fc8ce459e0e1d.png
[2]: https://github.com/IronLanguages/main
[3]: https://en.wikipedia.org/wiki/Dynamic_Language_Runtime
[4]: http://habrahabr.ru/post/274863/#habracut
#  [Перевод] Использование LSM-движка из SQLite 4 в качестве отдельной NoSQL базы данных с использованием Python
habrabot (difrex,1) → All  –  11:00:04 2016-01-11


![image][1] На сегодняшний день две мои самые любимые темы — SQLite и key-value базы данных. И в этот раз я пишу сразу про обе: этот пост посвящён Python-обёртке для используемого в SQLite 4 key-value хранилища на основе [LSM][2]. Я не слишком внимательно отслеживаю релизы SQLite, но версия 3.8.11 привлекла моё внимание, поскольку в её описании заявлено серьёзное увеличение производительности по сравнению с 3.8.0. В сопроводительной информации я наткнулся на упоминание о новом экспериментальном расширении для полнотекстового поиска ([о котором писал когда-то][3]), и потому мне стало интересно, какая складывается ситуация с [SQLite 4][4]. Изучив доступную информацию, я обратил внимание, что одной из задач разработчиков было обеспечить в новых версиях [интерфейс для подключаемых движков баз данных][5]. На момент написания этого поста в SQLite 4 уже было два встроенных бэкенда, один из которых — key-value хранилище на основе LSM. В последние пару месяцев мне доводилось поиграться с [Cython][6], пока я писал Python-обёртку для встроенных k-v хранилищ [UnQLite][7] и [Vedis][8]. И я подумал, что было бы неплохо применить Cython для создания интерфейса движка БД на основе LSM, используемого в SQLite 4. Разобравшись с [исходным кодом SQLite 4][9] и [крохотным заголовочным файлом LSM][10], я написал [python-lsm-db][11] ([документация][12]). [Читать дальше →][13]

[1]: https://habrastorage.org/getpro/habr/post_images/a68/ddf/3e6/a68ddf3e6b52165cae0448a58f3a6b37.png
[2]: https://en.wikipedia.org/wiki/Log-structured_merge-tree
[3]: http://charlesleifer.com/blog/building-the-sqlite-fts5-search-extension/
[4]: http://sqlite.org/src4/doc/trunk/www/design.wiki
[5]: http://sqlite.org/src4/doc/trunk/www/storage.wiki
[6]: http://cython.org/
[7]: http://unqlite-python.readthedocs.org/
[8]: http://vedis-python.readthedocs.org/
[9]: http://sqlite.org/src4/tree?ci=trunk
[10]: https://github.com/coleifer/python-lsm-db/blob/master/src/lsm.h
[11]: https://github.com/coleifer/python-lsm-db
[12]: http://lsm-db.readthedocs.org/

>> Читать далее
#  LetsEncrypt в Go
habrabot (difrex,1) → All  –  10:30:05 2016-01-11


Суть проблемы в том, что сертификаты LetsEncrypt действуют 3 месяца, а обновляются каждый месяц. Достаточно легко автоматизировать обновление certonly сертификатов через cron, но в Go пока нет простого способа автоматически подхватывать новые обновлённые сертификаты. [Точнее теперь есть][1]

[1]: http://habrahabr.ru/post/274749/#habracut
#  [Из песочницы] Распаковка данных, сжатых алгоритмом Deflate с фиксированными кодами Хаффмана на примере формата PNG
habrabot (difrex,1) → All  –  10:30:05 2016-01-11


![][1] В рамках очередной лабораторной работы мы с коллегами столкнулись с задачей разбора шестнадцатеричного дампа файла [PNG][2]. По стандарту [RFC 2083][3] формат PNG хранит пиксельные данные, сжатые алгоритмом [Deflate][4]. Поэтому при разборе дампа нам потребовалось распаковывать сжатые данные алгоритмом Inflate. [Читать дальше →][5]

[1]: https://habrastorage.org/files/210/e04/e4b/210e04e4b16248fab882bbedbc0b9792.png
[2]: https://ru.wikipedia.org/wiki/PNG
[3]: https://tools.ietf.org/html/rfc2083#section-5
[4]: https://ru.wikipedia.org/wiki/Deflate
[5]: http://habrahabr.ru/post/274825/#habracut
#  Java и время: часть первая
habrabot (difrex,1) → All  –  10:00:04 2016-01-11


Восемь лет назад я принимал участие в проектировании и разработке сервиса, который был должен обслуживать запросы пользователей со всех уголков земного шара и координировать их действия. Работая над проектом я понял, что очень часто многие важные аспекты работы со временем просто игнорируются. Иногда это действительно не очень критично: если сервис локален и им пользуются только на определенной территории, либо пользователи естественным образом разделены на почти не взаимодействующие между собой географические кластеры. Однако же, если сервис объединяет пользователей по всему миру, то без четкого понимания принципов работы со временем уже не обойтись. Представим сервис, в котором общие события (совещания например) начинаются в какое-то строго определенное время, а пользователи рассчитывают на это. Какое время им показывать, в какой момент их беспокоить уведомлениями, что такое день рождения и когда можно поздравить человека — в статье я попробую это осмыслить. ![][1] Статья не претендует на глубину и/или академичность. Это попытка систематизировать опыт и обратить внимание разработчиков на не очень очевидные аспекты. [Читать дальше →][2]

[1]: https://habrastorage.org/files/688/d09/fb9/688d09fb9b814c19aad3e16a1b352b6e.jpg
[2]: http://habrahabr.ru/post/274811/#habracut
#  [Из песочницы] К вопросу о таймерах в ОСРВ (Выводы)
habrabot (difrex,1) → All  –  10:00:04 2016-01-11


![image][1]В кратце опишу содержание [статьи][2]: Есть циклический аппаратный счётчик, который, например, считает секунды, и есть прерывание по его переполнению. Расширяем диапазон счисления программным способом, инкременируя значение другой ячейки в прерывании. Таким образом, получаем возможность считать и минуты. Суть проблемы в том, что в общем случае одновременно прочитать значение минут и секунд невозможно, а при последовательном считывании может произойти прерывание и увеличение минут. Последствия: путешествие во времени назад. [Читать дальше →][3]

[1]: http://alnet.com.ua/forum/files/thumbs/t_1_196.jpg
[2]: http://habrahabr.ru/post/273885/
[3]: http://habrahabr.ru/post/274805/#habracut
#  Работа с цифровыми подписями PGP с использованием Bouncy Castle Cryptography Library на Java
habrabot (difrex,1) → All  –  10:00:04 2016-01-11


В данном руководстве мы рассмотрим работу с OpenPGP на Java с использованием библиотеки Bouncy Castle Cryptography Library с ориентацией на использование в веб-разработке. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/bbe/0f7/ebd/bbe0f7ebd2390f418eae9bda5f286e96.png
[2]: http://habrahabr.ru/post/274779/#habracut
#  Open Source Society University
habrabot (difrex,1) → All  –  10:00:04 2016-01-11


![][1] Ребята называющие себя Open Source Society, взяли и собрали [учебный план из бесплатных MOOC курсов][2], для желающих изучить информатику (Computer Science). Всего в программе 50+ курсов в ходе которых можно получить знания о разных аспектах CS. Курсы собраны с таких проектов как: Coursera, edX, Udacity, и т.д. На мой взгляд получилась добротная цепочка, на освоение которой, в зависимости от интенсивности и уровня подготовки, уйдет 1-2 года. [Читать дальше →][3]

[1]: https://habrastorage.org/files/e58/54c/dcb/e5854cdcb9974b3991c7d9347fca8427.png
[2]: https://github.com/open-source-society/computer-science
[3]: http://habrahabr.ru/post/274789/#habracut
#  [Перевод] Как предсказать цену акций: Алгоритм адаптивной фильтрации
habrabot (difrex,1) → All  –  09:30:03 2016-01-11


[![][1]][2] Группа бразильских ученых опубликовала [исследование][3], посвященное созданию инструмента для предсказания поведения активов, торгующихся на фондовом рынке. В работе представлено подробное описание метода и способа расчетов для подобных прогнозов. Мы представляем вашему вниманию наиболее интересные моменты этого документа. [Читать дальше →][4]

[1]: https://habrastorage.org/files/6ab/ab4/c28/6abab4c287bb4554b6efe25e36763a17.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/274821/
[3]: http://arxiv.org/pdf/1501.07504.pdf
[4]: http://habrahabr.ru/post/274821/#habracut
#  Использование МатАнализа в компьютерных играх (часть 2)
habrabot (difrex,1) → All  –  09:00:06 2016-01-11


**_Ключевые слова:_** _Задача о коллекции; Wolfram Alpha; Wolfram Mathematica; числа Стирлинга второго рода; матанализ; теория вероятностей; мат ожидание; медиана; квантиль; компьютерные игры; коллекция вкладышей; функция распределения случайной величины; плотность вероятности, ArcheAge._

## Введение

Когда остается заполучить только три из ста предметов для того чтобы собрать всю коллекцию (вкладышей жвачек БомБимБома или Турбо, или набора тяжелых доспехов для персонажа компьютерной игры), то огонь в глазах и ожидание чуда вытесняют и логику и разум и попытки математического анализа из головы напрочь. Есть только одна мысль «Ещё чуть-чуть и я заполучу оставшееся! Я соберу всю!». В это время, родные и друзья, этого одержимого коллекционера озадачены лишь только одним вопросом – «А, чуть-чуть, это сколько?!». Сколько маме нужно купить ещё ненавистных жвачек, или сколько нужно ещё девушке сидеть одной, пока её парень не выбьет с монстров в игре «редчайшие трусы Баала»?! Ответить на вопрос «сколько нужно купить жевательных резинок, чтобы собрать полную коллекцию из N-штук вкладышей» сходу довольно сложно, даже если пользоваться Яндексом, потому, что сложно сформулировать сам запрос для «обычного» поисковика. Попытка решения задачи самостоятельно обычно ставит людей в тупик – не понятно, с какой стороны к ней подступиться. В данной статье будут рассмотрены три вопроса: Как подходить к задачам, которые не понятно на первый взгляд как решать? Каким поисковиком пользоваться для того чтобы получать научные ответы на научные вопросы (а не получать предложения купить формулу квадратного уравнения на eBay)? И конечно, сколько же нужно купить жвачек, чтобы собрать коллекцию вкладышей? [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274803/#habracut
#  IBM открывает разработчикам доступ к ряду своих сервисов, способствуя борьбе с киберпреступностью
habrabot (difrex,1) → All  –  06:00:02 2016-01-11


![][1] Корпорация IBM на днях приняла решение открыть доступ к своей аналитической платформе безопасности — IBM Security Radar. Этот шаг, по мнению представителей компании, поможет заказчикам, партнерам компании и обычным разработчикам создавать пользовательские приложения с использованием возможностей платформы и соответствующего архива данных о безопасности. Также запущена онлайн-площадка для специалистов по информационной безопасности [IBM Security Exchange][2]. Здесь разработчики смогут создавать и обмениваться приложениями на основе технологий IBM. Таким образом, корпорация предпринимает активные действия для стимулирования сотрудничества индустрии и продвижения инноваций для борьбы с киберпреступлениями. Ранее в 2015 году IBM опубликовала более 700 ТБ данных об угрозах на своей платформе IBM X-Force Exchange. Только в апреле к платформе присоединилось более 2000 организаций. Благодаря открытому доступу к аналитической платформе безопасности и архиву данных об угрозах, компании смогут обмениваться важной информацией, что позволит эффективнее противостоять киберпреступлениям. [Читать дальше →][3]

[1]: https://habrastorage.org/files/5ca/7ae/d64/5ca7aed649984cca87335d590a3dd74b.jpg
[2]: http://www-03.ibm.com/security/engage/app-exchange/
[3]: http://habrahabr.ru/post/274781/#habracut
#  Пойманы преступники, опустошавшие банкоматы с помощью вируса Tyupkin
habrabot (difrex,1) → All  –  06:00:02 2016-01-11


Европол задержал преступников, которые опустошали банкоматы без использования пластиковой карты — с помощью заранее загруженного в банкомат вируса Tyupkin. ![image][1] Сначала, с помощью загрузочного компакт-диска преступники получали доступ к установленным внутри банкоматов компьютерам под управлением одной из старых версий Windows и заражали их вредоносом. Данный вирус имел некоторые особенности: он отключал установленную антивирусную защиту, а также большую часть недели проводил «в спячке»: принимал команды от преступников по ночам — с субботы на воскресенье и с воскресенья на понедельник. Также троян мог отключать местную сеть, чтобы службы банка не могли удалённо подключиться к банкомату и проверить, что с ним происходит. [Читать дальше →][2]

[1]: https://habrastorage.org/files/7b9/4cf/dcf/7b94cfdcff6f42ec8d36730c5c370870.png
[2]: http://habrahabr.ru/post/274679/#habracut
#  [Перевод] Перевод: Трагедия common lisp
habrabot (difrex,1) → All  –  06:00:02 2016-01-11


Вашему вниманию предлагается перевод письма [Марка Миллера][1], одного из участников комитета по стандартизации JavaScript. В этом письме Марк рассказывает, к чему может привести “ползучий фичеризм” при дизайне языков программирования. И почему он не хочет добавлять в javascript синтаксис “let-block”. [Почитать, что придумал гранд-мастер оправданий][2]

[1]: https://en.wikipedia.org/wiki/Mark_S._Miller
[2]: http://habrahabr.ru/post/274739/#habracut
#  Автоматический запуск Libre/OpenOffice в режиме прослушивания из Python
habrabot (difrex,1) → All  –  04:30:03 2016-01-11


Libre/Open Office предоставляют возможность работы с офисом через UNO API. Для того, чтобы можно было обратиться к офису необходимо запустить его в режиме прослушивания. Например:



Данный подход вполне логичен и понятен с точки зрения разработчиков офиса, но несет ряд неудобств. В частности, нужно самостоятельно запускать Libre/Open Office в режиме прослушивания. Лично мне не понятно, почему разработчики поленились и не предоставили функции запуска офиса. Ну да ладно, было бы все сделано, не нужны были бы программисты. Посему будем решать задачу своими силами. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274775/#habracut
#  С днем рождения, Дональд Кнут
habrabot (difrex,1) → All  –  04:00:02 2016-01-11


![image][1]

#### День Рождения, 10 января, 78 лет

[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/156/2aa/5d3/1562aa5d3b02ef01922845f0b18b2689.jpg
[2]: http://habrahabr.ru/post/274787/#habracut
#  Почему и зачем писать open-source код?
habrabot (difrex,1) → All  –  04:00:02 2016-01-11


![image][1] _**Под катом интересный опрос**_ Возможно, заголовок этой статьи покажется Вам не корректным, _”Как можно писать open-source код? И что это за код такой?”_ — спросите Вы. Чем open-source код отличается от “просто-кода”? Open-source проект — это ответственность за качество кода, за покрытие его тестами, за документацию, за своевременные ответы на вопросы и реагирование на bug репорты, за обработку pull-request’ов. Ваше поведение и мысли во время написания open-source кода, который увидит мир будут другие, соответственно и код на выходе получается другой. Open-Source проект живет своей жизнью — жизнью сообщества, которое образуется вокруг проекта. Идеи, отзывы, bug репорты, обсуждение и благодарности от других членов сообщества влияют на Вас и проект напрямую, и стимулируют написание кода — понятного, документированного и покрытого тестами. [Читать дальше →][2]

[1]: https://habrastorage.org/files/a5a/956/669/a5a956669e5f4435a24855c570ad0d0a.png
[2]: http://habrahabr.ru/post/274791/#habracut
#  [Перевод] ProDBG переходит на Rust
habrabot (difrex,1) → All  –  21:30:02 2016-01-10




### Немного о ProDBG от переводчика и автора проекта

[![КДПВ][1]][2] ProDBG — это новый дебаггер, который сейчас разрабатывает Daniel Collin. Одна из целей проекта — поддержка множества архитектур и операционных систем. Изначально пишется на C/C++, заложена поддержка плагинов. На данный момент находится на ранней стадии разработки, и в основном нацелен на MacOS. Далее передаю слово автору поста.

----

Как известно тем из вас, кто читает меня в Твиттере, я не очень люблю C++. У него свои обычные проблемы с заголовочными файлами, отстойными шаблонами, и так далее. И большая проблема — найти альтернативу. Я рассматривал вариант перейти на C#, но сделать так, чтобы он хорошо заработал на всех платформах, кажется очень сложной задачей (например, на данный момент поддержка x86 на Mac практически отсутствует). К тому же некоторым людям такой выбор будет не по вкусу. Мне нравится (Common) Lisp. Я восхищаюсь устройством его макросов, в нём есть та элегантность, которая встречается не во всех языках. Однако он кажется каким-то чужеродным для многих людей, так что вкладывать в проект станет намного сложнее. К тому же я хочу по возможности использовать язык без сборщика мусора, и хотя Lisp можно сильно ускорить, сделать это не так уж просто. [Читать дальше →][3]

[1]: https://habrastorage.org/files/220/2cf/51a/2202cf51ab2941fdaa845ec93912a34e.png "КДПВ"
[2]: http://habrahabr.ru/post/274767/
[3]: http://habrahabr.ru/post/274767/#habracut
#  Steam CEG от Valve и с чем его едят. Все сложное — просто
habrabot (difrex,1) → All  –  16:30:03 2016-01-10


![image][1] Добрый час, _%USERNAME%_! В моей предыдущей статье "_[Steam CEG от Valve и с чем его едят. Введение][2]_" было дано лишь абстрактное понимание и принципы работы технологии CEG. В этой статье будет по абсолютному минимуму теории и преобладающее большинство практики. Сегодня и сейчас мы рассмотрим, можно ли «отучить» от этой защиты заветный исполняемый файл. [Читать дальше][3]

[1]: https://habrastorage.org/getpro/habr/post_images/55b/f02/837/55bf02837e1a8ccbc11ff9ed772e42a0.gif
[2]: http://habrahabr.ru/post/274741/
[3]: http://habrahabr.ru/post/274773/#habracut
#  [Перевод] Rust в 2016 году
habrabot (difrex,1) → All  –  12:30:03 2016-01-10


2015 год был значительным годом для Rust: мы выпустили версию 1.0, стабилизировали большинство элементов языка и кучу библиотек, значительно выросли как сообщество, а также [реорганизовали управление проектом][1]. Может показаться что 2016 год не будет таким же интересным (будет трудно превзойти [выпуск 1.0][2]), но это будет супер-важный год для Rust, в котором произойдет много захватывающих вещей. В этой статье я расскажу о том, что, как я думаю, должно произойти. Это не официальная позиция и не обещание разработчиков Rust.

### 2015

Прежде чем мы поговорим о будущем, вот несколько цифр за прошлый год: В 2015 году силами сообщества Rust:

* Создано 331 [предложение по улучшению языка (RFC)][3]
* из которых 161 были приняты и влиты в основной репозиторий
* всего 120 человек подавало RFC, из них 6 человек создало 10 и более, Alex Crichton создал 23 RFC
* Создано 559 задач по улучшению RFC
* Прислано и влито в [репозиторий Rust][4] 4630 Pull-запросов
* авторами которых является 831 человек, из них 91 создали больше 10 запросов, 446 человек создали только один, а Steve Klabnik был автором 551 pull-запроса
* Создано 4710 [задач][5]
* из которых 1611 еще открыты

>> Читать далее
#  Steam CEG от Valve и с чем его едят. Введение
habrabot (difrex,1) → All  –  17:30:02 2016-01-09


![image][1]

##### **Немного определений**

**CEG **(_Custom Executable Generation_, _рус. Генерация Уникального Исполняемого Файла_) — средство защиты от пиратства (как бы парадоксально это не звучало), разработанная великой и ужасной компанией _Valve _в 2009 году. Изначально планировалось, что новое средство защиты будет использоваться чуть ли не на каждой игре, выпущенной в _Steam_. Однако, пересмотрев свои приоритеты, компания Valve поняла, что если потенциальный разработчик захочет использовать такое 'счастье' в новоиспеченной игре, то желательно было бы платить и отнюдь не дешевую цену. Поэтому, исторически сложилось, что _CEG _используется лишь крупными компаниями, которые в состоянии себе это позволить. Сама суть этой защиты заключается в следующем: как только подходит к концу закачка игры из сервиса цифровой дистрибуции Steam, на персональный компьютер клиента загружается «голый», еще не подписанный исполняемый файл. Затем, на тот же клиентский компьютер, загружается цифровой сертификат и с помощью специальной библиотеки _SteamServices.dll_ (загрузка которой, к слову, производится в TEMP) и специального ключа с _AES _шифрованием подписывается выше упомянутый исполняемый файл.

##### **Собственно, быстрый смотр защиты**

«А какова же тогда практическая ценность такой 'защиты', если она только и делает, что просто подписывает исполняемый файл ?» — спросите Вы. И тут я отвечу — не все так просто как кажется на первый взгляд. Дело в том, что при нанесении цифровой подписи на файл, собирается информация о папках и файлах, которые присутствуют на клиентской системе, а так же некотором железе. В последствии, собранная информация, так же находит свое место в исполняемом файле. И эта информация будет действительно уникальной, так как учитываются следующие составляющие: временной штамп файлов и папок в стиле unix (дата создания, дата последнего изменения), уникальные ключи реестра (а так же проверка, установлен ли клиент Steam на ПК, посредством того же православного реестра), количество файлов в заданной директории, ID процессора, серийный номер жесткого диска. Следует отметить, что последние два — используются лишь в новейших версиях CEG (например, такие игры как: _XCOM: Enemy Within_, _Grid Autosport_, _DiRT Rally_).

##### **Подводные камни**

Итак, что же мы имеем — эдакую привязку 'уникального' исполняемого файла к железу и файлам клиентского ПК. Хорошо это или плохо? В общем и целом — хорошая идея и реализация. Минус в этом всем, если, допустим, Вы поехали на дачу к друзьям и прихватили с собой полный бэкап любимой игры с этим самым _CEG_, сбросив его на переносной носитель и надеясь, что сможете спокойно поиграть. Но тут случилось непредвиденное — у друга не работает Интернет! Зато на ноутбуке установлен Steam. Не беда, Вы делаете восстановление бэкапа вышей игры в оффлайновом режиме Steam, нажимаете кнопку «Играть», но ничего не происходит! А все потому, что железо и прочие составляющие, о которых писалось выше, не совпадают с железом Вашего друга. И без доступа в глобальную сеть, у Вас просто никак не получится запустить игру, так как по понятным причинам сгенерировать новый исполняемый файл невозможно. Или запустить исполняемый файл все таки возможно? В следующей части статьи пойдет речь о том, возможно ли полностью отучить от _CEG _исполняемый файл, имея под рукой отладчик и среду разработки программного обеспечения (Visual Studio, например). [][2]


>> Читать далее
#  [Перевод] Восход разработчикономики (окончание)
habrabot (difrex,1) → All  –  11:30:03 2016-01-09


**(начало статьи [здесь][1])**

#### Управление рисками при инвестировании в программистские таланты

С другой стороны — этот эффект не имеет названия; возможно, его следовало бы именовать «десятикра**д**ничеством» — _плохие_ разработчики будут стоить вам отнюдь не незначительного ухудшения производительности труда. Нет, по целому ряду трудноуловимых причин они способны катастрофически саботировать сложную программную систему. Плохим разработчиком, построившим угрожающе полную ошибок или из рук вон плохо спроектированную систему, в её основание заложена тикающая бомба замедленного действия, и чтобы разгрести руины после того, как она рванёт, потребуются вложения, тысячекратно превосходящие сэкономленное на старте. Хуже того, работа по разбору завалов потребует привлечения усилий гораздо большего количества _хороших_ разработчиков, и на более длительное время. В этом моменте разработка программного обеспечения является полной противоположностью другим отраслям — скажем, аэрокосмической, — в которых некомпетентность и грубые ошибки гораздо более очевидны; их легче обнаружить и исправить на ранних этапах, пока стоимость такого исправления ещё не выросла до небес. Отсроченные кризисы (вроде конструкции самолёта, в которой в ходе реальной эксплуатации [обнаружился фатальный дефект][2]) также гораздо легче удержать от распространения, изолировать и исправить. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/270267/
[2]: https://ru.wikipedia.org/wiki/De_Havilland_Comet#.D0.9A.D0.B0.D1.82.D0.B0.D1.81.D1.82.D1.80.D0.BE.D1.84.D1.8B_.D0.B8_.D0.BF.D1.80.D0.B5.D0.BA.D1.80.D0.B0.D1.89.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.C2.AB.D0.9A.D0.BE.D0.BC.D0.B5.D1.82.C2.BB_.D0.BF.D0.B5.D1.80.D0.B2.D1.8B.D1.85_.D1.81.D0.B5.D1.80.D0.B8.D0.B9
[3]: http://habrahabr.ru/post/274573/#habracut
#  Критические ошибки проектирования АСУ ТП и программирования ПЛК
habrabot (difrex,1) → All  –  11:00:02 2016-01-09


В промышленности внедряются автоматизированные системы управления технологическим процессом (АСУ ТП) на промышленных программируемых логических контроллерах (ПЛК) на объектах модернизации. Вновь поставляемое оборудование, уже по умолчанию содержит АСУ на ПЛК. Но качество проектирования АСУ ТП и программирования ПЛК иногда не соответствует логике и требований к надежной защите управляемого объекта. В этой статье я расскажу о типичной ошибке проектирования и программирования обычного промышленного оборудования. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274727/#habracut
#  Программный интернет шлюз для уже не маленькой компании (Shorewall, OpenVPN, OSPF). Часть 2
habrabot (difrex,1) → All  –  10:00:02 2016-01-09


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

* Более подробная настройка Shorewall
* Страшный и не понятный QoS
* Балансировка нагрузки и резервирование

А в [предыдущей части][1] были рассмотрены:

* Простейшая настройка Shorewall
* Ужасно сложная настройка dnsmasq
* Не менее сложная настройка OpenVPN
* И для многих продолжающих админов нетипичная, динамическая маршрутизация, на примере OSPF

[Читать дальше →][2]

>> Читать далее
#  Security Week 01: Вымогатель на Javascript, $100k за баг в Adobe Flash, зашифрованное светлое будущее
habrabot (difrex,1) → All  –  09:00:03 2016-01-09


![][1]Важным событием конца декабря стала конференция Chaos Communication Congress. Материалы с нее можно найти по ключевому слову 32c3, где 32 — порядковый номер мероприятия, начиная с 1984 года. Интересных исследований на мероприятии в Гамбурге было немало. Например, эксперты Феликс Домке и Даниель Ланге подробно [рассказали][2] о технической стороне «дизельгейта», включая особенности работы современных управляющих систем автомобилей. А [здесь][3] можно посмотреть монументальную 110-страничную презентацию об уязвимости железнодорожных систем, и прийти к выводу, что IT в поездах применяется широко, много, везде по-разному, и часто с применением стандартного ПО (Windows XP) или типовых протоколов беспроводной связи (GSM), недостатки которых с точки зрения безопасности широко известны и активно эксплуатируются (к счастью, пока в других местах). А вот [новость][4] (презентация и ссылка на исследовательскую работу внутри) о том, что уникальные особенности стиля программирования просачиваются даже в скомпилированный код. Хотя данная тема и является достаточно узкоспециализированной, я вижу в ней нечто большее: возможно в ближайшем будущем картинка справа окончательно потеряет актуальность. Не потому, что все за всеми будут следить, а благодаря поведенческому анализу — пользователя можно будет идентифицировать по тому, как он взамодействует с сайтом, приложением или чем-то еще так же, как программиста — по тому, как тот пишет код. Вот кстати Apple буквально вчера [приобрела][5] стартап, специализирующийся на анализе человеческих эмоций. В общем, 2016-й год начинается интересно. А мы продолжаем наблюдение. Предыдущие серии доступны [здесь][6]. [Читать дальше →][7]

[1]: https://habrastorage.org/files/a9f/c99/ed1/a9fc99ed11d44c40aa0127c3763cab17.jpg
[2]: https://blog.kaspersky.ru/dieselgate-explained/10406/
[3]: https://blog.kaspersky.ru/train-hack/10377/
[4]: http://www.theregister.co.uk/2015/12/31/automated_stylometry_can_deanonymise_programmers_binaries/?mt=1452258549219
[5]: http://www.wired.co.uk/news/archive/2016-01/08/apple-emotient-ai-emotions
[6]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[7]: http://habrahabr.ru/post/274703/#habracut
#  Итоги конкурса по программированию на JS: Почтовые фильтры
habrabot (difrex,1) → All  –  15:30:03 2016-01-08


Спасибо всем участникам нашего последнего [конкурса по программированию][1]! Мы получили 408 решений от 237 различных участников (в конкурсе участвует только одно, последнее из решений от каждого участника, и мы публикуем именно последние варианты). Кроме того, 7 решений было отправлено нам либо после окончания срока приёма работ, либо сотрудниками Hola, и мы рассмотрели их вне конкурса. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/hola/blog/270847/
[2]: http://habrahabr.ru/post/274697/#habracut
#  Обезвреживаем бомбу с Radare2
habrabot (difrex,1) → All  –  14:30:04 2016-01-08


![][1] Доброго времени суток, %username%! Сегодня мы отправимся изучать бесчисленные возможности фреймворка для реверсера — radare2. В виде подопытного я взял первую попавшую бомбу, она оказалась с [сайта][2] Университета Карнеги Меллон. [Читать дальше →][3]

[1]: https://habrastorage.org/files/0f6/894/09e/0f689409e9a246c1b214c3a2fd9402f2.png
[2]: http://csapp.cs.cmu.edu/3e/bomb.tar
[3]: http://habrahabr.ru/post/274617/#habracut
#  Как я стал самым маленьким программистом в республике точно
habrabot (difrex,1) → All  –  08:30:02 2016-01-08


Привет, Хабр! Я, наверное, самый маленький программист в республике, если не в стране. Сейчас мне всего 11, но я хорошо знаю Си и C++. Давайте приступим к теме статьи — о моем пути программиста. Продолжение под катом. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274661/#habracut
#  [Перевод] Социология алгоритмов: Как связаны финансовые рынки и высокочастотная торговля (Часть 2)
habrabot (difrex,1) → All  –  07:30:02 2016-01-08


[![][1]][2] Ранее в нашем блоге мы публиковали [первую часть][3] [исследования][4] социологии финансовых алгоритмов, выполненного профессором Высшей школы социальных наук Эдинбурга Дональда МакКензи. Сегодня мы представляем вашему вниманию продолжение этой интересной работы — во второй части речь идет о разных типах HFT-заявок, дарк-пулах и связанных экологиях финансовых рынков. [Читать дальше →][5]

[1]: https://habrastorage.org/files/2a1/d08/7b9/2a1d087b9d504296868199544f418898.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/274671/
[3]: http://habrahabr.ru/company/itinvest/blog/274247/
[4]: http://www.fixnetix.com/perch/resources/algorithms25.pdf
[5]: http://habrahabr.ru/post/274671/#habracut
#  Обзор примера применения обучения с подкреплением с использованием TensorFlow
habrabot (difrex,1) → All  –  05:00:02 2016-01-08


![КПДВ. В Karpathy game играет нейронная сеть][1] Всем привет! Я думаю, что многие слышали о [Google DeepMind][2]. О том как они обучают программы играть в игры Atari лучше человека. Сегодня я хочу представить вам статью о том, как сделать нечто подобное. Данная статья — это обзор идеи и кода [примера][3] применения [Q-learning][4], являющегося частным случаем обучения с подкреплением. Пример основан на [статье сотрудников Google DeepMind][5]. [За подробностями добро пожаловать под кат][6]

[1]: https://habrastorage.org/files/70a/74e/0b1/70a74e0b15ad4a97944eb06d63dd2aff.png
[2]: http://deepmind.com/
[3]: https://github.com/nivwusquorum/tensorflow-deepq
[4]: https://ru.wikipedia.org/wiki/Q-%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
[5]: https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf
[6]: http://habrahabr.ru/post/274597/#habracut
#  PROLOG для программистов
habrabot (difrex,1) → All  –  00:00:03 2016-01-08


Язык логического программирования PROLOG (далее – ПРОЛОГ) большинству программистов представляется чем-то запутанным и малопригодным для практического применения. В то же время, Интернет основан на символьной информации, поэтому практически все современные программисты сталкиваются с необходимостью обрабатывать символьные структуры данных, а ведь для этого и предназначен язык логического программирования ПРОЛОГ. Этот язык – идеальный для работы с символьными структурами, текстовыми файлами и для построения интеллектуальных программ. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274603/#habracut
#  [Из песочницы] «Иная» логика и обратимые вычисления
habrabot (difrex,1) → All  –  20:00:03 2016-01-07


![камень-ножницы-бумага (на ауребеш)][1] В конце прошлого года Google Translate к выходу нового эпизода «Звёздных войн» добавил поддержку «Галактического языка» Ауребеш. Правда оказалось, что при выборе этого языка просто происходит перевод на английский. Если использовать Chrome или Firefox, то появляется шрифт, в котором вместо латиницы подставлены символы ауребеш, ну а в IE без особых хитростей выводится английский текст. Начал вспоминать другие примеры создания «языков чужаков». Например, язык Клингонов из «Звёздного пути» тоже основан на латинице, но при этом достаточно проработан, имеет свой синтаксис и словарь. Языки народов Средиземья из «Властелина колец» – вообще отдельная история. А ещё существуют такие языки, как Линкос, специально разработанный Гансом Фройденталем для межпланетного общения и основанный на предположении, что математика является универсальным языком общения для любых разумных существ. [Читать дальше →][2]

[1]: https://habrastorage.org/files/cea/a3e/eeb/ceaa3eeeb2bf4d5c8257dc396ad7ed06.jpg
[2]: http://habrahabr.ru/post/274645/#habracut
#  [Из песочницы] Охота на грызунов под Linux
habrabot (difrex,1) → All  –  15:00:03 2016-01-07


Существует масса средств мониторинга операционной системы, но особый смысл имеет задача отловить момент возникновения проблемы и поймать причину высокой нагрузки или источник проблем c производительностью. Я называю это охотой на «грызунов» ресурсов. Для этого я сочинил для себя несложный скрипт **ratskill.sh** который вы сможете модифицировать под свои системы и задачи. Принцип работы несложный — скрипт запускается с заданной периодичностью, проверяет уровень Load Average (вы можете использовать другие контрольные параметры) и в случае превышения заданной величины скрипт выполняет заданный набор диагностических команд с созданием отчета который высылается на указанный вами почтовый адрес. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274633/#habracut
#  Немного сахара в комбинаторике
habrabot (difrex,1) → All  –  12:30:02 2016-01-07


Доброго времени суток, хабр! Каждый уважающий себя программист знает, что глубокие вложенности — плохой стиль. Но есть алгоритмы, которые реализуются каскадом вложенных циклов (3 и более). В этой статье я хочу рассказать, как можно справиться с проблемой вложенных циклов при переборе комбинаций на любимом языке D. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274619/#habracut
#  [Перевод] Инструменты для взлома, мелькавшие в сериале Mr Robot
habrabot (difrex,1) → All  –  03:00:03 2016-01-07


![image][1] Всё время, пока в Голливуде снимали фильмы про хакеров, самым популярным инструментом для «взлома» была утилита nmap. Когда продюсеры фильма пытались добавить немного реалистичности, на экране компьютеров мелькал вывод nmap. Вроде бы первой отличилась Тринити из фильма «Матрица». Также эта утилита появлялась в Elysium, The Bourne Ultimatum, Die Hard 4 и других киношках. ![image][2] Первый сезон Mr Robot получил одобрение от специалистов по безопасности за попытки реалистичного показа работы хакеров. В показанных эпизодах хакеры общались через IRC, использовали виртуальные машины Linux, а главный герой ходил в толстовке с капюшоном. Естественно, поскольку это телешоу, создателям пришлось проявить толику творчества. И пока им удаётся сохранять неплохой баланс между повествованием и реальными техническими возможностями. Кратко рассмотрим увиденные нами в сериале средства для взлома.

#### Kali Linux

![image][3] Несколько раз можно видеть использование дистрибутива Kali Linux – операционки, изначально снабжённой инструментами для проникновения и тестирования безопасности систем. Если вам интересна тема сетевой безопасности – скачивайте её себе и начинайте пробовать. Естественно, только в учебных целях. Не взламывайте чужие компьютеры – это незаконно! [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/fb4/97f/2ad/fb497f2adb1f06ce5ef498dd2227abfa.png
[2]: https://habrastorage.org/getpro/habr/post_images/027/7a3/706/0277a3706f1f40e0e5abe0c943278cff.png
[3]: https://habrastorage.org/getpro/habr/post_images/0e9/496/c35/0e9496c350a513fda2fb9ebd1eb26d57.png
[4]: http://habrahabr.ru/post/274621/#habracut
#  [Перевод] Почему функциональное программирование — мейнстрим?
habrabot (difrex,1) → All  –  20:30:04 2016-01-06


Функциональное программирование вряд ли можно назвать новым явлением. Еще в начале 90-х, когда я учился в университете, нам нередко приходилось писать что-то на LISP. Казалось бы, 25 лет прошло – но ведь уже тогда этот язык программирования был старше меня. Преимущества функционального программирования давно признаны широкой общественностью. Успешное развитие программного обеспечения нередко сводится к максимальному упрощению существующих механизмов, которые позволяют новым приложениям приспособиться к требованиям современных пользователей. А заодно приходится спешить, успевая в сжатые сроки представлять потребителям продукцию с неограниченными возможностями. Гораздо проще справиться с поставленной задачей, когда разрабатываемые приложения можно условно разделить на несколько чистых функций, проверить которые не составляет труда. В таких алгоритмах нет каверзных побочных эффектов и абстрактных формулировок, рассчитанных на результаты в глобальном масштабе. Но, похоже, ни один функциональный язык не претендует на звание общепризнанного. Я имею в виду своеобразную всемирную гегемонию C в 70-х, который позже передал корону C ++, Java, а со временем и JavaScript. Ни один из претендентов второго эшелона (Python, PHP, Perl, Ruby, C# ...) не попадал в категорию функциональных. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274567/#habracut
#  Дайджест по итогам 2015 года
habrabot (difrex,1) → All  –  16:00:04 2016-01-06


![][1] Мы решили поздравить всех читателей блога с наступившим Новым годом и подвести итоги прошедшего. Конец 2015 года ознаменовался круглыми числами — 6000-й билд в SVN и 5000-й участник группы [https://vk.com/kolibri\_os][2] социальной сети ВКонтакте. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/332/ac0/97c/332ac097cb7bfba245943a942c69f564.png
[2]: https://vk.com/kolibri_os
[3]: http://habrahabr.ru/post/274487/#habracut
#  [Из песочницы] Eddystone и Physical Web: эволюция биконов
habrabot (difrex,1) → All  –  14:00:04 2016-01-06


![][1] Меня зовут Алекс, я Android-разработчик в компании Touch Instinct. Недавно Google пригласил меня в жюри на хакатон BaumanHack. Я подготовил доклад о специфике Eddystone и Physical Web, делюсь основными тезисами. [Читать дальше →][2]

[1]: https://habrastorage.org/files/435/77d/b2b/43577db2bee240d6a5df0646b29769aa.png
[2]: http://habrahabr.ru/post/274585/#habracut
#  [Перевод] Незаметные достоинства регулярных выражений в Python
habrabot (difrex,1) → All  –  12:30:06 2016-01-06


![image][1] В стандартной библиотеке Python есть немало кошмарных модулей, но этого нельзя сказать о модуле re. Несмотря на его преклонный возраст и многолетнее отсутствие обновлений, я считаю этот модуль одним из лучших среди всех динамических языков. Python — один из немногих динамических языков, в которых отсутствует встроенная поддержка регулярных выражений, но это компенсируется проработанной базовой системой (с точки зрения API). В то же время он весьма причудлив. К примеру, поведение написанного на Python парсера может вас удивить. Если вы попытаетесь в ходе импорта профилировать Python, то, скорее всего, 90% времени вы проведёте в работе с модулем re. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/37b/b56/e2e/37bb56e2e5bfab9ee28b6030bb6ad02e.png
[2]: http://habrahabr.ru/post/274349/#habracut
#  [Из песочницы] Настройка logrotate + доступ для сбора логов по SFTP
habrabot (difrex,1) → All  –  12:00:03 2016-01-06


У меня стояла задача: настроить сжатие логов DNS сервера Unbound, с возможностью удобного сбора этих бэкапов в коллектор. Также требовалось ограничить права доступа, чтобы с коллектора можно было зайти только в дирректорию, где хранятся бэкапы логов. Указанные действия проводил на CentOS 7 Minimal и CentOS 6.6 Minimal. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274539/#habracut
#  [Из песочницы] Universal Memcomputing Machines как альтернатива Машине Тьюринга
habrabot (difrex,1) → All  –  12:00:03 2016-01-06


_Данную статью можно считать вольным переводом (хотя скорее попыткой разобраться) [данной статьи][1]. И да, написанна она скорее для математиков, нежели для широкой аудитории._ _Небольшой спойлер: в начале это казалось мне какой-то магией, но потом я понял подвох…_ В наши дни машина Тьюринга (далее МТ) — универсальное определение понятия алгоритма, а значит и универсальное определение «решателя задач». Существует множество других моделей алгоритма — лямбда исчисление, алгорифмы Маркова и т.д., но все они математически эквивалентны МТ, так что хоть они и интересны, но в теоретическом мире ничего существенно не меняют. Вообще говоря, есть другие модели — Недетерминированная машина Тьюринга, Квантовые машины Тьюринга. Однако они (пока) являются только абстрактными моделиями, не реализуемые на практике. Полгода назад в Science Advances вышла интересная [статья][2] с моделью вычислений, которая существенно отличается от МТ и которую вполне возможно реализовать на практике (собственно статья и была о том, как они посчитали задачу SSP на реальном железе). И да. Самое интересное в этой модели то, что, по заверению авторов, в ней можно решать (некоторые) задачи из класса NP полных задач за полином времени и памяти. [Читать дальше →][3]

[1]: http://arxiv.org/abs/1405.0931
[2]: http://advances.sciencemag.org/content/1/6/e1500031
[3]: http://habrahabr.ru/post/274593/#habracut
#  На следующей неделе Microsoft прекращает поддержку всех версий IE, кроме 11
habrabot (difrex,1) → All  –  11:30:05 2016-01-06


12 января корпорация Microsoft [прекращает поддержку][1] Internet Explorer версий 8, 9 и 10. Прежде, чем полностью прекратить поддержку устаревших версий своего обозревателя, компания выпускает финальный патч. После этого указанные версии Internet Explorer более не будут получать обновления безопасности или техническую поддержку. В [недавнем патче][2] исправляются несколько новых проблем, плюс добавляется уведомление «End of Life», которое предлагает пользователям переходить на IE 11 или Microsoft Edge — следующую версию браузера корпорации. [Читать дальше →][3]

[1]: https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support?tduid=%28152800698a41e035097041fc5f7e78c3%29%28190947%29%281929404%29%28skim66960X1514734X6f64dcb219dfa13758ce89ea999485cd%29%28%29
[2]: https://support.microsoft.com/en-us/kb/3123303?sd=rss&spid=14019
[3]: http://habrahabr.ru/post/274595/#habracut
#  [Перевод] Итоги 2015-го года для C++
habrabot (difrex,1) → All  –  09:30:03 2016-01-06


![][1]Возможно, я скажу банальную вещь, но прошедший год был хорошим годом для С++! Просто факты:

* Вышла Visual Studio 2015 с отличной поддержкой возможностей С++14/17 и даже нескольких экспериментальных вещей
* Вышел долгожданный GCC 5.0
* С++ набрал серьёзную популярность. Где-то с июля — третье место в Tiobe Ranking
* На конференции CppCon 2015 было сделано несколько важных анонсов

А теперь об этом и другом немного подробнее [Читать дальше →][2]

[1]: https://habrastorage.org/files/b11/a45/65c/b11a4565ce1844c4ba6bd6a18a8eabab.png
[2]: http://habrahabr.ru/post/274549/#habracut
#  Некоторые современные подходы в области обработки естественного языка
habrabot (difrex,1) → All  –  07:00:02 2016-01-06


Результаты научных исследований, полученные в последние годы в задачах [распознавания речи][1] [1], машинного перевода [2], определения оттенка предложения [3] и [частей речи][2] [4] показали перспективность нейросетевых алгоритмов глубокого обучения в сравнении с классическими методами обработки естественного языка (natural language processing). Однако, в области [вопросно-ответных][3] и [диалоговых][4] систем еще остается много нерешенных задач [5, 6]. В данной статье дан обзор результатов применения современных алгоритмов для задач обработки и понимания естественного языка. Обзор содержит описание нескольких разных подходов и не претендует на полноту исследований. ![][5] **Human**: _how many legs does a cat have ?_ **Machine**: _four, i think ._ **Human**: _What do you think about messi ?_ **Machine**: _he ’s a great player ._ **Human**: _where are you now ?_ **Machine**: _i ’m in the middle of nowhere ._ (из [статьи][6] _A Neural Conversational Model_. КДПВ из фильма Ex Machina) [Читать дальше →][7]

[1]: http://arxiv.org/abs/1412.5567
[2]: http://arxiv.org/abs/1506.07285
[3]: http://arxiv.org/abs/1511.08130
[4]: http://arxiv.org/abs/1512.05742
[5]: https://habrastorage.org/files/2f7/bc7/6f1/2f7bc76f1dbd4a899265afe4813de4de.jpg
[6]: http://arxiv.org/pdf/1506.05869v3.pdf
[7]: http://habrahabr.ru/post/274577/#habracut
#  Google исправила уязвимости в Android
habrabot (difrex,1) → All  –  03:00:03 2016-01-06


Google выпустила обновление безопасности для Android _Nexus Security Bulletin — January 2016_, которое закрывает 12 уязвимостей в этой мобильной ОС. Одна из исправленных уязвимостей CVE-2015-6636 (_Remote Code Execution Vulnerability in Mediaserver_) относится к типу Remote Code Execution (RCE) и позволяет злоумышленникам удаленно исполнить код с повышенными привилегиями в Android с использованием вредоносного мультимедийного файла. Для доставки этого файла может быть использовано MMS-сообщение или фишинговый веб-ресурс для браузера. Еще четыре критические уязвимости относятся к типу Elevation of Privilege (EoP) и позволяют атакующим повысить привилегии своего кода в системе до уровня ядра ОС. ![][1] Другие две уязвимости относятся к типу High, одна из них CVE-2015-6641 в компоненте Bluetooth позволяет атакующему подключиться по беспроводному подключению к устройству и получить доступ к личной информации пользователя. Другая уязвимость CVE-2015-6642 типа Information Disclosure в ядре позволяет обойти встроенные механизмы безопасности Android и получить повышенные привилегии в системе. [Читать дальше →][2]

[1]: https://habrastorage.org/files/f95/f81/3fa/f95f813fa42049e6a6c973b85ff5b000.png
[2]: http://habrahabr.ru/post/274559/#habracut
#  [Перевод] Создание функции на Rust, которая возвращает String или &str
habrabot (difrex,1) → All  –  16:30:02 2016-01-05




### От переводчика

[![КДПВ][1]][2] Это последняя статья из цикла про работу со строками и памятью в Rust от Herman Radtke, которую я перевожу. Мне она показалась наиболее полезной, и изначально я хотел начать перевод с неё, но потом мне показалось, что остальные статьи в серии тоже нужны, для создания контекста и введения в более простые, но очень важные, моменты языка, без которых эта статья теряет свою полезность.

----

Мы узнали как [создать функцию, которая принимает String или &str][3] ([англ.][4]) в качестве аргумента. Теперь я хочу показать вам как создать функцию, которая возвращает `String` или `&str`. Ещё я хочу обсудить, почему нам это может понадобиться. [Читать дальше →][5]

[1]: https://habrastorage.org/files/6b8/cb6/a67/6b8cb6a67c1a45e7b803703a89846a2f.png "КДПВ"
[2]: http://habrahabr.ru/post/274565/
[3]: http://habrahabr.ru/post/274455/
[4]: http://hermanradtke.com/2015/05/06/creating-a-rust-function-that-accepts-string-or-str.html

>> Читать далее
#  Jii 0.8: Миграции, ReactViews, изоморфное приложение и прочие плюшки
habrabot (difrex,1) → All  –  16:00:03 2016-01-05


Привет всем жителям и гостям хабра и с новым годом! :) В этой статье я хочу рассказать о том, с какими фичами Jii вступил в 2016-й год и что его в ждет в новом году.



Итак, начнем по порядку. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274419/#habracut
#  Анимация падающего снега на Canvas эффективнее анимации на DOM в несколько раз
habrabot (difrex,1) → All  –  13:30:03 2016-01-05


ещё зима, предлагаю устроить хакатончик по реализации лучших алгоритмов на канвасе и их аналогов на DOM, взяв за основу в основном древние нативные алгоритмы, которые как максимум обёртывались в плагин jQuery, чтобы было удобно подключать. Большая часть этих алгоритмов не соразмеряет нагрузку на процессор или сделана неэффективно, поэтому даже при малом числе снежинок грузят процессор на 100%. [Вот пример обзорной статьи][3], где рассмотрены более 10 реализаций, не все, встречающиеся в природе. В дополнение, рассмотрим несколько избранных, чтобы получить задел на развитие алгоритма и реализацию его с хорошей эффективностью (получится ещё 5-6 вариантов). На этой основе можно построить доработку. [подробности][4]

[1]: https://habrastorage.org/files/dfa/01c/6af/dfa01c6af10147b49e7fcacc7da23c54.png
[2]: http://spmbt.github.io/snowfalls/jSnowMultiWin.htm
[3]: http://www.jqueryrain.com/2012/04/top-jquery-snow-falling-effect-plugin-tutorial-with-example/
[4]: http://habrahabr.ru/post/274535/#habracut
#  Восход разработчикономики
habrabot (difrex,1) → All  –  23:30:02 2016-01-04




> ###### **От переводчика**
>
> Почитывая несколько лет назад журнал "
>
> [Форбс][1]
>
> ", я наткнулся на статью, которую нашёл крайне интересной. Ну, знаете как бывает — читаешь, читаешь, и на каждом абзаце воскликаешь: «О! Це ж про меня!». Не мог поверить, что я один такой, и никто не сподобится уж если не перевести, то хотя бы сослаться на неё в русскоязычной прессе. Однако за четыре года этого так и не произошло. Ну что ж, «хочешь сделать что-то правильно — сделай это сам», посему предоставляю вниманию почтенной публики первую половину статьи. (Стараюсь переводить художественно, поэтому работа двигается небыстро; размер оригинала — больше 30 килобайт, и, «земную жизнь пройдя до половины», я понял, что
>
> [держаться нету больше сил][2]
>
> .)
>

>> Читать далее
#  Программирование микрокомпьютера LEGO NXT Mindstorms 2.0. Введение
habrabot (difrex,1) → All  –  22:30:03 2016-01-04


Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера LEGO NXT Mindstorms 2.0. Для разработки приложений я буду использовать платформы Microsoft Robotics Developer Studio 4 (MRDS 4) и National Instruments LabVIEW (NI LabVIEW). Будут рассматриваться и реализовываться задачи автоматического и автоматизированного управления мобильными роботами. Двигаться мы будем от простого к сложному. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/6ca/e98/fae/6cae98faeea742b6a1955d5de7d50cfd.jpg
[2]: http://habrahabr.ru/post/274519/#habracut
#  Решение головоломки Галакуб на Питоне
habrabot (difrex,1) → All  –  20:30:02 2016-01-04


На новый год купил племяннику головоломку Галакуб. Задача собрать из разных деталей куб размером 4х4х4. Суммарный объём деталей, как раз, 4х4х4. Прежде, чем дарить надо было собрать головоломку. Красивое симметричное решение нашлось достаточно быстро. Но стало интересно единственное это решение или нет. Интуиция подсказывала, что единственное, но хотелось проверить. ![][1] Я решил по-быстрому запилить скрипт для перебора всех вариантов. В идеале нужно было успеть до новогодней речи Путина. Ситуация усугублялась тем, что код писался на Макбуке моих родителей. Поставить на него какие-то библиотеки — это задача покруче, чем написать саму программу. Код получился на удивление красивый и понятный. Его удобно объяснять. Может быть, текст будет полезен, например, изучающим Питон. [Читать дальше →][2]

[1]: https://habrastorage.org/files/9bf/74e/247/9bf74e2473ea4910a27c6586356c9709.JPG
[2]: http://habrahabr.ru/post/274527/#habracut
#  IBM открывает blockchain-лабораторию
habrabot (difrex,1) → All  –  13:00:03 2016-01-04


![][1] Корпорация IBM совместно с некоммерческой организацией Innovate Finance планирует провести изучение потенциала технологии Blockchain с целью разработки новых методов ведения бизнеса в современных условиях. На основе этой технологии создавалась система криптовалюты Bitcoin, успешно функционирующая уже несколько лет. Криптовалюта сейчас превратилась в признанное платежное средство, виртуальную денежную единицу, которая принимается крупными и мелкими предприятиями, корпорациями и сервисами. Теперь IBM планирует изучить дополнительные возможности Blockchain, задействуя собственные вычислительные и аналитические мощности. Технология, о которой идет речь, сейчас привлекает внимание банков и финансовых структур, которые изучают Blockchain с целью реализации новых проектов. [Читать дальше →][2]

[1]: https://habrastorage.org/files/735/4ec/ae0/7354ecae05434f0eb2aae5340e511d34.jpg
[2]: http://habrahabr.ru/post/274501/#habracut
#  О сложности выращивания сакуры: как я участвовал в Ludum Dare 34
habrabot (difrex,1) → All  –  12:00:02 2016-01-04


Привет, хабр! В данном посте речь пойдет о моем участии в конкурсе Ludum Dare 34, который был около трех недель назад. В результате получился пазл под названием Growing Sakura, геймплей которой можно видеть на гифке (не пугайтесь, она весит всего 300Кб):



Кратко о правилах игры: изначально у нас есть гексагональное поле и несколько корневых бутонов (или один, как на гифке выше). Из него можно пустить 3 ветки (двумя способами — кликая левой или правой кнопкой мыши). Из каждого бутона на ветке левым кликом мыши можно сделать Y-разветвление, а правым — просто продолжить ветку дальше (I-разветвление). Если в каком либо направлении ветка расти не может (соответствующая клетка занята или в нужном направлении нет клетки) — то ветка не растет. В соответствии с последним условием нужно правильно выбирать порядкок «разворачивания» веток. В итоге получится дерево (или несколько деревьев) такое, что между двумя смежными ветками нет острых углов. Цель игры — покрыть все клетки игрового поля. Не заглядывая под кат попробуйте подумать секунд 10 и прикинуть, насколько сложной может быть эта игра. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273349/#habracut
#  [Из песочницы] Определение пола по ФИО – когда точность действительно важна
habrabot (difrex,1) → All  –  11:00:03 2016-01-04


Некоторое время назад меня заинтересовала задача определения пола человека по его ФИО. В тот момент я работал в области медицинского страхования, где эта проблема была действительно актуальна – расходы на одного застрахованного, а значит и тарифы, по которым людей принимали на страхование, в зависимости от пола клиента, могли отличаться в несколько раз. Большая часть договоров – корпоративные, застрахованные являются сотрудниками работодателя. Мы никогда не видели большинство из них в глаза, все, что мы имели – списки застрахованных, где пол иногда был указан (с большим количеством ошибок), но чаще – не указан вообще. Большинство компаний имеют свою специфику работы и профессиональные традиции, в силу чего, в их коллективах преобладают люди одного пола. Даже небольшая ошибка могла сделать потенциально прибыльный договор убыточным (или наоборот, но на такое, по странному стечению обстоятельств, случалось с нашими клиентами гораздо реже). В целом, при объеме портфеля договоров в несколько миллиардов, и характерном количестве ошибок около процента, цена корректного определения пола по ФИО была в районе нескольких десятков миллионов. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274499/#habracut
#  Центробежные компрессорные установки. Защита от помпажа
habrabot (difrex,1) → All  –  10:30:02 2016-01-04


Компрессорные установки в промышленности используются во многих технологических операциях. Сжатый воздух получают разными типами компрессорных установок. От роторного типа, до вихревых турбомашин. Центробежные компрессорные установки типа К-250 имеют широкое распространение в промышленности. Но у всех типов компрессоров есть критический режим работы – помпаж. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274497/#habracut
#  Пишем DXE-драйвер для снятия скриншотов с BIOS Setup и других UEFI-приложений
habrabot (difrex,1) → All  –  05:30:02 2016-01-04


![][1] В прошлой [статье про SecureBoot][2] мне очень не хватало возможности сделать снимок экрана при настройке UEFI через BIOS Setup, но тогда выручило перенаправление текстовой консоли в последовательный порт. Это отличное решение, но доступно оно на немногих серверных материнских платах, и через него можно получить только псевдографику, а хотелось бы получить настоящую — она и выглядит приятнее, и вырезать ее каждый раз из окна терминала не надо. Вот именно этим мы и займемся в этой статье, а заодно я расскажу, что такое DXE-драйвер и как написать, собрать и протестировать такой самостоятельно, как работают ввод с клавиатуры и вывод на экран в UEFI, как найти среди подключенных устройств хранения такое, на которое можно записывать файлы, как сохранить что-нибудь в файл из UEFI и как адаптировать какой-то внешний код на С для работы в составе прошивки. Если вам все еще интересно — жду вас под катом. [Драйверов богу драйверов! Скриншотов к трону скриншотов!][3]

[1]: https://habrastorage.org/files/2a8/8f3/b41/2a88f3b415b54f1ea653f2b5aad91306.png
[2]: http://habrahabr.ru/post/273497/
[3]: http://habrahabr.ru/post/274463/#habracut
#  [Перевод] String и &str в функциях Rust
habrabot (difrex,1) → All  –  01:30:02 2016-01-04


[![КДПВ][1]][2] Этот пост посвящается всем тем, кого смущает необходимость использовать `to_string()`, чтобы заставить программы компилироваться. И я надеюсь пролить немного света на вопрос о том, почему в Rust два строковых типа `String` и `&str`. [Читать дальше →][3]

[1]: https://habrastorage.org/files/a8c/63c/5b7/a8c63c5b700645d99be879259f316740.png "КДПВ"
[2]: http://habrahabr.ru/post/274485/
[3]: http://habrahabr.ru/post/274485/#habracut
#  Рисуем эллиптические кривые с помощью SQL
habrabot (difrex,1) → All  –  19:30:02 2016-01-03


Преимущество подхода на основе эллиптических кривых в сравнении с задачей факторизации числа, используемой в RSA, или задачей целочисленного логарифмирования, применяемой в алгоритме Диффи-Хеллмана и в DSS, заключается в том, что в данном случае обеспечивается эквивалентная защита при меньшей длине ключа. В общем случае уравнение эллиптической кривой Е в поле действительных чисел R имеет вид: — y^2+a1\*x\*y+a3\*y = x^3+a2\*x^2+a4\*x+a6 или в случае конечного кольца вычетов Z|n: — y^2+a1\*x\*y+a3\*y = x^3+a2\*x^2+a4\*x+a6 mod N Поставим перед собой задачу **визуализации** эллиптической кривой.

## Эллиптическая кривая Е в поле действительных чисел R

Если эллиптическая кривая Е рассматривается в поле действительных чисел R, то построение графика можно описать, используя только знания алгебры и геометрии старших классов школы аргументы N a1 a2 a3 a4 a6 xmin xmax

1. Выбираем диапазон [xmin — xmax] аргумента x
2. Отмечаем на выбранном диапазоне аргумента x необходимое число значений x1,...,xN
3. Каждое из значений x1,...,xN подставляем в уравнение y^2+a1\*x\*y+a3\*y = x^3+a2\*x^2+a4\*x+a6 и получаем обычное квадратичное уравнение аргумента y
4. Находим корни квадратичного уравнения аргумента y
5. Если квадратичное уравнение аргумента y имеет решения, то добавляем две точки на график
6. Соединяем линиями все «верхние» точки на графике и все «нижние» точки на графике

[Читать дальше →][1]

>> Читать далее
#  Расширение разделов без потери данных
habrabot (difrex,1) → All  –  09:30:02 2016-01-03




## **Суть**

Разработал программу для простого расширения раздела и файловой системы (xfs, ext3,4) без потери данных. [github.com/rekby/fsextender/releases/latest][1]

## **Исходная проблема**

После расширения диска виртуальной машины c ос семейства linux расширить внутри неё раздел данных. [Подробности][2]

[1]: https://github.com/rekby/fsextender/releases/latest
[2]: http://habrahabr.ru/post/274451/#habracut
#  Kill switch для OpenVPN на основе iptables
habrabot (difrex,1) → All  –  05:00:02 2016-01-03


Известно, что при подключении к открытым Wi-Fi сетям ваш трафик может быть легко прослушан. Конечно, сейчас всё больше и больше сайтов используют HTTPS. Тем не менее, это ещё далеко не 100%. Возникает естественное желание обезопасить свой трафик при подключении к таким открытым Wi-Fi сетям. Популярное решение этой проблемы — подключение через VPN. В таком случае ваш трафик передается в зашифрованном виде до VPN-сервера, и уже оттуда идет в интернет. У такого решения есть небольшой недостаток: пока VPN-подключение ещё не установлено, все приложения на вашем компьютере (включая открытые вкладки браузера) получают доступ в интернет в обход VPN-подключения. В этой статье я расскажу, как можно этого избежать. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274445/#habracut
#  [Перевод] Создание функции на Rust, которая принимает String или &str
habrabot (difrex,1) → All  –  03:30:04 2016-01-03




### От переводчика

[![КДПВ][1]][2]Статья — одна из серии постов, рассказывающих об использовании некоторых полезных библиотечных типажей и связанных с ними идиом Rust на примере строковых типов данных. Информация бесспорно полезная как для начинающих программистов на Rust, так и для тех, что уже успел себя немного попробовать в этом языке, но ещё не совсем освоился с богатой библиотекой типажей. Оригинальный пост содержит несколько неточностей и опечаток в коде, которые я постарался исправить в процессе перевода, однако в общем и целом описанные подходы и мотивация правильные, подходящие под понятие «лучших практик», а потому заслуживают внимания.

----

В моём последнем [посте][3] мы много говорили об использовании `&str` как предпочтительного типа для функций, принимающих строковые аргументы. Ближе к концу поста мы обсудили, когда лучше использовать `String`, а когда `&str` в структурах (`struct`). Хотя я думаю, что в целом совет хорош, но в некоторых случаях использование `&str` вместо `String` не оптимально. Для таких случаев нам понадобится другая стратегия. [Читать дальше →][4]

[1]: https://habrastorage.org/files/a8c/63c/5b7/a8c63c5b700645d99be879259f316740.png "КДПВ"
[2]: http://habrahabr.ru/post/274455/
[3]: http://hermanradtke.com/2015/05/03/string-vs-str-in-rust-functions.html
[4]: http://habrahabr.ru/post/274455/#habracut
#  [Перевод] Black Hat USA 2015: полная история взлома того самого Jeep
habrabot (difrex,1) → All  –  03:30:04 2016-01-03


Как Чарли Миллер и Крис Валасек [взломали Jeep Cherokee][1]. ![image][2] В начале своего исследования Миллер и Валасек пытались взломать мультимедийную систему Jeep через Wi-Fi. Производитель автомобиля, компания Chrysler, предлагает возможность использования Wi-Fi по подписке. Оказалось, что эту беспроводную связь взломать достаточно легко, из-за того, что пароль на неё генерился автоматически на основе времени, когда машина и мультимедийная система включались впервые. Теоретически, измеряя время с точностью до секунд, этот метод довольно надёжен, учитывая большое количество вариантов времени. Но если вы знаете хотя бы год производства и угадаете месяц, то перебор будет ограничен 15 миллионами комбинаций. Если уменьшить время до дневных часов, останется уже 7 миллионов комбинаций. А это уже достаточно неплохой результат – его можно пробрутфорсить за час.

> Shock at the wheel: your Jeep can be hacked while driving down the road [pic.twitter.com/bOvjzQb9K4][3]
>
> — Kaspersky Lab (@kaspersky)
>
> [23 июля 2015][4]

Проблема в том, что в течение всего часа необходимо находиться поблизости от этого джипа, чтобы оставаться в пределах досягаемости Wi-Fi. Но исследователи нашли другой путь. Оказалось, что пароль для Wi-Fi создаётся до того, как в системе будут установлены дата и время – то есть, дефолтное время отсчёта плюс несколько секунд на то, чтобы бортовой компьютер загрузился. И это время составляет ровно January 01 2013 00.00.32 GMT. [Читать дальше →][5]

[1]: http://geektimes.ru/post/259290/
[2]: https://habrastorage.org/getpro/habr/post_images/3aa/0e8/3a0/3aa0e83a082d9f0d9b40109f82e8cdb2.jpg
[3]: http://t.co/bOvjzQb9K4
[4]: https://twitter.com/kaspersky/status/624291836996284418

>> Читать далее
#  Microsoft уведомит пользователей о state-sponsored кибератаках
habrabot (difrex,1) → All  –  01:00:02 2016-01-03


Компания Microsoft [опубликовала][1] у себя в блоге информацию о дополнительных мерах по обеспечению безопасности пользователей. Она будет сообщать своим пользователям о том, что их аккаунты Microsoft, включая, Outlook.com и OneDrive были скомпрометированы лицом или группой лиц, относящихся к state-sponsored кибергруппе. ![][2] Microsoft указывает, что используемые state-sponsored кибергруппами методы компрометации пользователей отличаются своей сложностью от тех, которые используют простые злоумышленники, действующие из своих личных и корыстных интересов. Уведомление пользователя о компрометации не будет однозначно говорить о том, что аккаунт был скомпрометирован, но указывает на то, что компания зафиксировала подозрительную активность. Активность означает то, что пользователю необходимо предпринять дополнительные меры по своей защите и защите своих аккаунтов Microsoft. [Читать дальше →][3]

[1]: http://blogs.microsoft.com/on-the-issues/2015/12/30/additional-steps-to-help-keep-your-personal-information-secure/
[2]: https://habrastorage.org/files/2a8/4bc/468/2a84bc46899d445dacdadc0fc087974d.jpg
[3]: http://habrahabr.ru/post/274443/#habracut
#  Обзор возможностей современного JavaScript
habrabot (difrex,1) → All  –  11:00:03 2016-01-02


JavaScript, наверное, самый известный мультипарадигменный язык, в котором очень много неочевидных особенностей. Но тем не менее любим ли мы его или ругаем, факт остается фактом — это основной язык, на котором работает современный web. В ушедшем году, вышел стандарт ECMAScript 2015 (неформально ES6), который сильно изменил, то к чему мы привыкли. Появилась масса новых возможностей, которые по сути представляют собой современное надмножество языка, пытающегося решить существующие проблемы. Class, let, const, стрелочные функции… разработчик, который ранее не видел код, написанный на ES6 не сразу догадается, что перед ним, по сути, старый добрый JS. Есть масса прекрасных статей, посвященных современному стандарту. В этом же посте я хочу показать, что нам может предложить современный JS, когда необходимо решить насущную задачу. Например, поздравить всех c Новым Годом. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274415/#habracut
#  Скриншотим игры — the hard way
habrabot (difrex,1) → All  –  20:30:02 2016-01-01


Ну что такого сложного может быть в создании скриншота? Казалось бы — позови функцию, любезно предоставленную операционкой и получи готовую картинку. Наверняка многие из вас делали это не один раз, и, тем не менее, нельзя просто так взять и заскриншотить полноэкранное directx или opengl приложение. А точнее — можно, но в результате вы получите не скриншот этого приложения, а залитый черным прямоугольник. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/272989/#habracut
#  Задача про 2016
habrabot (difrex,1) → All  –  14:00:03 2016-01-01


Предлагаю порешать в кругу прекрасных дам-программистов традиционную новогоднюю задачу про 2016 год. Надо расставить знаки и скобки, чтобы получилось любое число от 1 до 100. Например

> 20\*(-1+6)=100

Или

> 2+0-1^6=1

Факториалы и степени милостиво допускаются. [][1]

[1]: http://habrahabr.ru/post/274403/#habracut
#  Новогодний голосовой хабрачат (2016)
habrabot (difrex,1) → All  –  03:00:02 2016-01-01


![image][1] Новый год уже не за горами, а это может означать только одно — время для тёплого, лампового общения в **голосовом** хабрачатике ([есть и обычный чат][2]). Общаться будем в TeamSpeak 3. Скачать его можно [тут][3]. Для подключения к серверу достаточно ввести IP — [speakserver.cloudapp.net][4] и ваш никнейм. **С наступающим, друзья!** [][5]

[1]: https://habrastorage.org/getpro/habr/post_images/b9c/3b3/99b/b9c3b399b13c1517a999572817d979f2.jpg
[2]: http://habrahabr.ru/post/274369/
[3]: https://www.teamspeak.com/downloads
[4]: http://speakserver.cloudapp.net
[5]: http://habrahabr.ru/post/274387/#habracut
#  [Из песочницы] Как за 3 дня создать игровой движок для новелл
habrabot (difrex,1) → All  –  23:00:02 2015-12-31


Одним дождливым питерским днем мой проект в UE4 перестал загружаться, и из-за этого я захотел сделать свой собственный движок. И подтолкнула меня сделать движок именно для новелл. Если вам хочется узнать побольше и вы не боитесь goto, gosub и других ужасов, добро пожаловать под кат. ![image][1] [День первый][2]

[1]: https://habrastorage.org/getpro/habr/post_images/f30/8df/cb6/f308dfcb68eac6119f98319b49e1c788.jpg
[2]: http://habrahabr.ru/post/274399/#habracut
#  happy(new Year(2016));
habrabot (difrex,1) → All  –  17:00:04 2015-12-31


![][1] Собственно, буду немногословен, передаю всем привет из 2016 года! Всем-всем-всем хаброжителям хочу пожелать здоровья, удачи, добра, творческого простора и конечно а на этих слова вспомнил и отыскал [цитату][2] [kahi4][3] из позапрошлого новогоднего топика: [Читать дальше →][4]

[1]: https://habrastorage.org/files/7ee/2c1/78d/7ee2c178dde74601a874891ca120199e.png
[2]: http://habrahabr.ru/post/207944/#comment_7159674
[3]: http://habrahabr.ru/users/kahi4/
[4]: http://habrahabr.ru/post/274393/#habracut
#  [Из песочницы] Webpack ProvidePlugin: как не писать простыню import/require в начале javascript модуля
habrabot (difrex,1) → All  –  12:00:03 2015-12-31


Если вы разрабатываете на современном javascript, то почти любой ваш модуль содержит простыню таких строк:

import React from 'react'
import $ from 'jquery'
...


Как оказалось, большинство этих строк можно не писать, доверив их генерацию автоматике. И помогает в этом новомодный **webpack**, в котором, как оказывается, полно приятных сюрпризов. Кроме всем известных **require** и **import** для любых файлов и уже описанного на хабре «hot module replacement», **webpack** может проанализировать ваш исходный код и автоматически включить нужные модули на основании используемых литералов. Под катом — краткое описание как работает эта магия. [Ознакомиться с заклинанием][1]

[1]: http://habrahabr.ru/post/274385/#habracut
#  Как следить за появлением вопросов на toster.ru, ru.stackoverflow.com и stackoverflow.com
habrabot (difrex,1) → All  –  22:30:02 2015-12-30


![image][1] Всем привет. Так получилось, что уже давно мучает вопрос: «Как следить за форумами по интересным тебе темам, но самое главное, как узнавать о появлении новых вопросов в момент их публикации». Конечно, можно сказать, что есть рассылки, RSS, но лично у меня получается так, что до почты я добираюсь, как правило, с мобильного во время передвижения. Вручную серфить ресурсы вообще не вариант. Вот поэтому, если бы я и мог ответить, компьютера под рукой нет. А после приезда голова уже забита совсем другим. Могу смело сформулировать свою проблему. Необходим канал, сообщающий и самое главное, привлекающий мое внимание в момент публикации нового вопроса. До недавнего времени таким я рассматривал какой-нибудь IM, для работы Telegram я не пользуюсь, а с остальными все что-то не совсем так. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/23f/39d/a9d/23f39da9ddbffe56607918f321ad7cc4.png
[2]: http://habrahabr.ru/post/274361/#habracut
#  Безопасность веб-ресурсов банков России
habrabot (difrex,1) → All  –  19:00:04 2015-12-30






В нашей компании мы постоянно проводим различные исследования ([список][1]), выбирая интересную для нас тему и как итог — представляя общественности pdf с результатами. Данная статья статья как раз из разряда таких исследований. Проводя работы по анализу защищенности мы приводим обычно очень схожие (общие для всех) советы, которым мало следует, некоторые best practices, которые или просто повышают общий уровень защищенности системы (например — применение CSP), или действительно позволяют предотвратить атаку.

### Введение

Как известно, уровень безопасности системы определяется надежностью её самого слабого узла. На практике, после проведения анализа защищенности, основываясь на перечне найденных уязвимостей, выбирается одна брешь или целая цепочка и определяется наиболее проблемное звено. Сразу можно сказать, что зачастую правильно настроенная система может нивелировать риски существующей уязвимости. В ходе исследования мы выяснили, какие потенциальные векторы атак могут быть доступны злоумышленникам. Например, легко ли похитить сессионные данные пользователя при наличии уязвимости межсайтового скриптинга. Также нам было интересно посмотреть, насколько просто реализовать фишинговую атаку на пользователей банка. Пройдясь по этим пунктам и условно проставив “галочки”, злоумышленник может выстроить векторы дальнейших атак на банк и его пользователей. [Читать дальше →][2]

[1]: http://dsec.ru/ipm-research-center/research/
[2]: http://habrahabr.ru/post/274273/#habracut
#  Как следить за появлением вопросов на toster.ru и ru.stackoverflow.com
habrabot (difrex,1) → All  –  18:30:02 2015-12-30


![image][1] Всем привет. Так получилось, что уже давно мучает вопрос: «Как следить за форумами по интересным тебе темам, но самое главное, как узнавать о появлении новых вопросов в момент их публикации». Конечно, можно сказать, что есть рассылки, RSS, но лично у меня получается так, что до почты я добираюсь, как правило, с мобильного во время передвижения. Вручную серфить ресурсы вообще не вариант. Вот поэтому, если бы я и мог ответить, компьютера под рукой нет. А после приезда голова уже забита совсем другим. Могу смело сформулировать свою проблему. Необходим канал, сообщающий и самое главное, привлекающий мое внимание в момент публикации нового вопроса. До недавнего времени таким я рассматривал какой-нибудь IM, для работы Telegram я не пользуюсь, а с остальными все что-то не совсем так. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/23f/39d/a9d/23f39da9ddbffe56607918f321ad7cc4.png
[2]: http://habrahabr.ru/post/274361/#habracut
#  Sinon.js — mock-библиотека для JavaScript
habrabot (difrex,1) → All  –  16:30:04 2015-12-30


Sinon.js — это mock-библиотека для JavaScript, которую можно использовать с любым тестовым фреймворком. Она предоставляет функции для эмуляции и проверки требуемого поведения в JavaScript. В библиотеке представлено три вида тестирования с spy, stub и mock. В данном посте мы рассмотрим документацию по API Sinon.js вместе с кратким введением в концепцию методов данной библиотеки. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/65f/f58/f12/65ff58f123fa431a99aa5b19f416ea04.jpg
[2]: http://habrahabr.ru/post/274317/#habracut
#  Авторизация в CentOS через Microsoft Azure AD / Office 365
habrabot (difrex,1) → All  –  15:00:02 2015-12-30


Все пользователи Microsoft Office 365 (для бизнеса) проходят авторизацию именно через Microsoft Azure AD. Так, при добавлении каждого нового пользователя (емейла) в Office 365, для него автоматически создается соответствующая запись в Microsoft Azure AD. [Ранее][1] я рассказывал о том, как можно использовать Microsoft Azure AD для авторизации пользователей Ununtu 14.04. То есть, как в Ubuntu сделать SSO c Microsoft Azure AD / Office 365. Сейчас я расскажу как можно сделать то же самое в CentOS 7. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/274249/
[2]: http://habrahabr.ru/post/274255/#habracut
#  Релиз компонентов DevExpress .NET, HTML5/JS и VCL v2015.2
habrabot (difrex,1) → All  –  13:00:03 2015-12-30


Всем привет! 2015-й год близится к своему завершению и мы хотим пожелать всем разработчикам России (да и всего мира, чего уж!) весёлого новогоднего настроения, гармонии во всех ваших делах, ну и чтобы всё, что у вас ещё не получилось сделать до сих пор — обязательно получилось бы в следующем году! А вот у нас, например, ещё в этом году получилось выпустить новую версию компонентов для .NET, HTML/JavaScript и VCL, и если вы используете наши продукты в своей работе и следите за их развитием, то добро пожаловать под кат. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/83d/bff/8a5/83dbff8a5a0443d5b83126b49b7c6a0d.jpg
[2]: http://habrahabr.ru/post/274275/#habracut
#  [Из песочницы] Numpy и многопроцессорность
habrabot (difrex,1) → All  –  12:30:02 2015-12-30


Сейчас уже многие используют библиотеку _numpy_ в своих python-программах, поскольку она заметно ускоряет работу с данными и выполнение математических операций. Однако во многих случаях _numpy_ работает в разы медленнее, чем она может… потому что использует только один процессор, хотя могла бы использовать все, что у вас есть. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274331/#habracut
#  [Из песочницы] Почему важно не выдавать пользователям простой пароль
habrabot (difrex,1) → All  –  11:30:02 2015-12-30


В начале года во всех (ну почти) школах Москвы ввели новый электронный дневник. Его использование было обязательно. Разработчиком этого «великолепного» творения был Департамент ИТ города Москвы. Хоть и красивый дизайн, который доступен пользователям Chrome, внушал, что журнал хорош, на деле было наоборот. Фронтенд был написан на Angular, который, используя API дневника, получал все пользовательские данные. Из-за большой нагрузки со всех школ Москвы или плохой оптимизации, скорость работы дневника была низкой и иногда он даже не был доступен. Учителя жаловались о том, что оценки не выставляются и домашнее задание не сохраняется. Ученики и их родители были не довольны кривым отображением расписания и сообщений от учителей. По поводу отсутствия кроссбраузерности и поддержки мобильных девайсов на фоне всего не очень сильно переживали. Также кроме багов и медленной скорости работы была и «особенность». [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274337/#habracut
#  [Из песочницы] Printf Oriented Programming
habrabot (difrex,1) → All  –  11:00:03 2015-12-30


![][1]

### Intro

К своему удивлению не нашел статей на хабре по этой теме и этой статьей я хотел бы исправить положение дел. В ней я постараюсь максимально доходчиво рассказать со стороны атакующего о [Format String Attacks][2], однако с некоторыми упрощениями. На практике они достаточно просто разрешаются, но не очень хочется на них зацикливаться. Кроме того, самых стойких, долиставших до конца, помимо бесценных знаний ждет небольшой бонус. [Читать дальше →][3]

[1]: https://habrastorage.org/files/8d8/b54/5fa/8d8b545fa7d245b593d3735f72f3f63f.png
[2]: https://en.wikipedia.org/wiki/Uncontrolled_format_string
[3]: http://habrahabr.ru/post/274329/#habracut
#  [Из песочницы] Пример реализации методов обработки и распознавания изображений на Android
habrabot (difrex,1) → All  –  11:00:03 2015-12-30


Занимаясь разработкой приложений под ОС Android возникают интересные идеи, которые хочется попробовать, либо есть какой-то набор теоретических знаний и их хочется применить на практике, из совокупности этих факторов и возникла идея описываемого проекта. Существует много статей о распознавании текста, о компьютерном зрении и об отдельных алгоритмах распознавания. В этой же публикации демонстрируется попытка реализации задачи, связанной с нахождением ключевого слова на изображении текста, что может позволить, например, найти необходимое место для чтения какого-либо текста в DjVu без распознавания самого текста. Пример реализации представлен в виде Android приложения, а исходным изображением является скриншот текста, с введенным ключевым словом, для решения задачи применяются различные алгоритмы обработки и распознавания изображений. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274323/#habracut
#  Компания Adobe выпустила экстренный патч для исправления критических уязвимостей Flash Player
habrabot (difrex,1) → All  –  11:00:03 2015-12-30


[![][1]][2] В понедельник 28 декабря компания Adobe [выпустила][3] экстренное обновление безопасности, закрывающее 19 уязвимостей в продукте Flash Player. Обнаруженные ошибки безопасности могут быть использованы злоумышленниками для исполнения вредоносного кода на компьютере жертвы, получая над ним полный контроль. В зоне риска находятся пользователи Flash Player для всех существующих ОС. [Читать дальше →][4]

[1]: https://habrastorage.org/files/a5d/4b0/fcf/a5d4b0fcf3404eb0a97d0d95f02eefb0.jpg
[2]: http://habrahabr.ru/company/pt/blog/274293/
[3]: https://helpx.adobe.com/security/products/flash-player/apsb16-01.html
[4]: http://habrahabr.ru/post/274293/#habracut
#  Ищем ошибки в MonoDevelop
habrabot (difrex,1) → All  –  09:00:02 2015-12-30






В жизни анализатора PVS-Studio состоялось важное событие — в последней версии была добавлена возможность проверки кода, написанного на C#. Являясь одним из разработчиков данного анализатора, я просто не мог пройти мимо, не проверив какой-нибудь проект. Понятно, что мало кому будет интересно читать про проверку маленьких и неизвестных проектов, поэтому нужно было выбрать что-то известное, и выбор пал на MonoDevelop. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274321/#habracut
#  Уникальная Сетунь на основе троичного кода
habrabot (difrex,1) → All  –  08:30:02 2015-12-30


Уже в 1956 году появилась потребность в создании практичного образца цифровой вычислительной машины, которая бы смогла использоваться в вузах, лабораториях. Для таких целей требовалась простая в освоении, надежная, недорогая, но в то же время эффективная малая ЭВМ, рассчитанная на массовое использование. ![][1] Требования, предьявленные к такой машине: скорость работы должна была быть равной нескольким сотням операций в секунду, «приветствовалась» простота и удобство программирования, точность вычислений — 6-8 верных десятичных знаков, высоконадежность в эксплуатации и в техническом обслуживании, умеренные габариты, экономное потребление энергии, использование недорогих и «недефицитных» материалов и деталей. Такие требования для того времени являлись «противоречивыми», ведь создание машины более удобной для работы программистов повлекло бы за собой увеличение количества оборудования, что, в свою очередь, повлекло бы снижение надежности и повышение стоимости не только самой машины, но и ее эксплуатации. [читать дальше][2]

[1]: https://habrastorage.org/files/a00/9ea/5ca/a009ea5ca665406b8ecaa226d4f94e2d.jpg
[2]: http://habrahabr.ru/post/273929/#habracut
#  [recovery mode] Почему я перепроверяю записанные данные, или История одного расследования
habrabot (difrex,1) → All  –  19:30:02 2015-12-29


Недавняя хабрастатья о [различиях в побайтово идентичных файлах][1] вызвала из глубин памяти (и почтового ящика) небольшой кусочек моей переписки с одним из инженеров, отвечавших в то время за линию дисков MPG в компании Fujitsu. Для удобства англонеговорящих читателей, привожу перевод с английского под катом. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/infopulse/blog/274183
[2]: http://habrahabr.ru/post/274235/#habracut
#  Process priority, или попытка еще немного оптимизировать сервер
habrabot (difrex,1) → All  –  18:30:03 2015-12-29






В случае когда проект молодой и перспективный, но бюджет сильно ограничен — приходится выжимать максимум возможного с имеющихся ресурсов. Хорошо если в бюджете заложены деньги под апгрейд оборудования (в мифическое хорошее время), но сейчас нужно получить максимум производительности из имеющихся ресурсов. На просторах интернета есть много статей на тему как это реализовать — отказ от [LAMP][1] в пользу nginx+php-fpm или [uWSGI][2] (по надобности), тонкой их настройки (не забываем кэшировать статику), установки [PHP акселератора][3], тюнинга [СУБД][4] (если используется), и другие полезные вещи. Но даже при установке и грамотного выполнения всех пунктов можно еще немного оптимизировать работу сервисов. [Подробности][5]

[1]: https://ru.wikipedia.org/wiki/LAMP
[2]: https://uwsgi-docs.readthedocs.org/en/latest/
[3]: https://ru.wikipedia.org/wiki/%D0%90%D0%BA%D1%81%D0%B5%D0%BB%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_PHP
[4]: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
[5]: http://habrahabr.ru/post/274297/#habracut
#  [Перевод] Rayon: параллелизм данных в Rust
habrabot (difrex,1) → All  –  17:30:03 2015-12-29


Последние пару недель я работал над обновление [Rayon][1] — моей экспериментальной библиотеки для **параллелизма данных** в Rust. Я вполне доволен тем, как идёт разработка, так что я решил объяснить к чему я пришёл в блог посте. **Цель Rayon — сделать добавление параллелизма в последовательный код простым,** так, чтобы любой цикл `for` или итератор можно было бы заставить работать в несколько потоков. Например если у вас есть такая цепочка итераторов:

let total_price = stores.iter()
.map(|store| store.compute_price(&list))
.sum()


то вы можете сделать её работу параллельной просто поменяв обычный _«последовательный итератор»_ на _«параллельный итератор»_ из Rayon:

let total_price = stores.par_iter()
.map(|store| store.compute_price(&list))
.sum()



>> Читать далее
#  [Перевод] Социология алгоритмов: Как связаны финансовые рынки и высокочастотная торговля (Часть 1)
habrabot (difrex,1) → All  –  16:00:02 2015-12-29


[![][1]][2] В наше время на ситуацию, складывающуюся на фондовых рынках, все большее влияние оказывают технологии и специальные торговые алгоритмы. С ростом автоматизации меняются и социальные отношение между участниками торгов. Анализу темы социологии финансовых алгоритмов посвящено [исследование][3] профессора Высшей школы социальных наук Эдинбурга Дональда МакКензи. Мы представляем вам самые интересные мысли этой работы — в первой части речь идет о предпосылках возникновения HFT-трейдинга и классификации схем его применения. _Примечание: Представленный ниже материал относится к категории «масштабного предпраздничного чтения» — это необходимо учитывать, выделяя время на его изучение._ [Читать дальше →][4]

[1]: https://habrastorage.org/files/c21/14a/94c/c2114a94c81b40cbaf9fe4a523a7febd.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/274247/
[3]: http://www.fixnetix.com/perch/resources/algorithms25.pdf
[4]: http://habrahabr.ru/post/274247/#habracut
#  Dolphin Smalltalk 7 выходит под open source лицензией MIT
habrabot (difrex,1) → All  –  16:00:02 2015-12-29


![Cчетчик со страницы Getting Started на момент публикации статьи][1] __ С минуты на минуту случится то, чего ждали очень многие, и я в том числе. А именно: компания ObjectArts полностью открывает исходники и выпускает [язык и среду разработки Dolphin Smalltalk][3] под открытой [лицензией MIT][4]!

#### О проекте

![][5]DolphinSmalltalk — это среда разработки на собственном диалекте Smalltalk для Windows. Ключевыми особенностями является тесная интеграция с нативными виджетами и подсистемами операционной системы, включая COM и ActiveX, и приятный глазу графический дизайн. Долгое время Dolphin Smalltalk был доступен в двух вариантах: условно-бесплатная ограниченная версия (community edition) и платный пакет для профессиональной разработки. Последний давал доступ ко всем функциям, включая продвинутые редакторы и публикацию приложений в standalone режиме, однако стоил около четырехсот долларов, что, по понятной причине, устраивало далеко не всех. Похоже, что компания таки одумалась (или терять стало нечего) и решила выпустить ПО на волю. Под катом краткое описание среды разработки и размышления на тему open source будущего Dolphin Smalltalk. [Читать дальше →][6]

[1]: https://habrastorage.org/files/68c/f8d/a8b/68cf8da8b6ec4ef4ad35318498d13db7.png
[2]: http://object-arts.com/gettingstarted.html
[3]: http://object-arts.com/dolphin7.html
[4]: https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT
[5]: https://habrastorage.org/files/51f/a3d/8cf/51fa3d8cfb7d4c7abc1a6cdb919524a1.jpg
[6]: http://habrahabr.ru/post/274289/#habracut
#  Третий новогодний коллцентр: сверхбыстрая разработка на ReactJS и Typescript
habrabot (difrex,1) → All  –  14:00:02 2015-12-29


![][1]С наступающим, коллеги! У нас в voximplant есть традиция — перед каждым новым годом мы делаем [новогодний][2] [коллцентр][3], на котором обкатываем новые фичи нашей платформы. В этом году фичей случилось особенно много. Кроме видеозвонков и записи видео, мы начали активно использовать typescript и react. Современный «хипстерский» стек технологий неимоверно ускоряет разработу: от момента, как журнал maxim предложил нам сделать коллцентр с фотомоделями в роли снегурочек и до первого принятого видеозвонка прошло меньше двух дней. В этом году мы не стали делать анонс самого промо на Хабре, все-таки формат не тот, мы же хотим общаться про код и разработку, да? Поэтому под катом я поделюсь нашим опытом создания решения в сжатые сроки и расскажу, с какими сложностями мы столкнулись. [видеозапись чернокожей снегурочки под катом][4]

[1]: https://habrastorage.org/files/9e2/da2/37c/9e2da237c5484360afb3d5d54f97a912.jpeg
[2]: http://habrahabr.ru/company/Voximplant/blog/164247/
[3]: http://habrahabr.ru/company/Voximplant/blog/247345/
[4]: http://habrahabr.ru/post/274093/#habracut
#  [Из песочницы] Ограниченность преобразования Фурье или почему стоит доверять своему слуху
habrabot (difrex,1) → All  –  13:00:03 2015-12-29


Последние несколько десятков лет задача распознавания аккордов музыкальной композиции ставилась довольно часто. Казалось бы, этот не столь оригинальный сервис был и остается довольно распространенным среди приложений, работающих со звуком (Ableton, Guitar Pro), однако универсального, срабатывающего всегда алгоритма не существует до сих пор. В этой статье я постараюсь раскрыть одну из множества причин неидеальной работы подобных сервисов на примере алгоритмов, использующих в своей основе преобразование Фурье. Большинство аудиоформатов хранит информацию в виде зависимости амплитуды от времени (например, .wav) или в виде коэффициентов частотного преобразования (.mp3, .aac, .ogg), однако современные сложные алгоритмы цифровой обработки сигналов работают с частотной составляющей звуков. Приходится иметь дело с двойным переходом, из амплитудной области в частотную, затем обратно. На данный момент осуществление такого переход без потерь в качестве является достаточно распространенной проблемой с множеством неоднозначных решений. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274175/#habracut
#  Сканеры безопасности: автоматическая классификация уязвимостей
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


[![][1]][2] Растущее количество угроз вынуждает разработчиков средств анализа защищенности постоянно усовершенствовать свои решения. Сейчас на рынке ИБ представлен широкий выбор сканеров безопасности от различных производителей, которые разнятся по своей эффективности. Это делает невозможным выпуск новых версий сканеров без конкурентного анализа подобных продуктов. Компания [Positive Technologies][3] разработала собственную методологию конкурентного анализа для тестирования и сравнения сканеров по объективным критериям, таким как типы и количество найденных уязвимостей, полнота сканирования различных целей. Кроме того, была сформирована база данных конкурентного анализа (DBCA — Database of Competitive Analysis), в которой собраны уникальные уязвимости, найденные в процессе ручных проверок и автоматического сканирования синтетических целей, реальных сайтов, CMS, веб-приложений и прочих информационных систем сканерами безопасности (WebEngine – встроенный в [PT AF][4] и [PT AI][5], [Acunetix][6], [AppScan][7] и др.). DBCA используется для сравнения результатов сканирования новыми версиями сканеров Positive Technologies с результатами сторонних сканеров и отсеивания ложных срабатываний (false positive). Однако наполнение DBCA требует месяцев ручного труда высококвалифицированных инженеров-тестировщиков. Процессы настройки окружений и сканирования занимают много времени, порой недели. Еще дольше происходит процесс валидации найденных уязвимостей. Так, над заполнением текущей базы работали три инженера отдела QA в течение года. В связи с этим возникла необходимость ускорения и автоматизации работ. Решением стало использование [математического аппарата нейронных сетей][8] (НС) и нечетких измерительных шкал. Об этом мы подробно писали в предыдущей статье «[Сканеры безопасности: автоматическая валидация уязвимостей с помощью нечетких множеств и нейронных сетей][9]». Теоретические исследования вошли в основу практического эксперимента, поставленного инженерами Positive Technologies: Тимуром Гильмуллиным, Владимиром Софиным, Артемом Юшковским. Была решена формальная задача по преобразованию DBCA в базу знаний, путем использования НС (в качестве решающего правила) и нечетких измерительных шкал (для лингвистической оценки результатов классификации в понятной человеку форме). Практически DBCA была дополнена правилами и механизмами отсеивания ложных срабатываний, заранее отсортированных по степени уверенности в их наличии, оцененных на нечеткой измерительной шкале. Это позволило ускорить работу инженеров-тестировщиков по анализу результатов сканирования и отсеиванию ложных срабатываний. [Читать дальше →][10]

[1]: https://habrastorage.org/files/e48/eaa/e82/e48eaae8219e4535aea9e6d55bfd30ef.png
[2]: http://habrahabr.ru/company/pt/blog/274241/
[3]: http://www.ptsecurity.ru/
[4]: http://www.ptsecurity.ru/appsecurity/application-firewall/
[5]: http://www.ptsecurity.ru/appsecurity/application-inspector/
[6]: https://www.acunetix.com/
[7]: http://www-03.ibm.com/software/products/ru/appscan
[8]: http://math-n-algo.blogspot.ru/2013/04/blog-post.html
[9]: http://habrahabr.ru/company/pt/blog/246197/
[10]: http://habrahabr.ru/post/274241/#habracut
#  Security Week 52-53: бэкдор у Juniper с толстым слоем криптографии, винтажная Java, гопо-bug bounty
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


![][1]В тот момент, когда елка уже стоит, но салаты еще не нарезаны, самое время в последний раз в этом году поговорить о новостях безопасности. На прошлой неделе я [отчитался][2] о «нестандартных» лучших новостях года, и в общем-то за оставшееся время ничего особенного не произошло. Хотя нет, есть одна новость, которая достойна отдельного повествования. Обнаруженные 17 декабря два бэкдора в ПО для сетевых устройств Juniper могли бы пополнить длинный, но невыдающийся список багов, эксплойтов и некорректных конфигураций в маршрутизаторах и домашних роутерах. Но позднее выяснилось, что в этой истории есть масса нюансов, она затрагивает не только тему безопасного кодинга, но и шифрование, и даже появились намеки на участие спецслужб. В общем, интересное получилось окончание года. Помимо Juniper, еще две популярные новости больше уходят в тему околобезопасной политики. Традиционные правила: каждую неделю редакция новостного сайта [Threatpost][3] выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти [по тегу][4]. Первый эпизод нового года выйдет на экраны страны 8 января! [Читать дальше →][5]

[1]: https://habrastorage.org/files/242/dbe/a3c/242dbea3cc8d4c17acc470d323defcbb.jpg
[2]: http://habrahabr.ru/company/kaspersky/blog/273919/
[3]: https://threatpost.ru/
[4]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[5]: http://habrahabr.ru/post/274211/#habracut
#  [Из песочницы] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 29. «One Plat and Six Classics»
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция.

#### Глава 29. One Plat and Six Classics

_(за перевод спасибо Вячеславу Слинкину )_ Кейт Муларски не осознавал что делает, когда взял на себя DarkMarket. Его дни стали настоящим безумием. Каждый день начинался в 8 утра с проверки icq сообщений свалившихся за ночь на предмет какой-либо работы для MasterSplinter-а. Он отправлялся на DarkMarket — сервис функционировал. Наткнуться здесь на Iceman-а было всегда крайне тяжело. Затем настала очередь нудной работы по резервному копированию БД. Iceman дважды сбрасывал таблицы в тщетных попытках вывести Mularski на чистую воду, так что теперь возня с бэкапами была частью утренней рутины. Нельзя было забывать о расследовании: пока база продолжала копироваться, простой скрипт, автором которого был программист NCFTA, сканировал каждую строку на предмет 16-ти значных чисел, начинающиеся с цифр 3 по 6. Украденные кредитки автоматически сортировались по BIN и отправлялись соответствующим банкам для немедленного аннулирования. Затем Mularski бегло просмотрел приватные месседжи, отобрал наиболее интересные чаты и проверил их в ФБР-овской центральной базе данных электронного наблюдения под названием ELSUR. Следующие нескольк часов были потрачены на написание отчёта. Под ником Master Splinter, Mularski начал обналичивать средства на скромные суммы. Некоторые банки согласились поспособствовать и поделились имеющимися дампами с фейковыми именами, но реальными транзакциями, обработка которых финансировалась уже из бюджета ФБР.Он передал им список с номерами PIN кардеров по всей стране, финансовые учреждения в свою очередь ежедневно докладывали о том где и когда осуществлялся вывод средств. Mularski передавал информацию местным агентам в зависимости от города, где совершались операции, что приводило к регулярному написанию детальных заметок. В три часа, когда кардеры начинали появляться в сети, “вторая” жизнь Mularski превращалась в пекло. [Читать дальше →][4]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/post/274173/#habracut
#  [Перевод] От ИИ и наук о данных до криптографии: исследователи Microsoft дают 16 предсказаний на 2016 год
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


В прошлом месяце Microsoft выпустила книгу “[Future Visions][1]” – антологию небольших историй, написанных некоторыми современными научными фантастами, основываясь на общении с исследователями Microsoft и посещения их лабораторий. Электронная версия книги доступна бесплатно [на Amazon][2] и других сайтах. ![][3] Сегодня мы рады предложить вам антологию другого рода. Это коллекция предсказаний от 16 лидеров и мыслителей внутри нашей технологической и исследовательской организации. Про прошествии года с тех пор, как мы вошли в эпоху, названную Питером Ли ([Peter Lee][4]), корпоративным вице-президентом Microsoft Research NExT, новым Золотым веком технологических преимуществ, мы решили, что было бы полезным получить понимание не только того, что нас ждет в следующем году, но также и на горизонте 10 лет. В [Microsoft Research][5] работает более 1000 ученых и инженеров, занимающихся самыми [разными дисциплинами][6] в сотрудничестве со [множеством лабораторий по всему миру][7], поэтому этот список не может быть исчерпывающим, но мы надеемся, что вы сможете почерпнуть из него важные сведения. 2016 год – это своеобразная отчетная точка для исследовательского подразделения Microsoft. MSR будет праздновать 25-летний юбилей с момента основания Нейтаном Мирвольдом ([Nathan Myhrvold][8]) в 1991 году, который в своем 21-страничном документе, отправленном Биллу Гейтсу, доказывал, что Microsoft «необходимо инвестировать в будущее, больше занимаясь исследованиями и созданием технологий». Эти инвестиции принесли значительные результаты, причем как для Microsoft, так и для индустрии и общества. Пожалуй, именно сейчас, когда [Рафаэль Райф][9] (Rafael Reif), президент MIT, [говорит][10], что «мы оставляем слишком много инновационного кетчупа в бутылке», инвестиции компании в исследования важны как никогда раньше. [Читать дальше →][11]

[1]: http://news.microsoft.com/futurevisions/
[2]: http://www.amazon.com/Future-Visions-Original-Inspired-Microsoft-ebook/dp/B0182NCTWS/
[3]: https://habrastorage.org/getpro/habr/post_images/bdf/24d/ba3/bdf24dba3eac0c21b0060c9fe532b821.jpg
[4]: http://research.microsoft.com/en-us/people/petelee/
[5]: http://research.microsoft.com/en-us/about/default.aspx
[6]: http://research.microsoft.com/en-us/research-areas/default.aspx
[7]: http://research.microsoft.com/en-us/labs/default.aspx
[8]: https://en.wikipedia.org/wiki/Nathan_Myhrvold
[9]: http://president.mit.edu/biography
[10]: https://www.washingtonpost.com/opinions/a-better-way-to-deliver-innovation-to-the-world/2015/05/22/35023680-fe28-11e4-8b6c-0dcce21e223d_story.html
[11]: http://habrahabr.ru/post/274269/#habracut
#  [Из песочницы] Авторизация в Ubuntu через Microsoft Azure AD / Office 365
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


Все пользователи Microsoft Office 365 (для бизнеса) проходят авторизацию именно через Microsoft Azure AD. Так, при добавлении каждого нового пользователя (емейла) в Office 365, для него автоматически создается соответствующая запись в Microsoft Azure AD. Здесь я расскажу как можно использовать Microsoft Azure AD для авторизации пользователей Ununtu 14.04. То есть, как в Ubuntu сделать SSO c Microsoft Azure AD / Office 365. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274249/#habracut
#  Сборка и настройка FreeRADIUS 3 с поддержкой SQLITE
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


Доброго дня, уважаемые. Хочу поделиться с Вами решением одной творческой задачи. Надеюсь кому-то будет полезно. Итак,

## **ДАНО:**

маломощная железка с arm процессором и собранный под нее и установленный Debian 7 wheezy.

## **ЗАДАЧА:**

поставить FreeRADIUS 3.0.X, настроить его на работу с БД SQLITE. Т.е., учетные записи пользователей (которых нужно аутентифицировать) RADIUS должен брать из БД SQLITE. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274251/#habracut
#  Хакатон и зимняя научная школа по глубокому обучению и вопросно-ответным системам
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


Сегодня машины без труда “связывают два слова” ([1][1], [2][2]), но пока не умеют гарантированно вести диалог на общие темы. Однако, уже завтра вы будете просить их правильно составить резюме и выбрать для ваших детей лучшую секцию по шахматам недалеко от дома. Хотите разобраться подробней, как в этом направлении работают ученые из Facebook, Google и др? Приходите их послушать. ![][3] [Читать дальше →][4]

[1]: http://arxiv.org/abs/1506.05869
[2]: http://neurobot.deephack.me/chatbot/dialog2.php
[3]: https://habrastorage.org/files/6cb/09c/831/6cb09c831c1c4e19b8dd1e36c30e4fcd.png
[4]: http://habrahabr.ru/post/274233/#habracut
#  Фестиваль Данных в музее Москвы, как это было
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


![][1] Привет Хабр, Итак, мы провели Фестиваль Данных на выставке новых технологий [SMIT][2] в [Музее Москвы][3], о котором писали [ здесь][4]. Это первое мероприятие из серии, в которой мы собираем экспертов из разных областей бизнеса, науки и государственного управления и рассказываем про аналитику данных. Хранение и анализ данных, которые были прерогативой узкого круга компаний и людей теперь начинают затрагивать жизнь практически всех. По этой причине мы и начали данную серию мероприятий, где мы широкой аудитории рассказываем про данные и их аналитику. [Читать дальше →][5]

[1]: https://habrastorage.org/files/95d/e46/453/95de46453bac40e08b6c42b26baf590d.jpg
[2]: http://smit.space
[3]: http://mosmuseum.ru
[4]: http://habrahabr.ru/company/beeline/blog/273117/
[5]: http://habrahabr.ru/post/274205/#habracut
#  Тонкие места в React.js
habrabot (difrex,1) → All  –  12:30:03 2015-12-29


React — это, безусловно, прорывная технология, которая упрощает создание сложных интерфейсов, но, как у любой абстракции, у неё есть свои мелкие проблемки и особенности. Я в своей практике столкнулся с четырьмя не очень очевидными вещами. Багами это назвать сложно — это просто особенности работы библиотеки. О них сегодня и поговорим. [][1]



[Читать дальше →][2]

[1]: http://habrahabr.ru/company/acronis/blog/273995/
[2]: http://habrahabr.ru/post/273995/#habracut
#  [Из песочницы] Делаем джойстик из Windows Phone
habrabot (difrex,1) → All  –  11:30:03 2015-12-29




#### Небольшая предыстория.

![image][1]Однажды вечером подошел ко мне сын и сказал, что хочет поиграть в Марио. Летом у бабушки на даче он любил «зарубиться» в дождливую погоду. А за окном как раз дождь. Не долго думая я скачал ему первый попавшийся эмулятор 8-ми битной приставки и игру. Однако, оказалось, что удовольствие от игры на клавиатуре совсем не то. Идти покупать джойстик было уже поздно. И тогда я подумал, что можно обойтись и без него. Под рукой у нас была старенькая Nokia Lumia, ее размеры и форма примерно совпадали с нашими нуждами. Было решено написать джойстик. Сын отправился рисовать дизайн на листе бумаги в клеточку, а папа пошел варить кофе и думать, как бы осуществить эту идею с наименьшими временными затратами. Я решил пойти по пути наименьшего (с моей точки зрения) сопротивления. Эмулятору приставки в настройках надо указывать нажатые кнопки, значит наше приложение должно нажимать кнопки. Нажатие кнопок можно эмулировать при помощи старого доброго WINAPI. Конечной идеей стало клиент-серверное приложение. Клиент (телефон) при нажатии на кнопку посылает запрос на сервер, который, в свою очередь, в зависимости от того что пришло эмулирует нажатие или отпускание кнопки клавиатуры. Связь же осуществляется через сокеты. Вроде все просто. Начинаем делать. [Читать дальше →][2]

[1]: https://habrastorage.org/files/5aa/b62/b21/5aab62b21dcd49fba68fe163eeff8f79.png
[2]: http://habrahabr.ru/post/274271/#habracut
#  Бесплатный практический курс по Bash и другие хорошие новости
habrabot (difrex,1) → All  –  11:30:03 2015-12-29


[![][1]][2] Привет, Хабр! Давно не писали про обновления в нашем образовательном проекте Хекслет, а тут как раз Новый год — самое время поделиться хорошими новостями. Мы сделали **бесплатным** популярный [курс «Bash: Основы командной строки»][3]! Это уникальный курс, потому что упражнения в нем (как и везде в Хекслете) выполняются в условиях, приближенных к боевым: вам доступен личный контейнер с root-доступом, в котором среди прочего запущена оболочка Bash. Курс затрагивает навигацию, работу с файловой системой, пейджеры, перенаправления и потоки, историю, псевдонимы и другие аспекты работы с Bash, которыми должен владеть любой уважающий себя программист. [Читать дальше →][4]

[1]: https://habrastorage.org/files/16f/133/06c/16f13306cf47426b998598e06a052ad5.png
[2]: https://ru.hexlet.io/courses/bash?utm_source=habr&utm_medium=blog&utm_campaign=new_year
[3]: https://ru.hexlet.io/courses/bash?utm_source=habr&utm_medium=blog&utm_campaign=new_year
[4]: http://habrahabr.ru/post/274257/#habracut
#  Простая возможность приобрести опыт в IT
habrabot (difrex,1) → All  –  11:00:02 2015-12-29


Анестезиолог [Кон Коливас][1] разработал [собственную версию планировщика задач для Linux ядра][2], потому что существующая реализация была адаптирована под серверные задачи, но неудовлетворительно справлялась с пользовательскими задачами. Алексей Кузнецов, который по воле случая [«превратился» в Linux хакера][3], сменил свою профессию с физика-теоретика на системного программиста. ИТ-журналист Пётр Семилетов помимо своей основной работы уже десять лет разрабатывает свой текстовый редактор [Tea][4] с открытым исходным кодом. Леся Новасельская, получившая специальность паталогоанатома, [участвует][5] в тестировании проекта c открытым исходным кодом. Подобных примеров множество. Всех этих людей объединяет одно — они реализовали свои интересы в проектах с открытым исходным кодом и участвовали в них и для удовольствия, и для получения опыта. Сложился некий миф о том, что открытый проект – это только для программистов, причем тех, у кого уже есть большой опыт в разработке. Но это не так. Открытый проект — это не только разработка исходного кода, но и тестирование, техническая поддержка, написание документации, маркетинг и т.д. А ещё — отличный шанс приобрести опыт и получить удовольствие от общения с такими же единомышленниками, как вы. Согласно [результатам голосования][6] основным препятствием для участия в открытом проекте является отсутствие понимания того, как присоединиться к проекту. Поэтому в статье мы разберёмся как и в качестве кого можно присоединиться к такому проекту. [Читать дальше →][7]

[1]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BB%D0%B8%D0%B2%D0%B0%D1%81,_%D0%9A%D0%BE%D0%BD
[2]: https://ru.wikipedia.org/wiki/Brain_Fuck_Scheduler
[3]: http://www.opennet.ru/opennews/art.shtml?num=38016
[4]: http://semiletov.org/tea/index.html
[5]: https://bugs.openvz.org/browse/OVZ-4181
[6]: http://opensource.com/life/15/8/poll-biggest-barrier-open-source
[7]: http://habrahabr.ru/post/274217/#habracut
#  [Перевод] Проблемы при использовании Math.random()
habrabot (difrex,1) → All  –  10:30:02 2015-12-29


![image][1] В английском есть такая аббревиатура — TIFU. Привести здесь её точное значение мы не можем, но вы без труда найдёте его в Сети. А после «литературной обработки» TIFU можно перевести как «сегодня я всё испортил». В контексте этого поста данная фраза относится к использованию функции Math.random() в JavaScript-движке V8. Хотя случилось это не сегодня, а пару лет назад. Да и дров я наломал не по своей вине, корень зла таится в самой этой функции.

> «Многие генераторы случайных чисел, используемые сегодня, работают не слишком хорошо. Разработчики обычно стараются не вникать, как устроены такие подпрограммы. И часто бывает так, что какой-то старый, неудовлетворительно работающий метод раз за разом слепо перенимается многими программистами, которые зачастую просто не знают о присущих ему недостатках.»
>
>
>
>
>
> Дональд Кнут, «
>
> [Искусство программирования][2]
>
> », том 2.


>> Читать далее
#  И еще раз о необходимости закрывать базы
habrabot (difrex,1) → All  –  09:00:03 2015-12-29


DataBreaches.net [сообщает][1] о найденной базе персональных данных **191 млн** избирателей США. Сайт на данный момент лежит под хабраэффектами, [google cache][2]. Исследователь Chris Vickery, ранее уже [находивший][3] не защищенные как следует многомиллионные базы аккаунтов, рассказал о наличии неограниченного доступа к 300-гигабайтной базе зарегистрированных избирателей, включающей: имена/фамилии, почтовые и электронные адреса, телефоны, даты рождения и пр. ![][4] [Читать дальше →][5]

[1]: http://www.databreaches.net/191-million-voters-personal-info-exposed-by-misconfigured-database/
[2]: http://webcache.googleusercontent.com/search?q=cache:BXSmNL6bUa4J:http://www.databreaches.net/191-million-voters-personal-info-exposed-by-misconfigured-database/+&cd=1&hl=ru&ct=clnk&gl=ru
[3]: http://www.securityweek.com/leaky-databases-expose-25-million-accounts-researcher
[4]: https://habrastorage.org/files/c69/5bc/093/c695bc09328d46fba9d0eccd3678ea6e.png
[5]: http://habrahabr.ru/post/274243/#habracut
#  [recovery mode] Почему я перепроверяю записанные данные, или История одного расследования…
habrabot (difrex,1) → All  –  05:00:03 2015-12-29


Недавняя хабрастатья о [различиях в побайтово идентичных файлах][1] вызвала из глубин памяти (и почтового ящика) небольшой кусочек моей переписки с одним из инженеров, отвечавших в то время за линию дисков MPG в компании Fujitsu. Для удобства англонеговорящих читателей, привожу перевод с английского под катом. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/infopulse/blog/274183
[2]: http://habrahabr.ru/post/274235/#habracut
#  [Из песочницы] Окружение разработки: Redmine + Git + ownCloud
habrabot (difrex,1) → All  –  19:30:02 2015-12-28


Данная статья появилась с целью обобщить довольно длительные попытки собрать удобное окружение для работы над проектами. Несомненно, существует множество сервисов готовых предоставить схожую функциональность, но их использование не всегда удобно и по различным причинам, может быть неприемлемо. Если возникла такая ситуация, надеюсь, представленная в статье конфигурация окажется полезной. ![][1] Сценарий использования данной связки, можно кратко описать следующим образом:

* Файлы проекта хранятся в Git репозитории;
* Репозиторий содержит настройки, исходники и другие файлы проекта, наличие которых удобно и допустимо в коллективном репозитории;
* В корне расположена директория cloud, исключенная в .gitignore, в которую через WebDAV монтируется ownCloud папка, для остальных файлов;
* Содержимое Git репозитория отслеживается в системе управления проектами Redmine.

План развертывания системы включает настройку следующих сервисов:

1. **OpenLDAP** — единая учётная запись для всех сервисов;
2. **Redmine** — запуск в Docker контейнере, создание и привязка Git репозитория, LDAP аутентификация;
3. **NGINX** — доступ к Git репозиторию через HTTPS и LDAP аутентификация;
4. **ownCloud** — LDAP аутентификация и монтирование папки через davfs2.


>> Читать далее
#  Советская школа: адресный язык программирования
habrabot (difrex,1) → All  –  19:30:02 2015-12-28


Адресный язык программирования считается одним из первых языков программирования высокого уровня. Он был создан советским разработчиком Екатериной Логвиновной Ющенко совместно с математиком Владимиром Семеновичем Королюком в 1955 г. Конструкции этого алгоритмического языка вошли в основу современных языков программирования. Своеобразной базой для адресного языка стали разработки члена корреспондента АН СССР Алексея Андреевича Ляпунова. Этим выдающимся математиком был создан операторный метод программирования, получивший широкое распространение на практике и оказавший сильное влияние на все последующее развитие теоретического программирования. ![][1] _Екатерина Логвиновна Ющенко и Владимир Семенович Королюк_ [Читать дальше →][2]

[1]: https://habrastorage.org/files/125/738/48b/12573848bc154750b6788b505ecc00b5.jpg
[2]: http://habrahabr.ru/post/274019/#habracut
#  [Перевод] Фреймворк для процедурных макросов в Rust
habrabot (difrex,1) → All  –  18:30:03 2015-12-28




## От переводчика

Процедурные макросы — одна из наиболее ожидаемых фич Rust. На данный момент процедурные макросы возможно писать только под нестабильную версию компилятора, хотя есть несколько контейнеров, вроде [syntex][1], позволяющие делать ограниченную кодогенерацию в рамках стабильного компилятора. Однако ситуацию это особо не облегчает, поскольку интерфейс к AST остаётся нестабильным, и, хотя авторы syntex стараются идти в ногу с ночными сборками, иногда случаются фейлы из-за изменений в структуре AST. В этом блог посте один из участников core team — Nick Cameron — поделился своим видением будущего процедурных макросов. Хотя пост полон технических подробностей по внутренностям компилятора, мне показалось, что хабрасообществу может быть интересно заглянуть немного за кулисы разработки Rust.

## Фреймворк для процедурных макросов

В этом посте я расскажу, как, по моему мнению, должны выглядеть процедурные макросы. Я уже рассказывал про синтаксис [в другом посте][2], а когда мы опубликуем API для процедурных макросов, то напишу пост и про него. Я уже описывал [целый ряд изменений][3] в системе макросов, так что здесь я в чём-то повторюсь (отчасти противореча прошлому посту), но раскрою больше подробностей. [Читать дальше →][4]

[1]: https://crates.io/crates/syntex/
[2]: http://ncameron.org/blog/macro-plans-syntax/
[3]: http://ncameron.org/blog/macro-plans-overview/
[4]: http://habrahabr.ru/post/274225/#habracut
#  Kaggle и Titanic — еще одно решение задачи с помощью Python
habrabot (difrex,1) → All  –  17:30:02 2015-12-28


Хочу поделиться опытом работы с задачей [известного конкурса][1] по машинному обучению от Kaggle. Этот конкурс позиционируется как конкурс для начинающих, а у меня как раз не было почти никакого практического опыта в этой области. Я немного знал теорию, но с реальными данными дела почти не имел и с питоном плотно не работал. В итоге, потратив пару предновогодних вечеров, набрал 0.80383 (первая четверть рейтинга). ![][2] В общем эта статья для еще начинающих от уже начавшего. [Читать дальше →][3]

[1]: https://www.kaggle.com/c/titanic
[2]: https://habrastorage.org/files/fb4/856/19f/fb485619f6a24cd791db6792433c1bf0.jpeg
[3]: http://habrahabr.ru/post/274171/#habracut
#  «ВКонтакте» не только не платит пользователям за найденные уязвимости, но и не рассматривает их
habrabot (difrex,1) → All  –  16:30:03 2015-12-28


![][1]По моему скромному мнению, баги из разряда банальных SQL инъекций в GET параметрах и выполнение команд через пайп уходят в далёкое прошлое. Различные фреймворки разрабатывающиеся десятками и сотнями людей, автоматизированное тестирование и лучшие практики программирования практически не оставляют шансов на то, что в начале двухтысячных являлось обыденностью. На мой взгляд, текущее время это пора гонок условий, логических багов, мисконфигураций и конечно же XSS. Которые приводят, к различным серьёзным последствиям. Не отрицая факт наличия простых критический уязвимостей и по сей день, что подтверждается на практике, хотел бы рассказать об одном интересном и в тоже время простом логическом баге в социальной сети VK.com. [Подробности][2]

[1]: https://habrastorage.org/files/1fd/b2e/f95/1fdb2ef95d674795a46390441b72de11.png
[2]: http://habrahabr.ru/post/274215/#habracut
#  [Из песочницы] Прямой доступ к диску из python
habrabot (difrex,1) → All  –  14:00:03 2015-12-28


![image][1] Расскажу я вам сегодня о том, как пытался я добраться из питона до интерфейса жесткого диска, и что из этого получилось. Появляется у меня периодически необходимость тестирования большого количества жестких дисков. Обычно для этого используется досовая Victoria загружающаяся по сети. Она тестирует диски по одному, что не очень удобно. К тому же последнее время пошли платы не имеющие режима IDE, что дополнительно усложняет задачу. По началу у меня возникла идея взять готовый софт под линукс с открытыми исходниками и добавить ему возможность параллельного тестирования нескольких дисков. После беглого поиска выяснилось удручающее состояние этой области в линуксе. Из софта, ведущего при тестировании статистику по времени доступа к секторам и типам ошибок нашел только whdd. Попытка разобраться с кодом whdd закончилась полным провалом. Для меня, ни разу не программиста, код показался очень запутанным. К тому же большую его часть занимает совсем не работа с железом. Поняв, что простого решения не предвидится я решил попробовать написать подобную программу самостоятельно. Понимая, что подобный проект на C я не осилю я начал изучать возможность прямой работы с дисками из python, которым я частенько пользуюсь для решения простых задач и люблю за простоту и понятность. Информации по этому вопросу в сети кот наплакал, но все же я выяснил, что существует модуль fcntl который в том числе позволяет отправлять устройству ioctl запросы. Теперь у меня появилась возможность отправлять команды диску. Но в линуксе все диски считаются scsi дисками, а для тестирования нужно передавать диску непосредственно ata команды. Оказалось существует механизм ATA Command Pass-Through, позволяющий обернуть ata команду в scsi запрос. Основную информацию о том, как это использовать удалось почерпнуть из исходных текстов проекта sg3\_utils. Осталось попробовать реализовать это все на питоне. [Читать дальше →][2]

[1]: https://habrastorage.org/files/e03/2cf/e61/e032cfe6188049f884cb1bca3f78c6b5.jpg
[2]: http://habrahabr.ru/post/274195/#habracut
#  OpenOCD, GDB и (сильно)удалённая отладка
habrabot (difrex,1) → All  –  14:00:03 2015-12-28


Дано: есть устройство, с ARM926E-JS (Cypress FX3) на борту. Устройство находится на другом континенте. Устройство подключено (JTAG+USB+COM) к Linux компу. На комп есть SSH доступ (и больше ничего, только SSH порт). Проблема: Устройство нужно отлаживать и писать под него код. И делать это, желательно, удобно. Решение с использованием OpenOCD, GDB и Qt Creator, а так же описание пути к нему, под катом. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274179/#habracut
#  Новогодняя проверка .NET Core Libraries (CoreFX)
habrabot (difrex,1) → All  –  12:30:03 2015-12-28


![][1]Около года назад Microsoft выложила в открытый доступ исходный код таких проектов, как CoreCLR и CoreFX. Последний проект до недавнего времени не был нам интересен, потому что написан на языке C#, а не C++. Но с выходом новой версии PVS-Studio 6.00, поддерживающей проекты и на языке программирования C#, я решил вернуться к CoreFX и написать статью.

## Введение

.NET Core это модульная реализация библиотек и среды выполнения, которая включает подмножество .NET Framework. .NET Core состоит из набора библиотек, называемых «CoreFX» и небольшой оптимизированной рабочей среды «CoreCLR». .NET Core распространяется с открытым исходным кодом, который доступен на GitHub:

* [.NET Core Libraries (CoreFX)][2]
* [.NET Core Common Language Runtime (CoreCLR)][3]

Это крупные продукты от Microsoft, содержащие качественный исходный код, но подозрительные участки кода всё равно можно найти. О проверке CoreCLR можно прочитать в статье "[PVS-Studio: 25 подозрительных фрагментов кода из CoreCLR][4]". Проект CoreFX, о котором подойдёт речь в статье, проверялся с помощью статического анализатора [PVS-Studio][5] 6.00, который теперь поддерживает и C#! [Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/9ec/b4a/5fd/9ecb4a5fd8fd0853a178c7090e0d1225.png
[2]: https://github.com/dotnet/corefx
[3]: https://github.com/dotnet/coreCLR

>> Читать далее
#  Генераторы хаоса на ПЛИС
habrabot (difrex,1) → All  –  12:00:03 2015-12-28


Всем привет! Эта статья посвящается удивительным особенностям в мире хаоса. Я постараюсь рассказать о том, как обуздать такую странную и сложную вещь, как хаотический процесс и научиться создавать собственные простейшие генераторы хаоса. Вместе с вами мы пройдем путь от сухой теории до прекрасной визуализации хаотических процессов в пространстве. В частности, на примере известных хаотических аттракторов, я покажу как создавать динамические системы и использовать их в задачах, связанных с программируемыми логическими интегральными схемами (ПЛИС). ![][1] [Окунуться в мир хаоса...][2]

[1]: https://habrastorage.org/files/c69/4e7/94a/c694e794a619480b871cb5adc58f9e2e.jpg
[2]: http://habrahabr.ru/post/273915/#habracut
#  Как я искал (и нашел) разницу в двух побайтово идентичных файлах
habrabot (difrex,1) → All  –  11:30:03 2015-12-28


Есть у нас одно .NET-приложение, которое умеет загружать и использовать плагины. Плагины — дело хорошее. Можно функционал расширять, можно оперативненько обновлять их со своего сайта, можно даже юзерам дать SDK и позволить писать свои плагины. Мы всё это и делали. Наши плагины представляли собой обычные .NET-сборки, которые нужно было подкинуть в определённую папку, откуда основное приложения их загружало и использовало. Ну, вы, наверное представляете как — [Assembly.Load()][1], дальше ищем класс, реализующий необходимый интерфейс, создаём объект этого класса и т.д. Всё это работало давно, стабильно и ничто не предвещало беды. Но вдруг в какой-то момент появилась необходимость создать плагин, состоящий из нескольких файлов. В связи с этим было решено считать плагином не просто .NET-сборку (1 файл), а zip-архив, в котором может быть как одна сборка, так и несколько файлов. В связи с этим пришлось научить билд-сервер паковать плагины в архивы, а основное приложение — разархивировать их в нужное место. В общем-то задача на 10 строк кода. Ничто не предвещало беды. И вот скачиваю я с билд-сервера собранный архив с плагином, разархивирую его в нужную папку, запускаю приложение, и… не работает! Стоп, как не работает? Это ведь тот же плагин! Дальше — больше. Прошу проделать ту же самую процедуру моего коллегу, на его компьютера. Он пробует — и у него всё работает! Но как же так? Одна версия приложения, один и тот же файл с билд-сервера. Какая-то разница в окружении? Сажусь за компьютер коллеги, пробую ещё раз — не работает! Он в этом время пробует на моём — работает! То есть получается, что файл «помнит», кто его разархивировал! Зовём третьего коллегу понаблюдать этот цирк. Последовательно, на одном и том же компьютере, по очереди делаем одни и те же действия: скачиваем архив с плагином, разархивируем в нужную папку, запускаем приложение. Когда это делаю я — программа не видит плагин, когда это делает коллега — всё работает. На третьем круге этих интересных экспериментов вдруг замечаем разницу в действиях: я разархивировал плагин стандартными средствами Windows, а мой коллега — с помощью 7-Zip. И то и другое вызывалось нами из контекстного меню архива, так что разницу в клик по не тому пункту вначале никто не замечал. Ну ок. Получается, файл, извлечённый из zip-архива с помощью 7-zip, отличается от того же файла из того же архива, извлечённого с помощью стандартного архиватора Windows? Кстати, пока вы не открыли статью под катом, ответьте-ка сами для себя на вопрос, может ли такое быть, что содержимое файлов валидного zip-архива при разархивации 7-zip и через проводник Windows будет разным? [Читать дальше →][2]

[1]: https://msdn.microsoft.com/en-us/library/system.reflection.assembly.load(v=vs.110).aspx
[2]: http://habrahabr.ru/post/274183/#habracut
#  GOTPass: новая беспарольная система аутентификации пользователя
habrabot (difrex,1) → All  –  10:00:03 2015-12-28


![][1] За прошедшие несколько лет неоднократно высказывалась мысль о том, что метод аутентификации пользователя при помощи паролей несколько устарела. Некоторые компании, соглашаясь с этим мнением, стараются создать новые системы аутентификации, которые были бы более безопасными стандартных методов, и одновременно более удобными для работы. Одна из таких систем [разрабатывается][2] исследователями из Плимутского университета. Ученые назвали свой проект GOTPass, это комбинированная система, в которой объединяются паттерны, изображения и единоразовый пароль. Все это нужно для создания системы, которая может быть более удобной и более безопасной, чем привычные нам способы аутентификации. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/f4f/716/a1d/f4f716a1dd2f3c0d5320de027f708f7c.jpg
[2]: http://www.engadget.com/2015/12/26/gotpass-plymouth-university-password-proposal/
[3]: http://habrahabr.ru/post/274105/#habracut
#  [Из песочницы] Создание своего типа ассета в Unreal Engine 4 и кастомизация панели свойств
habrabot (difrex,1) → All  –  09:00:03 2015-12-28


![][1] Меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби. Сегодня я хотел бы рассказать как в Unreal Engine создать свой тип ассета и как добавить дополнительный элемент на панель свойств ассета. Итак начнем. [Читать дальше →][2]

[1]: https://habrastorage.org/files/932/2a8/5d2/9322a85d2f824646bfeb3682a3278488.jpg
[2]: http://habrahabr.ru/post/274159/#habracut
#  Ботнет из тысяч взломанных роутеров Aethra использовался для атаки на Wordpress-сайты
habrabot (difrex,1) → All  –  21:30:02 2015-12-27


![][1] Итальянская компания VoidSec, работающая в сфере информационной безопасности, опубликовала материал о недавно обнаруженном ботнете из роутеров Aethra. Как оказалось, эти устройства подвержены взлому, а злоумышленники используют ботнеты из таких устройств для проведения брутфорс-атак на сайты Wordpress. Одна из таких атак была обнаружена специалистом компании, когда тот анализировал логи Wordpress-сайтов, подвергшихся атаке. Как оказалось, атака шла с довольно близкого диапазона IP-адресов. После детального анализа оказалось, что атака осуществлялась с IP, отнсящихся к 6 интернет-провайдерам: Fastweb, Albacom (BT-Italia), Clouditalia, Qcom, WIND, и BSI Assurance UK. 4 провайдера работают в Италии. Большинство этих компаний устанавливают клиентам роутеры Aethra. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/fde/ad1/470/fdead14702158f05624143bdab0fbbe2.jpg
[2]: http://habrahabr.ru/post/274117/#habracut
#  Эрланг для веб-разработки (2) -> БД и деплой;
habrabot (difrex,1) → All  –  20:30:03 2015-12-27


![][1] В [первой статье][2] мы познакомились с Эрлангом и фреймворком n2o. В этой части мы продолжим делать наш блог:

* добавим авторизацию через фейсбук, для этого будем из клиента вызывать функции на сервере;
* будем сохранять комментарии и посты в NoSQL базе;
* развернем наш блог на DigitalOcean и замерим производительность (_спойлер — 1300 запросов в секунду_).

Код из статей . [Читать дальше →][3]

[1]: https://habrastorage.org/files/ab9/08a/eb3/ab908aeb3c9c4422ab0de8abe4b4a361.png
[2]: http://habrahabr.ru/post/273979/
[3]: http://habrahabr.ru/post/274107/#habracut
#  [Перевод] Простые алгебраические типы данных
habrabot (difrex,1) → All  –  09:00:03 2015-12-27


_Это шестая статья из цикла «Теория категорий для программистов». Предыдущие статьи уже публиковались на Хабре:_ [0\. Теория категорий для программистов: предисловие][1] [1\. Категория: суть композиции][2] [2\. Типы и функции][3] [3\. Категории, большие и малые][4] [4\. Категории Клейсли][5] [5\. Произведения и копроизведения][6] В предыдущей статье были рассмотрены базовые операции над типами: произведение и копроизведение. Теперь покажем, что комбинирование этих механизмов позволяет построить многие из повседневных структур данных. Такое построение имеет существенное прикладное значение. Например, если мы умеем проверять на равенство базовые типы данных, а также знаем, как свести равенство произведения и копроизведения к равенстве компонент, то операторы равенства для составных типов можно вывести автоматически. В Haskell для обширного подмножества составных типов автоматически выводятся операторы равенства и сравнения, конвертация в строку и обратно и многие другие операции. Рассмотрим подробнее место произведения и копроизведения типов в программировании.

## Произведение типов

Каноническая реализация произведения типов в языках программирования — это пара. В Haskell пара является примитивным конструктором типов, а в C++ это относительно сложный шаблон из стандартной библиотеки. Строго говоря, произведение типов не коммутативно: нельзя подставить пару типа `(Int, Bool)` вместо `(Bool, Int)`, хотя они и содержат одни и те же данные. Однако произведение коммутативно с точностью до изоморфизма, задаваемого функцией `swap`, которая обратна самой себе:

swap :: (a, b) -> (b, a)
swap (x, y) = (y, x)

Можно рассматривать такие пары как различные форматы хранения одной и той же информации, как big endian и little endian. [Читать дальше →][7]

[1]: http://habrahabr.ru/post/245797/
[2]: http://habrahabr.ru/post/246009/
[3]: http://habrahabr.ru/post/247765/

>> Читать далее
#  [recovery mode] Кому и зачем все-таки нужен Go?
habrabot (difrex,1) → All  –  21:00:03 2015-12-26


![image][1] Здарова! Короче, последнее время на хабре было много срачей вокруг Go: хороший-плохой, нужен-ненужен, много сравнивали с питоном, много сравнивали с растом, [divan0][2] даже додумался перевести [высер][3] «Go vs Haskell» ну и в таком ключе. У меня сложилось ощущение, что из-за хайпа и агрессивного маркетинга языка _некоторыми Иванами Данилюками_ очень мало кто понял, кому и зачем вообще Go может пригодиться, зачем его делали и стоит ли вообще его учить. Я тоже долгое время участвовал в этих срачах, принимая посменно сторону «фанов» языка и сторону оппозиции, но в конце-концов допер, в чем фокус. Сегодня немного потупил у дивана в посте и решил написать вот эту заметочку. Давайте, пацаны, проходим в пост. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/25f/2d4/080/25f2d408041039eb52cb08f364ee84ae.jpg
[2]: http://habrahabr.ru/users/divan0/
[3]: http://habrahabr.ru/post/270707/
[4]: http://habrahabr.ru/post/274099/#habracut
#  Что случилось с google public dns в России?
habrabot (difrex,1) → All  –  19:00:03 2015-12-26


Это не тостер, но проблема проявилась по всей России пару часов назад. Адрес 8.8.8.8 не работает, хотя пингуется. Может кто знает, что случилось? Адрес 8.8.4.4 тоже не отдаёт записи. P.S. Если кто увидит этот пост, хоть у себя на серверах поправит, если использовался сей DNS. **Проверять либо dig @8.8.8.8 google.com либо nslookup google.com 8.8.8.8** [][1]

[1]: http://habrahabr.ru/post/274095/#habracut
#  Разработчики Perl 6: язык готов к использованию
habrabot (difrex,1) → All  –  05:30:02 2015-12-26


![image][1] 24 декабря в [официальном блоге][2], посвящённом новостям разработки Perl 6, появилась поздравительная запись. Разработчики поздравили всех с наступающим католическим Рождеством, и с тем, что так долго ожидаемое взросление языка, наконец, состоялось. Фактически, язык готов к использованию в рабочих проектах, и разработчики обещают больше ничего существенно не менять. С момента выхода первой версии Perl прошло 28 лет, с момента выхода самой популярной в данное время версии Perl 5 – более 20 лет. Как шутит Ларри Уолл, создатель языка и лидер его разработки, 6-я версия, возможно, когда-нибудь и заменит 5-ю – примерно лет через 40. Версия Perl 6 была анонсирована более 10 лет назад – на [Amazon ещё можно купить книгу ][3]про этот «вскоре выходящий» язык, изданную в 2004 году. Длительность разработки можно объяснить тем, что Perl 6 – фактически, новый язык, написанный по мотивам 5-й версии. И хотя некоторые утверждают, что [6-ка отличается от 5-ки не более, чем C++ от C][4], всё-таки идеология в Perl 6 эволюционировала достаточно сильно для того, чтобы назвать его более современным языком. [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/4d7/2e8/2ce/4d72e82ce50411905d8a223317863f73.png
[2]: https://perl6advent.wordpress.com/2015/12/24/an-unexpectedly-long-expected-party/
[3]: http://www.amazon.com/gp/product/059600737X/ref=as_li_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=059600737X&linkCode=as2&tag=destinyland-20&linkId=7GO7LHUIB57AJGKY
[4]: http://www.infoworld.com/article/2990353/application-development/perl-6-what-it-will-bring.html
[5]: http://habrahabr.ru/post/274069/#habracut
#  IBM Swift Sandbox — веб-песочница со Swift для тех, кто хочет разобраться в языке программирования от Apple
habrabot (difrex,1) → All  –  04:00:02 2015-12-26


![][1] Корпорация IBM уже довольно давно сотрудничает с Apple. Взаимодействие двух компаний касается многих сфер, и одна из них — программирование. Причем программирование на Swift. Дело в том, что корпорация Apple сделала исходный код языка программирования Swift открытым. А в Mobile Innovation Lab от IBM создали специальную песочницу для разработчиков, которые хотели бы познакомиться со Swift. Благодаря открытию кода, разработчики, которые создают приложения для iOS, OS X и watchOS, могут без проблем обходить существовавшие ранее ограничения, дополняя многие функции при необходимости. Apple для привлечения широкой аудитории опубликовала достаточно массивную библиотеку различной документации, которая позиционируется как пособие для начинающих программистов. Стоит отметить, что лицензируется Swift под лицензией Apache 2.0. Эта лицензия позволяет использовать программное обеспечение для собственных целей, и платить Apple не требуется. [Читать дальше →][2]

[1]: https://habrastorage.org/files/e6a/3a0/521/e6a3a0521d32400fb417aa6e209a698b.png
[2]: http://habrahabr.ru/post/274067/#habracut
#  [Из песочницы] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 28. «Carder Court»
habrabot (difrex,1) → All  –  19:00:03 2015-12-25


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция.

#### Глава 28. Суд кардеров

_(за перевод спасибо drak0sha )_ Кейт Муларски был изможден. Сначала он переговорил с агентом в филиале Секретной службы на другом конце города. «Мне кажется тебе грозят некоторые неприятности». Один из бесчисленных информаторов слышал, что Iceman обнаружил неопровержимые доказательства, что Мастер Сплинтр был либо стукачом, шпионом корпоративной безопасности, либо федеральным агентом. Iceman временно объединился со своим бывшим врагом Silo и готовил подробную презентацию для руководства Carders Market и Dark Market-а. Iceman и Silo явно хотели засудить Мастера Сплинтра. Все началось с кода Silo. Известность Мастера Сплинтра как спамера и программиста сделала его специалистом в области обзоров вредоносного кода DarkMarket-а. Это было одним из преимуществ его тайной операции: Муларски сможет оценить последние версии секретного атакующего кода и передать их CERT, который, в свою очередь, отправит их всем антивирусным компаниям. Вредоносный код можно будет обнаружить еще до того, как он окажется на черном рынке. В этот раз Муларски поручил код в качестве тренировочного задания одному из студентов CMU проходящих стажировку в NCFTA. Согласно стандартной процедуре студент запустил программу в изолированном режиме на виртуальной машине — своего рода программная чаша Петри, которую после можно вычистить. Но он забыл о флешке в USB-порте. На нее были загружены пустая отчетная форма о вредоносной программе с логотипом NCFTA и основные цели исследования. Прежде чем студент осознал, что произошло, документ оказался в руках Silo. Шесть администраторов и модераторов DarkMarket получили копию кода Silo. Теперь канадцы знали, что один из них был федеральным агентом. [Читать дальше →][4]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/post/274053/#habracut
#  Как убить смартфон Sony Xperia C2305 с помощью роутера D-Link DIR-300
habrabot (difrex,1) → All  –  17:00:02 2015-12-25


Однажды вечером пропал интернет и я решил раздать его с телефона на роутер. После подключения телефон начал постоянно зависать и перезагружаться. В результате не стало ни интернета, ни телефона. Если ваш телефон Sony внезапно начал перезагружаться без остановок, то вам может помочь данная статья. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274037/#habracut
#  Нестандартный топ событий в сфере IT-безопасности 2015
habrabot (difrex,1) → All  –  13:00:02 2015-12-25


![][1]Вот и пришло время повторить упражнение, которое я первый раз выполнил [ровно год назад][2]. Тогда я взял 10 самых популярных новостей с нашего сайта [Threatpost][3] и попытался выяснить — почему именно они, собственно, привлекли внимание общественности — и специалистов, и обычных пользователей. Такой метод имеет очевидные недостатки — на популярность статей много что влияет, и совершенно не обязательно, что самые популярные новости об инцидентах в кибермире являются одновременно и самыми важными. Но есть и достоинства: событий в сфере информационной безопасности происходит огромное количество, и каждый участник их обсуждения, в зависимости от специализации и личных интересов, выберет свои «самые-самые». А тут — если и не самый объективный, то хотя бы независимый инструмент оценки. В этом году подборка самых посещаемых новостей удачно делится на пять основных категорий: — Низкотехнологичные угрозы для пользователей — «Уязвимости в неожиданных местах»: безопасность «интернета вещей», домашних и промышленных сетевых устройств, — Проблемы шифрования данных — Громкие уязвимости в ключевых платформах и «хайтек» киберугроз — примеры самых продвинутых атак — Рутинные, но опасные уязвимости в распространенном софте Вот по ним и пройдемся. [Читать дальше →][4]

[1]: https://habrastorage.org/files/556/802/866/556802866b194499a11861b46fedde48.jpg
[2]: http://habrahabr.ru/company/kaspersky/blog/246745/
[3]: https://threatpost.ru
[4]: http://habrahabr.ru/post/273919/#habracut
#  [Перевод] Как на самом деле будет выглядеть рынок JavaScript в 2016 году
habrabot (difrex,1) → All  –  12:00:03 2015-12-25






Сегодня на сайте Mashable появилась любопытная статья «Чтобы стать гуру программирования в 2016 году, достаточно освоить Javascript и переехать в Юту» о рынке труда разработчиков программного обеспечения. Данный материал формирует весьма превратную картину действительности, а потому давайте разбираться вместе. Краткая предыстория. Я разработчик программного обеспечения и на протяжение нескольких последних лет мне доводилось неоднократно проводить собеседования с желающими пополнить ряды моих коллег. Кроме того, я обучал разработчиков JavaScript навыкам, благодаря которым они получали шикарную работу. У меня приличный опыт в сфере создания и консультирования многообещающих команд разработчиков всевозможных стартапов и 500 успешных компаний. Я также часто сотрудничаю с кадровыми агентствами, благодаря чему не понаслышке знаю, чего хотят самые высокотехнологичные компании в мире. Руководствуясь собственным опытом и тем, что рассказывают мои студенты, я могу с уверенностью заявить, что прекрасно понимаю структуру рынка труда JavaScript как снаружи, так и изнутри. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/274013/#habracut
#  Как мы сделали Rich Text Editor с поддержкой совместного редактирования под Android
habrabot (difrex,1) → All  –  11:00:03 2015-12-25


«Мобилизация» рабочих процессов в компаниях означает, что на телефон или планшет переносится все больше функций для совместной работы. Для [Wrike][1], как кроссплатформенного сервиса управления проектами, важно, чтобы функционал мобильного приложения был абсолютно полноценным, удобным и не ограничивал пользователей в работе. И когда встала задача создать Rich Text Editor с поддержкой совместного редактирования описания задач, мы, оценив возможности существующих WebView компонентов, решили пойти своим путем и реализовали собственный нативный инструмент. [Подробности][2]

[1]: https://www.wrike.com/ru
[2]: http://habrahabr.ru/post/273797/#habracut
#  Эрланг для веб-разработки (1) -> Знакомство;
habrabot (difrex,1) → All  –  20:30:03 2015-12-24


![][1] Я начинаю публиковать серию статей о веб-разработке на Эрланге. Многие хотят попробовать Эрланг, но сталкиваются с проблемой, что вводные курсы в основном касаются Эрланга как функционального языка и далеки от реальных проектов ([Learn You Some Erlang for great good!][2] — хорошая и подробная книга). С другой стороны все обучающие материалы по веб-разработке подразумевают, что читатель уже хорошо знает Эрланг. Эта серия статей рассчитана для разработчиков, у которых есть опыт в веб-разработке (PHP, Ruby, Java), но не имеют опыта разработки на Эрланге. Задачей будет сделать блог. Код из статей . Особенности проекта:

* обновление комментариев в реальном времени;
* авторизация через фейсбук;
* данные храним в mnesia.

В основе проекта [феймворк n2o][3]. Выбор довольно субъективен, но из живых [Эрланг фреймворков][4], n2o мне показался наиболее «эрлангоподобным», в тоже время ChicagoBoss больше похож на MVC фреймворки в других языках. [Читать дальше →][5]

[1]: https://habrastorage.org/files/ab9/08a/eb3/ab908aeb3c9c4422ab0de8abe4b4a361.png
[2]: http://learnyousomeerlang.com/
[3]: https://github.com/synrc/n2o
[4]: https://github.com/ChicagoBoss/ChicagoBoss/wiki/comparison-of-erlang-web-frameworks
[5]: http://habrahabr.ru/post/273979/#habracut
#  [Перевод] Компилируем С\С++ код в WebAssembly
habrabot (difrex,1) → All  –  20:00:02 2015-12-24


[WebAssembly][1] — это новый бинарный формат, в который могут быть скомпилированы веб-приложения. Он проектируется и реализуется прямо в тот момент, когда вы читаете эти строки и двигают его вперёд разработчики всех основных браузеров. Всё меняется очень быстро! В этой статье мы покажем текущее состояние проекта с достаточно глубоким погружением в инструментарий по работе с WebAssembly. Для того, чтобы WebAssembly заработал, нам нужны две основных компоненты: инструменты для сборки кода в бинарник формата WebAssembly и браузеры, способные этот бинарник загрузить и выполнить. И то, и другое ещё не полностью создано и очень сильно зависит от завершения работы на [спецификацией][2] WebAssembly, но в общем-то это отдельные компоненты и их развитие идёт параллельно. Это разделение — хорошая вещь, оно позволит компиляторам создавать WebAssembly-приложения, способные работать в любом браузере, а браузерам — запускать WebAssembly-программы не зависимо от того, каким компилятором они были созданы. Другими словами — мы получаем открытую конкуренцию инструментов разработки и браузеров, что непрерывно будет двигать всё это вперёд, принося конечному пользователю отличный выбор. Кроме того, такое разделение позволяет командам разработчиков инструментария и браузеров работать параллельно и независимо. Новый проект на стороне инструментарий WebAssembly, о котором я хочу сегодня рассказать, называется [Binaryen][3]. Binaryen это библиотека для поддержки WebAssembly в компиляторах, написанная на С++. Если вы лично не работаете над компилятором WebAssembly, то вам, вероятно, не нужно напрямую знать что-либо о Binaryen. Если вы используете какой-нибудь компилятор WebAssembly, то он, возможно, под капотом использует Binaryen — мы рассмотрим примеры ниже. [Читать дальше →][4]

[1]: https://github.com/WebAssembly/design
[2]: https://github.com/WebAssembly/spec
[3]: https://github.com/WebAssembly/binaryen
[4]: http://habrahabr.ru/post/273957/#habracut
#  Финтех и Blockchain: подводим итоги уходящего года и делаем прогноз на следующий
habrabot (difrex,1) → All  –  16:00:03 2015-12-24


_![image][1]До конца года осталось всего несколько дней, а это значит, что пришло время подвести итоги уходящего года и сделать прогнозы на будущий. По уже сложившейся традиции мы в [Web-payment.ru][2], сайте о платежах, blockchain и e-commerce, расскажем о самых интересных событиях, тенденциях и достижениях 2015 года в области финансовых инноваций и блокчейн-технологии. К слову, если вам понадобится подключить оплату на сайте — [обращайтесь][3], мы поможем выбрать подходящее решение и провести интеграцию. Также мы оказываем комплексные услуги по разработке, продвижению и контент-сопровождению._

### Итоги года. Fintech

Для финтех-индустрии подобные годовые отчеты особенно актуальны, ведь те события, которые происходят в течение года, определяют вектор развития отрасли в будущем. За прошедший 2015 год рынок венчурных инвестиций в финтех побил рекорды прошлых лет. Крупнейшие игроки финансовой отрасли решились на крупные сделки. Молодые стартапы анонсировали интересные проекты. Но обо всем по порядку. [Читать дальше →][4]

[1]: https://habrastorage.org/files/089/b0c/89b/089b0c89b711401aaac534a91b74b4ad.JPG
[2]: http://web-payment.ru/
[3]: http://web-payment.ru/priem-platezhej/
[4]: http://habrahabr.ru/post/273937/#habracut
#  Let’s Encrypt в Plesk-панели
habrabot (difrex,1) → All  –  13:00:06 2015-12-24


[![][1]][2]3 декабря вышел публичный релиз беты Let's Encrypt. Это радостное событие уже освещалось на [Хабре][3]. Кратко напомню, эта штука дает возможность установить бесплатный доверенный сертификат на сайт. Помимо бесплатных сертификатов, [Let's Encrypt][4] еще инструмент для выписывания, обновления, отзыва сертификатов, что, по задумке авторов, облегчит жизнь системным администраторам. В этой статье я расскажу об особенностях Let’s Encrypt, о которых не стоит забывать, и о том, как воспользоваться им, если ваш сервер работает под управлением панели Plesk. [Читать дальше →][5]

[1]: https://habrastorage.org/files/fff/913/39f/fff91339fad14999bb206b5befed2b9f.png
[2]: http://habrahabr.ru/post/273827/
[3]: http://habrahabr.ru/post/272253/
[4]: https://letsencrypt.org/
[5]: http://habrahabr.ru/post/273827/#habracut
#  [Из песочницы] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 26. «What’s in Your Wallet?»
habrabot (difrex,1) → All  –  11:30:07 2015-12-24


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция.

#### Глава 26. Что в Вашем бумажнике?

_(за перевод спасибо [al\_undefined][4] )_ _Продажа 100% проверенных свежих дампов (США), скидки: $11 MasterCard $8 Visa Classic $13 Visa Gold/Premium $19 Visa Platinum $24 Visa Signature $24 Visa Business $19 Visa Corporate $24 Visa Purchasing $19 American Express = снижение цены (было 24) $24 Discover = снижение цены (было 29) Минимальный заказ — 10 штук. Продажа по типам карт. Не по BIN’ам (прим. пер. — идентификатор банка-эмитента). _ Агрессивный захват, провернутый Максом был совершен с целью объединить силы комьюнити, а не с целью персонального обогащения. Тем не менее, его бизнес по продаже краденных данных с магнитных полос пластиковых карт после объединения форумов процветал как никогда — он получал порядка тысячи долларов в день, продавая дампы кардерам по всему миру, в дополнении к пяти — десяти тысячам, что он получал от партнерства с Крисом. На публике, во время встреч ФТК (Федеральная Торговая Комиссия) или где бы то ни было, индустрия кредитных карт изо всех сил старалась скрыть последствия учащающихся фактов кражи данных с магнитных полос по всему миру. Visa, лидер в сфере кредиток, поддержал финансируемый промышленностью отчет компании Javelin Strategy and Research (прим. пер. — агентство, занимающееся оценкой рисков и возможностей в областях: мобильные устройства, платежи, многоканальные финансовые услуги, мошенничество и безопасность), которое обвиняло в сложившейся ситуации потребителей (клиентов), а не компании — источники слива данных кредиток и краж персональных данных: 63% произошедших случаев обусловлены потерей или кражей кошелька с последующей кражей данных доверенными партнерами, кражей электронной почты и исследованием содержимых мусорных контейнеров (Dumpster diving). [Читать дальше →][5]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/users/al_undefined/
[5]: http://habrahabr.ru/post/273943/#habracut
#  Немного про Яндекс Protect
habrabot (difrex,1) → All  –  10:30:03 2015-12-24


«Даже если вы нажмете на какую-то ссылку и введете логин и пароль то ничего такого не случится» — реклама браузера Яндекс. Как это работает и так ли это? Посмотрев эту рекламу мне конечно стало интересно, как Яндекс смог «победить» такую сложно решаемую проблему как кража паролей. Хочу отметить, что рассматривал я только одну из функций Яндекс Protect, а именно "[Защита от кражи паролей][1]". [Читать дальше →][2]

[1]: https://yandex.ru/blog/company/98148
[2]: http://habrahabr.ru/post/272045/#habracut
#  Вливаемся в tox-сообщество или установка ноды за 5 минут
habrabot (difrex,1) → All  –  04:30:02 2015-12-24


Приветствую тебя, о жадный читатель, буквоед и борец за справедливость в интернетах! В нашей оружейной пополнение, называется оно tox. Сейчас я покажу тебе, %username%, его сборку-разборку. ![debian_tox_dht][1] Есть такая замечательная система, которая называется TOX. [Вот][2] их официальный сайт, а [вот][3] профиль на github. О tox уже писали множество раз, но я перечислю основные плюшки: DHT — нет зависимости от центрального сервера, достаточно хотя бы одной ноды, шифрование на клиенте — Вася пишет Маше,



Паша ничего не прочитает. [Читать дальше →][4]

[1]: http://blog-static-nonsafe.saraeff.net/uploads/2015/12/debian_tox_dht_762b835ba15829c7.png
[2]: https://tox.chat
[3]: https://github.com/irungentoo/toxcore
[4]: http://habrahabr.ru/post/273901/#habracut
#  Распарсить HTML в .NET и выжить: анализ и сравнение библиотек
habrabot (difrex,1) → All  –  18:00:04 2015-12-23


![][1] В ходе работы над одним домашним проектом, столкнулся с необходимостью парсинга HTML. Поиск по гуглу выдал [комменарий][2] [Athari][3] и его микро-обзор актуальных парсеров HTML в .NET за что ему огромное спасибо. К сожалению, никаких цифр и/или аргументов в пользу того или иного парсера найдено не было, что послужило поводом к написанию данной статьи. Сегодня я протестирую популярные, на данный момент, библиотеки для работы с HTML, а именно: [AngleSharp][4], [CsQuery][5], [Fizzler][6], [HtmlAgilityPack][7] и, конечно же, [Regex-way][8]. Сравню их по скорости работы и удобству использования. **TL;DR**: Код всех бенчмарков можно найти на [github][9]. Там же лежат результаты тестирования. Самым актуальным парсером на данный момент является [AngleSharp][10] — удобный, быстрый, парсер с удобным API. Тем, кому интересен подробный обзор — добро пожаловать под кат. [Читать дальше →][11]

[1]: https://habrastorage.org/files/e9e/461/875/e9e46187540d496fadb65a61d2af95f5.png
[2]: http://habrahabr.ru/post/112325/#comment_8578117
[3]: http://habrahabr.ru/users/athari/
[4]: https://github.com/AngleSharp/AngleSharp
[5]: https://github.com/jamietre/CsQuery
[6]: https://code.google.com/p/fizzler/
[7]: https://htmlagilitypack.codeplex.com/
[8]: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454
[9]: https://github.com/forcewake/Benchmarks
[10]: https://github.com/AngleSharp/AngleSharp
[11]: http://habrahabr.ru/post/273807/#habracut
#  [Из песочницы] Как запустить собственный торрент-поисковик на базе RuTracker?
habrabot (difrex,1) → All  –  14:00:03 2015-12-23


Я максимально постараюсь писать без «воды». Минимум лишней отвлекающей информации и разглагольствований. Максимум полезной информации и рабочего кода. Я не буду поднимать вопрос зачем кому-то собственный торрент-поисковик на базе RuTracker. И я не считаю себя гуру программирования. Мы просто сделаем этот сайт вместе. Будем использовать Apache+PHP, MySQL и Sphinx. Сразу предупрежу, что на минимальном виртуальном хостинге сайт будет работать совсем не быстро. ![image][1] [Читать дальше →][2]

[1]: http://i.imgur.com/u0FqvQe.png
[2]: http://habrahabr.ru/post/273777/#habracut
#  Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 23. «Anglerphish»
habrabot (difrex,1) → All  –  13:30:03 2015-12-23


В 23 главе речь пойдет о неуловимом (почти как в фильме «Поймай меня, если сможешь») преступнике, который водил ФБР вокруг пальца, при этом ухитрился проворачивать дела, пока стучал спецслужбам, но в конце концов погорел из-за женщины, но сумел выпутаться и сбежать. А еще он в лучших традициях Чичикова использовал «мертвые души» для обналички краденых кредиток.

----

![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция.

#### Глава 23. Anglerphish

_(за перевод спасибо [Find\_The\_Truth][4] )_ **Рыба-Удильщик** Макс занимался сбором информации на [Бретта Джонсона][5]. Он начал с проверки логов доступа и личных сообщений админа CardersMarket. Для того, чтобы проверить себя, Макс взломал аккаунт Джонсона на сайте «Международной ассоциации развития преступной деятельности» («The International Association for the Advancement of Criminal Activity», IAACA) и поискал следы его активности. Однако, ни дымящихся пистолетов, ни прочих улик не было. Неужели он мог привести информатора в узкий круг его нового сайта? Проблема в том, что нет никакого конкретного метода, чтобы определить, работает ли Джонсон, или кто-то еще на правительство. Макс хотел использовать дыру в безопасности юриспруденции, как переполнение буфера в BIND, которую он мог использовать снова и снова в отношении любого, кого подозревал. _If (is\_snitch(Go llumfun)) ban(Go llumfun);_ Он доверился Дэвиду Томасу, не представляя, что Томас уже занес Айсмана в свой километровый список врагов. [Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/026/ea4/f28/026ea4f2886e4ac309a49bf7c6aaa5d2.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/users/find_the_truth/

>> Читать далее
#  Hub AI&BigData meetup #1
habrabot (difrex,1) → All  –  13:30:03 2015-12-23


![][1] **26 декабря** наша команда [FlyElephant][2] примет участие во встречи **Hub AI&BigData meetup**, посвященной большим данным и искусственному интеллекту. Мероприятие будет проходить в Одессе и начнется в 11.00. Для всех, кто не сможет прийти, будет организована [онлайн-трансляция][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/45b/5d2/6a2/45b5d26a289c4b7b982b1ff2ed91a6e2.jpg
[2]: http://flyelephant.net/
[3]: https://docs.google.com/forms/d/1S6TpLSigbH9HQtfwzC_za5unlJPa9fKkaQo9D3N8iQg/viewform
[4]: http://habrahabr.ru/post/273825/#habracut
#  Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: FireDac
habrabot (difrex,1) → All  –  13:30:03 2015-12-23


В данной статье будет описан процесс создания приложений для СУБД Firebird с использованием компонентов доступа FireDac и среды Delphi XE5. FireDac является стандартным набором компонентов доступа к различным базам данных начиная с Delphi XE3. Наше приложение будет работать с базой данных модель, которой представлена на рисунке ниже.



В конце данной статьи приведены ссылки на другие статьи, в которых описывается процесс создания базы данных с этой моделью и ссылка на скрипт создания базы данных.




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





>> Читать далее
#  Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 24. «Exposure»
habrabot (difrex,1) → All  –  13:30:03 2015-12-23


![image][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция.

#### Глава 24. «Exposure»

_(за перевод спасибо satandyh )_ **Обличение** «Теа, эти девчонки — белый мусор. Лучше не дружи с ними,» — сказал Крис, — «Мозги у них другие.» Они сидели в «Наан и Карри», 24-часовом индийско-пакистанском ресторанчике в театральном районе Сан-Франциско. Это произошло спустя три месяца с того момента, когда Теа познакомилась с Крисом и была с ним в одной из его поездок в район Бухты, где он встречал своего таинственного друга-хакера «Сэма», как раз перед рассветом. Они были всего в четырех кварталах от безопасного дома Криса, но Теа до сих пор не была представлена хакеру — ни сейчас, ни до этого. Никто не встречался с Сэмом лично. Она была очарована тем как все это работало: безналичная природа преступлений и способ, которым Крис организовал свою команду. Он рассказал ей все, когда решил, что она готова, но он никогда не просил ее совершать покупки в магазинах, как остальных. Она была особенной. Он даже не любил болтаться с ней и со своей командой обналичивания одновременно, из опасения, что они как-то могут навредить ей. Теа также была единственным работником, которому не платят. После того как она отказалась от 40 баксов, оставленных Крисом на ночном столике, он решил, что Теа не возьмет от него никаких денег, несмотря на долгие часы, которые она проводила на CardersMarket и на Русских досках объявлений для преступлений. Крис заботился об аренде дома Теа, покупал ей одежду и оплачивал ее путешествия, но она все же находила такое существование немного странным: жизнь онлайн, путешествия с помощью подтверждений, а не билетов на самолеты. Она стала призраком, ее тело находилось в Оранжевой стране, а разум чаще всего проецировался в Украину и Россию, оказывая поддержку главарям организованной киберпреступности в роли эмиссара Iceman — т.е. мира кардеров Запада. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/227/d44/9d2/227d449d248dd7c8ee244ce5cf29fdfe.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/post/273725/#habracut
#  Google тестирует «беспарольный» вход
habrabot (difrex,1) → All  –  13:00:02 2015-12-23


Один из пользователей получил приглашение протестировать новый метод аутентификации и сообщил об этом в одной из групп на [Reddit][1]. Рохит Пол (Rohit Paul) был приглашен поучаствовать в тестировании нового метода. Сейчас для него, чтобы войти в свою учетную запись на Google достаточно просто ввести свой логин и подтвердить вход на своем телефоне. Рохит любезно [поделился][2] скриншотами: процесс беспарольного входа выглядит так: [Читать дальше →][3]

[1]: https://www.reddit.com/r/Android/comments/3xrrli/just_got_early_access_to_log_into_google_account/
[2]: https://docs.google.com/presentation/d/1SgRcnhqMrUWvhBvrMrQRgn3zYfivdg1V8Pv0hc4unKo/edit?usp=docslist_api
[3]: http://habrahabr.ru/post/273829/#habracut
#  Intel® Tamper Protection Toolkit — обфусцирующий компилятор и средства проверки целостности кода
habrabot (difrex,1) → All  –  10:30:02 2015-12-23


![][1] Совсем недавно компания Intel выпустила очень интересный набор инструментов для разработчиков программного обеспечения, позволяющий добавить защиту программного кода от взлома и существенно усложнить жизнь взломщикам программ. Этот набор включает в себя обфусцирующий компилятор, средство для создания файла подписи, используемого для проверки целостности загружаемых динамических библиотек, а также библиотеку функций проверки целостности и дополнительные полезные инструменты. Intel Tamper Protection Toolkit beta можно совершенно бесплатно скачать на [сайте Intel][2]. [Читать дальше →][3]

[1]: https://habrastorage.org/files/806/1a4/69f/8061a469fe8d497b92bde873a688d7e2.jpg
[2]: https://software.intel.com/en-us/tamper-protection
[3]: http://habrahabr.ru/post/273183/#habracut
#  40 книг и образовательных ресурсов для изучения фондового рынка и алгоритмической торговли
habrabot (difrex,1) → All  –  05:30:02 2015-12-23


[![][1]][2] Фондовый рынок — масштабная и сложная область знаний. В последние пару десятилетий активно развиваются различные технологии биржевой торговли. Разобраться в устройстве фондового рынка, работающих на нем законов и принципов, а также используемых различными игроками технологиями — совсем непросто. В нашем сегодняшнем материале — подборка из 40 книг и образовательных, которые помогут лучше подготовиться к началу работы на фондовом рынке и написанию механических торговых систем. [Читать дальше →][3]

[1]: https://habrastorage.org/files/d6e/8d1/085/d6e8d108584a43e9813b1e79d3612a8e.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/273685/
[3]: http://habrahabr.ru/post/273685/#habracut
#  IBM работает над проектом создания open-source блокчейна для представителей бизнеса
habrabot (difrex,1) → All  –  05:30:02 2015-12-23


![][1] В марте корпорация IBM провела ряд неформальных встреч с представителями Федерального резерва США. Цель этих встреч — изучение возможности создания блокчейна с открытым кодом для финансовых сервисов и институтов. Сейчас эта работа уже ведется, проект постепенно реализуется. IBM объявила о том, что выполнение такого проекта ведется с привлечением партнеров, в частности, сообщества Linux. Сам проект получил название Open Ledger, а работать с ним будут такие финансовые гиганты как Wells Fargo, JP Morgan, Лондонская фондовая биржа и другие организации. Также в Open Ledger Project принимают участие блокчейн-стартап Digital Asset, компании Cisco и Intel. Проект представляет собой альтернативную блокчейн-систему, которая не зависит от Bitcoin или любой другой криптовалюты. Open Ledger будет представлять собой библиотеку разработчика, используя которую, компании смогут создавать собственные решения на базе распределенного реестра. Если возникнет такая необходимость, разработчик сможет работать с открытыми блокчейнами Bitcoin и Ethereum, подключив их к своей системе. [Читать дальше →][2]

[1]: https://habrastorage.org/files/5b3/44b/e37/5b344be37c4e44e38ead631c02ed0e25.jpg
[2]: http://habrahabr.ru/post/273747/#habracut
#  Java вместо Groovy
habrabot (difrex,1) → All  –  22:00:04 2015-12-22


Вдруг оказывается, что в проекте нужны скрипты и возникает вопрос что лучше эволюция или революция? Но даже попытка внедрить груви может провалиться в легаси проекте с консервативным коллективом. И руководство может найти еще десяток причин не пропустить груви в проект. Хоть groovy гораздо проще и ближе программисту знающему java, чем та же scala. ![][1] Но даже в этом случае можно использовать динамически компилируемые скрипты в проекте. Научимся компилировать java код динамически в памяти и запускать его в jvm, использовать в нем динамически загружаемыме библиотеки из maven. Хотелось бы написать как можно меньше кода для этого и чтобы процесс использования был максимально прост. Да и еще бы не хотелось надеяться на доступность tools.jar нашей пограмме. [Для заинтересовавшихся как можно это сделать...][2]

[1]: https://habrastorage.org/files/869/d88/762/869d88762a294e60a72ad3942253e957.png
[2]: http://habrahabr.ru/post/273683/#habracut
#  Тонкий клиент HP в качестве домашнего роутера и файл-сервера
habrabot (difrex,1) → All  –  19:30:03 2015-12-22


С момента публикации на Geektimes [первой части][1] статьи, кое-что изменилось. Я обновил тонкий клиент на **HP t610 Plus** и перешел на **CentOS 7**. Поэтому, публикую эту статью не как продолжение предыдущей, а как новую. ![][2] [Читать дальше →][3]

[1]: http://geektimes.ru/post/250630/
[2]: https://habrastorage.org/files/6f2/000/c70/6f2000c702c9410282eef17066019b7d.jpg
[3]: http://habrahabr.ru/post/273547/#habracut
#  Google прекращает поддержку SHA-1 сертификатов вслед за Mozilla и Microsoft
habrabot (difrex,1) → All  –  18:00:04 2015-12-22


![][1] Не так давно [корпорация Microsoft объявила][2] о скором завершении поддержки TLS и SSL сертификатов, где используется алгоритм хэширования SHA-1. Перед этим аналогичное заявление сделало и руководство Mozilla. Сейчас и корпорация Google [решила поступить][3] таким же образом, прекратив поддержку SHA-1 до 1 января 2017 года. Проблема состоит в том, что в ближайшем будущем не будет никаких проблем с подбором коллизий для такого алгоритма хэширования. Вычислительная техника становится все мощнее, облачные сервисы развиваются и подобная операция уже не будет слишком дорогой для злоумышленника. Сейчас корпорация Google уже начала помечать сайты с таким сертификатом как небезопасные. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/ae9/94e/7c7/ae994e7c726f268cdee41cf97b54e089.png
[2]: https://arstechnica.com/security/2015/11/microsoft-considers-blocking-sha-1-certificates-after-cost-of-collisions-slashed/
[3]: https://googleonlinesecurity.blogspot.ro/2015/12/an-update-on-sha-1-certificates-in.html
[4]: http://habrahabr.ru/post/273703/#habracut
#  Обзор образовательного набора от Амперки — TETRA
habrabot (difrex,1) → All  –  18:00:04 2015-12-22


![][1] Надавно к нам в хакспейс MakeItLab компания Амперка прислала для тестов свой новый образовательный набор для занятия электроникой — TETRA. Мы уже делали обзор продуктов от Амперки, чем же отличается данный набор? Данный набор объединил лучшие моменты:

* простая сборка элементов (без пайки)
* унифицированные элементы периферии
* удобное крепление периферии
* встроенное Ардуино
* обучающий материал на базе Scratch визуального языка программирования

Удобство набора в том, что сразу после распаковки и подключения компьютера — можно начинать работу — изучать, создавать игры, программы. Обзору набора Tetra и будет посвящён данный пост. Но вначале расскажем как выглядели и когда появились первые советские наборы по электронике («радио-кубики»). [Читать дальше →][2]

[1]: https://habrastorage.org/files/c2d/b5f/6bc/c2db5f6bccca40fcb83eefddcace3cf9.jpg
[2]: http://habrahabr.ru/post/273699/#habracut
#  [Из песочницы] Структура данных 2-3-4 дерево
habrabot (difrex,1) → All  –  11:00:05 2015-12-22


Когда я первый раз столкнулся с темой бинарных деревьев в программировании, то сразу нашел на Хабре ответы почти на все возникшие у меня вопросы, но время шло, вопросов становилось больше и совсем недавно я нашел тему, которую еще не осветили на данном ресурсе — это 2-3-4 деревья. Есть [отличная статья][1] на тему 2-3 деревьев, в которой можно найти ответы на вопросы «Что такое куча?», «Что такое 2-3 деревья», а также информацию про основные операции со структурой, поэтому я не буду повторяться и сразу перейду к главной теме. Итак, главное отличие 2-3-4 деревьев от 2-3 состоит в том, что они могут содержать более трех дочерних узлов, что дает возможность создавать четырехместные узлы (узлы, имеющие четыре дочерних узла и три элемента данных). Можно увидеть отличия визуально на гифке под эти текстом.На первом слайде показано 2-3 дерево, на втором — 2-3-4. ![][2] [Читать дальше →][3]

[1]: http://habrahabr.ru/post/246105/
[2]: https://habrastorage.org/getpro/habr/post_images/fbc/72a/002/fbc72a002ffd2ae51ae115eb8f58692c.gif
[3]: http://habrahabr.ru/post/273687/#habracut
#  Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 22. «Enemies»
habrabot (difrex,1) → All  –  10:30:03 2015-12-22


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция. [MagisterLudi][4]: _«Приношу извинения, под конец года опять началась неразбериха с готовыми главами, выкладываем что есть, не по порядку.»_

#### Глава 22. Враги

_(за перевод спасибо [GrizliK][5] )_ Джонатан Джианноне выучил, что потеря личной жизни это цена за работу с Iceman\`ом. Он работал с таинственным хакером в течение года, в основном приобретая серверы, которые Iceman использовал для сканирования уязвимостей, но все равно был под постоянным электронным королем со стороны Iceman\`а. Однажды, хакер отправил Джианноне ссылку на новость якобы на сайте CNN о компьютерной проблеме в JetBlue, авиакомпании, которая дала отпор вымогательствам Джианноне давным-давно. Джианноне не думая кликнул по ссылке и тогда Iceman опять попал в его компьютер. Сработала атака типа Client-side. Джанноне начал регулярно проверять свой компьютер на наличие вредоносных программ, но все равно не мог отслеживать все вторжения Iceman’а. Макс получил пароль Джанноне от премиальной системы United Airlines и начал отслеживать его перемещения по миру. Джанноне был любителем авиапутешествий, который мог запросто отправиться в полет, только для того, чтобы заработать бонусные мили. Когда он приземлился в международном аэропорту Сан-Франциско, в его мобильном уже находилось текстовое сообщение от Iceman’а. «Почему ты в Сан-Франциско?» Это могло бы показаться забавным, если бы не пугающие перепады настроения Iceman’a. Он мог измениться за секунду — в один день ты будешь для него лучшим другом, в другой он будет уверен, что ты стукач, предатель или еще хуже. Он писал Джианноне длинные спонтанные письма, с жалобами на Криса или других членов сообщества кардеров. [Читать дальше →][6]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/users/magisterludi/
[5]: http://habrahabr.ru/users/grizlik/
[6]: http://habrahabr.ru/post/273519/#habracut
#  [Из песочницы] Asterisk + Huawei E1550 или как не стоит экономить на телефонии
habrabot (difrex,1) → All  –  10:30:03 2015-12-22


Когда я полтора года назад, будучи студентом 4 курса телекоммуникаций, пришел работать в компанию на должность сисадмина, я понял что работы у меня будет очень много, а учить всего нового придется еще больше. Учебу я отодвинул на второй план, а потом и вовсе стал появляться на парах раз в месяц, потому как работы было много, и она была уж точно интереснее того, чему пытались учить в универе. Компания занималась продажами, и естественно здесь оказалось много таких человечков, которых зовут менеджерами по продажам, и им нужно было очень много звонить! В первый же день мне показали существующую систему телефонии. 5 шлюзов VoIP Audiocodes MP-202B и десяток DECT телефонов+ отдельный SIP транк на каждом телефоне. Этими-то телефонами и жонглировали 30 человек весь день. Чё за ..., подумал я и решил поставить Asterisk. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273661/#habracut
#  [Перевод - recovery mode ] Становимся профессиональными PHP разработчиками. Часть 2: Важность других людей
habrabot (difrex,1) → All  –  10:30:03 2015-12-22


_Предлагаю вашему вниманию перевод [второй части][1] цикла статей «Becoming PHP professional»._ **[Первая часть. «Недостающее звено»][2]** А сейчас мы сфокусируемся на системе наставников. По сути, это мое личное мнение, которое формировалось годами, которые я провел в этой сфере, но тем не менее, я бы посоветовал каждому прочитать статью и узнать, как много людей согласятся и не согласятся со мной. [Читать дальше →][3]

[1]: http://www.sitepoint.com/becoming-php-professional-missing-link/
[2]: http://habrahabr.ru/post/273421/
[3]: http://habrahabr.ru/post/273609/#habracut
#  152-ФЗ. ЦОДы, базы данных и уведомления о них
habrabot (difrex,1) → All  –  10:30:03 2015-12-22


Согласно изменениям, внесенным в Федеральный закон 152-ФЗ Федеральным законом от 21.07.2014 N 242-ФЗ, уведомление, направляемое в Роскомнадзор должно содержать:

> 10\.1) сведения о месте нахождения базы данных информации, содержащей персональные данные граждан Российской Федерации;
>
>

До недавнего времени данное требование не дублировалось ни в Административном регламенте Роскомнадзора, ни в формах соответствующих Уведомлений (их две — для подачи в бумажном и в электронном виде — и как ни странно они различны). Но поскольку закон-есть-закон (изменения 152-ФЗ, требующие указывать местонахождение БД с ПДн вступили в силу этим летом), то логично, что Роскомнадзор требовал с операторов указывать эти данные в уведомлении. И естественно это вызывало трудности у операторов, поскольку на вопрос что и где нужно указывать ответить никто не мог. Но все меняется и Минсвязи выпустило Приказ от 28 августа 2015 г. N 315 (ссылки в [pdf][1], [текстовом виде][2]). [Читать дальше →][3]

[1]: http://minjust.consultant.ru/documents/17149?items=1&page=4
[2]: https://normativ.kontur.ru/document?moduleId=1&documentId=263490
[3]: http://habrahabr.ru/post/273657/#habracut
#  Попытка измерить талант провалилась…
habrabot (difrex,1) → All  –  10:30:03 2015-12-22




### Введение

Наверное, вам, как и мне, в течение последних лет, приходилось задумываться o или осуществлять смену места работы. Скорее всего, как и мне, вам иногда приходилось иметь дело с, так называемыми, сервисами «измерения таланта». Будь то [Codility][1] или [CEB][2], в целом суть которых сводится к одному и том уже — проверить ваши навыки в той или иной сфере деятельности. Но выполняют ли они эту задачу и насколько хорошо?.. Давайте рассмотрим несколько доводов и примеров. [Читать дальше →][3]

[1]: https://codility.com
[2]: https://www.cebglobal.com
[3]: http://habrahabr.ru/post/273669/#habracut
#  Разработка языков программирования и компиляторов в СССР
habrabot (difrex,1) → All  –  10:00:03 2015-12-22


_Идеальный язык программирования — это такая же недостижимая мечта, как и идеальная жизнь. Но стремление к совершенству приводит к появлению вещей, которые делают нашу жизнь лучше. Скептики могут увидеть в этом изобретение очередного велосипеда. Но и это не бывает напрасным: если очередной велосипед не стал лучше прежнего, то сам процесс улучшает изобретателей. Велосипед может быть забыт и выкинут, а вот изобретатели приобретут инженерный опыт. _ ![][1]

### Программирующая Программа — первый компилятор

Основоположником информатики в СССР, в частности раздела автоматизации программирования, является Алексей Андреевич Ляпунов, первым предложивший рассматривать программу как последовательность чередующихся этапов, на которых выполняется некая обработка данных. Этап Ляпунов предложил назвать оператором, а схемой счета — совокупность операторов и логических условий. Схема и совокупность спецификаций каждого оператора — это программа. [читать дальше][2]

[1]: https://habrastorage.org/files/e1e/e5e/b1a/e1ee5eb1a8974f98b40b319b63d9bebf.jpg
[2]: http://habrahabr.ru/post/273665/#habracut
#  Мысли вслух о TypeScript
habrabot (difrex,1) → All  –  05:30:02 2015-12-22


Прошло уже некоторое время, как я впервые познакомился и подружился с TypeScript. В те времена версия еще [не перевалила за единицу][1]. А недавно вышел [релиз 1.7][2]. За это время мы привыкли друг к другу и пережили много успехов и разочарований. Мне хочется немного поделиться своими впечатлениями и размышлениями по поводу этого диалекта JavaScript как самостоятельного языка. Идея подобного поста возникла у меня спонтанно при обсуждении очередного холивара с коллегами. Итак, что же такое собственно [TypeScript][3] — наверно уже ни для кого не секрет. Но все же, хочу упомянуть, что это попытка Microsoft принести в JavaScript статическую типизацию. Примеры кода и задачи, которые он позволяет решать, можно посмотреть на [официальном сайте][4] или [здесь на хабре][5], благо статей написано уже не мало. На хабре уже есть статья подобного рода [TypeScript: общие впечатления][6], поэтому, чтобы не повторяться, я решил выделить плюсы и минусы работы с языком, опираясь на свой личный опыт. Вспомнить и перечислить плюсы и минусы языка оказалось довольно непросто. [Читать дальше →][7]

[1]: http://blogs.msdn.com/b/typescript/archive/2013/12/05/announcing-typescript-0-9-5.aspx
[2]: http://blogs.msdn.com/b/typescript/archive/2015/11/30/announcing-typescript-1-7.aspx
[3]: http://www.typescriptlang.org/
[4]: http://www.typescriptlang.org/Handbook
[5]: http://habrahabr.ru/search/?q=typescript&target_type=posts&order_by=relevance
[6]: http://habrahabr.ru/post/258957/
[7]: http://habrahabr.ru/post/272055/#habracut
#  Автономный робот бегает по «восьмерке»
habrabot (difrex,1) → All  –  05:00:02 2015-12-22


Добрый день, коллеги, Продолжая ранее опубликованную [статью][1] про высокоточную систему навигации (+-2см) внутри помещений, мы хотели бы показать, как простой робот на ее основе может кататься по какому угодно сложному маршруту совершенно автономно. На видео ниже мы повесили мобильный маячок на простого робота и отправили его гулять по маршруту в виде восьмерки, чем он может и заниматься часами:




Или можно его отправить бегать по прямоугольнику:




[Читать дальше →][2]

[1]: http://habrahabr.ru/post/254361/
[2]: http://habrahabr.ru/post/273635/#habracut
#  Moscow Python Meetup №31
habrabot (difrex,1) → All  –  20:30:03 2015-12-21


22-го декабря на площадке ФРИИ City Hall состоится 31-й Новогодний MoscowPython-митап. На встрече будет объявлено о некоторых «сюрпризах», которые мы готовим в следующем году, ну и конечно, как обычно мы услышим интересные и полезные доклады, включая доклад одного из евангелистов сообщества. ![][1] [Подробнее][2]

[1]: https://habrastorage.org/files/7ac/a87/406/7aca874065e541f89f16ea358348a4dc.jpg
[2]: http://habrahabr.ru/post/273101/#habracut
#  [Перевод] Книга Стивена Вольфрама «Элементарное введение в язык Wolfram Language»
habrabot (difrex,1) → All  –  13:00:06 2015-12-21






_Перевод поста Stephen Wolfram "[I Wrote a Book—To Teach the Wolfram Language][1]". Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][2] за помощь в переводе и подготовке публикации_

----

Книга «Элементарное введение в язык Wolfram Language» доступна для вас в [печатной форме][3], **[бесплатно в Интернете][4]**, а также в [других формах][5]. [![][6]][7] Я не был уверен, что когда-нибудь напишу еще одну книгу. Моя последняя книга — [**Новый вид науки**][8] — заняла у меня более десяти лет интенсивной сосредоточенной работы и является моим [крупнейшим проектом][9] из всех, что я когда-либо делал. Но некоторое время назад я понял, что мне придется написать еще одну книгу — такую, которая бы познакомила людей, не знакомых с программированием, с языком [Wolfram Language][10] и способами мышления в вычислительной сфере, которые преподносит этот язык. Результат — книга **Элементарное введение в язык Wolfram Language**, вышедшая сегодня [в печать][11]. Она также [свободно доступна в Интернете][12], и в [других формах][13]. [![][14]][15] [Читать дальше →][16]

[1]: http://blog.wolfram.com/2015/12/08/i-wrote-a-book-to-teach-the-wolfram-language/
[2]: http://habrahabr.ru/users/kirillguzenko/
[3]: https://www.wolfram.com/books/profile.cgi?id=9239
[4]: http://www.wolfram.com/language/elementary-introduction/

>> Читать далее
#  Распараллеливание алгоритма Штрассена на Intel® Xeon Phi(TM)
habrabot (difrex,1) → All  –  13:00:06 2015-12-21


Сопроцессоры Intel Xeon Phi(TM) представляют собой PCI Express устройство и имеют x86 архитектуру, обеспечивая высокую пиковую производительности — до 1,2 терафлопс (триллион операций с плавающей запятой в секунду) двойной точности на сопроцессор. Xeon Phi(TM) может обеспечивать одновременную работу до 244 потоков, и это нужно учитывать при программировании для достижения максимальной эффективности. Недавно мы вместе с компанией Intel проводили небольшое исследование эффективности реализации алгоритма Штрассена для сопроцессора Intel Xeon Phi(TM). Кому интересны тонкости работы с этим устройством и просто любящих параллельное программирование, прошу под кат.



[Читать дальше →][1]

[1]: http://habrahabr.ru/post/273585/#habracut
#  Забытое слово: environment
habrabot (difrex,1) → All  –  09:00:05 2015-12-21


Давным-давно, когда компьютеры были большими, а программы маленькими, использовалось такое важное понятие, как Environment. Этот хороший термин уже утратил зарезервированный смысл, но не потерял своей актуальности. В связи с широким использованием виртуализации, информация об операционном окружении стала предметом обсуждения и в чем-то даже спортивного интереса среди программистов. Поучаствовать в этом мы решили с «железным» аргументом — инструкцией CPUID. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273555/#habracut
#  [Перевод] Перевод: Чему я научился, разрабатывая API для облачной платформы Microsoft
habrabot (difrex,1) → All  –  08:00:04 2015-12-21


Вашему вниманию предлагается перевод поста о том, как разрабатывался Windows Azure API: о трудностях, удачных и неудачных решениях, сделанных выводах. Далее — текст автора. После разговора с моим коллегой [по работе][1] о REST API мне пришла в голову идея рассказать о своем опыте организации и работы команды, которая создала Windows Azure Service Management API. На написание этого поста меня вдохновили такие великолепные статьи в жанре “чему я научился” как [эта][2] за авторством Foursquare и [эта][3] от Даниэля Джакобса из Netflix. Предупреждение: Все рассказанное под катом — мое личное мнение. Я даже не уверен, что остальные участники команды со мной согласны. И я точно знаю, что некоторые из высказанных мыслей довольно противоречивы. [ознакомиться с личным мнением автора][4]

[1]: http://www.linkedin.com/in/sriramkrishnan01
[2]: http://engineering.foursquare.com/2011/07/08/apiv2-woulda-coulda-shoulda/
[3]: http://techblog.netflix.com/2011/02/redesigning-netflix-api.html
[4]: http://habrahabr.ru/post/273533/#habracut
#  [Перевод] Перевод: Чему я научился, разрабатывая API для облачной платформы Mictosoft
habrabot (difrex,1) → All  –  07:00:03 2015-12-21


Вашему вниманию предлагается перевод поста о том, как разрабатывался Windows Azure API: о трудностях, удачных и неудачных решениях, сделанных выводах. Далее — текст автора. После разговора с моим коллегой [по работе][1] о REST API мне пришла в голову идея рассказать о своем опыте организации и работы команды, которая создала Windows Azure Service Management API. На написание этого поста меня вдохновили такие великолепные статьи в жанре “чему я научился” как [эта][2] за авторством Foursquare и [эта][3] от Даниэля Джакобса из Netflix. Предупреждение: Все рассказанное под катом — мое личное мнение. Я даже не уверен, что остальные участники команды со мной согласны. И я точно знаю, что некоторые из высказанных мыслей довольно противоречивы. [ознакомиться с личным мнением автора][4]

[1]: http://www.linkedin.com/in/sriramkrishnan01
[2]: http://engineering.foursquare.com/2011/07/08/apiv2-woulda-coulda-shoulda/
[3]: http://techblog.netflix.com/2011/02/redesigning-netflix-api.html
[4]: http://habrahabr.ru/post/273533/#habracut
#  Symfony2 Voters и Doctrine Filters на страже безопасности
habrabot (difrex,1) → All  –  06:30:05 2015-12-21


Все началось, когда я настраивал систему безопасности одной CRM. Как это часто бывает, в ней были пользователи с разными уровнями доступа к основным данным (назовем их entities). Вид основного грида у них был одинаковый, необходима была гибкость настроек доступа к entities. Сперва я подумал об ACL, но… [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273477/#habracut
#  Еще одна «критическая» «уязвимость» «VPN» и почему Port Fail — ерунда
habrabot (difrex,1) → All  –  20:30:02 2015-12-20


Утро 26 ноября началось для меня с интересной новости — ребята из Perfect Privacy [опубликовали информацию об уязвимости Port Fail][1], которая позволяет раскрывать IP-адрес клиентов VPN-сервисов с функцией проброса портов. Я немного понегодовал из-за того, что ее назвали уязвимостью, т.к. это никакая не уязвимость, а особенность маршрутизации: трафик до IP-адреса VPN-сервера всегда идет напрямую, в обход VPN. Вполне очевидная вещь, подумал я, о которой должен знать любой сетевой администратор. Заметка вменяемая и технически грамотная, придраться можно только к слову vulnerability (уязвимость). Но потом за дело взялись СМИ, и пошло-поехало… ![image][2] _Критическая уязвимость во всех протоколах VPN на всех операционных системах. У-у-у, как страшно!_ В новости, опубликованной на [Geektimes][3], изначально имевшей желтый заголовок, было сказано о награде в $5000 за найденную «уязвимость» от Private Internet Access — одного из крупнейших VPN-сервисов. «$5000 за типичную, совершенно очевидную любому сетевику вещь?» — подумал я — «Невероятно!», и высказал свое негодование по этому поводу в комментариях, попутно [расписав еще одну, не менее очевидную, особенность маршрутизации][4], с которой сталкивался любой настраивавший работу двух и более интернет-провайдеров на одном компьютере: ответ на входящий запрос не обязательно уйдет через этого же провайдера и с этим же IP, чего запросившая сторона совсем не ожидает. Если мы представим, что вместо второго провайдера у нас VPN-соединение, то отправив запрос на IP-адрес нашего провайдера, при определенных условиях может получиться так, что ответ на наш запрос мы получим с IP VPN-сервера. ![image][5] [Читать дальше →][6]

[1]: https://www.perfect-privacy.com/blog/2015/11/26/ip-leak-vulnerability-affecting-vpn-providers-with-port-forwarding/
[2]: https://habrastorage.org/getpro/habr/post_images/702/fa3/48f/702fa348fa073421bc73a884a2ff5948.png
[3]: http://geektimes.ru/post/266602/
[4]: http://geektimes.ru/post/266602/#comment_8890790
[5]: https://habrastorage.org/getpro/habr/post_images/36d/d38/97e/36dd3897ef8a8b17e54f19f14c43132c.png
[6]: http://habrahabr.ru/post/273523/#habracut
#  День рождения основателя старейшего хакерского клуба Chaos Computer Club
habrabot (difrex,1) → All  –  17:30:03 2015-12-20


![][1] 20 декабря 1951 года родился Херварт Холланд-Мориц, известный как Вау Холланд (Wau Holland), со-основатель [Chaos Computer Club][2] (ССС) в 1981 году, — это один из старейших в мире хакерских клубов. ![image][3]ССС получил всемирную известность, когда его члены обнародовали уязвимости в системе безопасности немецкого телетекстового оператора [Bildschirmtext][4] (Btx). Хакеры получили 134 000 немецких марок от банка, многократно получая доступ к его странице на Btx. Через несколько дней хакеры вернули деньги. Вау Холланд был блестящим оратором, человеком с большим чувством юмора, стоящим на позициях открытости и свободы информационного обмена. [Читать дальше →][5]

[1]: https://habrastorage.org/files/d8f/ff9/dd9/d8fff9dd9c464ff9ba68fae305e622d6.jpg
[2]: https://ru.wikipedia.org/wiki/Chaos_Computer_Club
[3]: https://habrastorage.org/getpro/habr/post_images/93b/5ca/6ad/93b5ca6adb05dbdfc7b4db8f5716aea6.jpg
[4]: https://de.wikipedia.org/wiki/Bildschirmtext
[5]: http://habrahabr.ru/post/273407/#habracut
#  [Перевод] Как мы перешли со Scala на Go
habrabot (difrex,1) → All  –  13:00:02 2015-12-20


_Перевод [статьи][1] технического директора компании CrowdStrike, о том, как и почему они перешли со Scala на Go по мере роста компании с 5 до 200+ человек._ Scala долгое время была частью стека нашей компании CrowdStrike, по сути даже главным языком. Я помогал внедрять Scala когда мы начали разрабатывать наш софт в 2012-м году. На самом деле, это было даже одной из главных причин моего перехода в CrowdStrike. Несколько основных разработчиков были заинтересованы во внедрении Scala, так что это был хороший вариант для всех. Я перешёл из компании Gravity, которая достаточно активно использовала Scala. Это был основной язык в компании. Я привык к нему, мне он нравился, я видел его мощь и был уверен, что смогу предотвратить некоторые из сложностей, которые я видел в Scala, по мере того, как CrowdStrike будет расти. Мы делали высоконагруженную аналитику, batch-задачи на Hadoop и наш Chief Architect (привет, Биссел!) использовал лямбда-архитектуру задолго до того, как это стало модно. Недавняя цитата от одного из наших senior-разработчиков заставила меня таки написать этот пост, описывающий, почему мы перевели большую часть нашего стека на Go, и почему новые сервисы мы по-умолчанию теперь пишем именно на Go. [Читать дальше →][2]

[1]: http://jimplush.com/talk/2015/12/19/moving-a-team-from-scala-to-golang/#1
[2]: http://habrahabr.ru/post/273535/#habracut
#  [Перевод] Умножение по методу русских крестьян
habrabot (difrex,1) → All  –  08:00:03 2015-12-20


Иногда этот метод называют «крестьянское умножение», иногда «древнеегипетское», иногда «эфиопское», иногда «умножение через удвоение и деление пополам». Некоторым он хорошо известен, некоторым – непонятен, но при этом он достаточно полезен и может использоваться не только для умножения, но и для возведения в степень и расчётов матриц.

#### Алгоритм



13 x 19 -> 0
6 38 19
3 76 ->
1 152 -> 95
0 304 247




>> Читать далее
#  Открытая лекция: задача выполнимости булевых формул
habrabot (difrex,1) → All  –  23:30:06 2015-12-19


![image][1]

###### (Скриншот из презентации: [slideplayer.com/slide/3238789][2])

Приглашаем всех на открытую лекцию [Computer Science центра][3], посвященную задаче выполнимости булевых формул — одной из самых известных и важных алгоритмических задач. Лекция пройдёт в рамках встречи со слушателями онлайн-курса [«Алгоритмы: теория и практика. Методы»][4]. Время и место проведения: 25 декабря, 19:00, БЦ Таймс (г. Санкт-Петербург, ул. Кантемировская 2А, 4 этаж). Участие бесплатное, но требуется регистрация: [goo.gl/IiNvV8][5] Задача выполнимости — каноническая трудная задача, по которой проводится огромное количество исследований: как практических, так и теоретических. В частности, этой задаче посвящена ежегодная международная конференция. Каждый год проходят соревнования программ для данной задачи (так называемых сат-солверов). Такие программы активно используются во многих прикладных областях. Буквально несколько месяцев назад Дональд Кнут дописал том 4B монографии «Искусство программирования», треть которого посвящена задаче выполнимости. [Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/61a/e8c/ff1/61ae8cff182b31802a18965f4c1897dd.png
[2]: http://slideplayer.com/slide/3238789/
[3]: http://compscicenter.ru
[4]: http://stepic.org/217
[5]: https://goo.gl/IiNvV8
[6]: http://habrahabr.ru/post/273505/#habracut
#  [Перевод] Пол Грэм: Слово «хакер»
habrabot (difrex,1) → All  –  19:30:02 2015-12-19




> _«Дух сопротивления правительству так ценен в определенных случаях, что мне бы хотелось, чтобы ему никогда не давали погаснуть»._
>
> Томас Джефферсон, отец-основатель.

![image][1] _(На картинке изображены Стив Джобс и Стив Возняк с их проектом «blue box». Фото сделано Маргрет Возняк. Предоставлено с разрешения Стива Возняка.)_ Оригинал — [http://www.paulgraham.com/gba.html][2] Перевод — Щёкотова Яна _(предыдущий перевод — [«Месть Ботанов»][3])_ **Слово «Хакер»** Апрель, 2004 В СМИ слово «хакер» используют для описания того, кто взламывает компьютеры. В среде разработчиков программного обеспечения это слово означает искусного программиста. Но между этими двумя понятиями существует связь. Для программистов «хакер» ассоциируется с мастерством в самом буквальном смысле слова: некто, кто может заставить компьютер делать то, [что ему заблагорассудится][4], хочет того сам компьютер или нет. В дополнение к этой путанице укажем, что существительное «hack» (англ.) также имеет два значения. Это слово может быть как комплиментом, так и оскорблением. Слово «hack» используется для описания ужасного результата вашей деятельности. Но когда вы совершаете что-то так талантливо, что каким-то образом побеждаете систему, то это также называют «hack». Данное слово употребляется чаще всего в первом значении, а не во втором, вероятно, потому, что плохие решения преобладают над блестящими. Хотите — верьте, хотите — нет, но эти два значения слова «hack» также связаны. У плохих и оригинальных решений есть нечто общее: они оба идут вразрез с правилами. И существует постепенный переход от нарушения правил, граничащего с безобразностью (использование клейкой ленты для присоединения чего-либо к вашему велосипеду), к такому нарушению правил, что сродни блестяще оригинальному (отказ от Евклидового пространства). [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/242/2e2/0f2/2422e20f210067d58caf51a725151e3f.jpg
[2]: http://www.paulgraham.com/gba.html
[3]: http://habrahabr.ru/company/edison/blog/271103/
[4]: http://habrahabr.ru/company/edison/blog/273295/
[5]: http://habrahabr.ru/post/273511/#habracut
#  Укрощаем UEFI SecureBoot
habrabot (difrex,1) → All  –  07:00:03 2015-12-19


![][1] Данные обещания надо выполнять, тем более, если они сделаны сначала в [заключительной части опуса о безопасности UEFI][2], а потом повторены [со сцены ZeroNights 2015][3], поэтому сегодня поговорим о том, как заставить UEFI SecureBoot работать не на благо Microsoft, как это чаще всего настроено по умолчанию, а на благо нас с вами. Если вам интересно, как сгенерировать свои обственные ключи для SecureBoot, как установить их вместо стандартных (или вместе с ними), как подписать ваш любимый EFI-загрузчик, как запретить загрузку неподписанного или подписанного чужими ключами кода, как выглядит интерфейс для настройки SecureBoot у AMI, Insyde и Phoenix и почему это, по большому счету, совершенно не важно — добро пожаловать под кат, но опасайтесь большого количества картинок и длинных консольных команд. [Войти в клетку][4]

[1]: https://habrastorage.org/files/dc9/f31/519/dc9f315198d244b8aaef22deb80f2671.jpg
[2]: http://habrahabr.ru/post/268423/
[3]: https://twitter.com/ZeroNights/status/669864406512222208
[4]: http://habrahabr.ru/post/273497/#habracut
#  Facebook угрожает специалисту по безопасности, взломавшему Instagram
habrabot (difrex,1) → All  –  22:00:01 2015-12-18


Независимый специалист по безопасности Уэсли Вайнберг (Wesley Wineberg) подвергся серьёзному давлению со стороны компании Facebook. Она не заплатила за найденные уязвимости на сервере Instagram, да ещё угрожает судебным иском. Уэсли [нашёл уязвимость][1] в инфраструктуре Instagram, с помощью которой скачал практически всё ценное, что есть на серверах Instagram: исходный код последней версии, SSL-сертификаты и приватные ключи для Instagram.com, ключи для подписи куков аутентификации, учётные данные от почтового сервера и ключи для некоторых других продуктов, в том числе для подписи мобильных приложений под iOS и Android. ![][2] [Читать дальше →][3]

[1]: http://www.exfiltrated.com/research-Instagram-RCE.php
[2]: https://habrastorage.org/files/b3a/835/298/b3a8352981c44c6d944c2614d7547bea.png
[3]: http://habrahabr.ru/post/273491/#habracut
#  [recovery mode] Бэкдоры в файрволах Juniper
habrabot (difrex,1) → All  –  20:30:03 2015-12-18


Если кто-то еще не слышал, Juniper опубликовал заявление: обнаружен код в ScreenOS версий с 6.2.0r15 по 6.2.0r18 и с 6.3.0r12 по 6.3.0r20, позволяющий обладающим соответствующей информацией лицам сделать две вещи: 1) Аутентифицироваться на устройстве по ssh 2) Слушать VPN трафик Обнаружить проникновение может быть непросто. Затронута только ScreenOS. SRX в порядке. Наверное. Подробнее: [forums.juniper.net/t5/Security-Incident-Response/Important-Announcement-about-ScreenOS/ba-p/285554][1] [kb.juniper.net/InfoCenter/index?page=content&id=JSA10713][2] Есть какие-то [сообщения][3] о том, что третьими лицами подобраны ключи к этим бекдорам. Не исключена публикация експлоитов в самом недалеком будущем. Например, прямо на этих выходных. Есть патчи от вендора и есть смысл экстренно обновляться или хотя бы блокировать доступ из недоверенных сетей по ssh, если кто-то этого еще не сделал. [][4]

[1]: http://forums.juniper.net/t5/Security-Incident-Response/Important-Announcement-about-ScreenOS/ba-p/285554
[2]: https://kb.juniper.net/InfoCenter/index?page=content&id=JSA10713
[3]: https://twitter.com/cryptoron/status/677900647560253442
[4]: http://habrahabr.ru/post/273489/#habracut
#  Re: Комментарий к «Как попасть на дачу президента в пять часов утра»
vit01 (mira, 1) → habrabot  –  14:51:08 2015-12-18

Статью уже и удалили.

Забил цитату в поисковик, и вот: http://www.pvsm.ru/sertifikatsiya/106643
#  Комментарий к «Как попасть на дачу президента в пять часов утра»
habrabot (difrex,1) → All  –  14:00:04 2015-12-18


![][1]Было бы странно, [заниматься поиском ошибок][2] в программах и при этом пройти мимо [этой статьи][3]. Хочу оставить ряд комментариев. Основной их смысл, что это не похоже на страшные закладки. Мне этот код больше напоминает какой-то тестовый прототип, а не готовое приложение. Так что возможно не всё так страшно, как преподносит автор в статье. Во-первых, код содержит ошибку и случайные числа используются всегда. В реальности мимо такого вряд ли прошли в процессе тестировании системы. А во-вторых, существует такое понятие как «сертификация программ». И приведенный фрагмент кода — первый кандидат на обнаружение. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/912/fe8/fae/912fe8fae389015a6a5b381e35f2faa3.png
[2]: http://www.viva64.com/ru/a/0084/
[3]: http://habrahabr.ru/post/273249/
[4]: http://habrahabr.ru/post/273451/#habracut
#  Security Week 51: Zero Day в Joomla, Twitter предупреждает, утечка базы MacKeeper
habrabot (difrex,1) → All  –  14:00:04 2015-12-18


![][1]В предпоследнем эпизоде нашего сериала в этом году обсудим следующие новости: — Twitter рассылает предупреждения пользователям о том, что их возможно атакует какая-то спецслужба. Получателей немного, но некоторые из них так или иначе связаны с темой защиты информации (ну или политическим активизмом на ниве интернета). В том числе предупреждение получила Руна Сандвик, ранее участвовавшая в разработке и продвижении проекта Tor. — В CMS Joomla обнаружена серьезная уязвимость: двухэтапный метод взлома предусматривает внедрение закладки, позволяющей в дальнейшем передавать и запускать на уязвимой системе произвольный код на языке PHP. Уязвимость активно эксплуатировалась минимум за два дня до публикации патча. — Данные о 13 миллионах пользователей набора утилит MacKeeper оказались в открытом доступе. Нет, компанию-разработчика не взломали, имела место _неправильная конфигурация_. Традиционные правила: каждую неделю редакция новостного сайта [Threatpost][2] выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти [по тегу][3]. На следующей неделе — нестандартный топ новостей о безопасности за весь 2015 год. Тем временем можно [вспомнить][4], что произошло в 2014-м. [Читать дальше →][5]

[1]: https://habrastorage.org/files/9f5/de3/887/9f5de388715749b28076a28dd17d0ae8.png
[2]: https://threatpost.ru/
[3]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[4]: http://habrahabr.ru/company/kaspersky/blog/246745/
[5]: http://habrahabr.ru/post/273437/#habracut
#  Оптимизация гиперпараметров в Vowpal Wabbit с помощью нового модуля vw-hyperopt
habrabot (difrex,1) → All  –  14:00:04 2015-12-18


Привет, Хабр! В этой статье речь пойдет о таком не очень приятном аспекте машинного обучения, как оптимизация гиперпараметров. Две недели назад в очень известный и полезный проект [Vowpal Wabbit][1] был влит модуль **vw-hyperopt.py**, умеющий находить хорошие конфигурации гиперпараметров моделей Vowpal Wabbit в пространствах большой размерности. Модуль был разработан внутри DCA (Data-Centric Alliance). [][2]



Для поиска хороших конфигураций vw-hyperopt использует алгоритмы из питоновской библиотеки [Hyperopt][3] и может оптимизировать гиперпараметры адаптивно с помощью метода Tree-Structured Parzen Estimators (TPE). Это позволяет находить лучшие оптимумы, чем простой grid search, при равном количестве итераций. Эта статья будет интересна всем, кто имеет дело с Vowpal Wabbit, и особенно тем, кто досадовал на отсутствие в исходном коде способов тюнинга многочисленных ручек моделей, и либо тюнил их вручную, либо кодил оптимизацию самостоятельно. [Читать дальше →][4]

[1]: https://github.com/JohnLangford/vowpal_wabbit
[2]: http://habrahabr.ru/company/dca/blog/272697/
[3]: https://github.com/hyperopt/hyperopt
[4]: http://habrahabr.ru/post/272697/#habracut
#  Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 25. «Hostile Takeover»
habrabot (difrex,1) → All  –  14:00:04 2015-12-18


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция. Второе дыхание «квест по переводу книги» получил благодаря компании [Edison][4]. [MagisterLudi][5]: _«Приношу извинения, под конец года опять началась неразбериха с готовыми главами, выкладываем что есть, не по порядку.»_

#### Глава 25. «Захват территории»

_(за перевод спасибо fantom)_ _**«В войне самое главное — быстрота: надо овладевать тем, до чего он успел дойти; идти по тому пути, о котором он и не помышляет; нападать там, где он не остерегается.»**_ [«Искусство войны»][6] Сунь Цзы было настольной книгой Макса. Сидя в своём тайном убежище, он набросал план наступления. Было пять англоязычных подпольных кардинговых сайтов, и четыре из них были лишними. Недели ушли на изучение противника: ScandinavianCarding, Vouched, TalkCash и, его главный враг, — DarkMarket. Этот английский сайт появился на месяц раньше CardersMarket и прилагал большие усилия, добиваясь репутации зоны, защищенной от взлома. В известном смысле, планы Макса проникнуть на другие площадки, строились на его положительных качествах. На руку ему играло, что он не был жадным, и что он делал бизнес на CardersMarket. Теневая кардинговая сцена была разрушена, а когда Макс сталкивался с чем-то разбитым, он не мог отказаться восстановить это, совсем как делал это несколько лет назад для Пентагона. Играло свою роль и самолюбие. Казалось, весь кардинговый мир думал, что Iceman всего лишь администратор, способный только устанавливать ПО. Макс видел прекрасную возможность показать кардерам, как они ошибались. На DarkMarket нашлось слабое место. Британский кардер JiLsi пользовался этим сайтом. Он использовал один и тот же пароль: “MSR206” везде, включая и CardersMarket, где Макс имел доступ ко всем паролям. Теперь Макс мог проникнуть и хозяйничать на DarkMarket. [Читать дальше →][7]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://www.edsd.ru
[5]: http://habrahabr.ru/users/magisterludi/
[6]: http://militera.lib.ru/science/sun-tszy/index.html
[7]: http://habrahabr.ru/post/273357/#habracut
#  Синхронный код в асинхронном Twisted, или сказ о том, как скрестить ежа с ужом
habrabot (difrex,1) → All  –  14:00:04 2015-12-18




##### Всё хорошо

[Twisted][1] — асинхронный (событийно-ориентированный) фреймворк, написанный на Python. Мощное средство для быстрой разработки сетевых (и не только) сервисов. Он разработан с использованием паттерна проектирования [Reactor][2]. Сервисы созданные с использованием Twisted быстры и надежны, фреймворк позволяет не писать макаронный код, насыщенный непонятными коллбэками, имеет внутри себя красивые хелперы (Deferred, Transport, Protocol etc). Другими словами, делает нашу жизнь бекенд разработчиков лучше.

##### Но есть и проблемы

Основная проблема в том, что многочисленные, надежные, оттестированные, удобные библиотеки, использующие в своей основе синхронные модули Python (socket, os, ssl, time, select, thread, subprocess, sys, signal etc), просто возьмут и заблокируют нам основной процесс, цикл реактора и наступит беда. Такими библиотеками, к примеру, являются psycopg2, request, mysql и другие. В частности, psycopg2 используется в Django ORM как один из бекендов баз данных.

##### Что же делать?

Есть три пути. Сложный, приемлемый и хороший. Сложный — реализовать аналог библиотеки на Twisted. Приемлемый — использовать deferToThread и запускать синхронный код в отдельных потоках (используя пул потоков реализованный в Twisted). О хорошем пути (по моему мнению) и пойдет речь в заметке. [![Скрестить ежа с ужом][3]][4] [Читать дальше →][5]


>> Читать далее
#  [Из песочницы] Сборка XGBoost для Python под Windows
habrabot (difrex,1) → All  –  14:00:04 2015-12-18


_Windows is so evil that consumes extra energy to make the things running._ ![][1] Библиотека [XGBoost][2] гремит на всех соревнованиях по машинному обучению и помогает завоёвывать призовые места. Однако, стать обладателем этого пакета для Python под Windows не так просто. Процесс установки скудно описан на [GitHub][3] и немногим шире на[ форуме Kaggle][4]. Поэтому попробую описать пошагово и более подробно. Надеюсь это поможет сохранить много времени неопытным пользователям. [Читать дальше →][5]

[1]: https://habrastorage.org/files/420/763/71c/42076371c9634d68b5a32622c70cb1bf.png
[2]: https://github.com/dmlc/xgboost
[3]: https://github.com/dmlc/xgboost/tree/master/windows
[4]: https://www.kaggle.com/c/otto-group-product-classification-challenge/forums/t/13043/run-xgboost-from-windows-and-python
[5]: http://habrahabr.ru/post/273363/#habracut
#  Разработка плагинов для Atlassian JIRA
habrabot (difrex,1) → All  –  12:30:04 2015-12-18


![][1] Все мы в IT сталкивались с системами отслеживания ошибок — с так называемыми баг-трекерами, с issue-трекерами. Один из популярных продуктов такого рода — Atlassian JIRA. На самом деле, Atlassian JIRA — это больше, чем просто система отслеживания ошибок. JIRA может использоваться довольно широко — в том числе и для управления проектами. Можно сказать, что JIRA — это система для отслеживания статуса задач. Задачи могут быть разными: это сбор требований, тестирование, непосредственно разработка и т. д. Я видел даже попытки подсадить на JIRA бухгалтеров — а что, мол, будет у нас agile-бухгалтерия! На официальном же сайте JIRA описывается следующим образом: _JIRA is the tracker for teams planning and building great products. Thousands of teams choose JIRA to capture and organize issues, assign work, and follow team activity. At your desk or on the go with the new mobile interface, JIRA helps your team get the job done. В общем, основная идея JIRA в том, что она позволяет планировать работу. _ В этой статье я расскажу о том, как разрабатывать дополнения к этой программе. Впрочем, может возникнуть вопрос — а зачем разрабатывать дополнения для JIRA. Поэтому давайте рассмотрим, какие дополнения бывают. [Читать дальше →][2]

[1]: https://habrastorage.org/files/865/7fe/e45/8657fee4526e4623bedaa8553f87f07f.png
[2]: http://habrahabr.ru/post/273429/#habracut
#  Дети и родители в Сети: история взлома сервисов VTech
habrabot (difrex,1) → All  –  11:30:03 2015-12-18


![][1] Утечка данных пользователей различных сервисов из-за взлома последних — далеко не редкость, к сожалению. Стоит только вспомнить нашумевший взлом сервиса измен Ashley Medison, когда в Сеть утекли данные миллионов пользователей. Огромное количество пользователей оказались просто ботами, но это ничего не меняет — каждый из нас уязвим. В Сеть утекают даже данные пользователей, которые следят за своими учетными записями, придумывают сложные пароли, стараются предусмотреть негативные сценарии. Но утечки все равно происходят. Причем интересный нюанс — если о безопасности данных взрослых людей следят все и всюду, то проблема защиты данных детей в Сети как-то не слишком на слуху. А проблем здесь еще больше, ведь дети не слишком хорошо ознакомлены с основами информационной безопасности. А если и да, то взломщики находят иные пути получения данных детишек. В качестве примера можно привести недавний взлом сервисов VTech (производитель детских электронных игрушек), в результате которого в Сеть утекли данные миллионов учетных записей маленьких пользователей. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/9ad/7d0/a28/9ad7d0a288bbe3feb0024f8709815b5a.jpg
[2]: http://habrahabr.ru/post/273423/#habracut
#  Advent of Code
habrabot (difrex,1) → All  –  11:00:04 2015-12-18


Удивлен, что ссылки на [Advent of Code][1] до сих пор не видно на Хабре. ![][2] Если вкратце, то это [рождественский календарь][3], где каждый день открывается по небольшой задачке на программирование. Сегодня пятница, и уже открыто 18 штук — отличный повод размять мозги, или потренироваться в написании программ на новом языке, до изучения которого никак не доходили руки. [Читать дальше →][4]

[1]: http://adventofcode.com/
[2]: https://habrastorage.org/getpro/habr/post_images/39a/fe4/15b/39afe415b2976f3ee122adb61d6b5113.png
[3]: https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C
[4]: http://habrahabr.ru/post/273417/#habracut
#  [Из песочницы] Быстро поднятое не считается упавшим. Повышаем отказоустойчивость встраиваемых систем
habrabot (difrex,1) → All  –  10:00:03 2015-12-18


![image][1] Год назад выполнял довольно интересную работу по разработке встраиваемого компьютера для одного предприятия, занимающегося электроникой. Компьютер ничего принципиально интересного не представлял: процессор Cortex A-8, работающий на субгигагерцовых частотах, 512Mb DDR3, 1Gb NAND, легковесная сборка Linux. Однако устройству, в который компьютер встраивался, а значит и ему самому, предстояло работать в довольно жестких условиях. Широкий температурный диапазон (от -40 до +85 градусов Цельсия), влагостойкость, стойкость к электромагнитным излучениям, киловольтные импульсы по питанию, защита от статики в 4 кВ и много чего интересного, что хорошо описано в различных ГОСТах на спецтехнику, – это все про него. Одно из основных требований заказчика – срок выработки на отказ не менее 10 лет. При этом производитель обеспечивает гарантийный ремонт изделия в течении пяти лет, потому вопрос не риторический, а денежный и серьезный. В изделие была заложена соответствующая элементная база. Прибор с честью прошел испытания и получил требуемые сертификаты, но разговор не про то. Проблемы начались когда была изготовлена установочная партия, и устройства разошлись по отделам и КБ для создания прикладного ПО. Пошли возвраты с формулировкой: «Чего-то не загружается». [Читать дальше →][2]

[1]: https://habrastorage.org/files/054/f4a/a9d/054f4aa9dd7648678e0f2fa37e02c387.png
[2]: http://habrahabr.ru/post/273425/#habracut
#  Шорткаты в JavaScript
habrabot (difrex,1) → All  –  08:00:02 2015-12-18


![][1] Изучая любой язык программирования, полезно знать о его особенностях и уметь эффективно использовать языковые конструкции. Хочу поделиться с вами шорткатами для JS. Эти сокращения в некоторых случаях могут облегчить чтение кода, а также существенно уменьшить его количество. Однако следует помнить, что они могут сыграть с вами злую шутку и, если использовать их повсеместно, ваш код перестанет быть читаемым и поддерживаемым. [Читать дальше →][2]

[1]: https://habrastorage.org/files/2d8/17b/92b/2d817b92b57a4d54925e3557ef8d0055.jpg
[2]: http://habrahabr.ru/post/273267/#habracut
#  Python->Cython->C++, да и COM в придачу: написание фреймворка для автотестов
habrabot (difrex,1) → All  –  07:00:03 2015-12-18


Я думаю все в курсе о пользе автотестов. Они помогают держать код в работоспособном состоянии даже при существенных изменениях. Так же это может избавить тестировщиков от нудной ручной работы и позволяет сосредоточиться на более интересных видах тестирования. Несмотря на то, что отдельным частям нашего проекта более 25 лет, мы только в самом начале пути внедрения автоматического тестирования. Тем не менее, у нас уже есть некоторые успехи, о которых я хочу поведать в этой статье. Как писать хорошие автотесты – тема отдельной статьи. И, вероятно, не одной. Я же расскажу вам как мы внедрили тестирование отдельных компонентов. Компоненты написаны на С++ и имеют интерфейсы очень похожие на СОМ. В качестве языка для тестов мы выбрали python и используем очень мощный тестовый фреймворк PyTest. В статье я расскажу про сложности связки С++/СОМ и питона, подводные камни, на которые мы наткнулись и как решали эти проблемы. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273401/#habracut
#  Установка VNC сервера, и настройка его работы поверх SSH
habrabot (difrex,1) → All  –  21:00:02 2015-12-17


![][1] Да, отчего-то не все клиенты хотят работать в таком удобном и черном терминале, панель полностью не удовлетворяет их эстетические потребности, и вообще — «где мой такой любимый и удобный VNC?». В данной статье будет рассмотрен пример установки и настройки [VNC server][2] и графической оболочки ([GUI][3]) на примере OC Debian 8 jessie. [читать дальше][4]

[1]: https://habrastorage.org/files/a13/7bf/79c/a137bf79cd924f7d9f5a47eab7faf671.png
[2]: https://ru.wikipedia.org/wiki/Virtual_Network_Computing
[3]: https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F
[4]: http://habrahabr.ru/post/273201/#habracut
#  Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем
habrabot (difrex,1) → All  –  19:00:02 2015-12-17


[![][1]][2] Исследователи безопасности Гектор Марко (Hector Marco) и Исмаэль Риполл (Ismael Ripoll) [опубликовали][3] информацию об обнаруженной ими 0-day уязвимости в популярном загрузчике Grub2, который используется в большинстве Linux-системах. Эксплуатация уязвимости позволяет получить доступ к аварийной консоли Grub2 в обход пароля. Это, в свою очередь, открывает злоумышленнику возможность проведение атаки направленной на повышение привилегий в систем и доступа ко всей информации. [Читать дальше →][4]

[1]: https://habrastorage.org/files/992/deb/30e/992deb30e05c40f599617468132dacf3.png
[2]: http://habrahabr.ru/company/pt/blog/273389/
[3]: http://hmarco.org/bugs/CVE-2015-8370-Grub2-authentication-bypass.html
[4]: http://habrahabr.ru/post/273389/#habracut
#  Как я 8 месяцев переписывал свою криптовалюту с PHP на Go. Часть 2
habrabot (difrex,1) → All  –  13:30:02 2015-12-17


![][1] 2-я часть истории, которая началась с смс-ки от Кати «Не звони и не пиши мне больше!!!!» [Читать дальше →][2]

[1]: https://habrastorage.org/files/912/ce1/f48/912ce1f48a75415fb529d933668ed3bd.jpeg
[2]: http://habrahabr.ru/post/273333/#habracut
#  Как выбрать язык программирования?
habrabot (difrex,1) → All  –  10:30:02 2015-12-17


![][1] Именно таким вопросом задалась команда Почты Mail.Ru перед написанием очередного сервиса. Основная цель такого выбора — высокая эффективность процесса разработки в рамках выбранного языка/технологии. Что влияет на этот показатель?

* Производительность;
* Наличие средств отладки и профилирования;
* Большое сообщество, позволяющее быстро найти ответы на вопросы;
* Наличие стабильных библиотек и модулей, необходимых для разработки веб-приложений;
* Количество разработчиков на рынке;
* Возможность разработки в современных IDE;
* Порог вхождения в язык.

Кроме этого, разработчики приветствовали немногословность и выразительность языка. Лаконичность, безусловно, так же влияет на эффективность разработки, как отсутствие килограммовых гирь на вероятность успеха марафонца. [Читать дальше →][2]

[1]: https://habrastorage.org/files/cfc/193/a51/cfc193a5171e494a9eb32230201204b2.jpg
[2]: http://habrahabr.ru/post/273341/#habracut
#  Вперед, на поиски палиндромов 3
habrabot (difrex,1) → All  –  10:30:02 2015-12-17


После того, как вроде бы неплохой результат, полученный в [предыдущей части][1], оказался лишь «локальным максимумом», я на некоторое время забросил задачку. Напомню условие:

> «The decimal number 585 is 1001001001 in binary. It is palindromic in both bases. Find n-th palindromic number». Или, по-русски: «Десятичное число 585 в двоичной системе счисления выглядит как 1001001001. Оно является палиндромом в обеих системах счисления. Найдите n-й подобный палиндром».

Но само существование значительно более быстрого, с принципиально другой вычислительной сложностью, алгоритма не давало мне покоя, и в конце концов я вернулся к его [разбору][2]. В конце концов, алгоритм оказался не таким уж и сложным, зато, на мой взгляд, очень красивым. [Как же они это сделали?][3]

[1]: http://habrahabr.ru/post/272555/
[2]: https://discuss.codechef.com/questions/74483/dualpal-editorial
[3]: http://habrahabr.ru/post/272659/#habracut
#  Обнаружение инсайдерской торговли: Алгоритмы выявления и паттерны незаконных сделок
habrabot (difrex,1) → All  –  09:00:03 2015-12-17


[![][1]][2] Как конкретно ведут себя инсайдеры на бирже? Зависят ли их сделки от занимаемой должности в компании (генеральный или финансовый директор), меняется ли поведение инсайдеров с течением времени (повлиял ли на него, к примеру, кризис 2008 года)? Группа исследователей из технологического института Джорджии провели [исследование][3] на основе данных о 12 млн транзакций, совершенных 370 тысячами инсайдеров в период с 1986 по 2012 год. Целью этой работы было выявление паттернов поведения игроков на фондовом рынке, с помощью которых регулирующие органы могли бы обнаруживать и пресекать незаконную инсайдерскую торговлю. Мы представляем вашему вниманию основные моменты этого документа. [Читать дальше →][4]

[1]: https://habrastorage.org/files/e64/df7/5bc/e64df75bc04247f59aadf21993fb82ff.png
[2]: http://habrahabr.ru/company/itinvest/blog/273337/
[3]: http://www.cc.gatech.edu/~dchau/papers/13-snam-insider.pdf
[4]: http://habrahabr.ru/post/273337/#habracut
#  [Перевод] Социальная сеть вселенной Звёздных войн
habrabot (difrex,1) → All  –  05:30:02 2015-12-17


![image][1] Кто-то ждёт рождества, кто-то – новой серии Звёздных войн, «Пробуждение силы». А в это время я решила обработать весь шестисерийный цикл с количественной точки зрения и вычленить социальные сети, содержащиеся в нём – как из каждого фильма по отдельности, так и из всей вселенной ЗВ вместе. Пристальное разглядывание соцсетей выявляет интересные различия между оригинальными частями и их приквелами. Ниже – соцсеть, добытая из всех 6 фильмов в сумме. ![image][2] [**открыть**][3] [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/496/3e6/710/4963e671083f06363a57f5005cfe17cc.png
[2]: https://habrastorage.org/getpro/habr/post_images/4fb/c4c/e2b/4fbc4ce2b0d4ec915d94e8788f7e4794.png
[3]: http://evelinag.com/blog/2015/12-15-star-wars-social-network/interactions.html
[4]: http://habrahabr.ru/post/273319/#habracut
#  Топ 5 опасных угроз от сторонних поставщиков
habrabot (difrex,1) → All  –  16:00:02 2015-12-16


![][1] Благодаря нашумевшему скандалу между компаниями Target и Ashley Madison, участились случаи, когда мы становимся свидетелями того, как сотрудничество со сторонними поставщиками услуг может принести вред “эластичной” среде — где устройства, услуги и приложения регулярно работают в интенсивном режиме, тем самым, предоставляя хакерам возможность проникать в сети предприятий. Вот пятерка распространенных угроз связанных с работой “чужих” поставщиков: [Читать дальше →][2]

[1]: https://habrastorage.org/files/1d3/4be/f32/1d34bef323ae4795a6df8550a666cc2f.jpg
[2]: http://habrahabr.ru/post/272285/#habracut
#  Изучаем граф-ориентированную СУБД Neo4j на примере лексической базы Wordnet
habrabot (difrex,1) → All  –  16:00:02 2015-12-16


![][1] СУБД Neo4j — это NoSQL база данных, ориентированная на хранение графов. Изюминкой продукта является декларативный язык запросов Cypher. Cypher позаимствовал ключевые слова типа WHERE, ORDER BY из SQL; синтаксис из таких разных языков как Python, Haskell, SPARQL; и в результате появился язык, позволяющий делать запросы к графам в визуальной форме наподобие [ASCII art][2]. Например, заголовок данной статьи я бы представил в виде графа **(Neo4j) — [изучаем] -> (Wordnet)**. И это почти готовый запрос к базе данных!





[Читать дальше →][3]

[1]: https://habrastorage.org/files/2a3/d81/137/2a3d81137cca4753b89ca341f034a7a2.png
[2]: https://en.wikipedia.org/wiki/ASCII_art
[3]: http://habrahabr.ru/post/273241/#habracut
#  Добавление пакетов к автономному установщику Lubuntu Alternate ISO
habrabot (difrex,1) → All  –  16:00:02 2015-12-16




# Введение

При создании автономных установочных носителей для автоматизированной установки ОС Lubuntu 14.04 с использованием [preseed][1], я столкнулся с тем, что мне нужно добавить на установочный носитель пакеты, которые отсутствуют в исходном [alternate-дистрибутиве][2]. Я перепробовал много различных способов создания собственных автономных дистрибутивов, но они оказались:

* либо неподходящими ([LiveCDCustomization][3]), т.к. мне нужен не LiveCD, а установочный preseed-дистрибутив;
* либо очень сложными ([DebianCustomCD][4]);
* либо работали, не как ожидалось ([Simple-CDD][5], [DebianInstaller/Modify/CD][6]), а может я не до конца разобрался.

В итоге остановился на способе, который [описан в сообществе Ubuntu][7]. Хочу рассказать о том, что у меня получилось. [Читать дальше →][8]

[1]: https://wiki.debian.org/DebianInstaller/Preseed
[2]: https://help.ubuntu.com/community/Lubuntu/Alternate_ISO

>> Читать далее
#  Создание бизнес-процесса на языке BPEL с использованием платформы Serena Business Manager
habrabot (difrex,1) → All  –  16:00:02 2015-12-16


Пройдясь поиском по Хабрахабру, удалось обнаружить не так уж и много информации, посвященной, надо сказать, не очень распространённому языку BPEL (Business Process Execution Language). Если говорить в общем, то BPEL – это язык, основанный на формате XML, который позволяет описывать логику бизнес-процессов через использование веб-служб. [][1]



Реализаций движков, позволяющих создавать процессы с использованием этого языка, мне известно не так уж и много. В частности, можно упомянуть Oracle BPEL Process Manager и продукт, о котором пойдет речь дальше – Serena Business Manager (SBM). SBM позволяет быстро создавать web-приложения, автоматизирующие какой-нибудь процесс. В модели процесса (workflow) предусмотрена возможность в момент изменения состояния вызвать внешнюю web службу. А если нужно реализовать какую-нибудь логику и одного вызова недостаточно? Вот тут и пригодится процедура, написанная на языке BPEL и исполняемая средствами той же платформы BPM. Подробнее на самом языке я останавливаться не буду, в сети можно найти достаточно информации на эту тему, например, [здесь][2]. Я же опишу реализацию конкретной задачи. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/softmart/blog/273281/
[2]: http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html
[3]: http://habrahabr.ru/post/273281/#habracut
#  [recovery mode] Утрачиваемое искусство доказательства защищенности. Часть 1 из 2
habrabot (difrex,1) → All  –  16:00:02 2015-12-16


_Пашков Юрий, [Пашков Кузьма][1] — Lead [InfoSec][2], [EMC][3], [VMWare][4] trainer @ [training.muk.ua][5]_ Многолетний опыт преподавания по направлению «Информационная безопасность» (далее ИБ) позволяет констатировать положительные тенденции в этой области:

* Владельцы бизнеса, наконец, стали считать риски ИБ такими же значимыми как финансовые и операционные, и все чаще ищут не только доверенных, но квалифицированных советников на должности уровня CSO (Chief Security Officer)
* Нормативный подход к построению систем защиты позволил ИБ стать массово потребляемой услугой
* Взрывной рост рисков ИБ поддерживает стабильно высокий спрос и предложение на рынке услуг обучения по соответствующему направлению

В тоже время налицо и отрицательные:

* Подтвердить свою квалификацию в ИБ сегодня так же сложно, в особенности если успешный опыт работы получен в странах СНГ, а потенциальный работодатель находится в США\\Европе
* Массовость приводит к проблеме консьюмеризации ИБ
* Падает качество услуг обучения и уровень квалификации специалистов

В результате появляются целые коллективы подразделений обеспечения ИБ, которые на всех уровнях иерархии, начиная с администратора безопасности и заканчивая руководителем, бездумно выполняют требования стандартов безопасности, не задумываясь о доказательстве защищенности автоматизированной системы после их выполнения. Настоящая статья демонстрирует возможности доказательного подхода для создания защищенных автоматизированных систем и носит учебный характер. [Читать дальше →][6]


>> Читать далее
#  Как за 5233 человеко-часа создать софт для микротомографа
habrabot (difrex,1) → All  –  15:30:03 2015-12-16


![][1] Хочу поподробнее рассказать об интересном [проекте компании Edison][2]. Перед разработчиками поставили задачу написать софт для микротомографа, они с этим отлично справились, а потом запихивали в этот томограф семечки, болты, конденсаторы и моль. А серьезным дядям этот томограф нужен, чтобы проверять алмазы и не покупать дырявые. ![][3] А еще сегодня 16 декабря, день рождения [Иоганна Радона][4], австрийского математика, ректора Венского университета, который в 1917 году ввел интегральное преобразование функции многих переменных, родственное преобразованию Фурье, используемое сегодня во всех томографах. Иоганн Радон был профессором 6 университетов (а в одном из них даже без кафедры), был президентом Австрийского математического общества. В Австрии в честь него назвали «Институт вычислительной и прикладной математики» и медаль. О том, как проходила разработка софта для томографа и какие задачи решались в процессе — под катом. [Читать дальше →][5]

[1]: https://habrastorage.org/files/4f2/884/da6/4f2884da68ff4c4ca11d9f1cb1567bf6.jpg
[2]: http://www.edsd.com/software-for-new-tomography-device
[3]: https://habrastorage.org/files/ca4/950/1e2/ca49501e2f6b4f2fae8cf24eccc72c51.jpg
[4]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B4%D0%BE%D0%BD,_%D0%98%D0%BE%D0%B3%D0%B0%D0%BD%D0%BD
[5]: http://habrahabr.ru/post/273295/#habracut
#  Selenium для Python. Глава 6. Объекты Страницы
habrabot (difrex,1) → All  –  15:30:03 2015-12-16


Продолжение перевода неофициальной документации Selenium для Python. Оригинал можно найти [здесь][1].

## Содержание:

1. [Установка][2] 2. [Первые шаги][3] 3. [Навигация][4] 4. [Поиск элементов][5] 5. [Ожидания][6] 6. Объекты Страницы 7. WebDriver API 8. Приложение: Часто Задаваемые Вопросы

## 6\. Объекты страницы

Этот раздел является введением в руководство по паттернам проектирования объектов страницы. Объект страницы представляет собой область пользовательского интерфейса в веб-приложении, с которой будет взаимодействовать ваш тест. Плюсы использования паттернов объектов страницы:

* Создание многократно используемого кода, который может быть использован среди множества тест-кейсов
* Уменьшение количества дублируемого кода
* Если интерфейс пользователя изменяется, требуется правка всего в одном месте


>> Читать далее
#  Фестиваль данных в музее Москвы, или как Big Data помогает жить и работать
habrabot (difrex,1) → All  –  14:30:02 2015-12-16


![][1] Привет Хабр, Если вам давно было интересно, как Big Data применяется в разных областях бизнеса, науки и государственного управления и это хотелось услышать от самих людей, которые этим занимаются, то добро пожаловать на Фестиваль Данных, который будет проходить 19 декабря на Выставке Высоких Технологий SMIT в Музее Москвы. В течение нескольких часов работы Фестиваля ведущие эксперты отрасли из Yandex, «Школы данных Билайн», Data-Centric Alliance, Авито, ГУП «НИ и ПИ Генплана Москвы, НИУ ВШЭ расскажут гостям выставки о перспективах использования анализа данных в ближайшие несколько лет. [Читать дальше →][2]

[1]: https://habrastorage.org/files/95d/e46/453/95de46453bac40e08b6c42b26baf590d.jpg
[2]: http://habrahabr.ru/post/273117/#habracut
#  Apache Spark в «боевых» проектах — опыт выживания
habrabot (difrex,1) → All  –  12:30:02 2015-12-16


Предлагаем вашему вниманию материалы по мотивам выступления Александра Сербула на конференции [BigData Conference][1]. Я, как автор и докладчик, текст немного отредактировал и добавил современных мыслей и актуальных проблем, поэтому надеюсь пост принесет вам как дополнительные практические полезные знания в отрасли, так и пищу для размышлений — куда податься со своими знаниями. Итак — в бой! [Читать дальше →][2]

[1]: http://bigdataconf.com.ua/2015/
[2]: http://habrahabr.ru/post/273279/#habracut
#  [Перевод] Мифы о /dev/urandom
habrabot (difrex,1) → All  –  10:30:02 2015-12-16


![image][1] Наверняка многие из вас неоднократно сталкивались с мифами о /dev/urandom и /dev/random. Может быть, в некоторые из них вы даже верите. В этом посте мы сорвём покровы со всех этих мифов и разберём настоящие сильные и слабые стороны этих генераторов случайных чисел. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/124/74d/bbd/12474dbbdcdeefc692f7a81ef6474f49.jpg
[2]: http://habrahabr.ru/post/273147/#habracut
#  Программирование многопользовательских игр
habrabot (difrex,1) → All  –  09:30:03 2015-12-16


Добрый день, Хабр! Мы только что выпустили книгу по [Юнити][1], и нам стало интересно насколько вообще актуальна тема программирования игр. Казалось бы книг на эту тему должно быть выпущено огромное множество, но это не так. Только что вышла книга "[Multiplayer Game Programming: Architecting Networked Games (Game Design)][2]". Насколько актуален ее перевод на русский язык? Подробности под катом. Ждем ваши комментарии [Читать дальше →][3]

[1]: http://habrahabr.ru/company/piter/blog/256859/
[2]: http://www.amazon.com/dp/0134034309
[3]: http://habrahabr.ru/post/271849/#habracut
#  [Из песочницы] Парсинг формул в 50 строк на Python
habrabot (difrex,1) → All  –  09:30:03 2015-12-16


Вдохновение — [задача с собеседования Яндекса][1] и статья [«Парсинг формул в 40 строк»][2]. Моей целью было посмотреть, как будет выглядеть «pythonic» решение этой задачи. Хотелось, чтобы решение было простым, код читаемым и разделённым. В итоге ещё получился и пример применения цепочки генераторов (generators pipeline). [Читать дальше →][3]

[1]: http://habrahabr.ru/company/yandex/blog/206234/
[2]: http://habrahabr.ru/post/216449/
[3]: http://habrahabr.ru/post/273253/#habracut
#  [Из песочницы] Как попасть на дачу президента в пять часов утра
habrabot (difrex,1) → All  –  09:00:01 2015-12-16


Этот пост о том, как обычный взлом обернулся муками совести и душевными терзаниями. Исходников будет не много, больше фоток и анализа. Итак, некто Вася работает «плохим парнем». Степень падения Васи такова, что средства на жизнь ему приносит поиск и разбор информации, доступ к которой был скомпрометирован вследствие неграмотного обслуживания, безалаберности или экономии на обслуживающем персонале. ![][1] [Читать дальше →][2]

[1]: http://www.therunet.com/uploads/image_block/image/2469/main_%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0_2013-03-28_%D0%B2_11.20.41_PM.png
[2]: http://habrahabr.ru/post/273249/#habracut
#  Реестр отечественного ПО
habrabot (difrex,1) → All  –  08:00:03 2015-12-16


Речь пойдет о следующем: — что это вообще за Реестр отечественного ПО; — требования к желающим внести свое ПО в реестр отечественного ПО; — почему НЕ нужно срочно регистрировать свое ПО в Роспатенте. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273235/#habracut
#  Pebble: Timeline — вид «изнутри»
habrabot (difrex,1) → All  –  20:00:02 2015-12-15


![][1] И на улице обладателей «классических» Pebble случился праздник — началось закрытое (по подписке) beta-тестирование Timeline-прошивки (которую, кстати сказать, обещали ещё в августе). Приглашаю под кат, разобраться что представляет из себя Timeline, который изначально доступен пользователям Pebble Time и уже скоро будет радовать (или не очень) всех владельцев Pebble. [Читать дальше →][2]

[1]: https://habrastorage.org/files/d9d/d00/d6b/d9dd00d6ba8649e2b531e03d40fade8d.png
[2]: http://habrahabr.ru/post/273169/#habracut
#  В CMS Joomla обнаружена критическая 0-day уязвимость
habrabot (difrex,1) → All  –  19:00:02 2015-12-15


[![][1]][2] Во вторник 14 декабря команда разработки Joomla выпустила срочное [обновление][3] безопасности, закрывающее 0-day уязвимость, которая открывает злоумышленникам возможность удаленного исполнения кода. Хакеры уже активно пытаются атаковать уязвимые сайты. [Читать дальше →][4]

[1]: https://habrastorage.org/files/f9c/e7b/aef/f9ce7baefe0c4c78bc3ce2a097a8c467.png
[2]: http://habrahabr.ru/company/pt/blog/273213/
[3]: https://developer.joomla.org/security-centre/630-20151214-core-remote-code-execution-vulnerability.html
[4]: http://habrahabr.ru/post/273213/#habracut
#  DB hacking или экскурс в мир СУБД
habrabot (difrex,1) → All  –  15:00:03 2015-12-15


![][1] Этот обзор посвящен типовым ошибкам развертывания разнообразных СУБД, от самых известных и используемых на тысячах серверов, до специализированных и относительно редко встречающихся. Задачи создать всеобъемлющий курс по всем возможным векторам и уязвимостям не было, поэтому получились небольшие видео-ролики, раскрывающие основные нюансы сетевых атак на СУБД. Так же, стоит сразу предупредить, что веб-приложения и веб-уязвимости намеренно были оставлены за бортом и не были рассмотрены. [Читать дальше →][2]

[1]: https://habrastorage.org/files/9b5/1aa/8bd/9b51aa8bdec247c9958a721f016eca22.png
[2]: http://habrahabr.ru/post/273125/#habracut
#  [Из песочницы] Проверка теории шести рукопожатий
habrabot (difrex,1) → All  –  15:00:03 2015-12-15


![][1] Хочу рассказать о своем эксперименте по проверке [«Теории шести рукопожатий»][2]. На написание этого материала меня вдохновила статья [«Анализ дружеских связей VK с помощью Python»][3] (чтобы избежать повторений, в дальнейшем я буду ссылаться на нее). Так как в целом задача мной была поставлена по-другому, да и использованные методы тоже отличаются, то я решил что это может быть интересно. [Читать дальше →][4]

[1]: https://habrastorage.org/files/b74/bc9/c7b/b74bc9c7b14a41c695dd8bc0861ca5f7.gif
[2]: https://ru.wikipedia.org/wiki/Теория_шести_рукопожатий
[3]: http://habrahabr.ru/post/221251/
[4]: http://habrahabr.ru/post/273191/#habracut
#  Какие микроатаки постоянно идут на офис: детский социнжиниринг и фишинг
habrabot (difrex,1) → All  –  14:30:02 2015-12-15


![][1] Привет! У нас торчат наружу самые разные контакты, включая прямую почту учредителя и всех глав отделов. Ну и, разумеется, офисный телефон, контакты колл-центра и всё такое прочее. На чеках печатаются телефоны региональных управляющих. Соответственно, на процентов 80% этой инфраструктуры постоянно идут мелкие, скажем так, бытовые социнжиниринговые атаки. От невинных и даже местами наивных до чертовски изобретательных. Изобретательных в социальном плане. [Читать дальше →][2]

[1]: https://habrastorage.org/files/6ad/f5a/109/6adf5a109b2447dd88a0cce5688f780f.jpg
[2]: http://habrahabr.ru/post/272287/#habracut
#  OpenSource.Mail.Ru: открытые проекты наших сотрудников
habrabot (difrex,1) → All  –  13:30:03 2015-12-15


![image][1] Одним из главных принципов, лежащих в основе движения за открытый исходный код, — Open Source, — является свобода распространения информации. Жизнестойкость этой идеи подтверждают примеры многих успешных проектов, развиваемых свободным сообществом программистов со всего мира. Наверное, кого-то это удивит, но мы тоже активно развиваем множество opensource-проектов. И недавно мы обнаружили, информация об этих проектах разбросана по сети, и разработчики одних продуктов могут совершенно не знать о других, которые могли бы оказаться для них полезными. Так и родилась идея создать информационный сайт [OpenSource.Mail.Ru][2]. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/a13/443/319/a13443319110394cd8880f8523d68f12.png
[2]: https://opensource.mail.ru/Home
[3]: http://habrahabr.ru/post/273107/#habracut
#  [Из песочницы] Нелокальный алгоритм для сглаживания изображений
habrabot (difrex,1) → All  –  11:00:02 2015-12-15


Избавление изображения от шума – одна из фундаментальных операций компьютерного зрения. Алгоритмы сглаживания применяются почти везде: они могут быть как самостоятельной процедурой для улучшения фотографии, так и первым шагом для более сложной процедуры, например, для распознавания объектов на изображении. Поэтому существует огромное множество способов сглаживания, и я бы хотел рассказать об одном из них, отличающемся от остальных хорошей применимостью на текстурах и изображениях с большим количеством одинаковых деталей. Под катом много картинок, аккуратнее с траффиком. [Узнать больше про нелокальный алгоритм сглаживания][1]

[1]: http://habrahabr.ru/post/273159/#habracut
#  Управление дронами с помощью приложений для распознавания речи на основе Intel RealSense SDK
habrabot (difrex,1) → All  –  10:00:01 2015-12-15


![][1] В новостях рассказывают о дронах — беспилотных летательных аппаратах — буквально каждый день. Области применения у них самые разные: разведка и боевые операции, фото- и видеосъемка, да и просто развлечения. Технология дронов достаточно новая и заслуживает интереса. Разработчики могут создавать приложения для управления дронами. Дрон в конечном итоге является обычным программируемым устройством, поэтому к нему можно подключаться и отдавать команды для выполнения нужных действий с помощью обычных приложений для ПК и смартфонов. Для этой статьи я выбрал один из дронов с самыми мощными возможностями программирования — [AR.Drone 2.0 компании Parrot][2]. Мы узнаем, как взаимодействовать с таким дроном и управлять им с помощью библиотеки, написанной на C#. Опираясь на эту основу, мы добавим речевые команды для управления дроном с помощью [Intel RealSense SDK][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/c96/48b/6c1/c9648b6c10d74245b0d667767f2efc57.jpg
[2]: http://ardrone2.parrot.com/
[3]: https://software.intel.com/en-us/intel-realsense-sdk
[4]: http://habrahabr.ru/post/273083/#habracut
#  Зоопарк коммуникационных протоколов для GPS-трекеров (часть 2)
habrabot (difrex,1) → All  –  10:00:01 2015-12-15


![][1] Это продолжение статьи про сетевые протоколы используемые с GPS-трекерах. Если в первой части мы обсуждали фрейм декодеры, то во второй части мы посмотрим на варианты кодирование различных типов полезных данных. Многие производители устройств для GPS-мониторинга разрабатывают собственные протоколы прикладного уровня для передачи данных от устройства на сервер, и иногда разработчики прибегают к различным изощренным и не всегда понятным решениям для кодирования данных. [Читать дальше →][2]

[1]: https://habrastorage.org/files/677/5d7/ca8/6775d7ca875c411c8e8b7c8b91246ea8.jpg
[2]: http://habrahabr.ru/post/273127/#habracut
#  [Из песочницы] PyLOO — Библиотека для генерации отчетов, счетов Libre/Open Office на Python
habrabot (difrex,1) → All  –  08:30:02 2015-12-15


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

* складской учет
* учет объектов недвижимости
* документооборот

Первый мой опыт был с MS Office, но позже возникла необходимость в разработке кросс-платформенных решений, посему выбор пал на OpenOffice. Т.к. в большинстве случаев нужно было формировать таблицы, то был выбран OpenOffice Calc. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273131/#habracut
#  Репликация без конфликтов: CRDT в теории и на практике
habrabot (difrex,1) → All  –  05:00:02 2015-12-15


В распределённых хранилищах или редакторах каких-либо данных часто бывает нужна поддержка внесения изменений оффлайн, без блокировок и конфликтов. Для этого применяются разные подходы, один из которых — алгоритмы и типы данных conflict-free replicated data type (CRDT). ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/a51/e03/6b8/a51e036b89dd4ee6a36ba8b3f25ccabf.png
[2]: http://habrahabr.ru/post/272987/#habracut
#  Об эффективности «учений» Рутрекера
habrabot (difrex,1) → All  –  15:00:02 2015-12-14




> «У любой задачи существует по крайней мере одно очевидное и невероятно простое для понимания неправильное решение»

Как кто-то из вас уже знает, широко известный ресурс Рутрекер провел акцию «Учения по гражданской обороне». Суть её заключалась в «тренировочном» закрытии доступа на форум для всех пользователей из России на сутки. На следующий день популярные интернет-издания пестрели заголовками «Учебная блокировка Рутрекера не отразилась на его посещаемости». Для меня как регулярного пользователя этого сайта тема с его блокировкой особенно болезненна. Увидев обнадеживающие заголовки, я порадовался за маленькую победу любимого ресурса. Однако после прочтения статей у меня возникло несколько вопросов. Поэтому я и решил разобраться: действительно ли Рутрекер успешно справился с задачей и научил всех своих пользователей легко и непринуждённо обходить блокировки? [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273043/#habracut
#  Выпущен CrystaX NDK 10.3.0
habrabot (difrex,1) → All  –  14:30:02 2015-12-14


Новая версия [CrystaX NDK 10.3.0][1] доступна для скачивания. Наиболее важные изменения в этом выпуске:

* Новые GCC и LLVM/clang.
* Сильно улучшена поддержка Objective-C v2.
* Добавлена поддержка Python (2.7 и 3.5) для Android.

Кроме этого, починено много ошибок и сделано огромное количество улучшений. Ниже вы можете ознакомиться с более подробной информацией. [Читать дальше →][2]

[1]: https://www.crystax.net/android/ndk
[2]: http://habrahabr.ru/post/273053/#habracut
#  [Из песочницы] Программный многозадачный таймер на МК
habrabot (difrex,1) → All  –  14:30:02 2015-12-14


В различного рода сложности реализуемых алгоритмов при программировании МК, всегда возникают рутинные циклические и не очень задачи. Одни требуют повышенной точности, другие таким критерием не обязаны обладать. Аппаратных таймеров на борту МК может быть приличное количество, например STM32F4 — аж 14 штук, и это не считая SysTick (системного), а в других и пара тройка за счастье: тот же PIC16, например. Для решения таких не спешных, не критичных ко времени задач можно и нужно применить программный таймер, на базе одного из аппаратных. Но обо всем по порядку… [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273077/#habracut
#  Тестирование производительности HP P2000 MSA G3
habrabot (difrex,1) → All  –  14:30:02 2015-12-14


В [одной из наших прошлых статей][1], посвященной производительности дисковых систем серверов, мы рассказали о методике тестирования и подборе инструмента. Сейчас же, решили сравнить производительность СХД начального уровня и массива на контроллере P410. Напомню, что интересующие нас параметры: IOPS — количество дисковых операций в секунду (чем больше, тем лучше) и latency — время обработки операции (чем меньше, тем лучше).






[Читать дальше →][2]

[1]: http://habrahabr.ru/company/westcomp/blog/267435/
[2]: http://habrahabr.ru/post/271229/#habracut
#  [Из песочницы] Selenium для Python. Глава 5. Ожидания
habrabot (difrex,1) → All  –  14:30:02 2015-12-14


Продолжение перевода неофициальной документации Selenium для Python. Оригинал можно найти [здесь][1].

## Содержание:

1. [Установка][2] 2. [Первые шаги][3] 3. [Навигация][4] 4. [Поиск элементов][5] 5. Ожидания 6. Объекты Страницы 7. WebDriver API 8. Приложение: Часто Задаваемые Вопросы

## 5\. Ожидания

В наши дни большинство веб-приложений используют [AJAX][6] технологии. Когда страница загружена в браузере, элементы на этой странице могут подгружаться с различными временными интервалами. Это затрудняет поиск элементов, если элемент не присутствует в [DOM][7], возникает исключение ElementNotVisibleException. Используя ожидания, мы можем решить эту проблему. Ожидание дает некий временной интервал между произведенными действиями — поиске элемента или любой другой операции с элементом. [Читать дальше →][8]

[1]: http://selenium-python.readthedocs.org/waits.html
[2]: http://habrahabr.ru/post/248559/
[3]: http://habrahabr.ru/post/250921/
[4]: http://habrahabr.ru/post/250947/

>> Читать далее
#  Запросы классов в InterSystems Caché
habrabot (difrex,1) → All  –  14:30:02 2015-12-14


[][1]

## Введение

[Запросы классов][2] InterSystems Caché — это полезный инструмент, используемый для абстракции от непосредственно SQL запросов в COS коде. В самом простом случае это выглядит так: допустим вы используете один и тот же SQL запрос в нескольких местах, но с разными аргументами. Для того чтобы не писать его каждый раз, вы можете обозначить текст запроса как запрос класса и в дальнейшем обращаться к этому запросу по его имени. А ещё есть кастомные запросы, в которых логику получения следующей строки результатов вы пишете сами. Под катом я расскажу о том, как этим всем можно пользоваться. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/intersystems/blog/270839/
[2]: http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_queries
[3]: http://habrahabr.ru/post/270839/#habracut
#  Контентная фильтрация: зачем и как это делать
habrabot (difrex,1) → All  –  14:30:02 2015-12-14


Привет, Хабр! Сегодня мы поговорим о фильтрации интернет-контента. Три года назад вступил в силу федеральный закон 139-ФЗ, дополнивший уже принятый 436-ФЗ «О защите детей от информации, причиняющей вред их здоровью и развитию». В соответствии с российским [законодательством][1], доступ в интернет в школах возможен лишь «при условии применения административных и организационных мер, технических, программно-аппаратных средств защиты детей от информации, причиняющей вред их здоровью и (или) развитию». Другими словами, закон требует обязательной фильтрации интернет-контента. Добро пожаловать под кат. [![][2]][3] [Читать дальше →][4]

[1]: http://www.consultant.ru/document/cons_doc_LAW_108808/b663a547cc140a293671b9fc316f76f70c99e59f/
[2]: https://habrastorage.org/files/7f1/281/bb8/7f1281bb81e44f3ba724541567d557dd.jpg
[3]: http://habrahabr.ru/company/smart_soft/blog/273095/
[4]: http://habrahabr.ru/post/273095/#habracut
#  Russian AI Cup: выбраны лучшие программисты искусственного интеллекта
habrabot (difrex,1) → All  –  14:00:02 2015-12-14


![][1] 13 декабря [завершился][2] финал четвёртого ежегодного чемпионата по программированию искусственного интеллекта [Russian AI Cup][3]. В этот раз своё мастерство продемонстрировали свыше 1 600 программистов, создававшие искусственный интеллект для управления автомобилем в гонках на выживание. По условиям чемпионата можно было использовать один из языков: C++, Java, C#, Python, Ruby или Pascal. После серии напряжённых состязаний в финал выбились 50 сильнейших. И по результатам последней «гонки» золотой приз завоевал Александр «[santa324][4]» Санталов из Москвы. В качестве награды он получил MacBook Pro. «Серебро» и «бронза» достались Антону «[Angor][5]» Гордиенко из Москвы и Юрию «[SDil][6]» Семёнову из Санкт-Петербурга, они были награждены ультрабуками MacBook Air. Не остались без призов и конкурсанты, занявшие с четвёртого по шестое места, им были вручены планшеты iPad Air 2. Поздравляем Дениса «[ud1][7]» Уткина, Сергея «[SKolotienko][8]» Колотиенко и Сергея «[Karkun][9]» Иванова! Однако остальным участникам ещё рано расслабляться, а нам рано подводить окончательные итоги чемпионата. Предстоит ещё неделя состязаний в Песочнице, и по их итогам лучшие 6 участников получат поощрительные призы от партнёров мероприятия. [Читать дальше →][10]

[1]: https://habrastorage.org/files/b4c/ca2/064/b4cca206426f4d2882e240c7a622384e.jpg
[2]: http://russianaicup.ru/post/35
[3]: http://russianaicup.ru/
[4]: http://russianaicup.ru/profile/santa324
[5]: http://russianaicup.ru/profile/Angor
[6]: http://russianaicup.ru/profile/SDil
[7]: http://russianaicup.ru/profile/ud1
[8]: http://russianaicup.ru/profile/SKolotienko
[9]: http://russianaicup.ru/profile/Karkun
[10]: http://habrahabr.ru/post/272893/#habracut
#  Open-source реализации отечественных криптоГОСТов
habrabot (difrex,1) → All  –  14:00:02 2015-12-14


На выходных решил поискать open-source реализации отечественных криптографических стандартов. Прежде всего интересовали новые: хэш-функция Стрибог (ГОСТ Р 34.11-2012), Кузнечик (ГОСТ Р 34.12-2015) и ЭЦП (ГОСТ Р 34.10-2012 или 2001 (без 512-бит) ). Старый ГОСТ 28147-89 специально не искал, поскольку найти его реализацию никаких проблем нет уже давно. Итак, давайте посмотрим, что же получилось. Сразу предупреждаю, что корректность реализаций не проверял. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273055/#habracut
#  [Из песочницы] Внутреннее устройство Python list
habrabot (difrex,1) → All  –  13:00:02 2015-12-14


_Предлагаю вашему вниманию перевод [публикации][1] Laurent Luce о реализации работы со списками в CPython. Она может быть полезна начинающим программистам на Python, либо готовящимся к собеседованию._ Эта статья описывает реализацию объекта списка в CPython, наиболее популярной реализации Python. Списки в Python — это мощный инструмент, и интересно узнать, как они устроены внутри. Взгляните на простой скрипт, который добавляет несколько целых значений в список и выводит их:

>>> l = []
>>> l.append(1)
>>> l.append(2)
>>> l.append(3)
>>> l
[1, 2, 3]
>>> for e in l:
... print e
...
1
2
3

>> Читать далее
#  Multihome IPv4 в Linux
habrabot (difrex,1) → All  –  12:00:02 2015-12-14


Содержимое: как сделать так, чтобы компьютер отвечал в интернете на все свои IP-адреса по всем своим интерфейсам, каждый из которых шлюз по умолчанию. Касается и серверов, и десктопов. Ключевые слова: policy routing, source based routing Лирика: Есть достаточно статей про policy routing в Linux. Но они чаще всего разбирают общие, более тонкие и сложные случаи. Я же разберу тривиальный сценарий следующего вида: ![][1] Нашему компьютеру (серверу) доступно три интерфейса. На каждом интерфейсе шлюз ему выдал IP (статикой или по dhcp, не важно) и сказал «весь трафик шли мне». Если мы оставим эту конфигурацию как есть, то будет использоваться принцип «кто последний встал, того и дефолтный шлюз». На картинке выше, если последним поднимется нижний интерфейс (241), то в него будет отправляться весь трафик. Если к нашему серверу придёт запрос на первый интерфейс (188), то ответ на него всё равно пойдёт по нижнему. Если у маршрутизатора/провайдера есть хотя бы минимальная защита от подделки адресов, то ответ просто дропнут, как невалидный (с точки зрения 241.241.241.1 ему прислали из сети 241.241.241.0/24 пакет с src 188.188.188.188, чего, очевидно, быть не должно). Другими словами, в обычном варианте будет работать только один интерфейс. Чтобы сделать ситуацию хуже, если адреса получены по dhcp, то обновление аренды на других интефрейсах может перезаписать шлюз по умолчанию, что означает, что тот интерфейс, который работал, работать перестанет, а начнёт работать другой интерфейс. Удачной стабильной работы вашему серверу, так сказать.

# Решение

[Читать дальше →][2]

[1]: https://habrastorage.org/files/5e6/b09/738/5e6b0973886b4ab689b8acea335ca0da.png
[2]: http://habrahabr.ru/post/107267/#habracut
#  [Из песочницы] Как я отлаживал python httplib и httplib2
habrabot (difrex,1) → All  –  12:00:02 2015-12-14


Понадобилось мне однажды у себя в проекте реализовать работу с файловым хранилищем с использованием HTTP REST API. Проект разрабатывается на python, к тому же уже был реализован http-клиент с использованием библиотеки httplib2, поэтому было решено расширить функциональность http-клиента и работать с файловым хранилищем через туже библиотеку. Проблема возникла при загрузке файлов на сервер. Первый PUT запрос выполняется, далее все последующие запросы отказываются выполняться — 500 _Internal Server Error_. Смотрю Wireshark'ом выясняется что после первого запроса сервер посылает в заголовках ответа **connection: keep-alive** и следом через 5 секунд закрывает соединение. Всё просто — это таймаут keep-alive установлен на сервере. ![][1] А вот как это выглядит на клиенте: [Читать дальше →][2]

[1]: https://habrastorage.org/files/5e9/6fa/dfa/5e96fadfa3ce4f8891e6e19601233b26.png
[2]: http://habrahabr.ru/post/273051/#habracut
#  [Из песочницы] Как сжать плоского кота
habrabot (difrex,1) → All  –  09:30:02 2015-12-14


Однажды в студеную зимнюю пору… ровно год назад, у нас появилась нетривиальная задача. Есть экран на электронных чернилах, есть процессор 16МГц (да-да, во встраиваемой электронике, особенно сверхнизкого энергопотребления, встречаются и такие) и совсем нет памяти. Ну, т.е. килобайтов 8 RAM и 256 Flash. Килобайтов, Карл. И в эти унылые килобайты необходимо запихнуть несколько изображений 800х600 в четырех оттенках серого. Быстро перемножив в уме 800 на 600 и на 2 бита на пиксель получаем 120 тысяч байтов. Несколько не влезает. Надо сжимать. Так перед нами появилась задача: «как сжать плоского кота»? Почему кота? Да потому, что на котиках тестировали, на чем же еще черно-белые картинки проверять. Не на долларовых банкнотах же. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/273047/#habracut
#  Маленькие секреты большого колл-центра: предиктивный обзвон
habrabot (difrex,1) → All  –  07:00:03 2015-12-14


![][1]Мы продолжаем рассказывать интересные зарисовки из жизни колл-центров, телекомов и облачной телефонии. Случалось ли вам отвечать на звонок и слышать “пожалуйста подождите, оператор сейчас свяжется с вами”? Первая мысль, которая приходит в голову обычно нецензурна, вторая — “они что, вконец обнаглели?!?”. Получивший такой звонок пользователь — жертва хитрой технологии “предиктивного обзвона”, которая позволяет колл-центрам экономить сотни часов времени, но иногда приводит к забавным результатам. Под катом я расскажу про эту штуку подробнее и покажу, как она может быть реализована в несколько строк кода на нашей облачной платформе voximplant [Под катом - sip, rtp и немного javascript][2]

[1]: https://habrastorage.org/files/a3a/5ab/975/a3a5ab9754e34931b32ec0b7c5cf260d.jpg
[2]: http://habrahabr.ru/post/272945/#habracut
#  Полный перевод Unix-коанов на русский язык
habrabot (difrex,1) → All  –  22:00:04 2015-12-13


![][1] Представляю на ваш суд ещё один перевод коанов о Мастере Фу на русский язык. В данный сборник вошли все коаны, на данный момент [опубликованные на сайте][2] Эрика Реймонда. Надо сказать, что сам Эрик личность весьма неординарная, но упоминания в данной статье стоящая. Помимо холиваров в списках рассылки всевозможных проектов за его авторством также несколько серьёзных трудов о Unix — в том числе и о сообществе, без которого экосистема современных открытых проектов не была бы возможной ([полный список книг][3]). Идея перевести коаны в очередной раз пришла мне в голову во время чтения одного из таких трудов, а именно «The Art of Unix Programming», поскольку многое из скрытого смысла коанов становится ясно только после прочтения очередной главы оттуда. Ну и конечно же, дисклеймер: все комментарии и специфика переложения есть плод воображения вашего покорного слуги. Я публикую этот перевод в надежде на то, что он может кому-то понравиться, но не предоставляю на него никаких гарантий, в том числе соответствия канонам перевода или пригодности для цитирования где бы то ни было. [Итак][4]

[1]: https://habrastorage.org/files/53d/22c/449/53d22c449b2c4210888477e2f913d19b.jpg
[2]: http://www.catb.org/esr/writings/unix-koans/
[3]: http://www.catb.org/esr/writings/
[4]: http://habrahabr.ru/post/273023/#habracut
#  Черный пиар Telegram. Кому верить?
habrabot (difrex,1) → All  –  18:30:01 2015-12-13


![image][1] Недавно на Geektimes подняли шум со статьей [«Плохой Telegram» или Как я не взял денег за черный пиар Telegram на Хабрахабре][2]. В итоге выяснили, что знакомый Бурумыча читает переписку дочери и что приветствие «Добрый день» лучше чем «Доброго времени суток». Дабы вбросить в вентилятор полезной информации, мы со специалистами компании [Edison][3] сделали подборку публикаций про Telegam и безопасные мессенджеры, чтобы пытливый читатель мог самостоятельно сделать вывод (а не получить «проплаченную» экспертизу) чему стоит доверять и чем пользоваться для своих целей. Про уровень доверия/желтизны СМИ предлагаю решить читателю самостоятельно. Поток адекватной и неадекватной информации про безопасность коммуникации (и мессенджеров в том числе) растет и будет расти, и очень хочется, чтобы на Хабре можно было найти грамотную, независимую и понятную аналитику. Какими критериями пользоваться для оценки безопасности мессенджеров, можно подсмотреть у борцов за цифровую неприкосновенность — [Electronic Frontier Foundation][4] (EFF). Кстати, вопрос, являются ли эти критерии исчерпывающими или нужны дополнительные (например, про маскировку метаданных)? Чтобы повысить градус объективности и независимости, прошу высказаться в комментах тех, кто разбирается в вопросе по поводу безопасности мессенджеров. **На основе каких данных можно делать выводы?** [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/364/d22/933/364d22933ae7ab5f35eaa0f2d91866b8.jpg
[2]: http://geektimes.ru/post/267072/
[3]: http://www.edsd.ru/
[4]: https://ru.wikipedia.org/wiki/Electronic_Frontier_Foundation
[5]: http://habrahabr.ru/post/273001/#habracut
#  Магические битборды и русские шашки
habrabot (difrex,1) → All  –  17:30:03 2015-12-13


Данная статья — иллюстрация, каким образом битовые трюки могут быть использованы не только в задачах на собеседованиях, но и при решении реальных задач. В статье дано описание одного метода быстрой генерации ходов в русских шашках на основе магических битбордов (magic bitboard). [Битборды][1] — представление позиции в виде нескольких беззнаковых целых чисел, каждый бит которого отвечает за состояние некоторого элемента игры, например клетки. Обычно использование битбордов даёт выигрыш по производительности и по объёму используемой памяти, но связано с более изощрённым программированием. При этом часто возникает задача получения значения определённых бит в битборде, например, для последующего обращения к таблице. Есть два основных подхода к решению этой задачи. Первый — использование и поддержка избыточного представления в виде дополнительных битбордов с перенумерацией битов. Такие битборды асто называют вращаемые. Второй способ — умножение на магическую константу, сдвиг и обращение к таблице. О таких магических битбордах и пойдёт речь в этой статье. [Читать дальше →][2]

[1]: https://en.wikipedia.org/wiki/Bitboard";
[2]: http://habrahabr.ru/post/272815/#habracut
#  Знакомьтесь: Хеш-стеганография. Очень медленная, но совершенно секретная
habrabot (difrex,1) → All  –  17:00:02 2015-12-13


Да, уважаемый читатель, вы правильно прочитали: **_совершенно секретная_**. Причем, прошу заметить, _совершенно секретная_ в самом строгом математическом смысле: [совершенно секретная по Кашену][1], ибо [расстояние Кульбака — Лейблера ][2] в моей математической конструкции будет равно нулю; причем не «почти нулю», а всамделишному нулю, без всяких «бесконечно малых» и иных вульгарных приближений! Каким образом? А очень просто — я вообще не буду ничего _вкраплять_ в стегоконтейнер. Действительно, если мы ничего не вкрапляем, то _пустой контейнер_ неотличим от _стегоконтейнера_, верно? «Подождите, но ведь если мы **** ничего не передаем!!!» — разумно поспорит со мной читатель. Абсолютно верно! Вкраплять мы и не будем! Есть способ, не искажая контейнер, тем не менее передать информацию. Как? Cхематично **Хеш-стеганографию [ɔ⃝][3]** можно представить так: ![][4] Текстовое пояснение к картинке под катом. [Поехали][5]

[1]: https://www.zurich.ibm.com/~cca/papers/stego.pdf
[2]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%9A%D1%83%D0%BB%D1%8C%D0%B1%D0%B0%D0%BA%D0%B0_%E2%80%94_%D0%9B%D0%B5%D0%B9%D0%B1%D0%BB%D0%B5%D1%80%D0%B0
[3]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BF%D0%B8%D0%BB%D0%B5%D1%84%D1%82
[4]: https://habrastorage.org/files/912/1c9/806/9121c9806ada40619a316812d823d5db.gif
[5]: http://habrahabr.ru/post/272935/#habracut
#  Игры, которые учат программированию
habrabot (difrex,1) → All  –  16:30:03 2015-12-13


![][1] Образование стоит дорого. Хорошее образование стоит очень дорого. Но тем не менее возможность получить бесплатное и качественное образование есть у каждого. Компании и корпорации во всём мире вкладывают деньги в создание бесплатных образовательных продуктов. Отчасти, чтобы обеспечить себя квалифицированными кадрами в будущем. Отчасти, для преодоления бедности, предоставления всем равного доступ к качественному образованию. У каждого есть возможность воспользоваться специально созданной для обучения школьников средой программирования Scratch, которую разрабатывают специалисты одного из самых престижных технических учебных заведений США и мира — Массачусетского технологического института. Или игрой Minecraft, за которую Microsoft год назад заплатила $2,5 млрд и с помощью которой, в том числе, планирует обучать детей программированию. Или обучающими играми, которые создают энтузиасты и добровольцы во всём мире. Препятствием для использования подобных ресурсов может быть неосведомлённость о их существовании или незнание языка. Действительно, англоязычных ресурсов и игр значительно больше. Но существуют и русскоязычные игры, обучающие программированию. [Читать дальше →][2]

[1]: https://habrastorage.org/files/66b/422/2c6/66b4222c6013419c99a41da806ef6438.jpg
[2]: http://habrahabr.ru/post/273003/#habracut
#  Про открытые данные, проектах на их основе и о том что происходит с открытыми государственными данными в России
habrabot (difrex,1) → All  –  21:00:03 2015-12-12


![][1] Кто-то возможно знает, для кого-то может быть новостью, но вчера и позавчера в России завершился саммит по открытым данным. И по его итогам, а также по итогам года я понимаю, что пора рассказать о том, что творится с открытыми данными и с другими частями открытости нашего государства. К тому же мой опыт (и опыт вот уже очень долгий) создания проектов на открытых данных очень сильно отличается от слов чиновников и политиков, которые можно услышать на таких публичных мероприятиях. Начну с саммита. **Саммит по открытым данным** На фоне всех остальных мероприятий по открытым данным за последние годы — это одно из первых организованных на довольно хорошем уровне. Даже на «совете по открытым данным» в Яндексе в июне 2015 года было очень много непрофильных выступлений, подробнее в заметке "[Приоткрытые данные][2]" в этот же раз все не отходили от темы открытых данных и это главный и важный плюс всего произошедшего. В плюсы я могу записать также те части саммита в которых я участвовал. Это были круглые столы посвящённые темам криминальной статистики и востребованности государственных финансов. Если коротко, то видно что эти данные нужны и востребованы. На круглом столе про востребованность госфинансов вообще очень много было вопросов про информацию связанную с открытыми данными по госзакупкам. Подробнее и отдельно я напишу ещё про эти круглые столы, но суть общая что данные будут и что ведомства — готовы к диалогу с потребителями. Плюс у меня просто руки не доходят рассказать про все проходящие мероприятия связанные с открытыми данными — встречи с разработчиками, заседания общественных советов и так далее. Я обязательно всё напишу, материалы копятся и тексты пишутся. А теперь о том что у нас происходит с открытыми данными. [Читать дальше →][3]

[1]: https://habrastorage.org/files/0ba/571/3d9/0ba5713d9f3b4893b2f8d48b239614c9.jpg
[2]: http://habrahabr.ru/company/infoculture/blog/260389/
[3]: http://habrahabr.ru/post/272965/#habracut
#  Про открытые данные, проектах и на их основе и о том что происходит с открытыми государственными данными в России
habrabot (difrex,1) → All  –  17:00:02 2015-12-12


![][1] Кто-то возможно знает, для кого-то может быть новостью, но вчера и позавчера в России завершился саммит по открытым данным. И по его итогам, а также по итогам года я понимаю, что пора рассказать о том, что творится с открытыми данными и с другими частями открытости нашего государства. К тому же мой опыт (и опыт вот уже очень долгий) создания проектов на открытых данных очень сильно отличается от слов чиновников и политиков, которые можно услышать на таких публичных мероприятиях. Начну с саммита. **Саммит по открытым данным** На фоне всех остальных мероприятий по открытым данным за последние годы — это одно из первых организованных на довольно хорошем уровне. Даже на «совете по открытым данным» в Яндексе в июне 2015 года было очень много непрофильных выступлений, подробнее в заметке "[Приоткрытые данные][2]" в этот же раз все не отходили от темы открытых данных и это главный и важный плюс всего произошедшего. В плюсы я могу записать также те части саммита в которых я участвовал. Это были круглые столы посвящённые темам криминальной статистики и востребованности государственных финансов. Если коротко, то видно что эти данные нужны и востребованы. На круглом столе про востребованность госфинансов вообще очень много было вопросов про информацию связанную с открытыми данными по госзакупкам. Подробнее и отдельно я напишу ещё про эти круглые столы, но суть общая что данные будут и что ведомства — готовы к диалогу с потребителями. Плюс у меня просто руки не доходят рассказать про все проходящие мероприятия связанные с открытыми данными — встречи с разработчиками, заседания общественных советов и так далее. Я обязательно всё напишу, материалы копятся и тексты пишутся. А теперь о том что у нас происходит с открытыми данными. [Читать дальше →][3]

[1]: https://habrastorage.org/files/0ba/571/3d9/0ba5713d9f3b4893b2f8d48b239614c9.jpg
[2]: http://habrahabr.ru/company/infoculture/blog/260389/
[3]: http://habrahabr.ru/post/272965/#habracut
#  [Перевод] DASH «Эволюция» анонсирована как «Социальная платёжная сеть»
habrabot (difrex,1) → All  –  21:00:02 2015-12-11


[![image][1]][2] Эван Даффилд (Evan Duffield), создатель и ведущий разработчик [криптовалюты DASH][3] (текущий рейтинг — №5 по капитализации), раскрыл планы по развитию следующего поколения DASH “Evolution” на ежегодной Латино-Американской Биткоин конференции LaBitconf-2015. Следующий этап развития этой криптовалюты реализует: Децентрализованное хранение персональной информации, Социальный функционал, Защищённую идентичность, Децентрализованный API (DAPI) и много другое. В ходе видео-интервью на LaBitconf-2015, Эван Даффилд рассказывает о планах по развитию DASH, нацеленных на создание “Paypal-подобного” функционала у цифровой валюты (криптовалюты), что должно обеспечить рядовым пользователям значительные преимущества в плане простоты использования и т.д. [Читать дальше →][4]

[1]: https://habrastorage.org/files/c2d/f15/76a/c2df1576a80e47169f6a9f13da342ac9.jpg
[2]: http://habrahabr.ru/post/272915/
[3]: https://www.dash.org/ru/
[4]: http://habrahabr.ru/post/272915/#habracut
#  [Перевод] DASH “Эволюция” анонсирована как “Социальная платёжная сеть”
habrabot (difrex,1) → All  –  17:00:02 2015-12-11


[![image][1]][2] Эван Даффилд (Evan Duffield), создатель и ведущий разработчик [криптовалюты DASH][3] (текущий рейтинг — №5 по капитализации), раскрыл планы по развитию следующего поколения DASH “Evolution” на ежегодной Латино-Американской Биткоин конференции LaBitconf-2015. Следующий этап развития этой криптовалюты реализует: Децентрализованное хранение персональной информации, Социальный функционал, Защищённую идентичность, Децентрализованный API (DAPI) и много другое. В ходе видео-интервью на LaBitconf-2015, Эван Даффилд рассказывает о планах по развитию DASH, нацеленных на создание “Paypal-подобного” функционала у цифровой валюты (криптовалюты), что должно обеспечить рядовым пользователям значительные преимущества в плане простоты использования и т.д. [Читать дальше →][4]

[1]: https://habrastorage.org/files/c2d/f15/76a/c2df1576a80e47169f6a9f13da342ac9.jpg
[2]: http://habrahabr.ru/post/272915/
[3]: https://www.dash.org/ru/
[4]: http://habrahabr.ru/post/272915/#habracut
#  Как подружить Linq-to-Entities и Regex
habrabot (difrex,1) → All  –  17:00:02 2015-12-11


_Entity Framework_ сильно облегчает разработку систем, использующих базы данных. Не будем сейчас спорить о достоинствах и недостатках этого фреймворка (коих, конечно, немало), а рассмотрим одну из практических задач, которую мне пришлось решать при разработке такой системы. Предположим, у нас есть база данных _SQLite_ с довольно большим количеством записей, и эта база используется в нашем _.NET_ приложении через [System.Data.SQLite][1] и [Entity Framework 6.0][2]. И вот приходит заказчик и сообщает, что ему нужна новая функция поиска записей в базе, да такая, чтобы можно было искать с использованием стандартных регулярных выражений. В этой статье я расскажу, как я добился того, что процессинг регулярного выражения, задаваемого в _Linq_-запросе, происходит на стороне сервера, что позволяет ускорить его обработку и не допустить бессмысленного раздувания памяти клиентского приложения из-за предварительного скачивания всех данных. [Читать дальше →][3]

[1]: https://system.data.sqlite.org
[2]: https://msdn.microsoft.com/en-us/data/aa937723
[3]: http://habrahabr.ru/post/272917/#habracut
#  Security Week 50: DDoS корневых DNS-серверов, жизнь APT Sofacy, много криптографии
habrabot (difrex,1) → All  –  16:30:01 2015-12-11


![][1]Серьезные перемены происходят ровно в тот момент, когда процент желающих что-то изменить превышает определенную критическую отметку. Нет, я сейчас не про политику, чур меня и свят-свят, а про IT в целом и IT-безопасность. И хотят в общем-то все разного: компании — чтобы не DDoS-или и не ломали, пользователи — чтобы не крали пароли и не угоняли аккаунты, security-вендоры — нового отношения к безопасности у всех заинтересованных лиц, регуляторы — ну понятно, хотят регулировать. Вот краткая выжимка [предсказаний][2] наших экспертов на будущий год: эволюция APT (меньше технологий, больше массовости и вообще снижение издержек), атаки на новые финансовые инструменты а-ля ApplePay и фондовые биржи — поближе к местам высокой концентрации цифровых дензнаков, атаки на самих ИБ-исследователей через применяемые ими инструменты, взлом компаний ради чистого ущерба репутации (а.к.а. вывешивание грязного белья), дефицит доверия любым IT-инструментам (взломать могут все, что угодно), включая доверенные сертификаты, ботнеты из маршрутизаторов и прочих IoT, масштабный кризис криптографии. В предсказаниях этого года нет ни единого пункта «на вырост», ни одного маловероятного сценария развития. Ну разве что к таковым можно отнести атаки на управляемые компьютером автомобили, да и то речь идет о взломе инфраструктуры, от которой они зависят — сотовых и спутниковых сетей. Все это, в той или иной степени, сбудется, проблема в том, что _как-то не хочется_. По возможности хотелось бы этого всего _избежать_. А если хочется не только нам, но и вообще всем (пусть и по-разному), то может ли 2016-й также стать годом прогресса в коллективной IT-безопасности? Я ни разу не эксперт, но хочется верить, что да. Переходим к новостям недели. Предыдущие выпуски [доступны по тегу][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/66e/161/b90/66e161b90f17441cb6da4de514790879.jpg
[2]: https://securelist.ru/analysis/ksb/27454/kaspersky-security-bulletin-2015-prognozy-na-2016-god/
[3]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[4]: http://habrahabr.ru/post/272855/#habracut
#  [Из песочницы] О том, как я неделю вдуплял в Bareos
habrabot (difrex,1) → All  –  16:30:01 2015-12-11


Попала ко мне задача организовать резервное копирование с GUI и чтобы прям как у больших дядек. Ранее стоял rsnapshot и всё работало чудесно пока объёмы не возросли до сотен гигабайт, сайты и базы данных, сотни тестовых площадок. Увеличился парк серверов и управлять всем этим делом стало трудно. Из всех имеющихся решений мы выбирали опенсорс и остановились на bareos как на самом часто используемом, чтобы в случае чего быстренько загуглить. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/272869/#habracut
#  Саундсквоттинг — новый вид мошенничества с доменами
habrabot (difrex,1) → All  –  15:00:01 2015-12-11


Появилась новая разновидность киберсквоттинга, именуемая **саундсквоттингом** (от англ. «soundsquatting»). Суть действия также заключается в противоправном использовании доменных имен, только с помощью омофонов — слов одинакового звучания и при этом разного написания (например, «eight» и «ate» — пишутся по-разному, а на слух их различить сложно). Интернет-мошенники или саундсквоттеры выбирают популярные домены и находят к ним созвучные имена. В результате они получают сайты, которым гарантирована посещаемость благодаря созвучному сходству с популярными ресурсами. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/6a7/b6f/650/6a7b6f650469463a8720b7ed78f707a5.png
[2]: http://habrahabr.ru/post/272849/#habracut
#  [Перевод] Первые шаги с Java 9 и проект Jigsaw – часть вторая
habrabot (difrex,1) → All  –  12:00:02 2015-12-11


Здравствуйте, Хабр. После некоторого промедления публикуем вторую часть статьи о проекте Jigsaw и Java 9, вышедшую в блоге Codecentric. Перевод первой части находится [здесь][1]. [Читать дальше →][2]

[1]: http://habrahabr.ru/company/piter/blog/271941/
[2]: http://habrahabr.ru/post/272861/#habracut
#  В антивирусе Avast обнаружены критические уязвимости
habrabot (difrex,1) → All  –  09:30:02 2015-12-11


[![][1]][2] Летом 2015 года пользователи интернета широко обсуждали проблемы безопасности антивирусных инструментов. Напомним, тогда серьезные уязвимости были [обнаружены][3] в продуктах ESET, а затем и в [BitDefender с Symantec][4]. На текущей неделе стало известно об очередных проблемах с защитой антивирусного софта. Один из пользователей ресурса Google Code опубликовал описания и тестовые сценарии эксплуатации четырех серьезных уязвимостей антивируса Avast, две из которых являются критическими. [Читать дальше →][5]

[1]: https://habrastorage.org/files/ab2/d17/422/ab2d174220bf4f3782f11f5314a3dac0.jpg
[2]: http://habrahabr.ru/company/pt/blog/272851/
[3]: http://habrahabr.ru/company/pt/blog/261075/
[4]: http://habrahabr.ru/company/pt/blog/264013/
[5]: http://habrahabr.ru/post/272851/#habracut
#  Как я 8 месяцев переписывал свою криптовалюту с PHP на Go. Часть 1
habrabot (difrex,1) → All  –  08:30:02 2015-12-11


![][1] «Не звони и не пиши мне больше!!!!» — пришла смс-ка от моей девушки Кати. Через пару часов я осознал, что теперь у меня появилась куча свободного времени и я решил переписать Dcoin на Go. [Читать дальше →][2]

[1]: https://habrastorage.org/files/912/ce1/f48/912ce1f48a75415fb529d933668ed3bd.jpeg
[2]: http://habrahabr.ru/post/272695/#habracut
#  В антивирусе Avast обнаружены и устранены критические уязвимости
habrabot (difrex,1) → All  –  23:30:02 2015-12-10


[![][1]][2] Летом 2015 года пользователи интернета широко обсуждали проблемы безопасности антивирусных инструментов. Напомним, тогда серьезные уязвимости были [обнаружены][3] в продуктах ESET, а затем и в [BitDefender с Symantec][4]. На текущей неделе стало известно об очередных проблемах с защитой антивирусного софта. Один из пользователей ресурса Google Code опубликовал описания и тестовые сценарии эксплуатации четырех серьезных уязвимостей антивируса Avast, две из которых являются критическими. [Читать дальше →][5]

[1]: https://habrastorage.org/files/ab2/d17/422/ab2d174220bf4f3782f11f5314a3dac0.jpg
[2]: http://habrahabr.ru/company/pt/blog/272851/
[3]: http://habrahabr.ru/company/pt/blog/261075/
[4]: http://habrahabr.ru/company/pt/blog/264013/
[5]: http://habrahabr.ru/post/272851/#habracut
#  Материалы расследования: «200 лет со дня рождения Ады Лавлейс, первого программиста человечества»
habrabot (difrex,1) → All  –  16:00:02 2015-12-10


_**Дата:** 10 декабря 2015 года, начальнику отдела №8 от следователя id1033. **Тип запроса:** инициация расследования. **Причина:** в связи с подозрительной активность юзера id1596704383 в период с 30 июля 2005 по 9 декабря 2015, прошу предоставить необходимые ресурсы по Форме 2 и наделить полномочиями в соответствии с протоколом «Observer-z». **Обоснование:** на основе данных, полученных из открытых источников системой аналитики ПОПСИИ-2014 («Можжевельник») были выявлены уникальные сигнатуры (присвоены идентификаторы с sig8876 по sig8951), свидетельствующие об активном сборе и аналитике материалов из сети из разряда «Первоисточник-18». Согласно распоряжению от 20 ноября 2015, докладывать незамедлительно о любой активности в реальности связанной с «Первоисточник-18», уведомляю, что 10 декабря в 16-00 по московскому времени, юзер id1596704383 перешел к активным действиям в реальности. К запросу прилагаю материалы, перехваченные из черновиков юзера id1596704383 10 декабря 2015 года на публичном ресурсе «Habrahabr»._ ![][1] _«Я — дьявол или ангел» (Ада Лавлейс, из письма Чарльзу Бэббиджу 1843) _ **200 лет со дня рождения Ады Лавлейс, первого программиста человечества** 10 декабря 1815 года у поэта Байрона [родилась дочка][2], которая в 1842 году в свои 27 лет написала первую программу для [вычислительной машины (паровой) Бэббиджа][3].

> _«Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели.» Ада Лавлейс_

**Ada** — язык программирования, созданный в 1979—1980 годах в ходе проекта Министерством обороны США с целью разработать единый язык программирования для встроенных систем (то есть систем управления автоматизированными комплексами, функционирующими в реальном времени). Имелись в виду, прежде всего, бортовые системы управления военными объектами (кораблями, самолётами, танками, ракетами, снарядами и т. п.). 10 декабря 1980 года был утверждён стандарт языка. [Читать дальше →][4]

[1]: https://habrastorage.org/files/a66/41e/d80/a6641ed802004c4d91dbc8070cc1b5c6.jpg
[2]: http://geektimes.ru/post/80800/
[3]: http://habrahabr.ru/post/80334/
[4]: http://habrahabr.ru/post/272841/#habracut
#  Фишинговые приложения для Вконтакте на Google Play
habrabot (difrex,1) → All  –  15:30:02 2015-12-10


Пару месяцев назад лаборатория Каспеского опубликовала [статью][1] о фишинге аккаунтов ВК в Google Play, но не рассказали как это реализовано и почему такие приложения задерживаются в маркете. В их статье говорилось о том, что около 1 миллиона пользователей могли стать жертвами фишинга. Примерно те же приложения я реверсила еще весной. Я тогда поспорила с другом, что в маркете есть вредоносные приложения. Вредоносные приложения найти не получилось, нашлись только фейки для “Вконтакте”. Но возможно, просто мало искала. Но сейчас и их в маркете найти уже не удалось, скорее всего они были удалены, после обнаружения Лабораторией Касперского. [Читать дальше →][2]

[1]: http://habrahabr.ru/post/268581/
[2]: http://habrahabr.ru/post/272783/#habracut
#  Поднимаем сложный проект на Django с использованием Docker
habrabot (difrex,1) → All  –  15:30:02 2015-12-10


Добрый день, коллеги. Сегодня я расскажу о не совсем простой концепции быстрого (до часа после нескольких тренировок) развёртывания проекта для работы команды, состоящей как минимум из отдельных фронтенд и бэкенд разработчиков. Исходные данные у нас такие: начинается разработка проекта, в которой планируется «тонкий бэкенд». Т.е. бэк у нас состоит из закешированных страниц (рендерятся любым шаблонизатором), объёмных моделей с сопутствующей логикой (ORM) и REST API, выполняющего роль контроллера. Фактически, View в такой системе редуцировано и вынесено в JS, благо есть разные реакты, ангуляры и прочие вещи, которые позволяют фронтендщикам считать себя «белыми людьми». [Читать дальше →][1]

[1]: http://habrahabr.ru/post/272811/#habracut
#  [Перевод] 2015 – год Cryptolocker, и как кибер-преступники совершенствовали свои атаки
habrabot (difrex,1) → All  –  15:30:02 2015-12-10


![][1] В конце 2013 года появились первые признаки новых угроз, которые вскоре станут одним из самых прибыльных видов атак, осуществляемых кибер-преступниками. **Cryptolocker** – наиболее популярное семейство ransomware, которое в конечном итоге стало использоваться в качестве названия для всех угроз подобного типа. Эта угроза всегда работает по одному и тому же сценарию: шифрует документы и требует выкуп для того, чтобы восстановить зашифрованные документы. В этом году [мы уже писали][2] о принципах работы Cryptolocker. Кратко о том, каким образом происходит **шифрование файлов** уже после [Читать дальше →][3]

[1]: https://habrastorage.org/files/f08/723/f23/f08723f235094b419a9696bf4edeee06.jpg
[2]: http://club.cnews.ru/blogs/entry/cryptolocker_chto_eto_takoe_i_kak_ego_izbezhat
[3]: http://habrahabr.ru/post/272831/#habracut
#  Школа Данных «Билайн», приоткрываем занавес
habrabot (difrex,1) → All  –  13:00:02 2015-12-10


![][1] Привет, хабр! Вы уже много раз слышали про то, что мы проводим курсы машинного обучения и анализа данных в [Школе Данных «Билайн»][2]. Сегодня мы приоткроем занавес и расскажем, чему же учатся наши слушатели, и какие задачи им приходится решать. Итак, мы завершили наш первый курс. Сейчас идет второй и 25 января стартует третий. В [ предыдущих публикациях][3], мы уже начали рассказывать, чему мы учим на наших занятиях. Здесь мы более подробно поговорим о таких темах, как автоматическая обработка текстов, рекомендательные системы, анализ Больших Данных и успешное участие в соревнованиях Kaggle. [Читать дальше →][4]

[1]: https://habrastorage.org/files/93e/b67/737/93eb677375e444e9bca75a943e27d301.png
[2]: http://bigdata.beeline.digital
[3]: http://habrahabr.ru/company/beeline/blog/270619/
[4]: http://habrahabr.ru/post/272799/#habracut
#  Шпаргалка Java-программиста 5. Двести пятьдесят русскоязычных обучающих видео докладов и лекций о Java
habrabot (difrex,1) → All  –  13:00:02 2015-12-10


Думаю, мало кто будет спорить, что просмотр видео хороших лекций и докладов с конференций это один из самый быстрых и простых способов научится чему-то новому. Проблема в том, что по Java сложно найти все хорошие видео конференций и доклады по нужной теме. Более того, по названию многих видео с конференций сложно понять, какой именно они теме повещены. ![][1] Поэтому я подготовил данный сборник видео докладов на русском языке с различных конференций ([Joker][2], [JPoint][3], [JavaDays][4], [JEEConf][5], конечно, с [DEV labs][6], которые организовывает Luxoft), и, естественно, видео из канала [Luxoft Training Center][7]. Всё видео разделено на различные категории и при необходимости добавлено описание. [Читать дальше →][8]

[1]: https://habrastorage.org/files/6b1/35a/070/6b135a070120406eb0c62ab426228f2c.jpg
[2]: http://jokerconf.com
[3]: http://javapoint
[4]: http://javaday.org.ua/
[5]: http://jeeconf.com/materials/
[6]: http://www.soft-labs.net/ru/conf/DEV_labs_2015_Java_partII/
[7]: https://www.youtube.com/user/LuxoftTrainingCenter
[8]: http://habrahabr.ru/post/272025/#habracut
#  [recovery mode] Лаборатория тестирования на проникновение «Test lab v.8»: банк взломан
habrabot (difrex,1) → All  –  11:30:02 2015-12-10


![][1] 13 ноября 2015 г. была запущена очередная, восьмая по счету лаборатория тестирования на проникновение [«Test lab v.8»][2], которая представляла собой виртуальный банк. К моменту открытия лаборатории количество зарегистрированных участников превышало отметку в 5 000. Ниже будет представлена информация о результатах участия и ИТ-структуре лаборатории, а также имена и комментарии победителей с частичным прохождением. Итак, начнем. [Читать дальше →][3]

[1]: https://habrastorage.org/files/fee/4a3/d92/fee4a3d9268a4a809b93b5e9a859b743.png
[2]: https://lab.pentestit.ru/pentestlabs/4
[3]: http://habrahabr.ru/post/272539/#habracut
#  [Из песочницы] Общая схема построения алгоритмов на примере кубика Рубика
habrabot (difrex,1) → All  –  11:00:02 2015-12-10


![][1] Возможно, многие из читателей пытались собрать кубик Рубика 3×3 самостоятельно, но после множества неудачных попыток либо бросали это занятие, либо искали готовое решение. Целью этой статьи является показать на примере кубика Рубика что найти решение любой (из класса решаемых) задачи самостоятельно, есть вполне выполнимая задача для каждого, если при этом руководствоваться определенным набором правил. Данное решение получено мною за 10 часов, плюс этого алгоритма что он не требует запоминать сложные комбинации и длительное время тренироваться — достаточно собрать данным способом всего несколько раз. [Читать дальше →][2]

[1]: https://habrastorage.org/files/6a9/8ac/f7f/6a98acf7f01f47478c5943e87dbb9d21.png
[2]: http://habrahabr.ru/post/272803/#habracut
#  Эхо «правды Сноудена»: Дед Мороз следит за тобой
habrabot (difrex,1) → All  –  21:30:02 2015-12-09


После серии широко известных разоблачений, инициированных Эдвардом Сноуденом, в СМИ всё чаще и чаще говорят о т.н. «большом брате». Весна Интернета позади. Из объединяющего пространства, свободного от цензуры, Сеть превратилась в орудие глобального контроля. Государства всё жёстче отслеживают поступки своих граждан, подавляя любые нежелательные действия, и не только их. ![][1] Владеет Сетью тот, кто контролирует её структуры, разбросанные по городам мира: волоконно-оптические линии связи, спутники, серверы. Тотальный характер мощнейшей машины контроля пока очевиден не всем пользователям Интернета. Джулиан Ассанж, – основавший знаменитый проект WikiLeaks – и его соратники по движению «шифропанков» призывают к борьбе за свободу обмена информацией. Их оружие – криптография. Ими объявлен общий сбор под знамёна шифрования. [Читать дальше →][2]

[1]: https://habrastorage.org/files/cb9/5bd/21a/cb95bd21a33c4874925483a7d535d00a.jpg
[2]: http://habrahabr.ru/post/272727/#habracut
#  «Прозрачный» Squid с фильтрацией HTTPS ресурсов без подмены сертификатов (х86, х64 — универсальная инструкция)
habrabot (difrex,1) → All  –  14:00:02 2015-12-09


Всем привет! [Прошлая статья][1] про прозрачное проксирование HTTPS с помощью Squid'a была вполне успешной. Приходило по почте множество отзывов об успешной установке данной системы. Но также и поступали письма с просьбами о помощи. Проблемы были вполне решаемыми. Но не так давно обратилась ко мне одна коллега с просьбой о помощи в установке этой системы на х64 архитектуре (Debian). Тут мы озадачились. Во-первых, оказалось, что прошлая статья непригодна для этого по причине отсутствия нужных исходников в репозитории Debian (там теперь 3.5.10). Найти нужные в первой статье Debian'овские исходники не удалось, а checkinstall выдавал странные ошибки. Во-вторых, хотелось более универсального решения, которое бы без проблем работало и на х64, и на х86, и (по-возможности) на других дистрибутивах. Решение было найдено. Получилось небольшое дополнение к предыдущей статье + некоторые уточнения. Данная инструкция позволяет скомпилировать как х86, так и х64 версии Squid'a и создать соответствующие пакеты. Инструкция будет разбита на несколько пунктов и подпунктов. Если интересно, идем под кат: [Читать дальше →][2]

[1]: http://habrahabr.ru/post/267851/
[2]: http://habrahabr.ru/post/272733/#habracut
#  [Из песочницы] Простой метапоисковый алгоритм на Python
habrabot (difrex,1) → All  –  14:00:02 2015-12-09




#### Лирическое отступление

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

#### Когда лень работать руками

Первая и самая очевидная для меня мысль – написать простой метапоисковый алгоритм на Python. Другими словами, вся автоматизация сводится к использованию выдачи другой поисковой машины (Google Search) за неимением своих баз данных. Сразу оговорюсь, есть уже готовые библиотеки, решающие подобную задачу, например pygoogle. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/272711/#habracut
#  Oбновление Vim FileStyle
habrabot (difrex,1) → All  –  14:00:02 2015-12-09




### **О прошлом**

В декабре прошлого года, я [писал][1] о плагине который позволяет при открытии файла увидеть несоблюдение некоторых аспектов кодинг стандарта. ![image][2] Прошло время и плагин получил новый функционал. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/245691/
[2]: https://habrastorage.org/getpro/habr/post_images/1a0/8a7/7ae/1a08a77ae7bb846ae419dfd6a4c25dd8.png
[3]: http://habrahabr.ru/post/267765/#habracut
#  Python Meetup октябрь: Deliberate Practice и десктоп-приложения на Penta.by
habrabot (difrex,1) → All  –  14:00:02 2015-12-09


Всем привет! Спешим поделиться видеозаписями выступлений с очередной встречи минского Python-сообщества. Под катом вы найдете доклады:

* Deliberate Practice: Coding Dojo, Code Kata and Coderetreat / Сергей Сергиенко
* Быстрая разработка десктоп-приложений с Penta.by / Андрей Пучко
* WRK: Modern HTTP benchmarking tool / Алексей Романов

Приятного просмотра! ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/c26/f75/966/c26f759666b1420395f98c03cf62ae3a.jpg
[2]: http://habrahabr.ru/post/272739/#habracut
#  Собственные типы индексов в СУБД Caché
habrabot (difrex,1) → All  –  14:00:02 2015-12-09


[![][1]][2] В объектной и реляционной моделях данных СУБД Caché есть три типа индексов — обычные, [bitmap][3] и [bitslice][4]. Если по каким-то причинам этих индексов не хватает, начиная с версии 2013.1 программист может определить свой тип индексов и использовать его в любых классах. Подробности под катом (если вас не пугают слова типа метод-генератор). [Читать дальше →][5]

[1]: https://habrastorage.org/files/6c7/a54/754/6c7a547547284690aaf4668949b8b29e.jpg "Николай Загреков — Крестьянин с косой"
[2]: http://habrahabr.ru/post/272689/
[3]: http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_indices#GSQL_indices_bitmap
[4]: http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_indices#GSQL_indices_bitslice
[5]: http://habrahabr.ru/post/272689/#habracut
#  [Из песочницы] Битовая магия: получение следующего лексикографического сочетания
habrabot (difrex,1) → All  –  10:30:02 2015-12-09




# Введение

Допустим у нас есть некоторое множество, которое состоит из _N_ элементов. Будем считать, что элементы пронумерованы от нуля до _N-1_. Набор _k_-элементных подмножеств данного множества (сочетаний) можно представить либо в виде массива индексов длины _k_. Либо в виде последовательности из _N_ бит, в которой установлено ровно _k_ из них. У Дональда Кнута в его приводится алгоритм генерации сочетаний в лексикографическом порядке, когда сочетания заданы в виде массива индексов. Мы попробуем перенести этот алгоритм на случай битовых масок. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/272707/#habracut
#  Революция WikiLeaks: дайджест злоключений
habrabot (difrex,1) → All  –  10:30:02 2015-12-09


Сейчас в сети можно встретить множество упоминаний о WikiLeaks. Особенно в свете его притеснения со стороны правительственных спецслужб. Однако систематической и краткой информации, – которая может быть полезна при проведении тренингов по информационной безопасности, – об этом не так много. Представляю вашему вниманию свою версию такого систематически-краткого описания. Данная статья – это сжатый конспект тематических вырезок книги «Шифропанки: свобода и будущее Интернета», касающихся WikiLeaks. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/52f/339/403/52f339403265474a8ea99645d1e286c6.jpg
[2]: http://habrahabr.ru/post/272703/#habracut
#  Легко ли распознать информацию на банковской карточке?
habrabot (difrex,1) → All  –  09:00:02 2015-12-09


![][1] Когда мы общаемся с нашими заказчиками, то, будучи специалистами в этой области, активно используем соответствующую терминологию, в частности слово «распознавание». При этом слушающая аудитория, воспитанная на Cuneiform и FineReader, часто вкладывает в этот термин именно задачу сопоставления вырезанного участка изображения некоторому числу (коду символа), которая в наши дни решается нейросетевым подходом и является далеко не первым этапом в задаче распознавания информации. В начале необходимо локализовать карточку на изображении, найти информационные поля, выполнить сегментацию на символы. Каждая перечисленная подзадача с формальной точки зрения является самостоятельной задачей распознавания. И если для обучения нейронных сетей существуют зарекомендовавшие себя подходы и инструменты, то в задачах ориентации и сегментации каждый раз требуется индивидуальный подход. Если вам интересно узнать про подходы, которые мы использовали при решении задачи распознавания банковской карточки, тогда добро пожаловать под кат! [Читать дальше →][2]

[1]: https://habrastorage.org/files/9d1/714/ca1/9d1714ca18cf4e149701b65e7e491d88.png
[2]: http://habrahabr.ru/post/272607/#habracut
#  collectd + front-end
habrabot (difrex,1) → All  –  07:30:02 2015-12-09


![][1] Как показывает практика — б**o**льшая часть клиентов никак не мониторит используемые ресурсы, арендуемых ими услуг (особенно это заметно на дешевых услугах VPS от 3$).То есть, после установки системы и настройки необходимого для проекта софта, дальнейшая судьба сервера отдается на откуп случаю. И, когда появляются проблемы с работоспособностью сервера, информации для анализа не слишком много. _Кроме установленного и настроенного логирования в [atop][2] (который так же встречается не часто), логов системы, хотелось бы иметь больше информации с которой можно работать._ В данной статье будет описана процедура установки и настройки [collectd][3] и [collectd-web][4] на примере ОС семейства Debian. [Читать дальше][5]

[1]: https://habrastorage.org/files/14e/71d/c1c/14e71dc1ccb44f19995dd6612b1fce90.png
[2]: https://ru.wikipedia.org/wiki/Atop
[3]: https://collectd.org/
[4]: https://github.com/httpdss/collectd-web
[5]: http://habrahabr.ru/post/272447/#habracut
#  [Перевод] Нейросеть на Python, часть 2: градиентный спуск
habrabot (difrex,1) → All  –  18:30:02 2015-12-08


_[Часть 1][1]_

#### Давай сразу код!



import numpy as np
X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
alpha,hidden_dim = (0.5,4)
synapse_0 = 2*np.random.random((3,hidden_dim)) - 1
synapse_1 = 2*np.random.random((hidden_dim,1)) - 1
for j in xrange(60000):
layer_1 = 1/(1+np.exp(-(np.dot(X,synapse_0))))

>> Читать далее
#  [Перевод] Научиться программировать сложнее, чем кажется
habrabot (difrex,1) → All  –  18:00:03 2015-12-08


![][1] _Просто «El clasico»_ «Много букв», «не осилил»: как показывает опыт, программирование требует наличия определенных способностей, которыми обладает лишь небольшой процент населения земли. Современная мода на экспресс-курсы в этой области порождает все больше спекуляций на тему, что отнюдь не способствует росту количества квалифицированных программистов. Этот пост подготовлен с учетом реалий Великобритании, а потому совершенно логично, что в других странах ситуация может выглядеть иначе, в частности, когда речь идет о социальном статусе разработчиков программного обеспечения. Средства массовой информации не перестают освещать тему нехватки квалифицированных программистов («программистов», «кодировщиков», «разработчиков ПО», поскольку все термины означают одно и тоже, я буду использовать из как взаимозаменяемые). Постоянно ведутся споры по поводу низкого уровня квалификации программистов. По сути мы просто не в состоянии подготовить кадры, соответствующие «солидным запросам завтрашнего дня». Вот что пишет The Telegraph: «Согласно данным Научного Совета, к 2030 году количество специалистов в сфере информационно-коммуникационных технологий вырастет на 39%, а в отчете О2 за 2013 год отмечалось, что для удовлетворения спроса на такого рода специалистов в период до 2017 года потребуется порядка 745 000 новых сотрудников. Кроме того, по результатам исследований, проведенных в прошлом году City & Guilds, три четверти работодателей из сферы IT, компьютерных и информационных услуг отметили явную нехватку квалифицированных кадров, в то время как 47% опрошенных заявили о неспособности действующей системы образования подготовить хороших специалистов». [Читать дальше →][2]

[1]: https://habrastorage.org/files/039/52f/9b7/03952f9b74474fa5837b758f5e9dabb1.JPG
[2]: http://habrahabr.ru/post/272617/#habracut
#  А можно ли не платить за панель? «Монетка»
habrabot (difrex,1) → All  –  15:00:03 2015-12-08


Наступает момент когда [виртуального хостинга][1] становиться недостаточно и Ваш проект так и «проситься» на сервер. Не всегда для новых задач Вам понадобится сразу [выделенный сервер][2], но как минимум с [виртуального сервера][3] начать стоит. При этом многие из Вас, что бы как то сэкономить начинают искать партнера(ов) для аренды более производительной услуги. Также, одним из вариантов экономии бюджета — есть использование бесплатного программного обеспечения. Ведь не каждому из Вас, например, будет приятно сидеть в консоле и устанавливать необходимое ПО, или производить управление Вашими сайтами через туже командную строку. В такие моменты на помощь многим вебмастерам приходят панели управления хостингом, и как же приятно когда эта панель — именно качественный и бесплатный софт. Совсем недавно мы уже [рассказывали][4] об одном бесплатном программном продукте, ну а сегодня речь пойдет об еще одной интересной панели управления хостингом, а именно о «монетке»… ![][5] [Читать дальше →][6]

[1]: http://ua-hosting.company/hosting?language=russian
[2]: http://ua-hosting.company/servers?language=russian
[3]: http://ua-hosting.company/vps?language=russian
[4]: http://habrahabr.ru/company/ua-hosting/blog/271673/
[5]: https://habrastorage.org/files/cd5/81d/2f3/cd581d2f3894453c9fc6f988de171def.jpg
[6]: http://habrahabr.ru/post/272633/#habracut
#  Альтернатива Unity: Urho3D + C# + Xamarin
habrabot (difrex,1) → All  –  15:00:03 2015-12-08


Про Urho3D уже [писали][1] на хабре, это полностью открытый 3D движок на языке С++ с редактором и интересным набором 3rd parties: Box2D, Bullet, kNet, Recast/Detour, SDL, FreeType и т.п. У движка есть редактор (написанный на нем же), но к сожалению, он далеко от Unity, зато есть другие плюсы (о них далее). Движок имеет очень аккуратный API, что стало причиной обращения взгляда Xamarin для использования кодогенератора (С++ API to C#) для генерации байндингов поверх API на языке C#. В результате получился движок ([UrhoSharp][2]) со следующими плюсами (по сравнению с тем же Unity):

* Полная поддержка последней версии Mono 4.2.x, C# 6.0/F# с Xamarin Studio / Visual Studio — грубо говоря это обычное приложение с шаблонами проектов для Visual Studio
* Открытый код (однако, для запуска на iOS и Android понадобится как минимум Xamarin Indie лицензия поскольку именно Xamarin используется на этих ОС в качестве платформы)
* Наличие C# (Xamarin) контролов, которые могут быть интегрированы в существующие неигровые приложения.
* Все плюшки оригинального движка, описанные в большом списке [тут][3].
* Распространяется через Nuget который содержит базовые ассеты и native библиотеки что делает его легко подключаемым
* Отличная производительность, минимальный оверхед от .NET/Mono

![][4] [Читать дальше →][5]

[1]: http://habrahabr.ru/post/265611/
[2]: http://developer.xamarin.com/guides/cross-platform/urho/
[3]: http://urho3d.github.io/

>> Читать далее
#  Что нам стоит сайт распарсить. Основы webdriver API
habrabot (difrex,1) → All  –  15:00:03 2015-12-08


[Поиск жилья][1], информации о товарах, вакансий, [знакомств][2], сравнение товаров фирмы с конкурентами, исследование отзывов в сети. ![][3] В интернет опубликовано много полезной информации и умение извлекать данные поможет в жизни и работе. Научимся получать информацию с помощью webdriver API. В публикации приведу два примера, код которых доступен на github. В конце статьи скринкаст про то, как программа управляет браузером. [Читать дальше →][4]

[1]: http://habrahabr.ru/post/237869/
[2]: http://habrahabr.ru/post/244193/
[3]: https://habrastorage.org/files/023/f78/7cc/023f787cc19746b7906d9fa1abdd335f.png
[4]: http://habrahabr.ru/post/272105/#habracut
#  Lori Timesheets — учет времени на платформе CUBA
habrabot (difrex,1) → All  –  15:00:03 2015-12-08








> _“Время – это капитал работника умственного труда.” **Оноре де Бальзак**_

Часто случается, что люди отдают предпочтение старым и привычным вещам, игнорируя новые, даже себе во вред. Вот так и мы долгое время с упорством использовали систему учета времени, которая не отвечала нашим требованиям и постоянно создавала проблемы буквально всем — от программистов до бухгалтерии. ![][1] Всеобщие мучения с системой учета времени, по причине отсутствия времени (см рисунок), не стали веским основанием для разработки своей системы. Спасла же ситуацию идея написать реальное приложение для демонстрации возможностей нашей платформы CUBA. Совмещая приятное с полезным, система учета времени стала первым кандидатом. В настоящий момент разработка завершена, приложение внедрено в нашей компании, и мы готовы [поделиться][2] им со всеми желающими. В этой статье я расскажу, как мы в сжатые сроки (< 1 мес), ограниченными силами (человек и еще полчеловека) разработали это приложение. [Если вам интересно, добро пожаловать под кат][3]

[1]: https://habrastorage.org/files/6aa/244/d70/6aa244d704354f4383fe9b0b05bdafdf.png
[2]: https://www.cuba-platform.ru/solutions
[3]: http://habrahabr.ru/post/272231/#habracut
#  Как разрабатывается Cloud Foundry
habrabot (difrex,1) → All  –  15:00:03 2015-12-08


![CF community logo][1]Я кратко расскажу о процессе разработки [Cloud Foundry][2] (CF), особенностях open source модели и немного личного опыта. В 2013 году я стал активным пользователем платформы, когда IBM запустила внутреннюю бету [Bluemix][3], в начале этого года я принял участие в портировании Cloud Foundry на [архитектуру POWER8][4], а с середины октября я стал членом CF core team, пройдя CF Dojo. Но обо всем по порядку. Не буду углубляться в историю или объяснять что такое Cloud Foundry, но вот необходимый минимум фактов. CF — это Platform as a Service (PaaS), разработанная VMWare и позднее переданная Pivotal Software. Исходный код был [открыт][5], сейчас еще есть отдельный [инкубатор][6] CF проектов. Чуть позже была создана [Cloud Foundry Foundation][7], в которую вошли Pivotal, IBM, VMWare, EMC, GE, Intel, SAP, настоящее время в нее входит более [50 организаций][8]. Изначально платформа была написана на Ruby, позднее часть компонент были переписаны на Go. [Читать дальше →][9]

[1]: https://habrastorage.org/files/840/bc2/176/840bc217654e4e6f8e2beffd8ed1198f.png
[2]: https://en.wikipedia.org/wiki/Cloud_Foundry
[3]: https://bluemix.net
[4]: https://en.wikipedia.org/wiki/POWER8
[5]: https://github.com/cloudfoundry/
[6]: https://github.com/cloudfoundry-incubator/
[7]: https://www.cloudfoundry.org
[8]: https://www.cloudfoundry.org/membership/members/
[9]: http://habrahabr.ru/post/272645/#habracut
#  Вперед, на поиски палиндромов 2
habrabot (difrex,1) → All  –  10:00:02 2015-12-08


Не так давно прочитал на хабре статью [grey\_wolfs][1] [«Вперед, на поиски палиндромов»][2] о решении и оптимизации любопытной конкурсной задачки с весьма лаконичной формулировкой:

> «The decimal number 585 is 1001001001 in binary. It is palindromic in both bases. Find n-th palindromic number». Или, по-русски: «Десятичное число 585 в двоичной системе счисления выглядит как 1001001001. Оно является палиндромом в обеих системах счисления. Найдите n-й подобный палиндром».

[Подробности][3]

[1]: http://habrahabr.ru/users/grey_wolfs/
[2]: http://habrahabr.ru/post/270325/
[3]: http://habrahabr.ru/post/272555/#habracut
#  [Из песочницы] Анонимное подключение к meterpreter/reverse_tcp через промежуточный сервер с помощью SSH-туннелей
habrabot (difrex,1) → All  –  10:00:02 2015-12-08


Всем привет! Эта статья рассчитана скорее на новичков, которые только начинают своё знакомство с Metasploit Framework, но уже кое-что понимают. Если вы считаете себя опытным специалистом и вас заинтересовало название, можете сразу перейти к [TL;DR;][1] в конце. Речь в этой статье пойдет о том, как устроить анонимный доступ к meterpriter оболочке посредством reverse tcp с использованием промежуточного сервера и SSH туннелей. [Хочу всё знать][2]

[1]: http://habrahabr.ru/post/272547/#tldr
[2]: http://habrahabr.ru/post/272547/#habracut
#  Java 8 в параллель. Учимся создавать подзадачи и контролировать их выполнение
habrabot (difrex,1) → All  –  10:00:02 2015-12-08


Всем привет. Продолжаем цикл статей, посвященный обработке больших объемов данных в параллель (красивое слово, неправда?). В предыдущей [статье][1] мы познакомились и интересным инструментарием **Fork/Join Framework**, позволяющим разбить обработку на несколько частей и запустить параллельно выполнение отдельных задач. Что нового в этой статье – спросите Вы? Отвечу – более содержательные примеры и новые механизмы для качественной обработки информации. Параллельно :) я вам расскажу о ресурсных и прочих особенностях работы в этом режиме. ![][2] Всех заинтересованных приглашаю под кат: [Читать дальше →][3]

[1]: http://habrahabr.ru/post/270943/
[2]: https://habrastorage.org/files/1ed/637/257/1ed637257ec2460c97f0d98b7eade44d.png
[3]: http://habrahabr.ru/post/272479/#habracut
#  Spring MVC/Security, REST, Hibernate, Liquibase запускаем в две строки
habrabot (difrex,1) → All  –  10:00:02 2015-12-08


![][1] Современные системы сборки позволяют полностью автоматизировать процесс компиляции и запуска приложения из исходников. На целевой машине необходим лишь JDK, все остальное включая и сам сборщик загрузится налету. Надо лишь правильно построить процесс сборки и по запуску двух команд получить, например, следующее: запуск базы данных, выполнение SQL скриптов, компиляцию Java, Javascript и CSS файлов, запуск контейнера сервлетов. Реализуется это с помощью Gradle, HSQLDB, Liquibase, Google closure compile и Gretty. Подробнее в статье. [Читать дальше →][2]

[1]: https://habrastorage.org/files/200/413/9d3/2004139d3c1042a69ae608ca5422ee60.png
[2]: http://habrahabr.ru/post/271719/#habracut
#  [Из песочницы] Калибровка Kinect v2 с помощью OpenCV на Python
habrabot (difrex,1) → All  –  10:00:02 2015-12-08


Не так давно мы начали пару проектов, в которых необходима оптическая система с каналом дальности, и решили для этого использовать Kinect v2. Поскольку проекты реализуются на Python, то для начала нужно было заставить работать Kinect из Python, а затем откалибровать его, так как Kinect из коробки вносит некоторые геометрические искажения в кадры и дает сантиметровые ошибки в определении глубины. До этого я никогда не имел дела ни с компьютерным зрением, ни с OpenCV, ни с Kinect. Исчерпывающую инструкцию, как со всем этим хозяйством работать, мне найти тоже не удалось, так что в итоге пришлось порядком повозиться. И я решил, что будет не лишним систематизировать полученный опыт в этой статье. Быть может, она окажется небесполезной для какого-нибудь страждущего,. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/fa0/4ae/2d7/fa04ae2d7d414303b1cd224d7416b8f2.png
[2]: http://habrahabr.ru/post/272629/#habracut
#  C# WPF – Собственный ListView с «блэкджеком и …»
habrabot (difrex,1) → All  –  10:00:02 2015-12-08




# Введение

Признаем все, что «DotNetFramework» — гениальное изобретение Microsoft, которое предоставляет внушительный набор готовых компонентов и позволяет строить ПО по принципу «LEGO». Но не всегда их достаточно, особенно для специфических задач, требующих либо «особенного быстродействия», либо «особенного способа взаимодействия»… И Microsoft даёт возможность создавать свои компоненты. Итак, хочу поделиться опытом создания собственного ListView-компонента (будем называть так вид компонентов, которые выводят для просмотра список каких-либо объектов) — «по-быстрому» (в условиях, когда надо было ещё вчера). [Читать дальше →][1]

[1]: http://habrahabr.ru/post/272595/#habracut
#  Django: Как быстро получить ненужные дубликаты в простом QuerySet
habrabot (difrex,1) → All  –  10:00:02 2015-12-08


Всех приветствую! Только что обнаружил интересный баг (баг с точки зрения человеческой логики, но не машины), и решил им поделиться с сообществом. Программирую на django уже довольно долго, но с таким поведением столкнулся впервые, так что, думаю, кому-нибудь да пригодится. Что ж, к делу! Пусть у нас в коде есть такой примитивный кусок:

# views.py
ids = [5201, 5230, 5183, 5219, 5217, 5209, 5246, 5252, 5164, 5248, ...<и т.д.>...]
products = Product.objects.filter(id__in=ids)


Полученные товары про помощи пагинации выводятся на соответствующей страничке по 20 штук. Однажды звонит менеджер и говорит, что товар «прыгает» по страницам — сначала он был замечен на второй странице, а потом внезапно повторяется на пятой. «Ха» — заявляем мы, ставим брейкпоинт после указанного блока кода и делаем print(products). Визуально и, для верности, циклом проверяем вывод — а там дубликатов нет! [В чём же дело?][1]

[1]: http://habrahabr.ru/post/272559/#habracut
#  [Перевод] Самомодифицирующийся код
habrabot (difrex,1) → All  –  09:30:04 2015-12-08


В статье подробно рассказано о самомодифицирующимся коде (СМК), и о том, как его использовать в своих программах. Примеры написаны на C++ с использованием встроенного ассемблера. Ещё я расскажу о том, как выполнять код на стеке, что является существенным козырем при написании и выполнении СМК. ![][1]

### 1\. Вступление

Ну что ж, поехали. Статья обещает быть длинной, так как мне хочется написать её такой, чтобы у вас не возникло никаких вопросов. На тему СМК уже существует миллион статей, но здесь представлено моё видение проблемы – после сотен часов написания СМК… Я попытаюсь впихнуть все свои труды сюда. Всё, хватайте томатный сок (или что вы там предпочитаете пить), делайте музыку громче и готовьтесь узнать, как избавить своё приложение от начинающих кракеров! Попутно, я расскажу вам о памяти Windows и некоторых других вещах, о которых вы даже и не подозреваете. [Читать дальше →][2]

[1]: https://habrastorage.org/files/613/3b0/ab9/6133b0ab9f0b4f368aa49f5712a7b8ae.jpg
[2]: http://habrahabr.ru/post/272619/#habracut
#  [Перевод] Вызываем обработчики событий потокобезопасно без лишнего присваивания в C# 6
habrabot (difrex,1) → All  –  09:30:04 2015-12-08




## От переводчика

Часто начинающие разработчики спрашивают, зачем при вызове обработчика нужно копировать его в локальную переменную, а как показывает код ревью, даже опытные разработчики забывают об этом. В C# 6 разработчики языка добавили много синтаксического сахара, в том числе null-conditional operator (null-условный оператор или Элвис-оператор — **?.**), который позволяет нам избавиться от ненужного (на первый взгляд) присваивания. Под катом объяснения от Джона Скита — одного из самых известных дот нет гуру. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/272571/#habracut
#  [Перевод] Что делать, если программировать становится скучно
habrabot (difrex,1) → All  –  09:00:03 2015-12-08


![image][1]_Случалось ли c вами, долго работая в одной компании над одним и тем же проектом, начинаешь задумываться о смене обстановки, используемых технологий и самого проекта. Раньше я был уверен, что из этой ситуации один выход — найти новую работу. Эта статья, перевод которой мы публикуем, поменяла мое мнение. В ней описывается подход, благодаря которому можно сделать работу программиста нескучной и помогающей ему расти и развиваться. Мы, сервис для организации приема платежей [PayOnline][2], предлагаем вам ознакомиться с этой методикой и поделиться ею со своим работодателем, в случае, если вы испытываете подобные, описанные автором проблемы. Ниже идет, непосредственно, перевод._ В мою бытность разработчиком я никогда не задерживался на одной и той же работе более двух лет. В моем случае каждая новая работа была для меня хорошим ходом с точки зрения карьерного роста. И даже несмотря на то, что высокая “текучка” — обычное дело в нашей профессиональной сфере, я не могу сказать, что мои предыдущие работодатели спокойно относились к моему уходу. Некоторые из них упорно пытались сделать так чтобы я остался, но работа становилась для меня настолько скучной, что оставаться я уже не мог. Сразу поясню: мне посчастливилось жить в таких местах, где работы для программистов было больше чем самих программистов. Я понимаю, что вариант со сменой работы доступен не всем. [Читать дальше →][3]

[1]: https://habrastorage.org/files/dca/599/7ab/dca5997abb7d429ab0b8d6760c880816.jpg
[2]: http://payonline.ru/?utm_source=habrahabr&utm_medium=referral&utm_campaign=webpayments-main
[3]: http://habrahabr.ru/post/272609/#habracut
#  Эксплуатация инъекций в Hibernate ORM
habrabot (difrex,1) → All  –  09:00:03 2015-12-08


Доклад на эту тему был представлен на конференции [ZeroNights 0x05][1] на секции FastTrack. Работа оказалась очень актуальной и вызвала большой интерес, поскольку в последнее время проблема эксплуатации HQL-инъекций [интересовала многих security-исследователей, специализирующихся на веб-безопасности][2]. Поэтому я решил написать статью, которая раскрывает дополнительные детали, позволяющие лучше понять результаты работы. Современные приложения, написанные на языке Java, как правило, работают с СУБД не напрямую, а используют Java Persistence API (JPA). JPA – это API, который был добавлен в состав платформ Java SE и Java EE, начиная с Java версии 5, для того, чтобы было удобно сохранять Java-объекты в базу данных и извлекать их из базы данных. Существует большое количество ORM-библиотек (ORM – Object-Relational Mapping) для JAVA, которые реализуют спецификацию JPA. На сегодняшний момент последняя версия спецификации 2.1. Одна из популярных ORM-библиотек — [Hibernate ORM][3]. На данный момент Hibernate является проектом RedHat. Cерверы приложений WildFly и JBoss используют Hibernate в качестве ORM. Hibernate ORM использует объектно-ориентированный язык запросов [Hibernate Query Language (HQL)][4] для написания запросов к сущностям Hibernate, которые хранятся в базе данных. [Читать дальше →][5]

[1]: http://2015.zeronights.ru/
[2]: https://twitter.com/Agarri_FR/status/670176931627851776
[3]: http://hibernate.org/
[4]: https://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html
[5]: http://habrahabr.ru/post/272589/#habracut
#  Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 21. «Master Splyntr»
habrabot (difrex,1) → All  –  08:00:02 2015-12-08


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция. _(Приношу извинения, потерялся перевод 20-й главы, ждать нет сил и буду выкладывать остальные.)_

#### Глава 21. Master Splyntr

_(за перевод спасибо [ungswar][4] )_ Занимая целый этаж зеленого офисного строения на берегу реки Мононгахила, Национальный Альянс Кибер-Криминалистики и Обучения (НАККО) был весьма далек от секретности Вашингтонского разведывательного сообщества, где Муларски делал первые шаги. Здесь дюжины экспертов по безопасности из банков и технологических компаний работали наряду со студентами из близлежащего университета Карнеги-Меллон в кучно расставленных аккуратных кабинках, окруженных кольцом кабинетов и, затем, стенами здания из тонированного стекла. Со стульями Aeron\* и вайтбордами, офис создавал ощущение одной из технологических компаний, которые снабжали НАККО основной частью средств. ФБР внесли несколько изменений перед тем как въехать, переделали один из кабинетов в комнату с электронными коммуникациями, заполнили ее компьютерами одобренными правительством и шифровальным оборудованием, чтобы безопасно коммуницировать с Вашингтоном. В своем кабинете Муларски изучил схему связей Крэбба — почтового инспектора, который прислал ее по e-mail — большая схема показывающая различные связи между 125-ю целями из подполья. Муларски осознал, что он делал все неправильно: ожидал преступления, а потом пытался вычислить виновников. Преступники вовсе не прятались. Они рекламировали свои услуги на форумах. Это делало их уязвимыми, так же, как ритуалы и строгая иерархия Нью-Йоркской и Чикагской мафии, которые дали ФБР инструкцию чтобы сломить банды десятилетия назад. Все что ему надо было сейчас сделать — это присоединиться к кардерам. [Читать дальше →][5]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: http://habrahabr.ru/users/ungswar/
[5]: http://habrahabr.ru/post/272573/#habracut
#  Microsoft добавил возможность отключения слежения в версиях Windows 10 для корпоративных клиентов
habrabot (difrex,1) → All  –  18:30:02 2015-12-07


Microsoft довольно своеобразно отреагировал на свалившуюся на него со всех сторон критику по поводу слежки за пользователями: как [пишет][1] сайт Techrepublic, новый апдейт популярной ОС позволит пользователям блокировать мониторинг, но только в Enterprise (корпоративной) версии. Об этом радостном событии было объявлено 12 ноября этого года. ![][2] [Читать дальше →][3]

[1]: http://www.techrepublic.com/article/windows-10-now-lets-you-turn-off-tracking-but-only-if-youre-a-business/
[2]: https://habrastorage.org/files/5df/5d2/b14/5df5d2b14ec241f584811e5fe10e5ff1.jpg
[3]: http://habrahabr.ru/post/272591/#habracut
#  Не все cookie одинаково полезны
habrabot (difrex,1) → All  –  18:00:02 2015-12-07


В этой статье я хотел бы рассказать о том, как можно объединить небольшие недочеты в обработке cookie-значений в цепочку, и произвести за счет этого атаку на пользователей популярных веб-приложений. ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/8c5/51b/d1d/8c551bd1de92be5e0d526a22355c0bc9.png
[2]: http://habrahabr.ru/post/272187/#habracut
#  [Перевод] Как устроены дыры в безопасности: переполнение буфера
habrabot (difrex,1) → All  –  16:30:03 2015-12-07




> Прим. переводчика:
>
> _Это перевод статьи Питера Брайта (Peter Bright) «How security flaws work: The buffer overflow» о том, как работает переполнение буфера и как развивались уязвимости и методы защиты_
>
> .
>
>

_Беря своё начало с Червя Морриса (Morris Worm) 1988 года, эта проблема поразила всех, и Linux, и Windows._ Переполнение буфера (buffer overflow) давно известно в области компьютерной безопасности. Даже первый само-распространяющийся Интернет-червь — Червь Морриса 1988 года — использовал переполнение буфера в Unix-демоне finger для распространения между машинами. Двадцать семь лет спустя, переполнение буфера остаётся источником проблем. Разработчики Windows изменили свой подход к безопасности после двух основанных на переполнении буфера эксплойтов в начале двухтысячных. А обнаруженное [в мае сего года][1] переполнение буфера в Linux драйвере (потенциально) подставляет под удар миллионы домашних и SMB маршрутизаторов. По своей сути, переполнение буфера является невероятно простым багом, происходящим из распространённой практики. Компьютерные программы часто работают с блоками данных, читаемых с диска, из сети, или даже с клавиатуры. Для размещения этих данных, программы выделяют блоки памяти конечного размера — буферы. Переполнение буфера происходит, когда происходит запись или чтение объёма данных большего, чем вмещает буфер. На поверхности, это выглядит как весьма глупая ошибка. В конце концов, программа знает размер буфера, а значит, должно быть несложно удостоверится, что программа никогда не попытается положить в буфер больше, чем известный размер. И вы были бы правы, рассуждая таким образом. Однако переполнения буфера продолжают происходить, а результаты часто представляют собой катастрофу для безопасности. Чтобы понять, почему происходит переполнение буфера — и почему результаты столь плачевны — нам нужно рассмотреть то, как программы используют память, и как программисты пишут код. (Примечание автора: мы рассмотрим, в первую очередь, переполнение стекового буфера (stack buffer overflow). Это не единственный вид переполнения, но оно является классическим и наиболее изученным видом) [Читать дальше →][2]

[1]: http://arstechnica.com/security/2015/05/90s-style-security-flaw-puts-millions-of-routers-at-risk/
[2]: http://habrahabr.ru/post/266591/#habracut
#  [Перевод] Случайность в PHP7 – Повезет ли мне?
habrabot (difrex,1) → All  –  15:30:02 2015-12-07


В этой статье мы проанализируем проблемы, относящиеся к генерации случайных чисел, используемых в криптографии. PHP5 не обеспечивает простой механизм генерации криптостойких случайных чисел, в то время как PHP7 решает эту проблему путем введения [CSPRNG][1]-функций.

## Что такое CSPRNG?

Цитируя [википедию][2], криптографически стойкий генератор псевдослучайных чисел (англ. Cryptographically secure pseudorandom number generator, CSPRNG) — это генератор псевдослучайных чисел с определёнными свойствами, позволяющими использовать его в криптографии. CSPRNG в основном используется для следующих целей:

* Генерация ключей (в том числе, генерация public/private ключей)
* Создание случайных паролей для аккаунтов пользователей
* Системы шифрования

Главным аспектом сохранения высокого уровня безопасности является высокое качество случайности.

## CSPRNG в PHP7


>> Читать далее
#  Паранойя и хеши
habrabot (difrex,1) → All  –  15:00:03 2015-12-07


![image][1] Немного защиты от code injection, но Этот способ не панацея, но немного усложняет жизнь иньекций кода.

#### Лирика

Т.к. с каждым скачком высокоуровневого программирования все меньше людей понимают ассемблер, то есть смысл задуматься: А что если программа, которую вы исполняете не является ею? Или, а что если вирус заменяет куски программы, которые вы используете? Умные люди в далеких 80х придумали один рецепт для того, чтобы подтвердить цельность исполнительных файлов и отдельных их кусков — хеши. Обычно все релизы библиотек поставляются с хешом или цифровой подписью, чтобы проверить именно этот ли автор поставляет нам либу, или приложение, не было ли оно изменено никем кроме него. Есть языки (С, C++) которые не поддерживает эту фичу в рантайме (как например в Обероне, в котором есть немного здравых идей, как модули например), но С хорош тем, что с прямыми руками его можно немного доработать напильником. При большом желании можно также доработать С компилятор, но это другая история. Почему не стоит доверять никому? Есть очень много вариантов ответа на этот вопрос. Часть из них в [шуточном виде][2]. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/fe7/5a1/3bb/fe75a13bbbd36c015b34a41bb0df990b.jpg
[2]: http://habrahabr.ru/post/241854/
[3]: http://habrahabr.ru/post/272561/#habracut
#  Palantir 101. Что позволено знать простым смертным о второй по крутоcти частной компании в Кремниевой Долине
habrabot (difrex,1) → All  –  12:30:05 2015-12-07


![][1] _(За перевод спасибо Алексею Ворсину)_ Доброе утро и добро пожаловать на GovCon7. Меня зовут Сод Абдулли и я ведущий инженер по внедрению Palantir Technologies и это Palantir 101. Я хотел бы в ближайшие полчаса или сорок пять минут рассказать о том что это, кто мы, что такое Palantir, и что он делает для организаций, с которыми мы работаем, а также, ближе к концу мероприятия, мы проведем небольшую презентацию. Прежде чем перейти ко всему этому, я хочу начать с пары историй, которые должны пролить свет на то, что мы и Palantir, думаем о проблеме анализа в мире Big Data. ![][2] Первая история, — это история о шахматах. Многие из ваз знают, что в 1997 я участвовал в разработке шахматного суперкомпьютера Deep Blue, который одолел Гарри Каспарова, на тот момент, бывшего лучшим шахматистом в мире. Сейчас в простой мобильник могут быть установлены шахматы, играющие на турнирном уровне, и вопрос о том, кто сильнее в шахматах, человек или компьютер, уже не актуален. Новый интересный вопрос: «Что будет, если человек и компьютер будут играть в шахматы вместе, как команда?» Во-первых, такие команды показали высокую эффективность, и, на самом деле, это вполне ожидаемо, так как люди хороши в шахматах, компьютеры очень хороши в шахматах, но хороши они по разным причинам: компьютеры имеют серьезное тактическое преимущество, они могут оценивать многие тысячи комбинаций ежесекундно; у людей есть опыт, способность к трюкам, чутье и умение прочувствовать оппонента, что компьютеру тяжело дается. Эти силы сочетаемы и команда человек/компьютер способна победить и команды сильнейших игроков и объединения сильнейших суперкомпьютеров. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c79/348/950/c793489501cd4abbbe00db3859d13974.jpg
[2]: https://habrastorage.org/files/e25/e46/682/e25e466829384f52b750ff395b80ee90.jpg
[3]: http://habrahabr.ru/post/271883/#habracut
#  [Из песочницы] Редактирование образа Raspberry Pi с помощью qemu-user-static (Ubuntu 14.04)
habrabot (difrex,1) → All  –  12:30:05 2015-12-07


![image][1] Иногда необходимо редактирование стандартных загрузочных образов, а также конфигурирование систем с последующим тиражированием на большое количество плат Raspberry P