RSS
Pages: 1 ... 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 ... 210
[>] 9 советов по увеличению эффективности парного программирования
habra.16
habrabot(difrex,1) — All
2017-10-05 14:30:30


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

![image][1]

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

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

[>] Грамматика MySQL на ANTLR 4
habra.16
habrabot(difrex,1) — All
2017-10-05 14:30:30


[![Грамматика MySQL на ANTLR 4][1]][2]



[Межсетевой экран уровня приложений][3] предназначен для анализа и фильтрации трафика в отношении какого-либо приложения или класса приложений, например [веб-приложений][4] или [СУБД][5]. При его построении возникает необходимость _разговаривать_ на языке этого приложения. Для реляционной СУБД таким языком становится диалект SQL. Предположим, что необходимо построить межсетевой экран для СУБД. В этом случае потребуется распознавать и анализировать предложения SQL для принятия решения об их соответствии заданной политике безопасности. В зависимости от решаемых задач (например, обнаружение атак типа SQL-инъекция, управление доступом, корреляция SQL- и HTTP-запросов) будет необходима та или иная глубина анализа SQL. Так или иначе, потребуется выполнять лексический, синтаксический и семантический анализ предложений SQL.

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

[1]: https://habrastorage.org/webt/59/d4/c9/59d4c94d20b25300224783.jpeg
[2]: https://habrastorage.org/webt/59/d4/c9/59d4c94d20b25300224783.jpeg
[3]: https://en.wikipedia.org/wiki/Application_firewall
[4]: https://habrahabr.ru/company/pt/blog/269165/
[5]: https://speakerdeck.com/dnkolegov/database-firewall-from-scratch
[6]: https://habrahabr.ru/post/339336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Самое сложное в программировании это…
habra.16
habrabot(difrex,1) — All
2017-10-05 15:00:06


![][1]

Мне очень понравилась ветка обсуждений на Quora.com: [What is the hardest part about learning to program?][2] Все 87 ответов я так и не прочитал, но понравившиеся, выделил в отдельную статью из 10 пунктов. Это вольный пересказ мнений многих разных людей. Если читателям будет интересно, я продолжу.


## 1\. Разница между высокими стандартами и своими низкими умениями


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

Что касается необычайных преимуществ программирования, то вот они: [Читать дальше →][4]

[1]: https://habrastorage.org/webt/59/d5/0d/59d50dbecfb4d426074452.jpeg
[2]: https://www.quora.com/What-is-the-hardest-part-about-learning-to-program
[3]: https://habrahabr.ru/post/209652/
[4]: https://habrahabr.ru/post/339356/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Немного предпятничных задачек на Bash
habra.16
habrabot(difrex,1) — All
2017-10-05 18:30:04





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



В _bash _частенько можно столкнуться с ситуацией, когда вроде как уже разобрался, и тут внезапно какая-то магия. Ковырнешь ее, а там еще целый пласт вещей, о которых раньше и не подозревал…
Под катом — несколько забавных задачек на _bash_, которые (надеюсь) могут оказаться интересными даже для середнячков. Удивить гуру я не надеюсь.., но все же перед тем как залезть под кат, сперва пообещайте ответить на задачки хотя бы для себя вслух — без man/info/google.
[Читать дальше →][1]

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

[>] Django ORM — медленный? Оптимизируем (хардкорно)
habra.16
habrabot(difrex,1) — All
2017-10-05 20:00:05


Наступила осень, и, несмотря на хорошую погоду, наши зрители потянулись за новым видеоконтентом. Бекенд-серверы, обслуживающие эмбеды с видео, стали упираться в CPU. С криками "а-а-а" прибежали системные администраторы и начали отбирать у отдела разработки ноутбуки и десктопы, грозясь поставить их в датацентры "на усиление". Разработке это конечно всё не понравилось и все поувольнялись с этой хренью решили что-нибудь сделать.

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

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

[>] [Перевод] Монады для Go-программистов
habra.16
habrabot(difrex,1) — All
2017-10-05 20:00:05


Монады используются для компоновки функции (function composition) и избавления от связанного с этим утомительного однообразия. После семи лет программирования на Go необходимость повторять `if err != nil` превращается в рутину. Каждый раз, когда я пишу эту строку, я благодарю Gopher’ов за читабельный язык с прекрасным инструментарием, но в то же время проклинаю за то, что чувствую себя наказанным Бартом Симпсоном.



![][1]

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

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

[>] Семантическая разметка: LaTeX, DocBook или ???
habra.16
habrabot(difrex,1) — All
2017-10-05 22:00:05


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

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

[>] [Из песочницы] ZFS и KVM. @home
habra.16
habrabot(difrex,1) — All
2017-10-06 10:00:52


![][1]

Символика эта и так на слуху, потому нет смысла подробно объяснять, [что это][2] [за зверь][3].



Здесь не будет [сравнения][4] с [LVM][5], ибо сравнивать muscle-car с jet-truck'ом хоть и можно, но бессмысленно.
Графиков и комиксов так же не завезли.
Это, скажем так, незавершенная история успеха, потому что апгрейд, которым она была вызвана, можно лишь прекратить, но не завершить.


[Взять щепотку лунного сахара и продолжить][6]

[1]: https://habrastorage.org/files/288/cd7/d9f/288cd7d9f5e2476e8bd2426418790351.jpg
[2]: http://xgu.ru/wiki/ZFS
[3]: https://ru.wikipedia.org/wiki/ZFS
[4]: http://xgu.ru/wiki/ZFSvsLVM
[5]: http://www.ilsistemista.net/index.php/virtualization/47-zfs-btrfs-xfs-ext4-and-lvm-with-kvm-a-storage-performance-comparison.html?limitstart=0
[6]: https://habrahabr.ru/post/339456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Пишем свою книгу заново
habra.16
habrabot(difrex,1) — All
2017-10-06 10:30:05


Прошло 4 года с публикации [«Пишем свою книгу»][1] и вышло второе издание книги про Boost и C++. Настало время выпустить второе издание публикации!

В данной статье я поделюсь информацией о том, что осталось за бортом предыдущей статьи:
![][2]
* Можно ли прожить на гонорары от книги
* Как заинтересовать людей в вашей книге
* Как сделать примеры нагляднее и интерактивнее
* Чем отличается выпуск второго издания, от написания первого
* Пара простых советов для продвижения
* Перевод книги на другие языки

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

[1]: https://habrahabr.ru/post/196008/
[2]: https://habrastorage.org/webt/59/d6/6c/59d66c02ad1cd933176485.png
[3]: https://habrahabr.ru/post/338946/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Пусть они вставляют пароли
habra.16
habrabot(difrex,1) — All
2017-10-06 12:00:05


_Примечание переводчика: Автор статьи — эксперт по социотехнической безопасности (Sociotechnical Security Researcher) в Национальном центре кибербезопасности Великобритании (NCSC), подразделении Центра правительственной связи (GCHQ), который отвечает за ведение радиоэлектронной разведки и обеспечение защиты информации органов правительства и армии._

![][1]

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

Так зачем организации это делают? Часто они не дают никаких объяснений, но если всё-таки дают, то говорят о «безопасности». NCSC не думает, что эти опасения обоснованы. Мы считаем, что блокировка вставки паролей (БВП) — это плохая практика, которая ухудшает безопасность. Мы считаем, что пользователям следует разрешить вставлять пароли.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/e91/81f/d8a/e9181fd8a8a2ffaa0df63eab280b0748.jpg
[2]: https://habrahabr.ru/post/339476/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Когда Феникс успел убить Рейлс?
habra.16
habrabot(difrex,1) — All
2017-10-06 13:31:33


![][1]



Случается, что некоторые задачи не удаётся решить на привычном для вас языке программирования. Предположим, перед нами встала задача реализовать обмен сообщениями в реальном времени при больших объёмах трафика. Как сделать это оптимально? По понятным причинам, Руби – не лучший для этого вариант, поэтому придётся начинать поиски альтернатив. Перед вами появится множество путей, и как для рубиста, самым оптимальным выбором будет использование Эликсира.



Эликсир – функциональный язык программирования с синтаксисом Руби, работающий на виртуальной машине Эрланга. Следовательно, для человека из мира Руби знакомство с языком пройдёт очень легко. Хотя для того, чтобы понять его полностью, придётся постараться, не раз [перечитывая документацию][2].



Ответ на вопрос из заголовка и масса интересного об Эликсире сразу же под катом.

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

[1]: https://habrastorage.org/webt/59/d6/ac/59d6acd235ae7424743973.jpeg
[2]: https://wunsh.ru/docs#subscribeModal
[3]: https://habrahabr.ru/post/339460/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Веб-уязвимости XSLT: Server Side Injection
habra.16
habrabot(difrex,1) — All
2017-10-06 15:00:04


![image][1]


XSL (Extensible Stylesheet Language) — это язык для преобразования документов XML. XSLT означает XSL Transformations. XSL Transformations — это сами XML-документы. Результатом преобразования может быть другой XML-документ или что-то еще, например, документ HTML, файл CSV или текстовый файл. В этой статье я расскажу о нескольких векторах атаки на XSLT.

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

[1]: https://habrastorage.org/getpro/habr/post_images/f36/2d6/dfd/f362d6dfd0658f81a5b1dd56c3cb6286.jpg
[2]: https://habrahabr.ru/post/339480/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


![][1]
_Связанные проекты сообщества Open Data (проект Linked Open Data Cloud). Многие датасеты на этой диаграмме могут включать в себя данные, защищенные авторским правом, и они не упоминаются в данной статье_



Если вы прямо сейчас не делаете свой ИИ, то другие будут делать его вместо вас для себя. Ничто более не мешает вам создать систему на основе машинного обучения. Есть открытая библиотека глубинного обучения [TensorFlow][2], большое количество алгоритмов для обучения в библиотеке [Torch][3], фреймворк для реализации распределенной обработки неструктурированных и слабоструктурированных данных [Spark][4] и множество других инструментов, облегчающих работу.



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



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

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

[1]: https://habrastorage.org/webt/59/d7/6f/59d76f4388ca2364142683.png
[2]: https://www.tensorflow.org/
[3]: http://torch.ch/
[4]: http://spark.apache.org/
[5]: https://habrahabr.ru/post/339496/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Airflow — инструмент, чтобы удобно и быстро разрабатывать и поддерживать batch-процессы обработки данных
habra.16
habrabot(difrex,1) — All
2017-10-06 17:30:07


![image][1]



Привет, Хабр! В этой статье я хочу рассказать об одном замечательном инструменте для разработки batch-процессов обработки данных, например, в инфраструктуре корпоративного DWH или вашего DataLake. Речь пойдет об Apache Airflow (далее Airflow). Он несправедливо обделен вниманием на Хабре, и в основной части я попытаюсь убедить вас в том, что как минимум на Airflow стоит смотреть при выборе планировщика для ваших ETL/ELT-процессов.



Ранее я писал серию статей на тему DWH, когда работал в Тинькофф Банке. Теперь я стал частью команды Mail.Ru Group и занимаюсь развитием платформы для анализа данных на игровом направлении. Собственно, по мере появления новостей и интересных решений мы с командой будем рассказывать тут о нашей платформе для аналитики данных.

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

[1]: https://habrastorage.org/getpro/habr/post_images/2f7/ef3/ac4/2f7ef3ac4894959ce6bf8e3e7cbbe373.jpg
[2]: https://habrahabr.ru/post/339392/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Торговый робот для веб-дизайнеров
habra.16
habrabot(difrex,1) — All
2017-10-06 20:00:05


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



![][2]



Для того чтобы решить обозначенные выше проблемы и привлечь как можно больше участников, брокеры иногда представляют обычное HTTP API с сериализацией в json/xml/что-то более экзотическое. В частности, подобный метод общения с биржей является едва ли не единственным для ряда модных стартапов, например, биткоин-бирж. Мы решили не отставать от них и недавно [представили][3] дополнение к нашему API (подробнее про его старые возможности можно почитать на Хабре [здесь][4] и [здесь][5]), которое позволяет пользователю также и торговать.



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

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

[1]: https://ru.wikipedia.org/wiki/Financial_Information_eXchange
[2]: https://habrastorage.org/webt/59/d6/36/59d636b46ca80006471887.jpeg
[3]: https://exante.eu/ru/press/events/1142/
[4]: https://habrahabr.ru/company/exante/blog/318272/
[5]: https://habrahabr.ru/company/exante/blog/326906/
[6]: https://habrahabr.ru/post/339446/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Классический 2д квест или как прошли наши два года разработки. Часть финальная
habra.16
habrabot(difrex,1) — All
2017-10-07 09:00:05


Заключительная часть истории создания игры «Swordbreaker The Game», в этой части — про раскрутку после релиза, и результаты к которым мы пришли.

![image][1]

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

[1]: https://habrastorage.org/web/a31/0e1/197/a310e1197916427b81831779937e0a34.jpg
[2]: https://habrahabr.ru/post/339534/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Снизить косты? Easy
habra.16
habrabot(difrex,1) — All
2017-10-07 17:30:04


Добрый день, я занимаюсь разработкой сервиса по прогнозированию спроса на базе Microsoft Azure, Spark Apache в IT компании. В цикле статей я расскажу про реальные бизнес кейсы из российских реалий, с которыми сталкивается IT компания. В основном статьи будут про бизнес: есть клиент, есть его задачи, нужно найти способ как их решать и доказать менеджменту адекватность расчётов, далее уже внедрение.

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


### Первый бизнес-кейс


Компания хочет понять сколько у неё потерь (очень круто, когда компания сразу знает, что хочет), и как можно их уменьшить.

Цель поставлена. Теперь немного о компании: Федеральная сеть 400 розничных магазинов. Пилотную версию проекта договорились проводить с одной категорией товара – 20 sku, средний срок годности продукта 15 дней.
[Читать дальше →][1]

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

[>] Вышел PostgreSQL 10
habra.16
habrabot(difrex,1) — All
2017-10-07 21:00:05


![][1]



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



Итак, что же нового в этой версии PostgreSQL?



Во-первых, изменилось само версионирование. До "десятки" мы наблюдали множество минорных версий 9.x, которые выходили примерно раз в год и при этом вносили серьезные, далеко не минорные изменения. Поэтому с версии 10 было принято решение сделать нумерацию 10, 11, 12 и т.д. Кстати, MySQL, похоже пошел по тому же пути, прыгнул с 5.7 на 8.0



Ладно, это всё мелочи, перейдем к существу вопроса

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

[1]: https://habrastorage.org/webt/59/d8/fb/59d8fb26efcf3125283990.png
[2]: https://habrahabr.ru/post/339568/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как отличать птиц от цветов. Или цветы от птиц
habra.16
habrabot(difrex,1) — All
2017-10-08 11:00:04


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


## Самая простая сеть


Самая простая сеть нашлась в статье "[Нейросеть в 11 строчек на Python][1]" (это перевод от [SLY\_G][2] статьи "[A Neural Network in 11 lines of Python (Part 1)][3]", вообще у автора есть еще продолжение "[A Neural Network in 13 lines of Python (Part 2 — Gradient Descent)][4]", но здесь достаточно первой статьи).

Краткое описание сетки — в этой сети есть ровно одна зависимость — [NumPy][5].

Множество входов рассматривается как матрица ![$X$][6], множество выходов — как вектор ![$y$][7]. В оригинальной статье сеть умножает входную матрицу, размерностью (4 x 3), на матрицу весов входов ![$syn0$][8] (3 x 4), к произведению применяет передаточную функцию, и получает матрицу слоя ![$l1$][9] (4 x 4).
[Читать дальше →][10]

[1]: https://habrahabr.ru/post/271563/
[2]: https://habrahabr.ru/users/sly_g/
[3]: http://iamtrask.github.io/2015/07/12/basic-python-network/
[4]: http://iamtrask.github.io/2015/07/27/python-network-part2/
[5]: http://www.numpy.org/
[6]: https://habrastorage.org/getpro/habr/formulas/6d6/a4f/78f/6d6a4f78fbacd6edecc018ce8ad3e364.svg
[7]: https://habrastorage.org/getpro/habr/formulas/9b3/4c4/da5/9b34c4da5c757d4982bbd1b6f2e8998a.svg
[8]: https://habrastorage.org/getpro/habr/formulas/ba4/e96/955/ba4e96955bc8eb1fb30e2154f62cbddc.svg
[9]: https://habrastorage.org/getpro/habr/formulas/2da/220/976/2da22097618c6d560b9866bcd50a864b.svg
[10]: https://habrahabr.ru/post/338548/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 40: Yahoo, не утекай, Google конопатит дыры, как Netgear баги ловит
habra.16
habrabot(difrex,1) — All
2017-10-08 11:30:04


«Три, три миллиарда учетных записей Yahoo! — все, что нажито непосильным трудом, все погибло», — сообщила (ну, не дословно, конечно) компания Verizon, которая после покупки ИТ-гиганта произвела ревизию в его сильно запущенном хозяйстве. Впрочем, дело о взломе Yahoo тянется еще с прошлого года и стартовало с каких-то [200 миллионов][1] пользовательских учеток, выставленных на продажу в дарквебе в августе 2016-го. Месяцем позже Боб Лорд, CISO компании, слегка скорректировал эту цифру, уведомив общественность о краже уже [500 миллионов][2] аккаунтов. А к декабрю, как следует собравшись, решительно заявил, что на самом деле речь идёт [о миллиарде][3]. Наконец, за аудит берется Verizon и сообщает, что «все уже украдено до нас» — все [3 миллиарда][4] аккаунтов, чуть ли не полмира пострадало, да что же это делается, граждане?!

Как теперь выясняется, паслись в закромах Yahoo минимум дважды: первый раз в августе 2013-го, второй — годом позже. Однако только в 2016 году Yahoo уведомила о самих фактах взлома. Кто причастен к этой утечке — одна группа или несколько — также пока не сообщается, но, как водится, неких «госхакеров» уже обвинили. Согласно отчету Yahoo, атакеры смогли взять под контроль процесс, генерящий аутентификационные кукисы, и в результате использовали его для доступа в систему без аутентификации.

Yahoo утверждает, что в украденных данных нет незашифрованных паролей и платежных данных. Хакерам достались лишь имена, адреса электронной почты, телефонные номера, даты рождения, хеши паролей и ответы на секретные вопросы. Лишь. Сущие пустяки.
[Читать дальше →][5]

[1]: https://threatpost.com/yahoo-investigates-200-million-alleged-accounts-for-sale-on-dark-web/119624/
[2]: https://threatpost.com/500-million-yahoo-accounts-stolen-by-state-sponsored-hackers/120818/
[3]: https://threatpost.com/yahoo-discloses-data-from-1-billion-accounts-stolen-in-2013/122520/
[4]: https://threatpost.com/2013-yahoo-breach-affected-all-3-billion-accounts/128259/
[5]: https://habrahabr.ru/post/339536/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Последнее обновление для HPE ProLiant «убивало» сетевые адаптеры
habra.16
habrabot(difrex,1) — All
2017-10-08 18:00:05


Недавно стало [известно][1], что обновление July ServicePack от HPE для серверов ProLiant выводило из строя сетевые адаптеры (в определенных случаях), превращая их в неремонтопригодную «железку». Расскажем об этом далее.

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

[1]: http://www.virtubytes.com/2017/10/05/hpe-advisory-network-adapter-replacement/
[2]: https://habrastorage.org/webt/59/d9/ea/59d9ea1d69da6227578093.jpeg
[3]: https://habrahabr.ru/company/it-grad/blog/339366/
[4]: https://habrahabr.ru/post/339366/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Последнее обновление для HPE ProLiant выводило из строя сетевые адаптеры
habra.16
habrabot(difrex,1) — All
2017-10-08 21:30:04


Недавно стало [известно][1], что обновление July ServicePack от HPE для серверов ProLiant выводило из строя сетевые адаптеры (в определенных случаях). Расскажем об этом далее.

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

[1]: http://www.virtubytes.com/2017/10/05/hpe-advisory-network-adapter-replacement/
[2]: https://habrastorage.org/webt/59/d9/ea/59d9ea1d69da6227578093.jpeg
[3]: https://habrahabr.ru/company/it-grad/blog/339366/
[4]: https://habrahabr.ru/post/339366/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Стратегии офлайнового хранения ключей PGP
habra.16
habrabot(difrex,1) — All
2017-10-08 23:30:05


_Статья для подписчиков LWN_

![][1]Хотя население в целом практически не использует [OpenPGP][2], но это критический элемент безопасности, особенно для дистрибутивов Linux. Например, центральный репозиторий Debian проверяет каждый пакет с помощью OpenPGP-ключей мейнтейнера, а затем подписывает его своим ключом. Если у пакетов, которые включаются в ветку, тоже есть такие подписи, то создаётся полноценная цепочка доверия от изначального разработчика до пользователей. Кроме того, пулл-реквесты в ядро Linux тоже верифицируются цифровыми подписями. Поэтому ставки высоки: если скомпрометирован ключ для подписи релиза или хотя бы ключ единственного мейнтейнера, следствием может стать разрушительная атака на много машин.

Это привело сообщество Debian к лучшему пониманию хороших практик работы с криптографическими подписями (которые обычно создаются в программе [GNU Privacy Guard][3], также известной как GnuPG или GPG). Например, слабые (менее 2048 бит) и [уязвимые][4] ключи PGPv3 в 2015 году [удалили][5] из связок ключей, а среди разработчиков Debian широко распространена практика взаимной подписи ключей при личной встрече. Но даже у разработчиков Debian, кажется, отсутствуют общепринятые правила хранения критического секретного материала, как видно по [дискуссии][6] в списке рассылки debian-project. Эта дискуссия сводится к единственному простому требованию: где взять «руководство по хранению электронных ключей для чайников»? Электронные аппаратные ключи или карты-ключи, как мы их здесь называем — это маленькие устройства, позволяющие хранить ключи в офлайне и представляющие собой один из вариантов защиты секретного материала, то есть ключа. В этой статье я постараюсь поделиться своим опытом в данной области и разъяснить проблему, как хранить эти драгоценные секретные ключи, которые в случае компрометации подвергают опасности миллионы компьютеров по всему миру.
[Читать дальше →][7]

[1]: https://habrastorage.org/webt/59/da/64/59da64eb76d1c303760414.png
[2]: http://openpgp.org/
[3]: http://gnupg.org/
[4]: https://lwn.net/Articles/588266/
[5]: https://lists.debian.org/20150101191039.GB5209@earth.li
[6]: https://lists.debian.org/debian-project/2017/08/msg00011.html
[7]: https://habrahabr.ru/post/339612/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что делать, если Instagram не дал доступ к API? Дополнение
habra.16
habrabot(difrex,1) — All
2017-10-09 00:30:04


Здравствуйте ещё раз! Я прочёл [её][1] и мне показалось, что её можно продолжить.

![image][2]

Ни для кого не секрет, что самая популярная и прибыльная площадка для рекламы, бизнеса и прочего — Instagram. Почему им стал именно сервис, в котором по началу можно было загружать только картинки определённого размера (соотношение сторон имеется ввиду) и не было абсолютно ничего, что было в тогдашних соцсетях — совсем непонятно, но факт есть факт. Ввиду чего все стараются проникнуть на площадку Instagram и захватить оттуда наибольшее количество аудитории, и делают, это, конечно же, не вручную. А за этим следует, что Instagram жёстко блокирует доступ для ботов, спамеров и прочему, дабы сеть оставалась чистой.

1. Самые полезные функции (постинг и удаление постов) доступны только из мобильного приложения Instagram, эмуляция запросов сложна, так как надо вытащить из приложения ключ, который с каждой новой версией обновляется.
2. Web-версия обрезана, но радует, что в ней есть возможность лайкать, комментировать и удалять комментарии
3. Есть API, но процедура его получения удручающе долгая и спамерам и ботам такой путь точно не светит. Плюс было много моментов, когда соглашения в API менялись, что не всегда удобно.[Читать дальше →][3]

[1]: https://habrahabr.ru/post/302150/
[2]: https://habrastorage.org/getpro/habr/post_images/52e/758/d2d/52e758d2d25dbc08aac63948d34924cd.jpg
[3]: https://habrahabr.ru/post/339620/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Игрушечный фронтенд для LLVM, написанный на Rust: Руководство для начинающих
habra.16
habrabot(difrex,1) — All
2017-10-09 09:30:06


**Примечание переводчика**

_Приведённый в статье код скомпилирован с достаточно старыми версиями крейтов peg и peg\_syntax\_ext. Для текущих версий в исходники нужно внести минимальные изменения. Я вставил изменённые участки в спойлеры по тексту статьи. Для сборки кода установите компилятор nightly Rust.
Полный исходник с моими правками можно скачать здесь:
_


В настоящее время я работаю над компилятором, который написан на Rust, и порождает LLVM IR. LLVM API выглядит немного пугающе для новичков, и по нему не так много руководств (и все они на C++, поэтому не вполне очевидно, как сделать то же самое на Rust). Я бы хотел, чтобы кто-то протянул мне руку помощи, когда я начинал всё это, и эта статья является тем, что я хотел бы показать самому себе в то время.

![][1]

В Rust наилучшая возможность взаимодействия с LLVM — через крейт llvm-sys. Один добрый человек разместил документацию к нему [здесь][2]. Конечно, вам следует также изучить [руководство][3] по LLVM, так как оно поможет вам понять, как LLVM “думает”. Этот пост, в основном, является переводом на Rust подмножества из этого руководства.

Полный исходный код для этого руководства находится [здесь][4].
[Читать дальше →][5]

[1]: https://habrastorage.org/web/91b/abc/cfb/91babccfb6604110bad66cfc1d5819ed.jpg
[2]: http://rustdoc.taricorp.net/llvm-sys/llvm_sys/
[3]: https://habrahabr.ru/post/119850/
[4]: https://github.com/ucarion/llvm-rust-getting-started
[5]: https://habrahabr.ru/post/338420/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Железнодорожно-ориентированное программирование. Обработка ошибок в функциональном стиле
habra.16
habrabot(difrex,1) — All
2017-10-09 10:30:06


![][1]

> Как пользователь я хочу изменить ФИО и email в системе.
Для реализации этой простой пользовательской истории мы должны получить запрос, провести валидацию, обновить существующую запись в БД, отправить подтверждение на email пользователю и вернуть ответ браузеру. Код будет выглядеть примерно одинаково на C#:

string ExecuteUseCase()
{
var request = receiveRequest();
validateRequest(request);
canonicalizeEmail(request);
db.updateDbFromRequest(request);
smtpServer.sendEmail(request.Email);
return "Success";
}

и F#:

let executeUseCase =
receiveRequest
>> validateRequest
>> canonicalizeEmail
>> updateDbFromRequest
>> sendEmail
>> returnMessage


## Отклоняясь от счастливого пути


![][2]

Дополним историю:
> Как пользователь я хочу изменить ФИО и email в системе
> И увидеть сообщение об ошибке, если что-то пойдет не так.

## Что же может пойти не так?


![][3]

1. ФИО может оказаться пустым, а email – не корректным
2. пользователь с таким id может быть не найден в БД
3. во время отправки письма с подтверждением SMTP-сервер может не ответить
4. ...

### Добавим код обработки ошибок


string ExecuteUseCase()
{
var request = receiveRequest();
var isValidated = validateRequest(request);
if (!isValidated) {
return "Request is not valid"
}
canonicalizeEmail(request);
try {
var result = db.updateDbFromRequest(request);
if (!result) {
return "Customer record not found"
}
} catch {
return "DB error: Customer record not updated"
}

if (!smtpServer.sendEmail(request.Email)) {
log.Error "Customer email not sent"
}

return "OK";
}
Вдруг вместо 6 мы получили 18 строк кода с ветвлениями и большей вложенностью, что сильно ухудшило читаемость. Каким будет функциональный эквивалент этого кода? Он выглядит абсолютно также, но теперь в нем есть обработка ошибок. Можете мне не верить, но, когда мы доберемся до конца, вы убедитесь, что это действительно так.
[Читать дальше →][4]

[1]: https://habrastorage.org/webt/59/da/2b/59da2b7193313753752158.gif
[2]: https://habrastorage.org/webt/59/da/2d/59da2d8f005bf618301003.jpeg
[3]: https://habrastorage.org/webt/59/da/2f/59da2f754e3bf250799737.png
[4]: https://habrahabr.ru/post/339606/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Поиск файлов по тэгам в XMP / IPTC и операции с найденным
habra.16
habrabot(difrex,1) — All
2017-10-09 12:00:05


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

[![Поиск файлов по тэгам в XMP / IPTC и операции с найденным][1]][2]
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/59/da/ff/59daff7e0817b936967452.jpeg
[2]: https://habrahabr.ru/post/339642/
[3]: https://habrahabr.ru/post/339642/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Про безопасность банкоматов и разработку охранного извещателя (продолжение)
habra.16
habrabot(difrex,1) — All
2017-10-09 12:00:05


В своей [предыдущей статье][1] я рассказал в целом про проблему безопасности банкоматов и немного про свой опыт разработки устройства обеспечения этой самой безопасности.

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

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

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

[>] Математическая модель жидкостного тахометра на Python
habra.16
habrabot(difrex,1) — All
2017-10-09 12:30:04


### Введение


В технике явление формирования поверхности вращающейся жидкости в форме близкой к поверхности параболоида вращения используется в основном в сепарирующих центрифугах для разделения суспензий на фракции [1].

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

Рассмотрение математической модели такого прибора имеет не только познавательный, но и практический интерес с учётом её реализации средствами свободно распространяемого языка общего назначения Python.


### Теория – просто и кратко


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

![][1]

Рассмотрим сечение поверхности вращения координатной плоскостью ZX и найдём касательную в точке P (x, z) этого сечения. На частицу Q находящуюся в точке P действует сила тяжести **mg** изображённая в виде вектора PL.

Давление жидкости изображено в виде вектора PN направленного нормально к поверхности жидкости. Силы PM и PM’ для установившегося движения равны. Частица жидкости движется по окружности радиуса x её ускорение PM направлено к центру вращения и равно **m\*w\*\*2 \*x**. [Читать дальше →][2]

[1]: https://habrastorage.org/webt/59/d8/da/59d8da0765828532456648.png
[2]: https://habrahabr.ru/post/339562/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Оптимизация TensorFlow на современных архитектурах Intel
habra.16
habrabot(difrex,1) — All
2017-10-09 12:30:04


TensorFlow — современная платформа глубокого обучения и машинного обучения, дающая возможность извлекать максимальную производительность из оборудования Intel. Эта статья познакомит сообщество разработчиков искусственного интеллекта (ИИ) с методиками оптимизации TensorFlow для платформ на базе процессоров Intel Xeon и Intel Xeon Phi. Эти методики были созданы в результате тесного сотрудничества между специалистами корпораций Intel и Google. Представители обеих корпораций объявили об этом сотрудничестве на первой конференции Intel AI Day в прошлом году.

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

[1]: https://habrastorage.org/webt/59/cc/9d/59cc9d1d3e1ab401929360.png
[2]: https://habrahabr.ru/post/338870/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Ежемесячная рубрика «Читаем статьи за вас». Сентябрь 2017
habra.16
habrabot(difrex,1) — All
2017-10-09 15:30:06


![][1]



Привет, Хабр! Мы продолжаем нашу традицию и снова выпускаем ежемесячный набор рецензий на научные статьи от членов сообщества Open Data Science из канала #article\_essense. Хотите получать их раньше всех — вступайте в сообщество [ODS][2]!



Статьи выбираются либо из личного интереса, либо из-за близости к проходящим сейчас соревнованиям. Напоминаем, что описания статей даются без изменений и именно в том виде, в котором авторы запостили их в канал #article\_essence. Если вы хотите предложить свою статью или у вас есть какие-то пожелания — просто напишите в комментариях и мы постараемся всё учесть в дальнейшем.

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

[1]: https://habrastorage.org/webt/59/da/96/59da966fb6eac946729227.jpeg
[2]: http://ods.ai
[3]: https://habrahabr.ru/post/339094/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Kali Linux: виды проверок информационных систем
habra.16
habrabot(difrex,1) — All
2017-10-09 15:30:06


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

Продолжаем публикацию перевода 11-й главы книги «[Kali Linux Revealed][6]». Сегодня хотим познакомить вас с разделом 11.2, который посвящён видам мероприятий, направленных на оценку защищённости информационных систем.

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

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

[>] Принцип единственной ответственности: фундамент декомпозиции
habra.16
habrabot(difrex,1) — All
2017-10-09 17:00:07


![][1]
Сейчас об этом принципе слышал любой, кто занимается программированием. Чуть меньше тех, кто думает, что его знает. Гораздо меньше тех, кто действительно умеет его использовать. Я постараюсь объяснить суть, назначение и применение этого принципа как можно проще и короче.



## Определение {#opredelenie}



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



### Пример {#primer}



Lazy<T> — обертка для объекта, чье создание откладывается до первого обращения к нему.



### Антипример {#antiprimer}



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



### Еще антипример {#esche-antiprimer}



Локатор сервисов — позволяет получить доступ к любому сервису приложения. Это описание без исчерпывающего списка сервисов заведомо неполное.



## Назначение {#naznachenie}



Упрощение создания, анализа и модификации программных систем.

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

[1]: https://habrastorage.org/webt/59/da/c9/59dac97d7efff285825291.jpeg
[2]: https://habrahabr.ru/post/338064/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Встречаем PostgreSQL 10. Перевод Release Notes
habra.16
habrabot(difrex,1) — All
2017-10-09 17:00:07


Вышел релиз PostgreSQL 10. Мы долго ждали появления новых фич. Мои коллеги ещё весной тестировали новую версию и отправляли баг-репорты: [раз][1], [два][2]. А я был очень рад обновлению и подготовил перевод Release Notes на русский язык. Давайте обсуждать.



![][3]

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

[1]: https://www.postgresql.org/message-id/20170616195617.1422.31261%40wrigleys.postgresql.org
[2]: https://www.postgresql.org/message-id/20170609160109.26502.14118%40wrigleys.postgresql.org
[3]: https://habrastorage.org/webt/59/db/40/59db40fc822d0789301881.jpeg
[4]: https://habrahabr.ru/post/339520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Как сделать число 100 из любого другого шестизначного числа
habra.16
habrabot(difrex,1) — All
2017-10-09 17:00:07


Пару недель назад, в поисках ответа на задачу, абсолютно не связанную с описываемой здесь, я волею поисковых систем наткнулся на следующий пост: [Как сделать из 123456789 число 100 или 0][1].

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


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


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

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

[>] Как получать оповещения от Jupyter notebook в Telegram?
habra.16
habrabot(difrex,1) — All
2017-10-09 19:00:07


Довольно просто. Нам понадобится свой телеграм-бот, один пакет и одна строчка кода
А результат будет таким:
![][1]

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

[1]: https://habrastorage.org/webt/59/db/7a/59db7acc87064607135491.png
[2]: https://habrahabr.ru/post/339682/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Онлайн-квест от MBLTdev: призы и ответы
habra.16
habrabot(difrex,1) — All
2017-10-09 20:30:05


Привет, Хабр! В среду мы запилили [квест][1], и судя по потоку комментариев и сообщений, квест вам понравился и заставил поломать голову. Мы рады! В этом посте подведём итоги: раскроем правильные ответы и вручим призы.


### Статистика


![][2]


### Призы


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

* Годовые подписки на продукты [JetBrains][3] получили Инсаф, Михаил и Даниил.
* Билеты на конференцию мобильных разработчиков [MBLTdev 2017][4] — Алексей Лагута, Михаил и Артём.
* Футболки [MBLTdev 2017][5] — Устинов Валерий, Руслан Ахтямов и Павел Камаев.
* Скидка 20% на билеты на [MBLTdev 2017][6] — наш подарок всем кто прошёл квест до конца.
Теперь расскажем, как надо было решать задания. Под катом — ответы.
[Читать дальше →][7]

[1]: https://habrahabr.ru/company/e-Legion/blog/339334/
[2]: https://habrastorage.org/getpro/habr/post_images/3c9/673/c9e/3c9673c9e4073a5374503902f88840bb.png
[3]: https://jetbrains.ru/
[4]: https://mbltdev.ru/ru?utm_source=Quiz_results
[5]: https://mbltdev.ru/ru?utm_source=Quiz_results
[6]: https://mbltdev.ru/ru?utm_source=Quiz_results
[7]: https://habrahabr.ru/post/339668/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


В своей [предыдущей статье][1] я рассказал в целом про проблему безопасности банкоматов и немного про свой опыт разработки устройства обеспечения этой самой безопасности.

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

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

[>] Простая Scada на Python (продолжение)
habra.16
habrabot(difrex,1) — All
2017-10-10 12:00:05


### Формирование динамических объектов мнемосхемы


Развивая тему [предыдущей статьи][1], опишу некоторые функции для формирования объектов мнемосхемы простой SCADA программы выполненной на Python.

Объекты визуально отображают состояние аналоговых измеряемых величин из регистров
READ\_INPUT\_REGISTERS или READ\_HOLDING\_REGISTERS. Используется библиотека Tkinter.
Всего реализовано 3 объекта: горизонтальный слайдер, вертикальный слайдер и стрелочный индикатор. Отдельно описывается построение динамического тренда.
[Читать дальше →][2]

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

[>] WhatsApp, что внутри?
habra.16
habrabot(difrex,1) — All
2017-10-10 14:30:05


[![][1]][2]В продолжение направления публикаций исследований нашей компании о внутренних механизмах крупнейших в мире мессенджеров. Сегодня будем смотреть на WhatsApp в его актуальном состоянии. На самом деле внутренности не сильно изменились за последние три года, изменения там скорее косметические.

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

[1]: https://habrastorage.org/webt/59/db/8e/59db8e5f7bf14826135267.jpeg
[2]: https://habrastorage.org/webt/59/db/8d/59db8dde548b7208960622.jpeg
[3]: https://habrahabr.ru/post/339224/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Новые способы монетизации взломанных веб-ресурсов
habra.16
habrabot(difrex,1) — All
2017-10-10 15:30:06


![image][1]
 
Способов получить выгоду со взломанного сайта всегда было довольно много. Тем не менее, кибер-преступность не отстает от прогресса и использует передовые технологические методы для незаконного заработка.
[Читать дальше →][2]

[1]: https://www.extremetech.com/wp-content/uploads/2014/01/Bitcoin-USD-overlay-from-Famzoo.jpg
[2]: https://habrahabr.ru/post/339744/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Книга «Python для сложных задач: наука о данных и машинное обучение»
habra.16
habrabot(difrex,1) — All
2017-10-10 18:00:05


[![image][1]][2]Привет, Хаброжители! Данная книга — руководство по самым разным вычислительным и статистическим методам, без которых немыслима любая интенсивная обработка данных, научные исследования и передовые разработки. Читатели, уже имеющие опыт программирования и желающие эффективно использовать Python в сфере Data Science, найдут в этой книге ответы на всевозможные вопросы, например: как считать этот формат данных в скрипт? как преобразовать, очистить эти данные и манипулировать ими? как визуализировать данные такого типа? как при помощи этих данных разобраться в ситуации, получить ответы на вопросы, построить статистические модели или реализовать машинное обучение?

Ниже под катом обзор книги и отрывок «Гистограммы, разбиения по интервалам и плотность»
[Читать дальше →][3]

[1]: https://habrastorage.org/webt/59/dc/7d/59dc7db578d00991150128.jpeg
[2]: https://habrahabr.ru/company/piter/blog/339766/
[3]: https://habrahabr.ru/post/339766/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Красные стрелы доп-реальности
habra.16
habrabot(difrex,1) — All
2017-10-10 21:00:05


![][1]



Мои читатели уже знают, что ручной пеленгатор и дополненная реальность созданы друг для друга. Простой фон из видео позволяет существенно упростить работу оператора. Тем не менее, находятся люди, которые испытывают трудности при поиске источников радио-излучения амплитудным пеленгатором с простым видео-фоном. Упрощение процесса требует более тесного комплексирования пеленгатора с "тяжелой" доп-реальностью. Несмотря на появление таких технологий, как ARKit и ARCore, наиболее доступной остается Google Tango.



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

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

[1]: https://habrastorage.org/webt/59/db/27/59db2798c440a188943797.png
[2]: https://habrahabr.ru/post/339586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Простая Scada на Python и Arduino
habra.16
habrabot(difrex,1) — All
2017-10-11 01:30:05


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

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

[>] Обзор дефектов кода музыкального софта. Часть 2. Audacity
habra.16
habrabot(difrex,1) — All
2017-10-11 11:30:04


![][1]


Цикл статей про обзор дефектов кода музыкально софта продолжается. Вторым претендентом для анализа выбран аудиоредактор Audacity. Это программа очень популярна и широко используется, как любителями, так и профессионалами в музыкальной индустрии. В этой статье описание фрагментов кода будет дополнительно сопровождаться популярными мемами. Скучно не будет!
[Мемасики под катом...][2]

[1]: https://habrastorage.org/getpro/habr/post_images/668/941/2de/6689412deb71ee17bf111b5abb233baa.png
[2]: https://habrahabr.ru/post/339816/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] AMA, или спроси бэкендера из Avito: анонс
habra.16
habrabot(difrex,1) — All
2017-10-11 13:30:05


Что такое AMA? Этот формат очень популярен на Reddit. Ты рассказываешь о себе и предлагаешь читателям задавать любые вопросы: Ask Me Anything! Особенно круто это удается у команд профессионалов — в итоге получается ряд коротких и полезных тематических бесед. Нам нравится Reddit, сам формат AMA и Хабрахабр, поэтому мы тоже вступаем в игру и приглашаем вас к диалогу здесь. Этот пост — анонс секции вопросов и ответов, которая будет работать в блоге Avito 13 октября, в пятницу, с 12 до 19 часов по мск. В этот день в AMA с вами будут на связи пять моих коллег, которые занимаются разработкой серверной части Avito. А под катом я напомню, о чем можно у них спросить.



![][1]

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

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

[>] [Перевод] Такты для разработчиков
habra.16
habrabot(difrex,1) — All
2017-10-11 13:30:05


![][1]



Если у вас есть опыт создания ПО и вы хотите познакомиться с проектированием цифровых логических схем (digital design), то одна из первых вещей, которые вам нужно понять, — это концепция тактов. Она раздражает многих программных инженеров, начинающих [HDL][2]-проектирование. Без использования тактов они могут превратить HDL в язык программирования с `$display`, `if` и циклами `for`, как в любом другом языке. Но при этом такты, которые новички игнорируют, — зачастую один из основополагающих элементов при проектировании любых цифровых логических схем.



Ярче всего эта проблема проявляется именно при рассмотрении первых схем, созданных начинающими HDL-разработчиками. Я недавно общался с некоторыми из них. Новички опубликовали свои вопросы на форумах, которые я читаю. Когда я проанализировал то, что они делают, от увиденного волосы встали дыбом.

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

[1]: https://habrastorage.org/webt/59/dd/df/59dddf8b1e03e594224568.jpeg
[2]: https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%D1%83%D1%80%D1%8B
[3]: https://habrahabr.ru/post/339688/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] 20 приёмов работы в командной строке Linux, которые сэкономят уйму времени
habra.16
habrabot(difrex,1) — All
2017-10-11 14:00:05


Тема полезных приёмов работы в терминале Linux неисчерпаема. Казалось бы — всё устроено очень просто: приглашение оболочки, да введённые с клавиатуры команды. Однако, в этой простоте кроется бездна неочевидных, но полезных возможностей. Именно поэтому мы регулярно публикуем материалы, посвящённые особенностям работы в командной строке Linux. В частности, сегодня это будет перевод статьи, автор которой увлечён экономией времени через повышение продуктивности труда.

[![][1]][2]

Если вас интересует работа в командной строке Linux — вот некоторые из наших материалов на эту тему:

* [ **+114** ] [Самые полезные приёмы работы в командной строке Linux][3]
* [ **+70** ] [10 приёмов работы в терминале Linux, о которых мало кто знает][4]
* [**+65** ] [Удивительно полезный инструмент: lsof][5]
* [ **+32** ] [Linux: перенаправление][6]
* [ **+29** ] [PDF-версия статей про Bash-скрипты][7]
[Читать дальше →][8]

[1]: https://habrastorage.org/webt/59/dd/dc/59dddcaa09dd0253946776.jpeg
[2]: https://habrahabr.ru/company/ruvds/blog/339820/
[3]: https://habrahabr.ru/company/ruvds/blog/323330
[4]: https://habrahabr.ru/company/ruvds/blog/336060/
[5]: https://habrahabr.ru/company/ruvds/blog/337934/
[6]: https://habrahabr.ru/company/ruvds/blog/336320/
[7]: https://habrahabr.ru/company/ruvds/blog/336764/
[8]: https://habrahabr.ru/post/339820/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Внедрение IdM. Часть 1: что такое IdM и какая функциональность к нему относится
habra.16
habrabot(difrex,1) — All
2017-10-11 16:00:04


…Всё началось с отдела маркетинга. Эти милые люди подумали и решили, что нам (специалистам пресейла и сервисов) следует написать некоторое количество статей «на разные интересные темы». Темы они, как водится, придумали сами, исходя из видящихся им «потребностей рынка». (При этом, если взглянуть на них с нашего ракурса, темы были, мягко говоря, «не очень»…)

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

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

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

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