RSS
Pages: 1 ... 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 ... 210
[>] DUMP-2016: видео всех докладов в одном посте. Бесплатно. Без СМС
habra.16
habrabot(difrex,1) — All
2016-05-31 20:00:02


8 апреля в Екатеринбурге прошла конференция [DUMP][1]. Под катом — видео 60-и докладов про frontend, serverside, devops, mobile, дизайн, управление разработкой и тестирование, плюс все презентации и фотографии с прошедшей конференции. А вот короткий отчетный ролик про DUMP-2016.


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

[1]: http://dump-conf.ru/?utm_source=news&utm_medium=post&utm_campaign=habr31.05
[2]: https://habrahabr.ru/post/302286/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как мы делали систему выделения информации из текста на естественном языке для банка АО «Банк ЦентрКредит» (Казахстан)
habra.16
habrabot(difrex,1) — All
2016-05-31 20:00:02


Некоторое время назад к нам обратился представитель банка АО «Банк ЦентрКредит» (Казахстан) с интересной задачей. Необходимо было интегрировать в конвейер обработки данных, представляющих из себя текст на естественном языке, дополнительный инструмент обработки. Всех деталей проекта мы раскрывать не можем, так как он находится в сфере безопасности банка и разрабатывается его службой безопасности. В освещении технологических аспектов задачи и способов их реализации заказчик не был против, что собственно мы и хотим сделать в рамках данной статьи.

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

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

[>] [Перевод] XSS уязвимость по-прежнему сохранятся для WordPress
habra.16
habrabot(difrex,1) — All
2016-05-31 23:30:03


В ходе регулярных проверок и исследований была обнаружена сохранность XSS уязвимости, которая затрагивает плагин WordPress Jetpack, установленный на более чем миллион WordPress сайтов. Уязвимость может быть легко использована с помощью wp-комментариев, и поэтому рекомендуется обновить свой плагин как можно быстрее, если Вы этого еще не сделали.

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

[1]: https://habrastorage.org/files/6e3/9cc/f42/6e39ccf42b04428fab9448e2a161c7de.jpg
[2]: https://habrahabr.ru/post/302328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] XSS уязвимость по-прежнему сохраняется для WordPress
habra.16
habrabot(difrex,1) — All
2016-06-01 11:30:03


В ходе регулярных проверок и исследований была обнаружена сохранность XSS уязвимости, которая затрагивает плагин WordPress Jetpack, установленный на более чем миллион WordPress сайтов. Уязвимость может быть легко использована с помощью wp-комментариев, и поэтому рекомендуется обновить свой плагин как можно быстрее, если Вы этого еще не сделали.

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

[1]: https://habrastorage.org/files/6e3/9cc/f42/6e39ccf42b04428fab9448e2a161c7de.jpg
[2]: https://habrahabr.ru/post/302328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Чистый код и искусство обработки исключений
habra.16
habrabot(difrex,1) — All
2016-06-01 13:30:03


![][1]

Исключения существуют столько же, сколько само программирование. В самом начале, когда программирование было исключительно аппаратным или с использованием низкоуровневых языков, исключения применялись для изменения потока программы и избегания аппаратных сбоев. Согласно [Википедии][2], исключения — это:

> …ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы…
Исключения требуют к себе особого отношения, а необработанное исключение может привести к непредсказуемому поведения программы. И последствия могут быть очень серьёзными. Например, в 1996 году необработанное исключение переполнения привело к [катастрофе при запуске ракеты Ariane 5][3]. А в [этой подборке][4] описан ряд других громких событий, связанных с необработанными или ошибочно обработанными исключениями.
[Читать дальше →][5]

[1]: https://habrastorage.org/files/93a/bfa/6ec/93abfa6ec2544018be237af3b15dad64.jpg
[2]: https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B9
[3]: https://en.wikipedia.org/wiki/Cluster_%28spacecraft%29#Launch_failure
[4]: http://archive.wired.com/software/coolapps/news/2005/11/69355
[5]: https://habrahabr.ru/post/301740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Шлюзы Intel для интернета вещей: отправка сообщений MQTT-брокеру с использованием Python
habra.16
habrabot(difrex,1) — All
2016-06-01 14:30:03


Сегодня настроим шлюз для интернета вещей на отправку сообщений MQTT-брокеру (серверу) с использованием Python-скрипта. Сообщения будет принимать компьютер, подписанный на соответствующую тему на брокере. После оформления подписки, сообщения, опубликованные с этой темой, будут поступать на компьютер. В процессе изучения этого материала вы выполните следующие шаги:
[![][1]][2]
* Установка на компьютер MQTT-клиента на Python.
* Настройка MQTT-брокера.
* Установка MQTT-клиента на шлюз, основанный на процессоре Intel Core, Atom или Quark.
* Создание и запуск скрипта, отправляющего MQTT-сообщения со шлюза брокеру, которые, в конечном счёте, поступят на компьютер.[Читать дальше →][3]

[1]: https://habrastorage.org/files/6f0/2e6/ae9/6f02e6ae993143edaab4ca297cf9200f.png
[2]: https://habrahabr.ru/company/intel/blog/302338/
[3]: https://habrahabr.ru/post/302338/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Angular Attack: мой опыт участия в хакатоне
habra.16
habrabot(difrex,1) — All
2016-06-01 16:00:03


![][1]
Angular 2 сегодня считают этаким «new kid on the block». Он многим интересен, без его упоминания не обходится практически ни одна крупная front-end конференция, и уже сейчас он готов бросить вызов React. Но до лучей абсолютной славы еще далеко — официального релиза еще не было, хотя в бою фреймворк может попробовать любой желающий. Мы в [Wrike][2], например, уже вовсю используем Angular 2 в продакшне.

Ребята из Google активно привлекают внимание к новому фрейворку и даже недавно провели 48-часовой онлайн хакатон [ANGULAR ATTACK][3], который собрал несколько сотен участников. По его результатам было опубликовано более 270 работ. В этой статье я хочу поделиться опытом своего участия в хакатоне, впечатлениями и наблюдениями, которые могут вам помочь в подобных состязаниях. Добро пожаловать под кат.

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

[1]: https://habrastorage.org/files/0da/20e/e0b/0da20ee0b6d04a7686599291ecdccf10.png
[2]: http://www.wrike.com/?utm_source=habrahabr&utm_medium=blogposts&utm_campaign=Chernykh
[3]: https://www.angularattack.com/
[4]: https://habrahabr.ru/post/302302/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О нетрадиционном способе использования компьютерной мыши
habra.16
habrabot(difrex,1) — All
2016-06-01 16:30:03


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

Задумывались ли вы когда-нибудь о том, как работает оптическая мышка? Все просто: в нижней части расположена камера, быстро делающая снимки поверхности, по которой водят мышку. Сравнивая полученные изображения, контроллер мышки вычисляет смещение. Есть вопрос и поинтереснее: можно ли как-то достать изображение поверхности под мышкой? Спойлер: можно! Как это сделать, расскажем под катом!
[Читать дальше →][3]

[1]: https://habrastorage.org/files/7ca/1c2/6dc/7ca1c26dc3cf4279a9fc91136ce6a2b5.png
[2]: http://neoquest.ru/timeline.php?year=2016&part=1
[3]: https://habrahabr.ru/post/282782/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] SpamFireWall — запрет доступа к сайту для спам ботов
habra.16
habrabot(difrex,1) — All
2016-06-01 16:30:03


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

Сейчас мы расскажем о новой опции в антиспам-плагинах для [CleanTalk][1], которая позволяет эффективно отражать атаки спамботов на ваш сайт. Опция получила название SpamFireWall(SFW), она блокирует POST- и GET-запросы от наиболее активных спамботов и не дает им загружать сервер.
[Читать дальше →][2]

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

[>] [Из песочницы] Разработка класса для работы с цепями Маркова
habra.16
habrabot(difrex,1) — All
2016-06-01 19:30:03


Сегодня я хотел бы поведать вам о написании класса для упрощения работы с цепями Маркова.

Прошу под кат.
[Читать дальше →][1]

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

[>] [Перевод] PHP 7.1: Грядущие изменения
habra.16
habrabot(difrex,1) — All
2016-06-01 19:30:03


![][1]

Ниже приведены основные изменения, привнесенные `PHP 7.1`. Для получения полного списка утвержденных и обсуждаемых на текущий момент изменений проверьте [официальный PHP RFC][2].

* Перехват нескольких типов исключений за раз
* Поддержка `Curl HTTP/2 server push`
* Области видимости для констант классов
* Возвращаемый тип `void`
* Единое поведение строковых функций
* [Поддержка строковых параметров в функции `list()` и новый синтаксис c `[]`][3]
* Выброс предупреждения при невалидных строках в арифметике
* Объявление устаревшим `mcrypt()` и его последующее удаление

### Перехват нескольких типов исключений за раз


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

try {
// to do something
} catch (MyException $e) {
// Handle this exception
} catch (AnotherException $e) {
// Handle this in the same way as MyException
} catch (Exception $e) {
// Handle this in a different way
}

В PHP 7.1, оба исключения, обрабатываемые в примере одинаково, можно поймать одновременно:
[Читать дальше →][4]

[1]: https://habrastorage.org/files/2d5/29c/574/2d529c57455848178de431ef64740b8a.png
[2]: https://wiki.php.net/rfc
[3]: https://dotdev.co/php-unanimously-approves-short-list-syntax-for-array-destructuring-887208b661af#.rc4cyx1c1
[4]: https://habrahabr.ru/post/302390/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Аккаунты пользователей Teamviewer взломаны
habra.16
habrabot(difrex,1) — All
2016-06-02 00:00:03


![][1]

**Tl;dr:** множество пользователей жалуются на то что их аккануты взломаны; сайт teamwiever.com не работал несколько часов из-за проблем с DNS.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/46b/145/154/46b1451545a746a7baf2b8dc695bc762.jpg
[2]: https://habrahabr.ru/post/302418/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Model-View в QML. Часть четвертая: C++-модели
habra.16
habrabot(difrex,1) — All
2016-06-02 12:00:02


Поскольку основное предназначение QML — это создание интерфейсов, то в соответствии с шаблоном MVC, на нем реализуются представление и контроль. Для реализации же модели, совершенно логично напрашивается C++. Здесь у нас будет гораздо меньше ограничений и мы сможем реализовать модель любой сложности. Кроме того, если значительная часть программы написана на C++ и данные поступают именно оттуда, то лучше всего там же поместить и модель.



От использования такой модели может отпугнуть кажущаяся сложность реализации. Я не стану спорить с тем, что C++ не самый простой язык. Он посложнее QML и требует больше осторожности, чтобы не выстрелить себе в ногу, это факт. Несмотря на это, на практике не все так уж и страшно.



Во-первых, не будем забывать, что мы пишем не на чистом С++, а с использованием Qt. Такие вещи как parent-child в QObject, implicit sharing для контейнеров, сигналы и слоты, QVariant и многое другое очень сильно упрощают и автоматизируют работу с памятью, чем избавляют разработчика от массы головной боли и повышают надежность. Иногда даже создается впечатление, что пишешь на динамическом языке программирования. Это же сокращает пропасть между QML и C++, делая переход между ними более-менее плавным.



Во-вторых, все модели QML в конечном итоге приводятся к этим самым C++-моделям, только мы получаем упрощенный вариант и не самое максимальное быстродействие. Если уже есть понимание, как работать с моделями на QML, то с C++-моделями будет справиться проще. Мы просто узнаем в процессе чуть больше низкоуровневой информации, заодно улучшится понимание, как все это работает.



В общем, освоить C++-модели очень даже стоит. В особенности это касается QAbstractItemModel, с которой мы и начнем.



Model-View в QML:


* [Model-View в QML. Часть нулевая, вводная][1]
* [Model-View в QML. Часть первая: Представления на основе готовых компонентов][2]
* [Model-View в QML. Часть вторая: Кастомные представления][3]
* [Model-View в QML. Часть третья: Модели в QML и JavaScript][4]
* Model-View в QML. Часть четвертая: C++-модели[Читать дальше →][5]

[1]: http://habrahabr.ru/post/181712/
[2]: http://habrahabr.ru/post/184416/
[3]: http://habrahabr.ru/post/190090/
[4]: http://habrahabr.ru/post/195706/
[5]: https://habrahabr.ru/post/302428/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Deployer — удобный и гибкий деплой приложений
habra.16
habrabot(difrex,1) — All
2016-06-02 13:30:03


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



Deployer хорош во многих отношениях. Код скрипта для деплоя получается коротким. Написан на старом добром Пыхчанском, запакован в самоисполняемый бинарник — то бишь, ставить отдельно какие-то другие инструменты на сервер вам не придётся. Почему-бы и не заюзать его в своих проектах?

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

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

[>] Docker на службе команды .NET-разработчиков
habra.16
habrabot(difrex,1) — All
2016-06-02 13:30:03


[Docker][1] — инструмент автоматизации развертывания и управления приложениями в среде виртуализации на уровне операционной системы. Docker позволяет развертывать приложения в переносимых контейнерах и управлять такими контейнерами. Распространяется компанией Docker как свободное программное обеспечение.
Мы поговорили с Никитой Цукановым из компании  Promarket о том, в чем преимущества Docker и как его использовать для развертывания серверных приложений и управления ими.

[![][2]][3]

_**— В чём актуальность контейнерной виртуализации приложений, как она упрощает развертывание приложений и управление ими?**_

![][4] Корпоративные ИТ-команды очень часто сталкиваются с трудностями в развертывании приложений. Вполне «нормальна», к сожалению, ситуация, когда между разработчиками приложений и ИТ-администраторами отсутствует диалог, когда только один человек в компании знает, какие кнопки надо нажать, чтобы приложение развернулось, а администратор сам ничего сделать не может — потому что существует один-единственный человек, у которого есть сакральные знания о том, как нужно развертывать проект. Случается и такое, что нужно запустить, например, четыре разные версии (иногда почти одинаковые, но все же разные) на разных конфигурациях, на разных машинах, а потом это все поддерживать.

У меня довольно большой опыт подобных проектов, и я выделяю следующие основные проблемы с развертыванием приложений. Первая: очень длинная инструкция по развертыванию, очень сложный процесс развертывания, никто не понимает, что в каком порядке нужно развертывать. Вторая: одно приложение необходимо тиражировать для работы с разными клиентами. Третья: несколько серверных приложений должны работать на одном и том же сервере, и их окружение несовместимо между собой, к примеру, вы решили использовать у себя Linq2Excel, но он требует установки Access Database Engine, 32- и 64-битные версии которого не могут быть установлены одновременно.
[Читать дальше →][5]

[1]: https://www.docker.com/
[2]: https://habrastorage.org/files/a28/2eb/cc7/a282ebcc74cc4915a7e680237aeef74f.png
[3]: https://habrahabr.ru/company/jugru/blog/302254/
[4]: https://habrastorage.org/files/176/a54/ac5/176a54ac5ec34407a869f8879cddb8bf.png
[5]: https://habrahabr.ru/post/302254/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дайджест KolibriOS #12
habra.16
habrabot(difrex,1) — All
2016-06-02 14:30:03


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

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

[1]: https://habrastorage.org/getpro/habr/post_images/332/ac0/97c/332ac097cb7bfba245943a942c69f564.png
[2]: https://habrahabr.ru/post/302094/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Используем HTML и WebBrowser control в качестве UI для обычных windows-приложений на C#
habra.16
habrabot(difrex,1) — All
2016-06-02 14:30:03


Как известно, контрол WebBrowser это просто обертка над ActiveX компонентом Internet Explorer. Следовательно он предоставляет доступ к полноценному layout-движку со всеми современными плюшками. А раз так, то попробуем (сам не знаю правда зачем) на его основе сделать пользовательский интерфейс для обычного windows-приложения.

Можно, конечно, было бы запустить в этом же процессе мини веб-сервер (на HttpListener например) и ловить запросы через него, но это слишком просто, скучно и неспортивно. Попробуем обойтись без сетевых компонентов, just for fun.
[Читать дальше →][1]

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

[>] Динамический неоднородный плотно упакованный контейнер
habra.16
habrabot(difrex,1) — All
2016-06-02 15:00:03


**Определение 1**. _Однородный_ контейнер – это такой контейнер, в котором хранятся объекты строго одного типа.



**Определение 2**. _Неоднородный_ контейнер — это такой контейнер, в котором могут храниться объекты разного типа.



**Определение 3**. _Статический_ контейнер — это контейнер, состав которого полностью определяется на этапе компиляции.


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

**Определение 4**. _Динамический_ контейнер — это контейнер, состав которого частично или полностью определяется на этапе выполнения.



По такой классификации, очевидно, существуют четыре вида контейнеров:


1. Статические однородные
**Сможете придумать пример?**
Обычный массив — `int[n]`.

2. Статические неоднородные
**Примеры?**
Наиболее яркий пример такого контейнера — это кортеж. В языке C++ он реализуется классом `std::tuple`.

3. Динамические однородные
**Догадались?**
Правильно, `std::vector`.

4. Динамические неоднородные
Вот об этом виде контейнеров и пойдёт речь в данной статье.
[Читать дальше →][1]

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

[>] PHD VI: как у нас угнали дрона
habra.16
habrabot(difrex,1) — All
2016-06-02 21:00:02


[![][1]][2]

В этом году на [PHDays][3] был представлен новый конкурс, где любой желающий мог перехватить управление квадрокоптером Syma X5C. Производители часто полагают, что если они используют не IP-технологии, а какой-нибудь другой беспроводной стандарт, то можно не думать о защищенности. Как будто хакеры махнут рукой, решив, что разбираться с чем-то, кроме IP, — это слишком долго, сложно и дорого.

Но на самом деле, как мы уже много раз упоминали, SDR (software-defined radio) — отличный инструмент для доступа в мир IoT, где уровень вхождения определяется уровнем добросовестности производителя IoT-решений. Однако даже не имея SDR можно творить чудеса, пусть и в ограниченном пространстве частот и протоколов.

Цель — перехватить управление дроном.

Входные данные:

* диапазон управления дроном: 2,4 ГГц ISM,
* управление осуществляется модулем [nRF24L01+][4] (на самом деле — его клоном [BK2423][5]).
Средства (выдавались желающим): Arduino Nano, nRF24L01+.

Результат — угонщик получил Syma X8C в подарок.

Так как среди желающих угнать наш дрон оказались уже подготовленные люди, имеющие в арсенале HackRF, BladeRF и другие серьезные игрушки, мы опишем два метода — SDR и непосредственно nRF24L01+. [Читать дальше →][6]

[1]: https://habrastorage.org/files/69f/012/8be/69f0128be51549f9b59c97e5e171ab78.JPG
[2]: https://habrahabr.ru/company/pt/blog/302490/
[3]: http://www.phdays.ru/
[4]: https://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01P
[5]: http://www.inhaos.com/uploadfile/otherpic/BK2423 Datasheet v2.0.pdf
[6]: https://habrahabr.ru/post/302490/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Год с Runkeeper: Анализ и визуализация геоданных о ваших путешествиях
habra.16
habrabot(difrex,1) — All
2016-06-03 02:30:03


![][1]


_Перевод поста Bernat Espigulé-Pons "[A Year of Runkeeper: Analysis and Visualization][2]".
Код, приведенный в статье, можно скачать [здесь][3], а дополнительные файлы [здесь][4].
Выражаю огромную благодарность Кириллу Гузенко [KirillGuzenko][5] за помощь в переводе и подготовке публикации_
----
Почти год назад я решил записывать все свои передвижения с помощью [Runkeeper][6], и теперь хочу представить несколько вариантов визуализации моей годовой активности. Проект получается несложным: данные по своим передвижениям я буду подгружать из Runkeeper, а анализировать/визуализировать — в [Wolfram Language][7]. В этой анимации (см.ниже) показаны мои передвижения по Барселоне, и я покажу вам, как сделать такую же.

![][8]
[Читать дальше →][9]

[1]: https://habrastorage.org/files/8a0/b93/82d/8a0b9382dbaf47d49bed269625be6ec5.png
[2]: http://blog.wolfram.com/2015/12/04/a-year-of-runkeeper-analysis-and-visualization/
[3]: http://blog.wolfram.com/data/uploads/2015/12/A-Year-of-Runkeeper-Blog-Post.cdf
[4]: http://blog.wolfram.com/data/uploads/2015/12/runkeeper-data.zip
[5]: https://habrahabr.ru/users/kirillguzenko/
[6]: https://runkeeper.com/
[7]: https://www.wolfram.com/language/
[8]: https://habrastorage.org/getpro/habr/post_images/af1/3da/16a/af13da16afd29ec8a41929ce867d22ab.gif
[9]: https://habrahabr.ru/post/302462/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


![][1]
Архитектура процессоров Intel становится все более ориентированной на ГП, что открывает удивительные возможности для резкого повышения производительности просто за счет разгрузки обработки мультимедиа с ЦП на ГП. Существует немало инструментов, доступных разработчикам для повышения производительности мультимедиа приложений. В числе этих инструментов есть бесплатные и простые в использовании.
В этой публикации вы найдете:
* Обзор вычислительных архитектур и текущие возможности ГП Intel
* Реализацию аппаратного ускорения с помощью FFmpeg
* Реализацию аппаратного ускорения с помощью [Intel Media SDK][2] или аналогичного компонента [Intel Media Server Studio][3] (в зависимости от целевой платформы)[Читать дальше →][4]

[1]: https://habrastorage.org/files/09c/ad0/38b/09cad038b65745609fd5e2c508e0835c.jpg
[2]: https://software.intel.com/en-us/media-sdk
[3]: https://software.intel.com/en-us/intel-media-server-studio
[4]: https://habrahabr.ru/post/301698/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] World of Tanks: от чего же зависит винрейт танков?
habra.16
habrabot(difrex,1) — All
2016-06-03 17:00:03


Сегодня мы поговорим об использовании Wargaming API, построим много графиков и проанализируем, от чего же зависит винрейт танков. Сразу хочу отметить, что я не гуру World of Tanks, и если я где-то ошибся, то напишите пожалуйста в комментариях.



![image][1]

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

[1]: https://habrastorage.org/files/ae1/f02/fbc/ae1f02fbc23f4c04acc5ed8c411e89ea.jpeg
[2]: https://habrahabr.ru/post/302536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Как использовать Python для «выпаса» ваших неструктурированных данных
habra.16
habrabot(difrex,1) — All
2016-06-03 17:30:03


Здравствуйте, уважаемые читатели.

В последнее время мы прорабатываем самые разные темы, связанные с языком Python, в том числе, проблемы извлечения и анализа данных. Например, нас заинтересовала книга [«Data Wrangling with Python: Tips and Tools to Make Your Life Easier»][1]:

![][2]

Поэтому если вы еще не знаете, что такое скрепинг, извлечение неструктурированных данных, и как привести хаос в порядок, предлагаем почитать перевод интересной статьи Пита Тамисина (Pete Tamisin), рассказывающего, как это делается на Python. Поскольку статья открывает целую серию постов автора, а мы решили пока ограничиться только ею, текст немного сокращен.

Если кто-то сам мечтает подготовить и издать книгу на эту тему — пишите, обсудим.
[Читать дальше →][3]

[1]: http://www.amazon.com/Data-Wrangling-Python-Tools-Easier/dp/1491948817/
[2]: https://habrastorage.org/files/8f2/46d/392/8f246d3921444ac083f8f5e47e0a0ac1.jpg
[3]: https://habrahabr.ru/post/302520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Device Lab от Google: Android TV
habra.16
habrabot(difrex,1) — All
2016-06-03 20:00:03


Мы в самом центре [Device Lab от Google][1], в которой вы сможете взять на тест самые новые устройства компании и начать разрабатывать свои приложения для них. В[прошлый раз][2] мы рассмотрели устройства Chromecast - аудиоверсию и большой Chromecast. Мы показали, как встраивать их поддержку в свои приложения, а сегодня речь пойдет уже о "большой" Android-платформе Google - Android TV.  [Читать далее][3]

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

[>] Security Week 22: Microsoft против паролей, судебные неувязки с Tor, криптолокер атакует клиентов Amazon
habra.16
habrabot(difrex,1) — All
2016-06-03 20:00:03


![][1]Google хоронит пароли, а Microsoft — нет. Напомню, в предыдущем выпуске я [рассказал][2] про светлое будущее в виде проекта Google Abacus — спорную, но весьма прогрессивную систему идентификации пользователя по его поведению (aka _я помню все твои трещинки_). Почти одновременно к беседе о паролях присоединилась компания Microsoft, но выступила ([новость][3]), скажем так, с позиций традиционализма и ортодоксальности. Конкретно, [пост][4] в блоге разработчиков Active Directory посвящен борьбе не со всеми паролями, а только с плохими.

Microsoft можно понять: она работает на рынке корпоративного ПО, а там инновации приживаются убийственно медленно _(мимо дрожащих истерзанных рук_; да что у меня сегодня такое с песенными ассоциациями?!). Очевидно, что с абакусом или без него, с паролями мы будем иметь дело еще долго. Так вот, по словам представителя Microsoft, типовые подходы к обеспечению стойкости паролей, такие как требования к длине пароля, наличию спецсимволов и регулярной замене — не работают. Более того, они упрощают задачу взлома: огражденные со всех сторон заборчиками политик, пользователи задают и обновляют свои пароли крайне предсказуемым образом. Если, например, поставить забор повыше (задать порог минимум в 10-15 символов), сотрудники начинают повторять одно и то же слово несколько раз подряд. Не ок.

Как многолетний офисный труженик Ворда, не могу не согласиться. Браво! Но не уверен, что предлагаемое компанией решение порадует меня именно как сотрудника. Microsoft работает с огромным количеством учетных записей в куче пользовательских и корпоративных сервисов, и решила использовать информацию о том, как эти записи пытаются взломать (10 миллионов атак в день!). В результате мы получаем функцию Dynamically Banned Passwords. Будучи внедренной в корпоративном окружении, эта фича не позволит сотруднику задать пароль, про который точно известно, что он (1) слаб и что (2) злодеи уже пытались (возможно успешно) взломать такой же (или похожий) пароль где-то еще.
[Читать дальше →][5]

[1]: https://habrastorage.org/files/c85/f57/f2e/c85f57f2eac84503ab388f045672e955.jpg
[2]: https://habrahabr.ru/company/kaspersky/blog/301932/
[3]: https://threatpost.ru/microsoft-moves-against-bad-passwords/16437/
[4]: https://blogs.technet.microsoft.com/ad/2016/05/24/another-117m-leaked-usernames-and-passwords-new-best-practices-azuread-and-msa-can-help/
[5]: https://habrahabr.ru/post/302548/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Укол на миллиард долларов: худшие кошмары банков
habra.16
habrabot(difrex,1) — All
2016-06-03 20:00:03


![][1]

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

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

А где есть большие деньги? [Читать дальше →][2]

[1]: https://habrastorage.org/files/4e7/bbe/791/4e7bbe79181f42f795329de47d129ebe.jpg
[2]: https://habrahabr.ru/post/302524/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Разработка Docker контейнеров с помощью системы многоцелевых сценариев Sparrow
habra.16
habrabot(difrex,1) — All
2016-06-03 20:00:03


В этой статье я хотел бы рассказать как можно создавать сценарии сборки имиджей для [Docker][1] контейнеров с помощью системы многоцелевых сценариев [Sparrow\*][2].


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

[1]: https://www.docker.com/
[2]: https://github.com/melezhik/sparrow
[3]: https://habrahabr.ru/post/302278/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Как настроить двухфакторную аутентификацию для логина и sudo
habra.16
habrabot(difrex,1) — All
2016-06-04 01:30:03


![][1]

Безопасность в моде, как это и должно быть. Мы живем в мире, где данные — невероятно ценная валюта, которую вы всегда рискуете потерять. Поэтому вы должны сделать все, чтобы убедиться, что то, что вы держите на серверах и десктопах — в безопасности. Для этого администраторы и пользователи создают невероятно сложные пароли, используют менеджеры паролей и т.д. Но что, если я вам скажу, что вы можете логиниться на ваши серверы и десктопы Linux за два шага, вместо одного? Вы можете это делать благодаря Google Authenticator. Более того, это невероятно легко настроить.

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

[1]: https://habrastorage.org/files/638/0ea/cdf/6380eacdf2c242c4bf9fde58fb009f1f.png
[2]: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
[3]: https://habrahabr.ru/post/302562/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Встраивание PyPy кода в приложения на C
habra.16
habrabot(difrex,1) — All
2016-06-05 13:30:03


![][1]
На конференции [PyGrunn 2016][2] я выступил с докладом о пакете Python _cffi_ и его использовании для встраивания PyPy кода в приложения на C.

С выходом _cffi 1.5.0_ и его последующим включением в PyPy 5, становится возможным встраивать PyPy код. Это делается путем компиляции кода Python в динамическую библиотеку, которая затем может быть использована в любом другом языке. В этой статье я покажу вам, как это делать.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/b1c/71c/b62/b1c71cb6299741fc9b60f3500f199c27.jpg
[2]: http://www.pygrunn.org/
[3]: https://habrahabr.ru/post/302050/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Взлом вконтакте: украдены данные 171 миллиона пользователей
habra.16
habrabot(difrex,1) — All
2016-06-06 12:00:03


![][1]

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

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

[1]: https://habrastorage.org/files/de0/d85/8a5/de0d858a5e734142873e2fed8369ae74.png
[2]: https://habrahabr.ru/post/302644/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Node-SPICE: Моделирование переходных процессов в электрической сети
habra.16
habrabot(difrex,1) — All
2016-06-06 13:00:04


Всем привет! Сегодня я хочу рассказать об одном своем проекте, который создавался как один из инструментов получения данных для диссертации, и так как на данный момент он свою основную задачу выполнил, я хочу пустить его в GPLv3-плавание — быть может, он будет полезен кому-то еще. Однако перед тем, как отдать швартовы, я решил воспользоваться профилировщиком Intel Vtune Implifier, чтобы убедиться в том, что мой пакет имитационного моделирования древовидной сети электроснабжения оптимально расходует вычислительные ресурсы компьютера.

[![][1]][2]

Под катом подробности про себя, про проект и про оптимизацию производительности (которую за полчаса удалось повысить более, чем в два раза)
[Читать дальше →][3]

[1]: https://habrastorage.org/files/df6/94a/6f5/df694a6f5ce9412cb1843c69a7dcaa89.jpg
[2]: https://habrahabr.ru/company/intel/blog/301684/
[3]: https://habrahabr.ru/post/301684/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Asus автоматически обновляет BIOS/UEFI по HTTP без верификации
habra.16
habrabot(difrex,1) — All
2016-06-06 14:00:03


![][1]

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

Вкратце: компьютеры с материнскими платами Asus [осуществляют запросы к удалённому серверу по HTTP][2] на регулярной основе. Причиной является программное обеспечение LiveUpdate, которое предустанавливается на компьютеры Asus. Оно отвечает за скачивание новых прошивок BIOS/UEFI и исполняемых файлов. Обновления поступают в архивах ZIP по чистому HTTP, распаковываются во временную папку, а исполняемый файл запускается от имени пользователя. Не происходит никакой верификации файлов или аутентификации при их загрузке, что позволяет провести MiTM-атаку и банальную эскалацию привилегий до `NT AUTHORITY\SYSTEM`.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/405/eef/c83/405eefc838af497193b1a48820436c9f.png
[2]: http://teletext.zaibatsutel.net/post/145370716258/deadupdate-or-how-i-learned-to-stop-worrying-and
[3]: https://habrahabr.ru/post/302660/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Docker meetup в Badoo
habra.16
habrabot(difrex,1) — All
2016-06-06 14:30:03


![][1]

У нас отличная новость! 18-го июня проводим Docker meetup.


#### **Программа**


**Антон Турецкий, Badoo

«Docker в Badoo: ПМЖ или временная регистрация»**

**Тезисы**:
— Реальная история из жизни о том, как мы внедряли Docker;
— Хочешь чтобы все коллеги узнавали тебя? Займись внедрением Docker в своей компании!;
— Собрать все шишки? Легко… или «Даунтайм, как неотъемлемая часть внедрения»;
— Будь сильным и смелым, если уверен в перспективах и необходимости своего внедрения;
— «Делать новое не ломая старого» – основная цель любого внедрения;
— Чекпоинт, как инструмент промежуточной оценки результатов;
— Как растут наши аппетиты или о новых инфраструктурных идеях;
— Мы сделали это, значит это вполне осуществимо;
— Самое сложное позади или какие приятные результаты вас ожидают, если все пошло правильно.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/a7d/024/231/a7d024231ca14c3da51a3e9b18821454.png
[2]: https://habrahabr.ru/post/302676/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Одновременное монтирование зашифрованных папок в Synology DSM
habra.16
habrabot(difrex,1) — All
2016-06-06 14:30:03


![][1]

Если у вас есть Synology и уровень вашей параноидальности >0, то наверняка вы используете зашифрованные папки. Основанная на encfs эта технология работает стабильно и не доставляет никаких неудобств. Кроме того случая, когда этих папок становиться 2-3, да еще каждая со своим паролем! Ведь по результатам исследований _британских ученых_, уровень параноидальности отдельного индивидума со временем только растет)
Соответственно, вводить 2-3 разных пароля после каждой, хотя и довольно редкой, перезагрузки устройства, начинает напрягать.
[Да, мне уже надоело вводить эти пароли!][2]

[1]: https://habrastorage.org/files/075/7b0/ca4/0757b0ca496c4fad8562c12fb1957b04.png
[2]: https://habrahabr.ru/post/302634/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] OAuth-авторизация в Mozilla Thunderbird: от зарождения до релиза
habra.16
habrabot(difrex,1) — All
2016-06-06 15:00:04


![][1]



Некоторое время назад мы рассказывали о том, [как в Mail.Ru реализован сбор почты с использованием протокола OAuth 2.0][2]. Мы продолжаем повышать безопасность почты и продвигать стандарт OAuth 2.0 в массы. И сегодня расскажем о том, как мы добавили OAuth-авторизацию в почтовый клиент Mozilla Thunderbird. На этом примере мы разберем процесс внесения новой фичи в продукт с открытым исходным кодом, от создания тикета до релиза. Если вы давно хотели сделать свой первый pull request, но не знали как, — читайте нашу историю.

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

[1]: https://habrastorage.org/files/4d3/cd5/26a/4d3cd526a9a3409895fab682dc247a13.jpg
[2]: https://habrahabr.ru/company/mailru/blog/264049/
[3]: https://habrahabr.ru/post/282319/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Фонтанные коды
habra.16
habrabot(difrex,1) — All
2016-06-06 15:00:04


Сегодня поговорим о [фонтанных кодах][1]. Их ещё называют «кодами нефиксированной скорости». Фонтанный код позволяет взять, например, какой-нибудь файл, и преобразовать его в практически неограниченное количество закодированных блоков. Имея некоторое подмножество этих блоков, можно восстановить исходный файл, при условии, что размер этого подмножества немного превышает размер файла. Другими словами, такой код позволяет создавать «фонтан» из кодируемых данных. Получатель может восстановить исходные данные, собрав достаточно «капель» из фонтана, при этом неважно – какие именно «капли» у него есть, и какие именно он пропустил.

[![][2]][3]
Замечательное свойство фонтанных кодов заключается в том, что их применение позволяет отправлять данные по ненадёжным каналам связи, например – через интернет, не полагаясь на знание уровня потери пакетов, и не требуя от получателя связываться с отправителем для восстановления недостающих фрагментов данных. Легко заметить, что подобные возможности окажутся весьма кстати во множестве ситуаций. Среди них, например, отправка информации по широковещательным каналам связи, как в системах передачи видео по запросу. К той же категории задач относится работа протокола Bittorrent и других подобных, когда фрагменты файла распространяются среди большого количества пиров.
[Читать дальше →][4]

[1]: http://en.wikipedia.org/wiki/Fountain_code
[2]: https://habrastorage.org/files/f94/cb2/99e/f94cb299e3594da6be19eedf0d602f19.jpg
[3]: https://habrahabr.ru/company/wunderfund/blog/302638/
[4]: https://habrahabr.ru/post/302638/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Опыт использования Liferay Portal в eСommerce
habra.16
habrabot(difrex,1) — All
2016-06-06 15:30:03


![][1]



Многие из нас уже не раз писали разного рода магазины. Но большие e-commerce проекты в быстро растущей и развивающейся компании разрабатывать приходится нечасто. К таким решениям предъявляются дополнительные требования, такие как конфигурируемость, адаптивность к изменениям, возможности встраивания в другие системы и прочее. Для написания такого решения компания Netcracker использовала Liferay Portal фреймворк. В итоге получили достаточно преимуществ, но и без проблем не обошлось.
[Подробнее под катом][2]

[1]: https://habrastorage.org/files/06e/a5b/738/06ea5b7388304b5bb31fe7bf9e0ba94f.jpg
[2]: https://habrahabr.ru/post/302538/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Подход игродела к созданию современных веб приложений
habra.16
habrabot(difrex,1) — All
2016-06-06 15:30:03


# Скучное вступление


Не так давно, мне довелось участвовать в разработке некоего программно-аппаратного комплекса для одной американской компании. Разрабатывал я бэкенд, немного фронтенд, сращивал устройства с облаком ([IoT][1] то бишь). Стек технологий был обозначен четко. Ни в право, ни в лево — enterprise, одним словом. В определенный момент меня перекинули в помощь на фронтенд POS (Point of Sale) веб приложения.


# Проблема. Становится интересней


Всё бы ничего, но веб приложение разрабатывалось для работы в 6 тыс. офисах по всей территории Америки (для начала). Где, как оказалось, с интернетом могут быть проблемы. Да да, в той самой, продвинутой Америке! Проблемы с покрытием не только проводного интернета, но и мобильной связью! Т.е. плохой интернет канал (часто, мобильный) — вполне себе обычная история для небольших американских городов.

А это же POS… Тут, понимаешь, клиенты стоят, надо инвойс быстро распечатать… Тормозов быть не должно! И livesearch… Были обсуждения, прикидки, в итоге — не стали грузить бэкенд запросами (трафик, опять же). Сошлись на том, что веб приложение должно по-максимуму подгружать данные и делать, тот же поиск, локально. Речь идет, конечно, о данных, размер которых позволяет это сделать.

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

[1]: https://en.wikipedia.org/wiki/Internet_of_Things
[2]: https://habrahabr.ru/post/302684/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Пишем свой канал-бот для Telegram как у Хабра на Python
habra.16
habrabot(difrex,1) — All
2016-06-06 16:00:04


Недавно ко мне обратился друг с просьбой написать бота, импортирующего новости из RSS-канала на сайте в Telegram-канал. Огромнейшим плюсом данного способа оповещения являются push-уведомления, которые приходят каждому подписанному пользователю на его устройство. Уже давно хотелось заняться чем-то подобным. Недолго думая, в качестве образца я выбрал канал Хабра [telegram.me/habr\_ru][1]. В качестве языка программирования был выбран Python.

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

[1]: http://telegram.me/habr_ru
[2]: https://habrahabr.ru/post/302688/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] На Amazon идёт война алгоритмов за позицию «лучшего» товара
habra.16
habrabot(difrex,1) — All
2016-06-06 17:00:04


![][1]
_В 2011 году два алгоритма, оставленные без присмотра, подняли цену книги до 23 миллионов долларов_

Amazon начал как книжный магазин в 1994 году, но к настоящему времени превратился в настоящего монстра интернет-торговли. На площадке продаётся что угодно. Самое удобное — там можно сравнить цены разных продавцов и выбрать наиболее подходящее предложение. Более того, алгоритм Amazon выполняет такое сравнение за нас и находит «оптимальное предложение» (“Buy Box”), остаётся только нажать кнопку «Добавить в корзину».

Никто не знает, как работает алгоритм Amazon: формула включает в себя не только цену, но и количество положительных отзывов, и что-то ещё. Проблема в том, что торговцы _активно манипулируют_ алгоритмом Amazon, чтобы попасть в заветный “Buy Box”. Причём задача торговца — не только попасть на оптимальную позицию, но и продать товар по максимально возможной цене, не теряя позицию. Наблюдать за битвой торговых ботов на Amazon с постоянными рывками цен весьма забавно: такое исследование провели специалисты из Северо-Восточного университета (США), [pdf][2].
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/932/04c/0a8/93204c0a820ed00f1306b4dc33c8cd19.png
[2]: http://www.ccs.neu.edu/home/cbw/pdf/amazon-www16.pdf
[3]: https://habrahabr.ru/post/302698/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проверяем исходный код 7-Zip с помощью PVS-Studio
habra.16
habrabot(difrex,1) — All
2016-06-06 17:30:03


Одной из программ, которая позволяет решить задачу сжатия данных, является популярный файловый архиватор 7-Zip, я и сам частенько его использую. Читатели давно обращались к нам с просьбой проверить код данного приложения. Что ж, пришло время заглянуть в его исходники и посмотреть, что интересного сможет найти PVS-Studio.

![][1]

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

[1]: https://habrastorage.org/files/feb/328/b1f/feb328b1f6984c91b71b711b481a9c9d.png
[2]: https://habrahabr.ru/post/302708/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Установка связки Carbon + Graphite + Grafana + Nginx + MySQL для сбора и отображения метрик в Ubuntu
habra.16
habrabot(difrex,1) — All
2016-06-06 21:00:03


Хочу поделиться опытом установки и настройки сервиса для сбора и отображения метрик `Graphite` + `Grafana`.
Искал долго, читал много, нашёл 2 статьи на английском, добавил своё, в итоге получилась данная статья.



Немного предыстории..



`Graphite` — система для отображения метрик (числовых значений) для любых свойств сервера или домашнего ПК.



`Carbon` — демон/бэкенд, в который пишутся метрики.



`Grafana` — более красивая и удобная Web-морда для `Graphite`.



И так, приступим.

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

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

[>] Коммуникации в программировании — во сне и наяву
habra.16
habrabot(difrex,1) — All
2016-06-07 09:30:04


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

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

[1]: https://ru.wikipedia.org/wiki/%D0%92%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D0%BD%D1%81%D0%BA%D0%B0%D1%8F_%D0%B1%D0%B0%D1%88%D0%BD%D1%8F
[2]: https://habrastorage.org/files/f8d/5db/63f/f8d5db63f68b4187864b731e3a64df9a.jpg
[3]: https://habrahabr.ru/post/302704/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О трехмерном Z-order замолвите слово
habra.16
habrabot(difrex,1) — All
2016-06-07 11:30:03


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

Вы спросите: «Кому вообще интересны эти небесные объекты?» и даже: «Ну и при чём здесь 2ГИС?» и будете отчасти правы. Ведь методы пространственного индексирования являются универсальной ценностью.

Обычно, имея дело с геоданными, мы работаем с локальной проекцией на плоскость и тем самым отмахиваемся от искажений. В масштабах планеты это сделать труднее — начинают выпирать астрономические проблемы.
Что касается объёмов данных, уже сейчас в OSM более 4 млрд точек и 300 млн дорог. Это соизмеримо с масштабами, характерными для звёздных объектов. Да и помимо всего прочего, звёздные атласы — отличный стенд для разработки и отладки пространственных алгоритмов.

Обещанные тонкости и выводы под катом.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/87d/9d8/410/87d9d8410fee4c34ab060ffbb051cc35.png
[2]: http://skyview.gsfc.nasa.gov/xaminblog/index.php/tag/pgsphere/
[3]: https://habrahabr.ru/post/302606/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дайджест интересных событий из мира Java, и вокруг нее #3 (23.05.2016 — 05.06.2016)
habra.16
habrabot(difrex,1) — All
2016-06-07 12:30:04


![image][1]


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


— В битве **Google vs Oracle** поставлена жирная точка с запятой
— Вброс: **checked exceptions** не нужны, доказано!
— Учимся писать на ассемблере в Java-коде
… и многое другое
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/034/cfc/77a/034cfc77ac5e0b7e373cd5980dace4a6.jpg
[2]: https://habrahabr.ru/post/302734/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Humane VimScript: Инициализация редактора
habra.16
habrabot(difrex,1) — All
2016-06-07 12:30:04


# Введение



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



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



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

[Инициализировать][1]

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

[>] Client-side Linq to NHibernate
habra.16
habrabot(difrex,1) — All
2016-06-07 12:30:04


Практически любой .NET разработчик так или иначе использует в своей практике технологию Linq. Linq позволяет писать красивый и лаконичный код для получения объектов из источника данных с возможностью определения критериев получения и/или трансформации запрошенных объектов «на лету». Поддержка Linq присутствует практически во всех популярных ORM-фреймворках, в том числе и в NHibernate. NHibernate предоставляет Linq-провайдер, с помощью которого мы можем написать запрос на этапе разработки (Design-Time), но для того, чтобы составить запрос в runtime, придется повозиться с Reflection. Однако, если возникнет потребность в формировании запроса во внешнем процессе, например, в клиентской части сервиса, то в таком случае Reflection уже не спасет, клиентская часть, как правило, не знает (и не должна ничего знать) про серверный ORM.
Ниже мы разберем как создать API для написания Linq запросов к NHibernate в ситуации, когда запрос пишется в одном процессе, а выполняется в другом. Также, реализуем собственный IQueryProvider, который будет транслировать запросы из приложения-источника в исполняющее приложение.
[Читать дальше →][1]

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

[>] xfcRS — оригинальный лаконичный шустрый рендер сглаженных тайлов, «expansion fast cell — Rounded Squares»
habra.16
habrabot(difrex,1) — All
2016-06-07 12:30:04


![image][1]

xfcRS — многофункциональный быстрый алгоритм, для тайлового рендера с гладкими переходами / для построения изоповерхности / для выделения края в растре / для постпроцессинга как пиксельный шейдер — для пиксельарт масштабирования 8х8 (для быстрой растеризации шрифтов, иной материал для upscale'инга без доработок не рекомендуется). Расшифровка акронима — «eXpansion Fast Cell — Rounded Squares»

В данной статье мы будем рассматривать его преимущественно в контексте рендера сглаженных тайлов:

Забегая вперед, скажу сразу: это не улучшенный Marshing Squares, [Читать дальше →][2]

[1]: https://habrastorage.org/files/627/974/807/6279748079044210bee89f87a9f6afd9.jpg
[2]: https://habrahabr.ru/post/302756/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обзор вариантов организации доступа к сервисам корпоративной сети из Интернет
habra.16
habrabot(difrex,1) — All
2016-06-07 12:30:04


[![][1]][2]
_© Кившенко Алексей, 1880_

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

[1]: https://habrastorage.org/files/247/b0a/41f/247b0a41fdf043b4ad25bf8987bb3987.jpg
[2]: https://habrahabr.ru/post/302068/
[3]: https://habrahabr.ru/post/302068/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


Если вы следите за этим блогом, то помните, что в последнее время я пишу (и [говорю][1]) о CDI ([Contexts and Dependency Injection][2]). У CDI много аспектов, но до сих пор я акцентировал внимание на том, как [начать работу с CDI][3] в вашем окружении и как [интегрировать CDI в существующее Java EE 6 приложение][4], а затем сфокусировался на внедрении зависимостей в CDI. Это уже третий пост про внедрение в CDI: в [первом][5] я рассказывал о внедрении по умолчанию и спецификаторах, во [второй][6] о всех возможных точках внедрения (поле, конструктор, сеттер). В этом посте я расскажу о **продюсерах** или "_как вы можете [типобезопасным][7] способом внедрять что угодно и куда угодно_".



![COFFEE_BEANS][8]

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

[1]: https://antoniogoncalves.org/2011/05/23/to-inject-or-not-to-inject-cdi-is-the-question/
[2]: http://jcp.org/en/jsr/summary?id=299
[3]: https://antoniogoncalves.org/2011/01/12/bootstrapping-cdi-in-several-environments/
[4]: https://antoniogoncalves.org/2011/02/07/adding-cdi-to-an-existing-java-ee-6-application/
[5]: https://habrahabr.ru/company/at_consulting/blog/301636/
[6]: https://habrahabr.ru/company/at_consulting/blog/301768/
[7]: https://ru.wikipedia.org/wiki/%D0%A2%D0%B8%D0%BF%D0%BE%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C
[8]: https://habrastorage.org/files/cbb/352/f3f/cbb352f3f8f147c49314e29041a80278.jpg
[9]: https://habrahabr.ru/post/302010/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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