RSS
Pages: 1 ... 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 ... 210
[>] Релиз второй версии плагина Nodejs для Sublime Text
habra.16
habrabot(difrex,1) — All
2017-12-04 00:00:07


Добрый день, друзья! В ноябре 2016 года я начал играться с плагином [Nodejs][1] для Sublime Text. Плагин был маленьким и имел под катом несколько давних и хорошо известных багов.

В те дни я игрался с Nodejs и моим любимым редактором для кода был Sublime Text. По давно проторенной дорожке, я пошел на [packagecontrol.io][2] и поискал плагины для Nodejs. Нашелся вот [этот][3]. Поставив и поработав, я был очень разочарован, когда обнаружил, что некоторые заявленные фичи плагина не работают, или работают не так как заявлено…

В таких ситуациях, я обычно, иду на страничку проекта на GitHub и изучаю проект на предмет последней активности, чтобы убедиться, что проект не заброшен. Я обнаружил, что последний коммит был в 2013 году. Печалька, подумал я, учитывая, что это был единственный плагин для работы с Nodejs в Sublime Text.

Тогда я подумал… Это две частички технологии, которые мне нравятся, и я всегда хотел контрибьютить в Open Source.

План был прост, фиксить баги, с которыми я столкнусь. С течением времени, я понял, что фикс багов начал доставлять проблемы, из-за монолитной архитектуры плагина, отсутствия тестов и инструментов для отладки.
[Под катом, что был сделано за год][4]

[1]: https://packagecontrol.io/packages/Nodejs
[2]: https://packagecontrol.io
[3]: https://packagecontrol.io/packages/Nodejs
[4]: https://habrahabr.ru/post/343750/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Где моя оплата? Как мошенники зарабатывают на фрилансерах
habra.16
habrabot(difrex,1) — All
2017-12-04 08:30:03


## Где оплата за работу?


Работаю я в компании которая занимается разработкой сайтов и их сопровождением, ну и прочими сопутствующими услугами. Работу свою мы ведем на территории РФ. За бугор не лезем потому как, тут тоже хватает работенки.
В один прекрасный день, нам на корпоративную почту приходит письмо, от жительницы Украины, следующего содержания:
— _Здравствуйте, в интернете вы набираете на работу копирайтеров. Я откликнулась на предложение от Юлии Якубенко. Сделала заказ, который получила, но не получила по нем ни оплаты ни ответа, хотя я его нашла на сайте в интернете. Как мне это понимать? Ваша фирма со всеми сотрудниками так поступает??? Прошу вас дать ответ на мое сообщение!_

**Скриншот**
![image][1]


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

[1]: https://habrastorage.org/getpro/habr/post_images/ac1/c39/47f/ac1c3947f88c286f5ca467ac9d00db87.jpg
[2]: https://habrahabr.ru/post/343808/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Тестирование LLVM
habra.16
habrabot(difrex,1) — All
2017-12-04 09:00:05


Продолжение. Начало [здесь][1].

![][2]


### Введение


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

[1]: https://habrahabr.ru/post/343344/
[2]: https://habrastorage.org/webt/ou/th/_x/outh_xx8y3xbhrcpshvdozfg5ek.jpeg
[3]: https://habrahabr.ru/post/343594/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Настройка аутентификации в SAP Netweaver AS Java (Часть 3 из 3)
habra.16
habrabot(difrex,1) — All
2017-12-04 09:00:05


### Вступление


[Первая часть][1] серии статей «Настройка аутентификации в SAP Netweaver AS Java» рассказывала о различных подходах к настройке аутентификации в приложениях, запускаемых на программной платформе SAP NW AS Java. Также в ней были обозначены области ответственности различных проектных групп (разработчики, функциональные консультанты, специалисты SAP Basis) за выполнение настроек аутентификации.

Во [второй части][2] была описана структура дескрипторов web.xml и web-j2ee-engine.xml, а также структура XML-файла authschemes.xml.

На общей схеме, введённой еще в первой части, обозначил элементы, которые буду рассматривать сейчас – это Policy Configurations.

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

[1]: https://habrahabr.ru/post/341876/
[2]: https://habrahabr.ru/post/343208/
[3]: https://habrastorage.org/webt/ce/x-/_k/cex-_kvayndaelspxga2z-g1kci.png
[4]: https://habrahabr.ru/post/343790/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Виртуальная пентест лаборатория
habra.16
habrabot(difrex,1) — All
2017-12-04 09:00:05


## Постановка проблемы


![][1]
Некоторое время назад я решил актуализировать свои знания в [пентесте (pentest)][2].

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

Практическая часть должна быть в виде пентест лаборатории с блэк-джеком и непотребствами из нескольких машин с различными уязвимостями.
[It all began with this white rabbit...][3]

[1]: https://habrastorage.org/webt/pl/kt/iz/plktiz4--uu26c-5zdl94vlurvg.jpeg
[2]: https://ru.wikipedia.org/wiki/%D0%98%D1%81%D0%BF%D1%8B%D1%82%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B0_%D0%BF%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%BD%D0%BE%D0%B2%D0%B5%D0%BD%D0%B8%D0%B5
[3]: https://habrahabr.ru/post/343780/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Используем Bash в SQL-стиле
habra.16
habrabot(difrex,1) — All
2017-12-04 11:30:08


Приветствую! Данная небольшая статья призвана осветить некоторые аспекты применения Bash для анализа файлов в SQL-стиле. Будет интересна для новичков, возможно, опытные пользователи также найдут для себя что-нибудь новое.

**Структура задачи:**
* projects
1. project1/ — проекты
* conf/
* <run\_configurations>\*.conf — конфигурации построения отчетов по таблицам
* reports/
* <run\_configurations>/
* report1.json — сами отчеты, содержат статистику по таблицам Apache Hive
* report2.json
2. project2/
...
**Надо**: найти просроченные отчеты.

Итак, расчехляем Bash, открываем отдельный терминал для man-ов и приступаем)

Всех, кому интересно — прошу под кат.
[Читать дальше →][1]

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

[>] Разбираемся, что же там нового открыли в задаче о ферзях
habra.16
habrabot(difrex,1) — All
2017-12-04 11:30:08


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



[![image][2]
][3]Сможете поставить ещё шесть? А найти все решения?
(картинка из статьи)



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


* Отличная статья ---пресс служба университета---> [невразумительный пресс-релиз][4].
* Пресс релиз ---занятный перевод---> [непонятная статья на гиктаймс][5]

Стоит отметить, что пять наугад открытых ссылок на русском ещё меньше проясняли картину происходящего.



Я тут подумал — надо бы кому-то эту странную цепочку прервать и нормальным языком изложить суть событий.



О чём пойдёт речь:


* [История задачи][6]
* [Латинский квадрат][7]
* [Задача о восьми ферзях][8]
* [Три типа задачи "о ферзях"][9]
* [Расстановка N ферзей][10]
* [Подсчет числа решений][11]
* [Дополнение до N ферзей][12]
* [Вариации задачи][13]
* [Модели и сложность][14]
* [Линейный поиск для N ферзей][15]
* [Как считать число решений на практике][16]
* [Дополнение до N][17]
* [Выводы][18][Читать дальше →][19]

[1]: http://www.jair.org/papers/paper5512.html
[2]: https://habrastorage.org/web/21b/c20/ab9/21bc20ab9a964a86886b5fff17a94799.png
[3]: https://habr.ru/topic/343738/
[4]: https://www.st-andrews.ac.uk/news/archive/2017/title,1539813,en.php
[5]: https://geektimes.ru/post/292631/
[6]: https://habr.ru/post/343738/#history
[7]: https://habr.ru/post/343738/#latin_square
[8]: https://habr.ru/post/343738/#eight_queens
[9]: https://habr.ru/post/343738/#types
[10]: https://habr.ru/post/343738/#classic
[11]: https://habr.ru/post/343738/#counting_problem
[12]: https://habr.ru/post/343738/#completion
[13]: https://habr.ru/post/343738/#other
[14]: https://habr.ru/post/343738/#problems
[15]: https://habr.ru/post/343738/#linear
[16]: https://habr.ru/post/343738/#counting
[17]: https://habr.ru/post/343738/#asp
[18]: https://habr.ru/post/343738/#conclusions
[19]: https://habrahabr.ru/post/343738/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Первый в России митап по Apache Ignite, 12 декабря
habra.16
habrabot(difrex,1) — All
2017-12-04 14:00:09


Друзья, приглашаем всех на посвящённый Ignite митап 12 декабря в московском ImpactHub (метро Китай-Город). Такие мероприятия мы хотим регулярно проводить в Москве и Санкт-Петербурге, и надеемся, что они станут местом встреч российских пользователей и разработчиков Ignite, специалистов по In-Memory Computing, а также всех, кто интересуется распределенными системами. Здесь можно будет обсудить любые вопросы, связанные с работой или развитием экосистемы.

На первом митапе мы хотим познакомить вас российскими банком и крупным телекомом, использующими Ignite каждый день.

**Программа встречи:**

— 18:30: Сбор гостей;
— 19:00: Рассказ о внедрении Apache Ignite в Сбербанке (Михаил Хасин, Сбербанк);
— 19:45: «Как мы построили Complex Event Processing крупного телеком-оператора на Apache Ignite» (Виктор Ходяков, Gridfore);
— 20:30: Секретный доклад;
— 21:15: Общение в кулуарах, заключительный кофе;
— 22:00: Окончание. [Читать дальше →][1]

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

[>] Программирование на телефоне используя эмулятор терминала Termux
habra.16
habrabot(difrex,1) — All
2017-12-04 14:30:09


Приветствую читателей! В этой статье я расскажу о том, как можно, имея android телефон, писать программы. Говорю сразу — root права не нужны.


### Что нам понадобится?


Первое, что нам понадобится — андроид телефон со установленным на него приложением [Termux][1] (есть в [Google Play][2]). Для полноценной работы с терминалом, нам нужно достаточно памяти. У меня с десятками установленных пакетов приложение занимает 1.5 ГБ памяти.
Так же, для комфортного кодинга желательно, чтобы телефон был с поддержкой OTG, и у вас была клавиатура с подключением по USB, чтобы писать код на клавиатуре (куда удобнее). Если уж нет этого, то качаем клавиатуру [Hacker's Keyboard][3]. В ней есть клавиша Ctrl, что нам важно.

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

[1]: https://termux.com
[2]: https://play.google.com/store/apps/details?id=com.termux
[3]: https://4pda.ru/pages/go/?u=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.pocketworkstation.pckeyboard&e=7621721
[4]: https://habrahabr.ru/post/343760/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Нейросеть для определения лиц, встроенная в смартфон
habra.16
habrabot(difrex,1) — All
2017-12-04 14:30:09


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


## Введение


Впервые определение лиц в публичных API появилось во фреймворке Core Image через класс CIDetector. Эти API работали и в собственных приложениях Apple, таких как Photos. Самая первая версия CIDetector использовала для определения метод на базе алгоритма Виолы — Джонса [[1]][2]<>. Последовательные улучшения CIDetector были основаны на достижениях традиционного машинного зрения.

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

[1]: https://habrastorage.org/webt/vg/ch/ya/vgchyavvz_oziabpxfjs5y5qgvs.png
[2]: #1
[3]: https://habrahabr.ru/post/343810/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Правда ли, что будущее CPaaS за «Serverless» технологиями?
habra.16
habrabot(difrex,1) — All
2017-12-04 15:00:10


![][1]


Две недели назад мы провели вторую конференцию INTERCOM о голосовых и видео коммуникациях. WebRTC, звонки через браузер, machine learning, big data – вся вот эта популярная история. Одним из приглашенных спикеров был Цахи Левент-Леви, более известный как автор [bloggeek.me][2] – ультимативного источника информации о WebRTC в современных браузерах. В докладе (кстати, у меня есть [видеозапись][3]) Цахи рассказывал про состояние индустрии и что сейчас можно делать с голосом и видео в браузерах. А вернувшись в Израиль написал интересную статью про «Serverless»-технологии при работе с коммуникационными платформами. Адаптированный для Хабра перевод предлагаю под катом.
[Читать дальше →][4]

[1]: https://habrastorage.org/webt/we/d-/dm/wed-dmltmyhlkdqjb5m9m9sdc1e.png
[2]: https://bloggeek.me/
[3]: https://www.youtube.com/watch?v=t7-832m8xGo&index=12&list=PLe3Nq0ymzoBHO2YBpFizNOXkr4vNZvU2u
[4]: https://habrahabr.ru/post/343678/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как программисты с PVS-Studio ошибки в проектах искали
habra.16
habrabot(difrex,1) — All
2017-12-04 15:30:08


Недавно сайт Pinguem.ru совместно с командой PVS-Studio устраивали конкурс, в котором программистам было необходимо в течение месяца использовать статический анализатор PVS-Studio для нахождения и исправления ошибок в коде open-source проектов. Благодаря их стараниям, программы в мире стали чуточку безопаснее и надежнее. В статье мы рассмотрим парочку наиболее интересных ошибок, которые были найдены при помощи PVS-Studio.


![Picture 13][1]


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

[1]: https://habrastorage.org/getpro/habr/post_images/5c5/335/f13/5c5335f13aca2369c8b7f4dc81c6a26d.png
[2]: https://habrahabr.ru/post/343844/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пирожки в Go
habra.16
habrabot(difrex,1) — All
2017-12-04 17:30:08


![][1]

В продолжение эпопеи с [дистрибутивно-семантическими пирожками][2] (и в погоне за модными тенденциями) решил переписать веб-сервис с лапидарного Питона на прогрессивный Go. Заодно был вынужден перенести и всю «интеллектуальную» часть (благо, не бином Ньютона). Сделать это оказалось куда проще и приятней, чем предполагал в начале. Впрочем, на медово-синтаксическом празднике жизни не обошлось без ложки дёгтя — самая быстрая гошная «числодробилка», какую смог найти (mat из gonum) таки уступила по скорости питоновской связке numba + numpy.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/h5/zn/a5/h5zna5qtbveolyysgtx6wgaqqto.jpeg
[2]: https://habrahabr.ru/post/275913/
[3]: https://habrahabr.ru/post/343788/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Объяснение SNARKs. Знание о принятом коэффициенте и достоверное слепое вычисление полиномов (перевод)
habra.16
habrabot(difrex,1) — All
2017-12-04 22:00:05


Привет, Хабр! Представляю вашему вниманию перевод статей блога ZCash, в которых рассказывается о механизме работы системы доказательств с нулевым разглашением SNARKs, применяемых в криптовалюте ZCash (и не только).

Предыдущая статья: [Объяснение SNARKs. Гомоморфное скрытие и слепое вычисление полиномов (перевод)][1]

В этой статье мы рассмотрим тест на принятый коэффициент и слепое вычисление полиномов, поддающихся проверке. Поехали…
[Читать дальше →][2]

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

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


## Спасибо Elasticweb



### Предыстория


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

Живет себе сайт своей жизнью, никому не мешает, как вдруг получаю я запросы на определенную директорию, с периодичностью ровно в 1 минуту, с одного и того же ip. Плюс редкие запросы с разных ip, направленные на поиск административной панели сайта. Разумеется ip я заблокировал, но он продолжал настаивать на своем.

![image][1]
[Читать полную версию][2]

[1]: https://habrastorage.org/getpro/habr/post_images/402/2a1/5d7/4022a15d7f07f644dd22356df5f98685.jpg
[2]: https://habrahabr.ru/post/343774/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Дебаты об Отличном Сервере Приложений Java c Tomcat, Jboss, GlassFish, Jetty и Liberty Profile
habra.16
habrabot(difrex,1) — All
2017-12-04 23:30:04


Всем доброго!
Что ж у нас очередной новый [курс Java Enterprise,][1] а это значит, что есть то, чем мы с радостью поделимся с вами. Просьба особо не обращать внимания на версии и даты, т.к. суть от этого особо не меняется (или, если считаете, что меняется, то ждём комментарии).

**Вступление: Да начнутся дебаты…**

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

**Что делает сервер приложений сервером приложений, мистер Лебовски?**

Что представляет собой сервер приложений — вопрос, вызывающий много споров в силу неточности определения. Википедия, как неоспоримый источник знаний, говорит следующее:
Java Platform, Enterprise Edition, сокращенно Java EE (до версии 5.0 — Java 2 Enterprise Edition или J2EE) — набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий.
Прости, Википедия, но в целях этой статьи, нам плевать на педантичные описания и полную имплементацию Java EE. Мы больше заботимся о нуждах и желаниях разработчиков.
Большинство разработчиков работают над веб-приложениями и резко используют все навороченные особенности EE-спецификации. На самом деле, ныне доступные сервера, обладающие только базовым функционалом, являются наиболее используемыми, как показал наш [Отчет Производительности Разработчиков][2]:

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

[1]: https://otus.pw/p8NK/
[2]: http://zeroturnaround.com/rebellabs/devs/developer-productivity-report-2012/
[3]: https://habrastorage.org/webt/8r/h8/lo/8rh8lozzjnfiv7oplge2syqumvu.png
[4]: https://habrahabr.ru/post/343890/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Вероятностная интерпретация классических моделей машинного обучения
habra.16
habrabot(difrex,1) — All
2017-12-05 00:00:04


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


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

[1]: https://habrastorage.org/getpro/habr/post_images/7dc/2f7/207/7dc2f72074162747496f561e842540e3.gif
[2]: https://habrahabr.ru/post/343800/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Как я написал приложение, которое за 15 минут делало тоже самое, что и регулярное выражение за 5 дней
habra.16
habrabot(difrex,1) — All
2017-12-05 01:30:04


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


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

Несколько недель назад вышла замечательная англоязычная статься об open-source python-библиотеки **FlashText**. Эта библиотека предоставляла быстрое работающее решение задачи поиска и замены ключевых слов в тексте.

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

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

[>] Строгая типизация в нестрогих тестах
habra.16
habrabot(difrex,1) — All
2017-12-05 02:30:03


Уже больше 10 лет \_большая\_ часть моей работы — чистый JavaScript. Но иногда приходится заниматься и чуть более типизированными языками. И каждый раз после такого контакта остается странное чувство «непонятности», почему же в js вот так же сделать нельзя.

Особенно потому, что можно. И сегодня мы попробуем добавить немного типизации в самую хаотическую область javascript — mock-и в unit-тестах.

А то говорят тут всякие, что [mocking is a coding smell][1].


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

[1]: https://medium.com/javascript-scene/mocking-is-a-code-smell-944a70c90a6a
[2]: https://habrahabr.ru/post/343720/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Архитектура сервиса сбора и классификации объявлений жилья из Вконтакте
habra.16
habrabot(difrex,1) — All
2017-12-05 10:30:09


![][1]

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

[1]: https://habrastorage.org/webt/k6/zb/bg/k6zbbg6c9o9icbkmcecgotnojmm.png
[2]: https://habrahabr.ru/post/342220/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как мы расписание общественного транспорта в 2ГИС добавляли
habra.16
habrabot(difrex,1) — All
2017-12-05 11:00:07


![][1]

2ГИС помогает ориентироваться в городе. Открываешь приложение, вводишь в поиск название улицы или организации, находишь, радуешься. После того, как нужная организация найдена, возникает резонный вопрос: как же туда добраться? И если автомобильным сценариям мы в последнее время уделяли значительное внимание, то поиск проезда на общественном транспорте оказался немного подзабыт. Я расскажу про то, как создавался поиск проезда, поделюсь тонкостями сбора и обработки информации.
[Поехали!][2]

[1]: https://habrastorage.org/webt/iv/vq/vz/ivvqvzsblexpxjsszzlpjetb3ry.png
[2]: https://habrahabr.ru/post/343924/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Как я написал приложение, которое за 15 минут делало то же самое, что и регулярное выражение за 5 дней
habra.16
habrabot(difrex,1) — All
2017-12-05 12:00:08


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


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

Несколько недель назад вышла замечательная англоязычная статься об open-source python-библиотеки **FlashText**. Эта библиотека предоставляла быстрое работающее решение задачи поиска и замены ключевых слов в тексте.

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

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

[>] tldr — альтернатива man с названием, говорящим за себя
habra.16
habrabot(difrex,1) — All
2017-12-05 12:00:08


Все мы любим `--help` и `man`. Несмотря на появление многочисленных форумов, Stack Exchange и прочих ресурсов, хорошим тоном в начале решения своих проблем по-прежнему остаётся самостоятельный поиск ответа в официальной документации _(и на этих ресурсах вам скорее всего об этом сразу напомнят)_. Однако лень продолжает двигать прогресс даже там, где не всегда того ожидаешь. Впрочем, это не только лень — бывают и другие аргументы в пользу «упрощений»…

В общем, оказалось, что классический `man` утраивает не всех. Поэтому появился проект [tldr][1], который, следуя своей расшифровке «Too long; didn't read», решил принести в консоль лаконичную документацию, содержащую только самое главное. Проекту tldr уже больше 3 лет, но про него ещё почему-то не писали на хабре.

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

[1]: https://tldr.sh/
[2]: https://habrastorage.org/webt/od/2n/ru/od2nrue6wv-i-rsmygff-bj6vry.jpeg
[3]: https://habrahabr.ru/post/343702/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Присвоение имён: руководство для программиста
habra.16
habrabot(difrex,1) — All
2017-12-05 12:30:09


_Перевод [Naming 101: Programmer’s Guide on How to Name Things][1]_.

Присвоение имён — одна из главных трудностей в разработке. Невозможно подсчитать, сколько времени мы тратим на обдумывание имён и на попытки разобраться в коде с плохими именами. И не важно, объекты это, методы, классы или что-то другое. Считается доказанным фактом, что мы тратим больше времени на чтение кода, а не на его написание, поэтому **хорошие правила присвоения имён в будущем облегчат вам жизнь**.

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

Ниже объясним важность хороших правил присвоения имён и поделимся полезными советами.
[Читать дальше →][2]

[1]: https://blog.elpassion.com/naming-101-quick-guide-on-how-to-name-things-a9bcbfd02f02?source=topic_page---8------1------------------1&gi=5b88fadea72b
[2]: https://habrahabr.ru/post/343932/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Tcl/Tk. Тематические виджеты TTK и дизайнер TKproE-2.20
habra.16
habrabot(difrex,1) — All
2017-12-05 14:00:08


![image][1]Просматривая свои [заметки ][2]по проектированию GUI с использованием виджетов Tk, я почувствовал какую-то неудовлетворенность. А дело оказалось в том, что я фактически упустил работу с тематическими виджетами ttk (themed tk). Они в скользь были задействованы при рассмотрении пакета Tkinter для Python и использовании дизайнера [Page ][3]. Там речь шла о виджете TNotebook (блокнот, записная книжка) из пакета ttk. [Читать дальше →][4]

[1]: https://habrastorage.org/webt/gf/rb/pk/gfrbpkyntedc5r5z9iwcfhotnek.png
[2]: https://habrahabr.ru/post/333742/
[3]: https://habrahabr.ru/post/335712/
[4]: https://habrahabr.ru/post/343930/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Введение в обучение с подкреплением: от многорукого бандита до полноценного RL агента
habra.16
habrabot(difrex,1) — All
2017-12-05 14:00:08


Привет, Хабр! Обучение с подкреплением является одним из самых перспективных направлений машинного обучения. С его помощью искусственный интеллект сегодня способен решать широчайший спектр задач: от робототехники и видеоигр до моделирования поведения покупателей и здравоохранения. В этой вводной статье мы изучим главную идею reinforcement learning и с нуля построим собственного самообучающегося бота.

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

[1]: https://habrastorage.org/webt/q9/gx/s6/q9gxs6zyezpxccjaexi8erd6lu4.jpeg
[2]: https://habrahabr.ru/post/343834/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Шаблон проектирования Entity-Component-System — реализация и пример игры
habra.16
habrabot(difrex,1) — All
2017-12-05 14:30:08


![image][1]



В этой статье я хочу обсудить шаблон проектирования «сущность-компонент-система» (Entity-Component-System, **ECS**). По этой теме можно найти много информации в Интернете, поэтому я не буду глубоко вдаваться в объяснения, а больше расскажу о моей собственной реализации.


## Часть 1: Реализация шаблона Entity-Component-System на C++


Начнём сначала. Полный исходный код моей реализации ECS можно найти в репозитории на [github][2].

Entity-Component-System, в основном используемый в играх — это шаблон проектирования, обеспечивающий огромную гибкость в проектировании общей архитектуры программного обеспечения[1]. Такие большие компании, как Unity, Epic или Crytek используют этот шаблон в своих фреймворках, чтобы предоставить разработчикам очень богатый возможностями инструмент, с помощью которого они могут разрабатывать собственное ПО. Прочитать более широкое обсуждение по этой тематике можно в этих постах [2,3,4,5].
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/db6/486/421/db6486421d2282d555d5ac5af577aafc.png
[2]: https://github.com/tobias-stein/EntityComponentSystem
[3]: https://habrahabr.ru/post/343778/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] DNS-туннель, PsExec, кейлоггер: разбираем схему и технические инструменты атаки
habra.16
habrabot(difrex,1) — All
2017-12-05 15:00:08


Статью «Один квартал из жизни SOC. Три инцидента без купюр» весьма активно плюсовали, так что мы решили рассказать о еще одной интересной атаке, расследованием которой мы недавно занимались.

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

Некоторое время назад крупная компания с развитой инфраструктурой обратилась к нам за помощью. Проблема заключалась в странных событиях в инфраструктуре компании:

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

[1]: https://habrastorage.org/webt/eu/kn/ec/euknecun9xazfqvydvixn5brbiq.jpeg
[2]: https://habrahabr.ru/post/343668/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Почему repository в pom.xml — плохая идея
habra.16
habrabot(difrex,1) — All
2017-12-05 15:30:08


Где-то полгода назад я опубликовал [туториал][1], посвящённый добавлению в проект библиотек, которых нет в репозиториях maven. Речь шла о маленьких проектах, и я порекомендовал ставить тег repository прямо в pom.xml, чтобы можно было собирать проект без необходимости править settings.xml.


![][2]

В комментариях этот подход критиковали [sshikov][3], [igor\_suhorukov][4], [jbaruch][5] и многие другие. Там же в комментариях мне дали ссылку на [статью][6] Брайана Фокса, в которой чётко и понятно изложено, чем чреваты repository в pom.xml. Статья 2009 года, но не потеряла актуальности до сих пор. Перевода на Хабре я не нашел — поэтому предлагаю вашему вниманию свой.

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

[1]: https://habrahabr.ru/company/lanit/blog/323008/
[2]: https://habrastorage.org/webt/aa/tj/pk/aatjpkkhgbdqbka8-6qvlmawhsm.jpeg
[3]: https://habrahabr.ru/users/sshikov/
[4]: https://habrahabr.ru/users/igor_suhorukov/
[5]: https://habrahabr.ru/users/jbaruch/
[6]: http://blog.sonatype.com/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/
[7]: https://habrahabr.ru/post/343934/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Собираем пользовательскую активность в Js и ASP
habra.16
habrabot(difrex,1) — All
2017-12-05 16:30:07


После написания функционала авторекордера действий пользователя, названного нами breadcrumbs, в [WinForms][1] и [Wpf][2], пришло время добраться и до клиент-серверных технологий.

![image][3]
Начнем с простого — JavaScript. В отличии от десктопных приложений тут все довольно просто — подписываемся на события, записываем необходимые данные и, в общем-то, всё.
[Читать дальше →][4]

[1]: https://habrahabr.ru/company/devexpress/blog/342530/
[2]: https://habrahabr.ru/company/devexpress/blog/343358/
[3]: https://habrastorage.org/getpro/habr/post_images/d11/4eb/064/d114eb064787257a148e2354adea1add.jpg
[4]: https://habrahabr.ru/post/343816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Стоит ли свое хобби развить в стартап?
habra.16
habrabot(difrex,1) — All
2017-12-05 16:30:07


![image][1]

Много лет назад я увлекся программированием и начал писать для себя приложение (плагин для AutoCAD). И вот прошли годы и встает вопрос — развить свое хобби в стартап или оставить его и дальше как хобби? Рассуждения на тему под катом
[Читать дальше →][2]

[1]: https://habrastorage.org/webt/5a/aw/mc/5aawmctdx4kr8z17dqhq6qqgtr8.jpeg
[2]: https://habrahabr.ru/post/343912/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Собираем пользовательскую активность в JS и ASP
habra.16
habrabot(difrex,1) — All
2017-12-05 17:00:08


После написания функционала авторекордера действий пользователя, названного нами breadcrumbs, в [WinForms][1] и [Wpf][2], пришло время добраться и до клиент-серверных технологий.

![image][3]
Начнем с простого — JavaScript. В отличии от десктопных приложений тут все довольно просто — подписываемся на события, записываем необходимые данные и, в общем-то, всё.
[Читать дальше →][4]

[1]: https://habrahabr.ru/company/devexpress/blog/342530/
[2]: https://habrahabr.ru/company/devexpress/blog/343358/
[3]: https://habrastorage.org/getpro/habr/post_images/d11/4eb/064/d114eb064787257a148e2354adea1add.jpg
[4]: https://habrahabr.ru/post/343816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 8 учебных проектов
habra.16
habrabot(difrex,1) — All
2017-12-06 05:00:04


_«Мастер совершает больше ошибок, чем новичок — попыток»_

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


### Проект 1. Клон Trello



![image][1]

_[Клон Trello от Indrek Lasn .][2]_

Что вы освоите:

* Организация маршрутов обработки запросов (Routing).
* Drag and drop.
* Как создавать новые объекты (доски, списки, карточки).
* Обработка и проверка входных данных.
* Со стороны клиента: как использовать локальное хранилище, как сохранять данные в локальном хранилище, как читать данные из локального хранилища.
* Со стороны сервера: как использовать базы данных, как сохранять данных в базе, как читать данные из базы.

[Тут пример репозитория][3], сделанного на React+Redux.
[Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/881/d34/15a/881d3415a3f5f3c5a574d121815a5ff3.gif
[2]: https://trello-copy-axndcrswkc.now.sh/
[3]: https://github.com/wesharehoodies/simple-trello
[4]: https://habrahabr.ru/post/344006/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Не было печали, апдейтов накачали (Arch)
habra.16
habrabot(difrex,1) — All
2017-12-06 10:30:07


_По мотивам [этого поста][1]._



Про Archlinux ходит множество слухов, в том числе не совсем правдивых. В частности, устоявшееся общественное мнение говорит, что Арч часто ломается при обновлениях, так как bleeding edge. На практике это это одна из самых живучих и ремонтопригодных систем, которая может жить годами без переустановок, при этом обновляясь чуть не каждый день.



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



## Ситуация {#situaciya}



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

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

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

[>] Начало новой эры криптовалют? Биржи CME Group выпускают фьючерс на биткоин
habra.16
habrabot(difrex,1) — All
2017-12-06 12:00:08


![][1]

В среду, 29 ноября, различные СМИ со ссылкой на источники [Bloomberg][2] сообщили, что 18 декабря группа чикагских бирж CME Group и биржа Cantor Exchange выпускают фьючерс на биткоин. Также было объявлено, что операционный директор NASDAQ (крупнейшая технологическая биржа мира) Адена Фридман [заявила][3], что её структура рассматривает возможность запуска торговли фьючерсами и опционами на биткоин. Сейчас этот вопрос находится в ранней стадии обсуждения. По словам Фридман, в планах руководства биржи запустить продажи во втором квартале 2018 года.


### Что это означает для крипторынка?


Если вернуться к историкам и вспомнить манифест Сатоши Накамото, то биткоин и криптовалюты рассматривались как альтернатива и в итоге замена фиатным валютам (реальным деньгам). Почти десять лет развития криптовалют показали поэтапное формирование биткоина и альткоинов, но не в том направлении, в котором предлагал аноним Накамото. Сейчас мировые финансовые институты признали биткоин как минимум в качестве объекта инвестирования и инструмента сбережения средств. Однако не стоит путать это с признанием биткоина в качестве платежного средства: сейчас же никто не расплачивается золотыми слитками или монетами. Поэтому примерно такой же статус в глазах трейдоров имеет и биткоин: инструмент накопления и приумножения. Именно по этой причине на бирже будут торговаться фьючерсы (и возможно опционы), а не валютные пары BTC/USD или BTC/EUR.
[Читать дальше →][4]

[1]: https://habrastorage.org/webt/ot/d8/pu/otd8pu_e-yahgd5iz6ovv83ahbe.jpeg
[2]: https://www.bloomberg.com/news/articles/2017-11-28/cme-group-plans-to-manage-customer-exposure-to-bitcoin-futures
[3]: https://www.cnbc.com/2017/11/30/nasdaq-cool-on-bitcoin-futures-launch.html
[4]: https://habrahabr.ru/post/344010/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Настройка валидации DTO в Spring Framework
habra.16
habrabot(difrex,1) — All
2017-12-06 12:30:13


Всем привет! Сегодня мы коснёмся валидации данных, входящих через Data Transfer Object (DTO), настроим аннотации и видимости — так, чтобы получать и отдавать только то, что нам нужно.

Итак, у нас есть DTO-класс UserDto, с соответствующими полями:

public class UserDto {

private Long id;
private String name;
private String login;
private String password;
private String email;
}
Я опускаю конструкторы и геттеры-сеттеры — уверен, вы умеете их создавать, а увеличивать в 3-4 раза код смысла не вижу — представим, что они уже есть.

Мы будем принимать DTO через контроллер с CRUD-методами. Опять же, я не буду писать все методы CRUD — для чистоты эксперимента нам хватит пары. Пусть это будут create и updateName.
[Читать дальше →][1]

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

[>] Как при помощи токена сделать удаленный доступ более безопасным?
habra.16
habrabot(difrex,1) — All
2017-12-06 12:30:13


![][1]

В 2016 году компания Avast решила провести [ эксперимент ][2]над участниками выставки Mobile World Congress. Сотрудники компании создали три открытые Wi-Fi точки в аэропорту возле стенда для регистрации посетителей выставки и назвали их стандартными именами «Starbucks», «MWC Free WiFi» и «Airport\_Free\_Wifi\_AENA». За 4 часа к этим точкам подключились 2000 человек.



В результате эксперимента был составлен доклад, в котором сотрудники компании Avast проанализировали трафик всех подключившихся к открытым Wi-Fi точкам людей. Также была раскрыта личная информация 63% подключившихся: логины, пароли, адреса электронной почты и т.п. Если бы не представленный на выставке доклад, то участники эксперимента никогда бы и не поняли того, что кто-то получил доступ к их данным.



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

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

[1]: https://habrastorage.org/webt/uh/hn/vz/uhhnvzhtvwpdue0jq-ej2nnvg_k.jpeg
[2]: https://press.avast.com/en-us/avast-wi-fi-hack-experiment-demonstrates-reckless-behavior-of-mobile-world-congress-attendees
[3]: https://habrahabr.ru/post/343638/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Двенадцать советов по повышению безопасности Linux
habra.16
habrabot(difrex,1) — All
2017-12-06 14:30:08


[![image][1]][2]Мы живём в опасное время: едва ли не каждый день обнаруживаются новые уязвимости, на их основе создают эксплойты, под ударом может оказаться и обычный домашний компьютер на Linux, и сервер, от которого зависит огромная организация.

Возможно, вы уделяете внимание безопасности и периодически обновляете систему, но обычно этого недостаточно. Поэтому сегодня мы поделимся двенадцатью советами по повышению безопасности Linux-систем на примере CentOS 7.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/585/18b/a98/58518ba9884cfa5c4bc1cd9053ef5b4d.png
[2]: https://habrahabr.ru/company/ruvds/blog/343892/
[3]: https://habrahabr.ru/post/343892/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Dart: как правильно начать знакомство с языком?
habra.16
habrabot(difrex,1) — All
2017-12-06 15:00:08


![image][1]



Всем привет!
На прошлой неделе [мы][2] провели вторую ежегодную встречу русскоязычного сообщества Dart (ака Dartup) и получили очень информативную и полезную обратную связь от людей, пришедших на мероприятие. В этом году нас было около 130 человек. Если вы не были и хотите посмотреть, вот [ссылка][3] на записи. Спасибо за митап всем участникам, организаторам и партнерам.
Многие гости в кулуарах и в [телеграм-канале][4], посвященном встрече, спрашивали нас, почему, обладая большой экспертизой в языке, мы до сих пор не задумались о Dart академии, вебинарах или хотя бы кратком руководстве для новичков. Признаюсь, чтобы начать такой процесс, нам нужен был импульс от вас. Мы его получили. Поэтому начинаем серию статей для тех, кто интересуется языком и хочет попробовать в нем разобраться. И если вам понравится и пригодится эта информация, то мы как компания сможем больше уделять этому времени.


**Про что**
Давайте начнем с базового плана:

* Где узнать про Dart больше?
* Как и где попробовать?
* Настройка среды разработки
* Запуск Hello world
[Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/fc3/8c6/c9c/fc38c6c9cae0475d5cdb1860e0cfaed3.jpg
[2]: http://wrike.com
[3]: https://goo.gl/VfxuPP
[4]: https://t.me/rudart
[5]: https://habrahabr.ru/post/343988/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Восстановление таблиц Хаффмана в Intel ME 11.x
habra.16
habrabot(difrex,1) — All
2017-12-06 17:00:08


_Сегодня эксперт Positive Technologies Дмитрий Скляров на конференции Black Hat в Лондоне расскажет о том, [как устроена файловая система на которой располагается часть Intel CSME / ME версий 11.x][1] и некоторые файлы для этой системы. Мы представляем вашему вниманию его статью о восстановлении таблиц Хаффмана в Intel ME 11.x._

![][2]

Как [известно][3], многие модули Intel ME 11.x хранятся во Flash-памяти в упакованном виде, и для сжатия применяются два алгоритма — LZMA и [Huffman Encoding][4]. Для LZMА существует [публичная реализация][5], которую можно использовать для распаковки, но для Huffman все сложнее. Распаковщик Huffman Encoding в ME реализован на аппаратном уровне, и построение эквивалентного программного кода представляет собой сложную и нестандартную задачу. [Читать дальше →][6]

[1]: https://www.blackhat.com/eu-17/briefings/schedule/index.html#intel-me-flash-file-system-explained-8484
[2]: https://habrastorage.org/webt/y8/5r/wr/y85rwrvgodhd9khvw60c1-f-2pm.png
[3]: https://recon.cx/2014/slides/Recon%202014%20Skochinsky.pdf
[4]: https://en.wikipedia.org/wiki/Huffman_coding
[5]: http://www.7-zip.org/sdk.html
[6]: https://habrahabr.ru/post/344056/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Pygest #19. Релизы, статьи, интересные проекты, пакеты и библиотеки из мира Python [20 ноября 2017 — 5 декабря 2017]
habra.16
habrabot(difrex,1) — All
2017-12-06 17:00:08


![image][1] Всем привет! Это уже девятнадцатый выпуск дайджеста на Хабрахабр о новостях из мира Python.

Присылайте свои интересные события из мира Python. Вместе мы сделаем Python еще лучше:)

Итак, поехали!



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

[1]: https://habrastorage.org/files/aa2/815/f22/aa2815f2207940fab9ac72e85219fe3c.png
[2]: https://habrahabr.ru/post/344026/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Взлом сайта с помощью другого сайта. Доверяй, но проверяй
habra.16
habrabot(difrex,1) — All
2017-12-06 20:00:08


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

После более подробной беседы, выяснилось:

* Аккаунт хостинга, на котором был расположен сайт, ранее был блокирован за рассылку спама.
* По словам клиента проблема решилась, когда он обратился к предыдущим разработчикам, они восстановили доступ и все снова стало работать как раньше.
* Какие именно манипуляции проводили разработчики он не знает, так как хостинг зарегистрирован не на него, а на какого то его друга, который и посоветовал ему этих ребят.
* Сайт снова не работает, но связаться с кем либо из тех кто устранял проблему в прошлый раз, на данный момент, он не может.
Нам стало интересно, что же там такое происходит с сайтом, что он уже второй раз выходит из строя. Мы попросили клиента связаться со своим другом, на которого оформлен хостинг и узнать у него доступы к панели управления, а сами связались со службой технической поддержки хостинга, для уточнения причин неработоспособности сайта.
[Читать дальше →][1]

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

[>] [recovery mode] [Перевод статьи] 7 базовых правил защиты от фишинга
habra.16
habrabot(difrex,1) — All
2017-12-06 20:00:08


![image][1]



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



Согласно данным некоторых исследований, в 2016 году ежедневно создавалось около 5000 фишинг сайтов. В 2017 эта цифра будет еще больше. Секрет жизнестойкости этого вида мошенничества в том, что он опирается не на “дыры” в программном обеспечении, а на уязвимость в человеческой сущности, у которой есть доступ к важным данным. Поэтому нелишним будет в очередной раз напомнить, что такое фишинг, каковы самые распространенные виды фишинговых атак, а также способы противодействия им.


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

[1]: https://itsecurity.blog.fordham.edu/wp-content/uploads/2017/09/phishing03_web.png
[2]: https://habrahabr.ru/post/344066/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Релиз CLion 2017.3: существенные улучшения поддержки C++, интеграция с Valgrind Memcheck и Boost.Test и многое другое
habra.16
habrabot(difrex,1) — All
2017-12-06 20:30:08


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

Наша команда приготовила всем разработчикам на C и C++ новогодний подарок под елку – **новый релиз CLion 2017.3**! В этом посте постараемся рассказать, чем он хорош, прикинуть дальнейшие направления для развития продукта и, конечно, ответить на все интересующие вас вопросы в комментариях.



Коротко об основных улучшениях для тех, кто не хочет много читать:

* Поддержка языка C++

* Улучшения в таких подсистемах парсера, как list initialization и name lookup
* Поддержка расширений специфичных для компилятора Microsoft Visual C++
* Поддержка макроса _\_\_COUNTER\_\__
* И не только!
* Новые инструменты и фреймворки

* Valgrind Memcheck
* Boost.Test
* CMake 3.9, GDB 8.0, LLDB 5.0
* Существенные переработки и расширение возможностей в настройке компилятора, окружения, CMake, отладчика, и пр.
* Возможность запуска почти произвольной функции main, иконки для запуска функций main и тестов
* Возможность разрабатывать на Kotlin/Native в CLion
Можно прямо сейчас скачать бесплатную 30-дневную версию с [нашего сайта][1] и попробовать новые возможности (для этого мы даже подготовили специальный небольшой [демо-проект][2]). А ниже мы поговорим об улучшениях более подробно.
[Читать дальше →][3]

[1]: https://www.jetbrains.com/clion/download
[2]: https://github.com/anastasiak2512/CLionDemo2017_3
[3]: https://habrahabr.ru/post/344076/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как мы помогаем быстро аттестоваться по требованиям ИБ тем, кто переезжает в облако
habra.16
habrabot(difrex,1) — All
2017-12-07 12:00:07


![][1]

На сайте Роскомнадзора [вывешивают][2] в декабре плановые проверки на следующий год. Начинали с иностранных соцсетей, сейчас в очереди банки и ряд компаний на Дальнем Востоке. Не у всех всё гладко, а проверки подбираются близко. В результате это породило некоторую заинтересованность к переездам в аттестованное облако, поэтому хотелось бы рассказать подробнее про то, что может предстоять по ФЗ-149 и 152.

А ещё я видел, как аттестацию на соответствие ФЗ-152 делают по ошибке. Ниже поясню, почему она не всегда нужна.

Сейчас далеко не все понимают, что необходимо делать при развёртывании инфраструктуры не у себя в виде стойки. Российский рынок не сильно подкован в вопросах переезда в облако. Крупные госзаказчики интуитивно понимают, что облачные технологии (в частности гособлако) им необходимы, но не понимают, что нужно для этого сделать. У нас всё готово для таких ситуаций, есть специальный центр компетенций по информационной безопасности. Платформа аттестована по требованиям безопасности информации и позволяет размещать ГИС и ИСПДн, к которым предъявляются наивысшие требования по защите информации, остаётся только аттестовать решение клиента. С нашей помощью это обычно проходит за 2–3 месяца, что гораздо быстрее (самостоятельно это занимает обычно 6 месяцев).

**Давайте рассмотрим такую процедуру на примере. **Предположим, вы медицинская компания, которая очень охраняет персональные данные пациентов.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/kg/vg/7_/kgvg7_tarnfrqea5snurtd5hyka.png
[2]: https://rkn.gov.ru/plan-and-reports/contolplan/
[3]: https://habrahabr.ru/post/344084/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что я узнал после 1000 code review
habra.16
habrabot(difrex,1) — All
2017-12-07 14:30:08


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

Вот мои 3 (+1 бонусная) наиболее распространенные рекомендации по код-ревью.

![image][1]


### Рекомендация 1: Выбрасывайте исключения, если что то идет не так


Зачастую паттерн выглядит так:

List getSearchResults(...) {
try {
List results = // make REST call to search service
return results;
} catch (RemoteInvocationException e) {
return Collections.emptyList();
}
}

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

[1]: https://habrastorage.org/getpro/habr/post_images/2c4/684/8f3/2c46848f34aa4fc0a1ba109fc95d025d.jpg
[2]: https://habrahabr.ru/post/344094/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Улучшаем работу искусственного интеллекта в Nemesida WAF
habra.16
habrabot(difrex,1) — All
2017-12-07 15:00:10


![][1]

В [предыдущей статье][2] мы рассказали, как искусственный интеллект Nemesida WAF помогает с абсолютной точностью выявлять атаки на веб-приложения при минимальном количестве ложных срабатываний. В этой статье будет рассмотрен новый механизм работы Nemesida AI, позволяющий увеличить точность выявления атак в 2 раза по сравнению с сигнатурным методом, а также снизить количество ложных срабатываний до 0.01%.
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/59/e7/75/59e775120eb32190002675.png
[2]: https://habrahabr.ru/company/pentestit/blog/340704/
[3]: https://habrahabr.ru/post/344104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Ростелеком: чужие счета — это не спам
habra.16
habrabot(difrex,1) — All
2017-12-07 16:00:07


Уже с год длится такая история: на телефон раз в месяц, а то и чаще, стали приходить СМС от Ростелекома. Не подделка. Но про деньги. Увы.

На первый раз я удивился, на второй изумился, на третий — позвонил в техподдержку (да-да, ту, где надо голосом сказать роботу, по поводу чего ты звонишь; слова «спам» и даже «счет» он в моём исполнении не осилил, ну да ладно, я и не ждал). Пообщался, понервничал, попрощался — сообщения как приходили, так и продолжили (и сейчас летят, что и подвигло меня написать этот пост).

Текст в СМС незамысловатый. Не буду мучить видом фотографии на своем телефоне, приведу на желтом «цитатном» хабравском фоне контент:
> На ЛС 111111111111 выставлен счет №4 за ноябрь 2017г на сумму 200,00р. К оплате с учетом долга 300,00р._(номер ЛС я тут забил единицами, потому что получал я сообщения про разные ЛС; суммы были тоже разные, так что, полагаю, сообщали мне про долги разных абонентов)_

Договора у меня с РТ нет ни на что вообще, мобильный номер у меня давно, в общем, «ничто не предвещает беды», но СМС-дождь продолжается. Пару раз звонили грозными голосами (полагаю) сотрудники РТ, и вопрошали, когда я им деньги занесу, а то они в суд собрались. Узнавали в каждом случае, что номер мой, а договора у меня нет, задумывались, прощались…

[Секрет-то прост...][1]

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

[>] [Перевод] Отладка злого бага в рантайме Go
habra.16
habrabot(difrex,1) — All
2017-12-07 16:30:08


![][1]



Я большой поклонник [Prometheus][2] и [Grafana][3]. Поработав SRE в Google, я научился ценить хороший мониторинг и за прошедший год предпочитал пользоваться комбинацией этих инструментов. Я использую их для мониторинга своих личных серверов (black-box и white-box мониторинг), внешних и внутренних событий [Euskal Encounter][4], для мониторинга клиентских проектов и много другого. Prometheus позволяет очень просто писать кастомные модули экспорта для мониторинга моих собственных данных, к тому же вполне можно найти подходящий модуль прямо из коробки. Например, для создания симпатичной панели имеющихся метрик Encounter-событий мы используем [sql\_exporter][5].

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

[1]: https://habrastorage.org/webt/pb/wy/7i/pbwy7iszx6tlxruyh6xel5fhpc0.jpeg
[2]: https://prometheus.io/
[3]: https://grafana.com/
[4]: https://encounter.eus/
[5]: https://github.com/justwatchcom/sql_exporter
[6]: https://habrahabr.ru/post/344080/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Сверточная сеть на python. Часть 1. Определение основных параметров модели
habra.16
habrabot(difrex,1) — All
2017-12-08 01:30:03



Несмотря на то, что можно найти не одну статью, объясняющую принцип метода обратного распространения ошибки в сверточных сетях ([раз][1], [два][2], [три][3], [четыре][4], [пять][5] и даже дающих “интуитивное” понимание — [шесть][6]), мне, тем не менее, никак не удавалось полностью понять эту тему. Кажется, что авторы недостаточно внимания уделяют обычным примерам либо же опускают какие-то хорошо понятные им, но не очевидные другим особенности, и весь материал по этой причине становится неподъемным. Мне хотелось разложить все по полочкам для самого себя и в итоге конспекты вылились в статью. Я постарался исключить все недостатки существующих объяснений и надеюсь, что эта статья ни у кого не вызовет вопросов или недопониманий. И, может, следующий новичок, который, также как и я, захочет во всем разобраться, потратит уже меньше времени.
[Читать дальше →][7]

[1]: http://andrew.gibiansky.com/blog/machine-learning/convolutional-neural-networks/
[2]: https://grzegorzgwardys.wordpress.com/2016/04/22/8/#unique-identifier2
[3]: http://jefkine.com/general/2016/09/05/backpropagation-in-convolutional-neural-networks/
[4]: http://www.simon-hohberg.de/2014/10/10/conv-net.html
[5]: http://cthorey.github.io/backprop_conv/
[6]: http://soumith.ch/ex/pages/2014/08/07/why-rotate-weights-convolution-gradient/
[7]: https://habrahabr.ru/post/344008/?utm_source=habrahabr&utm_medium=rss&utm_campaign=344008#habracut

Pages: 1 ... 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 ... 210