RSS
Pages: 1 ... 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 ... 210
[>] [Перевод] Когда лучше не использовать глубинное обучение
habra.16
habrabot(difrex,1) — All
2017-10-11 17:00:05


Я понимаю, что странно начинать блог с негатива, но за последние несколько дней поднялась волна дискуссий, которая хорошо соотносится с некоторыми темами, над которыми я думал в последнее время. Всё началось с [поста Джеффа Лика в блоге Simply Stats][1] с предостережением об использовании глубинного обучения на малом размере выборки. Он утверждает, что при малом размере выборки (что часто наблюдается в биологии), линейные модели с небольшим количеством параметров работают эффективнее, чем нейросети даже с минимумом слоёв и скрытых блоков.

Далее он показывает, что очень простой линейный предиктор с десятью самыми информативными признаками работает эффективнее простой нейросети в задаче классификации нулей и единиц в наборе данных MNIST, при использовании всего около 80 образцов. Эта статья сподвигла Эндрю Бима написать [опровержение][2], в котором правильно обученная нейросеть сумела превзойти простую линейную модель, даже на очень малом количестве образцов.

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

[1]: https://simplystatistics.org/2017/05/31/deeplearning-vs-leekasso/
[2]: http://beamandrew.github.io/deeplearning/2017/06/04/deep_learning_works.html
[3]: https://habrahabr.ru/post/339840/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Расширение аналитических возможностей метода линейного программирования средствами Python
habra.16
habrabot(difrex,1) — All
2017-10-11 22:00:07


### Введение


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


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


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


### Формирование целевой функции и начальных условий для минимизации стоимости диеты


Для поддержания нормальной жизнедеятельности человеку необходимо потреблять в день не менее 118 г белков, 56 г жиров, 500 г углеводов и 28 г минеральных солей. Эти питательные вещества содержатся в разных количествах и разных пищевых продуктах.

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

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

[1]: https://habrastorage.org/webt/59/d9/e1/59d9e1fb8761c883565763.jpeg
[2]: https://habrahabr.ru/post/339594/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Инструкция как скомпилировать динамический модуль ngx_pagespeed для Nginx на Debian
habra.16
habrabot(difrex,1) — All
2017-10-12 09:30:05


**Цель:** Предоставить инструкцию по сборке динамического модуля, дать понимание принципа сборки динамического модуля для [Nginx поставленного из репозитория Debian][1].

**Целевая аудитория:** Администраторы серверов, продвинутые администраторы сайтов, сео-оптимизаторы и просто те кто хочет добиться хорошей оценки от сервиса [Google PageSpeed][2].

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

План действий такой:

1. Арендуем vps на час.
2. Собираем на арендованной vps динамический модуль **на той же самой версии Nginx что была использована на боевом** (_это_ **ВАЖНО!!!**. **Поддержка динамических модулей у Nginx появилась с версии 1.9.11**).
3. Перекидываем модуль на новый сервер.
4. Конфигурируем Nginx.
5. Применяем настройки.
6. Замораживаем версию Nginx (_Если это не сделать, то при ближайшем обновлении Nginx, произойдёт падение сервера. Причина в том что скомпилированный модуль будет работать только с конкретной версией Nginx. Если захотите обновиться, скомпилируете модуль для новой версии и обновитесь_).

Или следим за тем что обновляем и своевременно добавляем новый собранный модуль.

Преимущество в том что боевой сервер не подвергается изменению и если Вам к примеру не понравится ngx\_pagespeed, то вы просто уберёте строчки конфигурирующие его и сам модуль. Ну и если Вы используете несколько серверов с Nginx Вы можете один раз скомпилировать модуль для них всех.
[Читать дальше →][3]

[1]: https://wiki.debian.org/ru/nginx/nginx+php-fpm
[2]: https://developers.google.com/speed/pagespeed/
[3]: https://habrahabr.ru/post/339896/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обзор фреймворка Luigi для построения последовательностей выполнения задач
habra.16
habrabot(difrex,1) — All
2017-10-12 09:30:05


Доброго времени суток! У нас открылось совершенно новое направление обучения — [BigData][1], а это значит, что немного расширяется горизонт материалов, которыми мы будем делиться с вами. Сегодня рассмотрим Luigi, как часть того, что раскрывается на нашем курсе.

[Luigi][2] — фреймворк на языке Python для построения сложных последовательностей по выполнению зависимых задач. Довольно большая часть фреймворка направлена на преобразования данных из различных источников (MySql, Mongo, redis, hdfs) и с помощью различных инструментов (от запуска процесса до выполнения задач разных типов на кластере Hadoop). Разработан в компании Spotify и открыт в виде open source инструмента в 2012 году.

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

Для выполнения всех этих задач существуют и другие инструменты. Это [Oozie][3], [Pinball][4], [Airflow][5] (находится в статусе инкубации в Apache — проходит различные проверки, недавно вышел обзор на [хабре][6]). В данной статье рассмотрим только Luigi.

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

[1]: https://otus.ru/lessons/BigData/?utm_source=habr&utm_medium=affilate&utm_campaign=bigdata&utm_term=profi11.10
[2]: https://github.com/spotify/luigi
[3]: http://oozie.apache.org/
[4]: https://github.com/pinterest/pinball
[5]: https://github.com/apache/incubator-airflow
[6]: https://habrahabr.ru/company/mailru/blog/339392/
[7]: https://habrastorage.org/webt/59/de/7e/59de7ef4aa4ad086175249.jpeg
[8]: https://habrahabr.ru/post/339904/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Настройка двухфакторной аутентификации в VMware Horizon View 7 c использованием смарт-карт JaCarta PKI
habra.16
habrabot(difrex,1) — All
2017-10-12 10:00:03


[][1]
Недавно мы [рассказывали][2], как настроить 2FA аутентификацию на основе PKI-инфраструктуры и x509 сертификатов в виртуальной среде Citrix, используя электронные ключи JaCarta PKI. Сегодня речь пойдет о ближайшем «друге» Citrix XenDesktop в области доставки виртуальных рабочих столов и приложений – VMware Horizon View.

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

[1]: https://habrastorage.org/webt/59/dc/d9/59dcd9e1bdba3610812233.png
[2]: https://habrahabr.ru/company/aladdinrd/blog/334322/
[3]: https://habrastorage.org/webt/59/dc/d9/59dcd9e1ae2ff417774006.jpeg
[4]: https://habrahabr.ru/post/339824/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] iOS Safari 11 теперь умеет WebRTC
habra.16
habrabot(difrex,1) — All
2017-10-12 10:00:03


![][1]


Пару недель назад состоялся релиз новых айфонов и iOS 11, который невозможно было не заметить. C релизом произошло еще одно, безусловно важное для разработчиков, событие: в браузере Safari появилась долгожданная поддержка WebRTC.

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

[1]: https://habrastorage.org/webt/59/de/08/59de08c39ee15812786003.jpeg
[2]: https://habrahabr.ru/post/339396/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Киллер фича Vim
habra.16
habrabot(difrex,1) — All
2017-10-12 12:00:04


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



Гуглим, выясняется, что для превращения вима в нормальный редактор нужно нажать **i**. Только сохранить поредактированный текст нельзя, перед этим надо несколько раз нажать эскейп, а потом набрать **:w**. А, чтобы его закрыть, нужно нажать эскейп, а потом набрать **:q**. Тяжёлое наследие прошлого. Ну, зато вим есть везде.



Но в какой-нибудь из статей, рассказывающей, как провести 5 минут в виме и остаться в живых, обязательно будет написано, что вим — лучший текстовый редактор в мире. И ещё выяснится, что люди в нём программируют. То есть, натурально, пишут код. То есть, на дворе 21 век, в любой момент можно скачать Visual Studio, Intellij Idea или, прости господи, Eclipse, а они пишут код в виме. Добровольно.



![][1]

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

[1]: https://habrastorage.org/webt/59/df/0b/59df0b6b9d2a0862800546.jpeg
[2]: https://habrahabr.ru/post/339908/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] О конференции Strata AI: будущее искусственного интеллекта
habra.16
habrabot(difrex,1) — All
2017-10-12 12:00:04


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

В этой статье я расскажу о конференции O’Reilly Strata Artificial Intelligence, которую мне довелось посетить этим летом в Нью-Йорке.

Strata AI – одна из главных конференций, посвященных искусственному интеллекту, проходит примерно раз в полгода. Конференцию не стоит путать с другим известным мероприятием Strata + Hadoop World – его также проводит O’Reilly, но то посвящено исключительно большим данным и по тематике они мало пересекаются.

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

[1]: https://habrastorage.org/getpro/habr/post_images/360/1cb/c98/3601cbc982ef06c91941b54125cd4a1f.jpg
[2]: https://habrahabr.ru/company/lanit/blog/339874/
[3]: https://habrahabr.ru/post/339874/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что должен знать о поиске каждый разработчик
habra.16
habrabot(difrex,1) — All
2017-10-12 13:31:21


## Хотите внедрить или доработать функцию поиска? Вам сюда.


[![][1]][2]
Спросите разработчика: «[Как бы вы реализовали функцию поиска в своем продукте?][3]» или «[Как создать поисковую систему?][4]». Вероятно, в ответ вы услышите что-нибудь такое: «Ну, мы просто запустим кластер Elasticsearch: с поиском сегодня всё просто».

Но так ли это? Во многих современных продуктах [по-прежнему][5] [не лучшим][6] [образом][7] [реализован][8] [поиск][9]. Настоящий специалист по поисковым системам скажет вам, что лишь немногие разработчики глубоко понимают, как работает поиск, а ведь это знание часто необходимо для улучшения качества поиска.

Есть множество программных пакетов с открытым исходным кодом, проведено немало исследований, однако лишь немногие избранные понимают, как нужно делать функциональный поиск. Как ни забавно, но если [поискать в Интернете][10] связанную с реализацией поиска информацию, вы не найдете актуальных и содержательных обзоров.


### **Цель статьи**


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

Основываясь на опыте работы с универсальными решениями и узкоспециализированными проектами самого разного масштаба (в компаниях Google, Airbnb и нескольких стартапах), я расскажу о некоторых популярных подходах, алгоритмах, методах и инструментах.

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

**Переведено в [Alconost][11]**
[Читать дальше →][12]

[1]: https://habrastorage.org/webt/59/de/82/59de82f19d4d1119203996.jpeg
[2]: https://habrahabr.ru/company/alconost/blog/339894/
[3]: https://stackoverflow.com/questions/34314/how-do-i-implement-search-functionality-in-a-website
[4]: https://www.quora.com/How-to-build-a-search-engine-from-scratch
[5]: https://github.com/isaacs/github/issues/908
[6]: https://www.reddit.com/r/Windows10/comments/4jbxgo/can_we_talk_about_how_bad_windows_10_search_sucks/d365mce/
[7]: https://www.reddit.com/r/spotify/comments/2apwpd/the_search_function_sucks_let_me_explain/
[8]: https://medium.com/@RohitPaulK/github-issues-suck-723a5b80a1a3#.yp8ui3g9i
[9]: https://thenextweb.com/opinion/2016/01/11/netflix-search-sucks-flixed-fixes-it/
[10]: https://www.google.com/search?q=%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%D0%BE%D0%B9+%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B
[11]: https://alconost.com?utm_source=habrahabr&utm_medium=article&utm_campaign=translation&utm_content=about-search
[12]: https://habrahabr.ru/post/339894/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] О выборе структур данных для начинающих
habra.16
habrabot(difrex,1) — All
2017-10-12 13:31:22


![image][1]


## Часть 1. Линейные структуры



# Массив


Когда вам нужен один объект, вы создаёте один объект. Когда нужно несколько объектов, тогда есть несколько вариантов на выбор. Я видел, как многие новички в коде пишут что-то типа такого:

// Таблица рекордов
int score1 = 0;
int score2 = 0;
int score3 = 0;
int score4 = 0;
int score5 = 0;
Это даёт нам значение пяти рекордов. Этот способ неплохо работает, пока вам не потребуется пятьдесят или сто объектов. Вместо создания отдельных объектов можно использовать массив.

// Таблица рекордов
const int NUM_HIGH_SCORES = 5;
int highScore[NUM_HIGH_SCORES] = {0};
Будет создан буфер из 5 элементов, вот такой:

![][2]

Заметьте, что индекс массива начинается с нуля. Если в массиве пять элементов, то они будут иметь индексы от нуля до четырёх.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/0ce/948/434/0ce9484348934e68fcb4368a05c979bc.jpg
[2]: https://habrastorage.org/getpro/habr/post_images/36c/d45/a35/36cd45a35c9e5b07b7720c77d8e641eb.png
[3]: https://habrahabr.ru/post/339656/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Результаты летней стажировки 2017 в Digital Security. Отдел исследований
habra.16
habrabot(difrex,1) — All
2017-10-12 13:31:21


![][1]



В [предыдущей][2] статье от коллег из отдела аудита, помимо их опыта, было немного рассказано про общий процесс стажировки 2017 в Digital Security. А сегодня Отдел исследований поделится своими впечатлениями и представит интервью стажёров нашего отдела.

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

[1]: https://habrastorage.org/web/e51/58d/f98/e5158df98ee442869bfb793cce32bb99.png
[2]: https://habrahabr.ru/company/dsec/blog/338026/
[3]: https://habrahabr.ru/post/338740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Kali Linux: формализация исследований и типы атак
habra.16
habrabot(difrex,1) — All
2017-10-12 14:30:05


Сегодня представляем вашему вниманию перевод разделов 11.3 и 11.4 книги «[Kali Linux Revealed][1]». Они посвящены формализации исследований безопасности информационных систем и типам атак, на устойчивость к которым проверяют системы во время анализа их защищённости.

[![][2]][3]

→ Часть 1. [Kali Linux: политика безопасности, защита компьютеров и сетевых служб][4]
→ Часть 2. [Kali Linux: фильтрация трафика с помощью netfilter][5]
→ Часть 3. [Kali Linux: мониторинг и логирование][6]
→ Часть 4. [Kali Linux: упражнения по защите и мониторингу системы][7]
→ Часть 5. [Kali Linux: оценка защищённости систем][8]
→ Часть 6. [Kali Linux: виды проверок информационных систем][9]
[Читать дальше →][10]

[1]: https://kali.training/introduction/kali-linux-revealed-book/
[2]: https://habrastorage.org/webt/59/dd/e0/59dde0151aff5945852435.jpeg
[3]: https://habrahabr.ru/company/ruvds/blog/339828/
[4]: https://habrahabr.ru/company/ruvds/blog/338338/
[5]: https://habrahabr.ru/company/ruvds/blog/338480/
[6]: https://habrahabr.ru/company/ruvds/blog/338668/
[7]: https://habrahabr.ru/company/ruvds/blog/338668/
[8]: https://habrahabr.ru/company/ruvds/blog/339312/
[9]: https://habrahabr.ru/company/ruvds/blog/339636/
[10]: https://habrahabr.ru/post/339828/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Необычный митап про Java в Питере 30 октября
habra.16
habrabot(difrex,1) — All
2017-10-12 14:30:05


Для тех, кто устал от технических митапов про библиотеки, инструменты, фреймворки, мы приготовили кое-что совсем иное — встречу-дискуссию **[“Java и велосипеды: когда стоит вкладываться в написание собственных инструментов на бэкенде?”][1]**

![][2]

У нас всегда есть выбор. Разрабатывать фреймворки самим, или взять готовый у поставщика. Java, Spring, Hibernate, etc. Если мы берем что-то “из коробки”, вполне можем сделать хороший продукт. Если мы хотим создать нечто особенное, существенно выделяющее нас по сравнению с конкурентами, разработка собственных инструментов может быть оправдана — мы будем точно понимать, как он устроен, и сможем выжать из него максимум. Так в каком же случае имеет смысл вкладываться в разработку internal-инструментов, а в каком можно довольствоваться готовыми решениями?

Появляются новые версии больших фреймворков для основных языков, развивается опенсорс и так или иначе поднимаются вопросы, в каком случае архитектор проекта имеет право на эксперименты с новыми технологиями? Когда эти инструменты можно разворачивать на уровне всей компании? Насколько гибкость в выборе технологий зависит от размера, возраста проекта, внутренних или внешних заказчиков.
[О программе и докладах][3]

[1]: https://wriketeam.timepad.ru/event/588745/
[2]: https://habrastorage.org/webt/59/dd/f5/59ddf54f50ffa420131582.png
[3]: https://habrahabr.ru/post/339842/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Играем в APK-гольф. Уменьшение размера файлов Android APK на 99,9%
habra.16
habrabot(difrex,1) — All
2017-10-12 15:30:06


В гольфе выигрывает тот, у кого меньше очков.

Применим этот принцип в Android. Мы собираемся поиграть в APK-гольф и создать приложение минимально возможного размера, которое можно установить на Android 8.0 Oreo.


## Базовый уровень


Начнём с дефолтного приложения, который генерирует Android Studio. [Создадим хранилище ключей][1], подпишем приложение и измерим размер файла в байтах командой `stat -f%z $filename`.

Затем установим APK на смартфон Nexus 5x под Oreo, чтобы убедиться, что всё работает.

![][2]

Прекрасно. Наш APK весит примерно полтора мегабайта.
[Читать дальше →][3]

[1]: https://developer.android.com/studio/publish/app-signing.html#generate-key
[2]: https://habrastorage.org/webt/59/df/02/59df0271a500a108982329.png
[3]: https://habrahabr.ru/post/339938/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как научить свою нейросеть анализировать морфологию
habra.16
habrabot(difrex,1) — All
2017-10-12 16:30:06


Недавно мы рассказывали про [генератор стихов][1]. Одной из особенностей языковой модели, лежащей в его основе, было использование морфологической разметки для получения лучшей согласованности между словами. Однако же у использованной морфоразметки был один фатальный недостаток: она была получена с помощью “закрытой” модели, недоступной для общего использования. Если точнее, выборка, на которой мы обучались, была размечена моделью, созданной для [Диалога-2017][2] и основанной на закрытых технологиях и словарях ABBYY.



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



Вместо морфологического движка ABBYY я использовал широко известный [pymorphy2][3]. Что в итоге получилось? Спойлер — получилось неплохо.

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

[1]: https://habrahabr.ru/post/334046/
[2]: http://www.dialog-21.ru/
[3]: https://github.com/kmike/pymorphy2
[4]: https://habrahabr.ru/post/339954/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [CppCon 2017] Matt Godbolt: Что мой компилятор сделал для меня?
habra.16
habrabot(difrex,1) — All
2017-10-12 19:00:06


Продолжение цикла обзорных статей с конференции CppCon 2017.


**Содержание цикла**
* [Бьёрн Страуструп: Изучение и преподавание современного C++][1]
* [Ларс Кнолл: C++ фреймворк Qt: История, Настоящее и Будущее][2]
* [Herb Sutter: Метапрограммирование и кодогенерация в C++][3]
* Matt Godbolt: Что мой компилятор сделал для меня?


На этот раз очень интересное выступление от автора Compiler Explorer ([godbolt.org][4]). Обязательно читать всем, кто для быстроты умножает на 2 с помощью сдвига (по крайней мере, на x86-64). Если вы знакомы с ассемблером x86-64, то можете перемотать до разделов с примерами ("Умножение", "Деление" и т.д). Далее слова автора. Мои комментарии в квадратных скобках курсивом.



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


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

[1]: https://habrahabr.ru/post/339036/
[2]: https://habrahabr.ru/post/339180/
[3]: https://habrahabr.ru/post/339186/
[4]: http://godbolt.org
[5]: https://habrahabr.ru/post/339962/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Сервер VoIP для небольшой компании (FreePBX 14, Asterisk 15, Ubuntu 16.04)
habra.16
habrabot(difrex,1) — All
2017-10-12 21:00:05


Добрый день, вечер или ночь, все зависит от времени суток в который вам довелось прочитать мою статью. Начнем с начала. В нашей компании задумались о переходе на SIP и встал вопрос? как это реализовать. Были рассмотрены несколько вариантов:

* Оставить всё как есть (сотовые телефоны);
* Облачная АТС;
* «Железное» решение;
* Свой сервер VoIP.
В итоге приняли решение реализовать свой сервер VoIP.

Что мы имеем:

* Ubuntu Server 16.04 (минимальная конфигурация), установлен на ESXi 6.5;
* SIP от zadarma и Мегафон;
* Сотовые телефоны с SIP клиентами.[Читать дальше →][1]

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

[>] Злой XML с двумя кодировками
habra.16
habrabot(difrex,1) — All
2017-10-13 08:30:04


WAFы видят вместо документа белый шум!



























В статье — небольшой рассказ про кодировки в XML и про обход WAFов с их помощью.
[Читать дальше →][1]

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

[>] Minecraft. Создание копировального аппарата
habra.16
habrabot(difrex,1) — All
2017-10-13 12:00:04


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

[![image][1]][2]

**Создание каркаса программы копировального аппарата**

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

[1]: https://habrastorage.org/webt/59/df/23/59df23c2223c5265719259.jpeg
[2]: https://habrahabr.ru/company/piter/blog/339934/
[3]: https://habrahabr.ru/post/339934/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] AMA. Avito. Backend
habra.16
habrabot(difrex,1) — All
2017-10-13 13:30:04


Привет! Как и обещали, сегодня мы готовы отвечать на вопросы про бэкенд в Avito, разработку серверной части в целом и про высокие нагрузки в частности. Как работается с сайтом, на который ежемесячно заходит почти четверть населения России? Спросите у нас! Отвечать будем с 12 до 19 часов по московскому времени. Под катом я представляю пять моих коллег, которые сегодня будут с вами на связи и напоминаю о возможных темах диалога.



AMA!



![][1]

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

[1]: https://habrastorage.org/webt/59/dd/db/59dddbcd7844d060947142.jpeg
[2]: https://habrahabr.ru/post/339996/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Jupyter Widgets для реализации UI машины Тьюринга
habra.16
habrabot(difrex,1) — All
2017-10-13 14:00:04


Привет, Хабр! Хочу поделиться опытом в быстром создание интерфейса в Jupyter Notebook. Если у тебя есть какая-то задача, для которой нужен простой UI, и ты почему-то захотел сделать её в Юпитере, то добро пожаловать под кат.



![][1]

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

[1]: https://habrastorage.org/webt/59/df/0e/59df0ee714472500917843.jpeg
[2]: https://habrahabr.ru/post/339914/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Attify OS — дистрибутив для тестирования на проникновения IoT
habra.16
habrabot(difrex,1) — All
2017-10-13 15:30:05


![][1]
 
> Мало кто знает, что буква S в аббревиатуре IoT означает Security.
В этой статье я расскажу о дистрибутиве Attify OS, предназначенном для тестирования IoT- устройств.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/59/e0/73/59e0736e14cf5409438954.jpeg
[2]: https://habrahabr.ru/post/340020/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Настройка двусторонней RSA и GOST аутентификации в приложении на JBoss EAP 7
habra.16
habrabot(difrex,1) — All
2017-10-13 16:00:04


[![][1]
][2]
Здравствуйте!

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

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

[1]: https://habrastorage.org/webt/59/e0/78/59e078f88f347769510853.jpeg
[2]: https://habrahabr.ru/company/alfa/blog/340028/
[3]: https://habrahabr.ru/post/340028/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Немного о VIM и IDE
habra.16
habrabot(difrex,1) — All
2017-10-13 16:00:04


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

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

[>] [Перевод] [Перевод] Как я учился прогать ИИ последние два месяца
habra.16
habrabot(difrex,1) — All
2017-10-13 20:30:05


![image][1]

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

[После того как я похоронил свой стартап Zeading][2], я почувствовал это особенно остро. Словно я упускаю из вида что-то очень важное.

**То, что я full stack разработчик — это уже не круто. Full stack уже не «full» без компетенций в ИИ.**

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

[1]: https://habrastorage.org/getpro/habr/post_images/d20/6a9/214/d206a9214228d61cbe604d50200ab9b2.jpg
[2]: https://hackernoon.com/how-i-fucked-up-my-startup-life-lessons-from-failing-and-imploding-f3b3540f8545
[3]: https://habrahabr.ru/post/339760/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как взломать более 17 000 сайтов за одну ночь
habra.16
habrabot(difrex,1) — All
2017-10-14 08:30:03


Эта история о том, как я нашел уязвимость в фреймворке Webasyst и, в частности, в ecommerce-движке Shop-Script 7.

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

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

[>] [Перевод] Как отлаживать маленькие программы
habra.16
habrabot(difrex,1) — All
2017-10-15 09:00:05


Довольно много плохих вопросов, которые я вижу на StackOverflow, можно описать следующей формулой:
> Вот моё решение домашнего задания. Оно не работает.
> [20 строк кода] И… всё.

_Прим. пер.: это перевод статьи "[How to debug small programs][1]", на которую ссылаются в [справочном разделе английского StackOverflow][2], посвящённом созданию минимальных, самодостаточных и воспроизводимых примеров. Мне кажется, она прекрасно описывает то, что должен знать каждый программист — основы отладки нерабочего кода._

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

[1]: https://ericlippert.com/2014/03/05/how-to-debug-small-programs/
[2]: https://stackoverflow.com/help/mcve
[3]: https://habrahabr.ru/post/339038/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] OSSIM + SEC
habra.16
habrabot(difrex,1) — All
2017-10-15 09:30:04


Не знаю как вам, а мне в продукте Alienvault OSSIM (USM) всегда не хватало гибкости в настройке правил корреляции. Т.е. возможность-то такая есть, и позиционируется решение как “комбайн” в составе которого есть и SIEM компонент. Но возможности данного SIEM в части корреляции на данный момент весьма и весьма ограничены. Искренне надеюсь, что в будущих релизах разработчики добавят хотя-бы какое-то подобие lookup/active списков ну и как минимум возможность корреляции не только по полям DST\_IP, SRC\_IP, DST\_PORT, SRC\_PORT.

А пока же пришла мне в голову идея использовать SEC (Simple Event Correlator) для расширения функционала корреляции событий ИБ в OSSIM/USM.
[Читать дальше →][1]

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

[>] Цветы, муха и хорошо отрепетированное случайное машинное обучение
habra.16
habrabot(difrex,1) — All
2017-10-15 09:30:04


В [предыдущей серии][1] я пытался сделать из мухи разумное существо. Коротко — не вышло. Муха упорно не хотела учиться.

![][2]

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

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

Обучение проходило кое-как, результата не было. Затем, оставив попытки обучения по уважительным причинам (как то — вечер субботы, ночь и утро воскресенья), я все же думал, что делать дальше. Какие-то возможные решения были намечены в конце первой статьи, с них и продолжил.
[Читать дальше →][3]

[1]: https://habrahabr.ru/post/338548/
[2]: https://habrastorage.org/webt/59/e1/fd/59e1fdc3c6ee1309755052.jpeg
[3]: https://habrahabr.ru/post/339994/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Ускоряем vagrant shared-folder на Windows хосте
habra.16
habrabot(difrex,1) — All
2017-10-15 18:00:05


![][1]

Я полтора года мучился с одной неприятной особенностью ubuntu под vagrant — чертовски медленная расшаренная папка. Простые бенчмарки показывали просадку производительности I/O операций почти на 2 порядка, проекты на php работали до 10 раз медленнее чем на нативном хосте. Так вот, сегодня я задолбался окончательно, хорошо поискал… и оказалось что есть решение, и теперь я просто не могу не поделиться им с кем-то. Решение простое, кому-то покажется очевидным, кто-то знал о нём с рождения (ну или будет так утверждать), но я уверен что знают о нём не все.
[Кнопка для тех кто не знает о nfs][2]

[1]: https://habrastorage.org/webt/59/e3/38/59e338a218a34674224980.png
[2]: https://habrahabr.ru/post/340108/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Пять простых шагов для понимания JSON Web Tokens (JWT)
habra.16
habrabot(difrex,1) — All
2017-10-16 05:01:10


![jwt][1]



Представляю вам мой довольно вольный перевод статьи [5 Easy Steps to Understanding JSON Web Tokens (JWT)][2]. В этой статье будет рассказано о том, что из себя представляют _JSON Web Tokens (JWT)_ и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

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

[1]: https://monosnap.com/file/2XMF9ty8PtYeoAeWJuly3pD3V4TEWu.png
[2]: https://medium.com/vandium-software/5-easy-steps-to-understanding-json-web-tokens-jwt-1164c0adfcec
[3]: https://habrahabr.ru/post/340146/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Кривая Гильберта vs Z-order
habra.16
habrabot(difrex,1) — All
2017-10-16 08:31:41


![][1]


Неоднократно доводилось слышать мнение, что из всех [заметающих кривых][2]. именно [кривая Гильберта][3] наиболее перспективна для пространственной индексации. Мотивируется это тем, что она не содержит разрывов и потому в некотором смысле “хорошо устроена”. Так ли это на самом деле и при чем здесь пространственная индексация, разберёмся под катом. [Читать дальше →][4]

[1]: https://habrastorage.org/webt/59/e3/09/59e309392b501692453703.png
[2]: https://en.wikipedia.org/wiki/Space-filling_curve
[3]: https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%B2%D0%B0%D1%8F_%D0%93%D0%B8%D0%BB%D1%8C%D0%B1%D0%B5%D1%80%D1%82%D0%B0
[4]: https://habrahabr.ru/post/340100/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Сервер VoIP для небольшой компании (FreePBX 14, Asterisk 15, Ubuntu 16.04) часть 1
habra.16
habrabot(difrex,1) — All
2017-10-16 10:00:13


Добрый день, вечер или ночь, все зависит от времени суток в который вам довелось прочитать мою статью. Начнем с начала. В нашей компании задумались о переходе на SIP и встал вопрос? как это реализовать.

Исходные данные:
* 15 сотовых номеров, по количеству сотрудников и смартфонов;
* 2 городских номер от Мегафон(реализован через SIP);
* До 10 одновременных вызовов;
* Отсутствие возможности перевода звонков между сотрудниками;
* Необходимость частых междугородних звонков.

Были рассмотрены несколько вариантов:

* Оставить всё как есть (сотовые телефоны);
* Облачная АТС;
* «Железное» решение;
* Свой сервер VoIP.
В итоге приняли решение реализовать свой сервер VoIP.

Что мы имеем:

* Сервер ESXi Dell PowerEdge R230 1xE3-1220v6 2×16Gb 2RUD x4 3×1Tb 7.2K 3.5";
* Ubuntu Server 16.04 (минимальная конфигурация, 1Гб памяти, 128 Гб диск), установлен на ESXi 6.5;
* SIP от zadarma и Мегафон;
* Сотовые телефоны с SIP клиентами.[Читать дальше →][1]

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

[>] [Перевод] Выпуск Rust 1.21
habra.16
habrabot(difrex,1) — All
2017-10-16 12:01:24


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



Если у вас установлена предыдущая версия Rust, для обновления достаточно выполнить:


$ rustup update stable

Если же у вас еще не установлен `rustup`, вы можете [установить его][1] с соответствующей страницы нашего веб-сайта. С [подробными примечаниями к выпуску Rust 1.21.0][2] можно ознакомиться на GitHub.



### Что вошло в стабильную версию 1.21.0 {#chto-voshlo-v-stabilnuyu-versiyu-1210}



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



Первое изменение касается литералов. Рассмотрим код:


let x = &5;

В Rust он аналогичен следующему:


let _x = 5;
let x = &_x;

То есть `5` будет положено в стек или возможно в регистры, а `x` будет ссылкой на него.



Однако, учитывая, что речь идет о целочисленном литерале, нет причин делать значение таким локальным. Представьте, что у нас есть функция, принимающая `'static` аргумент вроде `std::thread::spawn`. Тогда вы бы могли использовать `x` так:


use std::thread;

fn main() {
let x = &5;

thread::spawn(move || {
println!("{}", x);
});
} [Читать дальше →][3]

[1]: https://www.rust-lang.org/install.html
[2]: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1210-2017-10-12
[3]: https://habrahabr.ru/post/340170/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Весь веб на 60+ FPS: как новый рендерер в Firefox избавился от рывков и подтормаживаний
habra.16
habrabot(difrex,1) — All
2017-10-16 13:30:05


До релиза Firefox Quantum остаётся всё меньше времени. Он принесёт множество улучшений в производительности, в том числе [сверхбыстрый движок CSS][1], который мы позаимствовали у Servo.

Но есть ещё одна большая часть технологии Servo, которая пока не вошла в состав Firefox Quantum, но скоро войдёт. Это WebRender, часть проекта Quantum Render.

[![][2]][3]

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

При разработке WebRender мы поставили задачу, чтобы все приложения работали на 60 кадрах в секунду (FPS) или лучше, независимо от размера дисплея или от размера анимации. И это сработало. Страницы, которые пыхтят на 15 FPS в Chrome или нынешнем Firefox, [летают на 60 FPS при запуске WebRender][4].

Как WebRender делает это? Он фундаментальным образом меняет принцип работы движка рендеринга, делая его более похожим на движок 3D-игры.
[Читать дальше →][5]

[1]: https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/
[2]: https://habrastorage.org/getpro/habr/post_images/a3a/909/152/a3a909152059013d762ce682c1eeda91.png
[3]: https://2r4s9p1yi1fa2jd7j43zph8r-wpengine.netdna-ssl.com/files/2017/10/01.png
[4]: https://www.youtube.com/watch?v=u0hYIRQRiws
[5]: https://habrahabr.ru/post/340176/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обнаружены критичные уязвимости в протоколе WPA2 — Key Reinstallation Attacks (KRACK)
habra.16
habrabot(difrex,1) — All
2017-10-16 14:30:05


![][1]
 
Группа исследователей обнаружила серьезные недостатки в протоколе WPA2, обеспечивающем защиту всех современных Wi-Fi сететй. Злоумышленник, находящийся в зоне действия жертвы, может использовать эти недостатки, используя Key Reinstallation Attacks. Злоумышленники могут использовать этот новый метод атаки для чтения информации, которая ранее считалась зашифрованной.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/59/e4/7d/59e47d3d7c441854074007.png
[2]: https://habrahabr.ru/post/340182/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Наш облачный JS теперь ES2017, и это сокращает код в разы
habra.16
habrabot(difrex,1) — All
2017-10-16 15:30:05


![][1]


Вопреки распространенному мнению, облако Voximplant не использует Node.js, чтобы выполнять JavaScript код клиентов параллельно с голосовыми и видеозвонками. Каждый наш сервер одновременно управляет сотнями звонков: переключение голосовых и видеопотоков между звонками, запись, распознавание голоса, синтез, HTTP-запросы к внешним серверам, — вся вот эта история. А Node.js создана, чтобы работы в одиночку. Несколько сотен изолированных инстансов — это не про нее. Передерутся за память, ресурсы и все закончится очень печально. Поэтому у нас [сильно изолированная][2] и ограниченная по ресурсам песочница, которая не дает клиентскому JavaScript-коду в одной маленькой сессии нарушать работу целых серверов. Asterisk у нас тоже не используется по похожим причинам.

До недавнего времени мы поддерживали синтаксис ES5. Типовой сценарий работы с коммуникациями — это несколько сотен, максимум, тысяч строк кода. Сложные штуки клиенты все равно выносят на собственный backend, а если нужен современный синтаксис, всегда можно воспользоваться транспайлером и автоматически отгрузить собранный JavaScript с помощью [Continuous Integration][3].

Но 2017 год обязывает, да и Web-редактор и отладчик клиенты любят и используют для быстрого создания нужных решений. Поэтому мы запилили поддержку ES2017 (не с нуля, естественно, а готовыми компонентами) и переделали обучающие материалы на современный лад. Под катом я хочу показать, **насколько** короче и понятнее становится код, если пользоваться современной нотацией JavaScript. Разница впечатляет.
[Читать дальше →][4]

[1]: https://habrastorage.org/webt/59/e4/82/59e4828565e87888407830.png
[2]: http://voximplant.com/docs/references/appengine/#sandbox
[3]: https://habrahabr.ru/company/Voximplant/blog/269473/
[4]: https://habrahabr.ru/post/340188/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Смена пола и расы на селфи с помощью нейросетей
habra.16
habrabot(difrex,1) — All
2017-10-16 15:30:06


![][1]

Привет, Хабр! Сегодня я хочу рассказать вам, как можно изменить свое лицо на фото, используя довольно сложный пайплайн из нескольких генеративных нейросетей и не только. Модные недавно приложения по превращению себя в даму или дедушку работают проще, потому что нейросети медленные, да и качество, которое можно получить классическими методами компьютерного зрения, и так хорошее. Тем не менее, предложенный способ мне кажется очень перспективным. Под катом будет мало кода, зато много картинок, ссылок и личного опыта работы с GAN'ами.

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

[1]: https://habrastorage.org/webt/59/e4/81/59e4812912d29153257074.png
[2]: https://habrahabr.ru/post/340154/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Русскоязычный чат-бот Boltoon: создаем виртуального собеседника
habra.16
habrabot(difrex,1) — All
2017-10-16 16:30:04


![][1]

Несколько лет назад было опубликовано [интервью][2], в котором говорят об искусственном интеллекте и, в частности, о чат-ботах. Респондент подчеркивает, что чат-боты не общаются, а имитирует общение. > В них заложено ядро разумных микродиалогов вполне человеческого уровня и построен коммуникативный алгоритм постоянного сведения разговора к этому ядру. Только и всего. На мой взгляд, в этом что-то есть…

Тем не менее, о чат-ботах много говорят на Хабре. Они могут быть самые разные. Популярностью пользуются боты на базе нейронных сетей прогнозирования, которые генерируют ответ пословно. Это очень интересно, но затратно с точки зрения реализации, особенно для русского языка из-за большого количества словоформ. Мной был выбран другой подход для реализации чат-бота Boltoon.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/59/e3/71/59e3710d10f61056511023.png
[2]: https://www.kommersant.ru/doc/1618530
[3]: https://habrahabr.ru/post/340190/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Любите статический анализ кода
habra.16
habrabot(difrex,1) — All
2017-10-16 16:30:04


![PVS-Studio - супергерой][1]

Я в шоке от возможностей статического анализа кода, хотя сам участвую в разработке инструмента PVS-Studio. На днях я был искренне удивлён тому, что анализатор оказался умнее и внимательнее меня.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/036/6ac/1d1/0366ac1d1052242a17257fd4226704d6.png
[2]: https://habrahabr.ru/post/340202/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 41: Accenture выложила на Amazon все, год малвертайзинга на Pornhub, свежая атака на Office
habra.16
habrabot(difrex,1) — All
2017-10-16 17:30:05


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

Компания, мягко говоря, не из последних. Занимается консалтингом, помогает клиентам стратегически планировать, оптимизировать, модернизировать и внедрять. Работает с крупнейшими корпорациями мира, на чем зарабатывает что-то около $5 млрд в год, чуть-чуть поменьше «Газпрома». И вот у этого консалтингового гиганта в Amazon S3 обнаружилось четыре корзины, открытые наружу даже без пароля. Знаешь URL – заходи, выгружай, что хочешь.

Корзины были полны данных клиентов Accenture. Обнаружившие их ребята из UpGuard сделали все правильно – сообщили владельцу данных, дождались, пока все это уберут из доступа, после чего уже с чистой совестью опубликовали [отчет][2] о находке. Сами фигуранты поспешили заявить, что ничего страшного не случилось: у них-де многоуровневая секьюрити-модель, и эти данные не помогли бы хакерам преодолеть ни один из уровней. Ну, вы знаете, секьюрити-модели они как лук – у них много слоев.
[Читать дальше →][3]

[1]: https://threatpost.com/internal-accenture-data-customer-information-exposed-in-public-amazon-s3-bucket/128364/
[2]: https://www.upguard.com/breaches/cloud-leak-accenture
[3]: https://habrahabr.ru/post/340008/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] BaumankaCoin – велосипед в 3000 строк или блокчейн на пальцах
habra.16
habrabot(difrex,1) — All
2017-10-16 18:30:05


Про Blockchain сегодня не пишет только ленивый. Существует огромное количество статей разной степени понятности и полезности. Это очередная из них. Нам захотелось создать максимально простой, но **работающий** блокчейн и написать кратко, но понятно для неспециалистов, как же эта собака этот блокчейн работает. Так родился проект BaumankaCoin, исходники которого можно [загрузить c GitHub-а][1].



Многие люди представляют себе технологию блокчейн и криптовалют как некий мега rocket science. Безусловно, чтобы понять все тонкости и нюансы – потребуется потратить много времени; но в действительности данная технология, если разобраться, оказывается гораздо более простой для понимания, чем принято считать. Реализовав свой coin мы намеревались помочь людям понять "на пальцах" устройство данных технологий.



![][2]

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

[1]: https://github.com/AdPatres/BaumankaCoin
[2]: https://habrastorage.org/webt/59/de/ed/59deed25d964b972135634.gif
[3]: https://habrahabr.ru/post/340206/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] ScadaPy возможности применения modbus протокола
habra.16
habrabot(difrex,1) — All
2017-10-16 20:30:05


В продолжение статей [здесь,][1][ здесь,][2][ здесь][3][ и здесь.][4], хочу привести примеры простого использования python скриптов из серии ScadaPy, как в сфере домашней автоматизации, так и на производственных предприятиях.



## 1\. Модули ADAM от Advantech и ScadaPy.



Простой пример использования python для опроса модулей Advantech Серии 4000.



Для считывания данных и передачи команд управления используется собственный протокол DCON. Когда-то давно была распространена программа от этого производителя и называлась, если не ошибаюсь, Adam View или GeniDAQ. Мы в свое время с нее начинали, было очень интересно. На сегодняшний день мне достались несколько модулей, которые вполне еще работоспособны.

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

[1]: https://habrahabr.ru/post/339868/
[2]: https://habrahabr.ru/post/339678/
[3]: https://habrahabr.ru/post/339008/
[4]: https://habrahabr.ru/post/339800/
[5]: https://habrahabr.ru/post/340196/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Серьезная уязвимость в популярной библиотеке шифрования подрывает безопасность миллионов крипто-ключей
habra.16
habrabot(difrex,1) — All
2017-10-16 23:00:03


[![image][1]][2]

_Изображение: [crocs.fi.muni.cz][3]_

Международная группа исследователей информационной безопасности из Великобритании, Словакии, Чехии и Италии обнаружила критическую уязвимость в популярной библиотеке шифрования [RSA Library v1.02.013][4] от Infineon. Ошибка в алгоритме для генерации простых чисел RSA, делает сгенерированные с помощью библиотеки Infineon ключи шифрования подверженными факторизации — это позволяет злоумышленникам раскрывать секретную часть ключа.

Уязвимая библиотека применяется для обеспечения безопасности национальных ID-карт в нескольких странах, а также во многих популярных программных продуктах, используемых как государственными органами, так и бизнесом. [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/a49/e28/b2a/a49e28b2a4c802a52095b3be71bb26cb.png
[2]: https://habrahabr.ru/company/pt/blog/340230/
[3]: https://crocs.fi.muni.cz/public/papers/rsa_ccs17
[4]: https://www.commoncriteriaportal.org/files/epfiles/0782V2a_pdf.pdf
[5]: https://habrahabr.ru/post/340230/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Самые неординарные языки программирования
habra.16
habrabot(difrex,1) — All
2017-10-17 00:00:05


![][1]

Признаться честно единственная моя связь с программированием в том, что мой брат программист, ну еще я в школе учил Pascal. Однако, я полностью осознаю всю сложность и красоту программирования. Создать программу, код которой не будет содержать «мусора», достойно похвалы. Что уж говорить о создании самого языка, на котором и пишутся программы. Проще говоря — это сложно, чертовски сложно. И, значит, это должно быть обдуманно и нести какой-то смысл. Но не всегда. Сегодня мы с вами вместе приподнимем брови в удивлении, ознакомившись с самыми нелепыми и смешными языками программирования. Поехали. [Читать дальше →][2]

[1]: https://habrastorage.org/webt/59/d4/9b/59d49b376491a889383985.png
[2]: https://habrahabr.ru/post/339304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Ускоряем vagrant shared-folder на Windows хосте (UPD. не всё так гладко)
habra.16
habrabot(difrex,1) — All
2017-10-17 03:00:04


![][1]

Я полтора года мучился с одной неприятной особенностью ubuntu под vagrant — чертовски медленная расшаренная папка. Простые бенчмарки показывали просадку производительности I/O операций почти на 2 порядка, проекты на php работали до 10 раз медленнее чем на нативном хосте. Так вот, сегодня я задолбался окончательно, хорошо поискал… и оказалось что есть решение, и теперь я просто не могу не поделиться им с кем-то. Решение простое, кому-то покажется очевидным, кто-то знал о нём с рождения (ну или будет так утверждать), но я уверен что знают о нём не все.
[Кнопка для тех кто не знает о nfs][2]

[1]: https://habrastorage.org/webt/59/e3/38/59e338a218a34674224980.png
[2]: https://habrahabr.ru/post/340108/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] История взлома всех игр в Telegram
habra.16
habrabot(difrex,1) — All
2017-10-17 04:00:10


Сейчас компьютерные игры везде. Присутствуют они и в Telegram. Расскажу о том, как были взломаны практически все игры этого мессенджера, обойдя самых первоклассных игроков, находящихся в топах скорбордов. Хочу поделится результатами исследований. О различных методиках взлома, читинга и путях обхода логики игр под катом.

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

[1]: https://habrastorage.org/webt/59/dc/1f/59dc1f0b788e2958642502.jpeg
[2]: https://habrahabr.ru/post/339596/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Айтрекинг: доступные решения и их особенности
habra.16
habrabot(difrex,1) — All
2017-10-17 09:00:04


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

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

[1]: https://habrastorage.org/getpro/habr/post_images/bf4/6c0/d9d/bf46c0d9d8bda3b9793a624fa5311ff2.jpg
[2]: https://habrahabr.ru/post/339424/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] WAF глазами хакеров
habra.16
habrabot(difrex,1) — All
2017-10-17 11:30:04


![][1]
Привет, Хабр! Сегодня мы поговорим об одном из современных механизмов защиты веб-приложений, а именно о WAF, Web Application Firewall. Мы расскажем, на чем основываются и как работают современные WAF, какие существуют способы обхода и bypass-техники, как их применять, а также почему ни в коем случае не стоит всецело полагаться на WAF. Мы представим свой взгляд пентестеров, которые никогда не принимали участие в разработке WAF и которые собирали информацию из открытых источников и на основе своего опыта, поэтому о некоторых тонкостях работы WAF мы можем даже и не подозревать.
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/59/e5/55/59e555ea45527050889028.png
[2]: https://habrahabr.ru/post/340144/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Расставим точки над .NET Core и .NET Standard
habra.16
habrabot(difrex,1) — All
2017-10-17 13:30:07


.NET Core и .NET Standard — самые новые на сегодняшний день технологии .NET, поэтому совершенно неудивительно, что не только они, но и их отличия от платформы .NET Framework вызывают много вопросов. В этой статье я расскажу, что эти технологии из себя представляют и в каких случаях будет более логично выбрать каждую их.

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

[1]: https://habrastorage.org/webt/59/e3/4e/59e34e13260dd198802025.png
[2]: https://habrahabr.ru/post/340128/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 ... 210