RSS
Pages: 1 ... 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 ... 210
[>] [Перевод] Внедрение зависимостей в CDI. Часть 2
habra.16
habrabot(difrex,1) — All
2016-06-07 13:00:03


Это второй пост о внедрении зависимостей в CDI ([Часть 1][1]) после нашего разговора о том, как [начать работу с CDI][2] в вашем окружении и как [интегрировать CDI в существующее Java EE 6 приложение][3]. В этом посте я хочу рассказать о различных точках внедрения в CDI: **поле**, **конструктор** и **сеттер**. Для этого я буду использовать часть предыдущего примера: **внедрение POJO генератора ISBN в сервлет**.



![COFFEE_BEANS][4]

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

[1]: https://habrahabr.ru/company/at_consulting/blog/301636/
[2]: https://antoniogoncalves.org/2011/01/12/bootstrapping-cdi-in-several-environments/
[3]: https://antoniogoncalves.org/2011/02/07/adding-cdi-to-an-existing-java-ee-6-application/
[4]: https://habrastorage.org/files/987/527/93b/98752793bce149448549fee08a9f31ca.jpg
[5]: https://habrahabr.ru/post/301768/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Внедрение зависимостей в CDI. Часть 1
habra.16
habrabot(difrex,1) — All
2016-06-07 13:00:03


После статьи о том, как [начать работу с CDI][1] в вашем окружении и нескольких советов о том, как [интегрировать CDI в существующее Java EE 6 приложение][2], я хочу поговорить о внедрении зависимостей. Да, о простом внедрении или о том, **как провести внедрение одного бина в другой**. Из этой серии трех статей ([Часть 2][3], [Часть 3][4]) вы увидите, что есть множество различных способов: давайте начнем с самого простого — обыкновенного внедрения.



![COFFEE_BEANS][5]

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

[1]: https://antoniogoncalves.org/2011/01/12/bootstrapping-cdi-in-several-environments/
[2]: https://antoniogoncalves.org/2011/02/07/adding-cdi-to-an-existing-java-ee-6-application/
[3]: https://habrahabr.ru/company/at_consulting/blog/301768/
[4]: https://habrahabr.ru/company/at_consulting/blog/302010/
[5]: https://habrastorage.org/files/95f/dab/15d/95fdab15d0a84a9e9036d93c9308044a.jpg
[6]: https://habrahabr.ru/post/301636/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как я программирую на Python
habra.16
habrabot(difrex,1) — All
2016-06-07 13:00:03


Часто с началом нового проекта программист не в состоянии увидеть полную картину — он не знает с чего начать, где получить информацию, сколько ее получить, при этом есть шанс засесть за документацией надолго пока не пропадет желание что-либо делать. Я относительно часто делаю проекты «для души» в ранее незнакомых областях, например, программировал микроконтроллеры, делал свой segway, проектировал на ПЛИС свой микропроцессор, делал плагины под Counter-Strike, софт к купюроприемникам и другие проекты, в которых на старте был абсолютным нулем.

![][1]

[А недавно...][2]

[1]: https://habrastorage.org/files/c8d/c0a/b00/c8dc0ab00c9f4b8da2eda7551261b177.png
[2]: https://habrahabr.ru/post/302694/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Перчатки для тех, кто всё усложняет
habra.16
habrabot(difrex,1) — All
2016-06-07 15:30:11


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

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

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

[>] Как построить грамотную систему тестирования? Инсайты от QA-экспертов: видео и презентации с митапа в Wrike
habra.16
habrabot(difrex,1) — All
2016-06-07 16:00:03


Какие инструменты облачного тестинга используют в Яндексе? Как устроено тестирование в Badoo? Что представляет собой система автоматизированного frontend-тестирования в Wrike?

![][1]

Пару недель назад наш [Wrike Tech club][2] собрал около 150 специалистов по тестированию, чтобы обсудить в питерском офисе [компании][3] насущные, вечные и, на первый взгляд, почти неразрешимые проблемы QA в больших (и не очень) проектах. Как и обещали, делимся видео и презентациями со встречи.

[Смотреть][4]

[1]: https://habrastorage.org/files/979/76d/69a/97976d69ad4e46baa0fce11b902f3130.jpg
[2]: https://www.youtube.com/channel/UCu-RrZ8JmADlGZGO8d3OW5w
[3]: http://www.wrike.com/?utm_source=habrahabr&utm_medium=blogposts&utm_campaign=QAmeetup
[4]: https://habrahabr.ru/post/302798/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Самоконфигурирующиеся приложения
habra.16
habrabot(difrex,1) — All
2016-06-07 16:00:03


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

![][2]
_Фотку взял с [Yaplakal][3]_

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

[1]: https://ru.wikipedia.org/wiki/Непрерывная_интеграция
[2]: https://habrastorage.org/files/e66/7e5/4bd/e667e54bd4234602a9c48ce6960cb5ba.jpg
[3]: http://www.yaplakal.com/forum2/topic281720.html?sa=X&ved=0CCkQ9QEoADAPOChqFQoTCJuXpe-9-sYCFYjRFAodYdEBbg
[4]: https://habrahabr.ru/post/302726/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Lazarus: Кто стоит за атаками на систему банковских переводов SWIFT
habra.16
habrabot(difrex,1) — All
2016-06-07 19:00:04


[![][1]][2]

Межбанковская система SWIFT испытывает не лучшие времена. В феврале 2016 года, из-за несовершенства SWIFT, хакерам удалось вывести из Центробанка Бангладеш $81 млн — мы [писали об этой истории][3]. Впоследствии выяснилось, что это не единственный случай взлома SWIFT. Жертвой злоумышленников еще в январе 2015 года [стал][4] также эквадорский банк Banco del Austro в Эквадоре. Кроме того, обнародован факт о неудачной [атаке][5] на вьетнамский Tien Phong Bank из Вьетнама, о которой ранее не сообщалось.

Эксперты антивирусной компании Symantec [расследовали][6] участившиеся случаи взлома, чтобы понять, кто мог стоять за этими преступлениями и похищениями миллионов долларов у финансовых организаций со всего мира. [Читать дальше →][7]

[1]: https://habrastorage.org/files/d56/cf6/b96/d56cf6b964874b50a4ab6537974b0397.png
[2]: https://habrahabr.ru/company/itinvest/blog/302832/
[3]: https://habrahabr.ru/company/itinvest/blog/283382/
[4]: http://money.cnn.com/2016/05/20/news/swift-bank-attack-global-ecuador/?iid=EL
[5]: http://money.cnn.com/2016/05/13/news/swift-bangladesh-bank-sony-attack/?iid=EL
[6]: http://www.reuters.com/article/cyber-heist-swift-symantec-idUSL3N18N4NN
[7]: https://habrahabr.ru/post/302832/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Станет ли OpenStack «новым LAMP»?
habra.16
habrabot(difrex,1) — All
2016-06-07 19:30:03


Думаю, что каждый пользователь хабра, знает, что такое [LAMP][1]. Но для меня LAMP это не просто комплект (стэк) ОС Linux + Apache HTTP Server + MariaDB/MySQL + PHP/Python/Perl. Для меня это символ того, что открытое ПО может (и должно) быть причиной революционных изменений в ИТ-отрасли. Я уверен, что именно благодаря LAMP, появился интернет в его сегодняшнем виде. Без того, что скрывается за этими четырьмя буквами, не было бы Google, Facebook,… да и Habrahabr. Ну, по крайней мере, не было бы такими, какими мы их знаем. Только представьте себе, технологии, с помощью которых стало возможно создать [компанию с самой большой капитализацией в мире][2], появились всего-лишь 20-25 лет назад! ![][3] Когда я писал свой пост "[Почему Citrix не стала «новой Red Hat» на рынке виртуализации?][4]", я задумался о том, что серверная виртуализация могла бы стать ещё одной областью ИТ-технологий, где открытое ПО играет ключевую роль. К сожалению, этого (пока?) не произошло, однако [OpenStack, вероятно, сможет избежать ошибок][5], и стать стандартом де-факто для ЦОД. Или нет? Опрос после поста.
[Читать дальше →][6]

[1]: https://ru.wikipedia.org/wiki/LAMP
[2]: http://www.vesti.ru/doc.html?id=2715230
[3]: https://habrastorage.org/files/3b7/191/de0/3b7191de09c44beaa4481851eda2eb51.png
[4]: https://habrahabr.ru/post/279577/
[5]: https://habrahabr.ru/post/282734/
[6]: https://habrahabr.ru/post/302774/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Очередное крупное мошенничество с использованием платежных карт
habra.16
habrabot(difrex,1) — All
2016-06-07 20:30:04


В статье ноября 2015-го была описана ситуация с относительно новым видом мошенничества, с помощью которого преступники похищали деньги с банковских счетов: [Хакеры изобрели новую схему воровства денег, украв 250 млн. рублей][1]. Как именно происходило мошенничество, кратко:

_Преступник получал платёжную карту, пополнял её и тут же снимал внесённые деньги в банкомате, запрашивая чек. Далее данные о транзакциях отправлялись сообщнику, который имел доступ к зараженным POS-терминалам. Через терминалы, по коду операции, формировалась отмена снятия наличных. В результате баланс карты мгновенно восстанавливался и у злоумышленника появлялись «отменённые» деньги на счету. Преступники повторяли эти действия многократно, пока в банкоматах не заканчивалась наличка, модифицируя свою схему после исправления банками ошибки. Тогда было открыто несколько судебных дел в отношении виновных, «денежные мулы» были из Лондона, Украины, Латвии и Литвы._

Однако сейчас появилась новость об _очень _похожей ситуации, включающая и названия пострадавших компаний. Сумма ущерба на этот раз почти в два раза больше — около полумиллиарда рублей.

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

[1]: https://habrahabr.ru/post/271211/
[2]: https://habrastorage.org/files/bcb/e61/dd7/bcbe61dd73874524b97131e47e89d7c6.jpg
[3]: https://habrahabr.ru/post/302836/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Web scraping на Node.js и проблемные сайты
habra.16
habrabot(difrex,1) — All
2016-06-07 23:30:03


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



В [первой статье][2] разбиралась простейшая задача из мира веб-скрейпинга. Именно такие задачи достаются веб-скрейперам в подавляющем большинстве случаев – получение данных с незащищённых HTML-страниц стабильно работающего сайта. Быстрый анализ сайта, HTTP-запросы при помощи [needle][3] (организованные при помощи [tress][4]), рекурсивный проход по ссылкам, DOM-парсинг при помощи [cheerio][5] – вот это вот всё.



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



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

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

[1]: https://habrastorage.org/files/aa6/c13/e2c/aa6c13e2c79e4aefb0fa46d896f7ed86.png
[2]: https://habrahabr.ru/post/301426/
[3]: https://github.com/tomas/needle
[4]: https://github.com/astur/tress
[5]: https://github.com/cheeriojs/cheerio
[6]: https://habrahabr.ru/post/302766/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Готовим простой блог на микросервисах, пишем свой микрофреймворк на php и запускаем все на Docker с примерами
habra.16
habrabot(difrex,1) — All
2016-06-08 00:00:04


А что если я скажу вам, что новый продукт можно сразу начинать писать на микросервисной архитектуре, а не заниматься распилом монолита? Это вообще нормально? Удобно? Хотите узнать ответ?



Задача: необходимо написать за выходные (время ограниченно 10-15 часами) сферический блог на микросервисах, на php, не используя никаких фреймворков. Можно пользоваться здравым смыслом. А еще забудем о том что такое фронтенд и вспомним что мы жить не можем без виртуализации. Выберем Docker. Интересно? Вперед под кат.


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

[1]: https://habrastorage.org/files/f7f/b56/6a3/f7fb566a3f724874bf53cdb8e3b37d7a.jpg
[2]: https://habrahabr.ru/post/302844/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Facebook Messenger был уязвим к атаке, требующей базовые знания HTML
habra.16
habrabot(difrex,1) — All
2016-06-08 13:00:03


![image][1]

Команда специалистов [Check Point security][2] обнаружила в стандартном функционале Facebook, а так же в Facebook Messenger, уязвимость, которая позволяла получить доступ к любым отправленным через социальную сеть сообщениям пользователей.

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

[1]: https://habrastorage.org/getpro/habr/post_images/7e7/1d2/f53/7e71d2f53001986b93ee383cd63639a7.jpg
[2]: https://www.checkpoint.com/
[3]: https://habrahabr.ru/post/302874/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Парсер OOXML (docx, xlsx, pptx) на Ruby: наши ошибки и находки
habra.16
habrabot(difrex,1) — All
2016-06-08 14:00:03


Мы выложили парсер OOXML форматов на Ruby в open-source. Он доступен на [GitHub'е][1] и [RubyGems.org][2], бесплатен и распространяется под лицензией AGPLv3. Всё как у модненьких Ruby-разработчиков.

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

[1]: https://github.com/ONLYOFFICE/ooxml_parser
[2]: https://rubygems.org/gems/ooxml_parser
[3]: https://habrastorage.org/files/235/26b/4e0/23526b4e01c7447c9ac0e3dccd53a89f.jpg
[4]: https://habrahabr.ru/post/302826/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как не дать частым релизам поломать ваше API, или пишем авто-тесты для открытого API и шлем результат в Telegram бот
habra.16
habrabot(difrex,1) — All
2016-06-08 15:00:03


![image][1]

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


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

* мы предоставляем наши API интерфейсы в открытый доступ клиентам и важно, чтобы все взаимодействие четко соответствовало описаниям спецификаций
* мы интегрируемся с большим количеством других финансовых сервисов и банков, и помимо покрытия тестами своего кода мы вынуждены также покрывать интеграционными тестами взаимодействие с test (а иногда и prod) средой сторонних систем
* наша внутренняя архитектура включает в себя большое количество микросервисов, которые общаются между собой по HTTP API


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

[1]: https://habrastorage.org/getpro/habr/post_images/3a1/3a6/6af/3a13a66afc5b9153c20cecedd24ff299.jpg
[2]: https://habrahabr.ru/post/302736/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Devconf 2016: Интервью с разработчиком SphinxSearch
habra.16
habrabot(difrex,1) — All
2016-06-08 15:00:03



Мы любим делать интервью с нашими докладчиками. На этот раз — интервью с **Андреем [shodan][1] Аксеновым**, создателем поискового движка SphinxSearch(не знаю как сейчас, но раньше хабр использовал именно этот движок для поиска по сайту) и, как оказалось, еще пары движков. На нашей конференции он будет рассуждать на извечную тему: [Devs vs CTO vs CEO][2]. Само интервью вышло довольно интересным. Андрей честно и откровенно ответил на вопросы, за что ему большой респект :)

> Я тебя знаю как разработчика Sphinxsearch, но, как показывает твоя краткая биография, которую ты дал в описании доклада, похоже компьютерная графика — твоя главная страсть?Все одновременно проще и сложнее, какой-то главной мегастрасти нету :) Есть сколько-то интересные области, есть безразличные. Делать всякий низкий уровень, типа поискового движка, 3D игры, обработки видеозахвата, крохотного недогипервизора (V8086), патчить MySQL или ядро операционки, писать спецмодули к Апачику, улучшать известный алгоритм сжатия или даже просто ковыряться с особо толстыми и тормозными SQL запросами — все это бывает довольно интересно (а бывает нет! но чаще интересно). А вот рисовать формочки для GUI, неважно, на моднейшем Node.js или дохлом Delphi, или там править унылые отчеты в 1C — таки не очень. Говорю по личному опыту, тк. в какой-то мере занимался всем вышеперечисленным и еще всяким.
[Читать дальше →][3]

[1]: https://habrahabr.ru/users/shodan/
[2]: http://devconf.ru/ru/offers/offer/220
[3]: https://habrahabr.ru/post/302888/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Разбор задач третьего квалификационного раунда RCC 2016
habra.16
habrabot(difrex,1) — All
2016-06-08 15:00:03


![][1]

Итак, завершился третий квалификационный раунд международного чемпионата программистов Russian Code Cup 2016. Как и в предыдущих двух раундах, участники должны были в течение двух часов решить пять задач. Учитывались как правильность, так и скорость решения. В третьем отборочном раунде за шанс выйти в следующий финал сразились 4379 человек. Но только 200 из них завоевали возможность приблизиться к победе в чемпионате. А теперь по сложившейся традиции разберём задачи раунда.

1. [Прямоугольник и квадраты][2]
2. [Нули и единицы][3]
3. [Новая трасса][4]
4. [Дерево][5]
5. [Варвары][6][Читать дальше →][7]

[1]: https://habrastorage.org/files/d89/285/48d/d8928548d8044b2ab7d971f3cdc5a68a.jpg
[2]: https://habrahabr.ru/company/mailru/blog/302672/#1
[3]: https://habrahabr.ru/company/mailru/blog/302672/#2
[4]: https://habrahabr.ru/company/mailru/blog/302672/#3
[5]: https://habrahabr.ru/company/mailru/blog/302672/#4
[6]: https://habrahabr.ru/company/mailru/blog/302672/#5
[7]: https://habrahabr.ru/post/302672/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Лаборатория тестирования на проникновение v.9: нет ничего невозможного
habra.16
habrabot(difrex,1) — All
2016-06-08 15:00:03


![][1]

20 мая 2016 г. была запущена очередная, девятая по счету лаборатория тестирования на проникновение «Test lab v.9», которая представляет собой виртуальную компанию «CyBear 32C», занимающуюся разработкой различных систем и приложений, в том числе систем обеспечения ИБ.

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

[1]: https://habrastorage.org/files/ad5/156/026/ad5156026ba64a078978a80eaa5944d6.png
[2]: https://habrahabr.ru/post/302838/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Создание арканоида на чистом JavaScript с нуля. CANVAS
habra.16
habrabot(difrex,1) — All
2016-06-08 15:00:03


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

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

[>] Конкурс по программированию на JS: Классификатор слов (о ходе тестирования)
habra.16
habrabot(difrex,1) — All
2016-06-08 22:00:03


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

Английская версия этого поста размещена [на GitHub][2].


#### Протестировать 312 решений


Большое спасибо всем участникам! Мы получили 603 решения от 312 участников. Поскольку мы принимаем к тестированию самое последнее из присланных в срок решений, то протестировать надо **312 решений**. Это был неожиданный результат. Надеюсь, это немного объясняет, почему это занимает так много времени.
[Читать дальше →][3]

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

[>] Уменьшаем боль в навигации приложения на Yii2
habra.16
habrabot(difrex,1) — All
2016-06-09 12:00:04


![][1]



Доброго времени суток! Большую часть проектов [мы][2] пишем на Yii2, потому что он клёвый и мы его любим.
Однако, всегда есть что улучшить (благо этого не препятствует архитектура Yii). Хочу поделиться решением, которое упрощает прописывание навигации в приложениях на Yii2.



# Проблема



Когда мы добавляем в приложение страницу, нам нужно прописать для неё следующие вещи (после создания контроллера и вьюшки):

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

[1]: https://habrastorage.org/files/471/992/acc/471992accc354f059f22142c125a54d2.jpg
[2]: http://extpoint.com
[3]: https://habrahabr.ru/post/302954/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Теория графов в Игре Престолов
habra.16
habrabot(difrex,1) — All
2016-06-09 12:30:03


![][1]

Недавно, на Geektimes я опубликовал [статью][2], где привёл немного поверхностной статистики из серии книг «Песнь льда и пламени». Но я не стал углубляться в самую интересную часть, в граф социальных связей, ибо тема заслуживает отдельного внимания. В этой статье я продемонстрирую как теория графов может помочь при анализе подобных данных и приведу реализации алгоритмов, которыми я пользовался.

Всем кому интересно, добро пожаловать под кат.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/a3b/b15/35a/a3bb1535a6ce42859dc6ab5775602bb9.jpg
[2]: https://geektimes.ru/post/275466/
[3]: https://habrahabr.ru/post/302936/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Юникастовая маршрутизация мультикаст-трафика
habra.16
habrabot(difrex,1) — All
2016-06-09 14:00:03


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


Недавно мною было замечено, что при просмотре мультикастового IPTV через Wi-Fi часть трафика теряется. После детального изучения проблемы было выяснено, что такое поведение объясняется природой мультикаст-трафика, а именно – MAC-адрес получателя пакета. Он не зависит от получателя и формируется из адреса мультикаст-группы. Соответственно, на такие пакеты претендуют все клиенты, подключенные к беспроводной точке доступа. Вследствие этого нам достается лишь часть пакетов и мы видим обрывистую картинку.

Штатными средствами проблема решается либо созданием отдельной точки доступа для клиента, либо созданием статического маршрута для определенных мультикаст-групп, или же выведением клиента в отдельный VLAN. Вся “сила” таких решений проявится, когда в сети будет несколько IPTV-приставок, желающих посмотреть один и тот же канал, плюс необходимость их в интернете добавит сложность к настройке роутера. Свое решение данной проблемы предлагаю ниже.
[Читать дальше →][1]

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

[>] Интервью с Андреем Светловым о языке Python и не только
habra.16
habrabot(difrex,1) — All
2016-06-09 15:00:06


В преддверии PyCon Russia мы решили поговорить с докладчиками конференции о Python, их работе и увлечениях. Первое короткое интервью мы взяли у одного из разработчиков языка Python Андрея Светлова.

[Андрей Светлов][1] — Python Core Developer, инженер в [DataRobot][2], автор и активный участник многих питоновских библиотек, среди которых [asyncio][3], [aiohttp][4], [aiopg][5], [aiozmq][6], автор популярного [блога][7], посвященного языку программирования Python, программный директор и ежегодный спикер конференции [PyCon Russia][8].

[][9]

###### _Андрей Светлов — спикер многих python-конференций_


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

[1]: https://twitter.com/andrew_svetlov
[2]: http://www.datarobot.com/
[3]: http://asyncio.org
[4]: https://pypi.python.org/pypi/aiohttp/
[5]: https://aiopg.readthedocs.io/en/stable/
[6]: https://aiozmq.readthedocs.io/en/v0.7.0/
[7]: http://asvetlov.blogspot.ru
[8]: http://pycon.ru/2016/?utm_source=news&utm_medium=post&utm_campaign=habr9.06
[9]: https://fotki.yandex.ru/next/users/it-people-ekb/album/169532/view/1417224
[10]: https://habrahabr.ru/post/302970/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Мультиплеер в быстрых играх(Часть IV: Хэдшот! Путешествуем во времени)
habra.16
habrabot(difrex,1) — All
2016-06-09 17:30:03


![][1]
1. [Части I, II (синглплеер с авторитарным сервером)][2]
2. [Часть III (Появление врага)][3]
3. [Часть IV (Хэдшот!)][4]
Как повесить идеальный хэдшот если у тебя пинг 2 секунды? Вы узнаете в этой статье.


### Текущий алгоритм работы мультиплеера


* Сервер получает команды с клиентов и времена их отправления
* Сервер обновляет состояние мира
* Сервер с некоторой частотой отправляет свое состояние всем клиентам
* Клиент отправляет команды и локально воспроизводит их результат
* Клиент получает обновленные состояния мира и:
* Применяет состояние от сервера
* Заново применяет все свои команды, которые сервер не успел применить.
* Интерполирует предыдущие состояния других игроков
* С точки зрения игрока, есть два серьезных последствия:
* Игрок видит **себя **в **настоящем**
* Игрок видит **других **в **прошлом**.
Обычно это отлично работает, но это становится большой проблемой для событий, которым нужна высокая пространственно-временная точность. Например если **хочется разнести врагу бошку**!
[Читать дальше →][5]

[1]: https://habrastorage.org/files/76f/ebf/474/76febf4741f34ba1b08aa31f02f44662.jpg
[2]: https://habrahabr.ru/post/302394/
[3]: https://habrahabr.ru/post/302834/
[4]: https://habrahabr.ru/post/303006/
[5]: https://habrahabr.ru/post/303006/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Создаем безопасный IP мессенджер с помощью Virgil и Twilio за 30 минут
habra.16
habrabot(difrex,1) — All
2016-06-09 18:30:11


![][1]


Привет!
Мы уже показывали вам код, с помощью которого можно легко и просто реализовать end-to-end шифрование. Давайте пойдем дальше и, используя сервисы Virgil Security, разработаем безопасный IP мессенджер. Реализация безопасного IP мессенджера со встроенной функцией шифрования – задача далеко не тривиальная. В этой статье мы хотим рассказать как, используя [Virgil API][2] и [Тwilio IP Messaging API][3], сделать этот процесс намного проще.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/1f5/89e/e1d/1f589ee1dc674a918b5ded11f596478b.jpg
[2]: https://virgilsecurity.com/api-docs
[3]: https://www.twilio.com/docs/api/ip-messaging
[4]: https://habrahabr.ru/post/302608/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Мультиплеер в быстрых играх (Часть IV: Хэдшот! Путешествуем во времени)
habra.16
habrabot(difrex,1) — All
2016-06-09 19:00:03


![][1]
1. [Части I, II (синглплеер с авторитарным сервером)][2]
2. [Часть III (Появление врага)][3]
3. [Часть IV (Хэдшот!)][4]
Как повесить идеальный хэдшот если у тебя пинг 2 секунды? Вы узнаете в этой статье.


### Текущий алгоритм работы мультиплеера


* Сервер получает команды с клиентов и времена их отправления
* Сервер обновляет состояние мира
* Сервер с некоторой частотой отправляет свое состояние всем клиентам
* Клиент отправляет команды и локально воспроизводит их результат
* Клиент получает обновленные состояния мира и:
* Применяет состояние от сервера
* Заново применяет все свои команды, которые сервер не успел применить.
* Интерполирует предыдущие состояния других игроков
* С точки зрения игрока, есть два серьезных последствия:
* Игрок видит **себя **в **настоящем**
* Игрок видит **других **в **прошлом**.
Обычно это отлично работает, но это становится большой проблемой для событий, которым нужна высокая пространственно-временная точность. Например если **хочется разнести врагу бошку**!
[Читать дальше →][5]

[1]: https://habrastorage.org/files/76f/ebf/474/76febf4741f34ba1b08aa31f02f44662.jpg
[2]: https://habrahabr.ru/post/302394/
[3]: https://habrahabr.ru/post/302834/
[4]: https://habrahabr.ru/post/303006/
[5]: https://habrahabr.ru/post/303006/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] CodeRush for Roslyn: Part 1 — полезные фичи для разработки через тестирование
habra.16
habrabot(difrex,1) — All
2016-06-10 11:30:03


Мы выпускаем новый продукт — [CodeRush for Roslyn][1] (далее **CRR**). Уже более 10 лет у нас есть другой продукт, который называется просто **CodeRush**, или **CodeRush Classic** (сокращенно **CRC**). Главное отличие **CRR** от **CRC** в том, что Roslyn-версия использует парсинг и языковые сервисы встроенные в Visual Studio. **CRR** полностью написан с нуля, поэтому он быстрый, легкий и уже содержит всё необходимое для эффективной работы.

В этой статье я расскажу о поддержке тестовых фреймворков в **CRR**. Почти во всех примерах будет использован проект [github.com/dewe/Money][2]. Этот проект использует NUnit Framework, но мы так же поддерживаем xUnit, MSpec и MS Test Framework. Все рассмотренные ниже практики работают одинаково вне зависимости от того, какой тестовый фреймворк вы используете.
[Читать дальше →][3]

[1]: https://www.devexpress.com/Products/CodeRush/coderush-for-roslyn.xml
[2]: https://github.com/dewe/Money
[3]: https://habrahabr.ru/post/303008/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] DevOps — автоматизируй всё
habra.16
habrabot(difrex,1) — All
2016-06-10 13:30:03


Целью статьи является дать основные представления о DevOps и практиках, используемых при этой методологии. Тут не будет сложных терминов, конкретных продуктов и road map внедрения DevOps, но, надеюсь, будет интересно ознакомиться.


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

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

[>] [Перевод] Data Plane Development Kit (DPDK): приступая к работе
habra.16
habrabot(difrex,1) — All
2016-06-10 14:00:03


![][1]Для быстрой обработки пакетов требуется обнаруживать битовые шаблоны и быстро (со скоростью работы канала) принимать решения о нужных действиях на основе наличных битовых шаблонов. Эти битовые шаблоны могут принадлежать одному из нескольких заголовков, присутствующих в пакете, которые, в свою очередь, могут находиться на одном из нескольких уровней, например Ethernet, VLAN, IP, MPLS или TCP/UDP. Действия, определяемые по битовым шаблонам, могут различаться — от простого перенаправления пакетов в другой порт до сложных операций перезаписи, для которых требуется сопоставление заголовка пакета из одного набора протоколов с другими. К этому следует добавить функции управления трафика и политик трафика, брандмауэры, виртуальные частные сети и т. п., вследствие чего сложность операций, которые необходимо выполнять с каждым пакетом, многократно возрастает.

Чтобы добиться работы на ожидаемом уровне производительности при скорости канала 10 Гбит/с и размере пакета в 84 байта, процессор должен обрабатывать 14,88 миллиона пакетов в секунду. Оборудование общего назначения было недостаточно мощным для обработки пакетов с такой скоростью. Поэтому в большинстве рабочих сетевых систем обработкой пакетов в каналах данных занимаются контроллеры ASIC и сетевые процессоры NPU. К очевидным недостаткам такого подхода относятся: недостаточная гибкость, высокая стоимость, длительные циклы разработки, зависимость от определенного поставщика. Тем не менее, благодаря доступности более быстрых и дешевых ЦП и программных ускорителей, таких как Data Plane Development Kit (DPDK), можно переложить эту нагрузку на оборудование общего назначения.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/9ce/4c2/b12/9ce4c2b129a54384b1de85aef28d0681.png
[2]: https://habrahabr.ru/post/302126/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Где взять логины или VoIP в помощь
habra.16
habrabot(difrex,1) — All
2016-06-10 14:00:03


![][1]Тестирование на проникновение всегда начинается со сбора информации об инфраструктуре. Доступные узлы с открытыми портами и уязвимыми сервисами, валидные учетные данные и другая информация, позволяющая «продвинуться» и скомпрометировать инфраструктуру интересна в первую очередь. При проведении тестирования методом black-box очень часто встает вопрос: «где взять логины?». В статье я хочу рассказать, откуда _ещё_ можно получить логины на этапе сбора информации. Добро пожаловать под кат.
[Читать][2]

[1]: https://habrastorage.org/files/0df/dc2/d72/0dfdc2d721a640c7b30dde1dbae217d1.jpg
[2]: https://habrahabr.ru/post/303058/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Балансировка трафика между несколькими [vpn-]интерфейсами в одной подсети
habra.16
habrabot(difrex,1) — All
2016-06-10 14:00:03


Недавно обзавёлся задачей по балансировке трафика между несколькими usb-модемами. В итоге родилось [решение][1] коим и хочу поделиться с Хабрасообществом.

На момент написания статьи это [balancing\_v0.5.2-alpha][2].

Изначально задача формулировалась примерно так:
> Есть пучёк armhf девайсов c Ubuntu Trusty на борту.
> У них есть несколько подключений к интернету. Обычно это основное проводное подключение (eth0) и несколько HiLink usb-модемов Huawei E303 (eth1-eth5). Через каждое из этих подключений нужно поднять openvpn-клиентов к единственному серверу и через них уже балансировать трафик.
Всё бы ничего, но у этих модемов нет возможности изменения подсети и шлюза (гвоздями прибиты 192.168.1.1/24), причём прошивок с реализацией этой возможности тоже не нашлось (в отличии, например от E3272 для которого есть прошивки с таким функционалом). Кроме того даже если бы и нашлись, то vpn-подключения всё равно были бы в одной подсети и с одинаковым шлюзом. Т.е. без продвинутой маршрутизации (policy routing) не обойтись.

Ах, да, ещё надо мониторить каждое подключение и отключать/включать, если порвалось/возобновилось. Т.е. маршрутизацией нужно управлять динамически.
[Читать дальше →][3]

[1]: https://github.com/vmspike/balancing
[2]: https://github.com/vmspike/balancing/archive/v0.5.2-alpha.tar.gz
[3]: https://habrahabr.ru/post/303056/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


![][1]

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

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

[1]: https://habrastorage.org/files/591/e76/dcb/591e76dcb26a468b98cff27391324917.png
[2]: https://habrahabr.ru/post/303042/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Хакер продает базу данных с 32 миллионами учетных записей Twitter
habra.16
habrabot(difrex,1) — All
2016-06-10 14:00:03


[![][1]][2]

По [сообщению][3] издания The Hacker News, неизвестный хакер продает учетные записи более чем 32 миллионов пользователей Twitter — цена архива составляет 10 биткоинов (больше $5800 по текущему курсу). [Читать дальше →][4]

[1]: https://habrastorage.org/files/43d/e8b/ef9/43de8bef92364166a219c919f6e6445c.JPG
[2]: https://habrahabr.ru/company/pt/blog/303004/
[3]: http://thehackernews.com/2016/06/hack-twitter-password.html?m=1
[4]: https://habrahabr.ru/post/303004/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Форум uTorrent взломан, пароли скомпрометированы
habra.16
habrabot(difrex,1) — All
2016-06-10 14:00:03


Ресурс torrentfreak сообщает, что форум торрент клиента uTorrent был взломан, пароли пользвателей утекли.
![image][1]

###### Скриншот обьявления о случившемся на форуме компании



_На форуме зарегистрировано 388,000 пользователей_
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/8fc/f78/962/8fcf789629ef1a9259d13856a20105c4.png
[2]: https://habrahabr.ru/post/302940/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Медленно, но верно: выбираем оптимальный вариант стратегии для торгового робота
habra.16
habrabot(difrex,1) — All
2016-06-10 14:00:03


[![][1]][2]

Большинство трейдинговых систем создано по типу «срубить денег по-быстрому». Они обращаются к временным неэффективностям рынков, для того чтобы получить ежегодную прибыль в районе 100%. За такими системами нужен постоянный контроль. Их нужно адаптировать к условиям рынка. Но срок их жизни остается относительно небольшим. И, когда это время приходит, смерть системы сопряжена, как правило, с большими финансовыми потерями. Что если оставаться в выигрыше, но сделать работу с трейдинговой системой более комфортной и безопасной?

Предлагаем вам адаптированный перевод [статьи][3] в The Financial Hacker, в которой автор реабилитирует идею Марковица и его подход оптимизации среднего отклонения (Mean-Variance Optimization).

«Старый-добрый» подход к осуществлению инвестиций гласит: покупай активы с низкими рисками и жди. Каждый инвестиционный портфель имеет некий средний гарантированный доход и определенный уровень ценовых колебаний. Обычно мы стремимся минимизировать последний и увеличить первый показатель. Оптимальное распределение капиталов, как раз, и призвано решить эту проблему. Оно подразумевает неравноценное распределение вложенных средств по количеству N активов. Самый простой способ решить задачу увеличения средней доходности при минимизации рисков предложил 60 лет назад [Гарри Марковиц][4]. Это решение принесло ему Нобелевскую премию. [Читать дальше →][5]

[1]: https://habrastorage.org/files/a9d/84a/5d5/a9d84a5d517f4a97a80c8caf4d77b932.png
[2]: https://habrahabr.ru/company/itinvest/blog/303040/
[3]: http://www.financial-hacker.com/get-rich-slowly/
[4]: https://en.wikipedia.org/wiki/Harry_Markowitz
[5]: https://habrahabr.ru/post/303040/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Synology DSM, Perl и Mojolicious
habra.16
habrabot(difrex,1) — All
2016-06-10 14:00:03


Раз вспомнили про Synology DSM в [Одновременное монтирование зашифрованных папок в Synology DSM][1], то решил показать как при помощи Perl и веб фреймворка Mojolicious сделать простое приложение под свои нужды. Мне пришлось написать на коленке утилиту [SynDevInfo][2], для вывода необходимой информации по устройству в браузере, т.к. уважаемый support не знает GNU/Linux, а пользователи не могут зайти по ssh.



Под катом будет описана структура пакета, скрипт запуска приложения и сам скрипт на [Mojolicious::Lite][3]

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

[1]: https://habrahabr.ru/post/302634/
[2]: https://github.com/RPG-18/SynDevInfo
[3]: http://mojolicious.org/perldoc/Mojolicious/Lite
[4]: https://habrahabr.ru/post/302746/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Расследование: куда ваш сайт редиректит пользователей, а вы об этом даже не подозреваете
habra.16
habrabot(difrex,1) — All
2016-06-10 15:30:03


![image][1]

Добрый день!

Меня зовут Максим и я директор по продуктам. Эта история началась с того, что однажды я зашел с мобильного телефона на наш сайт и, к своему большому удивлению, был перенаправлен на сайт какой-то интернет-рулетки. Попробовал зайти еще раз – проблема не повторяется, подумал что глюк. Попросил коллег попробовать зайти с мобильного телефона – и волосы встали дыбом. Один «стал миллионным посетителем и выиграл машину», второй – «получил подарочный депозит на форекс», третий был обрадован «ваучером на 50 000 рублей», а многие вообще попали на сайты с нескромно одетыми женщинами, делающими всякое. Для тех кто задумался о том, что может быть причиной, подсказка – сайт не взламывали. Вредоносный код мы добавили сами, пользуясь одним популярным маркетинговым инструментом. Расследование под катом.
[Читать дальше →][2]

[1]: https://s3.amazonaws.com/f.cl.ly/items/1M321v2N160q1S471E3x/moshennik1.jpg?v=4eb6d9cd
[2]: https://habrahabr.ru/post/303074/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] DevConf::Go — 17 июня в Сколково, экслюзивный мастер-класс по Go 18 июня в ТАСС
habra.16
habrabot(difrex,1) — All
2016-06-10 16:30:03


![][1] Каждый год на DevConf появляются новые лидеры в разработках — в этом годы было много [**интересных заявок по Go**][2], где разработчики готовы рассказать, как они применяют Go в продакшен. Вам интересено Go? Присоединяйтесь к сообществу Go на [**4Gophers.ru**][3]

Первый доклад ["**Prometheus мониторинг от души**"][4] представляет Евгений Пак — разработчик с 10 летним опытом работы, Senior Developer Go компании Lazada. Он расскажет об опыте переезда на Prometheus, и почему выбрали именно его, о процессе миграции и о том, как организована инфраструктура для сбора метрик Go приложений. Расскажет о тонкостях вычисления квантилей как на стороне клиента (тип метрик Summary), так и на стороне сервера (тип метрик Histogram). Также вы узнаете о тех нюансах, с которыми столкнулись при работе с Графаной, и как их решили.

О том, [**как приготовить Go микросервис к продакшену**][5] поведает Вадим Мадисон. Доклад о том, что считать готовым к продакшену микросервисом. Как должен быть реализован микросервис, какую функциональность он должен предоставлять, чтобы считать сервис надежным, прозрачным для поддержки и мониторинга. На примере Go-микросервиса будет дан перечень необходимого функционала и рассказаны основные подходы по разработке, деплою и поддержке микросервисов.
[Читать дальше →][6]

[1]: https://habrastorage.org/files/01a/9e0/2fc/01a9e02fc2de4d8d932adf92609a0bf1.png
[2]: http://devconf.ru/ru/schedule/go
[3]: http://4gophers.ru/
[4]: http://devconf.ru/ru/offers/offer/173
[5]: http://devconf.ru/ru/offers/offer/85
[6]: https://habrahabr.ru/post/303066/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Руководство по PHP7
habra.16
habrabot(difrex,1) — All
2016-06-10 21:00:04


![][1]

#### **php7-tutorial.com**


Цель этого [сайта][2] помочь вам обнаружить нововведения в PHP7. Это руководство представляет из себя набор простых упражнений, в которых вам будет предложено что-либо решить, либо исправить ошибку. Каждое упражнение соответствует стандарту [RFC ][3] (набор технической спецификации и стандартов) и сопровождается кратким пояснениями.


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


![][4]Всем привет, с вами Максим Иванов, и сегодня мы поговорим о нововведениях PHP7, о которых более подробно поведает нам [ Гийом Девар][5] (Guillaume Dievart) в своем руководстве, сделанном в форме упражнений. Но прежде чем начинать, я хочу отметить один момент. Я не буду приводить полное руководство по данному языку программирования в этом обзоре, просто оставлю здесь [ссылку][6] на самую свежую и достоверную информацию. [Джош Локхарт][7] (автор гайдлайна «PHP: правильный путь», разработчик Slim Framework), написал данную книгу с целью помочь новичкам, по его словам: «В последнее время существует много дискуссий о том, что PHP сообществу и, в целом, программистам не хватает достоверной информации по языку PHP, поэтому мое руководство призвано решить эту проблему». Чем именно? Вы знаете, что по интернету разбросано огромное количество материла по PHP, но многое уже устарело или не приводит к написанию качественного кода. В этой книге присутствуют основные актуальные сведения с ссылками на проверенные ресурсы. Если кому интересно, такое есть и по [JavaScript][8]. А теперь вернемся к упражнениям и приступим.
[Читать дальше →][9]

[1]: https://habrastorage.org/files/03a/fbd/d22/03afbdd222c64049a7de58f587ebfc92.png
[2]: http://php7-tutorial.com/
[3]: https://ru.wikipedia.org/wiki/RFC
[4]: https://habrastorage.org/files/711/8e9/c6c/7118e9c6ceee49bd9b364be7f75bf00a.png
[5]: https://twitter.com/guillaumDievart
[6]: http://www.phptherightway.com/
[7]: https://twitter.com/codeguy
[8]: http://jstherightway.org/
[9]: https://habrahabr.ru/post/302942/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PyConRu: зачем?
habra.16
habrabot(difrex,1) — All
2016-06-11 04:30:04


Привет!

20 докладов, 2 воркшопа, Lightning Talks, дискуссионная панель, Unconference, афтепати с костром и песнями, прекрасный загородный отель «Cronwell Яхонты Таруса» — все это про конференцию [PyCon Russia][1], которая пройдет 3-4 июля в 95 км от Москвы.

Ниже — описание докладов и воркшопов, а еще ответ на вопрос, почему на PyCon стоит ехать всей семьей.

С 13 июня цена билета повышается. Самое время еще раз посмотреть на программу и зарегистрироваться, если вы откладывали это.
[][2]
[Читать дальше →][3]

[1]: http://pycon.ru/2016/program/content/?utm_source=news&utm_medium=post&utm_campaign=habr10.06
[2]: https://fotki.yandex.ru/next/users/it-people-ekb/album/169532/view/1339240?page=4
[3]: https://habrahabr.ru/post/303084/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] RDS, как это работает? Опускаемся на самый нижний уровень модели OSI
habra.16
habrabot(difrex,1) — All
2016-06-11 10:00:12


С системой RDS (Radio Data System) сталкивался хоть раз каждый, кто видел в автомагнитоле название станции вроде «Дорожное радио». Помимо названия, могут отображаться дополнительные данные — название воспроизводимой песни, температура, частота вещания и т.д.
![][1]

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

Продолжение под катом (осторожно много картинок).
[Читать дальше →][2]

[1]: https://habrastorage.org/files/98b/c48/7c1/98bc487c1c514c029fa5e27b37fc29b8.png
[2]: https://habrahabr.ru/post/303104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] OpenGL ES 2.0. Один миллион частиц
habra.16
habrabot(difrex,1) — All
2016-06-13 10:30:05


В этой статье мы рассмотрим один из вариантов реализации системы частиц на OpenGL ES 2.0. Подробно поговорим об ограничениях, опишем принципы и разберем небольшой пример.

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

[1]: https://habrastorage.org/files/9a6/2ba/b61/9a62bab61366428782e83834b9f22106.jpg
[2]: https://habrahabr.ru/post/303142/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками
habra.16
habrabot(difrex,1) — All
2016-06-13 17:30:04


![image][1]
_Маргарет Гамильтон стоит рядом с написанным ей исходным кода бортового компьютера «Аполлона»_



Лаборатория реактивного движения (Jet Propulsion Laboratory) — научно-исследовательский центр НАСА, ответственный за большинство беспилотных космических кораблей США. Там пишут много кода, и права на ошибку у них намного меньше, чем у обычных программистов.



В JPL пишут на Си, и на их сайте есть документ "[JPL Institutional Coding Standard][2]", описывающий жесткие стандарты кодирования внутри организации. Они напоминают правила программирования для встроенных (embedded) систем и систем реального времени, с ограниченными ресурсами. Но многие из правил эти просто принципы хорошего программирования. Ограничение сложности, максимальное упрощение для последующего чтения кода и отладки, отсутствие побочных эффектов. Мы в [Хекслете][3] постоянно говорим об этом в [вебинарах][4] и, конечно, в самих курсах. Мы считаем очень важным как можно раньше поднимать эти темы, поэтому про функции и побочные эффекты начинаем говорить в самом первом курсе «[Основы программирования][5]», который рассчитан на новичков. Это бесплатный курс, кстати, и в нем есть практика на языке JavaScript.



В документе JPL есть много правил, но пользователь Реддита сделал выжимку десяти главных принципов. Вот перевод этого списка.

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

[1]: https://habrastorage.org/files/6c7/e63/542/6c7e635425e24eda90fd4ac9d80c9adb.gif
[2]: http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf
[3]: https://ru.hexlet.io?utm_source=habr&utm_medium=blog&utm_campaign=nasa
[4]: https://ru.hexlet.io/videos?utm_source=habr&utm_medium=blog&utm_campaign=nasa
[5]: https://ru.hexlet.io/courses/programming-basics?utm_source=habr&utm_medium=blog&utm_campaign=nasa
[6]: https://habrahabr.ru/post/303160/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


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

Протестировано **312** решений, из них **50** упало или зависло, ещё **3** оказались слишком медленными, чтобы пройти все тесты. Из оставшихся **259** решений **12** по разным причинам были объявлены «вне конкурса»: решения не работали без поправки типа файла данных (авторы забыли галочку «gzip») или были присланы сотрудниками Hola.

Нынешние результаты — предварительные. Мы надеемся, что не допустили ошибок при подведении итогов, и тогда **20 июня 2016** эти результаты станут окончательными. Тогда же вместо идентификаторов решений будут опубликованы имена или псевдонимы их авторов.

Решение победителя конкурса показало результат в **83\.67%** правильных ответов. Полные списки решений с результатами тестирования находятся в английской версии поста [на GitHub][2].

Там же мы публикуем «сырые» [машиночитаемые результаты][3] тестирования каждого из решений, где разнообразной информации больше, чем в сводных таблицах. На основе этих данных Вы можете провести собственный анализ результатов, чему мы будем очень рады.
[Читать дальше →][4]

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

[>] Автоматизируем покупку Ж/Д билетов Укрзалізниці
habra.16
habrabot(difrex,1) — All
2016-06-14 01:00:06


Привет! Наверное, каждый из нас когда-то сталкивался с ситуацией, когда нужно срочно куда-то уехать, но все Ж/Д билеты уже раскуплены. В этой статье я расскажу о том, как я писал Telegram бота для отслеживания и покупки освободившихся билетов Укрзалізниці.



# Как это работает



Для покупки железнодорожных билетов в Украине компания Укрзалізниця запустила ресурс . Ресурс удобен тем, что не нужно посещать кассы, чтобы забрать сам билет. Достаточно показать проводнику QR код с посадочного талона на экране смартфона либо распечатав на принтере.



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



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



В качестве интерфейса был выбран Telegram так как это новая платформа для меня и я хотел с ней немного разобраться. В качестве бонуса сразу получаем уведомления на мобильный, не задумываясь о push нотификациях или email'ах.
В качестве языка программирования был выбран Python.

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

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

[>] API hh.ru. Быстрый старт
habra.16
habrabot(difrex,1) — All
2016-06-14 13:00:03


![][1]
Полагаю, некоторые из вас знают, что у hh.ru есть открытый API (мы рассказывали о нем [тут][2] и [тут][3]), который используем не только мы, но и сторонние разработчики. С его помощью, например, можно очень детально анализировать рынок на больших объемах актуальных данных.

Я задумал серию из двух статей: в этой покажу, как можно быстро и просто начать использовать API, а в следующей сделаю небольшой проект, рекомендующий актуальные вакансии по вашему резюме.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/bf6/4a9/587/bf64a9587d234a559f1752119878deeb.jpg
[2]: https://habrahabr.ru/company/hh/blog/201202/
[3]: https://habrahabr.ru/company/hh/blog/186994/
[4]: https://habrahabr.ru/post/303168/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что нужно сделать перед тем, как выложить код открытого программного обеспечения
habra.16
habrabot(difrex,1) — All
2016-06-14 13:30:06


![][1]Выложить проект с открытым программным кодом – это больше, чем выложить код в Интернете.

Интерес к программным продуктам с открытым исходным кодом растёт последние 10 лет. Linux стоит и в стиральных машинах, и в боевых дронах. Большинство программистов не могут представить свою жизнь без широкого ассортимента бесплатных и открытых инструментов в своем распоряжении.

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

Чем вы можете помочь своему проекту, чтобы его заметили?

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

[1]: https://habrastorage.org/files/6e1/8d3/cb3/6e18d3cb3962469aabd752322648e460.jpg
[2]: https://habrahabr.ru/post/303200/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Механизмы контейнеризации: cgroups
habra.16
habrabot(difrex,1) — All
2016-06-14 14:30:04




Продолжаем цикл статей о механизмах контейнеризации. [В прошлый раз][1] мы говорили об изоляции процессов с помощью механизма «пространств имён» (namespaces). Но для контейнеризации одной лишь изоляции ресурсов недостаточно. Если мы запускаем какое-либо приложение в изолированном окружении, мы должны быть уверены в том, что этому приложению выделено достаточно ресурсов и что оно не будет потреблять лишние ресурсы, нарушая тем самым работу остальной системы. Для решения этой задачи в ядре Linux имеется специальный механизм — cgroups (сокращение от control groups, контрольные группы). О нём мы расскажем в сегодняшней статье.
[Читать дальше →][2]

[1]: https://blog.selectel.ru/mexanizmy-kontejnerizacii-namespaces/
[2]: https://habrahabr.ru/post/303190/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Инструменты Intel для создателей видео кодеков
habra.16
habrabot(difrex,1) — All
2016-06-14 17:30:03


![image][1]На Хабре в блоге Intel регулярно появляются статьи с описанием технологий и инструментов, созданных в стенах Intel. Многие из них так или иначе связаны с обработкой и анализом видео и изображений. Это такие продукты как, например, **Intel Media Server Studio** или **Intel RealSense**. Однако, существует набор инструментов, не так широко представленных в медиа пространстве, но не менее значимых для такой категории разработчиков, как создатели медиа кодеков. Именно этот пробел мы и попытаемся восполнить в данном топике. Речь пойдет про Intel **[Video Pro Analyzer][2] (Intel VPA)** и **[Intel Stress Bitstreams and Encoder][3] (Intel SBE)**, а также про те возможности, что скрываются за этими названиями.

Для начала определимся с предметом, сущностью, с которой работают вышеназванные инструменты. Это битовые стримы. Битовый стрим – это то, что получается после того, как отработал видео энкодер. Битовый стрим – это поток битов, отвечающий спецификации того или иного кодека. Если мы заглянем в спецификацию большинства кодеков, то увидим, что этот битстрим представляет из себя ничто иное как набор синтаксических элементов данного кодека различной длины. Это, к примеру, ширина и высота картинки, профиль кодирования, коэффициенты трансформации, различные битовые флаги и т.д. Для стандарта HEVC это сотни синтаксических элементов. После кодирования эти битовые стримы доходят до пользователей, помещенные в различные медиа контейнеры – avi, mp4, mpeg ts и т.д. Но разработчики кодеков в основном работают именно с битовыми стримами. Разработчики ПО, дизайнеры, инженеры – электронщики, тестеры имеют свои инструменты для работы. Почему же разработчикам кодеков их не иметь?
[Читать дальше →][4]

[1]: https://habrastorage.org/files/185/667/2c8/1856672c8b8c4dbf852bfca6124f0769.png
[2]: https://software.intel.com/en-us/intel-video-pro-analyzer
[3]: https://software.intel.com/en-us/intel-stress-bitstreams-and-encoder
[4]: https://habrahabr.ru/post/302718/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Кибербезопасность на бескрайних морях
habra.16
habrabot(difrex,1) — All
2016-06-14 17:30:03


[![][1]][2]

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

[1]: https://habrastorage.org/files/fa4/67d/2cd/fa467d2cdbaa4ad0b36ec590bc2d5f6e.png
[2]: https://habrahabr.ru/company/pt/blog/303198/
[3]: https://habrahabr.ru/post/303198/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 ... 210