RSS
Pages: 1 ... 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 ... 210
[>] Корректирующие коды «на пальцах»
habra.16
habrabot(difrex,1) — All
2017-05-10 03:00:03


![][1]Корректирующие коды — это коды, которые могут обнаружить и (если повезёт) исправить ошибки, возникшие при передаче данных. Даже если вы ничего не слышали о них, то наверняка встречали аббревиатуру CRC в списке файлов в ZIP-архиве или даже надпись ECC на планке памяти. А кто-то, может быть, задумывался, как так получается, что если поцарапать DVD-диск, то данные всё равно считываются без ошибок (конечно, если царапина не в сантиметр толщиной и не разрезала диск пополам).



Как нетрудно догадаться, ко всему этому причастны корректирующие коды. Собственно, ECC так и расшифровывается — «error-correcting code», то есть «код, исправляющий ошибки». А CRC — это один из алгоритмов, обнаруживающих ошибки в данных. Исправить он их не может, но часто это и не требуется.



Давайте же разберёмся, что это такое.



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



_Внимание! Много текста и мало картинок. Я постарался всё объяснить, но без карандаша и бумаги текст может показаться немного запутанным._

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

[1]: https://habrastorage.org/web/3bd/daa/3d6/3bddaa3d671b4a4c97ca9f731febd6a5.jpg
[2]: https://habrahabr.ru/post/328202/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] О возникновении спиралей в циклическом клеточном автомате
habra.16
habrabot(difrex,1) — All
2017-05-10 15:00:04


О циклических клеточных автоматах было написано в [этой статье][1]. Целью данной статьи является рассмотрение условий возникновения спиралей, также известных как _демоны_. Средством достижения цели является изменение начальных условий и слежение за развитием клеточного автомата. В результате будут сделаны обобщающие выводы об условиях образования спиралей.

**Кратко опишем циклический клеточной автомат.**
Решетка представляет собой замкнутую двумерную ортогональную сетку квадратных клеток, каждая из которых находится в одном из 15 возможных состояний, в пределах от 0 до 14.

![][2]

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

![][3]

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


![][4]
Как видно из рисунка выше, клеточный автомат проходит три этапа:

1. Случайное поле.
2. Цветные области.
3. Спирали, также известные как _демоны_.

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

![][5]
Выберем несколько (например 12) случайных ячеек и рассмотрим изменение их состояний во времени. [Читать дальше →][6]

[1]: https://habrahabr.ru/post/168291/
[2]: https://habrastorage.org/web/19c/763/b63/19c763b63ae04c2fbf9e7ab7665f0055.png
[3]: https://habrastorage.org/web/142/4f8/8f9/1424f88f95ab4da2b28a80319599cefa.png
[4]: https://habrastorage.org/web/675/dd7/ffe/675dd7ffe969477da9b832efcf66637d.png
[5]: https://habrastorage.org/web/0fb/861/a05/0fb861a05c334781a07206784eeb1dbb.png
[6]: https://habrahabr.ru/post/328314/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как получить оффер в день собеседования и не ждать сто лет
habra.16
habrabot(difrex,1) — All
2017-05-10 15:30:04


![enter image description here][1]



Привет, Хабр! Я Богдан, разработчик в iOS-команде Badoo в Лондоне. Прочитав заголовок, вы можете подумать, что в Badoo совсем с ума сошли публиковать посты на такие темы. Но пост вполне для Хабра. Мы сейчас очень активно расширяем iOS- и Android-команды и ищем разработчиков по всему миру. Естественно, Москву обойти стороной просто не можем (наш второй офис здесь). Мы хотим провести достаточно необычное мероприятие, чтобы после него обзавестись новыми коллегами.



Мы (мобильные команды Badoo) решили приехать на несколько дней в Москву и провести небольшую встречу, после которой несколько разработчиков (iOS и Android) получат предложения о работе у нас (в Лондоне). Чтобы не затягивать эту самую встречу, мы сделали онлайн-тест (он не суперсложный, а скорее чтобы понять ваш уровень и упростить и ускорить личные встречи).

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

[1]: https://habrastorage.org/web/1a9/cee/fab/1a9ceefabcad45748e40d62a1409899d.jpeg
[2]: https://habrahabr.ru/post/328322/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что там с JEP-303 или изобретаем invokedynamic
habra.16
habrabot(difrex,1) — All
2017-05-10 16:00:04


Блогеры и авторы, пытающиеся быть на передовой, уже [немало][1] [писали][2] про проект Amber в Java 10. В этих статьях обязательно упоминается [вывод типов локальных переменных][3], улучшения [enum][4] и [лямбд][5], иногда пишут про pattern matching и data-классы. Но при этом незаслуженно обходится стороной [JEP 303][6]: Intrinsics for the LDC and INVOKEDYNAMIC Instructions. Возможно, потому что мало кто понимает, к чему это вообще. Хотя любопытно, что именно об этой фиче ребята из [NIX\_Solutions][7] фантазировали [на Хабре][8] год назад.



Широко известно, что в виртуальной машине Java, начиная с версии 7, есть интересная инструкция invokedynamic (она же indy). Про неё многие слышали, однако мало кто знает, что она делает на самом деле. Кто-то знает, что она используется при компиляции лямбда-выражений и ссылок на методы в Java 8. Некоторые слышали, что через неё реализована конкатенация строк в Java 9. Но хотя это полезные применения indy, изначальная цель всё же немного другая: делать динамический вызов, при котором вы можете вызывать разный код в одном и том же месте. Эта возможность не используется ни в лямбдах, ни в конкатенации строк: там поведение всегда генерируется при первом вызове и остаётся постоянным до конца работы программы (всегда используется [ConstantCallSite][9]). Давайте посмотрим, что можно сделать ещё.

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

[1]: https://www.javacodegeeks.com/2017/05/project-amber-future-java-exposed.html
[2]: https://www.sitepoint.com/project-amber-will-revolutionize-java/
[3]: http://openjdk.java.net/jeps/286
[4]: http://openjdk.java.net/jeps/301
[5]: http://openjdk.java.net/jeps/302
[6]: http://openjdk.java.net/jeps/303
[7]: https://habrahabr.ru/users/nix_solutions/
[8]: https://habrahabr.ru/company/nixsolutions/blog/281513/
[9]: https://docs.oracle.com/javase/8/docs/api/java/lang/invoke/ConstantCallSite.html
[10]: https://habrahabr.ru/post/328240/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Лекции Техносферы: Программирование на Go
habra.16
habrabot(difrex,1) — All
2017-05-10 17:00:04


![image][1]



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



Список лекций:


* [Лекция 1. Введение][2]
* [Лекция 2. Функции, структуры, интерфейсы. Объектная модель][3]
* [Лекция 3. Асинхронная модель][4]
* [Лекция 4. Web. Работа с сетью][5]
* [Лекция 5. Работа с СУБД][6]
* [Лекция 6. Система тестирования][7]
* [Лекция 7. Reflect or generate?][8]
* [Лекция 8. Производительность][9]
* [Лекция 9. Context, unsafe, cgo][10][Читать дальше →][11]

[1]: https://habrastorage.org/web/19a/e7f/be8/19ae7fbe8ca14aa8b4a2ccd9a9e12563.jpg
[2]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-1-vvedenie
[3]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-2-funkcii-struktury-interfeysy-obektnaya-model
[4]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-3-asinhronnaya-model
[5]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-4-web-rabota-s-setyu
[6]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-5-rabota-s-subd
[7]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-6-sistema-testirovaniya
[8]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-7-reflect-or-generate
[9]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-8-proizvoditelnost
[10]: https://habrahabr.ru/company/mailru/blog/327966/#lekciya-9-context-unsafe-cgo
[11]: https://habrahabr.ru/post/327966/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Выход Java 9 снова отложен
habra.16
habrabot(difrex,1) — All
2017-05-10 18:00:04


Выход Java 9 — новой версии платформы — был [отложен][1]. Все это связано с недавними возражениями Red Hat и IBM касательно работы над системой модулей.

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

[1]: http://www.infoworld.com/article/3193785/java/red-hat-and-ibm-raise-objections-to-java-9-modularization.html
[2]: https://habrastorage.org/web/8b1/230/cbf/8b1230cbfc644c0bbb9d2df27210d90c.jpg
[3]: https://habrahabr.ru/company/it-grad/blog/328320/
[4]: https://habrahabr.ru/post/328320/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как я писал свой логгер. Разбор ошибок
habra.16
habrabot(difrex,1) — All
2017-05-10 19:00:03


Относительно недавно я начал изучать Python. На чём бить шишки было непонятно, а делать упражнения ради упражнений наскучило достаточно быстро. Мне хотелось сделать что-то полезное и сделать это с энтузиазмом. Так родилась идея сделать логгер с цветным аутпутом. Проект был назван «SCLogger», начало было положено. Что получилось в итоге и какие ошибки при проектировании были допущены далее под катом. [Читать дальше →][1]

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

[>] [Перевод] Bash-скрипты, часть 10: практические примеры
habra.16
habrabot(difrex,1) — All
2017-05-10 19:00:03


> [Bash-скрипты: начало][1]
> [Bash-скрипты, часть 2: циклы][2]
> [Bash-скрипты, часть 3: параметры и ключи командной строки][3]
> [Bash-скрипты, часть 4: ввод и вывод][4]
> [Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями][5]
> [Bash-скрипты, часть 6: функции и разработка библиотек][6]
> [Bash-скрипты, часть 7: sed и обработка текстов][7]
> [Bash-скрипты, часть 8: язык обработки данных awk][8]
> [Bash-скрипты, часть 9: регулярные выражения][9]
> [Bash-скрипты, часть 10: практические примеры][10]


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

[![][11]][12]

Главная ценность этих примеров для тех, кто изучает bash, заключается в методике разработки. Когда перед программистом встаёт задача по автоматизации чего бы то ни было, его путь редко бывает прямым и быстрым. Задачу надо разбить на части, найти средства решения каждой из подзадач, а потом собрать из частей готовое решение.
[Читать дальше →][13]

[1]: https://habrahabr.ru/company/ruvds/blog/325522/
[2]: https://habrahabr.ru/company/ruvds/blog/325928/
[3]: https://habrahabr.ru/company/ruvds/blog/326328/
[4]: https://habrahabr.ru/company/ruvds/blog/326594/
[5]: https://habrahabr.ru/company/ruvds/blog/326826/
[6]: https://habrahabr.ru/company/ruvds/blog/327248/
[7]: https://habrahabr.ru/company/ruvds/blog/327530/
[8]: https://habrahabr.ru/company/ruvds/blog/327754/
[9]: https://habrahabr.ru/company/ruvds/blog/327896/
[10]: https://habrahabr.ru/company/ruvds/blog/328346/
[11]: https://habrastorage.org/files/803/892/bfe/803892bfe548499aa763df324d40fd01.png
[12]: https://habrahabr.ru/company/ruvds/blog/328346/
[13]: https://habrahabr.ru/post/328346/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В Германии хакеры похитили деньги с банковских счетов пользователей с помощью уязвимости SS7
habra.16
habrabot(difrex,1) — All
2017-05-10 20:00:05


[![][1]][2]

_Изображение: [Michael Coghlan][3], [CC][4]_

Как [сообщает][5] издание Süddeutsche Zeitung, злоумышленники организовали атаку на абонентов немецкого сотового оператора O2-Telefonica, в результате которого с банковским счетов ряда пользователей были похищены деньги. В ходе атаки хакерам удалось перехватывать коды для двухфакторной аутентификации с помощью уязвимости сигнального протокола SS7.

Ранее эксперты Positive Technologies [сообщали][6] о серьезных проблемах безопасности в сотовых сетях SS7 и [демонстрировали][7] перехват SMS с помощью содержащихся в них уязвимостей. [Читать дальше →][8]

[1]: https://habrastorage.org/web/1cf/91f/ac6/1cf91fac6f1b49c0950190ab896cc8d3.jpg
[2]: https://habrahabr.ru/company/pt/blog/328328/
[3]: https://www.flickr.com/photos/mikecogh/5047039173/sizes/o/in/photostream/
[4]: http://creativecommons.org/licenses/by-sa/2.0/
[5]: http://www.sueddeutsche.de/digital/it-sicherheit-schwachstelle-im-mobilfunknetz-kriminelle-hacker-raeumen-konten-leer-1.3486504
[6]: https://habrahabr.ru/company/pt/blog/305472/
[7]: https://habrahabr.ru/company/pt/blog/305472/
[8]: https://habrahabr.ru/post/328328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Задержка в онлайн-трансляциях с веб-камеры, бессердечная ты стерва
habra.16
habrabot(difrex,1) — All
2017-05-11 00:30:04


![][1]

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

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

[1]: https://habrastorage.org/web/2e2/a79/cc2/2e2a79cc2e7345768275827429c34a82.jpg
[2]: https://habrahabr.ru/post/328286/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Делаем любой объект потокобезопасным
habra.16
habrabot(difrex,1) — All
2017-05-11 08:30:04


![image][1]

В этих 3-ех статьях я детально расскажу об атомарных операциях, барьерах памяти и о быстром обмене данными между потоками, а так же о «sequence-points» на примере «execute-around-idiom», а заодно постараемся вместе сделать что-нибудь полезное — умный указатель, который делает любой объект потоко-безопасным для любых операций с его членами переменными или функциями. А затем покажем как используя его достичь производительности высоко-оптимизированных lock-free алгоритмов на 8 — 64 ядрах.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/7b3/9d2/e68/7b39d2e68a22afcce66af7b6567f8726.jpg
[2]: https://habrahabr.ru/post/328348/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Исследователи научились атаковать промышленных роботов. Тысячи из них доступны из сети
habra.16
habrabot(difrex,1) — All
2017-05-11 08:30:04


[![][1]][2]

Эксперты компании Trend Micro опубликовали [отчет][3], согласно которому в настоящий момент во всем мире около 83 000 промышленных роботов доступны из интернета, при этом механизмы аутентификации отсутствуют у 5 тысяч из них. Исследователи обнаружили в роботах 65 уязвимостей, в том числе позволяющие обойти механизмы аутентификации, модифицировать ключевые настройки и изменить режим работы устройства.

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

[1]: https://habrastorage.org/web/24d/292/bdb/24d292bdb7b1408594dbcc3122ddb6e8.png
[2]: https://habrahabr.ru/company/pt/blog/328342/
[3]: https://documents.trendmicro.com/assets/wp/wp-industrial-robot-security.pdf
[4]: https://habrahabr.ru/post/328342/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Потокобезопасный std::map с производительностью lock-free map
habra.16
habrabot(difrex,1) — All
2017-05-11 08:30:04


### **Примеры использования и тестирование потоко-безопасного указателя и contention-free shared-mutex**



В этой статье мы покажем: дополнительные оптимизации, примеры использования и тестирование разработанного нами потоко-безопасного указателя с оптимизированным разделяемым мьютексом **contfree\_safe\_ptr<T>** – это эквивалентно **safe\_ptr<T, contention\_free\_shared\_mutex<>>**
В конце покажем сравнительные графики тестов нашего thread-safe указателя и одних из лучших lock-free алгоритмов из libCDS на процессорах Intel Core i5/i7, Xeon, 2 x Xeon.
[Читать дальше →][1]

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

[>] Высокопроизводительные сервисы на Crystal, ведение от новичка
habra.16
habrabot(difrex,1) — All
2017-05-11 08:30:04


## Введение {#vvedenie}


**DISCLAIMER**
мнение автора может не совпадать с вашим мнением, добро пожаловать в комментарии.


В доисторические времена высокопроизводительные Web-приложения можно было писать, в основном, на C или C++. Поддерживать такие приложения было не просто дорого, а очень дорого.



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



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



Если же немного снизить планку надежности, то здесь перед нами широкий выбор, включая [Node][2], [Go][3], [Nim][4] и [Crystal][5]. Можно взглянуть на типичные [сравнительные данные по производительности][6], включая [более][7] [обширные][8].



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



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



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



Так почему же Crystal?

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

[1]: http://elixir-lang.org
[2]: https://nodejs.org/
[3]: https://golang.org
[4]: https://nim-lang.org/
[5]: https://crystal-lang.org
[6]: http://blog.seraum.com/crystal-lang-vs-nodejs-vs-golang-vs-http-benchmark
[7]: https://github.com/kostya/benchmarks
[8]: https://www.techempower.com/benchmarks/
[9]: https://habrahabr.ru/post/328364/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ускоряем std::shared_mutex в 10 раз
habra.16
habrabot(difrex,1) — All
2017-05-11 09:30:04


В этой статье мы детально разберем атомарные операции и барьеры памяти C++11 и генерируемые ими ассемблерные инструкции на процессорах x86\_64.
Далее мы покажем как ускорить работу **contfree\_safe\_ptr<std::map>** до уровня сложных и оптимизированных **lock-free** структур данных аналогичных по функциональности std::map<>, например: SkipListMap и BronsonAVLTreeMap из библиотеки libCDS (Concurrent Data Structures library): [github.com/khizmax/libcds][1]
И такую многопоточную производительность мы сможем получить для любого вашего изначально потоко-**не**безопасного класса T используемого как contfree\_safe\_ptr<T>. Нас интересуют оптимизации повышающие производительность на ~1000%, поэтому мы не будем уделять внимание слабым и сомнительным оптимизациям.
[Читать дальше →][2]

[1]: https://github.com/khizmax/libcds
[2]: https://habrahabr.ru/post/328362/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Burp Suite: швейцарский армейский нож для тестирования веб-приложений
habra.16
habrabot(difrex,1) — All
2017-05-11 15:00:04


![][1]
 
Burp Suite – это платформа для проведения <аудита безопасности веб-приложений. Содержит инструменты для составления карты веб-приложения, поиска файлов и папок, модификации запросов, фаззинга, подбора паролей и многое другое. Также существует магазин дополнений BApp store, содержащий дополнительные расширения, увеличивающие функционал приложения. Стоит отметить и появление в последнем релизе мобильного помощника для исследования безопасности мобильных приложений — MobileAssistant для платформы iOS.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/1ee/229/835/1ee22983592146d7a931422c45ce906f.png
[2]: https://habrahabr.ru/post/328382/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Твоя идея — ерунда
habra.16
habrabot(difrex,1) — All
2017-05-11 15:00:04


Я думал, что достиг желанного. Один из моих open-source проектов начал набирать небольшую аудиторию фолловеров на GitHub. Больше никакой нытливой неуверенности в себе, ведь около тысячи _наблюдателей за звёздами_ следят за моим проектом — это всё, что нужно для подтверждения ценности. Это то, что можно вспоминать в моменты неуверенности. Напоминание, что я действительно достиг того, чего стою на самом деле. Никогда не думал, что звёзды могут отвернуться от меня.

\* \* \*

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

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

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

[>] [Перевод - recovery mode ] Как стать веб-разработчиком в 2017 году — план действий
habra.16
habrabot(difrex,1) — All
2017-05-11 17:30:03


_Светлана Шаповалова, редактор «[Нетологии][1]» адаптировала заметку Quincy Larson, в которой он представил три возможных пути становления веб-разработчика: для фронтенда, бекэнда и DevOps._

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

[1]: http://netology.ru/development/programs?utm_source=blog&utm_medium=747&utm_campaign=habr
[2]: https://habrastorage.org/web/87d/30d/69d/87d30d69db424602957479b466edceed.jpg
[3]: https://habrahabr.ru/post/328426/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит
habra.16
habrabot(difrex,1) — All
2017-05-11 17:30:03


> [Bash-скрипты: начало][1]
> [Bash-скрипты, часть 2: циклы][2]
> [Bash-скрипты, часть 3: параметры и ключи командной строки][3]
> [Bash-скрипты, часть 4: ввод и вывод][4]
> [Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями][5]
> [Bash-скрипты, часть 6: функции и разработка библиотек][6]
> [Bash-скрипты, часть 7: sed и обработка текстов][7]
> [Bash-скрипты, часть 8: язык обработки данных awk][8]
> [Bash-скрипты, часть 9: регулярные выражения][9]
> [Bash-скрипты, часть 10: практические примеры][10]
> [Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит][11]


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

[![][12]][13]

Сегодняшняя тема, заключительная в этой серии материалов, посвящена автоматизации работы с интерактивными утилитами, например, со скриптами, которые, в процессе выполнения, взаимодействуют с пользователем. В этом деле нам поможет expect — инструмент, основанный на языке Tcl.
[Читать дальше →][14]

[1]: https://habrahabr.ru/company/ruvds/blog/325522/
[2]: https://habrahabr.ru/company/ruvds/blog/325928/
[3]: https://habrahabr.ru/company/ruvds/blog/326328/
[4]: https://habrahabr.ru/company/ruvds/blog/326594/
[5]: https://habrahabr.ru/company/ruvds/blog/326826/
[6]: https://habrahabr.ru/company/ruvds/blog/327248/
[7]: https://habrahabr.ru/company/ruvds/blog/327530/
[8]: https://habrahabr.ru/company/ruvds/blog/327754/
[9]: https://habrahabr.ru/company/ruvds/blog/327896/
[10]: https://habrahabr.ru/company/ruvds/blog/328346/
[11]: https://habrahabr.ru/company/ruvds/blog/328436/
[12]: https://habrastorage.org/files/803/892/bfe/803892bfe548499aa763df324d40fd01.png
[13]: https://habrahabr.ru/company/ruvds/blog/328436/
[14]: https://habrahabr.ru/post/328436/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Исследуем RxJava 2 для Android
habra.16
habrabot(difrex,1) — All
2017-05-11 19:00:03


![enter image description here][1]



Меня зовут Аркадий, я Android-разработчик в Badoo. В последнее время в нашем блоге много постов про Go, PHP, JS, QA, и я решил разбавить их темами по мобильной разработке. Как раз занимался портированием одного Android-проекта с RxJava 1 на RxJava 2 и читал всё, что можно найти на эту тему в интернете. В частности, доклад Джейка Вортона с конференции GOTO Copenhagen 2016. Мне показалось, что это достойный кандидат на перевод – думаю, многие Android-разработчики задумываются о переходе на RxJava 2, и им интересно, что изменилось по сравнению с первой версией.



Джейк сделал достаточно объёмное введение о реактивном программировании, так что знание RxJava 1 не требуется для понимания статьи. Доклад был подготовлен, когда RxJava2 ещё только готовилась к выпуску (на текущий момент уже выпущена версия 2.1.0).

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

[1]: https://habrastorage.org/web/28e/a5d/f9f/28ea5df9f14448869116883433fd8c12.jpg
[2]: https://habrahabr.ru/post/328434/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Высокопроизводительные сервисы на Crystal, введение от новичка
habra.16
habrabot(difrex,1) — All
2017-05-11 20:30:04


## Введение {#vvedenie}


**DISCLAIMER**
мнение автора может не совпадать с вашим мнением, добро пожаловать в комментарии.


В доисторические времена высокопроизводительные Web-приложения можно было писать, в основном, на C или C++. Поддерживать такие приложения было не просто дорого, а очень дорого.



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



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



Если же немного снизить планку надежности, то здесь перед нами широкий выбор, включая [Node][2], [Go][3], [Nim][4] и [Crystal][5]. Можно взглянуть на типичные [сравнительные данные по производительности][6], включая [более][7] [обширные][8].



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



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



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



Так почему же Crystal?

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

[1]: http://elixir-lang.org
[2]: https://nodejs.org/
[3]: https://golang.org
[4]: https://nim-lang.org/
[5]: https://crystal-lang.org
[6]: http://blog.seraum.com/crystal-lang-vs-nodejs-vs-golang-vs-http-benchmark
[7]: https://github.com/kostya/benchmarks
[8]: https://www.techempower.com/benchmarks/
[9]: https://habrahabr.ru/post/328364/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ключевые анонсы второго дня конференции Build 2017
habra.16
habrabot(difrex,1) — All
2017-05-12 05:30:03


Время анонсов второго дня! Если вы ещё не слышали, то в Сиэттле проходит крупнейшая технологическая конференция Build 2017. Мы уже опубликовали новости с ключевого доклада первого дня, настало время для новой порции – под катом вас ждёт виртуальная и смешанная реальность, кроссплатформенность (и мы не только про Xamarin), новые возможности Windows Creators Update и дизайн!

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

[1]: https://habrastorage.org/web/2f0/251/891/2f02518915af4bcc98379edb96b19150.jpg
[2]: https://habrahabr.ru/post/328460/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Борьба с перехватом HTTPS-трафика. Опыт Яндекс.Браузера
habra.16
habrabot(difrex,1) — All
2017-05-12 12:30:05


Согласно [исследованию][1] сотрудников Mozilla, Google, Cloudflare и ряда университетов, от 4 до 11% защищенных соединений «прослушиваются» в результате установки сомнительных корневых сертификатов на компьютерах пользователей, которые даже и не догадываются о риске. Сегодня я расскажу о том, как наша команда привлекает внимание к этой проблеме с помощью Яндекс.Браузера.

![][2]

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

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

[1]: https://jhalderm.com/pub/papers/interception-ndss17.pdf
[2]: https://habrastorage.org/files/fdd/c6c/f18/fddc6cf18e52494da53131655f901cbc.png
[3]: https://habrastorage.org/files/c88/bc0/288/c88bc028889e4a19af81cd26ec6b0c3c.png
[4]: https://habrahabr.ru/post/326796/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Ansible и telnet: когда нельзя, но очень хочется
habra.16
habrabot(difrex,1) — All
2017-05-12 14:30:04


![][1]


> Telnet is a obviously a very insecure protocol, completely insecure in fact, and we strongly want to discourage usage. We would likely refuse the pull request, to be honest — it is just asking for a world of hurt should MITM possibilities arise._ — Michael DeHaan, создатель Ansible_

Абсолютно согласен. Эм, а как мне быть, когда у меня 20 тысяч legacy свитчей, которые перезагружаются/зависают из-за подключения по SSH, а часть оборудования его вообще не поддерживает?
Прошу под кат.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/5c7/48c/b7f/5c748cb7f46f4efb8962f1bd99cc2c47.png
[2]: https://habrahabr.ru/post/328486/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Реквием по разработке: почему мы обязаны экспериментировать
habra.16
habrabot(difrex,1) — All
2017-05-12 15:00:04


![image][1]

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

[1]: https://habrastorage.org/getpro/habr/post_images/e77/30e/736/e7730e736986060dfaf70d780ed8acb5.jpg
[2]: https://habrahabr.ru/post/328440/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 10 основных ошибок, совершаемых Django-разработчиками
habra.16
habrabot(difrex,1) — All
2017-05-12 15:30:04


![][1]



В этом руководстве мы рассмотрим основные ошибки Django-разработчиков и узнаем, как их избежать. Статья может быть полезна даже опытным разработчикам, потому что и они совершают такие ошибки, как поддержка неподъёмно больших настроек или конфликтов имён в статических ресурсах.

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

[1]: https://habrastorage.org/web/70c/8a3/c12/70c8a3c123b44d358be54c0f9f76c299.jpg
[2]: https://habrahabr.ru/post/328352/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Метрики в задачах машинного обучения
habra.16
habrabot(difrex,1) — All
2017-05-12 15:30:04


Привет, Хабр!


![][1]

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



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


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

[1]: https://habrastorage.org/web/b33/683/d49/b33683d495964ebb9ca8d413e60c4085.jpg
[2]: https://habrahabr.ru/post/328372/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Жирные программы — изучаем фактор памяти часть В
habra.16
habrabot(difrex,1) — All
2017-05-12 16:30:05


В предыдущей статье [Жирные программы-факторы скорости][1] были набросаны наметки по теме — почему программы "тормозят".



Был выделен фактор памяти, как важный, но не было идей по его тестированию его “жирности” в зависимости от фреймворка. И вот, приняв на праздниках спокойное правильное состояние, я такую идею сгенерировал.



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



Некоторые тесты под катом.


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

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

[>] Нужно ли экспериментировать в процессе разработки?
habra.16
habrabot(difrex,1) — All
2017-05-12 18:00:04


![image][1]

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

[1]: https://habrastorage.org/getpro/habr/post_images/e77/30e/736/e7730e736986060dfaf70d780ed8acb5.jpg
[2]: https://habrahabr.ru/post/328440/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Реализация минимизации логических функций методом Квайна\Мак-Класки
habra.16
habrabot(difrex,1) — All
2017-05-12 20:00:04


К рассмотрению предлагается одна из возможных реализаций алгоритма минимизации логических (булевых) функций (ЛФ) заданных в виде совершенной дизъюнктивной нормальной формы (СДНФ) методом Квайна\\Мак-Класки (далее просто Мак-Класки) и проблемы, выявленные при её тестировании. В исследуемом варианте алгоритм Мак-Класки реализован на языке C# с использованием Generic-коллекций библиотеки .NET.

Хотелось бы отметить, что задача минимизации ЛФ, по моему мнению, незаслуженно обходится стороной в тематике алгоритмов машинного обучения, т. к. по своему смыслу она реализует процедуру обучения с учителем для определённого набора входных терм (простых конъюнкций), на которых оптимизируемая функция принимает истинное (true) значение. Следовательно, этот набор входных терм, из общего их возможного числа $inline$2^N$inline$, где _N_ – количество двух классовых категориальных (двоичных) переменных в термах, является обучающей выборкой для задачи обучения с учителем с известным (данном случае истинным) выходным значением целевой функции. Для всех остальных возможных терм, не входящих в обучающую выборку, минимизированная ЛФ должна принимать ложное (false) значение.

Одним из легко реализуемых для любого количества входных переменных алгоритмов минимизации ЛФ является метод Мак-Класки. Согласно теории метод Мак-Класки состоит из двух основных этапов:
[Читать дальше →][1]

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

[>] Новый Rust-митап уже 18 мая в ЛК: приходите – будет полезно
habra.16
habrabot(difrex,1) — All
2017-05-12 21:00:04


18 мая в московском офисе «Лаборатории Касперского» пройдёт третья по счету встреча любителей и профи, пишущих код на Rust. Гостей нашего митапа как всегда ждёт интересная и насыщенная программа с обсуждением самых актуальных вопросов: мы поговорим о реализации ООП в Rust и о криптографических библиотеках, а также раскроем все tips&tricks работы с экспортом функций.

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

[1]: https://habrastorage.org/web/ac5/a3c/824/ac5a3c82465f4392bfb7f161b2216aca.jpg
[2]: https://habrahabr.ru/post/328500/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ransomware day: массовое заражение Wana Decrypt0r
habra.16
habrabot(difrex,1) — All
2017-05-12 23:30:04


![][1]
 
Более 60.000 компьютеров подверглись атаке и заражению вирусом-вымогателем Wana Decrypt0r. Авторы Wana Decrypt0r используют эксплоит ETERNALBLUE, созданный специалистами АНБ для уязвимости в SMBv1 (MS17-010) для доставки вредоносного кода на Windows системы. Вирус зашифровывает все файлы на компьютере и требует выкуп — 300 долларов США в биткоинах. На выплату дается три дня, потом сумма увеличивается вдвое.
[Читать дальше →][2]

[1]: https://habrastorage.org/web/170/ba3/229/170ba3229ffb4c1a90f59ceef1050bf8.png
[2]: https://habrahabr.ru/post/328538/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Познакомимся с WannaCry поближе
habra.16
habrabot(difrex,1) — All
2017-05-13 13:30:05


Атака программы-вымогателя нанесла ущерб многим компаниям и организациям по всему мире, включая испанскую телекоммуникационную компанию Telefonica, больницы в Великобритании и американскую компанию доставки FedEx. Вредоносная программа, относящаяся к классу криптовымогателей, стала известна как «WannaCry».

Вредонос умеет по TCP сканировать 445 порт (Server Message Block/SMB) и распространяться, как червь, атакуя хосты и зашифровывая файлы, которые на них находятся. После он требует перечислить какое-то количество биткойнов за расшифровку.
[Читать дальше →][1]

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

[>] Уязвимости нулевого дня в Wordpress и Vanilla Forums позволяют удаленно взламывать сайты
habra.16
habrabot(difrex,1) — All
2017-05-13 15:30:05


![][1]

_Изображение: [Andrew Abogado][2], [CC BY 2.0][3]_

Исследователь информационной безопасности Давид Голунски (Dawid Golunski) [опубликовал][4] данные о критических уязвимостях в WordPress — они позволяют осуществлять удаленное выполнение shell-команд и сброс пароля администратора через подмену заголовка Host. Кроме того, исследователь [рассказал][5] о двух аналогичных критических уязвимостях в открытом продукте Vanilla Forums. [Читать дальше →][6]

[1]: https://habrastorage.org/web/d01/e73/1f5/d01e731f5d7447ccb18df8086dad2a38.jpg
[2]: https://www.flickr.com/photos/ajabogado/3730930942/
[3]: https://creativecommons.org/licenses/by/4.0/legalcode
[4]: http://thehackernews.com/2017/05/hacking-wordpress-blog-admin.html
[5]: http://thehackernews.com/2017/05/vanilla-forum-vulnerability.html?m=1
[6]: https://habrahabr.ru/post/328520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 19: Windows Defender запускает чужой код, в HandBrake сидел троянец, фишеры атаковали пользовалей Gmail
habra.16
habrabot(difrex,1) — All
2017-05-13 15:30:05


Весна выдалась щедрой на дыры апокалиптического масштаба, причем в самых неожиданных местах. В этот раз это не смартфон, и не роутер, а гораздо хуже – Microsoft Malware Protection Engine. Этот компонент используется Windows Defender и по умолчанию включен в Windows 8, 8.1, 10, а также в Windows Server 2016

В этот раз отличился Google: исследователи из Google Project Zero Тэвис Орманди и Натали Силванович [нашли][1] ‘crazy bad’ уязвимость. Орманди поспешил [твитнуть][2] об этом, выразившись, что это худшая уязвимость удаленного запуска кода в Windows за последнее время – и, конечно же, сгенерил этим массу сенсационных заголовков. Разработчики из Microsoft кинулись закрывать дыру, как матросы на штурм Зимнего, и спустя три дня патч был готов. Орманди, мужественно державший все подробности при себе, облегченно разразился [багрепортом][3].
[Читать дальше →][4]

[1]: https://threatpost.com/wormable-windows-zero-day-reported-to-microsoft/125513/
[2]: https://twitter.com/taviso/status/860679110728622080
[3]: https://bugs.chromium.org/p/project-zero/issues/detail?id=1252&desc=5
[4]: https://habrahabr.ru/post/328540/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Облако.Mail.Ru + EncFS без локального хранения файлов
habra.16
habrabot(difrex,1) — All
2017-05-13 15:30:05


![image][1]



## Синопсис



Не секрет, что у многих из нас остался 1 Тб свободного места на MRU-Облаке со времён его бета-теста. Объём приличный по нынешним меркам — но что с ним делать? Фотографии и своё видео туда просто так заливать не очень хочется — взломы аккаунтов случаются нередко, да и в любом случае — облако это облако, и нельзя сбрасывать со счетов тот простой факт, что любое облачное хранилище принадлежит коммерческой компании, в интересах которой использовать его для собственной выгоды. А значит, нужен дополнительный слой защиты, например, EncFS. Полистаем хабр и гитхаб, вроде бы имеется [решение][2] о шифровании данных в своём облаке. Но есть неочевидное, но весьма важное неудобство, о котором в исходной статье не упоминается — _для того, чтобы синхронизироваться, нужно локально хранить 600Гб шифрованных фотографий_. Для скромных локальных хранилищ, в которых и нешифрованные 600Гб фотографий едва умещаются, это слишком много.

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

[1]: http://imgur.com/wXqcRI9.png
[2]: https://habrahabr.ru/post/209500/
[3]: https://habrahabr.ru/post/320400/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PHDays HackQuest 2017: RanSomWare — небольшой криптор на GO
habra.16
habrabot(difrex,1) — All
2017-05-13 20:30:04


Всем доброго времени суток, только что подошел к концу двухнедельный [HackQuest][1] от [PHDays][2]. Не смотря на преобладание заданий связанных с WEB, организаторы не оставили без внимания и задания связанные с реверсом. Решение одного из таких заданий ([erawmosnar][3]), я бы хотел сегодня рассмотреть. К тому же думаю после _WannaCry_ подобная тема станет ещё актуальнее.
К заданию была всего 1 подсказка:
> Warn: erawmosnar == ransomware, do not run it, if you do not know what you doing.
[Читать дальше →][4]

[1]: https://hackquest.phdays.com/
[2]: https://www.phdays.ru
[3]: https://rosnadzorcom.ru/erawmosnar
[4]: https://habrahabr.ru/post/328114/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Где на дороге деньги лежат (алгоритм, позволяющий в полтора раза сократить издержки в такси)
habra.16
habrabot(difrex,1) — All
2017-05-13 21:30:04


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



А Вы когда-нибудь задумывались, за что мы в таких случаях платим?



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

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

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

[>] 2017: Автостопом по галактике JavaScript
habra.16
habrabot(difrex,1) — All
2017-05-13 23:30:04


Расшифровка доклада Ильи Климова на конференции JavaScript fwdays.



Мы с вами попробуем отследить некоторые тренды в развитии JS, как сообщества, как движения, в 2017-ом году. Я очень постараюсь избежать оценочных суждений. Хотя кого я обманываю, все равно не получится. И где-то через год вы сможете с радостью открыть эту презентацию на YouTube, и понять, насколько я был не прав.



Поэтому давайте перенесёмся в 2015 год. Посмотрим, как развивался JS.


![][1]

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

[1]: https://habrastorage.org/web/83f/82a/d16/83f82ad160424e5bab8ba0cfb0913ac3.png
[2]: https://habrahabr.ru/post/328570/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Алгоритмические задачи в биоинформатике. Лекция в Яндексе
habra.16
habrabot(difrex,1) — All
2017-05-14 15:30:05


Мы уже несколько раз упоминали серию мероприятий Data & Science, где специалисты по анализу данных и учёные рассказывают друг другу о своих задачах и ищут способы для взаимодействия. Одна из встреч была посвящена биоинформатике. Это отличный пример отрасли, где есть масса ещё не решённых задач для разработчиков.

[![][1]][2]

Под катом вы найдёте расшифровку лекции Игната Колесниченко — выпускника мехмата МГУ и Школы анализа данных. Сейчас Игнат работает ведущим разработчиком службы технологий распределённых вычислений Яндекса.

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

[1]: https://habrastorage.org/web/f2d/c55/9f2/f2dc559f20c34c2b92b6df3258d731df.png
[2]: https://youtu.be/DZ-YHRffFu0
[3]: https://habrahabr.ru/post/328586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Принт-сервер на RaspberryPI 1
habra.16
habrabot(difrex,1) — All
2017-05-14 18:00:04


![image][1]



Долго меня мучала идея из старенького RPI сделать принт-сервер (удаленная печать и сканирование) и наконец я до этого добрался.



Исходим из того, что у нас есть набор из RPI, флешки с Raspbian, Wi-Fi адаптера, принтера HP LaserJet Pro 1022, МФУ HP Deskjet F2180 и usb-хаба. Основная машина (ББ), которая будет использовать принт-сервер живет на Linux (впрочем, отличия в использовании для Windows будут минимальны).

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

[1]: https://habrastorage.org/web/779/6f9/111/7796f91115b44bfda5f51142a6bd4226.png
[2]: https://habrahabr.ru/post/328576/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Анализ шифровальщика Wana Decrypt0r 2.0
habra.16
habrabot(difrex,1) — All
2017-05-14 22:00:04


![][1]


Специалистами компаний T&T Security и Pentestit произведен анализ шифровальщика Wana Decrypt0r 2.0 для выявления функционала, анализа поведения и способов распространения.

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

[1]: https://habrastorage.org/web/ef3/c0e/f50/ef3c0ef50966494581f4c5d83760a036.png
[2]: https://habrahabr.ru/post/328606/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Добавляем в Chromium селектор :focus-within
habra.16
habrabot(difrex,1) — All
2017-05-14 22:30:04


![][1]

В этой статье рассказывается о внедрении в [Chromium/Blink][2] новой фичи. А именно — [псевдокласса :focus-within из спецификации Selectors 4][3]. Также поговорим о разных вещах, с которыми приходится сталкиваться при разработке.
[Читать дальше →][4]

[1]: https://habrastorage.org/web/1db/3cd/df4/1db3cddf47bb429c93d21088346acb7d.jpg
[2]: https://www.chromium.org/blink
[3]: https://drafts.csswg.org/selectors-4/#focus-within-pseudo
[4]: https://habrahabr.ru/post/328478/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Модель ПИД регулятора на Python
habra.16
habrabot(difrex,1) — All
2017-05-15 01:30:05


### В поисках простой модели ПИД регулятора с объектом


Моделированию работы ПИД регулятора посвящено большое количество публикаций в сети. Лидирует проектирование моделей ПИД регулятора с применением Matlab Simulink [1,2] (134 миллиона ссылок в yandex). Сам процесс создания модели какой-то однообразный. В модель переносят всё новые и новые блоки. Одно движение ручного манипулятора и нате вам ПИД контролер, ещё одно и вот передаточная функция объекта. Соединяешь блоки, настраиваешь параметры, готовишь вычислитель. Да, возможностей много, но как-то слишком всё искусственно. И уже становится совсем непонятным к чему тут дифференциальные уравнения, методы их решения и то операционное исчисление, которым долго морочили голову. Ищу реализацию ПИД в Mathcad, тут ссылок в том же yandex, поменьше, всего то 81 миллион, а математики и формул побольше. Рассматриваю пример ПИД, поставляемый вместе с пакетом Mathcad 14.

![][1]

В качестве объекта колебательное звено. Много умных объяснений, но в итоге два оператора laplace и invlaplace. Общая передаточная функция имеет в числителе вторую степень оператора, а в знаменателе четвёртую. Чтобы операторы laplace и invlaplace сработали, когда подключены все три составляющих ПИД, находят ещё и корни знаменателя передаточной функции, эти корни комплексно сопряжённые.

![][2]

Теперь ищу реализацию ПИД на Python. Тихо радовался 97 миллионам результатов, но не долго. О Python 2.7 только применительно к прошивке Arduino на примере ESP32. Но и это переполняет сердце гордостью за Python.
Разочаровавшись в поиске, решил написать модель сам, в меру своих более чем скромных возможностей.
[Читать дальше →][3]

[1]: https://habrastorage.org/web/dbc/ab1/e5d/dbcab1e5d39444598f563262f706a209.png
[2]: https://habrastorage.org/web/d7c/84b/774/d7c84b7743244d988ae1e5c4f2197410.PNG
[3]: https://habrahabr.ru/post/328608/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Свой Bot за несколько часов, или поговорим о пиве с машиной
habra.16
habrabot(difrex,1) — All
2017-05-15 08:30:03


Тема по улучшению взаимодействия машин и человека сейчас актуальна как никогда. Появились технические возможности для перехода от модели «100 кликов» к парадигме «скажи, что ты хочешь». Да, я имею в виду различные боты, которые уже несколько лет разрабатывают все кому не лень. К примеру, многие крупные компании, не только технологические, но и retail, logistics, банки в данный момент ведут активный Research&Design в этой области.

Простой пример, как, например, происходит процесс выбора товаров в каком-либо интернет магазине? Куча списков, категорий, в которых я роюсь и что-то выбираю. It suck's. Или, допустим, заходя в интернет банк, я сталкиваюсь с различными меню, если я хочу сделать перевод, то я должен выбрать соответствующие пункты в меню и ввести кучу данных, если же я хочу посмотреть список транзакций, то опять таки, я должен напрягать как мозг, так и указательный палец. Гораздо проще и удобнее было бы зайти на страницу, и просто сказать: «Я хочу купить литр молока и пол-литра водки», или просто спросить у банка: «Что с деньгами?».

В список профессий, которым грозит вымирание в достаточно близкой перспективе, добавляются: теллеры, операторы call центров, и многие другие. И на простом примере, реализовать который у меня заняло часов 7, я покажу, как можно достаточно просто сделать интеграцию распознавания речи, и выявления сущностей, на примере открытого Wit.Ai (Google Speech API интеграция также включена)
![][1]
[Читать дальше →][2]

[1]: https://habrastorage.org/web/f1c/f84/d32/f1cf84d327f444cd8023382c4b313463.jpg
[2]: https://habrahabr.ru/post/328612/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Soft Mocks для Go! (переопределение функций и методов в runtime)
habra.16
habrabot(difrex,1) — All
2017-05-15 11:30:04


## Soft Mocks для Go!


Основная идея [Soft Mocks для PHP][1] — это переписывание кода «на лету» перед include(), чтобы можно было поменять реализацию любых методов, функций и констант во время исполнения. Поскольку go — компилируемый язык, то логично делать то же самое на этапе компиляции. В этой статье я расскажу по свой проект Soft Mocks for Go.


## Функциональность


Возможности Soft Mocks for Go весьма ограничены — вы можете временно переопределить нужные вам функции и методы, а потом откатить свои правки. Также можно вызвать оригинальную функцию.

При использовании soft mocks, следующий код:

func main() {
closeFunc := (*os.File).Close
soft.Mock(closeFunc, func(f *os.File) error {
fmt.Printf("File is going to be closed: %s\n", f.Name())
res, _ := soft.CallOriginal(closeFunc, f)[0].(error)
return res
})
fp, _ := os.Open("/dev/null")
fmt.Printf("Hello, world: %v!\n", fp.Close())
}


Напечатает вот что:

File is going to be closed: /dev/null
Hello, world: !


Скачать библиотеку можно по адресу: [github.com/YuriyNasretdinov/golang-soft-mocks][2]

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

[1]: https://habrahabr.ru/company/badoo/blog/279617/
[2]: https://github.com/YuriyNasretdinov/golang-soft-mocks
[3]: https://habrahabr.ru/post/328620/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Анализ комуникации из Tor сети в инфраструктуру с помощью ELK стека
habra.16
habrabot(difrex,1) — All
2017-05-15 11:30:04


ElasticSeach достаточно гибкая платформа, и полученные в него данные можно обрабатывать многими способами, даже за пределами стека ELK. Для этого предоставлено более десятка различных API. Но для многих задач будет достаточно и возможностей Kibana.

Одной из таких я хотел бы поделиться с сообществом. Для меня, как и любого безопасника, важно видеть и понимать коммуникацию своей инфраструктуры с внешним миром. Одной из самых интересных является коммуникация с луковой сетью (Tor).

![][1]

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

[1]: https://habrastorage.org/web/db6/18c/9b2/db618c9b261a40c98f98a363f6a3f022
[2]: https://habrahabr.ru/post/327048/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Создание JPEG из ниоткуда
habra.16
habrabot(difrex,1) — All
2017-05-15 12:00:05


Вот интересная демонстрация возможностей [afl][1]; меня реально удивило, что она работает!

`$ mkdir in_dir
$ echo 'hello' >in_dir/hello
$ ./afl-fuzz -i in_dir -o out_dir ./jpeg-9a/djpeg`

В сущности, я создал текстовый файл только со словом "hello" и попросил фаззер выдавать поток в программу, которая ожидает на входе изображение JPEG (_djpeg_ это простая утилита, которая идёт вместе с распространённой графической библиотекой _[IJG jpeg][2]_; _[libjpeg-turbo][3]_ тоже должна подойти). Конечно, мои входные данные не похожи на валидное изображение, так что утилита быстро отвергает их:

`$ ./djpeg '../out_dir/queue/id:000000,orig:hello'
Not a JPEG file: starts with 0x68 0x65`
[Читать дальше →][4]

[1]: http://code.google.com/p/american-fuzzy-lop
[2]: http://www.ijg.org/
[3]: http://libjpeg-turbo.virtualgl.org/
[4]: https://habrahabr.ru/post/328652/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Проблемы современного Data Science
habra.16
habrabot(difrex,1) — All
2017-05-15 12:30:05


![image][1]

Привет, хабр!

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

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

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

[1]: https://habrastorage.org/files/950/44e/4db/95044e4db2984660a962fa2b22d78c24.jpg
[2]: https://habrahabr.ru/post/328556/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Релиз кросс-платформенного XAML UI-фреймворка AvaloniaUI 0.5
habra.16
habrabot(difrex,1) — All
2017-05-15 14:00:04


Состоялся релиз версии 0.5 кросслплатформенного [XAML UI фреймворка AvaloniaUI][1] (раннее назывался Perspex). Фреймворк сделан по тем же принципам, что и WPF/UWP, т. е. используется XAML, биндинги и шаблонизированные элементы управления. На текущий момент это единственный способ сделать UI на настоящем XAML, который будет работать на Windows, OS X и Linux (так же имеется экспериментальная поддержка iOS и Android). [Каталог встроенных контролов][2] (gif 3MB)



[![КПДВ][3]][4]



Начать работать с фреймворком можно скачав [дополнение для Visual Studio 2017][5] и создав проект из шаблона. Так же стоит ознакомиться с [документацией на wiki][6].



В этом релизе: Поддержка .NET Core, переход на GTK3 для \*nix-систем, поддержка вывода через Linux fbdev, система расширений, исправлено множество ошибок.

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

[1]: https://github.com/AvaloniaUI/Avalonia
[2]: https://habrastorage.org/web/989/1df/87c/9891df87c7ac4dd99abbe79ab61c95d4.gif
[3]: https://habrastorage.org/web/54e/a14/77a/54ea1477ade448b796faed08780eb972.png
[4]: https://habrahabr.ru/post/328684/#habracut
[5]: https://visualstudiogallery.msdn.microsoft.com/b2203c92-2110-415b-b935-fcc01cf354f8
[6]: https://github.com/AvaloniaUI/Avalonia/wiki
[7]: https://habrahabr.ru/post/328684/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 ... 210