RSS
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 133
[>] [Перевод] Список ресурсов по машинному обучению. Часть 2
habra.16
habrabot(difrex,1) — All
2016-02-20 19:00:04


[][1] _Продолжим ([1][2], [2][3]) рассматривать тему машинного обучения. Вашему вниманию вторая часть (первая [тут][4]) адаптированной подборки полезных материалов._ [Читать дальше →][5]

[1]: http://habrahabr.ru/company/spbifmo/blog/277593/
[2]: https://habrahabr.ru/company/spbifmo/blog/271027/
[3]: https://habrahabr.ru/company/spbifmo/blog/276479/
[4]: https://habrahabr.ru/company/spbifmo/blog/277511/
[5]: https://habrahabr.ru/post/277593/#habracut

[>] Получаем данные по websocket используя swift и заполняем UITableView (сервер node.js)
habra.16
habrabot(difrex,1) — All
2016-02-21 01:00:03


Не нашел ни одного актуального гайда по работе с websocket в Xcode, вот мой опыт, надеюсь какому-то новичку поможет, и он не потратит столько времени в поисках как я. Для подключения по websocket мы будем использовать SocketIOClientSwift Скачать можно [тут][1]. Установка там тоже в принципе описывается, но для тех кто совсем в танке расскажу, что есть простой способ, просто добавьте файлы из папки source в свой проект. В нашем примере мы будем получать тикеты из системы технической поддержки которая работает на node.js [Читать дальше →][2]

[1]: https://github.com/socketio/socket.io-client-swift
[2]: https://habrahabr.ru/post/277635/#habracut

[>] [Из песочницы] Реализация MODBUS RTU сервера с помощью интерфейсного модуля Fastwel и программного обеспечения CoDeSys
habra.16
habrabot(difrex,1) — All
2016-02-21 12:30:03


В данной статье рассмотрена интеграция программируемого логического контроллера CPM713 компании Fastwel, работающего на базе протокола MODBUS TCP, с панелью оператора Weintek, поддерживающей последовательный вариант протокола MODBUS RTU/ASCII, с помощью интерфейсного модуля NIM742 и готовой библиотеки адаптированной среды CoDeSys для Fastwel. Промышленные протоколы на базе сетей Ethernet приобретают все большую популярность. Использование данной технологии в промышленных системах имеет преимущества, например, возможность гибкой модернизации и масштабирования системы, простоту построения архитектуры и невысокую стоимость создания сетей [1]. Однако внедрение новых технологий в область АСУ ТП происходит достаточно медленно, поэтому до сих пор многими устройствами используются традиционные промышленные сети на базе последовательных шин. При создании автоматизированных систем нередко требуется наладить обмен данными между устройствами, поддерживающими различные протоколы обмена данными или различные модификации одного и того же протокола. Так, контроллер CPM713 компании Fastwel использует для передачи данных протокол MODBUS TCP на базе сетей Ethernet [2]. При работе с данным контроллером возникла задача передавать и получать данные с панели оператора MT6100i компании Weintek, поддерживающей последовательный протокол MODBUS RTU/ASCII (рис. 1). ![][1] _Рисунок 1. Интеграция контроллера Fastwel I/O с операторской панелью Weintek_ Использование бесшовной интеграции всегда является более приоритетным, чем использование сторонних шлюзов. Поэтому для решения данной задачи был взят интерфейсный модуль NIM742 компании Fastwel, позволяющий подключать устройства с интерфейсом RS-232C и работать с ними через пользовательскую программу контроллера CPM713. Модуль NIM742 совместно с пользовательской программой контроллера CPM713 реализует работу подчиненного узла Modbus RTU. NIM742 подключается в общую линейку модулей и по шине FBUS обменивается данными с контроллером CPM713 (рис.2). Для обеспечения работы NIM742 с протоколом MODBUS RTU используется библиотека CoDeSys FastwelModbusServer.lib, входящая в пакет адаптации Fastwel. ![][2] _Рисунок 2. Контроллер CPM713 с подключенными модулями_ [Читать дальше →][3]

[1]: https://habrastorage.org/files/acd/9d5/61f/acd9d561f44742fd8ce33816274941ec.jpg
[2]: https://habrastorage.org/files/a62/151/211/a62151211c494e9594b009d754de0da5.jpg
[3]: https://habrahabr.ru/post/277639/#habracut

[>] Математика на пальцах: линейно-квадратичный регулятор
habra.16
habrabot(difrex,1) — All
2016-02-21 20:30:03




# Пара часов из жизни математика-программиста или читаем википедию

Для начала в качестве эпиграфа [цитирую][1] [rocknrollnerd][2]:

> — Здравствуйте, меня зовут %username%, и втайне раскрываю суммы из сигма-нотации на листочке, чтобы понять, что там происходит.
>
>
>
> — Привет, %username%!
>
>

Итак, как я и говорил в своей прошлой статье, у меня есть студенты, которые **панически** боятся математики, но в качестве хобби ковыряются паяльником и сейчас хотят собрать тележку-сигвей. Собрать-то собрали, а вот держать равновесие она не хочет. Они думали использовать [ПИД-регулятор][3], да вот только не сумели подобрать коэффициенты, чтобы оно хорошо работало. Пришли ко мне за советом. А я ни бум-бум вообще в теории управления, никогда и близко не подходил. Но зато когда-то на хабре я видел [статью][4], которая говорила про то, что линейно-квадратичный регулятор помог автору, а пид не помог. Если ПИД я ещё себе худо-бедно на пальцах представляю ([вот моя статья][5], которую с какого-то перепугу перенесли на гиктаймс), то про другие способы управления я даже и не слышал толком. Итак, моя задача — это представить себе (и объяснить студентам, а заодно и вам), что такое линейно-квадратичный регулятор. Пока что работы с железом не будет, я просто покажу, как я работаю с литературой, ведь именно это и составляет львиную долю моей работы. Раз уж пошёл эксгибиционизм про мою работу, то вот вам моё рабочее место (кликабельно): [![][6]][7][![][8]][9] [Математика для программистов!][10]

[1]: https://habrahabr.ru/post/277275/#comment_8774641
[2]: https://habrahabr.ru/users/rocknrollnerd/
[3]: https://ru.wikipedia.org/wiki/%D0%9F%D0%98%D0%94-%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80
[4]: https://habrahabr.ru/post/220989/
[5]: https://geektimes.ru/post/255598/
[6]: https://habrastorage.org/getpro/habr/post_images/ee8/3aa/1c9/ee83aa1c90a86a6a0ecc672c4af5d1de.jpg
[7]: https://hsto.org/files/68e/c8f/5d1/68ec8f5d11b1401ebde13c7e767dff39.jpg
[8]: https://habrastorage.org/getpro/habr/post_images/eb8/b66/71b/eb8b6671bc0fc4cda673e207071553ea.jpg
[9]: https://hsto.org/files/087/df6/2a0/087df62a041a40499f4f6447da33ab1c.jpg
[10]: https://habrahabr.ru/post/277671/#habracut

[>] Пишем shell скрипты на Python и можно ли заменить им Bash
habra.16
habrabot(difrex,1) — All
2016-02-21 20:30:03


В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

if [ $# -ne "$ARGCOUNT" ]
then
echo "Usage: `basename $0` filename"
exit $E_WRONGARGS
fi

Элементарно правда? Интуитивно понятный синтаксис. :) Тем не менее в python эти конструкции намного проще. Каждый раз когда я пишу что то на баше, то непременно лезу в поисковик чтобы вспомнить как писать простой if, switch или что-то еще. Присвоение я уже запомнил. :) В Python все иначе. Я хоть и не пишу на нем круглые сутки, но никогда не приходилось лезть и смотреть как там сделать простой цикл, потому что синтаксис языка простой и интуитивный. Плюс ко всему он намного ближе к остальным мейнстримовым языкам типа java или c++, чем Bash/Sh. Также в стандартной и прочих библиотеках Python есть намного более удобные библиотеки чем консольные утилиты. Скажем, вы хотите распарсить json, xml, yaml. Знаете какой я недавно видел код в баше чтобы сделать это? Правильно:



И это был не мой код. Это был код баше/питоно нейтрального человека. То же самое с регексом, sed бесспорно удобная утилита, но как много людей помнит как правильно ее использовать? Ну кроме Lee E. McMahon, который ее создал. Да впринципе многие помнят, даже я помню как делать простые вещи. Но, на мой взгляд, в Python модуль re намного удобнее. В этой небольшой статье я хотел бы представить вам диалект Python который называется [shellpy][1] и служит для того, чтобы насколько это возможно заменить Bash на python в скриптах. Велкам под кат. [Читать дальше →][2]

[1]: https://github.com/lamerman/shellpy
[2]: https://habrahabr.ru/post/277679/#habracut

[>] C++ SDK для Amazon Web Services
habra.16
habrabot(difrex,1) — All
2016-02-22 15:00:03


![][1] Под конец прошлого года компания Amazon выпустила (наконец-то!) [C++ SDK][2] для своей платформы AWS. Непонятно, почему так долго тянули — есть масса приложений, написанных на С++, из которых давно хотелось удобно пользоваться AWS. Не джавой же единой, в самом деле. Всегда интересно посмотреть на что-то, написанное на С++ в наши дни с нуля, без груза обратной совместимости и странных архитектурных решений, присущих некоторым разработкам прошлого. Я не буду тут пересказывать документацию, но остановлюсь на ключевых моментах, определяющих всё поведение SDK. [Читать дальше →][3]

[1]: https://habrastorage.org/files/609/2e8/ab6/6092e8ab6c5f4375a35c8910fe670126.png
[2]: https://aws.amazon.com/blogs/aws/introducing-the-aws-sdk-for-c/
[3]: https://habrahabr.ru/post/277711/#habracut

[>] [recovery mode] D std.ndslice как замена Python Numpy
habra.16
habrabot(difrex,1) — All
2016-02-22 17:00:02


Предисловие: [Я пишу][1] на Python более 6 лет и могу назвать себя профессионалом в этом языке. Недавно я даже написал о нем [книгу][2]. Однако последние 8 месяцев я переключился на D и уже 4 месяца активно участвую в разработке этого языка по части расширения стандартной библиотеки Phobos. Так же я участвовал в код-ревью модуля std.ndslice о котором и пойдет речь. std.ndslice так же как и Numpy предназначен для работы с многомерными массивами. Однако в отличие от Numpy ndslice имет крайне низкий оверхэд так как базируется на ranges (диапазонах), которые используются в штатной библиотеке повсеместно. Ranges позволяют избежать лишние процедуры копирования, а так же позволяют красиво организовать ленивые вычисления. В этой статье мне хотелось бы рассказать о том какие преимущества std.ndslice дает по сравнению с Numpy. [Читать дальше →][3]

[1]: http://jackstouffer.com/blog/nd_slice.html
[2]: https://www.packtpub.com/web-development/mastering-flask
[3]: https://habrahabr.ru/post/277715/#habracut

[>] Ленивый список в C++
habra.16
habrabot(difrex,1) — All
2016-02-23 01:30:02


![][1] В Scala есть интересная коллекция — Stream. Контейнер, который представляет собой список, элементы которого вычисляются (и сохраняются после этого) при первом обращении:

> The class Stream implements lazy lists where elements are only evaluated when they are needed.

Мне захотелось реализовать нечто подобное на C++. [Что из этого получилось...][2]

[1]: https://habrastorage.org/files/05b/f52/ba9/05bf52ba931046cfade822f59a25b399.png
[2]: https://habrahabr.ru/post/277737/#habracut

[>] Что нам стоит LVM построить (принцип работы, производительность, Thin Provision)
habra.16
habrabot(difrex,1) — All
2016-02-23 09:00:02


Не смотря на наличие нескольких статей на Хабре, про LVM2 и производительность Thin Provisioning, решил провести своё исследование, так как имеющиеся показались мне поверхностными. Кому интересно, добро пожаловать под кат. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/277663/#habracut

[>] [Перевод] 10 привычек довольного node.js разработчика
habra.16
habrabot(difrex,1) — All
2016-02-23 13:00:02


![][1] К концу 2015 года в распоряжении JavaScript разработчиков образовалось огромное количество инструментов. В этой экосистеме легко потеряться, поэтому успешные команды следуют выработанным правилам, которые позволяют не терять время и сохранять здоровье проектов. Под катом перевод статьи 2016 года от команды Heroku, в которой они рассказывают о десяти привычках веб разработчиков, у которых все работает и ничего не болит. Скорее всего 80% написанного вы уже знаете – тем интереснее вам будет прочитать об оставшихся двух приемах! [Читать дальше →][2]

[1]: https://habrastorage.org/files/60a/be8/79f/60abe879f6964c48bcc68fc7e88bde3a.png
[2]: https://habrahabr.ru/post/277707/#habracut

[>] Как наши технари в армии служили
habra.16
habrabot(difrex,1) — All
2016-02-23 14:00:02


![image][1] У нас в команде кто-то ходил в аспирантуру, кто-то на военную кафедру, кому-то служить не позволили здоровье или другие обстоятельства. Короче, служили трое. Что интересно, все трое вместо обычных армейских баек и страшилок рассказывают, как служба помогла им прокачать айтишные и околоайтишные навыки. Верстальщик, например, научился чинить технику. Сисадмин стал стрессо- и отказоустойчив. А джуниор понял, что по жизни хочет заниматься веб-разработкой.

### “У вас неправильные полигоны на танках”, или судьба верстальщика

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

[1]: https://habrastorage.org/files/fd3/e19/295/fd3e19295675405a8d3c47ae15addcd6.jpg
[2]: https://habrahabr.ru/post/277751/#habracut

[>] Идеальный UI фреймворк
habra.16
habrabot(difrex,1) — All
2016-02-23 14:30:04


Здравствуйте, меня зовут Дмитрий Карловский, и я… архитектор множества широко известных в узких кругах фреймворков. Меня никогда не устраивала необходимость из раза в раз решать одни и те же проблемы, поэтому я всегда стараюсь решать их в корне. Но прежде, чем их решить, нужно их обнаружить и осознать, что довольно сложно находясь в плену привычек, паттернов, стереотипов и "готовых" решений. Каждый раз сталкиваясь с проблемами в реализации задачи, я задумываюсь "что, блин, не так с этим инструментом?" и, конечно же, иду пилить свой инструмент: функцию, модуль, библиотеку, фреймворк, язык программирования, архитектуру ЭВМ… стоп, до последнего я ещё не докатился. Речь сегодня пойдёт о JS-фреймворках. Нет, я не буду рассказывать про очередное готовое решение, не в том цель поста. Я лишь хочу посеять в ваших головах несколько простых идей, которые вы не встретите в документации ни к одному популярному фреймворку. А в конце мы постараемся сформировать видение идеальной архитектуры построения пользовательского интерфейса. ![Взгляд под другим углом][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/412/6f0/552/4126f0552463415890915640255a9d51.jpg
[2]: https://habrahabr.ru/post/276747/#habracut

[>] Zabbix 3.0: Шифрование
habra.16
habrabot(difrex,1) — All
2016-02-23 18:30:03


Продолжаем обзор новых возможностей 3.0, мы уже успели [обзорно рассказать][1] о возможностях новой версии, отдельно остановились на [возможности прогнозирования проблем][2] на основе собранной статистики, а сегодня расскажем о шифровании. [Шифрование ][3]было одним из самых давних и ожидаемых нововведений в Zabbix, и за это время успели обсудить несколько вариантов его реализации: от аутентификации по предварительному ключу PSK до полной поддержки TLS и Kerberos. Год назад было решено остановиться на TLS. ![][4] [Читать дальше →][5]

[1]: https://habrahabr.ru/company/zabbix/blog/277265/
[2]: https://habrahabr.ru/company/zabbix/blog/277473/
[3]: https://www.zabbix.com/documentation/3.0/ru/manual/encryption
[4]: https://habrastorage.org/files/d00/f25/de2/d00f25de25e6449a9b63c9ad47a1aba9.png
[5]: https://habrahabr.ru/post/277739/#habracut

[>] LLVM: компилятор своими руками. Введение
habra.16
habrabot(difrex,1) — All
2016-02-24 09:30:03


Представим себе, что в один прекрасный день вам пришла в голову идея процессора собственной, ни на что не похожей архитектуры, и вам очень захотелось эту идею реализовать «в железе». К счастью, в этом нет ничего невозможного. Немного верилога, и вот ваша идея реализована. Вам уже снятся прекрасные сны про то, как Intel разорилась, Microsoft спешно переписывает Windows под вашу архитектуру, а Linux-сообщество уже написало под ваш микропроцессор свежую версию системы с весьма нескучными обоями. Однако, для всего этого не хватает одной мелочи: компилятора! Да, я знаю, что многие не считают наличие компилятора чем-то важным, считая, что все должны программировать строго на ассемблере. Если вы тоже так считаете, я не буду с вами спорить, просто не читайте дальше. Если вы хотите, чтобы для вашей оригинальной архитектуры был доступен хотя бы язык С, прошу под кат. В статье будет рассматриваться применение инфраструктуры компиляторов LLVM для построения собственных решений на её основе. Область применения LLVM не ограничивается разработкой компиляторов для новых процессоров, инфраструктура компиляторов LLVM также может применяться для разработки компиляторов новых языков программирования, новых алгоритмов оптимизации и специфических инструментов статического анализа программного кода (поиск ошибок, сбор статистики и т.п.). Например, вы можете использовать какой-то стандартный процессор (например, ARM) в сочетании с специализированным сопроцессором (например, матричный FPU), в этом случае вам может понадобиться модифицировать существующий компилятор для ARM так, чтобы он мог генерировать код для вашего FPU. Также интересным применением LLVM может быть генерация исходных текстов на языке высокого уровня («перевод» с одного языка на другой). Например, можно написать генератор кода на Verilog по исходному коду на С. ![][1] КДПВ [Читать дальше →][2]

[1]: https://habrastorage.org/files/84e/79a/c13/84e79ac13efb48f19f490840a2339c27.jpeg
[2]: https://habrahabr.ru/post/277717/#habracut

[>] Metronome IM и Jappix: многофункциональный Jabber, без сложностей в настройке
habra.16
habrabot(difrex,1) — All
2016-02-24 12:30:03


![][1] Что если я расскажу вам как без особых усилий поднять свой собственный jabber-сервер со всеми новомодными фичами, такими как: архивация, синхронизация сообщений между клтентами, уведомления о прочтении, публичные чаты и многое другое… Так же поделюсь с вами замечательным Jabber-клиентом который не менее интересен, он поддерживает аудио и видео звонки, имеет неплохой интерфейс и работает прямо из браузера. То и другое вы получите абсолютно бесплатно, так-как и сервер и клиент лицензируются по свободнлй лицензии. Речь пойдет об **Metronome IM** и **Jappix**. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/d27/fd5/390/d27fd53901887adb98471de642665d58.png
[2]: https://habrahabr.ru/post/270207/#habracut

[>] [Перевод] Удобное преобразование перечислений (enum) в строковые в С++
habra.16
habrabot(difrex,1) — All
2016-02-24 13:30:03


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

enum State {Idle, Fidget, Walk, Scan, Attack};
enum Direction {North, South, East, West};


Гораздо удобнее, когда во время отладки в консоль выводится сообщение типа “`State: Fidget`” вместо “`State: 1`”. Также частенько бывает нужно сериализировать перечисления в JSON, YAML или иной формат, причём в виде строковых значений. Помимо того, что строковые воспринимать легче, чем числа, их применение в формате сериализации повышает устойчивость к изменениям численных значений констант перечислений. В идеале, `"Fidget"` должен ссылаться на `Fidget`, даже если объявлена новая константа, а `Fidget `имеет значение, отличное от 1. К сожалению, в С++ нет возможности легко конвертировать значения перечислений в строковые и обратно. Поэтому разработчики вынуждены прибегать к разным ухищрениям, которые требуют определённой поддержки: жёстко закодированным преобразованиям или к использованию неприглядного ограничительного синтаксиса, наподобие Х-макросов. Кто-то дополнительно использует средства сборки для автоматического преобразования. Естественно, это только усложняет процесс разработки. Ведь перечисления имеют свой собственный синтаксис и хранятся в собственных входных файлах, что не облегчает работу средств сборки в Makefile или файлах проекта. Однако средствами С++ можно гораздо проще решить задачу преобразования перечислений в строковые. [Читать дальше →][2]

[1]: https://habrastorage.org/files/78b/169/bb1/78b169bb1e7048bbbf902bbaad599a9b.png
[2]: https://habrahabr.ru/post/277757/#habracut

[>] [Перевод] Пишите код, который легко удалять, а не дополнять
habra.16
habrabot(difrex,1) — All
2016-02-24 14:00:04


«Всякая строка кода рождается без причины, продолжается в слабости и удаляется случайно», — [Жан-Поль Сартр][1] программирует на ANSI C. Каждая новая строка кода приносит с собой затраты в виде необходимости ее поддержки. Чтобы избежать подобных затрат на работу с большим количеством кода мы прибегаем к его повторному использованию. Недостаток применения этого метода заключается в том, что он начинает мешать нам, в случае если мы захотим что-либо поменять в будущем. Чем больше у вашего API пользователей, тем больше кода приходится переписывать для введения новых изменений. Верно и обратное: чем больше вы полагаетесь на сторонний API, тем больше проблем испытываете когда он изменяется. Упорядочивание взаимодействия и взаимосвязей разных частей кода является серьезной проблемой в больших системах. И по мере развития проекта, растет и масштаб этой проблемы. _Перевод статьи на русский язык подготовлен компанией [PayOnline][2], провайдером платежных решений для вашего онлайн-бизнеса._ [Читать дальше →][3]

[1]: http://cpsy.ru/cit1183.htm
[2]: http://payonline.ru/?utm_source=habrahabr&utm_medium=referral&utm_campaign=webpayments-main
[3]: https://habrahabr.ru/post/277629/#habracut

[>] [Из песочницы] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 20. «The Starlight Room»
habra.16
habrabot(difrex,1) — All
2016-02-24 15:00:03


![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТшном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция. _(Долгожданный перевод 20-й главы)_

#### Глава 20. «The Starlight Room»

_(за перевод спасибо Artem Nedrya aka Translation Designer )_ С потолка, прямо над роскошными диванами клуба «Starlight Room», владельцем которого был Гарри Дентон, свисали девять винтажных люстр; лучи стокилограммового зеркального шара бегали по поверхности танцплощадки. Огромные тёмно-красные шторы свисали по обе стороны широких панорамных окон, словно сценические занавеси, за которыми было видно огни небоскрёбов Сан-Франциско. Расположенный на двадцать первом этаже отеля «Sir Francis Drake», клуб «Starlight Room» был одним из самых дорогих ночных клубов этого города и неотъемлемой частью его бурной ночной жизни с интерьером в стиле 1930-х годов, отделанным тёмно-красной дамастовой тканью и шёлком ручной выделки. Скорее кричащему, чем стильному клубу, удавалось привлекать клиентов только благодаря регулярным тематическим вечерам. В ту среду клуб организовывал «Русскую вечеринку», поэтому кругом гремела музыка с Родины, а официанты в смокингах разливали водку столпившимся возле стойки бара посетителям. В женском туалете кто-то целовал Тсенгельтсетсег Тсетсендельгер. Уже успев выпить в тот вечер, молодая монгольская иммигрантка не помнила, как так случилось, или зачем, что длинноногая брюнетка захотела её поцеловать. Спустя мгновение глаза Тсенгельтсетсег округлились от удивления. Рядом стояла ещё одна брюнетка, точная копия первой. Мишель и Лиз представились, и на лице Тсенгельтсетсег появилась широкая, непритворная улыбка. Она сказала близняшкам Эскере, что они могут звать её просто «Ти», по первой букве её фамилии. Ти регулярно посещала русские вечеринки в этом клубе и без проблем изъяснялась на русском и английском. Родом из северной части Монголии, она ещё застала времена, когда страна находилась под влиянием Советского Союза. Русский она учила в школе до тех пор, пока Советская империя не распалась и монгольский премьер-министр не объявил английский язык вторым официальным языком — и это в стране, не имеющей выхода к морю… [Читать дальше →][4]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: https://habrahabr.ru/post/277811/#habracut

[>] Rogue AP — фальшивые точки доступа
habra.16
habrabot(difrex,1) — All
2016-02-24 22:30:03


![][1] Большинство современных устройств запоминают название Wi-Fi сети, к которой они успешно подключались хотя-бы один раз, и сразу же соединяются с ней, если «увидят» её в беспроводном эфире. Эту фичу беспроводных технологий всё чаще и чаще используют злоумышленники — создают т.н. rogue AP (поддельную точку доступа). Такие атаки с каждым годом становятся всё масштабнее, учитывая постоянно увеличивающийся рынок -устройств и количество критичной информации, содержащейся на них. [Читать дальше →][2]

[1]: https://habrastorage.org/files/62e/96f/dd9/62e96fdd93234a33a7b0ce60c5f325df.png
[2]: https://habrahabr.ru/post/277793/#habracut

[>] Онлайн-конференция на Ярмарке вакансий для ИТшников
habra.16
habrabot(difrex,1) — All
2016-02-25 12:30:04


![][1] Сегодня, 25-го февраля, HeadHunter устраивает [«Ярмарку вакансий онлайн» специально для IT-специалистов][2]. Программа получилась обширная: кроме вакансий с онлайн-собеседованиями, мы подготовили для вебинары, которые покрывают разные сферы из ИТшной и софтверной области. Сегодня нон-стоп один за другим пройдут 9 вебинаров. Специально для “Хабра” я попросил авторов вебинаров рассказать о своих темах, подробности под катом. [Читать дальше →][3]

[1]: https://habrastorage.org/files/775/b20/a37/775b20a375434331953661e14665b3b6.jpg
[2]: http://expo.hh.ru/?utm_source=habr&utm_medium=habr&utm_content=text&utm_campaign=soisk
[3]: https://habrahabr.ru/post/277851/#habracut

[>] [Из песочницы] Решаем задачу Hackerrank — «Encryption» (используя Go)
habra.16
habrabot(difrex,1) — All
2016-02-25 13:30:03


_Предлагаю вашему вниманию перевод статьи [Cracking Hackerrank Encryption][1] с сайта sobit.me._ Как любит говорить мой друг: "Лучший способ изучить язык программирования — начать писать на нем алгоритмы". Конечно, это не сделает никого экспертом языка, но есть большая вероятность встретить большинство структур данных и почувствовать мощь уникальных конструкций языка. Есть много хороших ресурсов для начинания, но я предпочитаю проводить свободное время на [Hackerrank][2]. Он бесплатный, имеет приятный интерфейс и солидный набор алгоритмических проблем, удобно разбитых на категории и уровни сложности. После решения каждой проблемы, зачастую часть с анализом решения уходит в ведро. И это навело меня на мысль записывать ход мыслей в форме статей в блоге. Всегда полезно посмотреть в прошлое и оценить, насколько хорош ты был. Поехали! Наша сегодняшняя задача — "Encryption" ([ссылка][3]). [Читать дальше →][4]

[1]: http://sobit.me/2016/02/18/cracking-hackerrank-encryption/
[2]: https://www.hackerrank.com/
[3]: https://www.hackerrank.com/challenges/encryption
[4]: https://habrahabr.ru/post/277865/#habracut

[>] [Из песочницы] Фоновое выполнение ячеек в IPython Notebook
habra.16
habrabot(difrex,1) — All
2016-02-25 15:00:04


Я много работаю с данными, поэтому практически все процессы у меня завязаны на Jupyter (IPython Notebook). Эта среда прекрасна и я её большой фанат. По сути, Jupyter — это обычная питоновая консоль и весь код там выполняется последовательно. Но иногда возникает желание запустить вычисления в ячейке и, не дожидаясь пока они закончатся, продолжить работу. Например, нужно скачать 1000 урлов и достать у них заголовки страниц. Хорошо бы запустить процесс скачивания и сразу начать отлаживать код для выделения заголовков. Это должно выглядеть примерно так: ![][1] Удивительно, но готового способа так сделать я не нашёл и хотел бы поделиться простым, но удобным вариантом решения. [Читать дальше →][2]

[1]: https://habrastorage.org/files/dee/963/bbd/dee963bbd3b347fa90c497f882571e39.gif
[2]: https://habrahabr.ru/post/277919/#habracut

[>] Zabbix 3.0: Интерфейс
habra.16
habrabot(difrex,1) — All
2016-02-25 17:30:03


Продолжаем серию мини-статей о нововведениях в Zabbix 3.0. Одним их самых значимых и ожидаемых изменений в новой версии стал переработанный интерфейс. Мы преследовали цель сделать интерфейс более легким, убрать все нагромождающие элементы, но при этом не отпугнуть наших пользователей, привыкших к старому внешнему виду Zabbix. Вообще возможно два подхода к решению этого вопроса: это радикальный редизайн или постепенное улучшение от релиза к релизу. И мы посчитали, что наилучший вариант — это нечто среднее, но с пониманием того, что хотят наши пользователи и как они используют Zabbix. Считаем, что такой подход позволит нам существенно улучшить качество визуальной части нашего продукта. ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/6cd/4d5/3a6/6cd4d53a61314466a2ab7a0f7f04818d.jpg
[2]: https://habrahabr.ru/post/277889/#habracut

[>] Как использовать IPP FIR фильтры в приложениях максимально эффективно
habra.16
habrabot(difrex,1) — All
2016-02-25 18:30:03


![][1]В библиотеке [ Intel Performance Primitives (IPP)][2], начиная с версии 8.2, планомерно осуществляется переход от внутреннего распараллеливания функций к внешнему. Причины такого решения изложены в статье [Функции IPP c поддержкой бордюров для обработки изображений в нескольких потоках][3]. В этом посте будут рассмотрены функции, реализующие фильтр с конечным откликом — FIR фильтр (Finite Impulse Response). [Читать дальше →][4]

[1]: https://habrastorage.org/files/cc8/1b7/19e/cc81b719e0874a83a70407f8fb0caf82.png
[2]: https://software.intel.com/en-us/intel-ipp
[3]: https://habrahabr.ru/company/intel/blog/255931
[4]: https://habrahabr.ru/post/276687/#habracut

[>] Как робот 3D сканирует
habra.16
habrabot(difrex,1) — All
2016-02-25 18:30:03


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

[1]: https://habrahabr.ru/post/277885/#habracut

[>] Собственный модуль settings
habra.16
habrabot(difrex,1) — All
2016-02-25 18:30:02




## Преамбула

Этот модуль родился в результате переосмысления (или недопонимания) мной вот этого пространного документа: [Splitting up the settings file][1], размещённого на официальном сайте Django.

## Постановка задачи

При старте веб-приложения на Django (как посредством запуска отладочного сервера, так и в качестве WSGI-приложения) фреймворк первым делом выполняет модуль, задающий начальные настройки проекта. Источник кода задаётся переменной окружения [DJANGO\_SETTINGS\_MODULE][2]. При создании Django-проекта стандартным способом, например:

$ django-admin startproject myproject


создаётся и модуль настроек. Это файл ‘myproject/myproject/settings.py’. Изменяя и дополняя его, программист настраивает проект, добавляет в него собственные и сторонние компоненты и т. д. В простых проектах, разрабатываемых одним бэкенд-программистом, бывает вполне разумно ограничиться таким модулем настроек. Однако по мере роста проекта возникают следующие [проблемы...][3]

[1]: https://code.djangoproject.com/wiki/SplitSettings/
[2]: https://docs.djangoproject.com/en/1.8/topics/settings/#envvar-DJANGO_SETTINGS_MODULE
[3]: https://habrahabr.ru/post/277937/#habracut

[>] Конкурс студенческих работ по теоретической информатике и дискретной математике им. Алана Тьюринга
habra.16
habrabot(difrex,1) — All
2016-02-25 18:30:03


![][1] Решили финансово поддержать студентов, которые занимаются теоретическими исследованиями, и организовали [конкурс][2] студенческих работ. **Цель конкурса:** поощрение авторов лучших студенческих научных работ по теоретической информатике и дискретной математике, стимулирование студентов к научной деятельности. **Организаторы конкурса**: [Санкт-Петербургский Академический университет][3], [ПОМИ РАН][4], [Computer Science Club][5]. **Участниками конкурса** могут стать студенты очной формы обучения (специалисты, бакалавры и магистры) любых российских и зарубежных вузов, имеющие этот статус на 1 апреля года проведения конкурса, свободно владеющие русским языком. На конкурс принимаются научные работы по теоретической информатике и дискретной математике, написанные на математическом уровне строгости на русском или английском языке. Не требуется, чтобы поданная на конкурс работа была опубликована. [Читать дальше →][6]

[1]: https://habrastorage.org/files/9f9/4df/100/9f94df100a944cf390dc4d523fbaf772.jpg
[2]: http://mit.spbau.ru/turingcontest
[3]: http://mit.spbau.ru
[4]: http://www.pdmi.ras.ru
[5]: http://compsciclub.ru
[6]: https://habrahabr.ru/post/277943/#habracut

[>] [Из песочницы] Использование библиотеки OpenSSL в проектах на C++
habra.16
habrabot(difrex,1) — All
2016-02-25 18:30:03


![image][1] В своем первом топике я постараюсь подробно объяснить как начать использовать библиотеку OpenSSL. Сразу хочу отметить, что статья ориентирована на новичков, а так как я сам один из них, исходный код выполнен без проверок и не претендует на звание лучшего. Все действия выполнялись под Windows со средой разработки Visual Studio 2013. [Читать дальше →][2]

[1]: https://habrastorage.org/files/3ba/831/494/3ba831494b1840d3803be1b5fa0b1b2c.jpg
[2]: https://habrahabr.ru/post/277935/#habracut

[>] Подпольный рынок кардеров. Перевод книги «KingPIN». Глава 30. «Максик»
habra.16
habrabot(difrex,1) — All
2016-02-25 18:30:03


Привет, Хабрачитатели! Спасибо вам за ваше терпение (когда продирались через корявости перевода, непоследовательность глав и несогласованность имен собственных), лайки и подсказки. (А переводчикам так вообще мегареспект, но об этом будет отдельный пост). У меня хорошая новость — появилась искорка надежды, что книгу издадут в бумаге («ИМФ») и с профессиональным переводом. Нужен ваш отклик (нужно/не нужно/дайте две/выкуплю весь тираж/книги надо жечь). В конце главы — опрос или напишите в личку.

----

![][1]Кевин Поулсен, редактор журнала WIRED, а в детстве blackhat хакер Dark Dante, написал книгу про «[одного своего знакомого][2]». В книге показывается путь от подростка-гика (но при этом качка), до матерого киберпахана, а так же некоторые методы работы спецслужб по поимке хакеров и кардеров. Квест по переводу книги начался летом в ИТишном лагере для старшеклассников — «[Шкворень: школьники переводят книгу про хакеров][3]», затем к переводу подключились и Хабраюзеры и даже немного редакция.

#### Глава 30. «Максик»

_(за перевод спасибо Игнату Ершову )_ Макс мог видеть, что происходило. С агентом ФБР у руля, DarkMarket шел к тому, чтобы упрятать многих кардеров за решетку. Но, как Кассандра из Греческой мифологии, он был проклят знать будущее, и чтобы никто ему не верил. Между статьей USA Today и его провалившейся попыткой разоблачить Master Splyntr, Макс чувствовал, как жара идет на него. В ноябре он заявил об уходе Iceman’а и устроил шоу с передачей сайта под контроль Th3C0rrupted0ne. Изолировал самого себя от общества пока обстановка не успокоилась и через три недели забрал доску объявлений обратно уже под другим псевдонимом. Iceman умер; да здравствует “Aphex.” Макс устал от тесного жилища в Post Street Towers, потому Крис перетащил Нэнси, одну из его обнальщиц, в Сан Франциско, чтобы снять для Макса однокомнатную в Archstone’овском возвышающемся комплексе корпоративных апартаментов Fox Plaza в деловом районе. Она была поставлена в качестве торгового представителя в Capital Solutions, корпорации напротив Aragon, используемой для отмывания части его прибыли. Ти, вернувшись из поездки в Монголию, получила задание быть в квартире и принять доставку кровати, оплаченной с ее легальной карты American Express. Крис позже рассчитался с ней. К январю 2007 Макс вернулся к делам в своем новом убежище с кучей WiFi, развернутых вокруг. Fox Plaza был гигантским шагом к роскоши по сравнению с Post Street Towers, но Макс мог это себе позволить – он мог оплатить месячную ренту всего после пары успешных дней торговли дампами. Как и Digits, Макс теперь был признан некоторыми кардерами как второй наиболее успешный продавец магнитных полос в мире. Первое место в списке было прочно занято украинцем, известным как Maksik. Maksik работал вне кардерских форумов, запустив свой собственный вебмагазин краденых карт на Maksik.cc. Покупатели сначала отправили бы Maksik предоплату через egold, WebMoney, почтовым переводом или через Western Union. Таким образом, они купили бы доступ к его вебсайту, где они могли уже выбирать дампы, которые хотели по BIN’у и типу карты и месту оформления. Со своей стороны Maksik нажал бы кнопку, чтобы подтвердить транзакцию, и покупатель получил бы электронное письмо с дампами, которые он заказал, прямо из Maksik’овской огромной базы данных похищенных карт. [Читать дальше →][4]

[1]: https://habrastorage.org/files/353/64b/a0e/35364ba0e409475fbd05cd11e8132734.jpg
[2]: https://en.wikipedia.org/wiki/Max_Butler
[3]: http://habrahabr.ru/post/261491/
[4]: https://habrahabr.ru/post/277939/#habracut

[>] Round-robin default gateway ломает маршрутизацию от источника для OpenVPN сервера
habra.16
habrabot(difrex,1) — All
2016-02-25 18:30:03


[![][1]][2] На Linux (Debian 8) роутере настроена маршрутизация от источника при помощи iproute2. Корректно маршрутизируются как FORWARD, так и INPUT\\OUTPUT пакеты. После включения round-robin default gateway стали возникать проблемы при подключении OpenVPN клиентов. Кейс довольно редкий, поэтому решил поделиться найденным решением с сообществом в виде данной заметки. [Читать дальше →][3]

[1]: https://habrastorage.org/files/d62/2c3/b66/d622c3b662184e1e9b930eb9ef360785.jpg
[2]: https://habrahabr.ru/post/277393/
[3]: https://habrahabr.ru/post/277393/#habracut

[>] Приглашаем на Data Fest 5 и 6 марта
habra.16
habrabot(difrex,1) — All
2016-02-25 23:00:03


![][1] 5 и 6 марта в московском офисе компании Mail.Ru Group состоится Data Fest — это конференция, на которой участникам представится возможность познакомиться с разными направлениями в современном анализе данных: от сугубо практических вопросов внедрения результатов исследований до самых последних теоретических разработок в анализе текстов и глубоком обучении. В рамках конференции также пройдут два мероприятия, где все участники смогут проявить себя: хакатон для желающих посоревноваться друг с другом в предсказании исхода турнира по Dota 2 и питч-постер сессия для исследователей, где можно будет представить результаты своих исследований и разработок. [Читать дальше →][2]

[1]: https://habrastorage.org/files/4e9/2e6/908/4e92e69084e14ae79c5f1548016dc436.png
[2]: https://habrahabr.ru/post/277967/#habracut

[>] Как я ошибся при написании хеш-таблицы и какие выводы из этого сделал
habra.16
habrabot(difrex,1) — All
2016-02-25 23:30:04




> Для ясности теоретического понимания нет лучшего пути, чем учиться на своих собственных ошибках, на собственном горьком опыте. (Фридрих Энгельс)

Всем привет! Несколько недель назад мне в линкедине написал коллега и сообщил, что в моем [проекте][1] на гитхабе не совсем верно работает хеш-таблица. Мне прислали тесты и фикс, и действительно создавалась ситуация, где система "зависала". При расследовании проблемы я понял, что допустил несколько ошибок при верификации. На Хабре тема верификации RTL-кода не слишком подробна расписана, поэтому я и решил написать статью. Из статьи вы узнаете:

* как можно организовать хеш-таблицу на FPGA.
* на чём была построена верификация.
* какие ошибки я допустил (они привели к тому, что бага не была замечена раньше).
* как это всё можно исправить.

Добро пожаловать под кат! [Читать дальше →][2]

[1]: https://github.com/johan92/fpga-hash-table
[2]: https://habrahabr.ru/post/277313/#habracut

[>] Тонкая настройка GNOME 3
habra.16
habrabot(difrex,1) — All
2016-02-26 10:00:03


В данной статье я опишу некоторые из настроек оболочки GNOME 3 и расширений для нее же, которые не очень то легко найти, а уж тем более найти все, да еще в одном месте и в таком количестве, а не в каких то разбросанных по всей сети в сообщениях на различных англоязычных форумах — анриал. Итак, мы установили \* c GNOME 3 на борту… Лично я первым делом меняю положение кнопок управления окном, потому как привык к отображению их слева, для этого вводим в терминал

> gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:'

сразу после нажатия return получаем ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/4ba/a85/b3b/4baa85b3bb3b43bbaec6ac3a8442376f.png
[2]: https://habrahabr.ru/post/277997/#habracut

[>] Программный интернет шлюз для уже не маленькой компании (Shorewall, QoS во всю ширь). Часть 3
habra.16
habrabot(difrex,1) — All
2016-02-26 11:30:02


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

* QoS во всю ширь в Shorewall
* Более подробная настройка Shorewall
* Раскидывание трафика по каналам в соответствии с протоколами
* Костыли, без них, никуда

А в [первой части][1] были рассмотрены:

* Простейшая настройка Shorewall
* Ужасно сложная настройка dnsmasq
* Не менее сложная настройка OpenVPN
* И для многих продолжающих админов нетипичная, динамическая маршрутизация, на примере OSPF

А во [второй][2]:

* Более подробная настройка Shorewall
* Страшный и не понятный QoS
* Балансировка нагрузки и резервирование

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

[1]: http://habrahabr.ru/post/274639/
[2]: http://habrahabr.ru/post/274677/
[3]: https://habrahabr.ru/post/277983/#habracut

[>] [Перевод] Segmentation Fault (распределение памяти компьютера)
habra.16
habrabot(difrex,1) — All
2016-02-26 13:00:03


![][1] Когда я делаю ошибку в коде, то обычно это приводит к появлению сообщения “segmentation fault”, зачастую сокращённого до “segfault”. И тут же мои коллеги и руководство приходят ко мне: «Ха! У нас тут для тебя есть segfault для исправления!» — «Ну да, виноват», — обычно отвечаю я. Но многие ли из вас знают, что на самом деле означает ошибка “segmentation fault”? Чтобы ответить на этот вопрос, нам нужно вернуться в далёкие 1960-е. Я хочу объяснить, как работает компьютер, а точнее — как в современных компьютерах осуществляется доступ к памяти. Это поможет понять, откуда же берётся это странное сообщение об ошибке. Вся представленная ниже информация — основы компьютерной архитектуры. И без нужды я не буду сильно углубляться в эту область. Также я буду применять всем известную терминологию, так что мой пост будет понятен всем, кто не совсем на «вы» с вычислительной техникой. Если же вы захотите изучить вопрос работы с памятью подробнее, то можете обратиться к многочисленной доступной литературе. А заодно не забудьте покопаться в исходном коде ядра какой-нибудь ОС, например, Linux. Я не буду излагать здесь историю вычислительной техники, некоторые вещи не будут освещаться, а некоторые сильно упрощены. [Читать дальше →][2]

[1]: https://habrastorage.org/files/225/4da/58f/2254da58f07d4d69b4733304c85989e2.jpg
[2]: https://habrahabr.ru/post/277759/#habracut

[>] Немного о 2FA: Двухфакторная аутентификация
habra.16
habrabot(difrex,1) — All
2016-02-26 13:30:04


[][1] _Cегодня мы решили обратить внимание на тему двухфакторной аутентификации и рассказать о том, как она работает._ [Читать дальше →][2]

[1]: https://habrahabr.ru/company/1cloud/blog/277901/
[2]: https://habrahabr.ru/post/277901/#habracut

[>] Платы для разработчиков и терминал на основе российского микропроцессора Байкал-Т
habra.16
habrabot(difrex,1) — All
2016-02-26 14:00:03


За последние три дня вышло несколько новостей про российский процессор Байкал-Т: 1. Российская компания «Т-Платформы» представила [процессорный модуль SF-BT1 с Байкалом-Т, который она собирается распостранять среди разработчиков][1]. 2. Также «Т-Платформы» выпустили на основе Байкала-Т [тонкий клиент «Таволга терминал», который может работать не только как терминал, но и как автономной компьютер с Linux Debian 8][2]. 3. Т-Платформы показывали и плату для разрабочиков, и терминал на основе Байкала-Т на выставке Embedded World в Нюренберге, в сотрудничестве с британской компанией Imagination Technologies, которая разработала микропроцессорное ядро MIPS P5600, которое использует Байкал-Т. Я не буду пересказывать все статьи про Байкал-Т, Т-Платформы и Таволгу. Те разрабочики, кто этим интересуется, могут сами сходить по ссылкам и посмотреть параметры плат. Я добавлю некоего информационного гарнира про процессор, его экосистему и историю. На фотографии ниже — ранние пользователи байкаловских плат. Это инженеры из России, Украины и Казахстана, которые участвуют в разработке микропроцессорного ядра MIPS P5600 и его сотфтверной экосистеме в отделении Imagination Technologies в Санта-Клара, Калифорния: Леонид Егошин (поддержка многоядерности в ядре Линукса), Сергей Вакуленко (симулятор для верификации) и Юрий Панчул (модели интерфейсов шин): ![][3] Вообще Байкал-Т — это плод международного сотрудничества, в которон вовлечены в частности: [Читать дальше →][4]

[1]: http://www.cnews.ru/news/top/2016-02-24_tplatformy_vypustili_gotovyj_modul_dlya_razrabotchikov
[2]: http://www.cnews.ru/news/top/2016-02-25_tplatformy_vypustili_pervyj_pk_na_protsessorah
[3]: https://habrastorage.org/getpro/habr/post_images/7b5/d69/320/7b5d69320a1aa9eb7dafdc122a42c57a.png
[4]: https://habrahabr.ru/post/278011/#habracut

[>] Web файловый менеджер Sprut.IO в OpenSource
habra.16
habrabot(difrex,1) — All
2016-02-26 16:30:03


В [Бегете][1] мы долго и успешно занимаемся виртуальным хостингом, используем много OpenSource-решений, и теперь настало время поделиться с сообществом нашей разработкой: файловым менеджером [Sprut.IO][2], который мы разрабатывали для наших пользователей и который используется у нас в панели управления. Приглашаем всех желающих присоединиться к его разработке. О том, как он разрабатывался и почему нас не устроили существующие аналоги, какие ![][3] [Читать дальше →][4]

[1]: https://beget.com
[2]: https://sprut.io
[3]: https://habrastorage.org/files/6b6/977/817/6b69778173cc4a8a8372d13bf624b49f.png
[4]: https://habrahabr.ru/post/277449/#habracut

[>] Патчим gnupg или пара RSA-32768 за 106 минут
habra.16
habrabot(difrex,1) — All
2016-02-27 12:00:04


На самом деле патчим gnupg и libgcrypt… Когда-то давным давно, чтобы использовать 8192 и 16384 RSA ключи я правил размер в keygen.c и размер SECMEM буффера по соседству. Дела давно минувших дней, теперь SECMEM вынесена в config.h и именуется `SECMEM_BUFFER_SIZE`. В итоге после скачивания верии 2.0.29 под свежий debian 8.3, за место убитой 12й убунты апдейтом на 14ую, я быстренько подкрутил размер ключика и размер буфера и радостно сгенерировал на 5200U 16кбит ключ за 18 (или 19) минут, что раньше занимало 45-50 минут на P6200. Но вот 32кбит дали мне пачку ошибок. Свободное время есть — разбираемся. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/278051/#habracut

[>] Хуки — это просто (часть 3)
habra.16
habrabot(difrex,1) — All
2016-02-27 14:00:03


![image][1] Как-то так получилось, что я написал на Хабре уже несколько статей о библиотеках для хуков. [Первая][2] была об общих принципах и реализации на базе Detours, [вторая][3] — о более дешевой (но не менее функциональной) библиотеке madCodeHook. Сегодня я расскажу об ещё одном варианте — библиотеке [Deviare][4] от компании Nektra. «Ещё одна точно такая же библиотека для хуков?» — спросите вы. «Такая же, да не такая» — отвечу я. У Deviare есть несколько особенностей, отличающих её и от Detours и от madCodeHook и делающей её в некоторых случаях намного более полезной. [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/ad3/802/710/ad3802710ec84a344d96f0996768959c.jpg
[2]: https://habrahabr.ru/company/infopulse/blog/140456/
[3]: https://habrahabr.ru/company/infopulse/blog/213309/
[4]: http://www.nektra.com/products/deviare-api-hook-windows/
[5]: https://habrahabr.ru/post/277995/#habracut

[>] [Перевод] Как создать свой собственный Dependency Injection Container
habra.16
habrabot(difrex,1) — All
2016-02-27 14:30:06


Привет всем! Это вольный перевод статьи [How to Build Your Own Dependency Injection Container][1]. Т.к. это мой первый перевод для хабра, да и вообще. Прошу указывать на ошибки, неточности итд..

## Как создать свой собственный Dependency Injection Container.

Поиск “dependency injection container” на [packagist][2] на данный момент выдает более 95 страниц результата. С уверенностью можно сказать, что это особое “колесо” уже изобретено. Однако, не один шеф повар не учился готовить используя только готовую еду. Также и не один разработчик никогда не учился программировать используя только готовый код. В этой статье мы собираемся учиться делать простой _dependency injection container_ пакет. Весь написанный в статье код, плюс PHPDoc аннатации и unit-тесты с 100% покрытием доступны на [GitHub][3]. Все это так же добавлено на [Packagist][4]. [Читать дальше →][5]

[1]: http://www.sitepoint.com/how-to-build-your-own-dependency-injection-container/
[2]: https://packagist.org/
[3]: https://github.com/sitepoint/Container
[4]: https://packagist.org/packages/sitepoint/container
[5]: https://habrahabr.ru/post/278049/#habracut

[>] Сделай сам: SQL JOIN на Java
habra.16
habrabot(difrex,1) — All
2016-02-28 13:00:04


Я часто собеседую разработчиков и часто задаю им простой, как кувалда, вопрос — как внутри работает JOIN в SQL? В ответ я обычно слышу [бессвязное мычание][1] про волшебные деревья и индексы, которые быстрее. Когда-то мне казалось, что каждый и даже сами реализуем парочку алгоритмов. ![SQL JOIN][2] [Читать дальше →][3]

[1]: http://feldgendler.livejournal.com/155234.html
[2]: https://habrastorage.org/files/7ff/b2c/3a2/7ffb2c3a25b74dcf9eec013282b9cfb4.png
[3]: https://habrahabr.ru/post/278087/#habracut

[>] Security Week 08: кража мышей через свисток, операция «Блокбастер», Linux Mint с бэкдором
habra.16
habrabot(difrex,1) — All
2016-02-28 21:00:03


![][1]Помимо обозначенных в заголовке новостей недели, продолжает развиваться история с противостоянием Apple и ФБР, или более точно — борьба между вендорами и государством на поле законодательства. Более подробно я об этом написал в [предыдущем дайджесте][2], в комментариях к которому было замечено одно показательное сомнение в важности данной темы. Дескать, какая разница, заставят Apple написать бэкдор к своему же устройству или не заставят — все равно ЦРУ (АНБ, другие комбинации из трех букв) сломает и так, без суда. Может ли ЦРУ (АНБ, итд) взламывать айфоны или не может — мы не знаем, и достоверно не узнаем никогда. Но суть конфликта заключается в том, что Apple пытаются заставить «сломать» собственный смартфон самостоятельно. Компания же сопротивляется, выступая (не прямым текстом, конечно) за разделение труда: задача Apple максимально защитить персональные данные своих клиентов (от кого угодно), задача спецслужб — сделать так, чтобы защита не мешала расследованию преступлений. Об этом говорится в поданном вчера [ходатайстве][3] Apple — там юридическим языком оформлены ранее публично высказанные претензии. Самое важное: по мнению Apple ФБР просит слишком много. Типичное действие суда — потребовать у компании дать то, что у нее уже есть (данные из iCloud, логи, исходные коды софта). Но в данном случае от Apple требуют _создать что-то новое_ — инструмент для взлома телефона, которого раньше у компании не было. В Apple назвали такой бэкдор GovtOS (или ГосОсь, если хотите). Определилась ситуация и с возможными последствиями для индустрии. С одной стороны, если Apple заставят сделать бэкдор, это создаст прецедент для других подобных запросов, и не только в США. Как выяснилось, уже сейчас на рассмотрении находятся запросы по [минимум десяти устройствам][4] Apple, где суд требует от Apple сломать свою же защиту. С другой стороны, независимо от результата судебных баталий, данный кейс может заставить Apple решить проблему с помощью технологий, а именно — изменить софт и железо будущих устройств так, что у производителя в принципе не будет возможности добыть пользовательские данные. Вообще никак. В New York Times [пишут][5], ссылаясь на анонимные источники, что работа уже начата. А теперь к другим новостям. Все выпуски дайджеста — [тут][6]. [Читать дальше →][7]

[1]: https://habrastorage.org/files/e94/c8a/2a6/e94c8a2a685b49bba1654b79871b36ca.jpg
[2]: https://habrahabr.ru/company/kaspersky/blog/277571/
[3]: https://regmedia.co.uk/2016/02/25/apple_motion_to_vacate.pdf
[4]: https://twitter.com/HackingDave/status/702201893712433154
[5]: http://www.nytimes.com/2016/02/25/technology/apple-is-said-to-be-working-on-an-iphone-even-it-cant-hack.html?_r=0
[6]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[7]: https://habrahabr.ru/post/278025/#habracut

[>] [Перевод] Pathfinding: До одури простая реализация алгоритма воронки (Funnel Algorithm)
habra.16
habrabot(difrex,1) — All
2016-02-29 08:00:03


![][1] Алгоритм воронки — это простой алгоритм поиска наипростейшего пути, проходящего через «порталы». Наиболее подробное описание можно найти по ссылке [Efficient Triangulation-Based Pathfinding][2] ([2][3]) Здесь же этот алгоритм будет реализован до одури просто. Вместо использования очередей и прочих очешуительных вещей, наша простейшая реализация перезапускает цикл каждый раз, когда обнаруживает очередной угол. Это значит, что некоторые порталы будут опрашиваться таки чаще, чем должны были бы, тем не менее, делая реализацию всяко проще. [Читать дальше →][4]

[1]: https://habrastorage.org/files/b71/7c8/5bd/b717c85bd8c340aca20681df322054ae.png
[2]: https://skatgame.net/mburo/ps/thesis_demyen_2006.pdf
[3]: http://web.archive.org/web/20151017054345/https://skatgame.net/mburo/ps/thesis_demyen_2006.pdf
[4]: https://habrahabr.ru/post/278151/#habracut

[>] Автоматизация получения полезной информации на телефоне или планшете
habra.16
habrabot(difrex,1) — All
2016-02-29 08:00:03






Вставая по утрам, хотелось видеть текущий прогноз погоды. Причем так, как мне удобно и со временем заката. Также не хотелось лишний раз лезть в интернет и тратить на это время. Хотелось, чтобы прогноз был сразу показан на экране телефона, но без лишних виджетов, занимающих лишнее пространство на экране и создающих неудобства. И я решил создать приложение которое будет выводить данные о любой информации и не только по прогнозам, а вообще о всем в автоматическом режиме, как это делает **Cron** с помощью **Wget**. Так на свет появилось приложение GETauto.



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

[1]: https://habrahabr.ru/post/278105/#habracut

[>] Citrix Tech Exchange Moscow 2016: как он изменил мое отношение к Xen
habra.16
habrabot(difrex,1) — All
2016-02-29 08:00:03


В середине февраля в Москве проходила конференция Citrix Tech Exchange. В целом, это, конечно не “событие года”, но не безынтересное, как минимум. Под катом я немного напишу про саму конференцию и много про то, на какие размышления она меня навела. Ну и фото тоже будут. : ![][1] И кстати, там **опрос после поста**, большая просьба высказать свое мнение. [Читать дальше →][2]

[1]: https://habrastorage.org/files/c55/7a2/7d8/c557a27d8b3b4425a94caf739beaf109.png
[2]: https://habrahabr.ru/post/278071/#habracut

[>] Байесовская нейронная сеть — потому что а почему бы и нет, черт возьми (часть 1)
habra.16
habrabot(difrex,1) — All
2016-02-29 11:30:02


То, о чем я попытаюсь сейчас рассказать, выглядит как настоящая магия. Если вы что-то знали о нейронных сетях до этого — забудьте это и не вспоминайте, как страшный сон. Если вы не знали ничего — вам же легче, полпути уже пройдено. Если вы на «ты» с байесовской статистикой, читали [вот эту][1] и [вот эту][2] статьи из Deepmind — не обращайте внимания на предыдущие две строчки . Итак, магия: ![][3] Слева — обычная и всем знакомая нейронная сеть, у которой каждая связь между парой нейронов задана каким-то числом (весом). Справа — нейронная сеть, веса которой представлены не числами, а **демоническими облаками вероятности**, колеблющимися всякий раз, когда дьявол играет в кости со вселенной. Именно ее мы в итоге и хотим получить. И если вы, как и я, озадаченно трясете головой и спрашиваете «а нафига все это нужно» — добро пожаловать под кат. [Читать дальше →][4]

[1]: http://www.cs.toronto.edu/~graves/nips_2011.pdf
[2]: http://arxiv.org/pdf/1505.05424v2.pdf
[3]: https://habrastorage.org/files/0ca/a5c/0fc/0caa5c0fc56d417abd902b030d9df394.png
[4]: https://habrahabr.ru/post/276355/#habracut

[>] Снова про STL
habra.16
habrabot(difrex,1) — All
2016-02-29 11:30:02


Эта подборка коротких заметок относительно контейнеров C++ появилась как результат просьбы подготовить для начинающих коллег программистов **сжатый** обзор STL. Зачем это было нужно, когда по этому предмету есть оригинальная документация и много целых отдельных книг, из которых как минимум 5-6 превосходного качества существуют в переводах и на русский язык? Но смысл, однако, есть и он вот в чём:

* Все книги изданы в конце 90-х — начале 2000-х. Более поздние стандарты языка C++ (вплоть до C++11) вводят новые синтаксические конструкции, которые в применении с STL дают кросс-эффект … с очень интересной интерференцией. Это позволяет часто использовать конструкции STL с гораздо большей лёгкостью.
* Книги обычно описывают предмет слишком детализировано (это хорошо для студентов, но избыточно для программистов, пусть даже уровня джуниоров, которым, после других языков, например, нужно только базовое ознакомление). Оригинальная документация, наоборот, напичкана формальными синтаксическими определениями (это замечательно в качестве справочника под рукой, но избыточно для знакомства). Настоящие заметки, полностью избегая формальных определений, строятся вокруг примеров использования, в большей части понятных программисту даже без каких-либо дополнительных пояснений.
* Контингент, для которого первоначально готовились тексты, помимо прочего в значительной степени ориентирован на численные математические методы, обработку данных в потоке, на что не рассчитаны существующие публикации. Мне тоже ближе такой уклон, и такой акцент будет заметен в примерах, на которых построено описание.

Из-за требований **обязательной** однотипности объектов в контейнерах, их можно было бы с уточнением называть регулярными контейнерами, это много проясняет (не делается такое уточнение только потому, что и так всем ясно о чём речь). Речь, конечно, идёт о контейнерах STL, но и традиционный массив C/C++ — это такой же регулярный контейнер, и они будут фигурировать в тексте и примерах. (Структуры, а ещё более обще, классы с полями данных тоже являются контейнерами, но их никак не назовёшь регулярными.) Хотелось бы надеяться, что эти заметки окажутся полезными кому-то из осваивающих STL, упростят этот процесс понимания. А предложения и замечания, когда они будут по существу, от тех читателей, кто уже профи в C++, позволят улучшить эти тексты на будущее, когда они смогут пригодиться ещё кому-нибудь. [Читать дальше →][1]

[1]: https://habrahabr.ru/post/278039/#habracut

[>] [Перевод] Почему технический долг — это хорошо
habra.16
habrabot(difrex,1) — All
2016-02-29 12:30:03


![][1]Исключая тех, кому повезло быть богатыми, большинство людей занимают деньги, когда начинают свой первый бизнес. И они надеются, что эти инвестиции себя оправдают. Это пример того, как долг может быть хорошей штукой. То же самое относится к техническому долгу. Бесчисленное множество статей в интернете рассказывают, как от него избавиться или хотя бы уменьшить. Все эти статьи показывают технический долг каким-то монстром, которого надо избегать. А если не получилось – то бороться изо всех сил. [Читать дальше →][2]

[1]: https://habrastorage.org/files/a41/d2c/3ef/a41d2c3ef2ef4647852da4a5b5d95d01.png
[2]: https://habrahabr.ru/post/278179/#habracut

[>] [Перевод] Оценка и оптимизация производительности вычислений на многоядерных системах
habra.16
habrabot(difrex,1) — All
2016-02-29 13:00:03


![][1] Данная публикация является переводом первой части статьи [Characterization and Optimization Methodology Applied to Stencil Computations][2] инженеров компании Intel. Эта часть посвящена анализу производительности и построению roofline модели на примере довольно распространенного вычислительного ядра, которая позволяет оценить перспективы оптимизации приложения на данной платформе. [Читать дальше →][3]

[1]: https://habrastorage.org/files/2b6/cc6/bb8/2b6cc6bb87784080898e3068efb458a3.jpg
[2]: https://www.researchgate.net/publication/285433271_Characterization_and_Optimization_Methodology_Applied_to_Stencil_Computations
[3]: https://habrahabr.ru/post/277407/#habracut

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 133