RSS
Pages: 1 ... 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 133
[>] Научим практической безопасности: Летняя стажировка в Positive Technologies
habra.16
habrabot(difrex,1) — All
2016-07-19 20:00:05


[![][1]][2]

Мы в Positive Technologies не только занимаемся разработкой [продуктов][3], которые обеспечивают безопасность инфраструктуры многих компаний и государственных учреждений, но и активно помогаем развивать ИТ и ИБ отрасль нашей страны. Для этого мы открываем [офисы][4] разработки в разных городах, поддерживаем ВУзы в рамках образовательной программы[ Positive Education][5], делимся наработками в рамках программы [бесплатных вебинаров][6] и выступаем организаторами одной из самых ярких «хакерских» конференций Европы [Positive Hack Days][7].

В этом году мы решили пойти еще дальше и организовать летнюю практику для студентов, практиков информационной безопасности, HackQuest-еров и просто любителей ИБ. Итак, сегодня мы расскажем о летней стажировке в Positive Technologies по курсу «Основы практической безопасности». [Читать дальше →][8]

[1]: https://habrastorage.org/files/093/9ca/66b/0939ca66b8dc42acb8853df401ec687f.png
[2]: https://habrahabr.ru/company/pt/blog/305966/
[3]: http://www.ptsecurity.ru/products/
[4]: http://www.ptsecurity.ru/about/news/82332/
[5]: https://habrahabr.ru/company/pt/blog/238917/
[6]: http://www.ptsecurity.ru/research/webinar/
[7]: http://www.phdays.ru/
[8]: https://habrahabr.ru/post/305966/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Визуализация статистики ЕВРО-2016 с помощью Python и Inkscape
habra.16
habrabot(difrex,1) — All
2016-07-20 14:32:15


![][1]

Привет, Хабр!

Прошло чуть больше недели с окончания Чемпионата Европы 2016 во Франции. Этот чемпионат запомнится нам неудачным выступлением сборной России, проявленной волей сборной Исландии, потрясающей игрой сборных Франции и Португалии. В этой статье мы поработаем с данными, построим несколько графиков и отредактируем их в векторном редакторе Inkscape. Кому интересно — прошу под кат.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/79f/9b8/d6a/79f9b8d6ac0549f7b8a0fcaf1333e558.jpg
[2]: https://habrahabr.ru/post/305986/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player
habra.16
habrabot(difrex,1) — All
2016-07-20 14:32:17


![][1]

Компания Microsoft не оставляет попыток победить в бесконечной войне с эксплоитописателями, раз за разом реализуя новые техники по защите приложений. На сей раз разработчики операционной системы Windows подошли к решению данного вопроса более фундаментально, переведя свой взгляд на корень проблемы. Работа почти каждого эксплоита так или иначе нацелена на перехват потока исполнения приложения, следовательно, не помешало бы "научить" приложения следить за этим моментом.
Концепия Control Flow Integrity (целостность потока исполнения) была [описана ][2]еще в 2005 году. И вот, 10 лет спустя, разработчики из компании Microsoft представили свою неполную реализацию данного концепта — Control Flow Guard.



# Что такое Control Flow Guard



Control Flow Guard (Guard CF, CFG) — относительно новый механизм защиты Windows (exploit mitigation), нацеленный на то, чтобы усложнить процесс эксплуатации бинарных уязвимостей в пользовательских приложениях и приложениях режима ядра. Работа данного механизма заключается в валидации неявных вызовов (indirect calls), предотвращающей перехват потока исполнения злоумышленником (например, посредством перезаписи таблицы виртуальных функций). В сочетании с предыдущими механизмами защиты (SafeSEH, ASLR, DEP и т.д.) являет собой дополнительную головную боль для создателей эксплоитов.

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

[1]: https://habrastorage.org/files/040/77f/ee9/04077fee9ecb42068a68e783f05ece34.png
[2]: https://www.microsoft.com/en-us/research/wp-content/uploads/2005/11/ccs05-cfi.pdf
[3]: https://habrahabr.ru/post/305960/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Киберпреступная группа Carbanak связана с российской компанией в сфере безопасности?
habra.16
habrabot(difrex,1) — All
2016-07-20 14:32:18


_Brian Krebs написал у себя в блоге объёмный материал, который показывает интересный взгляд на то, кто и как связан с группой Carbanak, нашумевшей во взломе около 100 финансовых учреждений и похитивших около 1 миллиарда долларов США.

Ниже перевод данной статьи (замечания просьба писать в личные сообщения).
_

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

Группа Carbanak получила свое название от вредоносного банковского программного обеспечения, используемого в бесчисленных кибер-кражах. Данная группа, пожалуй, является самой известной за проникновение в банковские сети с помощью заражённых файлов Microsoft Office, используя затем этот доступ для выдачи наличных банкоматами. По оценкам Лаборатории Касперского, Carbanak-ом, скорее всего, украдено более 1 млрд. долл. США, – но, в основном, из российских банков.

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

[1]: https://habrastorage.org/getpro/habr/post_images/040/012/559/04001255982d34831f18c802dd90be02.png
[2]: https://habrahabr.ru/post/305998/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Интервью с мамой, банковским программистом на COBOL'е
habra.16
habrabot(difrex,1) — All
2016-07-20 17:30:06


![][1]
_Фото из Гугла, это не мама автора_



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



### Объясню немного



Мир банковского программного обеспечения — это другая вселенная. Она сильно отличается от той, к которой привыкло большинство из нас. Я публикую этот пост на [HN][2] и на [Reddit][3]. Публикую интервью не в виде вопросов-ответов, а в виде рассказа. Я добавил некоторые вопросы и ответы в нижнюю часть поста.



# 1991



Год, когда она начала внутреннее обучение в банке Nordea, который тогда назывался Nordbanken (Северный банк). В 2001 году его переименовали в Nordea. Во время обучения она должна была проходить различные тесты, в первую очередь тест IQ, чтобы показать, что она обладает интеллектом, достаточным для работы в этой области. Тест на психологическую устойчивость — что у неё достаточно нервов для этой специфической работы и тест на многозадачность, который она завалила с оценкой 22/100. Остальные тесты она прошла успешно и заняла одну из 16 доступных позиций.



Должность звучала «как программист [мэйнфреймов IBM][4] на языке [COBOL][5]», и до сих пор, уже 25 лет, моя мама работает на этой должности в том же банке.



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

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

[1]: https://habrastorage.org/files/9dc/b29/ea8/9dcb29ea83c447f2862645207bec2578.jpg
[2]: https://news.ycombinator.com/item?id=12096250
[3]: https://www.reddit.com/r/programming/comments/4svbrm/interviewing_my_mother_a_mainframe_cobol/
[4]: https://en.wikipedia.org/wiki/IBM_mainframe
[5]: https://en.wikipedia.org/wiki/COBOL
[6]: https://habrahabr.ru/post/306046/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Знакомство с Veeam Agent for Linux
habra.16
habrabot(difrex,1) — All
2016-07-20 17:30:06


Как вы, возможно, уже знаете, в недалеком будущем увидит свет наш новый продукт — Veeam Agent for Linux. И уже сейчас все желающие могут оценить это решение в ходе анонсированной программы бета-тестирования. Чтобы получить доступ к бета-версии, нужно зарегистрироваться [здесь][1], и вы получите на email ссылку для скачивания. Обратите внимание, что период бета-тестирования закончится 1 сентября 2016 года – затем вы сможете установить уже релизную версию.

Итак, что же умеет бета? За ответом добро пожаловать под кат.

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

[1]: https://go.veeam.com/linux-ru
[2]: https://habrastorage.org/files/a71/2be/d38/a712bed3807a45108fdfdcd9ef127b73.png
[3]: https://habrahabr.ru/post/306032/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Компьютерное зрение для слепых людей. Применение Intel Edison
habra.16
habrabot(difrex,1) — All
2016-07-20 17:30:06


![][1]

Сотрудник компании Intel Paul Guermonprez решил совместить приятное с полезным: свой опыт разработчика он использовал для создания прототипа системы помощи плохо видящим людям средствами компьютерного зрения.В качестве аппаратной платформы он использовал очки [Pivothead SMART][2] с дополнительным модулем [Live Mod Set][3], построенным на базе Intel Edison. В настоящий момент система умеет:
* находить и считывать баркоды, произносить голосом их описания,
* определять цвета предметов и произносить их,
* подбирать цвета, подходящие к «увиденному» цвету,
* определять лица находящихся впереди, их относительное местоположение и расстояние до них, озвучивать эту информацию в стерео.
Под катом — информация об очках Pivothead SMART, инструкция по установке системы и видео, показывающее ее возможности.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/bd4/9b9/753/bd49b975380c4c07a1ed9755ae87742e.jpg
[2]: http://www.pivothead.com/smart/
[3]: http://shop.pivothead.com/smart-series/copy-of-live-smartmod-set/
[4]: https://habrahabr.ru/post/305728/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] C--. Первое знакомство
habra.16
habrabot(difrex,1) — All
2016-07-20 18:00:05


![][1] Процесс портирования и создания средств разработки программ для KolibriOS продолжается. По наиболее активно используемым языкам программирования мы публикуем статьи. Сегодня мы начинаем рассказывать о языке С--, вокруг которого сложилось активное сообщество в 2000-е годы. Подробности под катом.

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

[1]: https://habrastorage.org/files/0d6/194/f4b/0d6194f4bd54441b85acce5e6696e434.PNG
[2]: https://habrahabr.ru/post/303582/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Два в одном: USB хост и составное USB устройство
habra.16
habrabot(difrex,1) — All
2016-07-20 19:30:04


![image][1]




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

Основная суть Пастильды заключается в том, что она является своеобразным переходником между клавиатурой и ПК. Таким образом, она должна уметь:
* быть USB хостом для клавиатуры, которая к ней подключается,
* быть клавиатурой для ПК, чтобы либо перенаправлять сообщения от реальной клавиатуры, либо самой быть клавиатурой,
* быть дисковым накопителем, чтобы можно было редактировать базу данных паролей в удобном для человека виде.
Данный функционал является скелетом нашего проекта, поэтому первая заметка будет посвящена именно ему.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/dd0/2c0/eb4/dd02c0eb4d844b25925c82ad37952f9e.jpg
[2]: https://habrahabr.ru/company/thirdpin/blog/305594/
[3]: https://habrahabr.ru/post/305602/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Релиз CLion 2016.2: удаленная отладка, поддержка формата Doxygen, новые возможности кодогенерации и многое другое
habra.16
habrabot(difrex,1) — All
2016-07-20 20:30:05


Привет, Хабр!

Чуть больше года прошло с момента первого релиза нашей кросс-платформенной IDE для разработки на C и C++. За это время у нас появились десятки тысяч пользователей, среди клиентов встречаются такие организации, как NASA и AirBnB, а самый популярный запрос в трекере набрал более 500 голосов. И кстати, мы не зря просим вас голосовать за те запросы, которые вам наиболее интересны или актуальны. Наша очередь задач на разработку зависит от вашего мнения и ваших голосов в первую очередь. Именно поэтому релиз 2016.2 включает в себя так много долгожданных возможностей!



А теперь обо всем по порядку.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/306028/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Стажер — находка для шпиона
habra.16
habrabot(difrex,1) — All
2016-07-21 00:00:03


Привет, Хабр.

Я студент профиля «информационная безопасность автоматизированных систем» и так сложилось, что мне не все равно на ИБ. Прекрасно понимая, что в этой области кроме знания ГОСТОВ, всевозможных документов, технической подкованности, английского, уверенности в себе и так далее-далее, мне понадобится еще и опыт работы; с начала совершеннолетия искались все возможные варианты этот опыт получить. Так же известно, что просто так заниматься безопасностью у себя в фирме никто не даст, а в консалтинге требовались по меньшей мере спецы на целый день, было принято решение идти работать в компанию обычным стажером. А там уже развиваться, искать контакты, связи, интересных людей и прочее. В конце концов опыт лишним редко бывает.

В общем, на данный момент заканчивается моя некоторая по счету практика в некоторой по счету компании. Все компании были российскими; наверное, это важное уточнение. Каждая компания занималась разработкой какого-то ПО, отвечающего за безопасность. Поработав в каждой компании, я не в состоянии унять огонь в груди, который появлялся, глядя на состояние корпоративной безопасности. Вы будете правы, если после прочтения скажете, что это просто юношеский максимализм и я хочу достичь идеала, и вообще ИБ — это очень скучно, программистом быть интереснее и так далее. Сразу оговорюсь, что во всех компаниях в мои обязанности входило тестирование разных продуктов. На собеседовании оговаривалось, что для начала я хочу только стажировку.

Теперь, когда мы знакомы, давайте начнем.
[Читать дальше →][1]

[1]: https://habrahabr.ru/post/306066/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Вебинар 5: знакомство с Asterisk
habra.16
habrabot(difrex,1) — All
2016-07-21 00:30:06


![image][1]

Очередной вебинар от команды [Centos-admin.ru][2] пройдет в ближайшую пятницу, в 13-00 по московскому времени.

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

Приглашаем всех желающих 22 июля.

[Тут прямая ссылка на видео.][3]
[А тут ссылка для регистрации.][4]

Приходите! [][5]

[1]: https://habrastorage.org/getpro/habr/post_images/f4b/fc2/1bd/f4bfc21bdb6fdb569e1d1402b6abbcd3.jpg
[2]: http://centos-admin.ru
[3]: http://www.youtube.com/watch?v=SO9P0Ix70Lc
[4]: http://centos-admin.ru/webinar_join/18
[5]: https://habrahabr.ru/post/306038/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] GPS трекер на Qt, карта и трек
habra.16
habrabot(difrex,1) — All
2016-07-21 12:30:06


Решил попрактиковаться в программирование под Android на Qt. В качестве темы выбрал GPS трекер.
Набор функций этого трекера:


* снимать измерения с GPS приемника;
* экспортировать трек в GPX ([GPS eXchange Format][1]);
* выводить трек на карту;
* выводить время в пути, длину пути, среднюю скорость.

Под катом будет приведен пример работы с картой в QtQuick.


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

[1]: https://ru.wikipedia.org/wiki/GPX
[2]: https://habrahabr.ru/post/306076/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Команда PVS-Studio готовит технический прорыв, ну а пока перепроверим Blender
habra.16
habrabot(difrex,1) — All
2016-07-21 13:00:05


![PVS-Studio, Blender, C/C++][1]Статический анализ наиболее полезен при регулярных проверках. Особенно для таких активно развивающихся проектов как Blender. Пришло время проверить его вновь, и узнать, какие подозрительные места удастся найти на этот раз.


## Введение


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

Проект уже проверялся ранее. Результаты проверки версии 2.62 изложены в статье "[Проверка проекта Blender с помощью PVS-Studio][2]".

Со времени прошлой проверки размер исходного кода вместе с дополнительными библиотеками увеличился до 77 мегабайт. А его объём вырос до 2206 KLOC. На момент предыдущей поверки размер проекта составлял 68 мегабайт (2105 KLOC).
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/b16/1e1/8b1/b161e18b12d6a3e1d781c044c5e4e543.png
[2]: http://www.viva64.com/ru/b/0145/
[3]: https://habrahabr.ru/post/306104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Авторизация в VK для людей
habra.16
habrabot(difrex,1) — All
2016-07-21 14:00:05


## Что случилось?



Здравствуй, дорогой читатель. Если тебе хотя бы однажды доводилось работать с API Вконтакте и при этом писать все на `python`, вероятно, авторизация приложения заставила тебя сделать несколько приседаний, после которых ног либо не чувствуешь и падаешь в обморок, либо вкачиваешь квадрицепс и все же пробиваешь API, как Ван Дамм.



По какой-то причине этот, казалось бы, самый непримечательный этап поначалу отнимает огромное количество сил и времени. Моя задача: помочь читателям Хабра избежать травм ног.



Далее я предлагаю рассмотреть небольшую библиотеку, позволяющую в одну строчку авторизовать свое приложение для конкретного пользователя и получить `access_token`. В конце статьи представлена ссылка на github-репозиторий этой библиотеки с quickstart'ом в `README`-файле.

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

[1]: https://habrahabr.ru/post/306022/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Настройка Nginx с Let's Encrypt на CentOS 7
habra.16
habrabot(difrex,1) — All
2016-07-21 20:00:05


Наверно, многие уже в курсе, что компания Let's Encrypt раздает бесплатные SSL-сертификаты на . Как же его получить и настроить на своем сервере под управлением CentOS 7 и Nginx?

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

[1]: https://habrastorage.org/getpro/habr/post_images/9b6/feb/d13/9b6febd139a5305b8abde49116011e31.jpg
[2]: https://habrahabr.ru/post/306128/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Уязвимость HTTPoxy позволяет перенаправлять http-запросы веб-приложений
habra.16
habrabot(difrex,1) — All
2016-07-21 20:30:06


[![][1]][2]

18 июля была опубликована информация о наборе уязвимостей, получившем название HTTPoxy. Используя его, злоумышленники могут подменять переменную окружения HTTP\_PROXY, что позволяет им перенаправлять http-запросы к веб-приложениям на свои ресурсы.

Уязвимость была выявлена при участии разработчика компании Vend Доменика Шайрлинка (Dominic Scheirlinck), который в своем блоге на Medium [рассказал][3] о том, как она была обнаружена его коллегами в ходе разбора одного из тикетов, поступившем в службу поддержки. [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/6ac/3af/503/6ac3af5038146542ed30de98af52d628.png
[2]: https://habrahabr.ru/company/pt/blog/306176/
[3]: https://medium.com/we-build-vend/how-the-internets-biggest-blind-spot-lead-to-a-15-year-old-security-vulnerability-a2a6f6218a71#.rlbstynge
[4]: https://habrahabr.ru/post/306176/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Прикручиваем к Nginx патч для динамического размера TLS records от Cloudflare
habra.16
habrabot(difrex,1) — All
2016-07-21 20:30:06


Если вы используете Nginx для терминации TLS-трафика, то можете улучшить время ответа сервера с помощью патчей от Cloudflare. Подробности под катом.
![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/files/d87/a37/ae9/d87a37ae971a4e309d85311a059fb167.png
[2]: https://habrahabr.ru/post/306142/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Самообучение шахматной программы
habra.16
habrabot(difrex,1) — All
2016-07-21 23:30:05


Здравствуй, Хабр!

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

К сожалению, непосредственная подстановка скорректированных значений для фигур не усилила программу автора — во всяком случае, больше, чем в рамках статистической погрешности. Применение же исходного метода «в лоб» к другим параметрам оценочной функции давало несколько абсурдные результаты, алгоритм оптимизации явно нуждался в некоторой доработке. Тем временем, автор решил, что очередной релиз его движка станет заключительным в длинной серии версий, берущих своё начало в коде десятилетней давности. Была выпущена версия GreKo 2015, и дальнейшие изменения в ближайшем будущем не планировались.

![Картинка для привлечения внимания][2]

Всем интересующихся тем, что было дальше — после просмотра картинки для привлечения внимания добро пожаловать под кат. [Читать дальше →][3]

[1]: https://habrahabr.ru/post/254753/
[2]: https://habrastorage.org/getpro/habr/post_images/eae/66d/0ed/eae66d0ed4c217b894c9fd0b8c3c661b.jpg
[3]: https://habrahabr.ru/post/305604/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Сравниваем реализацию языков Python и Ruby по плотности ошибок
habra.16
habrabot(difrex,1) — All
2016-07-22 11:30:06


Какой язык программирования начать учить: Python или Ruby? Что из них лучше? Django или Ruby on Rails? Такие вопросы можно часто встретить на IT форумах всего мира. Я же предлагаю сравнить не сами языки, а их эталонные реализации: CPython и MRI. О том, какие ошибки в их интерпретаторах смог найти PVS-Studio, и пойдёт речь в этой статье.

![][1]

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

[1]: https://habrastorage.org/files/600/377/31a/60037731a3ee4b1481dee18f380705ad.png
[2]: https://habrahabr.ru/post/306204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Безопасность железных дорог из открытых источников
habra.16
habrabot(difrex,1) — All
2016-07-22 12:30:05


![][1]


#### **Введение**



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

В самом начале хочется сделать несколько важных уточнений. Потенциальные векторы атак, которые будут рассмотрены в разделе 4, определены только на основе информации из открытых источников. Кроме того, данная статья рассматривает ситуацию в целом на железных дорогах разных стран мира без привязки к конкретной стране. Однако, в частности, мы уточнили некоторые данные по предложенным в статье векторам атак у наших российских коллег из Центра Кибербезопасности РЖД: работы по устранению возможных векторов атак ведутся, а по некоторым проблемы частично устранены. Также стоит обратить внимание, что автор не имеет возможности дать полное техническое заключение о безопасности высокоскоростных поездов из-за отсутствия доступа к системе и возможности проведения полноценных практических экспериментов на железной дороге.

В этой статье будет представлен обзор некоторых систем безопасности, которые могут применяться на современных высокоскоростных поездах. Количество таких платформ растет, они становятся все сложнее. При этом, они строятся на основе известных технологий, включая Ethernet, CAN, RS-485. Все чаще начинают применяться различные ПЛК и промышленные компьютеры под управлением ОС Windows/Linux/QNX. Кроме того, растет популярность систем, использующих радиоканал (как пример – GPS/ГЛОНАСС, GSM-R,Wi-FI).

В связи с этим возникает вопрос – безопасно ли создание огромной системы на основе «модулей», которые хорошо знакомы возможным злоумышленникам?
[Читать дальше →][2]

[1]: https://habrastorage.org/files/d6b/1b8/841/d6b1b884131e42c1ac615d590964fa45.jpg
[2]: https://habrahabr.ru/post/306182/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Strata + Hadoop 2016 review
habra.16
habrabot(difrex,1) — All
2016-07-22 14:00:04


![][1]

В последний год в Badoo стали очень активно использовать связку Hadoop + Spark и построили свою систему сбора и обработки десятков миллионов метрик при помощи Spark Streaming.
Для того чтобы расширить наши знания и познакомиться с последними новинками в этой сфере, в конце мая этого года разработчики отдела BI (Business Intelligence) отправились в Лондон, где проходила очередная конференция серии Hadoop + Strata, посвященная широкому спектру вопросов в области машинного обучения, обработки и анализа больших данных.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/cef/c0e/d76/cefc0ed76fd94abfb4b71df4d06ef1dc.jpg
[2]: https://habrahabr.ru/post/306208/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Один пиксель вместо тысячи слов
habra.16
habrabot(difrex,1) — All
2016-07-22 14:00:04


![][1]

Пару месяцев назад, отдыхая от реализации [новых возможностей][2] вроде q\_auto и g\_auto, я прикалывался в нашем командном чате по поводу того, как различные форматы хранения изображений будут сжимать однопиксельную картинку. В ответ Orly, редактор блога, попросил меня написать пост об этом. Я сказал: «Конечно, почему бы и нет. Но это будет очень короткий пост. Ведь что можно рассказать про один пиксель».

Похоже, я был сильно неправ.


# Что можно сделать с одним пикселем?


В ранние годы веба однопиксельные картинки часто использовались как костыли для вещей, которые сейчас делаются через CSS. Создание отступов, линий, прямоугольников, полупрозрачных фонов – много чего можно сделать, просто масштабируя пиксель до нужных размеров. Ещё одно использование пикселей, дожившее до наших дней – маячки, средства для отслеживания и аналитики.

В отзывчивом веб-дизайне однопиксельные картинки используются как временные заглушки в ожидании загрузки страницы. Большинство браузеров не поддерживают [HTTP Client Hints][3], поэтому некоторые варианты с отзывчивыми изображениями ждут полной загрузки страницы, чтобы подсчитать актуальный размер картинок, а затем заменяют однопиксельные картинки нужными изображениями при помощи JavaScript.

![][4]
_Сломанная картинка_
[Читать дальше →][5]

[1]: http://res-2.cloudinary.com/cloudinary/image/upload/c_fill,w_770/one_pixel_image_comparison_hexdhump.png
[2]: http://cloudinary.com/blog/introducing_smart_cropping_intelligent_quality_selection_and_automated_responsive_images
[3]: http://httpwg.org/http-extensions/client-hints.html
[4]: https://habrastorage.org/getpro/habr/post_images/8bd/634/568/8bd6345685a2e107ac2a13d940e1e742.png
[5]: https://habrahabr.ru/post/306210/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Промышленные системы управления — 2016: уязвимость и доступность
habra.16
habrabot(difrex,1) — All
2016-07-22 15:00:05


[![][1]][2]

Автоматизированные системы управления технологическими процессами (АСУ ТП, ICS) используются в наши дни повсеместно — от «умных домов» до атомных электростанций. Однако сложная организация таких систем, требование непрерывности технологического процесса и возможность доступа к АСУ ТП через всеобщий Интернет делают их легкоуязвимыми для хакерских атак.

При этом количество уязвимых компонентов АСУ ТП из года в год не снижается. Практически половина выявленных в 2015 году уязвимостей имеет высокую степень риска, причем наибольшее количество уязвимостей найдено в продуктах самых известных производителей. В частности, повсеместно в АСУ ТП используются словарные пароли и пароли по умолчанию, что позволяет без труда получить к ним доступ и перехватить управление.

Такие выводы содержатся в исследовании компании Positive Technologies, в котором проанализированы данные об уязвимостях АСУ ТП за период с 2012 по 2015 год, а также данные о доступности компонентов АСУ ТП через Интернет в 2015 году. Ниже представлены основные результаты этого исследования. [Читать дальше →][3]

[1]: https://habrastorage.org/files/117/4ec/3bd/1174ec3bd171409b8fedfcf7d84282bf.jpg
[2]: https://habrahabr.ru/company/pt/blog/306202/
[3]: https://habrahabr.ru/post/306202/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 29: утечка на форуме Ubuntu, прокси-уязвимость в PHP, Go и Python, 276 заплаток Oracle
habra.16
habrabot(difrex,1) — All
2016-07-22 15:00:05


![][1]14 июля в Canonical узнали, что кто-то владеет (возможно и пытается продать) базой логинов и паролей двух миллионов пользователей [форумов][2] Ubuntu. Расследование быстро показало, что информация похожа на правду, после чего форумы были просто временно отключены. Надо сказать, это очень правильный ход, хотя в другой компании и в другой ситуации на него могли бы и не решиться: как же так, ведь все узнают, что у нас проблемы с безопасностью, а так может никого и не взломают. Собственно, мы все это знаем благодаря подробному [описанию инцидента][3] на сайте разработчиков Ubuntu, так что вроде бы все закончилось хорошо.

Или нет? Утечка (подробное описание событий в этой [новости][4]) началась со эксплуатации уязвимости в плагине [Forumrunner][5], установленного на vBulletin, при помощи SQL-инъекции. Атака стала возможной из-за использования устаревшей версии плагина. Инъекция открыла доступ на чтение ко всей базе данных форума, но, как утверждает Джейн Сильбер, директор Canonical, взломщику удалось скачать только часть пользовательской базы с «устаревшими» паролями, которые к тому же были захешированы с солью.

В том, что актуальные пароли не утекли, в Canonical уверены. Также там _предполагают_, что взломщику не удалось развить атаку и получить доступ к чему-то еще. При всем образцовом поведении компании данном случае, нельзя не отметить эту общую неуверенность. Иными словами — убедились там, где это позволяли сделать логи, а дальше — ну кто ж его знает. Вроде бы все хорошо, тем более, что прежде чем поднимать форум, его чуть ли не переустановили с нуля. История с хэппи-эндом, но пожалуй с чем нужно бороться в сфере ИБ, так именно с подобной неуверенностью. Ну и узнавать о взломе хочется не от доброжелателей, а самостоятельно, и сразу, но тут уж как повезет.
[Читать дальше →][6]

[1]: https://habrastorage.org/files/408/0d3/56f/4080d356fd854d9aa016930f71986b6b.jpg
[2]: https://ubuntuforums.org/
[3]: https://insights.ubuntu.com/2016/07/15/notice-of-security-breach-on-ubuntu-forums/
[4]: https://threatpost.ru/two-million-passwords-breached-in-ubuntu-hack/17294/
[5]: http://www.forumrunner.net/
[6]: https://habrahabr.ru/post/306190/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Modern Code. Программируй современно
habra.16
habrabot(difrex,1) — All
2016-07-22 16:00:06


![][1]

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

Программа [Modern Code][2] — это обучающая платформа в режиме реального времени, позволяющая разработчику оставаться в курсе последних событий в программировании. Программа состоит из трех частей:
[Читать дальше →][3]

[1]: https://habrastorage.org/files/458/953/b38/458953b385b344e5b820e64ea5901fb2.jpg
[2]: https://software.intel.com/en-us/modern-code
[3]: https://habrahabr.ru/post/306018/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Любовь, похожая на код
habra.16
habrabot(difrex,1) — All
2016-07-22 16:00:06


Женские вкусы — штука изменчивая. Судить можно хотя бы по популярным песням. Вспомните: «Парней так много холостых, а я люблю женатого», потом «Любите, девушки, простых романтиков, отважных лётчиков и моряков», в 90-е — «А я люблю военных, красивых, здоровенных...крутых и всяких деловых», в начале 2000-х — «Робот, робот, робот, я тебя люблю, мы так хотели…» Хотя, погодите, всё началось ещё в далёком 1965 году — тогда Алла Пугачёва пела «Неужели в две тысячи первом году нам заменят сердца на транзисторы?… Робот - это выдумка века. Я прошу, ну попробуй, стань опять человеком…» И вот настала очередь создателей роботов и приложений — программистов и инженеров. «Мой парень-программист» из мемов и забавных записок в ЖЖ превратился в социальное явление. Попробуем разобраться, почему это произошло, на что способны программисты и какой он, идеальный мужчина XXI века? [Читать далее][1]

[1]: https://habrahabr.ru/post/306212/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Stackoverflow запустил раздел «Документация»
habra.16
habrabot(difrex,1) — All
2016-07-22 16:00:06


Вчера произошло достаточно значимое событие на рынке разработки. Точнее в сфере поддержки и сопровождении программных продуктов. StackOverflow запустил раздел [документация][1]. Почему это важно?

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

[1]: http://stackoverflow.com/documentation
[2]: https://habrahabr.ru/post/306234/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Онлайн-конференция RuHaxe 5: «AS4 это Haxe»
habra.16
habrabot(difrex,1) — All
2016-07-23 23:00:04


![ruhaxe logo][1]Завтра, в воскресенье 24 июля в 15:00 по Москве состоится пятая онлайн-конференция русскоязычного Haxe сообщества. Как и на прошлых конференциях, можно будет не только посмотреть и послушать доклады на темы технологий, связанных с Haxe, но и задать любые вопросы их авторам.

Эта конференция может быть особенно интересна программистам на ActionScript, которые находятся в поиске путей для своего профессионального развития, т.к. одна из главных тем **«AS4 — это Haxe» или переводим ActionScript программиста на новый уровень** посвящена тому, почему одним из лучших вариантов этого пути может стать Haxe.

Если вы пока не знаете, что такое Haxe, можно прочитать [краткое описание][2], а затем посмотреть [слайды][3] и [запись доклада][4] с недавнего выступления [Даниила Коростелева][5] в компании Невософт.

Под катом подробнее о темах докладов:
[Читать дальше →][6]

[1]: https://habrastorage.org/getpro/habr/post_images/d1b/58b/a0d/d1b58ba0d1455deed0e1af67e9fa3d4b.jpg
[2]: http://haxe.ru/about-haxe
[3]: http://slides.com/nadako/nevosoft_haxe_talk#/
[4]: https://www.youtube.com/watch?v=91WgYdNW8t0
[5]: https://twitter.com/nadako
[6]: https://habrahabr.ru/post/306266/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Мониторинг проектов с помощью месенджера на примере Nagios и Telegram, с разбором факапов из жизни Highload 24x7
habra.16
habrabot(difrex,1) — All
2016-07-24 14:00:06


![][1]
_Рисунок: Маргарита Закиева
_

**Что будет под катом:
**
* Базовые настройки Nagios в связке с Telegram.
* Общая концепция нашего с коллегами мониторинга проектов.
* Разбор граблей, на которые мы успели наступить при работе с этой системой.
**Наша статья будет полезна для тех, кто:
**
* Недоволен информативностью своего текущего мониторинга.
* Испытывает ежедневную боль ниже спины с оповещениями о проблемах.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/148/e26/62c/148e2662cf3e49ab987722dc34864059.png
[2]: https://habrahabr.ru/post/306272/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Онлайн-конференция RuHaxe 5
habra.16
habrabot(difrex,1) — All
2016-07-24 15:30:07


![ruhaxe logo][1]Уже сегодня, в воскресенье 24 июля в 15:00 по Москве состоится пятая онлайн-конференция русскоязычного Haxe сообщества. Как и на прошлых конференциях, можно будет не только посмотреть и послушать доклады на темы технологий, связанных с Haxe, но и задать любые вопросы их авторам.

**Update**: изменения в составе участников. SlavaRa не сможет выступить из-за внезапно возникших обстоятельств. Вместо него Ярослав Сиваков расскажет про создание [NanoFL][2] и возможности, которые предоставляет этот редактор разработчикам и аниматорам.

Если вы пока не знаете, что такое Haxe, можно прочитать [краткое описание][3], а затем посмотреть [слайды][4] и [запись доклада][5] с недавнего выступления [Даниила Коростелева][6] в компании Невософт.

Под катом подробнее о темах докладов:
[Читать дальше →][7]

[1]: https://habrastorage.org/getpro/habr/post_images/d1b/58b/a0d/d1b58ba0d1455deed0e1af67e9fa3d4b.jpg
[2]: http://nanofl.com
[3]: http://haxe.ru/about-haxe
[4]: http://slides.com/nadako/nevosoft_haxe_talk#/
[5]: https://www.youtube.com/watch?v=91WgYdNW8t0
[6]: https://twitter.com/nadako
[7]: https://habrahabr.ru/post/306266/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В поисках чистой архитектуры (1-я часть) — Swift 3.0
habra.16
habrabot(difrex,1) — All
2016-07-24 16:00:05


![image][1]

Приветствую уважаемых жителей Хабрахабра!

Не так давно я стал замечать, что мой код становится громоздким и даже в рамках одного контроллера мне все сложней удержать в голове то, что в нем происходит. Как следствие, на выходе не всегда ожидаемый результат, что я хотел реализовать, так как мозг “замылился” и я легко могу упустить существенную деталь. А после, ручной анализ кода, работа с отладчиком и так далее… Да что уж говорить, доходило до абсурда, при сборке приложения xcode падал замертво и я даже не успевал понять, что случилось в приложении! Нужно было что то менять и думать над архитектурой, так как я не хочу всю свою карьеру писать плохоподдерживаемый код…

Кому интересен вопрос архитектуры приложения, добро пожаловать под кат! [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/03e/db5/88d/03edb588d3e71f640952384271c5ba87.png
[2]: https://habrahabr.ru/post/306206/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Oracle, обход мутирующих таблиц
habra.16
habrabot(difrex,1) — All
2016-07-24 17:00:05


![][1]
Рис.1 – художники мутанты ниндзя черепашки

Мутирование таблиц (ошибка ORA-04091) возникает, если в триггере уровня строки выполняется изменение или чтение данных из той же самой таблицы, для которой данный триггер должен был сработать.

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

[1]: https://habrastorage.org/files/7c4/6a1/8e6/7c46a18e661d42bcbb7f2f728380d6e3.jpg
[2]: https://habrahabr.ru/post/306280/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Троллейбус из буханки или alias analysis в LLVM
habra.16
habrabot(difrex,1) — All
2016-07-24 20:00:05


![][1]_В преддверии очередной конференции C++ Siberia, я решил выложить на всеобщее оборзрение запись [доклада][2] с [февральской конференции C++ Russia][3], проходившей в городе-герое Санкт-Петербурге._

Зачастую, знакомство с алиасингом в C++ у многих программистов начинается и заканчивается одинаково: **-fno-strict-aliasing**. На вопросы новичка, более опытные коллеги отвечают в стиле: «не трогай! а то все сломаешь!». Новичок и не трогает.

В докладе была сделана попытка заглянуть под капот компилятора и понять, что же там, внутри. Что такое алиасинг, где он может быть полезен и какие реальные преимущества дает. Тема была рассмотрена и со стороны программиста и со стороны разработчика компилятора. А по сему, вопрос «зачем?» был центральным.

В докладе вы найдете:

* Код Quake3
* Магическую константу 0x5F3759DF
* Много ассемблера
* Много IR кода LLVM
* Rust, Java и даже Fortran[Читать дальше →][4]

[1]: https://habrastorage.org/files/5dd/edd/b8e/5ddeddb8e6f941d098d08582010f6181.png
[2]: http://meetingcpp.ru/?page_id=1020
[3]: http://meetingcpp.ru/?page_id=936
[4]: https://habrahabr.ru/post/306294/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Извлечение ключа из токена с неизвлекаемым ключом
habra.16
habrabot(difrex,1) — All
2016-07-25 11:00:05


![][1]

Довольно часто при оформлении сертификатов ключей электронной подписи можно наблюдать навязчивый пиар токенов с неизвлекаемым ключом. Продавцы из удостоверяющих центров уверяют, что, купив у них [СКЗИ КриптоПРО CSP][2] и токен с неизвлекаемым ключом ([Рутокен ЭЦП][3] или [JaCarta ГОСТ][4]), мы получим сертифицированные СКЗИ, обеспечивающие 100%-ную защиту от кражи ключей с токена. Но так ли это на самом деле? Для ответа на этот вопрос проведем простой эксперимент… [Читать дальше →][5]

[1]: https://habrastorage.org/files/601/c18/1ef/601c181ef1184408994f73cd5a54650c.jpg
[2]: http://www.cryptopro.ru/products/csp
[3]: http://www.rutoken.ru/products/all/rutoken-ecp/
[4]: http://www.aladdin-rd.ru/catalog/jacarta/gost/
[5]: https://habrahabr.ru/post/306034/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Рефлексивное метапрограммирование на Go: цикл for each средствами пакета reflect
habra.16
habrabot(difrex,1) — All
2016-07-25 12:00:03


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



Конечно в Go нельзя писать обобщенные программы, например в стиле C++ templates, которые бы практически не влияли на затраты процессорного времени. Такого механизма в языке нет и, вполне возможно, что не предвидится.



С другой стороны, язык представляет довольно мощный встроенный пакет `reflect`, которой позволяет производить рефлексию как объектов, так и функций. Если не ставить быстродействие во главу угла, то с помощью этого пакета можно достигать интересных и гибких решений.



В этой статье я покажу как реализовать `for each` в виде типонезависимой рефлексивной функции.


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

[1]: https://habrahabr.ru/post/306304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Делаем многоканальную полнодуплексную рацию
habra.16
habrabot(difrex,1) — All
2016-07-25 13:30:03


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

[1]: https://voximplant.ru/
[2]: https://habrahabr.ru/post/305306/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 10 ошибок, приводящих к оверинжинирингу ПО
habra.16
habrabot(difrex,1) — All
2016-07-25 13:30:03


Несколько вещей гарантированно будут увеличиваться со временем: расстояния между звёздами, энтропия вселенной и бизнес-требования к ПО. Многие статьи пишут «Не усложняйте!», но не пишут почему или как это сделать. Вот вам 10 ясных примеров.


##### 1\. Инженерам виднее


Мы, инженеры, считаем себя умнейшими людьми. Ну, поскольку мы создаём разные штуки. И эта ошибка часто приводит к оверинжинирингу. Если вы спланировали и построили 100 модулей — Бизнес всегда попросит у вас 101-ый, о котором вы никогда не задумывались. Если вы соберётесь с силами и решите 1000 проблем — они придут к вам и выложат на стол 10 000 новых. Вы считаете, что у вас всё под контролем, а на самом деле вы даже не представляете, в каком направлении вас завтра поведёт дорога.
![image][1]
За мои 15 лет работы программистом я ещё ни разу не видел, чтобы Бизнес выдал законченные и стабильные раз и навсегда требования к ПО. Они всегда меняются, расширяются. И это природа бизнеса, а не ошибки людей, управляющих им.

**Мораль**: Казино (бизнес) всегда побеждает
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/06b/ebd/72e/06bebd72e1649243465601c95497d844.png
[2]: https://habrahabr.ru/post/306328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дорабатываем HTTP-кеширование в Django
habra.16
habrabot(difrex,1) — All
2016-07-25 15:00:04


[![image][1]][2]
В этой заметке речь пойдет о [HTTP-кэшировании][3] ([перевод][4]) и его использовании совместно с фреймворком Django. Мало кто будет спорить с утверждением о том, что применение HTTP-кэширования — очень правильная и разумная практика разработки веб-приложений. Однако именно в этом функционале Django содержит ряд ошибок и неточностей, которые очень сильно ограничивают практическую пользу от такого подхода. Например, до сих пор актуален баг [\#15855][5], заведенный в апреле 2011 года, который может приводить к очень неприятным ошибкам в работе веб-приложения.


## Middleware vs. explicit decorator


В Django есть два стандартных способа включения HTTP-кэширования: через активацию **UpdateCacheMiddleware**/**FetchFromCacheMiddleware**, либо через декорирование функции представления при помощи декоратора **cache\_page**. У первого способа имеется один существенный недостаток — он включает HTTP-кэширование для всех без исключения представлений (view) проекта, зато второй содержит тот самый баг #15855. Если бы не этот баг, то вариант с использованием cache\_page являлся бы более предпочтительным. Плюс, такой вариант хорошо согласуется с важнейшим из постулатов [The Zen of Python][6], что «явное лучше неявного». [Читать дальше →][7]

[1]: https://habrastorage.org/files/ea8/e35/828/ea8e3582889040839d40c1ba58b738a9.png
[2]: https://habrahabr.ru/company/redmadrobot/blog/305774/
[3]: https://www.mnot.net/cache_docs/
[4]: https://habrahabr.ru/post/203548/
[5]: https://code.djangoproject.com/ticket/15855
[6]: https://www.python.org/dev/peps/pep-0020/
[7]: https://habrahabr.ru/post/305774/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] 2+2*2=::::::
habra.16
habrabot(difrex,1) — All
2016-07-25 18:30:03


Осталась неделя до отпуска. Чтоб ничего не сломать занимаюсь всякой фигнёй.
Помните детсадовскую задачку «Сколько будет два плюс два умножить на два?»
Решил это выяснить на sed:
$ sed -f ./1.sed
2+2*2
;2+;2*;2
::+::*::
::+::*:
::+::;::*
::+::::
::::::
6


**Сам исходник**
s/[0-9]/;&/gp
s/0//g; s/1/:/g; s/2/::/g; s/3/:::/g; s/4/::::/g; s/5/:::::/g; s/6/::::::/g; s/7/:::::::/g; s/8/::::::::/g; s/9/:::::::::/g

: ;; s/:;/;::::::::::/gp; t ;

s/;//gp

s/*:/*/gp

: *;
s/\(:*\)\*:/\1;\1*/gp;
t *

s/*//g
s/;//gp

s/+//gp

: -; s/:-:/-/gp; t -

s/-$//gp

: ?
s/::::::::::/;/gp
s/;\([0-9]*\)$/;0\1/p
s/:::::::::/9/; s/::::::::/8/; s/:::::::/7/; s/::::::/6/; s/:::::/5/; s/::::/4/; s/:::/3/; s/::/2/; s/:/1/
s/;/:/gp
t ?

s/^$/0/


Меня хватило на реализацию операций +-\*, до деления ход не дошёл.
Практической пользы не ищите — здесь её нет. [][1]

[1]: https://habrahabr.ru/post/306356/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Использование custom functions в парсерах OSSIM
habra.16
habrabot(difrex,1) — All
2016-07-25 20:30:03


Доброго дня, уважаемые!
В продолжение моей [статьи][1] хочу рассмотреть и поделиться опытом работы с функционалом «custom functions», используемом в OSSIM. Это функции, которые предназначены для обработки полученной вследствие разбора (парсинга) журналов событий информации. Обработка может заключаться в разрешении имени по IP адресу, определении геолокации и всего того, на что хватит фантазии. В примере ниже я разберу вариант использования «custom functions» для дополнительного парсинга полученной информации. [Читать дальше →][2]

[1]: https://habrahabr.ru/post/304374/
[2]: https://habrahabr.ru/post/306258/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Переход от режима Hand в Intel RealSense SDK R4 (v6.0) к режиму Cursor в Intel RealSense SDK 2016 R1
habra.16
habrabot(difrex,1) — All
2016-07-25 20:30:03


![][1]
После появления камеры Intel RealSense [SR300][2] и пакета [Intel RealSense SDK 2016 R1][3] появился новый режим взаимодействия с помощью жестов — режим указателя ([Cursor][4]), доступный только при использовании камеры SR300. В этом учебном руководстве описываются изменения кода, необходимые для задействования этой новой функциональности.
[Читать дальше →][5]

[1]: https://habrastorage.org/files/639/c23/a4c/639c23a4c6594eefbb539b2c420d1e1e.jpg
[2]: https://software.intel.com/en-us/RealSense/SR300Camera
[3]: https://software.intel.com/en-us/intel-realsense-sdk
[4]: https://software.intel.com/en-us/blogs/2016/02/15/realsense-cursor-mode
[5]: https://habrahabr.ru/post/306010/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что такое творчество
habra.16
habrabot(difrex,1) — All
2016-07-25 20:30:03


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



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

[1]: https://docs.google.com/presentation/d/1gp-kwFHVYf0PlG50lEGkFoaj-J8fYYd_giaRGpAfgX8/edit#slide=id.p
[2]: https://habrahabr.ru/post/304456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Как на самом деле устроена торговля на бирже: Простой алгоритм (часть 1)
habra.16
habrabot(difrex,1) — All
2016-07-26 11:30:03


[![][1]][2]

_/ фото [yuan2003 CC][3]_

Высокочастотные трейдеры – особая каста биржевых игроков. Мало, кто из них, снисходит до описания смысла своей профессии простым человеческим языком. Мы нашли блог Марко Стуккио, бывшего кванта, который решил написать краткую [апологию HFT][4].

Речь идет не об оправдании профессии в социальном контексте, говорит Марко. Речь о неких интеллектуальных основаниях сферы человеческой деятельности, которую часто неверно понимают. В своем посте автор пытается рассказать о базисе, на котором построена биржевая торговля и высокочастотный трейдинг, и на примерах объясняет, почему трейдеры так озабочены сокращением задержек при осуществлении транзакций. [Читать дальше →][5]

[1]: https://habrastorage.org/files/f39/73d/839/f3973d839ae148468e947775aa7f32db.jpg
[2]: https://habrahabr.ru/company/itinvest/blog/306392/
[3]: https://www.flickr.com/photos/yuan2003/4690243944/in/album-72157624249839994/
[4]: https://www.chrisstucchio.com/blog/2012/hft_apology.html
[5]: https://habrahabr.ru/post/306392/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Управление Docker проектом со множеством git репозиториев
habra.16
habrabot(difrex,1) — All
2016-07-26 12:00:04


Команда, в которой я работаю, использует микросервисную организацию в проектах.
У каждого микросервиса свой репозиторий. Каждый микросервис это docker контейнер.
Для среды разработки, чтобы запустить все вместе, мы используем docker-compose.



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



Мы столкнулись с двумя проблемами:


1. При первоначальном разворачивании среды разработки, приходится обьяснять программисту, либо писать скрипт инициализации, который склонирует и создаст необходимую иерархию папок из нескольких репозиториев.
2. docker-compose не может собрать приложение, а потом упаковать в идижд. он умеет только запускать `docker build`.

Для решения этих проблем мы сделали управляющий скрипт docker-project, который оказался очень удобным в работе.
Чем мы и хотим поделиться с open-source сообществом.

[Далее][1]

[1]: https://habrahabr.ru/post/306384/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Настройка ssh callback на сервере в связке с Ansible
habra.16
habrabot(difrex,1) — All
2016-07-26 12:30:03


![][1]Всем известно, что с помощью ssh можно делать перенаправление портов (создавать туннели). Еще из мануала по ssh вы могли узнать, что OpenSSH умеет динамически открывать порты для удаленного перенаправления и выполнять строго определенные команды. Также всем известно, что для Ansible (не считая Tower) нет такого понятия как сервер и клиент (в смысле ansible-server/ansible-agent) — есть сценарий (playbook) который можно выполнить как локально, так и удаленно через ssh-соединение. Еще есть Ansible-pull, это скрипт который проверяет git-репозиторий с вашими плейбуками и при наличии изменений запускает плейбук для применения обновлений. Там где нельзя пушить в большинстве случаев можно использовать pull, но бывают исключения.

В статье я попробую рассказать о том как можно использовать динамическое выделение портов для ssh-туннелей в реализации подобия функции [provisioning-callback][2]для бедных на любом сервере с OpenSSH и Ansible, и как я до этого дошел.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/e26/4cf/d00/e264cfd00615446985cb72e1f3db34db.jpg
[2]: http://docs.ansible.com/ansible-tower/2.2.0/html/userguide/job_templates.html#ug-provisioning-callbacks
[3]: https://habrahabr.ru/post/306382/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Все под контролем: защищаем корпоративные разговоры. Часть 2: защищенный телефонный аппарат
habra.16
habrabot(difrex,1) — All
2016-07-26 13:30:03


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

[1]: https://tottoli-gsm.com/ru/
[2]: https://habrahabr.ru/company/tottoli_gsm/blog/305586/
[3]: https://habrastorage.org/files/a7d/b5e/39c/a7db5e39c4bf4d24aedf83bca8bf146f.jpg
[4]: https://habrahabr.ru/post/306370/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Навыки и требования к специалистам по информационной безопасности
habra.16
habrabot(difrex,1) — All
2016-07-26 15:00:03


![][1]

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

В данной статье будет раскрыта тема востребованности специалистов по информационной безопасности, специфика требований и навыков.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/c78/078/1b2/c780781b2d54471fb48cb3a74b89c1e6.jpg
[2]: https://habrahabr.ru/post/306336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Даты среди цифр числа Пи: некоторые мысли с позиции статистики и нумерологии
habra.16
habrabot(difrex,1) — All
2016-07-26 15:30:04


![][1]


_Перевод поста Майкла Тротта (Michael Trott) "[Dates Everywhere in Pi(e)! Some Statistical and Numerological Musings about the Occurrences of Dates in the Digits of Pi][2]".
Код, приведенный в статье, можно скачать [здесь][3].
Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][4] за помощь в переводе и подготовке публикации_
----
Содержание
[Получим все даты за последние 100 лет][5]
[Найдём все даты в цифрах числа пи][6]
[Статистика всех дат][7]
[Первые появления дат][8]
[Даты в других представлениях и других константах][9]
----
В недавнем своём посте (см. перевод поста "[3/14/15 9:26:53 Празднование «Дня числа Пи» века, а также рассказ о том, как получить свою очень личную частичку числа пи][10]" на Хабре) Стивен Вольфрам писал об уникальном положении _векового дня числа пи_ и представил разные примеры содержания дат в цифрах числа пи (здесь и далее — в десятичном представлении). В этом посте я рассмотрю статистику распределений всех возможных дат за последние 100 лет в первых 10 миллионах цифр числа пи. Мы увидим, что 99,998% цифр представляют собой какую-то дату, и что можно обнаружить миллионы дат в первых десяти миллионах цифр числа пи.

Я сосредоточусь на датах, которые могут быть заданы не более чем шестью цифрами. То есть я смогу одназначно задавать даты в промежутке длительностью в 36 525 дней, начиная с 15 марта 1915 года и заканчивая 14 марта 2015 года.
[Читать дальше о датах в цифрах числа Пи...][11]

[1]: https://habrastorage.org/files/cf0/79e/b75/cf079eb75abb4abf84c6c50b92ca66c0.png
[2]: http://blog.wolfram.com/2015/06/23/dates-everywhere-in-pie-some-statistical-and-numerological-musings-about-the-occurrences-of-dates-in-the-digits-of-pi/
[3]: http://blog.wolfram.com/data/uploads/2015/06/Dates-Everywhere-in-Pie-Blog-Post.cdf
[4]: https://habrahabr.ru/users/kirillguzenko/
[5]: https://habrahabr.ru/company/wolfram/blog/306420/#1
[6]: https://habrahabr.ru/company/wolfram/blog/306420/#2
[7]: https://habrahabr.ru/company/wolfram/blog/306420/#3
[8]: https://habrahabr.ru/company/wolfram/blog/306420/#4
[9]: https://habrahabr.ru/company/wolfram/blog/306420/#5
[10]: https://habrahabr.ru/company/wolfram/blog/252947/
[11]: https://habrahabr.ru/post/306420/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О том, как мы на PHP запускали настоящий MS Excel и что из этого вышло
habra.16
habrabot(difrex,1) — All
2016-07-26 17:00:04


Не секрет, что зачастую PHP-программистам приходится решать задачи, весьма далёкие от бытового представления о «веб-разработке». Развитие языка в последние годы привело к тому, что PHP всё чаще считают языком общего назначения, пригодным не только для сайтов, но и для других задач.

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

**Дано:**
* Многие наши партнёры (скажем прямо — это крупные банки) любят считать что-то в Excel. Причем «любят» — это очень нежно сказано. Сложнейшие скоринговые модели могут быть «запрограммированы» в Excel, в файле из сотни листов с десятками макросов
* Перевести «программы», написанные в Excel на какой-либо язык программирования — практически нереально. Это займет уйму времени, а проблема постоянного обновления и проверки корректности делает такую задачу и вовсе нерешаемой

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

Некоторое время нам хватало возможностей популярной библиотеки PHPExcel. Но когда от бизнеса поступило очередное требование «нужно, чтобы работали макросы, и еще бы хорошо всё это сохранять в PDF», стало понятно, что выбранный путь — тупиковый. Нужно не парсить файлы xlsx, не имитировать просчёт, и даже не использовать Open Office, а научиться взаимодействовать с «настоящим» Microsoft Excel.

![][1]

[Что из этого вышло - под катом!][2]

[1]: https://habrastorage.org/files/9b9/482/ce7/9b9482ce7166477585b4b147967e7aa8.png
[2]: https://habrahabr.ru/post/306408/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 ... 133