RSS
Pages: 1 ... 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 ... 210
[>] Сшиваем SSL-сертификаты правильно на bash
habra.16
habrabot(difrex,1) — All
2017-01-10 10:30:08


Использование SSL-шифрование на сайтах приобретает уже почти обязательный характер: Google с этого года начал агрессивно предупреждать о небезопасном соединении с сайтами, ряд платежных шлюзов требуют безопасное подключение на сайтах (например, Яндекс.Касса). Установка SSL-сертификата на сайт требует достаточно сложной технической настройки веб-сервера (nginx, например). Одним из аспектов этой настройки является использование «сшивания» (stapling) SSL-сертификатов вплоть до корневого для ускорения установления безопасного соединения из браузеров к сайтам.

SSL stapling позволяет сэкономить для нового посетителя сайта 0,1-1 секунду (за счет экономии 1-2 запросов за промежуточными сертификатами с учетом DNS-запросов, установления соединения и получения данных, каждый из запросов может выполняться до 500 мс в случае 95 перцентиля пользователей). По умолчанию, SSL stapling выполняется для всех сертификатов, загруженных в [Айри][1].

Обычно цепочка SSL-сертификатов, которую должен запросить браузер, выглядит следующим образом:
> SSL-сертификат сайта — Промежуточный SSL-сертификат [- Промежуточный SSL-сертификат 2] — Корневой SSL-сертификат
Корневые SSL-сертификаты загружены в браузер (в целях избежания их подделки при передачи по сети). Промежуточные SSL-сертификаты могут быть получены из SSL-сертификата сайта («родительский» сертификат, которым подписан данный сертификат, внесен в соответствующем поле данного сертификата). Как это корректно сделать, чтобы сшить все сертификаты и ускорить загрузку сайта в браузере?
[Читать дальше →][2]

[1]: https://айри.рф
[2]: https://habrahabr.ru/post/319166/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Эффективный расчёт области видимости и линии взгляда в играх
habra.16
habrabot(difrex,1) — All
2017-01-10 13:30:03


![image][1]

В стратегических играх обычно требуется знать область видимости NPC, чтобы игрок мог продумывать стратегию и делать следующий ход. Мы рассмотрим математику и реализацию рациональной модели, не просаживающей скорость игры при большом количестве NPC на карте. Если вы хотите увидеть готовое интерактивное демо модели, перейдите [сюда][2] и играйте прямо в браузере! Вот скриншот демонстрации:

![image][3]

Имея параметры видимости наблюдателя (направление взгляда, расстояние видимости и угол поля зрения), нам нужно найти видимую для него область, т.е. определить область видимости (field of view, FoV). Если препятствия отсутствуют, это будет сектор круга, состоящий из двух граней (радиусов) и соединяющей их дуги (см. Рис. 1). Кроме того, имея заданную точку мира, мы должны быстро определить, видима ли она для наблюдателя, т.е. необходимо обрабатывать запросы линии взгляда (line of sight, LOS) для заданной точки. Обе эти операции можно выполнить достаточно эффективно для использования при рендеринге в реальном времени.
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/cad/9a8/ec1/cad9a8ec147af07461b9db01b3fa0fba.gif
[2]: https://legends2k.github.io/2d-fov/
[3]: https://habrastorage.org/getpro/habr/post_images/05b/603/b54/05b603b54d939fe2e3b0137eb52c7296.jpg
[4]: https://habrahabr.ru/post/319040/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обнаружение в коде дефекта «разыменование нулевого указателя»
habra.16
habrabot(difrex,1) — All
2017-01-10 14:30:06


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

Разыменование нулевого указателя (CWE-476) представляет собой дефект, когда программа обращается по некорректному указателю к какому-то участку памяти. Такое обращение ведет к неопределенному поведению программы, что приводит в большинстве случаев к аварийному завершению программы.
[Читать дальше →][2]

[1]: https://npo-echelon.ru/production/65/10920
[2]: https://habrahabr.ru/post/319218/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Простой и быстрый алгоритм генерации ландшафта
habra.16
habrabot(difrex,1) — All
2017-01-10 16:00:03


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

**В какой ситуации удобен алгоритм**

Недавно столкнулся с задачей: написать простую стратегию с трёхмерным ландшафтом. Так как я в данный момент обладаю маленьким опытом программирования на языке С++, мои попытки написать «diamond-square» закончились ошибками на ровном месте (ссылка на статью по «diamond-square» также будет в конце). Требовался простой в написании алгоритм, не дающий реалистичный ландшафт, так что данный метод поможет в первую очередь новичкам.

**Алгоритм и результат **

Прежде чем описывать сам алгоритм поделюсь его результатами:

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

[1]: https://cs540101.vk.me/c638128/v638128684/1947e/xaE18CPndjU.jpg
[2]: https://habrahabr.ru/post/319226/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Чистая архитектура в Python: пошаговая демонстрация. Часть 2
habra.16
habrabot(difrex,1) — All
2017-01-10 17:00:03


**Содержание**

* [Часть 1][1]
* _Часть 2_





### Доменные модели


**Git tag:** [Step02][2]

Начнем с простого определения модели `StorageRoom`. Как было сказано ранее, модели в чистой архитектуре очень легкие, по крайней мере, легче, чем их ORM-аналоги в фреймворках.

Раз мы следуем методологии TDD, то первое, что мы напишем, это тесты. Создадим файл `tests/domain/test_storageroom.py` и поместим внутри него этот код:
[Читать дальше →][3]

[1]: https://habrahabr.ru/post/319126/
[2]: http://github.com/lgiordani/rentomatic/tree/step02
[3]: https://habrahabr.ru/post/319202/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VulnHub: Разбираем самый короткий квест DC416 Fortress
habra.16
habrabot(difrex,1) — All
2017-01-10 17:00:03


![][1]

Продолжаем разбор CTF с конференции [DefCon Toronto's][2]. Задания предоставлены командой [VulnHub][3], за что им огромное спасибо. На этот раз остановимся на небольшом [DC416 Fortress][4], тут всего 3 флага. Так что будет не сложно.

Ниже, вы можете ознакомиться с предыдущими разборами:

* [DC416 Dick Dastardly][5]
* [DC416 Basement][6][Читать дальше →][7]

[1]: https://habrastorage.org/files/126/e0c/e64/126e0ce643954a228e33125f6120f252.png
[2]: https://dc416.com/
[3]: https://www.vulnhub.com/
[4]: https://www.vulnhub.com/entry/dc416-2016,168/
[5]: https://habrahabr.ru/post/318372/
[6]: https://habrahabr.ru/post/318998/
[7]: https://habrahabr.ru/post/319204/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Разделение текста на предложения с помощью Томита-парсера
habra.16
habrabot(difrex,1) — All
2017-01-11 12:30:03


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

Если вы начнете это делать, то довольно быстро столкнетесь с тем, что точка — это не всегда разделитель предложений (“т.к.”, “т.д.”, “т.п.”, “пр.”, “S.T.A.L.K.E.R.”). Причем эти токены не всегда будут исключениями при разбивке текста на предложения. Например, “т.п.” может быть в середине предложения, а может и в конце.

Вопросительный и восклицательный знак тоже не всегда разделяют текст на предложения. Например, “Yachoo!”. Предложения могут разделять и другие знаки, например, двоеточие (когда следует список из отдельных утверждений).

Поэтому я долго не думая поискал готовый инструмент и остановился на [Томита-парсере][1] от Яндекса. О нем и расскажу.
[Читать дальше →][2]

[1]: https://tech.yandex.ru/tomita/
[2]: https://habrahabr.ru/post/317726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Виртуализация с использованием Ubuntu Server 16.04 и pHpVirtualBox 5.0.5
habra.16
habrabot(difrex,1) — All
2017-01-11 13:30:03


Недавно столкнулся с задачей быстрого и простого развертывания серверов на основе связки Ubuntu Server 16.04 и pHpVirtualBox 5.0.5 для дальнейшей виртуализации всяческих OS.
Задача тривиальная, но быстрого, простого и самое главное — пошагового рецепта не нашел, поэтому по итогам успешной инсталляции решил выложить примитивный FAQ для всех интересующихся.
[Читать дальше →][1]

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

[>] Сохранение и загрузка игры в Unreal Engine
habra.16
habrabot(difrex,1) — All
2017-01-11 13:30:03


![][1]

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

[1]: https://habrastorage.org/files/932/2a8/5d2/9322a85d2f824646bfeb3682a3278488.jpg
[2]: https://habrahabr.ru/post/319228/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Машинное обучение — это легко
habra.16
habrabot(difrex,1) — All
2017-01-11 14:00:03


В данной статье речь пойдёт о машинном обучении в целом и взаимодействии с датасетами. Если вы начинающий, не знаете с чего начать изучение и вам интересно узнать, что такое «датасет», а также зачем вообще нужен Machine Learning и почему в последнее время он набирает все большую популярность, прошу под кат. Мы будем использовать Python 3, так это как достаточно простой инструмент для изучения машинного обучения.
[Читать дальше →][1]

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

[>] [recovery mode] Обнаружение в коде дефекта «разыменование нулевого указателя»
habra.16
habrabot(difrex,1) — All
2017-01-11 14:30:04


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

Разыменование нулевого указателя (CWE-476) представляет собой дефект, когда программа обращается по некорректному указателю к какому-то участку памяти. Такое обращение ведет к неопределенному поведению программы, что приводит в большинстве случаев к аварийному завершению программы.
[Читать дальше →][2]

[1]: https://npo-echelon.ru/production/65/10920
[2]: https://habrahabr.ru/post/319218/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Программирование без интернета
habra.16
habrabot(difrex,1) — All
2017-01-11 15:00:04


![Кафедра гугления][1]
_[оригинал на xkcd][2]_



Топ-3 повседневных вопросов программиста:


* как сделать Х,
* почему работает так, а не эдак,
* как назвать переменную.

С третьим вопросом всё понятно — он неразрешим в принципе. С первыми двумя интереснее.



Чтобы получить ответы, программисты девяностых читали исходники и руководства. Программисты двухтысячных начали активно гуглить. А затем в 2008 появился Stack Overflow, и стал «внешней памятью» для разработчиков. Теперь на 95% вопросов есть готовый ответ: первая ссылка из гугла на Стек.

[И что с этим не так?][3]

[1]: https://habrastorage.org/files/4c0/6f6/092/4c06f6092dd74babb6ed589aa7505f4a.png
[2]: https://xkcd.com/1758/
[3]: https://habrahabr.ru/post/319276/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Iframe injection и XSS на более чем 20 000 сайтах alexarank
habra.16
habrabot(difrex,1) — All
2017-01-11 16:30:04


Я независимый исследователь безопасности securityz.net, первое место в bug bounty ПриватБанка.

Решил пройтись по топу [alexarank][1], начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию ([www.gismeteo.ru/soft/][2]), обратил внимание на тех.поддержку.
[Читать дальше →][3]

[1]: http://www.alexa.com/topsites/countries/UA
[2]: https://www.gismeteo.ru/soft/
[3]: https://habrahabr.ru/post/319304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Работа с DSL: создание собственного анализатора с использованием библиотек Python
habra.16
habrabot(difrex,1) — All
2017-01-11 19:30:03


[![][1]][2]

В нашем блоге на Хабре мы пишем не только о темах, связанных с информационной безопасностью, но уделяем значительное внимание вопросам разработки софта — например, ведем цикл о создании и внедрении [инструментов][3] DevOps. Сегодня же речь пойдет об использовании предметно-ориентированных языков (Domain-specific language, DSL) для решения конкретных задач с помощью Python.

Материал подготовлен на основе выступления разработчика Positive Technologies Ивана Цыганова на конференции PYCON Russia ([слайды][4], [видео][5]). [Читать дальше →][6]

[1]: https://habrastorage.org/files/9ac/57f/b26/9ac57fb26b324f80b27947ce9cf6cbbb.jpg
[2]: https://habrahabr.ru/company/pt/blog/319320/
[3]: https://habrahabr.ru/company/pt/blog/318128/
[4]: http://www.slideshare.net/IvanTsyganov/dsl-63800380
[5]: https://www.youtube.com/watch?v=4pIx7TRmItk
[6]: https://habrahabr.ru/post/319320/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Iframe injection и self xss на более чем 20 000 сайтах alexarank рунета
habra.16
habrabot(difrex,1) — All
2017-01-11 21:00:03


Я независимый исследователь безопасности securityz.net, первое место в bug bounty ПриватБанка.

Решил пройтись по топу [alexarank][1], начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию ([www.gismeteo.ru/soft/][2]), обратил внимание на тех.поддержку.
[Читать дальше →][3]

[1]: http://www.alexa.com/topsites/countries/UA
[2]: https://www.gismeteo.ru/soft/
[3]: https://habrahabr.ru/post/319304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Простое, но эффективное расширение Explorer-а (shell extension) для визуализации файлов
habra.16
habrabot(difrex,1) — All
2017-01-11 21:30:04


Как то мой друг попросил меня написать небольшое приложение для Windows, в формате [explorer shell extension][1], для создания отчета по выделенным файлам или папкам (с рекурсией), по произвольно заданному шаблону.

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

[1]: https://msdn.microsoft.com/en-us/library/windows/desktop/cc144067(v=vs.85).aspx
[2]: https://habrahabr.ru/post/319326/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как не надо делать защиту от эксплойтов на примере Norton Security
habra.16
habrabot(difrex,1) — All
2017-01-11 22:00:03


Зимним вечером придя с работы, захотелось мне проверить работоспособность своей старой лабы (2012 года) на тему [эксплуатации Use-After-Free в ActiveX под Internet Explorer ][1]. Собственно на новом ноуте у меня была Windows 10, и последний последний IE со всеми этими вашими isolated heap и тд. И вот я запустил свой сплойт, как вдруг вышел облом от туда, откуда не ждали, на новом ноуте у меня стоял Norton Security, который пафосно детектировал 0day и стопанул:

![][2]

Вечер обещал быть томным. предыдущий опыт работы с NextGen защитами подсказывал мне, что ребята из Symatec сделали все «дешево и быстро», а значит можно попробовать обойти эту защиту не сильно парясь. Вообщем то как показала практика — этот подход по защите от сплойтов ОЧЕНЬ типовой и обходится практически универсальным и единым методом. Другими словами, при детальном подходе к эксплойту — один и тот же код, будет работать как на системе без защиты, так и системами защиты от разных продуктов, включая Norton Security. Посмотрим же в чем «архитектурная» ошибка таких защит…

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

[1]: https://github.com/defcon-russia/activex_workshop/tree/master/Use_After_Free_x32
[2]: https://habrastorage.org/files/31d/543/f5e/31d543f5e7714490a0fac6a6d6b1b874.png
[3]: https://habrahabr.ru/post/319322/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Iframe injection и xss на более чем 20 000 сайтах alexarank
habra.16
habrabot(difrex,1) — All
2017-01-11 22:00:03


Я независимый исследователь безопасности securityz.net, первое место в bug bounty ПриватБанка.

Решил пройтись по топу [alexarank][1], начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию ([www.gismeteo.ru/soft/][2]), обратил внимание на тех.поддержку.
[Читать дальше →][3]

[1]: http://www.alexa.com/topsites/countries/UA
[2]: https://www.gismeteo.ru/soft/
[3]: https://habrahabr.ru/post/319304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Iframe injection и self xss на более чем 20 000 сайтах alexarank UA/RU
habra.16
habrabot(difrex,1) — All
2017-01-11 22:30:03


Я независимый исследователь безопасности securityz.net, первое место в bug bounty ПриватБанка.

Решил пройтись по топу [alexarank][1], начал искать уязвимости на gismeteo.ua (20 место). Произошел редирект на русскую версию ([www.gismeteo.ru/soft/][2]), обратил внимание на тех.поддержку.
[Читать дальше →][3]

[1]: http://www.alexa.com/topsites/countries/UA
[2]: https://www.gismeteo.ru/soft/
[3]: https://habrahabr.ru/post/319304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Уязвимость Viber, позволяющая прослушивать чужой разговор
habra.16
habrabot(difrex,1) — All
2017-01-12 05:30:03


![image][1]


На возможность прослушивания чужих разговоров в Viber я наткнулся случайно еще в начале октября 2016 года. Уязвимость мне показалась не слишком приятной, поэтому я связался со службой поддержки и описал алгоритм для воспроизведения нестандартного поведения мессенджера.

Пишу данную публикацию в надежде привлечь внимание Хабрасообщества и ее более широкой огласке в надежде, что это побудит разработчиков исправить сей досадный баг, так как общение через электронную почту со службой поддержки Viber результатов не принесло.

**Пока написал статью, проблему исправили в обновлении пришедшем вчера на телефон, но она все еще актуальна для не обновившихся**
[Читать дальше →][2]

[1]: http://static.dnaindia.com/sites/default/files/styles/half/public/2016/04/19/451462-viber.jpg
[2]: https://habrahabr.ru/post/319360/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Браузеры и app specific security mitigation. Часть 3. Google Chrome
habra.16
habrabot(difrex,1) — All
2017-01-12 11:30:04


![image][1]



Мы продолжаем цикл статей о механизмах защиты браузеров от эксплойтов:


* [Введение][2]
* [Internet Explorer & Edge][3]

Давайте заглянем под капот браузера Chrome и выясним, что есть в его анти-эксплоит арсенале.


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

[1]: https://habrastorage.org/files/2c5/f0a/3ad/2c5f0a3ad34345fba9fbe9b14f81c7b3.jpg
[2]: https://habrahabr.ru/company/dsec/blog/310676/
[3]: https://habrahabr.ru/company/dsec/blog/311616/
[4]: https://habrahabr.ru/post/319234/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Python: коллекции, часть 2: индексирование, слайсинг, сортировка
habra.16
habrabot(difrex,1) — All
2017-01-12 12:00:04


Данная статья является продолжением моей статьи "[Python: коллекции, часть 1: классификация, общие подходы и методы, конвертация][1]".

В данной статье мы продолжим изучать общие принципы работы со стандартными коллекциями (модуль collections в ней не рассматривается) Python.

**Для кого:** для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.
[Читать дальше →][2]

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

[>] [recovery mode] Информационная безопасность на мобильных устройствах – взгляд потребителей
habra.16
habrabot(difrex,1) — All
2017-01-12 12:30:03


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

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


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

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

[>] Python: коллекции, часть 2: индексирование, срезы, сортировка
habra.16
habrabot(difrex,1) — All
2017-01-12 15:00:04


Данная статья является продолжением моей статьи "[Python: коллекции, часть 1: классификация, общие подходы и методы, конвертация][1]".

В данной статье мы продолжим изучать общие принципы работы со стандартными коллекциями (модуль collections в ней не рассматривается) Python.

**Для кого:** для изучающих Python и уже имеющих начальное представление о коллекциях и работе с ними, желающих систематизировать и углубить свои знания, сложить их в целостную картину.
[Читать дальше →][2]

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

[>] Как PVS-Studio ищет ошибки: методики и технологии
habra.16
habrabot(difrex,1) — All
2017-01-12 16:00:05


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


## Введение


Поводом для написания статьи стало моё выступление с докладом на открытой конференции ИСП РАН 2016 (ISPRAS OPEN 2016), проходившей в первых числах декабря в Главном здании Российской академии наук. Тема доклада: «Принципы работы статического анализатора кода PVS-Studio» ([презентация в формате pptx][2]).

К сожалению, время выступления было сильно ограничено, поэтому мне пришлось подготовить весьма короткую презентацию и не рассказать в докладе многое из того, что хотелось. Поэтому я решил написать эту статью, где более подробно расскажу о том, какие подходы и алгоритмы мы используем при разработке проекта PVS-Studio.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/515/50b/121/51550b121c1cd1d73f2d4f4bb691555a.png
[2]: https://yadi.sk/i/29hbY9qH337G5F
[3]: https://habrahabr.ru/post/319382/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] 2016: год радикальных изменений для платформы CUBA
habra.16
habrabot(difrex,1) — All
2017-01-12 18:00:03


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

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

![image][1]
_Активные проекты на платформе CUBA_
[Читать дальше →][2]

[1]: https://habrastorage.org/files/b2a/d6e/7ec/b2ad6e7ec03a4318ad3b47adf8d54236.png
[2]: https://habrahabr.ru/post/319278/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Прямой доступ к диску из python (simhdd)
habra.16
habrabot(difrex,1) — All
2017-01-12 18:00:03


![image][1]


Добрый день, коллеги. Со времени написания [первой статьи][2] прошло достаточно много времени. За это время моя библиотечка для доступа к диску научилась работать со встроенными SMART-тестами и их логами а также механизмами безопасности современных накопителей.

На этот раз я расскажу о создании приложения для тестирования жестких дисков на базе этой библиотеки.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/e03/2cf/e61/e032cfe6188049f884cb1bca3f78c6b5.jpg
[2]: https://habrahabr.ru/post/274195/
[3]: https://habrahabr.ru/post/319384/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обзор кросс-платформенных решений для разработки мобильных приложений
habra.16
habrabot(difrex,1) — All
2017-01-12 19:30:04


В этой статье мы сравним 6 решений для кросс-платформенной разработки, которые были популярны в 2016 году и попытаемся найти лучшее решение.

Кросс-платформенные фреймворки

PhoneGap, Xamarin, Unity, Qt и Appcelerator Titanium, Telerik Platform на сегодняшний день занимают 80% рынка кросс-платформенной разработки для мобильных устройств.

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

[1]: https://habrastorage.org/files/c58/198/0c8/c581980c825b44fcb8a35fe2f3c3ef7f.png
[2]: https://habrahabr.ru/post/319348/
[3]: https://habrahabr.ru/post/319348/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Грааль и Трюфель (Graal & Truffle)
habra.16
habrabot(difrex,1) — All
2017-01-12 23:30:03


_Малоизвестный исследовательский проект, который может значительно ускорить инновации в проектировании языков программирования_


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



_Хочу сразу предупредить, что статья местами напоминает презентацию крупной компании из-за эпитетов в духе «изменит индустрию», «лучший на рынке», «прорывные технологии» и др. Если закрыть глаза на такой эмоциональный стиль повествования, то получится интересная вводная статья про новинки технологий компиляторов и виртуальных машин._



## Введение



Со времён расцвета компьютерной индустрии многие были увлечены квестом в поисках идеального языка программирования. Квест очень сложный: создание нового языка — задача не из лёгких. И очень часто в процессе происходит дробление сложившейся экосистемы программирования и возникает необходимость заново строить базовые инструменты для нового языка: компилятор, отладчик, HTTP стек, IDE, библиотеки и бесконечное число базовых блоков пишутся с нуля для каждого нового языка. Совершенство в дизайне языков программирования недостижимо, и новые идеи возникают постоянно. Мы похожи на Сизифа: приговоренного богами на вечное толкание камня в гору, чтобы в итоге увидеть, как тот скатывается вниз снова и снова … целую вечность.



Как можно разорвать этот порочный цикл? Давайте помечтаем, чего бы нам хотелось.

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

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

[>] [Из песочницы] Динамическое перенаправление сетевого трафика
habra.16
habrabot(difrex,1) — All
2017-01-13 09:00:04


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



Корни вопроса начали расти из предыдущего проекта [socmetr.ru][1], где понадобилось собирать большой объем информации из социальных сетей, и таким образом забивая единственный канал с интернетом. Анализ показал, что даже при наличии сжатия, объем поступающей информации так велик, что происходит его блокировка, при этом мощности CPU и Memory не задействованы и на 20%, а дисковая подсистема почти все время простаивает, то есть мы упёрлись в ширину канала, которую нам предоставляет провайдер.



Первая мысль была пойти экстенсивным путём и просто увеличить его возможности, немного остыв и призадумавшись, поняли, что перекладываем проблему на будущее. Само собой, возник вопрос: "Каким путём пойдем товарищи?". В результате реализовали следующую идею:


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

[1]: http://socmetr.ru
[2]: http://socmetr.ru/work/20170111/habr-diagrams.png
[3]: https://habrahabr.ru/post/319410/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Bushed Bricks простая и увлекательная игра на JavaScript
habra.16
habrabot(difrex,1) — All
2017-01-13 09:00:04


![image][1]

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

[1]: https://habrastorage.org/files/a40/5c5/5c9/a405c55c92634c8b9da117f8caaa3818.jpg
[2]: https://habrahabr.ru/post/314402/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дайджест важных Linux событий 2016 — юбилеи
habra.16
habrabot(difrex,1) — All
2017-01-13 10:30:04


Прежде, чем погрузиться с пучину событий 2017 г. стоит оглянуться назад и отметить важные события и тренды минувшего года. Попытка охватить все важные события мире Linux и открытого ПО одним постом была самонадеянной, так как год выдался богатый юбилеями, а некоторые из них прошли незамеченными на Хабре. Из-за этого задуманный дайджест пришлось разбить на части, этот посвящен значительным юбилеям 2016 г: **Linux, Vim, KDE и Git**.


![][1]



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

[1]: https://habrastorage.org/files/876/854/c07/876854c0746f4b2eb0db24c0c1ce6e4a.png "Happy Birthday"
[2]: https://habrahabr.ru/post/319176/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обновление для межсетевых экранов Juniper открывает несанкционированный root-доступ к устройствам
habra.16
habrabot(difrex,1) — All
2017-01-13 11:00:04


[![][1]][2]

Компания Juniper предупреждает пользователей своих межсетевых экранов SRX о том, что выпущенное системное обновление содержит критическую уязвимость в результате которой возможен несанкционированный root-доступ к устройствам. Уязвимы все системы, пользователи которых использовали команду «request system software» с установленной опцией «partition».

В своем первом в 2017 году [бюллетене безопасности][3] компания пишет о том, что в результате обновления «система может оказаться в состоянии, при котором root-логин для командной строки становится доступным без пароля». В зоне риска все системы, обновленные с Junos OS версий до 12.1X46-D65. [Читать дальше →][4]

[1]: https://habrastorage.org/files/a64/9e8/f02/a649e8f028d2444c85a010473e03234c.jpg
[2]: https://habrahabr.ru/company/pt/blog/319416/
[3]: https://kb.juniper.net/InfoCenter/index?page=content&id=JSA10753&cat=SIRT_1&actp=LIST
[4]: https://habrahabr.ru/post/319416/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Bushed Bricks: простая и увлекательная игра на JavaScript
habra.16
habrabot(difrex,1) — All
2017-01-13 11:00:04


![image][1]

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

[1]: https://habrastorage.org/files/a40/5c5/5c9/a405c55c92634c8b9da117f8caaa3818.jpg
[2]: https://habrahabr.ru/post/314402/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что общего между написанием Властелина колец и программированием?
habra.16
habrabot(difrex,1) — All
2017-01-13 11:30:03


Работа программиста — это борьба со сложностью. Один из популярных вопросов про облачную телефонию — «А зачем ее использовать, если можно самим взять Asterisk, вжух, и все сделать?». Любопытная деталь из практики: много тех, кто приходит к нам после Asterisk. То есть сперва они приходят к нам, смотрят, что платформа стоит денег, говорят «да сами все сделаем» и уходят. Через полгода возвращаются со словами «Мы поняли, что хотим заниматься своим бизнесом, а не Asterisk». Как программисты, мы очень любим бороться со сложностью: заменять Asterisk на тулбокс с JavaScript полуфабрикатами, использовать облачные сервисы для работы с кодом и задачами, делить все на небольшие части и экспериментировать с версиями. Как оказалось, не только мы это любим. В новогодние праздники я совершенно случайно прочитала о том, что у Толкиена тоже был свой Git. Под катом — адаптированный для Хабра перевод.
[Вы не поверите, кем был Назгул в предыдущей ревизии git...][1]

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

[>] Про ScalaCheck
habra.16
habrabot(difrex,1) — All
2017-01-13 16:30:03


# Про ScalaCheck



**Часть 1. Введение**.



ScalaCheck — это [комбинáторная][1] библиотека, значительно облегчающая написание модульных тестов на Scala. В ней используется подход property-based тестирования, впервые реализованный в библиотеке [QuickCheck][2] для языка Haskell. Существует множество реализаций QuickCheck: есть реализации для [Java][3], [C][4], а так же [других][5] языков и платформ. Использование данного подхода позволяет значительно сократить время на разработку тестов.



Эта серия статей во многом похожа на мою [предыдущую][6], посвященную Parboiled, поэтому и структура повествования будет похожей. Я расскажу вам, для чего всё это нужно, затем мы научимся смотреть на мир сквозь призму свойств и генераторов, а потом перейдём к более сложным вещам. Заинтересовало? Прошу под кат.

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

[1]: https://en.wikipedia.org/wiki/Combinator_library
[2]: http://www.stuartgunter.org/intro-to-quickcheck/
[3]: https://github.com/pholser/junit-quickcheck/
[4]: https://github.com/silentbicycle/theft
[5]: https://en.wikipedia.org/wiki/QuickCheck
[6]: https://habrahabr.ru/post/270233/
[7]: https://habrahabr.ru/post/319456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Google запускает Key Transparency, инструмент для подтверждения криптоключей
habra.16
habrabot(difrex,1) — All
2017-01-13 17:00:03


![][1]

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

По [мнению Google][2], в нынешней инфраструктуре публичной криптографии есть серьёзный изъян. Дело в том, что в случае компрометации сервера с ключами пользователям приходится [вручную][3] [проверять][4] ключи у собеседника. Это крайне неудобно и на практике не работает. Из-за таких сложностей некоторые энтузиасты криптографии вовсе [отказываются от PGP][5] — и их вполне можно понять.

Компания Google придумала решение: она предлагает всем задействовать прозрачный механизм поиска открытых ключей [Key Transparency][6].
[Читать дальше →][7]

[1]: https://habrastorage.org/getpro/habr/post_images/bcc/6d4/37d/bcc6d437d1f0fa62440d91de6e501a80.png
[2]: https://security.googleblog.com/2017/01/security-through-transparency.html
[3]: https://whispersystems.org/blog/safety-number-updates/
[4]: http://www.cymru.com/gillsr/documents/pgp-key-verification.htm
[5]: https://habrahabr.ru/post/317630/
[6]: https://github.com/google/key-transparency/
[7]: https://habrahabr.ru/post/319470/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Exploit Exercises или ещё один сайт для любителей VulnHub
habra.16
habrabot(difrex,1) — All
2017-01-13 18:30:03


![][1]

Всем доброго времени суток, спасибо, что читаете мои райтапы.
Сегодня речь пойдёт ещё об одном сайте, который похож на VulnHub. Это [Exploit Exercises][2]. Несмотря на небольшое количество виртуалок, и их относительно давнюю публикацию, почерпнуть что-то новое можно и там. Тем более это компенсируется разнообразием и количеством уровней.
Начать предлагается с виртуальной машины под названием [Nebula][3]. Её мы сегодня и разберём. [Читать дальше →][4]

[1]: https://habrastorage.org/files/273/6b2/604/2736b2604f5248ba845ab64e01cfebdd.png
[2]: https://exploit-exercises.com/
[3]: https://exploit-exercises.com/nebula
[4]: https://habrahabr.ru/post/319380/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Простая и ужасающая история о шифровании
habra.16
habrabot(difrex,1) — All
2017-01-13 19:00:04


Это будет история об открытом ПО, доверии и ответственности.


## Задача и её решение


Как-то раз мне понадобилось добавить в своё приложение на Ruby симметричное шифрование. Алгоритм AES показался мне хорошим выбором и я решил найти библиотеку шифрования с поддержкой этого алгоритма. Поскольку я писал на Ruby, то сделал то же самое, что сделал бы на моём месте практически каждый программист на Ruby — пошел в Google и написал запрос «ruby gem aes». Конечно же, Google первой строкой предложил мне gem, называющийся (вот неожиданность!) — «aes». Он был очень прост в использовании:

require 'aes'

message = "Super secret message"
key = "password"

encrypted = AES.encrypt(message, key) # RZhMg/RzyTXK4QKOJDhGJg==$BYAvRONIsfKjX+uYiZ8TCsW7C2Ug9fH7cfRG9mbvx9o=
decrypted = AES.decrypt(encrypted, key) # Super secret message

Если вы при расшифровке использовали неверный пароль, gem выбрасывал ошибку:
decrypted = AES.decrypt(encrypted, "Some other password") #=> aes.rb:76:in `final': bad decrypt (OpenSSL::Cipher::CipherError)

Ну, отлично. Что же могло пойти не так?
[Читать дальше →][1]

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

[>] [Перевод] Алгоритм Дейкстры и разработка через тестирование
habra.16
habrabot(difrex,1) — All
2017-01-13 19:30:03


Здравствуйте, дорогие читатели.

Некоторые потенциальные авторы, с которыми мы общаемся, думают, что в нашем ассортименте не хватает книг по TDD. Мы думаем, как к ней подступиться. Но нам не менее интересно, что думаете о ней вы. Поэтому предлагаем под катом перевод статьи легендарного Роберта Мартина, автора шикарной книги «Чистый код». В статье (октябрь 2016 года) господин Мартин демонстрирует искусство TDD на примере алгоритма Дейкстры.
[Читать дальше →][1]

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

[>] Security Week 01-02: уязвимость в box.com, фишинг паролей в PDF, атаки на MongoDB
habra.16
habrabot(difrex,1) — All
2017-01-14 10:00:06


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

Начнем с интересного приема фишинга при помощи PDF, о котором [сообщил][3] SANS Institute. При открытии документа в этом формате пользователю сообщается, что он «заблокирован» и предлагается ввести логин и пароль. Пароль затем отправляется на сервер злоумышленника. Интересных моментов тут два. Во-первых, это фишинг вслепую: пользователь может ввести пароль от учетной записи или от почты, или вообще непонятно от чего. Злоумышленников это не волнует: расчет на то, что пароль везде одинаковый.

Во-вторых, при попытке отправить данные на сервер Adobe Reader выводит предупреждение. А вот, например, встроенный в браузер Microsoft Edge просмотрщик пересылает введенную информацию молча, без объявления войны. Похожий метод (сообщение о якобы заблокированном контенте) применяется в аттачах в формате MS Word, но там это сделано, чтобы заставить пользователя выполнить вредоносный код.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/34b/c2d/da6/34bc2dda6f8745428be622350a47f8ae.jpg
[2]: https://threatpost.com/fbi-dhs-report-links-fancy-bear-to-election-hacks/122802/
[3]: https://threatpost.com/experts-warn-of-novel-pdf-based-phishing-scam/122896/
[4]: https://habrahabr.ru/post/319502/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Неприлично простая реализация неприлично простого алгоритма генерации лабиринта
habra.16
habrabot(difrex,1) — All
2017-01-15 01:30:04


Продолжение [этой статьи][1] об очень простом алгоритме генерации прямоугольных лабиринтов. В этой статье я приведу мою реализацию алгоритма на С++, а также покажу несколько дополнительных функций, которые породил мой скучающий мозг. Если осмелитесь продолжить читать, убедитесь, что ознакомились с моей предыдущей статьей. Глянули? Молодцы, продолжаем. [Читать дальше →][2]

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

[>] О сравнении объектов по значению — 6: Structure Equality Implementation
habra.16
habrabot(difrex,1) — All
2017-01-15 17:30:04


В [предыдущей публикации][1] мы рассмотрели особенности устройства и работы [структур][2] платформы [.NET][3], являющихся ["типами по значению" (Value Types)][4] в разрезе сравнения по значению объектов — экземпляров [структур][5].



Теперь рассмотрим готовый пример реализации сравнения по значению объектов — экземпляров [структур][6].



Поможет ли пример для [структур][7] более точно определить с предметной (доменной) точки зрения область применимости сравнения объектов по значению в целом, и тем самым упростить образец сравнения по значению объектов — экземпляров [классов][8], являющихся [ссылочными типами (Reference Types)][9], выведенный в одной из [предыдущих публикаций][10]?

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

[1]: https://habrahabr.ru/post/315622/
[2]: https://msdn.microsoft.com/library/ah19swz4.aspx
[3]: https://www.microsoft.com/net
[4]: https://msdn.microsoft.com/library/s1ax56ch.aspx
[5]: https://msdn.microsoft.com/library/ah19swz4.aspx
[6]: https://msdn.microsoft.com/library/ah19swz4.aspx
[7]: https://msdn.microsoft.com/library/ah19swz4.aspx
[8]: https://msdn.microsoft.com/library/0b0thckt.aspx
[9]: https://msdn.microsoft.com/library/490f96s2.aspx
[10]: https://habrahabr.ru/post/315258/
[11]: https://habrahabr.ru/post/319100/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Тень на плетень, или 25 елок для Адама Дженсена
habra.16
habrabot(difrex,1) — All
2017-01-16 03:30:04


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

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

[1]: https://habrastorage.org/files/7c9/903/6ab/7c99036ab6864078b2a2437404178b06.png
[2]: https://habrahabr.ru/post/319530/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В поиске бесплатных билетов, исследование игры Аэрофлота: Миссия 2017
habra.16
habrabot(difrex,1) — All
2017-01-16 09:00:02


В преддверие Нового Года, разгребая тонны поздравительных писем, я наткнулся на предложение от Аэрофлота спасти Новый Год и получить 150 000 миль за первое место. Памятую о [прошлой их промо акции][1] и имея слабость к взломуанализу подобных мероприятий, я перешел по ссылке.

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

[1]: https://habrahabr.ru/post/238463/
[2]: https://habrastorage.org/files/970/c83/d63/970c83d6350543fcb5a74c487160bd6d.png
[3]: https://habrahabr.ru/post/318944/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VulnHub: Реверсим всё что можно в DC416 Baffle
habra.16
habrabot(difrex,1) — All
2017-01-16 09:00:02


![][1]

Всем доброго времени суток, этой статьёй хотелось бы завершить серию DC416, CTF с конференции [DefCon Toronto's][2]. Оставив на десерт [DC416 Baffle][3], на мой взгляд, самый интересный и хардкорный квест, предоставленный командой [VulnHub][4].

**Внимание! Впереди будет много реверса и бинарной эксплуатации!**

Если вы к этому не готовы, то рекомендую для начала ознакомиться с предыдущими райтапами:

* [DC416 Dick Dastardly][5]
* [DC416 Basement][6]
* [DC416 Fortress][7]
[Читать дальше →][8]

[1]: https://habrastorage.org/files/3d6/802/fd6/3d6802fd6650426ca147ee3fea98180b.png
[2]: https://dc416.com/
[3]: https://www.vulnhub.com/entry/dc416-2016,168/
[4]: https://www.vulnhub.com
[5]: https://habrahabr.ru/post/318372/
[6]: https://habrahabr.ru/post/318998/
[7]: https://habrahabr.ru/post/319204/
[8]: https://habrahabr.ru/post/318860/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Нейросетка играет в Доту
habra.16
habrabot(difrex,1) — All
2017-01-16 10:00:03


![][1]

Всем привет! На самом деле нейросетка играет не в привычную Dota 2, а в RussianAICup 2016 CodeWizards. RussianAICup — это ежегодное открытое соревнование по программированию искусственного интеллекта. Участвовать в этом соревновании довольно интересно. В этом году темой была игра похожая на Доту. Так как я уже какое-то время занимаюсь обучением с подкреплением, то мне хотелось попробовать применить это в RussianAICup. Главной целью было научить нейронную сеть играть в эту игру, хотя занятие призового места — это, конечно, было бы приятно. В итоге нейросеть держится в районе 700 места. Что, я считаю, неплохо, ввиду ограничений соревнования. В этой статье речь пойдет скорее об обучении с подкреплением и алгоритмах [DDPG][2] и [DQN][3], а не о самом соревновании.
[Но обо всем по-порядку][4]

[1]: https://habrastorage.org/files/6eb/37b/d1c/6eb37bd1c8ea4820a1cd0683923b9ea1.png
[2]: https://arxiv.org/abs/1509.02971
[3]: https://arxiv.org/abs/1312.5602
[4]: https://habrahabr.ru/post/319518/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Доставляем себе в офис чашку горячего кофе одной командой консоли
habra.16
habrabot(difrex,1) — All
2017-01-16 10:30:04


[![][1]][2]



Друзья, сегодня я расскажу вам историю о том, как просто и изящно решить проблему еnd-to-еnd тестирования [web-сервиса доставки кофе][3] с помощью нового open source тестового фреймворка. Мы проведем проверку не только работы сайта, но и менеджеров и даже службы доставки, к тому же потратим на это минимум усилий и времени. А в качестве бонуса за приложенные усилия получим кружечку горячего кофе прямо в руки. Всех любителей приключений прошу под кат…

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

[1]: https://habrastorage.org/files/522/eb0/efe/522eb0efe6d64e49bdc47ba30286bac9.png
[2]: https://habrahabr.ru/post/318452/
[3]: http://www.pitcofe.ru/
[4]: https://habrahabr.ru/post/318452/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Производительность Bitrix Старт на Proxmox и Virtuozzo 7 & Virtuozzo Storage
habra.16
habrabot(difrex,1) — All
2017-01-16 11:00:04


![][1]



Тестирование производительности Bitrix Старт на двух принципиально разных платформах.
Замерять будем при помощи встроенной панели производительности Bitrix.

C одной стороны, бесплатная версия Proxmox 4.4, LXC контейнеры с использованием файловой системы ZFS на SSD дисках.

С другой стороны, лицензионная Virtuozzo 7 CT + Virtuozzo Storage. В этом варианте мы используем обычные SATA диски + SSD для кеша записи и чтения.

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

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

[1]: https://habrastorage.org/files/0af/b82/387/0afb8238743d4401b2c4f30941e552a5.png
[2]: https://habrahabr.ru/post/319210/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Доставляем себе в офис чашку горячего кофе одной командой консоли с помощью TestCafe
habra.16
habrabot(difrex,1) — All
2017-01-16 11:30:03


[![][1]][2]



Друзья, сегодня я расскажу вам историю о том, как просто и изящно решить проблему еnd-to-еnd тестирования [web-сервиса доставки кофе][3] с помощью нового open source тестового фреймворка. Мы проведем проверку не только работы сайта, но и менеджеров и даже службы доставки, к тому же потратим на это минимум усилий и времени. А в качестве бонуса за приложенные усилия получим кружечку горячего кофе прямо в руки. Всех любителей приключений прошу под кат…

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

[1]: https://habrastorage.org/files/522/eb0/efe/522eb0efe6d64e49bdc47ba30286bac9.png
[2]: https://habrahabr.ru/post/318452/
[3]: http://www.pitcofe.ru/
[4]: https://habrahabr.ru/post/318452/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 ... 210