RSS
Pages: 1 ... 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 ... 133
[>] Программирование без интернета
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

[>] «Мое облако — моя крепость»: Тренды облачной безопасности
habra.16
habrabot(difrex,1) — All
2017-01-16 11:30:03


Ранее, в одном из [постов][1], мы рассказывали, как обеспечиваем сохранность данных наших клиентов в облаке. Сегодня мы предлагаем рассмотреть мировой опыт в этой сфере. Ведь количество киберугроз во всем мире не просто увеличивается — одновременно повышается их качество.

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

[1]: https://habrahabr.ru/company/1cloud/blog/312260/
[2]: https://habrastorage.org/files/ea0/ced/fbf/ea0cedfbf7c445ddab5159838a920687.jpg
[3]: https://habrahabr.ru/company/1cloud/blog/319398/
[4]: https://habrahabr.ru/post/319398/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Типичные ошибки начинающих работать с изображениями
habra.16
habrabot(difrex,1) — All
2017-01-16 14:00:04


![][1]Цифровая обработка изображений — весьма интересная область, но она таит в себе множество подводных камней, на которые постоянно натыкаются новички. Мы активно привлекаем студентов к участию в грантах и проектах, но когда мы пытались давать студентам реальные задания, которые требуют реализации новых алгоритмов обработки изображений, мы были в ужасе от совершаемых ими детских ошибок.



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



Данная статья описывает наиболее частые ошибки, совершаемые студентами при выполнении практических заданий по обработке изображений. Изображения обычные, никакой экзотики типа 16-битной глубины цвета, панхроматичности и 3D-изображений нет.

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

[1]: https://habrastorage.org/files/4a0/6a1/bee/4a06a1bee4254eb8ab14e8ab8f7a303a.png
[2]: https://habrahabr.ru/post/319606/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Инфраструктура онлайн игры
habra.16
habrabot(difrex,1) — All
2017-01-16 15:00:04


![image][1]



Здравствуйте, меня зовут [Александр Зеленин][2], и я на дуде игрец веб-разработчик. Полтора года назад я [рассказывал о разработке онлайн игры][3]. Так вот, она немного разрослась… Суммарный объём исходного кода превысил «Войну и мир» вдвое. Однако в данной статье я хочу рассказать не о коде, а об организации инфраструктуры проекта.

[Неужели всё так сложно?][4]

[1]: https://habrastorage.org/files/f02/268/50b/f0226850b7a84d7999eef4bd4eb13a90.png
[2]: http://zelenin1.moikrug.ru/
[3]: https://habrahabr.ru/post/265395/
[4]: https://habrahabr.ru/post/319582/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как мы заново открыли TFS
habra.16
habrabot(difrex,1) — All
2017-01-16 18:30:04


# Новое открытие TFS {#novoe-otkrytie-tfs}



Какая первая ассоциация возникает, когда слышишь словосочетание Microsoft TFS? Что-то большое, неповоротливое и корпоративное. Именно так и было до появления Visual Studio Team Services и выхода MS TFS 2015. Первый — это облачная версия Team Foundation Server, которая опережает в развитии частную (private) версию примерно на три месяца. Одним из главным нововведений обновленного TFS/VSTS стала новая система сборок. Эта система позволяет достаточно просто писать свои шаги сборок, которые могут делать что угодно — от собственно сборки проекта до автоматического заведения дефектров и рассылки нотификаций. Кроме этого новая версия предоставляет развитый REST API для манипулирования задачами, дефектами и практически любыми сущностями в базе данных TFS.



Именно поэтому когда перед нами встал выбор новой системы управления жизненным циклом разработки, мы остановились именно на этой новой версии MS TFS. Мы используем TFS для полного цикла — планирование-разработка-тестирование-развертывание, и, поначалу все шло достаточно гладко. С ростом сложности задач, которые мы ставили перед системой сборки, появлялись и проблемы. К счастью, REST API и собственные шаги сборки позволили их с успехом решить. Далее я расскажу о проблемах и о том, как мы их решили.


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

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

[>] Путь, который стоило пройти, чтобы получить бесценный опыт в мобильной разработке
habra.16
habrabot(difrex,1) — All
2017-01-16 18:30:04


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

Пришло время подвести итоги 2016 года. Здесь пойдет речь о второй попытке повторить успех с образовательным приложением “Русский язык — грамотей”. ([о другой попытке мы писали ранее][1])

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

[1]: https://habrahabr.ru/post/309612/
[2]: https://habrastorage.org/files/7e4/a70/3df/7e4a703df10b48219d6850b4d03d707a.png
[3]: https://habrahabr.ru/post/319642/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Приглашаем на Moscow Python Meetup 19 января
habra.16
habrabot(difrex,1) — All
2017-01-16 21:30:04


![image][1]

Приглашаем разработчиков, тимлидов и всех, кто так или иначе связан с разработкой на Python, принять участие в Moscow Python Meetup, который состоится 19 января, в четверг, в московском офисе Mail.Ru Group. В программе встречи три доклада, подробности о них читайте под катом.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/b05/aab/456/b05aab4568f74ff8bfe2f93590ed376b.png
[2]: https://habrahabr.ru/post/319684/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Продолжение эпопеи с USB-стеком
habra.16
habrabot(difrex,1) — All
2017-01-17 03:30:04


![image][1]
Нам все же удалось разбить лёд, мы все же нашли несколько тестеров во время [прошлого этапа][2] и готовы двигаться дальше.

Разработчик Вадим Галянт залил в облако экспериментальный образ ReactOS с обновленными компонентами USB-стека. Нам вновь нужны ваши тесты. Срочно! Только от вас зависит, попадут ли наработки в общую ветку до релиза 0.4.4. Времени осталось совсем мало, буквально пара дней.

[drive.google.com/file/d/0B0uL4J-umfUBLXgwd25ZVnE1dzA/view][3]
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/e78/05f/b08/e7805fb08cf2f4bf6d16e58555e1fbf1.jpg
[2]: https://habrahabr.ru/company/reactos/blog/318798/
[3]: https://drive.google.com/file/d/0B0uL4J-umfUBLXgwd25ZVnE1dzA/view
[4]: https://habrahabr.ru/post/319694/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VoIP телефония. Asterisk. Нестандартный подход ко всему. Часть 2
habra.16
habrabot(difrex,1) — All
2017-01-17 07:00:03


Продолжаем наш рассказ о модификации движка для VoIP оператора связи.



[В первой части][1] мы рассказали о начальной структуре базы данных и настройке Asterisk для обслуживания вызовов, с мониторингом состояния вызова. В этой части мы затронем такие вещи как тарификатор, LCR, биллинг и геолокация.

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

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

[>] VoIP телефония. Asterisk. Нестандартный подход ко всему. Часть 1
habra.16
habrabot(difrex,1) — All
2017-01-17 07:00:03


Ровно год назад к нам обратились бывшие коллеги, с предложением принять участие в модификации движка VoIP оператора связи. Задача сводилась к полной переделке личного кабинета, обеспечению масштабирования системы, создания системы биллинга, LCR, мониторинга расходов пользователей, контроля длительности разговоров, аналитики по звонкам. История закончилась печально, т.к. заложенный нами расширенный функционал системы якобы не соответствовал ТЗ, никак не формализованному на бумаге и находящемуся только в головах менеджеров оператора. В связи с тем, что за разработанный функционал, который заказчику очень понравился, менеджеры платить не захотели, отношения мы разорвали. NDA и договора у нас не было, поэтому посоветовавшись с коллегами мы решили часть наработок выложить в свободный доступ. Я думаю, что это будет серия статей. И начнём пожалуй с базовых вещей и архитектуры.

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

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

[>] Windows имеет внутренний список неудаляемых корневых сертификатов
habra.16
habrabot(difrex,1) — All
2017-01-17 09:00:03


В Windows, согласно , подписанный Microsoft, которому Windows, начиная с 7, доверяет безоговорочно, и обновляет его каждые 2 недели, а в случае установки особого обновления — каждый день.



В консоли (MMC) можно добавить сертификаты, к которым нет доверия, но вот удалить корневой сертификат не так то просто.


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

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

[>] Как перебрать все перестановки и о факториальном разложении натуральных чисел
habra.16
habrabot(difrex,1) — All
2017-01-17 09:30:04


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

**n! = n \* (n — 1) \* (n – 2) \* … \* 3 \* 2 \* 1**

Факториал – достаточно быстро растущая функция, об этом говорит ее асимптотика (формула Стирлинга), хотя достаточно посмотреть на факториалы нескольких первых членов натурального ряда:

1! 1
2! 2
3! 6
4! 24
5! 120
6! 720
7! 5 040
8! 40 320
9! 362 880
10! 3 628 800
11! 39 916 800
12! 479 001 600
13! 6 227 020 800
14! 87 178 291 200
15! 1 307 674 368 000

Как видно, факториал 13-ти уже не умещается в тип данных long.

Если задаться целью найти однозначное соответствие между номером перестановки — числом в диапазоне от 1 до **n**! – и ее реализацией, можно натолкнуться на один очень интересный математический факт.
[Читать дальше →][1]

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

Pages: 1 ... 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 ... 133