RSS
Pages: 1 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 133
[>] Intel Media SDK 2016 R2 — что нового?
habra.16
habrabot(difrex,1) — All
2016-06-15 19:00:03


![][1]Увидела свет новая версия комплекса средств для разработки ПО кодирования и воспроизведения медиа контента [Intel Media SDK 2016][2]. Обновление содержит ряд существенных изменений:

* Добавлена поддержка процессоров Intel Core седьмого поколения (Kabylake);
* Улучшена работа Media RAW Accelerator для обеспечения гибкости и производительности;
* Добавлены новые возможности при кодировании AVC/H.264 для видеоконференций и облачных игровых сервисов;
* Добавлены новые VPP-фильтры и улучшены существующие;
* Внедрена новая версия API c улучшениями в управлении памятью и функционалом запроса платформы;
* Внедрена поддержка Windows Redstone Preview.
Под катом — краткий обзор текущей функциональности Intel Media SDK 2016.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/fdd/6a0/db1/fdd6a0db1fd946caa4fae64dc3e6ec36.PNG
[2]: https://software.intel.com/en-us/media-sdk
[3]: https://habrahabr.ru/post/302966/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] 2-3-дерево. Наивная реализация
habra.16
habrabot(difrex,1) — All
2016-06-15 20:00:03


Недавно мне понадобилось написать 2-3-дерево и я начал искать информацию в русскоязычном интернете. К сожалению, ни на хабре, ни на других ресурсах я не смог найти достаточно полную информацию на русском языке. На всех ресурсах было одно и то же: свойства дерева, как вставляются ключи в дерево, поиск в дереве и иногда простой пример, как удаляется ключ из дерева; не было реализации.

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

[1]: https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE-%D1%87%D1%91%D1%80%D0%BD%D0%BE%D0%B5_%D0%B4%D0%B5%D1%80%D0%B5%D0%B2%D0%BE
[2]: https://habrahabr.ru/post/303374/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Не Паскалем единым: что сделал для современного мира лауреат компьютерной «нобелевки» Никлаус Вирт
habra.16
habrabot(difrex,1) — All
2016-06-15 21:00:03




Некоторые считают, что современный мир почти не знает Никлауса Вирта и даже не догадывается о его огромном вкладе в мировую компьютерную науку. Кто-то полагает его «отцом Паскаля». Вирта вспоминают не только педагоги в ВУЗах, когда преподают студентам Turbo Pascal, но и коммерческие разработчики, пишущие на Delphi.

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

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

[>] Az.js: JavaScript-библиотека для обработки текстов на русском языке
habra.16
habrabot(difrex,1) — All
2016-06-15 23:00:04


> Как чуден и глубок русский курлык
> _— Генератор постов_


Обработка естественного языка (natural language processing, NLP) — тема, на мой взгляд, очень интересная. Во-первых, задачи тут чисто алгоритмические: на вход мы принимаем совершенно примитивный объект, строчку, а извлечь из него пытаемся вложенный в него смысл (ну или хотя бы частичку смысла). Во-вторых, необязательно быть профессиональным лингвистом, чтобы решать эти задачи: достаточно знать родной язык на более-менее приличном уровне и любить его.

А ещё с небольшими затратами можно сделать какого-нибудь бестолкового чат-бота — или, как вот я, [генератор постов][1] на основе того, что вы сами писали на своей страничке в соцсети. Возможно, кто-то из вас уже видел это приложение — оно довольно глупое, чаще всего выдает бессмысленный и бессвязный текст, но изредка всё же заставляет улыбнуться.

Бессвязность текстов в нынешней версии «Генератора» вызвана тем, что на самом деле никакого анализа он производить не умеет. Просто в одних случаях «предсказывает» продолжение предложения по собранным биграммам, а в других — заменяет в готовом предложении некоторые слова на другие, которые заканчиваются похоже. Вот и вся начинка.

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

[1]: https://vk.com/postgen
[2]: https://habrahabr.ru/post/303308/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пишем сериализатор для сетевой игры на C++11
habra.16
habrabot(difrex,1) — All
2016-06-16 02:00:11


Написать этот пост меня вдохновила замечательная [статья в блоге Gaffer on Games «Reading and Writing Packets»][1] и неуёмная тяга автоматизировать всё и вся (особенно написание кода на C++!).

Начнём с постановки задачи. Мы пишем сетевую игру (и сразу MMORPG, конечно же!), и независимо от архитектуры у нас возникает необходимость постоянно посылать и получать данные по сети. У нас, скорее всего, возникнет необходимость посылать несколько разных типов пакетов (действия игроков, обновления игрового мира, просто-напросто аутентификация, в конце концов!), и для каждого у нас должна быть функция чтения и функция записи. Казалось бы, не вопрос сесть и написать спокойно эти две функции и не нервничать, однако у нас сразу же возникает ряд проблем.

* Выбор формата. Если бы мы писали простенькую игру на JavaScript, нас бы устроил JSON или любой его самописный родственник. Но мы пишем серьёзную многопользовательскую игру, требовательную к трафику; мы не можем позволить себе отправлять ~16 байт на float вместо четырёх. Значит, нам нужен «сырой» двоичный формат. Однако, двоичные данные усложняют отладку; было бы здорово, если бы мы могли менять формат в любой момент, не переписывая целиком все наши функции чтения/записи.
* Проблемы безопасности. Первое правило сетевой игры: _не доверяй данным, присланным клиентом_! Функция чтения должна уметь оборваться в любой момент и вернуть `false`, если что-то пошло не так. При этом использовать исключения считается неважной идеей, поскольку они слишком медленные. Мамкин хакер пусть и не сломает ваш сервер, но вполне может ощутимо замедлить его беспрерывными эксепшнами. Но вручную писать код, состоящий из if'ов и return'ов, неприятно и неэстетично.
* Повторяющийся код. Функции чтения и записи похожи, да не совсем. Необходимость изменить структуру пакета приводит к необходимости поменять _две_ функции, что рано или поздно приведёт к тому, что вы забудете поменять одну из них или поменяете их по-разному, что приведёт к трудно отлавливаемым багам. Как справедливо замечает Gaffer on Games, _it is really bloody annoying to maintain separate read and write functions_.
Всех интересующихся тем, как Бендер выполнил своё обещание и при этом решил обозначенные проблемы, прошу под кат.
[Читать дальше →][2]

[1]: http://gafferongames.com/building-a-game-network-protocol/reading-and-writing-packets/
[2]: https://habrahabr.ru/post/303368/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Функциональное программирование непопулярно, потому что оно странное
habra.16
habrabot(difrex,1) — All
2016-06-16 10:00:03


Я знаю людей, которые искренне недоумевают по поводу того, что функциональное программирование не очень популярно. К примеру, сейчас я читаю книжку «Из смоляной ямы» (Out of the Tar Pit), в которой авторы после аргументов в пользу функционального программирования говорят:
[Читать дальше →][1]

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

[>] Это все потому, что у кого-то слишком маленькая экспонента: атака Хастада на RSA в задании NeoQUEST-2016
habra.16
habrabot(difrex,1) — All
2016-06-16 13:30:08


![][1] Продолжаем разбирать задания online-этапа NeoQUEST-2016 и готовимся к "[очной ставке][2]", куда приглашаем всех желающих! Вас ждут интересные доклады, демонстрации атак, конкурсы, призы и многое другое!

Редкий хак-квест обходится без криптографии, ну и NeoQUEST-2016 не стал исключением! В задании online-этапа наш выбор пал на криптосистему RSA, о безопасности которой можно говорить много и долго. В образовательно-познавательных целях, мы взяли не самую популярную атаку на RSA – атаку Хастада.

Кроме этого, мы порядком запутали участников, не предоставив им (на первый взгляд!) никаких исходных данных к заданию. О том, где нужно было искать, что делать с найденным и как реализовать атаку Хастада – читаем под катом!
[Читать дальше →][3]

[1]: https://habrastorage.org/files/179/9c6/f15/1799c6f15aa64ebeabe9db9ad09dd9c3.jpg
[2]: http://neoquest.ru
[3]: https://habrahabr.ru/post/303264/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Создание компонента движения для системы лазания в Unreal Engine
habra.16
habrabot(difrex,1) — All
2016-06-16 13:30:08


![image][1]

Здравствуйте меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби.

Как вы знаете недавно вышла Mirror's edge 2. Судя по отзывам критиков игра получилась очень слабая. И вы наверно уже захотели сделать свой Mirror's edge. Поэтому сегодня я расскажу как создать компонент движения, чтобы ваш персонаж двигался как героиня Mirror's edge.

Здесь будет описано создание компонента движения (дальше КД) который позволит персонажу:
1) Запрыгивать на стену.
2) Бегать по стене.
3) Перескакивать через небольшие препятствия
4) Делать ускорение при непрерывном беге
5)Делать подкат при нажатие Shift
6) Скатываться с наклонных поверхностей
7) А также мы создадим интерактивный объект веревку по которой тоже можно будет скатится

Все исходники приведены в конце статьи.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/522/ba3/900/522ba390019644b8b2e8b19c31295f79.jpg
[2]: https://habrahabr.ru/post/303394/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Интервью с автором Flask Армином Ронахером
habra.16
habrabot(difrex,1) — All
2016-06-16 15:00:03


Продолжаем серию интервью с докладчиками [PyCon Russia][1] о Python, их работе и увлечениях. Готовы мини-интервью с разработчиком языка Python [Андреем Светловым][2] и программистом из Scrapinghub [Александром Сибиряковым][3].

Под катом — короткое интервью c Армином Ронахером ([Armin Ronacher][4]), автором фреймворка [Flask][5], проекта Pallets, одним из основателей Pocoo Team, автором известного шаблонизатора для языка Python Jinja2 и нескольких библиотек с открытым исходным кодом. Сейчас Армин живет в Австрии и работает партнером Sentry и консультантом для Fireteam.

[][6]

###### _Выступление Армина на PyConRu-2014_


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

[1]: http://pycon.ru/2016/program/content/?utm_source=news&utm_medium=post&utm_campaign=habr16.06
[2]: https://habrahabr.ru/company/it_people/blog/302970/#first_unread
[3]: https://habrahabr.ru/company/it_people/blog/303218/
[4]: http://lucumr.pocoo.org/about/
[5]: http://flask.pocoo.org
[6]: https://fotki.yandex.ru/next/users/it-people-ekb/album/439648/view/872611?page=4
[7]: https://habrahabr.ru/post/303420/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Новый L4 Load Balancer с нативной реализацией SRV record service dicovery и Docker API service Discovery
habra.16
habrabot(difrex,1) — All
2016-06-16 15:00:03


# Как все начиналось



В ходе работы с микросервисами мы неоднократно сталкивались с проблемами сервис дискавери при автоскелинге, схлопывании лишних нод.



Были перепробованы почти все решения существовавшие или существующие на данный момент, но как водится — ничего не ложилось идеально на наши динамичные окружения (десятки остановок/запусков однотипных контейнеров в час). Наиболее близкое решение было NGINX+Consul+Consul templates, но оно было некрасивым, требовало перезапуска, не давало возможности использовать внешние хелсчеки иначе как через Consul.



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

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

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

[>] В Adobe Flash Player обнаружена очередная 0day-уязвимость
habra.16
habrabot(difrex,1) — All
2016-06-16 17:30:03


[![][1]][2]

Исследователи информационной безопасности из «Лаборатории Касперского» Костин Раю (Costin Raiu) и Антон Иванов обнаружили критическую [уязвимость][3] в Adobe Flash Player. Уязвимы версии программного Adobe Flash Player 21.0.0.242 и более ранние версии для платформ Windows, Mac, Linux и Chrome OS. [Читать дальше →][4]

[1]: https://habrastorage.org/files/14b/1f6/cee/14b1f6ceef6744b6afcd2405ee68b0a4.png
[2]: https://habrahabr.ru/company/pt/blog/303448/
[3]: https://helpx.adobe.com/security/products/flash-player/apsa16-03.html
[4]: https://habrahabr.ru/post/303448/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Подключение MATLAB к Wolfram Mathematica
habra.16
habrabot(difrex,1) — All
2016-06-16 18:00:03


![][1]




## Вызов MATLAB из Mathematica с помощью MATLink


Как можно вызывать функции MATLAB напрямую из Mathematica и организовать обмен данными и переменными между двумя системами?

**Для этого существует кроссплатформенный пакет под названием** **[MATLink][2]**. С помощью него легко организовать вызов функций MATLAB прямо из Mathematica и передавать различные данные от одной системы другой.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/bbf/e9b/3e4/bbfe9b3e4dc349928177f2dacade3663.png
[2]: http://matlink.org/
[3]: https://habrahabr.ru/post/303372/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Новый L4 Load Balancer с нативной реализацией SRV record service discovery и Docker API service Discovery
habra.16
habrabot(difrex,1) — All
2016-06-16 18:30:03


# Как все начиналось



В ходе работы с микросервисами мы неоднократно сталкивались с проблемами сервис дискавери при автоскелинге, схлопывании лишних нод.



Были перепробованы почти все решения существовавшие или существующие на данный момент, но как водится — ничего не ложилось идеально на наши динамичные окружения (десятки остановок/запусков однотипных контейнеров в час). Наиболее близкое решение было NGINX+Consul+Consul templates, но оно было некрасивым, требовало перезапуска, не давало возможности использовать внешние хелсчеки иначе как через Consul.



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

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

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

[>] [Из песочницы] Пишем текстовую игру на Python/Ren'Py
habra.16
habrabot(difrex,1) — All
2016-06-16 20:30:02


Как сделать текстовую игру? Да как угодно. Как сделать кроссплатформенную текстовую игру на русском с иллюстрациями, звуком, работающими сохранениями, без проблем с кириллицей, и с каким-никаким геймплеем? Да ещё и в свободное время, не отрываясь от основной работы? Вот это уже интересней и на самом деле — довольно несложно. Заинтересовавшихся прошу под кат.

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

[1]: https://habrastorage.org/files/642/d73/275/642d732755564e3a9d2e46977b9986e4.jpg
[2]: https://habrahabr.ru/post/303476/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Метрики качества ранжирования
habra.16
habrabot(difrex,1) — All
2016-06-16 22:30:03


В процессе подготовки задачи для вступительного испытания на [летнюю школу GoTo][1], мы обнаружили, что на русском языке практически отсутствует качественное описание основных метрик ранжирования (задача касалась частного случая задачи ранжирования — построения рекомендательного алгоритма). Мы в [E-Contenta][2] активно используем различные метрики ранжирования, поэтому решили исправить это недоразуменее, написав эту статью.



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

[1]: http://goto.msk.ru/school/
[2]: https://e-contenta.com/ru/
[3]: https://habrahabr.ru/post/303458/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Выпуск фреймворка Qt 5.7
habra.16
habrabot(difrex,1) — All
2016-06-17 10:30:03


Вчера, спустя всего 3 месяца с момента предыдущего значительного выпуска, вышла версия 5.7 кроссплатформенного фреймворка Qt.



Qt позволяет разрабатывать приложения при помощи C++ и декларативного языка программирования QML, поддерживает все основные десктопные и мобильные платформы, а также некоторые встраиваемые и имеет открытый исходный код. Существует коммерческая версия Qt, содержащая дополнительные проприетарные модули.



Новый выпуск принес смену лицензии, открытие кода проприетарных модулей, переход на C++11, стабилизация некоторых экспериментальных модулей, а также новые экспериментальные модули и удаление устаревших.


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

[1]: https://habrastorage.org/files/657/409/ddf/657409ddfd3d43b2a571cfc94202fa33.png
[2]: https://habrahabr.ru/post/303498/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Опыт перехода с Sublime на Vim
habra.16
habrabot(difrex,1) — All
2016-06-17 13:30:03


![][1]

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

Я достаточно долгое время использовал sublime (около 4 лет) в качестве основной среды разработки, но в последнее время кое-что изменилось: я освоил слепой 9-ти пальцевый метод печати. В тот момент я начал понимать людей, которым неудобно тянуться к мышке или стрелочкам. Убирать пальцы с «домашних» позиций стало неестественно и непродуктивно. Тогда я включил vintage. Проблема, вроде бы, стала неактуальна, но чего-то не хватало. Не помню, что заставило меня пересесть за vim, но мне всегда нравилось, как в нем выделяются фигурные скобки (MatchParen) и как выглядит курсор :). Vim я пробовал и до этого, когда правил конфиги на сервере, правда, вся «магия» ограничивалась переходом в режим вставки и успешным сохранением/выходом из редактора.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/fad/373/0aa/fad3730aaf404e3685b14d30355bbee3.png
[2]: https://habrahabr.ru/post/303524/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Первые 10 минут на сервере
habra.16
habrabot(difrex,1) — All
2016-06-17 13:30:03


### Азбука безопасности Ubuntu


«[Мои первые 5 минут на сервере][1]» Брайана Кеннеди — отличное введение, как быстро обезопасить сервер от большинства атак. У нас есть несколько исправлений для этой инструкции, чтобы дополнить ею наше [полное руководство][2]. Также хочется подробнее объяснить некоторые вещи для более юных инженеров.

Каждое утро я проверяю почтовые уведомления logwatch и получаю основательное удовольствие, наблюдая несколько сотен (иногда тысяч) безуспешных попыток получить доступ. (Многие довольно прозаичны — попытки авторизоваться как `root` с паролем `1234` снова и снова). Приведённая здесь общая методика подходит для серверов Debian/Ubuntu, которые лично мы предпочитаем всем остальным. Они обычно служат только хостами для контейнеров Docker, но принципы те же.

На больших масштабах лучше использовать полностью автоматические установки с инструментами вроде [Ansible][3] или [Shipyard][4], но иногда вы просто поднимаете единственный сервер или подбираете задачи для Ansible — для таких ситуаций предназначена инструкция.

**Примечание: Эта справка создана как базовая азбука. Её следует расширить и дополнить в соответствие с вашими потребностями.**
[Читать дальше →][5]

[1]: http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers
[2]: https://github.com/codelittinc/incubator-resources
[3]: https://github.com/ansible/ansible
[4]: https://shipyard-project.com/
[5]: https://habrahabr.ru/post/303462/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] SЯP wrong эncяyptioи или как скомпрометировать всех пользователей в SAP JAVA
habra.16
habrabot(difrex,1) — All
2016-06-17 14:30:03


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



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



В статье сначала мы поговорим о возможности получения информации из системы, об эксплуатации уязвимости, основанной на утечке информации, далее — об эскалации привилегий. Все уязвимости были найдены в последних (на момент исследования) версиях SAP (SAP NW AS JAVA 7.4). Ну что ж, понеслось.


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

[1]: https://habrastorage.org/files/17c/5a2/a60/17c5a2a601e64fe7abbd3e4c5c6df218.jpeg
[2]: https://habrahabr.ru/post/303500/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Куда пойти Python’исту: Что интересного будет на конференции PyCon-2016
habra.16
habrabot(difrex,1) — All
2016-06-17 15:00:02


[![][1]][2]

3-4 июля состоится PyCon — ежегодная конференция по вопросам разработки на Python. Формат мероприятия — двухдневная конференция на природе, в ходе которой своим опытом поделятся иностранные и российские эксперты в области программирования.

Чего ждать

Предыдущие мероприятия проходили в Екатеринбурге, а в этом году PyCon переезжает в Москву, точнее в Подмосковье — конференция состоится в отеле «Cronwell Яхонты Таруса» в 95 км от столицы.

Как [пишут][3] организаторы, в программе конференции «20 докладов, 2 воркшопа, Lightning Talks, дискуссионная панель, Unconference, афтепати с костром и песнями». [Читать дальше →][4]

[1]: https://habrastorage.org/files/378/97b/065/37897b06579445e79029f31a32e28498.png
[2]: https://habrahabr.ru/company/pt/blog/303502/
[3]: https://habrahabr.ru/company/it_people/blog/303084/
[4]: https://habrahabr.ru/post/303502/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проверка проекта OpenJDK с помощью PVS-Studio
habra.16
habrabot(difrex,1) — All
2016-06-17 15:00:02


![][1]Соавтор: Роман Фомичёв.

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


## Введение


[OpenJDK][2] (Open Java Development Kit) — проект по созданию реализации платформы Java (Java SE), состоящий исключительно из свободного и открытого исходного кода. Проект стартовал в 2006 году усилиями компании Sun. В проекте используются несколько языков — C, C++ и Java. Нас интересуют исходные коды написанные на С и С++. Для проверки возьмем 9-ю версию OpenJDK. Код этой реализации Java платформы доступен в [репозитории Mercurial][3].
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/1f2/743/50c/1f274350c30f58cb53ee51d15aadb558.png
[2]: http://openjdk.java.net/
[3]: http://hg.openjdk.java.net/jdk9
[4]: https://habrahabr.ru/post/303534/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Программе Android Security Rewards исполнился 1 год
habra.16
habrabot(difrex,1) — All
2016-06-17 15:30:03


Привет, Хабр! [Год назад][1] в программе Google Vulnerability Rewards появилась новая номинация —[ Android Security Rewards][2]. За обнаружение лазейки в системе безопасности Android мы предлагали до 38 000 долларов США. С помощью таких поощрений нам удалось обнаружить и устранить множество ошибок и уязвимостей — и улучшить защиту наших пользователей.

![][3]

Это было достойное начало — и вот результаты первого года работы программы:
* Вы прислали более 250 отчетов об ошибках, отвечающих нашим требованиям.
* 82 исследователя получили более 550 000 долларов США в качестве вознаграждений. В среднем на одно вознаграждение пришлось 2200 долларов, а на человека — 6700 долларов.
* Наш лучший исследователь, Питер Пи ([@heisecode][4]) из Trend Micro, получил $75 750 долларов США за 26 отчетов.
* Пятнадцати исследователям мы заплатили не менее чем по $10 000.
* Никому не удалось описать удаленную атаку, состоящую из цепочки уязвимостей, которая компрометирует Android TrustZone или Verified Boot. Так что главный приз остался невостребованным.

Спасибо[ всем][5], кто в принял участие в программе, прислал качественные[ отчеты об ошибках][6] [и помог нам улушчить Android][7]. Теперь защита системы стала надёжней, так что с 1 июня 2016 года мы поднимаем ставки!
[Читать дальше →][8]

[1]: https://security.googleblog.com/2015/06/announcing-security-rewards-for-android.html
[2]: https://www.google.com/about/appsecurity/android-rewards/index.html
[3]: https://habrastorage.org/getpro/habr/post_images/687/122/56b/68712256bc9a37655a12c068921bb7a2.png
[4]: https://twitter.com/heisecode
[5]: https://source.android.com/security/overview/acknowledgements.html
[6]: https://code.google.com/p/android/issues/entry?template=Security%20bug%20report
[7]: https://code.google.com/p/android/issues/entry?template=Security%20bug%20report
[8]: https://habrahabr.ru/post/303536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Stepic.org в Telegram: как мы разрабатывали бота и что из этого получилось
habra.16
habrabot(difrex,1) — All
2016-06-17 15:30:03


Зимой 2016 года у нас в Stepic.org возникла идея сделать для наших учащихся персонального помощника, поэтому мы позвали студента СПбАУ РАН Константина Чаркина на стажировку, результатом которой видели Telegram-бота. Это потом всё вышло из под контроля и появился набор стикеров и каналы по курсам… Но обо всём по порядку!

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

[1]: https://habrastorage.org/files/005/15f/44d/00515f44d2be4bebbbe3d20081e26e09.jpg
[2]: https://habrahabr.ru/post/303478/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Relinx — ещё одна реализация .NET LINQ методов на C++, с поддержкой «ленивых вычислений»
habra.16
habrabot(difrex,1) — All
2016-06-17 16:30:03


![RelinxLogo][1]Среди многих реализаций LINQ-подобных библиотек на C++, есть много интересных, полезных и эффективных. Но на мой взгляд, большинство из них написаны с неким пренебрежением к C++ как к языку. Весь код этих библиотек написан так, словно пытаются исправить его «уродливость». Признаюсь, я люблю C++. И как бы его не поливали грязью, моя любовь к нему едва ли пройдёт. Возможно, это отчасти потому, что это мой первый язык программирования высокого уровня и второй, который я изучил после Ассемблера.
[Читать дальше →][2]

[1]: https://github.com/Ptomaine/Relinx/raw/master/media/relinx.png
[2]: https://habrahabr.ru/post/303538/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Распутывая историю Ады Лавлейс (первого программиста в истории)
habra.16
habrabot(difrex,1) — All
2016-06-17 18:30:05


![][1]


_Перевод поста Стивена Вольфрама "[Untangling the Tale of Ada Lovelace][2]".
Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][3] за помощь в переводе и подготовке публикации._
----

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


[Ранние годы Ады][4]
[Чарльз Бэббидж][5]
[Уровень развития этой области][6]
[Возвращаемся к Аде][7]
[Возвращаясь к Бэббиджу][8]
[Статья Ады][9]
[После статьи][10]
[После смерти Ады][11]
[Что стало с Бэббиджем?][12]
[Повторное открытие][13]
[О чем на самом деле писала Ада][14]
[Вычисление чисел Бернулли][15]
[Бэббидж vs. Ада?][16]
[Секретный ингредиент Бэббиджа][17]
[В большем масштабе][18]
[А что, если...][19]
[Какими они были?][20]
[Заключение][21]
----
[Ада Лавлейс][22] родилась 200 лет назад. Для некоторых она является знаменательной фигурой в истории вычислительной техники; для других — изрядно переоцененной личностью. В течение долгого времени я пытался разобраться, как всё было на самом деле. И вот, к её двухсотлетию, я решил разобраться в том, что называл для себя "_тайной Ады_".

Получилось намного сложнее, чем я ожидал. Историки расходятся во мнениях. Личности в истории сложно изучать. Технологии трудно понять. Вся история переплетается с обычаями 19-го века британского высшего общества. И есть удивительное количество ошибочных сведений и неверных трактовок.

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

Это сложная история, и чтобы в ней разобраться, нужно будет о многом рассказать.
[Подробнее об Аде Лавлейс...][23]

[1]: https://habrastorage.org/files/22f/847/b20/22f847b201cd493bb4c2f6beb683d573.png
[2]: http://blog.stephenwolfram.com/2015/12/untangling-the-tale-of-ada-lovelace/
[3]: https://habrahabr.ru/users/kirillguzenko/
[4]: https://habrahabr.ru/company/wolfram/blog/303552/#1
[5]: https://habrahabr.ru/company/wolfram/blog/303552/#2
[6]: https://habrahabr.ru/company/wolfram/blog/303552/#3
[7]: https://habrahabr.ru/company/wolfram/blog/303552/#4
[8]: https://habrahabr.ru/company/wolfram/blog/303552/#5
[9]: https://habrahabr.ru/company/wolfram/blog/303552/#6
[10]: https://habrahabr.ru/company/wolfram/blog/303552/#7
[11]: https://habrahabr.ru/company/wolfram/blog/303552/#8
[12]: https://habrahabr.ru/company/wolfram/blog/303552/#9
[13]: https://habrahabr.ru/company/wolfram/blog/303552/#10
[14]: https://habrahabr.ru/company/wolfram/blog/303552/#11
[15]: https://habrahabr.ru/company/wolfram/blog/303552/#12
[16]: https://habrahabr.ru/company/wolfram/blog/303552/#13
[17]: https://habrahabr.ru/company/wolfram/blog/303552/#14
[18]: https://habrahabr.ru/company/wolfram/blog/303552/#15
[19]: https://habrahabr.ru/company/wolfram/blog/303552/#16
[20]: https://habrahabr.ru/company/wolfram/blog/303552/#17
[21]: https://habrahabr.ru/company/wolfram/blog/303552/#18
[22]: http://www.wolframalpha.com/input/?i=ada+lovelace
[23]: https://habrahabr.ru/post/303552/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] VIM: зачем, если есть IDE, и как?
habra.16
habrabot(difrex,1) — All
2016-06-17 21:00:03


Сегодня вышел текст о том, как человек [перешёл с Sublime на VIM][1]. В комментариях, как обычно это бывает, появились сообщения в духе "Зачем мне тратить время на Vim, если есть IDE, где всё работает?" (люди даже [статьи][2] на эти темы пишут). Хотел внести свои пять копеек, но объём написанного плавно перевёл текст из разряда "комментарий" в разряд небольшой статьи.



В целом, всё, что ниже — это вкусовщина, конечно. Нравится вам ваша IDE (или ваш текущий инструмент), да и пожалуйста. Используйте для текущих задач то, чем вы владеете лучше всего, это аксиома эффективной работы. Но если у вас вдруг появилось немного времени на повышение вашей эффективности в целом, то попробую вас заинтересовать именно Vim'ом, сравнивая его с некой обобщенной IDE.


![][3] [Узнать зачем и как начать][4]

[1]: https://habrahabr.ru/post/303524/
[2]: https://habrahabr.ru/post/224181/
[3]: https://habrastorage.org/files/792/4b3/b8c/7924b3b8c85743878cfdc7ef0f820f6c.png
[4]: https://habrahabr.ru/post/303554/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Валидация Fuel-плагинов в рамках Mirantis Unlocked validation program. Оно вам надо?
habra.16
habrabot(difrex,1) — All
2016-06-17 22:00:04


_Авторы: Евгения Шумахер, Илья Стечкин_

Всем привет. Да, если вы любите деньги, то оно вам надо. Дальше мы расскажем, что такое “валидация плагинов” и почему это полезно для бизнеса. Если у вас нет бизнес-интересов, а программирование — способ самовыражения, то дальше можете не читать. [Читать дальше →][1]

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

[>] ComputerVision (Ruby & OpenCV)
habra.16
habrabot(difrex,1) — All
2016-06-17 22:00:04


![][1]
_Автор: Людмила Дежкина, Senior Full Stack developer_

OpenCV — известная библиотека компьютерного зрения широкого назначения с открытым исходным кодом. Я расскажу, что можно делать с помощью OpenCV, как работает библиотека, как ее использовать на Ruby. Я успела поучаствовать в двух проектах, где она применялась. В обоих случаях мы использовали в конечном варианте не Ruby, но именно Ruby очень удобен на первом этапе, когда требуется создать прототип будущей системы, чтобы просто посмотреть, как OpenCV будет выполнять требуемые задачи. Если все в порядке, после этого приложение пишется с этим же алгоритмом на другом языке. А чтобы использовать OpenCV именно на Ruby, есть соответствующий гем.

Основные части библиотеки — интерпретация изображений и алгоритмы машинного обучения. Список возможностей, предоставляемых OpenCV, весьма обширен:

* интерпретация изображений;
* калибровка камеры по эталону;
* устранение оптических искажений;
* определение сходства;
* анализ перемещения объекта;
* определение формы объекта и слежение за объектом;
* 3D-реконструкция;
* сегментация объекта;
* распознавание жестов.

Сейчас OpenCV используется во многих сферах. Вот несколько интересных примеров:

1. Google:
1. Google self-driving car — в беспилотных автомобилях Google OpenCV используется для разработки прототипа распознавания окружающей обстановки;
(сегодня построенная система основывается преимущественно на LIDAR — в связи с трудностями распознавания при плохом освещении)
2. Google Glass — в этих очках 3D-реконструкция изображения построена на OpenCV;
3. Google Mobile;
2. Робототехника и Arduino;
3. Промышленное производство — иногда какой-нибудь завод делает на OpenCV систему подсчета деталей или что-то вроде того.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/7a2/b8e/7a7/7a2b8e7a7b324f5185df5f7753e8c8d9.png
[2]: https://habrahabr.ru/post/303482/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 24: черный рынок угнанных RDP, зиродей в Flash, GMail отказывается от SSLv3 и RC4
habra.16
habrabot(difrex,1) — All
2016-06-17 22:30:03


![][1]Одна из самых резонансных [новостей][2] этой недели посвящена черному рынку удаленного доступа к серверам. Эксперты «Лаборатории» [исследовали][3] сервис, на котором любой желающий может недорого приобрести информацию для доступа к одному из 70 с лишним тысяч серверов по всему миру по протоколу RDP. Взломанные серверы достаточно равномерно распределены по земному шару, примерно треть приходится на страны, где выбор — максимальный: Бразилию, Китай, Россию, Индию и Испанию.

Ничего не подозревающим владельцам этих серверов наверное будет интересно узнать, что с ними могут сделать злоумышленники, но тут я даже затрудняюсь в выборе, с чего начать. Если коротко — сделать можно все. Дальнейший взлом инфраструктуры жертвы — без проблем. Рассылка спама, DDoS-атаки, криминальный хостинг, кража информации, таргетированные атаки с эффективным заметанием следов — тоже можно. Кража данных кредиток, денег со счетов, бухгалтерской отчетности — да, если взломанный сервер имеет доступ к такой информации. Все это — по смешным ценам: [7-8 долларов за учетку][4].

XDedic и подобные сервисы (можно предположить, что он такой не один) — это криминальный екоммерс и финтех, он объединяет преступников разного профиля, крутых и не очень, использует современные технологии, предоставляет качественный сервис. Сами украденные данные предоставляют больше 400 продавцов — тут вам и конкуренция, и борьба за увеличение количества взломов. Самый подходящий момент напомнить — вас могут взломать, даже если вам кажется, что ваши данные никому не нужны. Во-первых, нужны, и вам в любом случае не понравится, как их используют. Во-вторых, ресурсы тоже стоят денег, а когда цена вопроса — три копейки, под удар попадают все вплоть до малого бизнеса. Украдут деньги со счета, или дампы кредиток, или хотя бы контакты клиентов для рассылки спама, атакуют через вас другую компанию, а если вообще ничего не выйдет — ну поставят генератор биткоинов и сожрут электричество.

С такими эволюциями киберкриминала трудно бороться, но данное исследование позволяет примерно понять, как это делать.
Все выпуски сериала — [тут][5].
[Читать дальше →][6]

[1]: https://habrastorage.org/files/11b/4b4/9a3/11b4b49a301446f7870bb16a51775235.png
[2]: https://threatpost.com/underground-market-selling-cheap-access-to-hacked-servers/118687/
[3]: https://securelist.ru/blog/issledovaniya/28758/xdedic-the-shady-world-of-hacked-servers-for-sale/
[4]: https://securelist.com/files/2016/06/xDedic_marketplace_ENG.pdf
[5]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[6]: https://habrahabr.ru/post/303492/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Device Lab от Google: маячки с технологией Eddystone
habra.16
habrabot(difrex,1) — All
2016-06-17 23:00:03


Долгое время мобильные приложения и физический мир никак не пересекались. Но технология Bluetooth маячков позволила разработчикам "общаться" с объектами реального мира, а  пользователям получать самые релевантные данные от их текущей локации с точностью до сантиметра. Первые устройства уже отправились разработчикам, а сегодня в [Лаборатории Google][1] мы представляем разработчикам маячки Eddystone - iBKS и BKON, реализующие, в том числе, и функцию так называемого Physical Web ("физического веба"). [Подайте заявку][2], возьмите устройства для разработки, поделитесь с сообществом результатами, а с миром новым приложением, способным изменить его! [Читать далее][3]

[1]: http://bit.ly/1TRK4sv
[2]: http://bit.ly/1TRK4sv
[3]: https://habrahabr.ru/post/302978/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Python: ListDlls и Handles
habra.16
habrabot(difrex,1) — All
2016-06-18 12:30:03


_Приятно, когда твои труды кого-то способны заинтересовать, но печально, когда твой пост может оказаться для тебя последним, — если ваш покорный слуга в ближайшее время перестанет делиться своими мыслями и исследованиями, можете быть уверены: угрожавшие физической расправой привели свои слова в исполнение. Ну а пока я еще жив, то и не будем о грустном._

Если посмотреть на большинство third party утилит критически, окажется что стоящих из них единицы, однако это вовсе не мешает им обретать своих пользователей в том числе и среди системных администраторов. Сисадмины очень любят делать упор на то, дескать они ленивы, но это скорее более самоирония, нежели правда, хотя если учесть, что системное администрирование уже немыслимо без навыков программирования, все же доля правды в этом есть. Имея в своем распоряжении, скажем, всего лишь интерпретатор Python, можно вполне всего за пять-десять минут написать аналог какой-нибудь утилиты, что оказывается несомненным плюсом в случае, когда ошибки в последней не правятся годами, а помимо этого хотелось бы что-то исключить\\дополнить из\\в ее функционал[а|е]. Хотелось бы, например, подстроить вывод ListDlls и Handle (утилиты из набора Sysinternals Suite) под себя, и здесь видется два варианта решения: либо писать сценарий-обертку, перехватывающий и затем переопределяющий вывод, либо написать все самому с нуля. Последнее многие исключают по, в общем-то, банальной причине, мол, решение требуется здесь и сейчас (хотя такое тоже бывает), но, как уже было сказано выше, сисадмин без навыков программирования таковым уже не считается — нынешнии реалии.
[Читать дальше →][1]

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

[>] Emacs как редактор кода для Python и Golang
habra.16
habrabot(difrex,1) — All
2016-06-19 16:00:02


![image][1]



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



Когда полгода назад я решил перейти с Vim на Emacs сначала я решил поискать статьи по настройке последнего на хабре. К моему удивлению нашлась всего [одна][2] статья в которой рассказывали, как настроить данный редактор для работы с Python. У меня было 2 года опыта работы с vim и имелись определенные требования, которые не были затронуты в данной статье. Вообще рускоязычных статей про работу в Emacs над Python очень мало на просторах интернета. Я не буду рассказывать про тонкости настройки самого Emacs, для этого не хватит даже отдельной статьи.



Сразу хочу предупредить любителей холивара Emacs vs Vim, а также Emacs/Vim vs IDE — я не хочу разводить бесполезные споры на эти темы. После долгих поисков я нашел редактор, который устраивает меня всем и который можно настроить как душе угодно. Я просто хочу поделится своими конфигами, а также надеюсь увидеть альтернативные решения в комментариях, чтобы продолжать настраивать данный инструмент под себя.

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

[1]: https://habrastorage.org/files/180/3f3/8d1/1803f38d14b5493a8306dbc384a2dea2.png
[2]: https://habrahabr.ru/post/188376/
[3]: https://habrahabr.ru/post/303600/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Видишь somaxconn? И я не вижу. А он есть
habra.16
habrabot(difrex,1) — All
2016-06-19 16:00:02


Мне всегда нравилась FreeBSD. Нравилась лаконичностью, простым и понятным расположением и назначением файлов, элементов, структур и какой-то «тёплой», «домашней» консервативностью. Но с выходом 10-ки я замечаю, что она всё больше от меня отдаляется и я всё больше не понимаю что и зачем в ней меняется. И дело даже не в том, что не развиваются те вещи которыми была всегда сильна FreeBSD и которые нужно развивать, как морально и архитектурно устаревший сетевой стек. Дело в мелочах.

![image][1]
— Видишь суслика?
— Нет.
— И я не вижу. А он есть!

_© ДМБ (2000г. реж. Роман Качанов)_

Те кому доводилось тюнить FreeBSD (начиная с 4-ки) без труда вспомнят параметр ядра _kern.ipc.somaxconn_. С его увеличения обычно начиналось «улучшение» работы с TCP. Он же и сейчас описан в [RU-хэндбуке][2]:
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/b52/c00/d2e/b52c00d2e3867f04ec64157f060a5993.jpg
[2]: https://www.freebsd.org/doc/ru/books/handbook/configtuning-kernel-limits.html
[3]: https://habrahabr.ru/post/303598/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Первый подтвержденный случай реального использования ReactOS
habra.16
habrabot(difrex,1) — All
2016-06-19 22:00:04


![][1]

На нашем официальном сайте еще недавно висело сообщение, что операционная система ReactOS пока не готова для повседневного использования, а образы ОС, раздаваемые с сайта, предназначены только для тестирования. Тем не менее периодически всплывали «утки», что ReactOS видели установленным на кассовых терминалах такого-то супермаркета. Однако шутки шутками, а время шло, и релизы выходили.

И вот некоторое время назад к нам обратился системный администратор одной из российских библиотек и поделился опытом реального «боевого» использования ReactOS в работе. Александр поделился с нами информацией, что смог установить и настроить сервер ИРБИС64 (библиотечный каталог книг) на компьютере под управлением ReactOS. Более того, конфигурация уже длительное время работает без серьезных сбоев и выполняет свои функции.

[Несколько демонстрационных видео][2]

[1]: https://habrastorage.org/files/2b4/b77/eed/2b4b77eedbc040fdbca513d4d3aa1697.jpg
[2]: https://habrahabr.ru/post/303618/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дайджест интересных событий из мира Java, и вокруг нее #4 (06.06.2016 — 19.06.2016)
habra.16
habrabot(difrex,1) — All
2016-06-20 11:00:03


![image][1]


## В этом выпуске


— Не успеваем: дедлайны **Java 9** снова сдвигаются
— Спасаем **Java EE**: петиция **Ларри Элиссону**
— **Microsoft** покупает **LinkedIn**
— Зачем отключать **C2**-компиляцию?
— Холивар: использовать **assert** или нет?
… и многое другое
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/7c2/008/d24/7c2008d248846a646701f767340f68c3.jpg
[2]: https://habrahabr.ru/post/303604/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ищем аномалии в X-Ray Engine
habra.16
habrabot(difrex,1) — All
2016-06-20 15:00:03


X-Ray Engine — игровой движок, который используется в играх серии S.T.A.L.K.E.R. 16 сентября 2014 года его исходный код был выложен в открытый доступ, и с тех пор его развитием занимаются фанаты. Большой размер проекта, огромное количество багов в играх — всё это располагает к отличной демонстрации возможностей статического анализатора кода PVS-Studio.

![][1]
[Проходи, не задерживайся][2]

[1]: https://habrastorage.org/files/f4c/a0c/326/f4ca0c3264c4438e932d860eb33d310d.png
[2]: https://habrahabr.ru/post/303664/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Конкурс по программированию на JS: Классификатор слов (окончательные результаты)
habra.16
habrabot(difrex,1) — All
2016-06-20 16:00:02


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

По случайности, все трое призёров предпочли участвовать под псевдонимами. Мне кажется, с такими результатами им нечего стесняться. Если вы хотите представиться в комментариях, милости просим!

Итак, призовые места заняли:
1. **Antelle** — 83.67% правильных ответов. Приз **3000 USD**.
2. **SHB** — 83.11% правильных ответов. Приз **2000 USD**.
3. **chianti** — 83.00% правильных ответов. Приз **1000 USD**.
Нам нужно ещё немного времени, чтобы определиться с тем, кто получит специальные призы. По меньшей мере один из них будет присуждён автору лучшего из самообучающихся решений, о чём будет написан отдельный пост.

Полную таблицу результатов смотрите в английской версии [на GitHub][2]. [][3]

[1]: https://habrahabr.ru/company/hola/blog/282624/
[2]: https://github.com/hola/challenge_word_classifier/blob/master/blog/05-final-standings.md
[3]: https://habrahabr.ru/post/303660/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Maven vs Gradle? Это неправильная постановка вопроса
habra.16
habrabot(difrex,1) — All
2016-06-20 16:30:03


Написать, наконец, этот пост меня заставила уже давняя дискуссия вот к [этому посту][1] на тему, которая время от времени всплывает то там, то тут.

Я много раз имел возможность убедиться, что далеко не все одинаково понимают, в чем же состоит декларативность vs процедурность той или иной системы сборки. Основным достоинством инструмента сборки зачастую считается возможность писать алгоритмы сборки на удобном языке. Нужен DSL, никуда без него.
[Читать дальше →][2]

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

[>] Интервью с python-разработчиком Александром Кошкиным о языке Python и жизни в США
habra.16
habrabot(difrex,1) — All
2016-06-20 17:00:03


Серию интервью со спикерам [PyCon Russia][1] продолжает разговор с [Александром Кошкиным][2], python-разработчиком в компании Positive Technologies. Последнее время Александр живет в Бостоне и занимается разработкой различных компонентов PT SIEM. Мы поговорили с Сашей про python и его жизнь в США.

[][3]

###### _Александр — спикер многих конференций. Вот, например, его выступление [«Знай и люби свой PyObject, ты же программист»][4] на Python Meetup в Минске_


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

[1]: http://pycon.ru/2016/program/content/?utm_source=news&utm_medium=post&utm_campaign=habr20.06
[2]: https://www.linkedin.com/in/aleksandr-koshkin-688525b6
[3]: https://fotki.yandex.ru/next/users/it-people-ekb/album/169532/view/1424823
[4]: https://www.youtube.com/watch?v=pgrmGduJVrs
[5]: https://habrahabr.ru/post/303654/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Философия Channels
habra.16
habrabot(difrex,1) — All
2016-06-20 17:00:03


Прошло много времени с моего последнего поста о Channels, и вместе с этим много чего случилось — API разработано и стабилизировано, добавился функционал вроде "контроля за переполнением" (backpressure), ситуация с бекендами выглядит гораздо лучше, особенно после того, как слой взаимодействия локальных и удаленных машин стал немного взрослее.



С другой стороны, однако, появилось недопонимание и озабоченность относительно направления, в котором развивается Channels; направления, которое этот проект задает для Django и Python. При разработке Channels пришлось касаться и даже бороться с моими собственными переживаниями об это направлении, выбирать правильный набор компромиссов — иногда даже из двух одинаково правильных вариантов.



Я не стал публично обсуждать мои обоснования и видение развития для Channels настолько, насколько я бы мог; я надеюсь, этот пост немного прояснит мою точку зрения. Позвольте обозначить определенное множество проблем, которые я пытаюсь решить, объяснить, почему я выбрал тот дизайн архитектуры, который я выбрал, и рассказать о дальнейших шагах развития.

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

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

[>] Эдсгер Дейкстра: в поисках «кратчайшего пути» к осознанному программированию
habra.16
habrabot(difrex,1) — All
2016-06-20 22:00:03


![image][1]
_Изображение с сайта [abv24.com][2]_

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

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

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

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

[1]: https://habrastorage.org/getpro/habr/post_images/572/80f/304/57280f304c4fdf026414a7aff69505b7.jpg
[2]: https://habrastorage.org/getpro/habr/post_images/572/80f/304/57280f304c4fdf026414a7aff69505b7.jpg
[3]: https://habrahabr.ru/post/303712/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Грязные трюки мобильной разработки от J2ME до Android
habra.16
habrabot(difrex,1) — All
2016-06-20 23:30:03


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


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

[1]: https://habrastorage.org/files/bc3/5e1/faf/bc35e1faf5514dc9b707c32806217dd3.jpg
[2]: https://habrahabr.ru/post/303686/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что такое PCI DSS и как происходит проверка на соответствие стандарту?
habra.16
habrabot(difrex,1) — All
2016-06-21 11:30:03


![image][1]В конце 2015 года система электронных платежей [PayOnline][2] уже в восьмой раз доказала, что мерчанты и плательщики находятся под надежной защитой. А в мае 2016 года компания получила физический сертификат соответствия требованиям стандарта PCI DSS версии 3.1, подтверждающий высший мировой уровень безопасности.

На фоне этого события мы бы хотели подробнее рассказать, что такое PCI DSS, по каким критериям осуществляется проверка на соответствие стандарту и как, не имея собственного сертификата, интернет-магазин может обеспечить безопасность финансовых данных пользователей.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/ba0/827/4e9/ba08274e903842929488b2f22503b29b.jpg
[2]: http://payonline.ru/?utm_source=habrahabr&utm_medium=referral&utm_campaign=webpayments-main
[3]: https://habrahabr.ru/post/303330/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] QtQuick/QML в качестве игрового UI
habra.16
habrabot(difrex,1) — All
2016-06-21 11:30:03


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

Выходом является использование готовых универсальных UI библиотек. Текущее их поколение представлено такими «монстрами» как [Scaleform][1] и [Coherent UI][2], хотя если вам так хочется писать UI на HTML, то можно и просто взять [Awesomium][3].

К сожалению, у этой троицы, при всех её преимуществах, есть один существенный недостаток — жуткие тормоза, особенно на мобильных устройствах (несколько лет назад, я лично наблюдал, как практически пустой экран на Scaleform потреблял 50% от времени кадра на iPhone4).

На этом фоне, мне всегда было интересно, почему никто не использует в играх [Qt][4] — библиотеку, неплохо зарекомендовавшую себя в десктопных приложениях. На самом деле, это утверждение не совсем верно — в Wiki проекта Qt есть [список][5] игр, однако в нём почти нет современных профессиональных проектов.

Впрочем, причина, по которой именно привычные старые [Qt Widgets][6] не используются в играх, лежит на поверхности: они не рассчитаны на использование совместно с OpenGL или DirectX рендером. Попытки их скрестить дают довольно плохую производительность [даже на десктопе][7], а про мобилки и говорить нечего.

Однако, уже довольно давно в Qt есть гораздо более подходящая для этой задачи библиотека: [QtQuick][8]. Её контролы по умолчанию рендерятся ускоренно, а возможность задавать описание UI в текстовом формате отлично подходит для быстрой настройки и изменения внешнего вида игры.

Тем не менее, я до сих пор не слышал об использовании Qt в профессиональном геймдеве. Статей на тему тоже не нашлось, поэтому я решил разобраться сам — то ли все что-то знают, чего не знаю я (но не рассказывают!), то ли просто не видят хорошую возможность сэкономить на времени разработки.
[Читать дальше →][9]

[1]: http://www.autodesk.com/products/scaleform/overview
[2]: http://coherent-labs.com/
[3]: http://www.awesomium.com/
[4]: http://www.qt.io/developers/
[5]: https://wiki.qt.io/Qt_Based_Games
[6]: http://doc.qt.io/qt-5/qtwidgets-index.html
[7]: http://www.shamusyoung.com/twentysidedtale/?p=15904
[8]: http://doc.qt.io/qt-5/qtquick-index.html
[9]: https://habrahabr.ru/post/303722/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] ФИАС для администратора сети
habra.16
habrabot(difrex,1) — All
2016-06-21 12:00:03


Первая статья из цикла [«Конструктивная админская лень или как я конфиг автоматизировал»][1]
![image][2]


#### Размышлизмы на тему а зачем это всё надо.


Задачи которые мы решаем в процессе эксплуатации сети:
1. Содержание сети в работоспособном состоянии;
* Мониторинг установленного оборудования;
* Удалённая диагностика проблем на оборудовании;
* Настройка оборудования на замену вышедшего из строя;
2. Координирование технической поддержки в случае падения какого либо узла;
* Указать точное место отказа;
* Эффективное управление перемещением технической поддержки, для максимально быстрого восстановления;
3. Другие задачи
* Тут каждый администратор сети напишет своё, я к примеру занимаюсь разработкой архитектурных и телекоммуникационных решений в процессе проектирования новых сегментов сети, как следствие мне требуется информация о географической привязке объектов.
[Читать дальше →][3]

[1]: https://habrahabr.ru/post/303128/
[2]: https://habrastorage.org/files/4af/8fd/888/4af8fd888c3a4ced940fcad3065483da.png
[3]: https://habrahabr.ru/post/303504/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Web scraping на Node.js и защита от ботов
habra.16
habrabot(difrex,1) — All
2016-06-21 12:30:03


![][1]Это третья статья в цикле про создание и использование скриптов для веб-скрейпинга при помощи Node.js.



В [первой статье][2] разбирались базовые аспекты веб-скрейпинга, такие как получение и парсинг страниц, рекурсивный проход по ссылкам и организация очереди запросов. Во [второй статье][3] разбирались анализ сайта, работающего через Ajax, тонкая настройка очереди запросов и обработка некоторых серверных ошибок.



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



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


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


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

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

[1]: https://habrastorage.org/files/d43/f1e/7a6/d43f1e7a68d6478ea178a74728daf291.png
[2]: https://habrahabr.ru/post/301426/
[3]: https://habrahabr.ru/post/302766/
[4]: https://habrahabr.ru/post/303726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Работа мечты и бесплатный кластер на 1 миллион мета-данных
habra.16
habrabot(difrex,1) — All
2016-06-21 13:00:03


Доброго времени суток!

Мы решили дать публичный доступ к архиву **1 млн насыщенных мета-данными сообщений соцмедиа** (несколько сотен источников, включая посты и комментарии соцсетей, блогов, форумов, СМИ и т.п.).
Предлагаем попробовать свои силы в создании различных эвристик, закладываемых в классические SMA-системы (Social Media Analytics). Чем больше эвристик вы придумаете и сможете реализовать, тем выше ваш класс в [Data Scientist][1]. Возможно в вас живет настоящий профи: Data Scientist — одна из крутых профессий ближайшего будущего!

Для состоявшихся фанатов-профи — это возможность проверить и показать свои способности, а также, при обоюдном желании и радости, получить годовой контракт на _$30.000 — $50.000_.

![][2]

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

[1]: https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%83%D0%BA%D0%B0_%D0%BE_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
[2]: https://habrastorage.org/files/317/75d/998/31775d9984384348b4cc0370063f1315.png
[3]: https://habrahabr.ru/post/303702/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Приложение на API hh.ru. Рекомендуем вакансии по вашему резюме
habra.16
habrabot(difrex,1) — All
2016-06-21 13:30:06


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

[1]: https://habrastorage.org/files/9e1/f08/259/9e1f08259ad848189291c3078dd022d1.jpg
[2]: https://habrahabr.ru/company/hh/blog/303168/
[3]: https://habrahabr.ru/post/303710/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Теперь ваш HTTPS будет прослушиваться, а сертификат для MitM вы должны поставить сами
habra.16
habrabot(difrex,1) — All
2016-06-21 13:30:06


![][1]

Пока не Россия. Но уже Казахстан. Как писал [ValdikSS][2] в своем посте [Казахстан внедряет свой CA для прослушивания всего TLS-трафика][3]:
> Государственный провайдер Казахтелеком, в связи с нововведениями закона Республики Казахстан «О связи», намерен с 1 января 2016 года прослушивать весь зашифрованный TLS-трафик, подменяя сертификаты сайтов национальным сертификатом безопасности, выпущенным Комитетом связи, информатизации и информации Министерства по инвестициям и развитию Республики Казахстан.
Что нового произошло с тех пор? Beeline и Telecom.kz (основной провайдер-монополист) выкатили обновленные инструкции по установке государственного сертификата, который позволит осуществлять атаку man-in-the-middle с подменой сертификата. Ссылка на [государственный сертификат][4].
[Что это такое и чем это грозит?][5]

[1]: https://habrastorage.org/files/108/049/1f9/1080491f90c24220ac2983cf6dd289ef.png
[2]: https://habrahabr.ru/users/valdikss/
[3]: https://habrahabr.ru/post/272207/
[4]: http://telecom.kz/media/certificate/%D0%A1%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%20Gamma_RSA.cer
[5]: https://habrahabr.ru/post/303736/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Telegram бот для службы поддержки (часть 1)
habra.16
habrabot(difrex,1) — All
2016-06-21 14:00:03


![][1]

В этом цикле статей мы реализуем службу поддержки для онлайн-чатов. Система должна уведомлять команду операторов о новом сообщении, делить нагрузку на команду любого размера, делегировать сообщения в зависимости от приоритета. Звучит жутко. Но без паники, я поделюсь нашим опытом построения такой системы, которая уместилась всего в пару сотен строк кода. Да, мы будем использовать Telegram-бота. Но не потому, что это модно, а потому что супер удобно.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/0a0/ea5/4a2/0a0ea54a2ccf46e59f1ac3aff1a84b37.jpg
[2]: https://habrahabr.ru/post/303528/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 133