RSS
Pages: 1 ... 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 ... 133
[>] Cериалокачалка на python3 с поддержкой расширений
habra.16
habrabot(difrex,1) — All
2016-07-08 19:30:03


В качестве вступления стоит сказать что я пользуюсь macOS и потому некоторые части:


* Автозапуск (launchd)
* Формат конфигурационных файлов (plist)
* Программа, используемая для уведомлений (terminal-notifier)

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



Итак, к делу.



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

[Что же он из себя представляет...][1]

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

[>] Security Week 27: обход шифрования в Android, воскрешение Conficker в медицине, IoT ботнет
habra.16
habrabot(difrex,1) — All
2016-07-08 20:30:03


![][1]Помните уязвимость в Android Mediaserver? Те, кто в теме, сначала попросят уточнить — какая именно уязвимость имеется в виду. Действительно, в Mediaserver было много уязвимостей, начиная с приснопамятной Stagefright, [обнаруженной][2] в прошлом году дыре, позволяющей получить контроль над телефоном после отправки единственного подготовленного MMS-сообщения. Сегодня поговорим о другой уязвимости, [обнаруженной][3] в мае компанией Duo Labs. Тогда сообщалось, что уязвимость затрагивает только смартфоны на аппаратной платформе Qualcomm, что, впрочем, эквивалентно 60% всех Android-устройств.

В отличие от Stagefright, эту дыру сложнее эксплуатировать: нужно все же загрузить на устройство вредоносное предложение, которое может получить полный доступ к системе, пользуясь дырами одновременно в Mediaserver и модуле Qualcomm Secure Execution Environment. Последний отвечает за ключевые аспекты защиты системы и данных, в том числе за шифрование. Изначально была показана возможность получения системных привилегий, но шифрования данная уязвимость не касалась.

Теперь — касается. Те же эксперты выяснили ([новость][4], [исследование][5]), что аналогичный набор уязвимостей дает возможность подобрать ключ к зашифрованным данным методом брутфорс-атаки. Как и в iOS, в Android предусмотрена защита от перебора паролей, установлены ограничения по частоте попыток и их количеству, но как раз их и удалось обойти.
Все выпуски дайджеста доступны [по тегу][6].
[Читать дальше →][7]

[1]: https://habrastorage.org/files/e2d/b6b/ab0/e2db6bab07964bd09b86699b18f8edb2.jpg
[2]: https://threatpost.ru/globalnyj-vzlom-android-foto-i-pochta-dostupny-hakeram/10373/
[3]: https://threatpost.ru/android-qualcomm-vulnerability-impacts-60-percent-of-devices/16328/
[4]: https://threatpost.ru/encryption-bypass-vulnerability-impacts-half-of-android-devices/17049/
[5]: https://bits-please.blogspot.com/2016/06/extracting-qualcomms-keymaster-keys.html
[6]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[7]: https://habrahabr.ru/post/305290/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Что такое OT?
habra.16
habrabot(difrex,1) — All
2016-07-08 20:30:03


Неделя самописных языков разметки на Хабрахабре. Статья про [AXON][1] напомнила мне про мой проектик `o.t` — object template language. В нём я соединил интересные идеи из XML, YAML и прочих.



### Что, ещё один?



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

[что из этого получилось][2]

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

[>] Последние новости о развитии C++
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


Недавно в финском городе Оулу завершилась встреча международной рабочей группы [WG21][1] по стандартизации C++, в которой впервые [официально участвовали сотрудники Яндекса][2]. На ней утвердили **черновой** вариант C++17 со множеством новых классов, методов и полезных нововведений языка.

[![][3]][4]

Во время поездки мы обедали с [Бьярне Строуструпом][5], катались в лифте с [Гербом Саттером][6], жали руку [Беману Дейвсу][7], выходили «подышать воздухом» с [Винцентом Боте][8], обсуждали онлайн-игры с [Гором Нишановым][9], были на приёме в мэрии Оулу и общались с мэром. А ещё мы вместе со всеми с 8:30 до 17:30 работали над новым стандартом C++, зачастую собираясь в 20:00 чтобы ещё четыре часика поработать и успеть добавить пару хороших вещей.

Теперь мы готовы поделиться с вами «вкусностями» нового стандарта. Всех желающих поглядеть на многопоточные алгоритмы, новые контейнеры, необычные возможности старых контейнеров, «синтаксический сахар» нового чудесного C++, прошу под кат.
[Покажите мне чудеса!][10]

[1]: http://www.open-std.org/jtc1/sc22/wg21/
[2]: https://habrahabr.ru/company/yandex/blog/301514/
[3]: https://habrastorage.org/files/6e7/1a3/802/6e71a380253b447ebb1da8925766caaf.png
[4]: https://habrahabr.ru/company/yandex/blog/304510/
[5]: https://en.wikipedia.org/wiki/Bjarne_Stroustrup
[6]: https://en.wikipedia.org/wiki/Herb_Sutter
[7]: http://www.boost.org/users/people/beman_dawes.html
[8]: https://cppnow2015.sched.org/speaker/vicente_j_botet_escriba.1rzy8qjh
[9]: https://www.linkedin.com/in/gor-nishanov-71aa2113
[10]: https://habrahabr.ru/post/304510/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Короткая шпаргалка по блокировкам при чтении и изменении данных в зависимости от уровня изоляции транзакции в MSSQL
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


**Read Uncommitted**

* если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) не будут ждать окончания первой транзакции и вернут записанные данные незакомиченных транзакций
* если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
* шаред локи не используются. _Что аналогично установке NOLOCK хинта во все селекты в [Read Commited][1]_
* эксклюзивные локировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции

**Read Committed + read\_committed\_snapshot off**

(alter database xxx set read\_committed\_snapshot off)

* если в одной транзакции поменять данные — селект этих данных (в другой транзакции или без транзакции) будут ждать окончания первой транзакции. _Селект с NOLOCK хинтом вернёт изменённые, но не закомиченные данные._
* если в одной транзакции считать данные — апдейты этих данных в другой транзакции не будут ждать окончания первой транзакции
* шаред локировки устанавливаются в процессе работы стейтмента и снимаются по окончанию стейтмента
* эксклюзивные локировки устанавливаются в процессе выполнения стейтмента и снимаются по окончанию транзакции

[Дальше][2]

[1]: #Read Committed + read_committed_snapshot off
[2]: https://habrahabr.ru/post/305600/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дайджест последних достижений в области криптографии. Выпуск первый
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


Привет, %username%
![][1]
Пришло время для свежей пачки криптоновостей, пока они еще не перестали быть новостями. В этом выпуске:
* Новый рекорд вычисления дискретного логарифма
* VPN сервер и клиент, использующие Noise протокол
* Постквантовая криптография в Chrome уже сегодня!
* Чего вы не знаете о новом E2E шифровании в Facebook
* RLWE избавляется от R и это идет ему на пользу
* Comodo хотел поиметь Let\`s Encrypt, но сфейлил. А Let\`s Encrypt с завтрашнего дня будет поддерживать ddns
* Появились минимальные требования к реализациям алгоритмов RSA, DSA, DH, устойчивым к side-channel атакам

Предыдущий выпуск [тут][2]
[Поехали][3]

[1]: https://habrastorage.org/files/c32/6d0/247/c326d0247d0b4c618cd6fe6c3bbd07cc.jpg
[2]: https://habrahabr.ru/post/301180/
[3]: https://habrahabr.ru/post/305572/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Тернистый путь ITSM в России
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


20 марта 2015 года было очередное солнечное затмение. Офисные работники центральной и северо-западной России пытались его разглядеть: через солнечные очки, тонировку автомобиля, пивную бутылку. И только ушлые запасливые админы отодвигали шторку дискет и с наслаждением передавали из рук в руки спасительную плёнку. А ведь совсем недавно подписанные дискеты были одним из самых важных носителей информации — на них сдавали курсовые, носили отчёты и выгрузки из отдела в отдел, с них загружали программы. С дискетами в руках недавно ещё советская Россия открывала капитализм. Впереди были сети, доступный интернет, внешние жёсткие диски, флешки и невероятное количество связанных с этим проблем. Сегодня мы предадимся ностальгии, а заодно вспомним, как развивались системы управления ИТ-активами.

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

[1]: https://habrastorage.org/getpro/habr/post_images/f24/792/e22/f24792e220c0c3150202ddeb5381fda3.jpg
[2]: https://habrahabr.ru/post/305516/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Hello, TensorFlow. Библиотека машинного обучения от Google
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


![tensorflow][1]



Проект [TensorFlow][2] масштабнее, чем вам может показаться. Тот факт, что это библиотека для глубинного обучения, и его связь с Гуглом помогли проекту TensorFlow привлечь много внимания. Но если забыть про ажиотаж, некоторые его уникальные детали заслуживают более глубокого изучения:


* Основная библиотека подходит для широкого семейства техник машинного обучения, а не только для глубинного обучения.
* Линейная алгебра и другие внутренности хорошо видны снаружи.
* В дополнение к основной функциональности машинного обучения, TensorFlow также включает собственную систему логирования, собственный интерактивный визуализатор логов и даже мощную архитектуру по доставке данных.
* Модель исполнения TensorFlow отличается от scikit-learn языка Python и от большинства инструментов в R.

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



Как работает TensorFlow? Давайте попробуем разобраться, посмотреть и понять, как работает каждая часть. Мы изучим [граф][3] движения данных, который определяет вычисления, через которые предстоит пройти вашим данным, поймем, как тренировать модели [градиентным спуском][4] с помощью TensorFlow, и как [TensorBoard][5] визуализирует работу с TensorFlow. Наши примеры не помогут решать настоящие проблемы машинного обучения промышленного уровня, но они помогут понять компоненты, которые лежат в основе всего, что создано на TensorFlow, в том числе того, что вы напишите в будущем!

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

[1]: https://habrastorage.org/files/ab1/31c/495/ab131c495c314f998eb37292a6f74847.jpg
[2]: https://www.tensorflow.org/
[3]: https://en.wikipedia.org/wiki/Graph_(abstract_data_type)
[4]: https://en.wikipedia.org/wiki/Gradient_descent
[5]: https://www.tensorflow.org/versions/r0.8/how_tos/summaries_and_tensorboard/
[6]: https://habrahabr.ru/post/305578/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Лечение всех js-файлов на сервере или определение метода шифрования в выходной день
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


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

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

[>] [Из песочницы] Развёртывание Django 1.9 на IIS 7+
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


#### Предисловие



Всем привет!



Не так давно ко мне обратились с просьбой о создании сайта. Интересный крупный проект с множеством "_хочу вот это_". Среди пожеланий были два главных, определивших web framework для написания, это **интернационализация** и **панель администратора**. Как уже понятно из заголовка статьи, таким framework'ом стала **Django**.



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



И вот, можно сказать на днях, свершилось чудо — у нас появился сервер. И как следствие этого — эта статья.


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

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

[>] Rclone: rsync для облаков
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07




В предыдущих публикациях мы уже не раз рассказывали о полезных утилитах для работы с нашим облачным хранилищем. Сегодня мы поговорим ещё об одном интересном, простом в обращении и — не побоимся этого слова — уникальном инструменте. Знакомьтесь: [rclone][1]. Разработчики описывают его краткой и ёмкой фразой «rsync для облачных хранилищ».

Основная функция rclone — это синхронизация данных в хранилище и на локальной машине. Утилита несомненна окажется полезной для широкого круга пользователей облачного хранилища. Её можно использовать и для резервного копирования, и в работе со статическими сайтами…

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

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

[>] [Из песочницы] Мониторинг торрентов и автоматическая скачка
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


Совсем недавно на Хабре было 2 статьи о том, как автоматизировать процесс скачивания новых серий с торрентов. Авторы обеих статей поделились своими приложениями. Вот уже год мы тоже разрабатываем подобное приложение и мне кажется, пришло время рассказать хабрасообществу о нашем маленьком, но прекрасном проекте **[Monitorrent][1]**, который, возможно, сделает вашу жизнь настолько проще и удобнее, насколько сделал нашу.



![Main Page][2]



Веб приложение написано на Python 2 (с поддержкой Python 3). Оно позволяет добавлять новые торренты для мониторинга, автоматически скачивать новые серии и добавлять их в торрент клиент.



Мы им пользуемся на постоянной основе с конца прошлого года, а 1 мая 2016 мы выпустили первую релизную версию, которая без каких-либо сбоев крутится до сих пор на cubietruck в docker контейнере.



За подробностями того как оно работает внутри прошу под

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

[1]: https://github.com/werwolfby/monitorrent
[2]: https://cloud.githubusercontent.com/assets/705754/16709186/36bef110-4612-11e6-958a-db02bedf0dea.png
[3]: https://habrahabr.ru/post/305574/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Векторизация кода преобразования координат в пространстве на Intel® Xeon Phi™ с помощью низкоуровневых инструкций
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


![][1]

## Введение



При решении задач моделирования движения объектов в трехмерном пространстве практически всегда требуется использование операций пространственных преобразований, связанных с умножением матриц преобразований и векторов. Для задачи N тел эта операция используется многократно для задания поворота и смещения тела относительно начала координат. Матрица пространственного преобразования имеет размерность 4х4, а размерность вектора, к которому применяется преобразование, соответственно 4x1. Рассмотрим оптимизацию выполнения такой операции с большим числом матриц и векторов под архитектуру Intel® Xeon Phi™.


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

[1]: https://habrastorage.org/files/eb2/275/58a/eb227558a2c74b56977bf13da9fc27cc.png
[2]: https://habrahabr.ru/post/305558/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] TP-LINK потеряла права на домен, использующийся для настройки роутеров и усилителей
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


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

Собственно, так и произошло с известной маркой TP-link — компания потеряла контроль над доменами [tplinklogin.net][1] и [tplinkextender.net][2].

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

[1]: http://tplinklogin.net
[2]: http://tplinkextender.net
[3]: https://habrastorage.org/files/1ae/665/397/1ae66539778049f48ec1cb96ff343eab.jpg
[4]: https://habrahabr.ru/post/305550/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Сортировка предупреждений статических анализаторов по приоритету при поиске и исправлении программных ошибок
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


За 2015 год [в Национальной базе данных уязвимостей США (_National Vulnerability Database_, _NVD_) было зарегистрировано 6,488 новых программных уязвимостей][1], всего же в ней насчитывается [74,885 уязвимостей, найденных за период 1988-2016 гг][2]. Инструменты статического анализа проверяют исходный код программ на наличие дефектов, в том числе потенциальных уязвимостей защиты, и выдают диагностические сообщения (предупреждения), в которых указывается местоположение предполагаемого дефекта, его характер, и, как правило, дополнительная контекстуальная информация. Достоверность таких предупреждений затем оценивается пользователем. Трудозатраты на проверку всех предупреждений и исправление всех подтвержденных ошибок вручную зачастую значительно превосходят бюджет и сроки проекта. По этой причине пользователи нуждаются в инструментах, которые позволили бы сортировать предупреждения по степени важности, тем самым определяя порядок их проверки. Настоящая статья посвящена проводимому нами исследованию данного вопроса с использованием классификационных моделей, призванных помочь специалистам по анализу и программистам в классификации предупреждений по приоритету и определении оптимального порядка исправления соответствующих ошибок.
[Читать дальше →][3]

[1]: https://web.nvd.nist.gov/view/vuln/statistics-results?adv_search=true&cves=on&pub_date_start_month=0&pub_date_start_year=2015&pub_date_end_month=11&pub_date_end_year=2015&cvss_version=3https://web.nvd.nist.gov/view/vuln/statistics-results?adv_search=true&cves=on&pub_date_start_month=0&pub_date_start_year=2015&pub_date_end_month=11&pub_date_end_year=2015&cvss_version=3
[2]: https://web.nvd.nist.gov/view/vuln/statistics-results?adv_search=true&cves=on&cvss_version=3
[3]: https://habrahabr.ru/post/305532/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Аврал: вы работаете изо всех сил, чтобы успеть к дедлайну. Что теперь?
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


_Автор статьи, Мэтью Бёрнс, напряжённо работал над такими игровыми франшизами, как Halo, Call of Duty и Destiny. Он писатель и разработчик игр из Сиэтла._

![][1]

Аврал, или работа с полным напряжением сил в попытках успеть к дедлайну (на сленге англоязычных программистов – кранч [crunch]) – прискорбное явление в нашей индустрии. И пока кто-нибудь не придумает решения этой проблемы, что нам с ним делать?

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

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

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

[1]: https://habrastorage.org/getpro/habr/post_images/8a5/b09/998/8a5b0999823a614831cfa2597aef78cf.jpg
[2]: https://habrahabr.ru/post/305446/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] FIDO U2F — Универсальная Двухфакторная Аутентификация. Введение
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


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



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



Что из себя представляют 2FA решения сегодня?


* SMS — одноразовые пароли отправленные с помощью SMS.
* OTP(TOTP/HOTP) — одноразовые пароли, сгенерированные на основе мастер ключей. Примеры: Google Authenticator, Yubikey, банковские OTP токены.
* Криптографические Токены — аппаратные средства для многофакторной аутентификации пользователей. Примеры: RSA SecureID, Рутокен.

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


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

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

[>] [Перевод] Код Rust включен в Firefox 48
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


![][1]**Компонент, написанный на Rust, впервые заменил компонент на C++ в браузере Firefox, и это только начало!**


### Mozilla любит Rust


Трудно поверить, что прошло почти семь лет с тех пор как Mozilla Research впервые начала спонсировать разработку [Rust][2] — системного языка программирования, нацеленного на безопасную работу с памятью, скорость и параллельное выполнение кода. В то время это был не более чем амбициозный исследовательский эксперимент, вокруг которого образовалось небольшое, но преданное сообщество. Удивительно, что несмотря на долгую историю изобретений и открытий, Rust сохранил свой ключевые принципы. Изначально разработчики хотели создать безопасную альтернативу C++, повысить эффективность системного программирования, защитить критическое программное обеспечение от эксплоитов памяти, упростить работу с параллельными алгоритмами — вот почему Mozilla поддержала проект Rust и, в конечном счёте, начала использовать Rust в стабильной версии браузера.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/a8e/b48/20b/a8eb4820bf854728b1fe9d4fa78b60f7.png
[2]: https://www.rust-lang.org/en-US/
[3]: https://habrahabr.ru/post/305536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Запуск cron внутри Docker-контейнера
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


[![][1]][2]
Так уж вышло, что запуск cron в Docker-контейнере — дело весьма специфическое, если не сказать сложное. В сети полно решений и идей на эту тему. Вот один из самых популярных (и простых) способов запуска:
cron -f

Но такое решение (и большинство других тоже) обладает рядом недостатков, которые сходу обойти достаточно сложно:
* неудобство просмотра логов (команда **docker logs** не работает)
* cron использует свой собственный Environment (переменные окружения, переданные при запуске контейнера, не видимы для cron заданий)
* невозможно нормально (gracefully) остановить контейнер командой **docker stop** (в конце концов в контейнер прилетает SIGKILL)
* контейнер останавливается с ненулевым кодом ошибки[Читать дальше →][3]

[1]: https://habrastorage.org/files/e53/beb/02f/e53beb02fc0c404ba2d160ce79e2b538.jpg
[2]: https://habrahabr.ru/company/redmadrobot/blog/305364/
[3]: https://habrahabr.ru/post/305364/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Рендер в текстуру с использованием Three.js
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


Всё, что вы рендерите в Three.js, по умолчанию отображается на экране. Зачем вообще нужен рендеринг, если нельзя увидеть результат? Оказывается, затем, чтобы собрать данные, прежде чем они выведутся на экран (и, следовательно, будут утеряны). Это намного упрощает применение эффектов постобработки, таких как коррекция/искажение цветов и размытие изображения, а также очень полезно для шейдерных эффектов. Такой прием называется рендеринг в текстуру или рендеринг в буфер кадра. Конечный результат сохраняется в текстуре, которую затем можно отобразить на экране. В этой статье я покажу, как это делается, на конкретном примере рендеринга анимированного куба на поверхность другого анимированного куба.

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

[1]: https://habrastorage.org/files/c68/9a2/72d/c689a272d4bf48969ccdf26ec376717c.jpg
[2]: https://habrahabr.ru/post/305408/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Гильоши
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


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

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

[>] Анонс Rust 1.10
habra.16
habrabot(difrex,1) — All
2016-07-14 14:00:07


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



Как обычно, вы можете [установить Rust 1.10][1] с соответствующей страницы официального сайта, а также ознакомиться с [подробным списком изменений][2] в этой версии на GitHub. В этот релиз вошло 1276 патчей.



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



В Rust 1.10 стала доступна одна из наиболее желаемых сообществом возможностей: прерывание работы (abort) при панике вместо размотки стека. Это поведение управляется [флагом `-C panic=abort`][3] или [настройкой в `Cargo.toml`][4]. Зачем это нужно? Как вы помните, паника означает [непридвиденную проблему][5], и для многих приложений abort — разумный выбор. При использовании `panic=abort` генерируется меньше кода, что означает меньшие по объёму исполняемые файлы и чуть меньшее время компиляции. Очень приблизительная оценка говорит об уменьшении на 10% и размера файла, и времени компиляции. Эта возможность была определена в [RFC 1513][6].

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

[1]: https://www.rust-lang.org/install.html
[2]: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1100-2016-07-07
[3]: https://github.com/rust-lang/rust/pull/32900
[4]: https://github.com/rust-lang/cargo/pull/2687
[5]: http://blog.rust-lang.org/2016/05/26/Rust-1.9.html
[6]: https://github.com/rust-lang/rfcs/blob/master/text/1513-less-unwinding.md
[7]: https://habrahabr.ru/post/305486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пастильда — открытый аппаратный менеджер паролей
habra.16
habrabot(difrex,1) — All
2016-07-14 15:30:07


[![Pastilda — open source аппаратный USB менеджер паролей][1]][2]

Немало заметок и обсуждений посвящены непростому вопросу безопасного хранения паролей, тема интересная и, похоже, актуальной будет ещё долго. Существуют различные программные решения для хранения паролей, о них довольно часто пишут на Хабре (например [тут][3] и [вот тут][4]), однако многим из них, как нам кажется, в той или иной степени свойственны следующие недостатки:
* закрытый код снижает доверие и вероятность оперативного устранения уязвимостей
* для автозаполнения нужно ставить дополнительный софт
* после ввода мастер-пароля вся база открыта и доступна, в том числе для вредоносного ПО, что особенно актуально на недоверенных устройствах
* использование мобильных приложений для хранения паролей все равно подразумевает ручной ввод с клавиатуры, например когда требуется залогиниться на стационарном ПК
* автозаполнение невозможно в некоторых случаях (в bios, консоли)
Мы пришли к выводу, что наиболее удобным решением будет простой и недорогой девайс, позволяющий аппаратно хранить и вводить логины/пароли на любые устройства, без установки какого-либо ПО.
[Читать дальше →][5]

[1]: https://habrastorage.org/files/278/ea9/c7e/278ea9c7e69d41b78e3642add4ec507e.JPG
[2]: https://habrahabr.ru/post/305594/
[3]: https://habrahabr.ru/post/225053/
[4]: https://habrahabr.ru/post/125248/
[5]: https://habrahabr.ru/post/305594/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Выпущен PhpStorm 2016.2
habra.16
habrabot(difrex,1) — All
2016-07-14 22:00:06


Всем привет!

Буквально вчера вышла новая версия [PhpStorm][1], вторая в этом году. Я надеюсь, что ни наша IDE, ни компания JetBrains в отдельном представлении на Хабре не нуждаются, поэтому сразу перейду к основным изменениям. Кстати, чтобы не терять времени даром, можете поставить пробную 30-дневную версию на [загрузку][2] и читать дальше. Поехали!

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

[1]: https://www.jetbrains.com/phpstorm/whatsnew/
[2]: https://www.jetbrains.com/phpstorm/download/
[3]: https://habrastorage.org/getpro/habr/post_images/45a/012/83a/45a01283ab1d1898c682d60c01ba2566.jpg
[4]: https://habrahabr.ru/company/JetBrains/blog/305688/
[5]: https://habrahabr.ru/post/305688/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Вышел GIMP 2.9.4
habra.16
habrabot(difrex,1) — All
2016-07-15 09:30:07


### Отчёт о новых функциях свободного графического редактора


![][1]Мы только что выпустили вторую dev-версию GIMP в серии 2.9.x, ставшую результатом полугода работы. GIMP 2.9.4 представляет собой мощное обновление:

* обновленный интерфейс;
* серьёзные улучшения в управлении цветом;
* готовый к использованию инструмент _MyPaint Brush_;
* симметричное рисование;
* сплит-превью для фильтров на GEGL.
Вдобавок, исправлены десятки багов и сделаны многочисленные мелкие улучшения в графическом редакторе.

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

[1]: https://habrastorage.org/files/dbb/058/ba1/dbb058ba132e4fca879216fe7a2c2640.png
[2]: http://wiki.gimp.org/wiki/Roadmap#GIMP_2.10
[3]: https://habrahabr.ru/post/305710/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Введение в Iron: плавим руду на Rust
habra.16
habrabot(difrex,1) — All
2016-07-15 11:30:07


![][1]
> Iron — это высокоуровневый веб-фреймворк, написанный на языке программирования Rust и построенный на базе другой небезызвестной библиотеки hyper. Iron разработан таким образом, чтобы пользоваться всеми преимуществами, которые нам предоставляет Rust.
[Хочу учиться плавить руду...][2]

[1]: https://habrastorage.org/files/8e7/339/992/8e7339992cd744908885c294893f390b.png
[2]: https://habrahabr.ru/post/305714/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Добавляем произвольный телефон в личном кабинете оператора мобильной связи Киевстар (Украина)
habra.16
habrabot(difrex,1) — All
2016-07-15 12:00:13


Я являюсь клиентом украинского оператора сотовой связи Киевстар и пользователем их веб-сервиса [my.kyivstar.ua][1]. Как и многие другие операторы, Киевстар предлагает веб-версию личного кабинета, в котором можно просмотреть баланс счёта, детализацию звонков, изменить тариф, заказать или отключить услугу и пр.
Так же у них недавно была запущена новая версия личного кабинета [new.kyivstar.ua][2]. В ней появилась интересная функция — добавление другого телефона Киевстар через смс верификацию. Я взялся её проверить на наличие уязвимостей, так как она фактически давала такой же доступ к добавляемому телефону, как и к своему, что меня не особо радовало, как клиента.
Новый сайт имеет следующий интерфейс добавления телефона:
![][3]
[Читать дальше →][4]

[1]: https://my.kyivstar.ua
[2]: https://new.kyivstar.ua
[3]: https://habrastorage.org/files/b32/aa7/012/b32aa701271b4198800fe270a7a33b8e.png
[4]: https://habrahabr.ru/post/305706/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проверяем исходный код FlashDevelop с помощью PVS-Studio
habra.16
habrabot(difrex,1) — All
2016-07-15 13:00:04


![][1]Для проверки качества диагностик нашего статического анализатора и его рекламы мы регулярно анализируем проекты с открытым исходным кодом. Разработчики проекта FlashDevelop сами попросили нас проверить их продукт, что мы с радостью и сделали.


## Введение


[FlashDevelop][2] — популярная среда разработки Flash-приложений, поддерживающая Action Script версии 2 и 3, Haxe, JavaScript, HTML, PHP, C#, и обладающая функционалом, присущим современным редакторам кода, например, автодополнение кода, встроенная поддержка svn, git, mercurial, шаблоны, сторонние плагины, темы подсветки синтаксиса и многое другое. Примечательно, что FlashDevelop использовали Fireaxis Games при разработке [XCOM: Enemy Unknown][3].
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/981/4ac/b99/9814acb999352a1eee95c0889611fc2c.png
[2]: http://www.flashdevelop.org/
[3]: https://xcom.com/ru/xcom-enemy-unknown
[4]: https://habrahabr.ru/post/305718/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Все под контролем: защищаем корпоративные разговоры
habra.16
habrabot(difrex,1) — All
2016-07-15 13:00:04


Кейсы по ставшей уже привычной конвергенции GSM/SIP [неоднократно описаны][1] на просторах сети и на Хабре в частности. В этой статье мы хотим рассказать немного о другом.

Нам в [Tottoli GSM][2] довелось участвовать в проекте, суть которого заключалась в развёртывании локальной сети GSM на территории организации с выходом в телефонную сеть общего пользования и объединением с существующей офисной АТС.

![image][3]


# Задача проекта:



## Максимальное снижение рисков утечки информации в GSM сети.


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

[1]: https://habrahabr.ru/company/tottoli_gsm/blog/266627/
[2]: http://tottoli-gsm.com/ru/
[3]: https://habrastorage.org/files/c92/d08/9eb/c92d089ebe504b459df4bcd28c0f30df.jpg
[4]: https://habrahabr.ru/post/305586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Свободный формат Lepton сжимает файлы JPEG на 22% без потерь
habra.16
habrabot(difrex,1) — All
2016-07-15 15:00:05


### Арифметическое кодирование по образцу Pied Piper


![][1]
_Предсказание коэффициентов дискретного косинусного преобразования в соседних 64-битных блоках JPEG_

Компания Dropbox [опубликовала исходный код][2] нового формата потокового сжатия изображений Lepton ([репозиторий на Github][3]). Исходный код Lepton опубликован под свободной лицензией Apache. Всех желающих приглашают оптимизировать новый свободный алгоритм.

Lepton демонстрирует средний коэффициент компрессии 22% на файлах JPEG, предсказывая коэффициенты ДКП в JPEG-блоках и учитывая эти коэффициенты в качестве контекста для арифметического кодера, то есть кодируя дельту коэффициентов в соседних блоках.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/b26/893/117/b2689311726a45cfa24c842d3a9c2ef7.png
[2]: https://blogs.dropbox.com/tech/2016/07/lepton-image-compression-saving-22-losslessly-from-images-at-15mbs/
[3]: https://github.com/dropbox/lepton
[4]: https://habrahabr.ru/post/305740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Почему взламывают даже защищённые CMS на безопасном хостинге
habra.16
habrabot(difrex,1) — All
2016-07-15 16:00:05


![][1]

Очевидно, что если у сайта есть уязвимости, то его можно взломать с помощью веб-атак. Но даже если сайт защищен техническими средствами, работает на надежной CMS, его все равно могут скомпрометировать. Каким образом это происходит и как защищать сайт от различных вариантов взлома не через веб-уязвимости — oб этом рассказал на [партнёрской конференции][2] «1С-Битрикс» Григорий Земсков, руководитель компании «[Ревизиум][3]».
[Читать дальше →][4]

[1]: https://habrastorage.org/files/daa/a81/a63/daaa81a63e90403aa9c8846bd891a00b.jpg
[2]: http://conf.1c-bitrix.ru/winter2016/agenda/
[3]: https://revisium.com/
[4]: https://habrahabr.ru/post/305704/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Открытие API для работы с услугами от российского лоукост-хостера (часть 1)
habra.16
habrabot(difrex,1) — All
2016-07-15 18:00:05


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

[![][1]][2]

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

[1]: https://habrastorage.org/files/f46/c10/a09/f46c10a096f84562ad985ed82f55ed92.png
[2]: https://www.ihor.ru
[3]: https://habrahabr.ru/post/305716/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Библиотека f для функционального программирования в Питоне
habra.16
habrabot(difrex,1) — All
2016-07-15 23:30:10


Привет, коллеги!



Я расскажу о [библиотеке для Питона][1] с лаконичным названием `f`. Это небольшой пакет с функциями и классами для решения задач в функциональном стиле.



_ — Что, еще одна функциональная либа для Питона? Автор, ты в курсе, что есть [fn.py][2] и вообще этих функциональных поделок миллион?_



— Да, в курсе.



### Причины появления библиотеки

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

[1]: https://github.com/igrishaev/f
[2]: https://github.com/kachayev/fn.py
[3]: https://habrahabr.ru/post/305750/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Анализ обнаружения обфусцированных вирусов мобильными антивирусными приложениями на платформе Android
habra.16
habrabot(difrex,1) — All
2016-07-16 09:30:13


![image][1]
Команда УЦСБ провела независимое исследование для того, чтобы протестировать работу популярных антивирусных приложений для Android. С результатами этого исследования я делилась на конференции phdays VI, но хотелось бы более подробно остановиться на применении обфускаторов для обхода механизмов обнаружения вирусов.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/54d/0d1/4e7/54d0d14e79f95a7148f397f7da8626a3.png
[2]: https://habrahabr.ru/post/305730/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 28: Приватность покемонов, критическая инфраструктура онлайн, постквантовая криптография в Chrome
habra.16
habrabot(difrex,1) — All
2016-07-16 20:00:04


![][1]Как, и тут покемоны?! А что делать: одним из основных критериев выбора значимых новостей по безопасности для меня по-прежнему является их популярность на Threatpost. Способ не идеальный, но достаточно объективный. Если в топе находится какая-то _странная фигня_, есть повод разобраться, как так получилось, как например это вышло с новостью про вредоносный код в метаданных PNG в [топе 2014 года][2]. Как правило объяснение таким казусам находится не в технических особенностях угрозы, а в том, как безопасность воспринимают люди. А это тоже интересно.

[Новость][3] про вредоносные приложения, маскирующиеся под Pokémon Go — она вообще на 100% про восприятие, точнее про то, что все вокруг сошли с ума. По данным исследователей из Proofpoint, киберпреступники воспользовались недоступностью игры в официальных магазинах приложений в ряде регионов, рассчитывая получить свои пять копеек незаконной прибыли от всеобщей популярности.

Впрочем, и в аутентичном приложении обнаружились проблемы. Исследователь Адам Рив [обнаружил][4], что при регистрации учетной записи в игре, пользователям требуется предоставить полный доступ к своему аккаунту Google. То есть разработчик игры, компания Niantic Labs, получает возможность читать всю почтовую переписку, отправлять письма от имени игрока, может скачивать все документы с Google Drive, смотреть историю поиска и навигации, и многое другое. Примечательно, что на момент данного открытия альтернативный способ регистрации, не через Google, просто не работал.
Все выпуски дайджеста доступны [по тегу][5].
[Читать дальше →][6]

[1]: https://habrastorage.org/files/566/e9c/48c/566e9c48c1ee47678a9ab0306c385ef4.jpg
[2]: https://habrahabr.ru/company/kaspersky/blog/246745/
[3]: https://threatpost.ru/malicious-pokemon-go-app-installs-backdoor-on-android-devices/17151/
[4]: http://adamreeve.tumblr.com/post/147120922009/pokemon-go-is-a-huge-security-risk
[5]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[6]: https://habrahabr.ru/post/305754/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Пасхалка в Mr Robot S02E01
habra.16
habrabot(difrex,1) — All
2016-07-16 21:00:04


![][1]

В конце первой серии второго сезона _Mr Robot_ есть сцена, где Дарлин генерирует троян-вымогатель с помощью модифицированного фреймворка SET (Social Engineer Toolkit). Мои пальцы просто зудели, чтобы попробовать IP-адрес 192.251.68.254, где вроде как располагается управляющий сервер трояна. Неудивительно, что WHOIS показал на владельца NBC-UNIVERSAL. Посмотрим, насколько глубока кроличья нора.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/a8c/89b/7bf/a8c89b7bf19d4576b25d5f6d5ebcc2ea.jpg
[2]: https://habrahabr.ru/post/305782/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Принцип Доверия (Trust) в HTTPS
habra.16
habrabot(difrex,1) — All
2016-07-17 04:00:05


Сейчас уже, наверное, больше половины серверов перебрались с http на https протокол. Зачем? Ну, это мол круто, секъюрно.



В чем же заключается эта секъюрность? На эту тему уже написана куча статей, в том числе и на Хабре. Но я бы хотел добавить еще одну.



# Почему решил написать



Я, вообще, по специальности Android разработчик, и не особо шарю в криптографии и протоколах защиты информации. Поэтому когда мне пришлось столкнуться с этим непосредственно, я был немного в шоке от размера пропасти в моих теоретических знаниях.



Я начал рыться в разных источниках, и оказалось, что в этой теме не так просто разобраться, и тут недостаточно просто прочитать пару статей на Хабре или Вики, при чем я нигде не встретил абсолютно исчерпывающего и понятного источника, чтобы сослаться и сказать — "Вот это Библия". Поэтому у меня это "немного разобраться" заняло кучу времени. Так вот, разобравшись, я решил поделиться этим, и написать статью для таких же новичков, как и я, или просто для людей, которым интересно зачем в строке URL иногда стоит https, а не http.

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

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

[>] Честный MVC на React + Redux
habra.16
habrabot(difrex,1) — All
2016-07-18 11:00:06


[![MVC][1]][2]



Эта статья о том, как построить архитектуру web-приложения в соответствии с принципами MVC на основе [React][3] и [Redux][4]. Прежде всего, она будет интересна тем разработчикам, кто уже знаком с этими технологиями, или тем, кому предстоит использовать их в новом проекте.


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

[1]: https://habrastorage.org/files/a35/aca/b68/a35acab686f14b12ab743ce781c03717.png
[2]: https://habrahabr.ru/company/devexpress/blog/305812/
[3]: https://github.com/facebook/react
[4]: https://github.com/reactjs/redux
[5]: https://habrahabr.ru/post/305812/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Транспорт-бот Jabber конференций для Telegram
habra.16
habrabot(difrex,1) — All
2016-07-18 18:00:05


![][1]

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

В один прекрасный день, после значительного перерыва, судьба вновь столкнула меня с jabber-конференциями. Правда, среди знакомых jabber уже никто не использует, 2007 год канул в лету, а основным средством общения стал Telegram. Поддержка XMPP на мобильных устройствах оставляла желать лучшего — клиенты на Android хороши каждый в чём-то одном, с iOS и WP всё мягко скажем, не очень. И особенности протокола тоже сказываются на автономности. Поэтому возникла мысль: а не сделать ли бота, которой будет транслировать сообщения из конференций в чат Telegram?

В качестве инструментов использовались:
* Python 3.5
* [aiohttp][2] для API Telegram
* [slixmpp][3] для xmpp
* [gunicorn][4] как wsgi сервер
* [nginx][5] как фронтенд и прокси для gunicorn
* [VS Code][6] в качестве IDE
[Читать дальше →][7]

[1]: https://habrastorage.org/files/21d/7c8/985/21d7c898537a4c15a58634311ab31a7a.png
[2]: http://aiohttp.readthedocs.io/en/stable/
[3]: https://slixmpp.readthedocs.io/
[4]: http://gunicorn.org/
[5]: https://nginx.org/
[6]: https://code.visualstudio.com/
[7]: https://habrahabr.ru/post/305858/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Синтезатор речи «для роботов» с нуля
habra.16
habrabot(difrex,1) — All
2016-07-18 20:30:05


![image][1]

Давным-давно посетила меня идея создать синтезатор речи с «голосом робота», как, например, в песне Die Roboter группы Kraftwerk. Поиски информации по «голосу робота» привели к историческому факту, что подобное звучание синтетической речи характерно для вокодеров, которые используются для сжатия речи (2400 — 9600 бит/c). Голос человека, синтезированный вокодером, отдает металлическим звучанием и становится похожим на тот самый «голос робота». Музыкантам понравился данный эффект искажения речи, и они стали активно его использовать в своем творчестве.
[Подробнее про реализацию синтезатора речи.][2]

[1]: http://imageshack.com/a/img921/1627/ka1M5p.png
[2]: https://habrahabr.ru/post/305868/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] JIT-компилятор оптимизирует не круто, а очень круто
habra.16
habrabot(difrex,1) — All
2016-07-19 00:00:09


Недавно Лукас Эдер [заинтересовался в своём блоге][1], способен ли JIT-компилятор Java оптимизировать такой код, чтобы убрать ненужный обход списка из одного элемента:


// ... а тут мы "знаем", что список содержит только одно значение
for (Object object : Collections.singletonList("abc")) {
doSomethingWith(object);
}

Вот мой ответ: JIT может даже больше. Мы будем говорить про HotSpot JVM 64 bit восьмой версии. Давайте рассмотрим вот такой простой метод, который считает суммарную длину строк из переданного списка:


static int testIterator(List list) {
int sum = 0;
for (String s : list) {
sum += s.length();
}
return sum;
} [Читать дальше →][2]

[1]: https://blog.jooq.org/2016/07/14/how-adding-a-unique-constraint-on-a-onetoone-relationship-helps-performance/
[2]: https://habrahabr.ru/post/305894/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Решение задачи «Оценка производительности» mlbootcamp.ru
habra.16
habrabot(difrex,1) — All
2016-07-19 01:30:06


Осталось менее трех дней до окончания конкурса [«Оценка производительности»][1]. Возможно, данная статья кому-то поможет улучшить свое решение. Суть задачи — предсказать время умножения двух матриц на разных вычислительных системах. В качестве оценки качества предсказания берется наименьшая средняя относительная ошибка [MAPE][2].

На текущий момент первое место — 4.68%. Ниже хочу описать свой путь к 6.69% (а это уже 70+ место).
[Читать дальше →][3]

[1]: http://mlbootcamp.ru/championship/7/
[2]: https://en.wikipedia.org/wiki/Mean_absolute_percentage_error
[3]: https://habrahabr.ru/post/305872/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дайджест интересных событий из мира Java, и вокруг нее #6 (04.07.2016 — 17.07.2016)
habra.16
habrabot(difrex,1) — All
2016-07-19 09:00:05


![image][1]


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


— JUnit 5 к нам приходит
— Сборка окончена: CMS будет удален из Java
— Java EE: Oracle прервал молчание
— В дебри JIT вместе с Azul
… и многое другое
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/467/db6/371/467db63713296cfa573c4719a308de95.jpg
[2]: https://habrahabr.ru/post/305890/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Доказываем корректность поиска диаметра дерева
habra.16
habrabot(difrex,1) — All
2016-07-19 13:00:43


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

Диаметр дерева — это максимальное расстояние между двумя вершинами в дереве. Алгоритм поиска состоит в двух запусках BFS. Первый идет от произвольной вершины дерева, во время обхода насчитываются расстояния от текущей вершины до всех других. Затем из них выбирается самая удаленная. Из нее делается второй запуск BFS. Насчитываются новые расстояния. Максимальное среди них и будет диаметром.

Почему этот простой с виду алгоритм работает корректно?
[Читать дальше →][1]

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

[>] Запускаем Angluar2 c Visual Studio 2015
habra.16
habrabot(difrex,1) — All
2016-07-19 13:00:43


![здесь лежит поле из граблей][1]

Не так давно меня заинтересовала проблема миграции приложений, написанных с первым Angular.js на второй. Кстати, эта статья должна была быть именно об этом. Но вмешался случай. До этого я поднимал Angular2 только на Node.js. А тут, поскольку я в основном работаю из-под Visual Studio, я решил запустить его из-под нее. Когда я пришел в себе после всех ударов граблей, по которым мне пришлось пройти, я решил выделить развертывание Angular2 под Visual Studio 2015 в отдельную статью. И что-то мне подсказывает, что лишней она не будет.
[Ну-с, давайте скальпель!][2]

[1]: https://habrastorage.org/files/176/b18/5c8/176b185c82f940469e0b2ae33c18c24b.jpg
[2]: https://habrahabr.ru/post/305818/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Стандартизация записей
habra.16
habrabot(difrex,1) — All
2016-07-19 13:00:43


![][1]


> Я волком бы выгрыз бюрократизм!
> Владимир Маяковский

Рассмотрим в этой статье проблему стандартизации записей. Стандартизация, прежде всего, нужна при импорте миллионов записей, накопившихся за десятилетия. Данные, имеющие разную кодировку страниц из разных автоматизированных систем, собираются в единую базу информационной системы. В таком случае, обращение к функциям чтения строк по ascii, типа QRchar себя не оправдывает, поскольку формат Юникода от записи к записи отличается. К тому же кириллица в словах часто бывает перемешана с цифрами и латиницей (например, когда вместо 'ч' пишется '4'). При этом прямая циклическая замена цифр и латиницы на кириллицу в строке невозможна, так как цифры с латиницей встречаются в и обозначениях.

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

[1]: https://habrastorage.org/files/112/c1c/ee2/112c1cee2456438bae7f735f48542970.jpg
[2]: https://habrahabr.ru/post/304576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Путь длиною в React
habra.16
habrabot(difrex,1) — All
2016-07-19 14:00:04


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

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

[>] Создание собственного приложения для обработки графов в Giraph
habra.16
habrabot(difrex,1) — All
2016-07-19 14:00:04


![][1]
[Be my friend][2] by oosDesign

Перед крупными интернет-компаниями часто встают такие сложные задачи, как обработка больших данных и анализ графов социальных сетей. Помогают в их решении фреймворки, но сперва необходимо проанализировать возможные варианты и выбрать подходящий. В лаборатории при [Техносфере Mail.Ru][3] мы изучаем эти вопросы на реальных примерах из проектов Mail.Ru Group (myTarget, Поиск Mail.Ru, Антиспам). Задачи могут быть как сугубо практические, так и с исследовательской составляющей. По мотивам одной из таких задач и появилась эта статья.

Во время сборки и запуска своего первого проекта на Giraph сотрудники лаборатории анализа данных Техносферы Mail.Ru столкнулись с рядом проблем, в связи с чем родилась идея написать краткий туториал, как же собрать и запустить свой первый Giraph-проект.

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

[1]: https://habrastorage.org/files/ad2/9bd/86b/ad29bd86b882487c93d816dc9cf66793.jpg
[2]: http://oosdesign.deviantart.com/art/Be-my-friend-325695363
[3]: https://sphere.mail.ru/pages/index/
[4]: https://habrahabr.ru/post/305924/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] «Ближе к народу»: Нужно ли руководителю разбираться в программировании
habra.16
habrabot(difrex,1) — All
2016-07-19 15:30:06


[][1]

/ фото [Sean Hagen][2] [CC][3]

_Мы в **[1cloud][4]** постоянно работаем над оптимизацией взаимодействия наших специалистов и стараемся перенимать опыт коллег. Это дает свои плоды и в виде постов на Хабре.

На прошлой неделе мы подготовили сразу два холиварных материала по теме: дали **[6 «вредных» советов разработчикам ][5]** и пару ценных **[рекомендаций на тему общения][6]** их коллегам по цеху.

Сегодня мы решили поднять вопрос о необходимости наличия (как минимум) базовых знаний и навыков программирования у тех, кто руководит современной компанией (так или иначе использующей ИТ-решения)._ [Читать дальше →][7]

[1]: http://habrahabr.ru/company/1cloud/blog/305908/
[2]: https://www.flickr.com/photos/rebelcan/5620714879/in/photolist-9yFCHe-7tZznH-bwAkPw-a21xsV-iVFdKS-gviyEK-df6AZg-7nmBT7-cWJF5L-qUhghQ-potMq6-7JSsK7-4YBYem-oJ7CvD-azBq9t-ap7jH2-agkne2-exUmqZ-bd8cpa-dvUaHo-7XF2SN-tkozj6-tkoTRB-eRxNHL-x45uYi-tkrThR-tkrCMt-tk7c8G-tkokkV-t3Mh9d-t3VzNg-ti3yNu-9zzaEG-8QGHg1-96yt1f-8HUzk3-ajGzr8-7GfPPJ-5WScru-azeG54-7YeNVz-4Gihem-atGDcX-aksSJe-4ct9DP-bR8zzc-mBzRPP-aCkHmY-851Vgq-a4PpJs
[3]: https://creativecommons.org/licenses/by-sa/2.0/
[4]: https://new.1cloud.ru
[5]: https://habrahabr.ru/company/1cloud/blog/305352/
[6]: https://habrahabr.ru/company/1cloud/blog/304694/
[7]: https://habrahabr.ru/post/305908/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Использование механизма SRR в приложениях разработанных на Qt для QNX
habra.16
habrabot(difrex,1) — All
2016-07-19 16:00:05


![][1] Фреймворк Qt один из самых популярных и применяемых при разработке кроссплатформенных настольных и мобильных приложений. Эта популярность не могла рано или поздно не привести к использованию Qt в системах специального и ответственного назначения. Достаточно давно существует возможность разработки на Qt для [QNX Neutrino][2]. Библиотека Qt поддерживает платформу QNX, а среда разработки Qt Creator обеспечивает взаимодействие с системами на QNX. Однако QNX, как система в том числе и для встраиваемых решений, имеет в своём составе технологии, которые не требуются, а потому и отсутствуют в системах общего назначения. Ключевая для ОСРВ QNX функциональность, на которой построена сама система и на которую нередко опираются пользовательские задачи это [передача сообщений][3]. Об особенностях применения механизма SRR (Send/Receive/Replay), как ещё называют передачу сообщений в QNX, и о разработке двух примеров Qt-приложений — клиента и сервера — я и хотел бы рассказать сегодня.

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

[1]: https://habrastorage.org/files/682/504/ce7/682504ce727b402685cddd5020a78a07.jpg
[2]: https://habrahabr.ru/post/124656/
[3]: https://habrahabr.ru/post/127173/
[4]: https://habrahabr.ru/post/305680/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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