RSS
Pages: 1 ... 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 ... 210
[>] [Перевод] Я — самозванец
habra.16
habrabot(difrex,1) — All
2017-03-16 12:30:04


[![][1]][2]
**Писать об этом очень тяжело, даже тяжелее, чем признаться себе в этом. Я писал заявления об увольнении с любимых мест работы, заканчивал отношения, много в чем не преуспел и портил свою репутацию. Но чувства, которые я из-за этого испытывал, были временными: поначалу бывало очень плохо, но через пару месяцев я оставлял это позади и жил дальше. И все же есть одно чувство, от которого мне так и не удалось избавиться за всю свою карьеру: _синдром самозванца_.**

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

[1]: https://habrastorage.org/files/0e2/73c/993/0e273c99349c4efa83d61a1c78ebe5c0.jpg
[2]: https://habrahabr.ru/company/alconost/blog/324048/
[3]: https://alconost.com/?utm_source=habrahabr&utm_medium=article&utm_campaign=translation&utm_content=impostor-syndrome
[4]: https://habrahabr.ru/post/324048/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


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

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

Можно ли с этим бороться? — легко! Борются ли с этим? — не встречал. Значит, пора начать.

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

[1]: https://habrastorage.org/getpro/habr/post_images/1f1/a11/f18/1f1a11f1864b994e22dd9e6dbd6858e6.jpg
[2]: https://habrahabr.ru/post/323992/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Фильтрация изображения на FPGA
habra.16
habrabot(difrex,1) — All
2017-03-16 15:30:05


![][1]

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

[1]: https://habrastorage.org/files/10b/121/a73/10b121a734b2452f8509bfede85edf0b.jpg
[2]: https://habrahabr.ru/post/323258/
[3]: https://habrahabr.ru/post/324070/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] PVS-Studio: поиск дефектов безопасности
habra.16
habrabot(difrex,1) — All
2017-03-16 17:00:04


![][1]
Анализатор PVS-Studio всегда умел искать множество различных дефектов безопасности (потенциальных уязвимостей) в коде программ. Однако, исторически сложилось, что мы позиционировали PVS-Studio как инструмент для поиска ошибок. Сейчас наблюдается мода на поиск в коде именно уязвимостей, а не ошибок, хотя на самом деле это одно и тоже. Что же, значит пришло время провести ребрендинг нашего статического анализатора PVS-Studio. Начнём мы с Common Weakness Enumeration (CWE). В этой статье приводится таблица, сопоставляющая диагностические предупреждения PVS-Studio с классификатором. Таблица будет постепенно пополняться и изменяться, но уже сейчас с её помощью мы сможем писать статьи, посвященные обнаруженным дефектам безопасности в том или ином проекте. Думаем, это привлечёт к нашему инструменту больше внимания специалистов, занимающихся безопасностью программного обеспечения.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/2cc/d5d/05a/2ccd5d05a1562ffa550b7bdbed0f04a5.png
[2]: https://habrahabr.ru/post/324114/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Библиотеки для глубокого обучения Theano/Lasagne
habra.16
habrabot(difrex,1) — All
2017-03-16 17:30:04


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



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



Я открою этот цикл статьёй о Theano — библиотеке, которая используется для разработки систем машинного обучения как сама по себе, так и в качестве вычислительного бекэнда для более высокоуровневых библиотек, например, [Lasagne][2], [Keras][3] или [Blocks][4].



Theano разрабатывается с 2007 года главным образом группой [MILA][5] из Университета Монреаля и названа в честь древнегреческой женщины-философа и математика Феано (предположительно изображена на картинке). Основными принципами являются: интеграция с numpy, прозрачное использование различных вычислительных устройств (главным образом GPU), динамическая генерация оптимизированного С-кода.

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

[1]: https://habrahabr.ru/search/?q=%5Bmlcourse_open%5D&target_type=posts
[2]: http://lasagne.readthedocs.io/en/latest/
[3]: https://keras.io/
[4]: http://blocks.readthedocs.io/en/latest/
[5]: https://mila.umontreal.ca/en/
[6]: https://habrahabr.ru/post/323272/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Что делать если вас заперли в rbash
habra.16
habrabot(difrex,1) — All
2017-03-16 18:30:04


Совсем недавно проходил очередной интересный CTF [Boston Key Party 2017][1]. Который мы к сожалению не выиграли, но это другая история. А сегодня я бы хотел описать решение одного задания из раздела _pwn_ это _«Solitary Confinement (pwn 99)»_.
[Читать дальше →][2]

[1]: https://ctftime.org/event/394
[2]: https://habrahabr.ru/post/324132/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] FSE кодирование
habra.16
habrabot(difrex,1) — All
2017-03-16 18:30:04


**Finite State Entropy** (FSE) – алгоритм [энтропийного кодирования][1], чем-то похожий и на [алгоритм Хаффмана][2], и на [арифметическое кодирование][3]. При этом он взял лучшее от них обоих: работает так же быстро, как хаффмановский, и со степенью сжатия как у арифметического кодирования.

FSE принадлежит семейству кодеков ANS ([Asymmetric Numeral Systems][4]),  изобретённых [Яреком Ду́дой][5]. На основе его исследований [Ян Коллет][6] разработал оптимизированный вариант алгоритма, впоследствии названный FSE.

В [заметках][7] Яна Коллета непросто разобраться, поэтому я изложу объяснение в несколько ином порядке, более удобном для понимания, на мой взгляд.

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

[1]: https://ru.wikipedia.org/wiki/%D0%AD%D0%BD%D1%82%D1%80%D0%BE%D0%BF%D0%B8%D0%B9%D0%BD%D0%BE%D0%B5_%D0%BA%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
[2]: https://habrahabr.ru/post/144200/
[3]: https://habrahabr.ru/post/130531/
[4]: https://en.wikipedia.org/wiki/Asymmetric_Numeral_Systems
[5]: http://arxiv.org/abs/1311.2540
[6]: https://github.com/Cyan4973
[7]: http://fastcompression.blogspot.ru/2014/01/fse-decoding-how-it-works.html
[8]: https://habrastorage.org/getpro/habr/post_images/cf4/ca6/008/cf4ca6008e7097320a48f37be6a64335.png
[9]: https://habrahabr.ru/company/playrix/blog/324116/
[10]: https://habrahabr.ru/post/324116/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Тёмный путь
habra.16
habrabot(difrex,1) — All
2017-03-16 18:30:04


![image][1]



_Предлагаю вашему вниманию перевод [оригинальной статьи][2] Роберта С. Мартина._



За последние несколько месяцев я попробовал два новых языка. [Swift][3] и [Kotlin][4]. У этих двух языков есть ряд общих особенностей. Действительно, сходство настолько сильное, что мне стало интересно, не является ли это новой тенденцией в нашей [языкомешалке][5]. Если это действительно так, то _это тёмный путь_.



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



Проблема в том, что оба языка сделали ставку на сильную статическую типизацию. Кажется, оба намерены заткнуть _каждую дыру_ в своём родном языке. В случае со `Swift` – это странный гибрид `C` и `Smalltalk`, который называется _Objective-C_; поэтому, возможно, упор на типизацию понятен. Что касается Kotlin – его предком является уже довольно строго типизированная Java.



Я не хочу, чтобы вы думали, что я против статически типизированных языков. Я не против. Есть определенные преимущества как для динамических, так и для статических языков; и я с удовольствием пользуюсь обоими видами. Я предпочитаю динамическую типизацию, и поэтому я иногда использую `Clojure`. С другой стороны, я, вероятно, пишу больше `Java`, чем `Clojure`. Поэтому вы можете считать меня би-типичным. Я иду по обеим сторонам улицы — если так можно выразиться.



Дело не в том, что меня беспокоит, что `Swift` и `Kotlin` статически типизированы. Скорее меня беспокоит _глубина_ статической типизации.

[Погрузиться в пучину тьмы][6]

[1]: https://habrastorage.org/files/c03/c9f/f4e/c03c9ff4e3a44b23a2ed021881faa39b.jpg
[2]: http://blog.cleancoder.com/uncle-bob/2017/01/11/TheDarkPath.html
[3]: https://swift.org/
[4]: https://kotlinlang.org/
[5]: http://blog.cleancoder.com/uncle-bob/2016/07/27/TheChurn.html
[6]: https://habrahabr.ru/post/324122/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] DIY в телефонии: простые конструкторы на основе API
habra.16
habrabot(difrex,1) — All
2017-03-16 18:30:04


![image][1]


Не обязательно быть программистом, чтобы интегрировать друг с другом IT-сервисы. Открытый API + простой сервис-конструктор — и rocket science становится доступным условному гуманитарию. Покажу три наиболее интересных, на мой вкус, конструктора и расскажу, как их можно применить в телефонии.


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

[1]: https://habrastorage.org/files/85f/fc8/04a/85ffc804a64c4f7fbcd9653af6acdc7a.jpg
[2]: https://habrahabr.ru/post/324104/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Windows Forth +
habra.16
habrabot(difrex,1) — All
2017-03-16 18:30:04


### Конструирование оснастки для обработки оконных сообщений Windows


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

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

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

Перед созданием окна необходимо создать свой класс. В структуре WNDCLASS есть поле WNDPROC lpfnWndProc, которое содержит ссылку на процедуру обработки сообщений, поступающих от окон данного класса.
[Читать дальше →][1]

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

[>] Уголовный кодекс разработчика
habra.16
habrabot(difrex,1) — All
2017-03-16 19:30:03


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

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

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

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

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


**Введение**

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

Данный опус не претендует на полноту и связность изложения.
[Читать дальше →][1]

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

[>] [Из песочницы] Параметрическое моделирование в САПР SolveSpace
habra.16
habrabot(difrex,1) — All
2017-03-16 23:00:03


Многие из нас в школе или университете посещали уроки черчения, но не многим из нас это нравилось. Часами возиться с линейкой, циркулем и плохо заточенным карандашом, пытаясь ровно и без помарок выводить размерные линии, бесконечные штриховки и странные формы, мало кому могло показаться интересным. Тем более, что к тому времени уже существовали компьютерные программы, способные автоматизировать это скучное, бессмысленное и беспощадное занятие. А настоящий прорыв в области проектирования деталей и подготовки конструкторской документации произошел в 1989 вместе с дебютом параметрического моделирования в [Системе Автоматизированного Проектирования (САПР)][1] Pro/Engineer.



Это — вводная статья к циклу статей "Параметрическое моделирование". Из этого цикла вы узнаете о внутреннем устройстве настоящего **решателя геометрических ограничений**, проблемах и их решениях на примере open-source САПР "SolveSpace". Кому не чужд мир трехмерного моделирования, добро пожаловать под кат!



![image alt text][2]

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

[1]: https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
[2]: https://habrastorage.org/files/b6a/fb7/cc2/b6afb7cc209a4402a3fe2e56ee75b1f7.png
[3]: https://habrahabr.ru/post/324160/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Использование скриптов в Openvpn для интеграции его с другими сервисами системы (Firewall, DB и т.д.)
habra.16
habrabot(difrex,1) — All
2017-03-16 23:30:03


Захотелось собрать VPN-комбайн который бы пользователей брал из БД, настраивал фаервол под этого пользователя и писал логи в БД.

OpenVPN на каждое событие (подключение, отключение клиента) может вызывать внешнюю программу. Этим и воспользуемся.
[Читать дальше →][1]

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

[>] По следу Cobalt: тактика логической атаки на банкоматы в расследовании Group-IB
habra.16
habrabot(difrex,1) — All
2017-03-17 00:30:04


![image][1]

В июле 2016 года работа First Bank, одного из крупнейших банков Тайваня, была парализована. Банк столкнулся с масштабной атакой: люди в масках одновременно опустошили три десятка банкоматов на $2 млн. Полиция терялась в догадках: на корпусах банкоматов не было ни следов взлома, ни накладных устройств — скиммеров. Злоумышленники даже не использовали банковские карты.

Как все происходило, зафиксировали видеокамеры: люди в масках подходили к банкоматам, звонили по мобильному — банкомат выдавал деньги, преступники складывали их в рюкзаки и убегали. После такого масштабного налета восемь крупнейших банков страны приостановили выдачу наличных в 900 банкоматах.

То, с чем столкнулся First Bank, называется логической атакой. Ее суть в том, что киберпреступники получают доступ к локальной сети банка и из нее устанавливают полный контроль над банкоматами. Удаленно они получают команду на выдачу денег. Сообщники взломщиков — “мулы” — забирают деньги и передают их организаторам атаки. Таким образом Cobalt — самая активная и опасная преступная группа — меньше чем за год атаковала банки в двух десятках стран мира.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/39b/b8a/e8d/39bb8ae8d74949beb149fba14c84a3f0.png
[2]: https://habrahabr.ru/post/323996/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Liscript — REPL боты онлайн
habra.16
habrabot(difrex,1) — All
2017-03-17 11:30:04


![][1]

Некоторое время назад, вдохновившись прочтением SICP, я написал пару своих реализаций интерпретаторов лиспоподобного языка со строгой семантикой, добавил десктопный GUI, консольный интерфейс, написал на нем Тетрис и много чего еще, и опубликовал пару статей на Хабр об этом. Недавно я добавил возможность широкой аудитории познакомиться с данным языком — написал REPL-ботов для следующих мессенжеров: IRC, Telegram, Slack, Gitter. Боты располагаются на специально созданных для них каналах, но в большинстве случаев их можно добавлять/приглашать на другие каналы и вести с ними личную переписку. Такой формат позволяет проводить текстовые онлайн-доклады на тему основ функционального программирования, сопровождая их демонстрацией интерпретатора в реальном времени. Конечно, графические окна с анимацией конечно можно создавать только в десктопном варианте приложения. Поэтому для большего раскрытия возможностей языка и РЕПЛа я написал текстовую реализацию игры Лабиринт, в которую могут играть с ботом любое количество человек. Подробности и немного лирики под катом.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/c1e/d1e/e2b/c1ed1ee2b6fb443fb66faf0b5e45d987.png
[2]: https://habrahabr.ru/post/324166/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Розовый скафандр, криптовалюта и генномодифицированный iOS: задания online-этапа NeoQUEST-2017 и немного статистики
habra.16
habrabot(difrex,1) — All
2017-03-17 11:30:04


![][1] C 1 по 10 марта прошёл online-этап соревнования по кибербезопасности [NeoQUEST-2017][2]. Пришло время подвести итоги, поделиться любопытной статистикой прохождения, а также вкратце рассказать про сами задания.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/48f/54a/d3c/48f54ad3c0f548e58b5047ed2aad4ec2.jpg
[2]: http://neoquest.ru
[3]: https://habrahabr.ru/post/323838/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Фильтрация и создание цепочек в функциональном JavaScript
habra.16
habrabot(difrex,1) — All
2017-03-17 12:30:04


![][1]



_Предлагаем перевод [статьи][2], которая позволит кому-то освежить свои знания по теме, а также будет полезна новичкам в JavaScript, пока ещё осваивающим этот язык._

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

Хотя JavaScript поддерживает методики функционального программирования, он не оптимизирован для полноценного использования этой парадигмы, как Haskell или Scala. Не обязательно добиваться того, чтобы ваши JS-программы полностью соответствовали концепциям функционального программирования. Но их применение помогает поддерживать чистоту кода и концентрироваться на создании архитектуры, которая легко тестируется и может использоваться в нескольких проектах.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/0ba/6fd/4e0/0ba6fd4e0c4c4f6498160e49b7737b1a.png
[2]: https://www.sitepoint.com/filtering-and-chaining-in-functional-javascript/
[3]: https://habrahabr.ru/post/324172/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Поиск пути в играх Tower Defense
habra.16
habrabot(difrex,1) — All
2017-03-17 14:00:04


_[Прим. пер.: в [оригинале статьи][1] есть интерактивные демо, которые я продублировал с помощью видео. Для большей наглядности рекомендую изучить примеры в оригинале.]_

В играх жанра Tower Defense (TD) множество врагов стремится добраться в одну точку. Во многих играх TD существует заранее заданный путь или несколько путей. В некоторых, в том числе в классической [Desktop Tower Defense][2] можно размещать башни в произвольных местах, и они становятся препятствиями, влияющими на пути врагов. **Запустите демо** и **нажимайте на карту**, чтобы возводить или убирать стены:


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

[1]: http://www.redblobgames.com/pathfinding/tower-defense/
[2]: http://armorgames.com/play/1128/desktop-tower-defense-15
[3]: https://habrahabr.ru/post/324090/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Простой, надёжный и удобный мониторинг серверов на Linux
habra.16
habrabot(difrex,1) — All
2017-03-17 15:00:05


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

[![][1]][2]

Программа, о которой пойдёт речь, называется [Nigel’s Monitor][3], или просто nmon. Она, используя простой интерфейс ncurses, умеет выводить, в реальном времени, сведения о различных показателях, характеризующих состояние сервера. Среди них — данные по процессору и памяти, информация о сетевых ресурсах, о дисковых накопителях, о файловой системе и NFS, о процессах. Набор отображаемых показателей можно настраивать. Nmon имеет текстовый интерфейс, поэтому, для работы с ним достаточно подключиться к серверу по SSH.

Предлагаю установить nmon и поговорить о том, как им пользоваться.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/149/b7f/f31/149b7ff315084773b9780782338a33a8.jpg
[2]: https://habrahabr.ru/company/ruvds/blog/324194/
[3]: http://nmon.sourceforge.net/pmwiki.php
[4]: https://habrahabr.ru/post/324194/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Автоматизация бизнес-процессов. Ad-hoc изменения на примере из жизни. Часть 3
habra.16
habrabot(difrex,1) — All
2017-03-17 15:00:05


![image][1]Тема внедрения изменений в бизнес-процессы дошла и до Российского отделения международной Ассоциации BPM-профессионалов ([ABPMP Russian Chapter][2]) в виде статьи президента этой ассоциации г-на Белайчука под названием ["С чего начинается управление изменениями"][3]. Точнее г-н Белайчук поделился с читателями своего блога переводом статьи с англоязычного ресурса.



В статье речь идёт об управлении изменениями в бизнес-процессах. Основная мысль заключается в том, что "начинать управлять изменениями надо намного раньше — уже на первом этапе проекта BPI, когда разрабатывается устав, проводится выявление процесса и его моделирование". Автор статьи даёт понять, что управление изменениями должно носить систематический характер, и необходимо принимать во внимание, что в работе любой организации постоянными могут быть только изменения.



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



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



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



Суть подхода заключается в следующем:


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

[1]: https://habrastorage.org/getpro/habr/post_images/b23/1ed/2cc/b231ed2cccd9994e3caa4b8ae5ae90a9.jpg
[2]: http://abpmp.org.ru/
[3]: http://mainthing.ru/ru/item/786/
[4]: https://habrahabr.ru/post/319344/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Загрузка доверенной среды или лёгкий путь к паранойе в IT
habra.16
habrabot(difrex,1) — All
2017-03-17 15:00:05


![][1]



Несмотря на несколько академичное название, тема носит вполне себе практичный характер.
Когда мы видим заголовки новостей об очередном успешном взломе чатов Telegram или WhatsApp (ЦРУ, Иранскими спецслужбами, Zimperium – нужное подчеркнуть), людям достаточно часто приходится объяснять, что компрометация операционной системы или аккаунта пользователя не является синонимом слабости защиты самого приложения, и это не является поводом отказаться от пользования своим любимым мессенджером, т.к. на его месте может оказаться без принципиальной разницы любой другой.



А если вы, например, загрузившись с флэшки «перезабиваете» пароли администратора любой своей Windows-машины, это отнюдь не говорит о чудовищных дырах в «мастдае», а о вас – как о супер-хакере, взломавшем детище Microsoft.



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



Итак, начнём с практики, есть следующий кейс:

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

[1]: https://habrastorage.org/files/d27/80e/b98/d2780eb98f71469faec8281b5c573ff4.jpg
[2]: https://habrahabr.ru/post/324178/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Russian Code Cup снова бросает вызов программистам
habra.16
habrabot(difrex,1) — All
2017-03-17 15:30:05


![][1]

Крупнейший российский чемпионат по спортивному программированию [Russian Code Cup 2017][2] стартует 19 марта. Талантливые программисты со всего мира вновь будут соревноваться в правильности и скорости решения задач и поборются за призовой фонд в размере 750 тысяч рублей.

Основная программа Russian Code Cup (RCC) традиционно состоит из трех этапов: три квалификационных раунда (2 апреля, 16 апреля и 29 апреля), отборочный раунд (14 мая) и финал (10 сентября). На каждом этапе участникам предстоит решить от четырех до восьми разноплановых задач. Те, кому не повезло в первом квалификационном раунде, могут попытать удачи в следующих. В отборочный тур пройдут по 200 лучших участников с каждой квалификации, а в финале сойдутся 50 лучших программистов.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/61d/8e0/213/61d8e021370e4cb5a878be677ddb4d81.jpg
[2]: http://www.russiancodecup.ru/
[3]: https://habrahabr.ru/post/324006/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что нам стоит сервис email-маркетинга построить? Взгляд изнутри, часть вторая
habra.16
habrabot(difrex,1) — All
2017-03-17 16:00:05


Насколько сложно построить полноценный сервис email-маркетинга? Что для этого нужно предусмотреть? Какие подводные камни могут встретиться на пути пытливых умов разработчиков?

![image][1]

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

Сразу оговорюсь, что в статье рассмотрена только техническая сторона вопроса.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/e14/d61/766/e14d6176668748619800ed71326c9f91.png
[2]: https://habrahabr.ru/post/324174/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Аналог std::vector из C++11 на чистом C89 и как я его писал
habra.16
habrabot(difrex,1) — All
2017-03-17 16:30:04


[![image][1]][2]
_Жилой массив людей. Нет, серьёзно._



Холивары между ценителями Си и приверженцами его "сына" в лице C++ начались ещё до моего рождения и прекратятся разве что после смерти обоих этих языков и меня заодно. Адепты великого творения Кернигана-Ритчи до последней секунды рабочего дня готовы доказывать приспешникам Страуструпа аксиомы про вечность Си и его невероятную гибкость. Те в ответ им по-свойски советуют лучше порадоваться рабочему дню, ведь он вот-вот окажется последним – двадцать первому веку кроссплатформенный ассемблер не нужен. Распаляясь, сторонники Си приводят давно прошедшие через голову навылет миллионы тезисов "почему Си лучше C++", при этом каждый раз подчёркивая, что второй все достоинства первого растерял ещё будучи в отцовской утробе, попутно утратив лик человеческий. Обвиняемая сторона в обиде не остаётся и… а хотя постойте, о чём это я.



Я люблю Си, уважаю C++ и не переношу холивары (честно). При этом я осознаю, что в Си действительно не хватает многого, и яркий тому пример – отсутствие удобной работы с данными. В C++ эту проблему во многом решает STL и свойства самого языка. На мой студенческий взгляд, здесь особо отличается всем знакомый `std::vector`. Если стало интересно, как я реализовал его аналог средствами C89 – прошу под кат.

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

[1]: https://habrastorage.org/files/07f/3b0/d1b/07f3b0d1b2cc4f3cad3fb0272953ac4b.png
[2]: https://habrahabr.ru/post/324210/
[3]: https://habrahabr.ru/post/324210/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Glitch — новый подход к разработке приложений
habra.16
habrabot(difrex,1) — All
2017-03-17 17:30:05


На днях мы наткнулись на [интересную статью][1] на блог-платформе Medium, речь в которой идет о свежем проекте компании [Fog Creek][2] — Glitch (с английского «глюк», «сбой программы»). Бета-версия проекта стартовала в декабре 2016 года, правда, под другим названием, но об этом позже.

[Glitch][3] – это, как заявляют создатели, «дружелюбное сообщество, где вы можете создать приложение своей мечты».

![][4]

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

[1]: https://medium.com/glitch/welcome-to-glitch-fe161d0fc39b#.hr4blxyqc
[2]: https://www.fogcreek.com/
[3]: https://glitch.com
[4]: https://habrastorage.org/files/a82/57f/6e9/a8257f6e908d4b32aadcae16407f03a4.png
[5]: https://www.youtube.com/watch?v=iPc6dXBFhA4
[6]: https://habrahabr.ru/post/324180/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Дефекты безопасности, которые устранила команда PVS-Studio на этой неделе: выпуск N2
habra.16
habrabot(difrex,1) — All
2017-03-17 17:30:05


![Правим потенциальные уязвимости][1]
Мы решили в меру своих сил регулярно искать и устранять потенциальные уязвимости и баги в различных проектах. Можно назвать это помощью open-source проектам. Можно — разновидностью рекламы или тестированием анализатора. Еще вариант — очередной способ привлечения внимания к вопросам качества и надёжности кода. На самом деле, не важно название, просто нам нравится это делать. Назовём это необычным хобби. Давайте посмотрим, что интересного было обнаружено в коде различных проектов на этой неделе. Мы нашли время сделать исправления и предлагаем вам ознакомиться с ними.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/a5f/0f0/695/a5f0f069598b9c8e9e1080a28abf47dd.png
[2]: https://habrahabr.ru/post/324222/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Пишем Java Stream API на коленке за пару минут
habra.16
habrabot(difrex,1) — All
2017-03-17 18:30:04


Stream API — замечательная вещь быстро завоевавшая популярность у джава программистов. Лаконичные однострочники обрабатывающие коллекции данных посредством цепочек простых операций map, filter, forEach, collect оказались очень удобны. Операции над парами ключ-значение, конечно, тоже не помешали бы, но увы.

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

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

[>] Security Week 11: 38 зараженных смартфонов, ФБР плачет от шифрования, Google снова подлатал Chrome
habra.16
habrabot(difrex,1) — All
2017-03-17 20:30:04


Подцепить что-нибудь вредоносное на более-менее современной версии Android не так уж и просто. В большинстве случаев атака проводится с применением социальной инженерии, да такой лютой, что жертва сама разрешает в настройках системы установку приложений из левых источников, сама скачивает и сама же устанавливает троянца на свой смартфон. И нам вроде бы уже не страшно, потому что это не про нас. Но нашлись ребята с выдумкой и по нашу душу, которые начали продавать аппараты со встроенным зловредом, причем через солидные магазины.
[Читать дальше →][1]

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

[>] [Из песочницы] Собираем свой OpenShift Origin Cluster
habra.16
habrabot(difrex,1) — All
2017-03-17 20:30:04


«Всю разработку — в контейнеры» — с этой фразы началось мое увлекательное путешествие в мир Docker. Попытки угодить требованиям разработчиков привели к выбору OpenShift Origin. Однако, завести полноценный кластер, как оказалось, задача нетривиальная. Во время постройки контейнерной инфраструктуры я пытался найти что-нибудь по теме, в том числе на Хабре, и не находил, как это ни странно. Поэтому ниже я попробую описать весь базовый процесс установки и постараюсь уберечь вас от граблей, по которым фактически гулял.

Приступим:
[Читать дальше →][1]

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

[>] [Перевод] Что такое Resizable Concurrent Map
habra.16
habrabot(difrex,1) — All
2017-03-17 22:00:04


В одном из прежних постов я рассказывал, как реализовать [«простейшую в мире lock-free хеш-таблицу»][1] на C++. Она была настолько проста, что было невозможно удалять из нее записи или менять ее размерность. С тех пор прошло несколько лет, и не так давно я написал несколько многопоточных ассоциативных массивов без таких ограничений. Их можно найти в моем проекте [Junction][2] на GitHub.

Junction содержит несколько многопоточных реализаций интерфейса map – даже «самая простая в мире» среди них, под названием `ConcurrentMap_Crude`. Для краткости будем называть ее **Crude** map. В этом посте я объясню разницу между Crude map и **Linear** map из библиотеки Junction. Linear — самый простой map в Junction, поддерживающий и изменение размера, и удаление.

Можете ознакомиться с объяснением того, как работает Crude map, [в первоначальном посте][3]. Если коротко, то она основана на _открытой адресации_ и _линейном пробировании_. Это значит, что она по сути является большим массивом ключей и значений, использующим линейный поиск. Во время добавления или поиска заданного ключа мы вычисляем хеш от ключа, чтобы определить, с какого места начать поиск. Добавление и поиск данных возможны в многопоточном режиме.

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

[1]: https://habrahabr.ru/company/wunderfund/blog/322496/
[2]: https://github.com/preshing/junction
[3]: http://preshing.com/20160201/new-concurrent-hash-maps-for-cpp/
[4]: https://habrastorage.org/files/e64/1eb/a82/e641eba82cc14f4c80fac5cacc26ea78.png
[5]: https://habrahabr.ru/post/324060/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Имена или семантика классов в программировании
habra.16
habrabot(difrex,1) — All
2017-03-17 23:00:04


**1\.** При программировании на придумывание имен может уходить ощутимо много времени. Казалось бы, такая маловажная вещь, как имя. И вот только сегодня я осознал, почему я трачу на это время, и почему, в итоге, это не напрасная трата времени.

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

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

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

Как вы яхту назовете, так она и поплывет.
[Читать дальше →][1]

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

[>] Iptables: немного о действии REDIRECT, его ограничениях и области применения
habra.16
habrabot(difrex,1) — All
2017-03-18 23:00:04



Данная заметка повествует о действии REDIRECT в iptables, его ограничениях и области применения

# Iptables и REDIRECT


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

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

[>] findNclean: найти и вычистить
habra.16
habrabot(difrex,1) — All
2017-03-19 01:30:03


[![][1]][2]

Нет-нет, этот пост совсем не про боль и страдание! Даже немножко наоборот. Просто картинка напоминает о значимости первой строчки будущего кода ).

Вначале, просто хотел описать свежую [утилиту][3], с пылу с жару из под клавиатуры. Сама по себе она вполне ничего (хоть и до блеска бляхи новоиспечённого дембеля её ещё полировать и полировать), но описывать только её оказалось как-то скучновато. Потом решил, что на её примере можно поделиться башизмами, которыми сам раньше не пользовался. Далее подумал, что можно убить двух зайцев и описывать её совместно с жизненными примерами. Но в конце понял, что негоже мучить и без того изрядно потрёпанных зверушек, и решил просто их немножко причесать. Третий заяц (который и не заяц вовсе, а удав) мудро предпочёл воздержаться от участия в этом бардаке.

Так что если вдруг, тебе регулярно приходится искать файлы и может даже затем перемещать их куда-то; или тебе всё равно какой слой пыли лежит на файловой системе твоего сервера с аптаймом в несколько сотен лет и тебе просто интересен bash; или если ты просто мимо проходил\{,а,о\}, то не проходи мимо! [Читать дальше →][4]

[1]: https://habrastorage.org/files/f83/b42/91d/f83b4291d39b406ca2a482f5732765a1.jpg
[2]: https://habrahabr.ru/post/323828/#
[3]: https://github.com/vmspike/findNclean
[4]: https://habrahabr.ru/post/323828/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Изменение размера изображения с учётом содержимого
habra.16
habrabot(difrex,1) — All
2017-03-19 02:00:04


Изменение размера изображения с учётом содержимого (Content Aware Image Resize), жидкое растяжение (liquid resizing), ретаргетинг (retargeting) или вырезание шва (seam carving) относятся к методу изменения размера изображения, где можно вставлять или удалять _швы_, или наименее важные пути, для уменьшения или наращивания изображения. Об этой идее я узнал из [ролика на YouTube][1], от Shai Avidan и Ariel Shamir.



В этой статье будет рассмотрена простая пробная реализация идеи изменения размера изображения с учётом содержимого, естественно на языке Rust :)



Для подопытной картинки, я поискал по запросу[1][2] `"sample image"`, и нашел её[2][3]:


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

[1]: https://www.youtube.com/watch?v=qadw0BRKeMk
[2]: #fn:duckduck
[3]: #myfootnote2
[4]: https://habrastorage.org/files/63d/4b1/dc3/63d4b1dc37d4495c8aa36c931a30b02b.jpeg
[5]: https://habrahabr.ru/post/324284/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Сделайте свой анонимайзер за 10 минут
habra.16
habrabot(difrex,1) — All
2017-03-19 09:00:03


В этой статье я сначала расскажу историю не очень долгой жизни одного анонимайзера, а потом научу — как сделать анонимайзер из исходных кодов, даже не обладая особыми навыками программирования или администрирования. Выложить свой исходный код в открытый доступ было решено после того, как мой анонимайзер попал в список Роскомнадзора и был заблокирован… Но обо всем по порядку.
[Читать дальше →][1]

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

[>] Как искать паттерны в биржевых данных и использовать их в торговле?
habra.16
habrabot(difrex,1) — All
2017-03-19 18:00:05


Сегодня предлагаю поразмышлять о том, как искать паттерны в биржевых данных и как их использовать для успешной торговли.
Будем получать биржевые данные Forex от одного из брокеров, сохраним в базу данных PostgreSQL и попробуем найти закономерности при помощи алгоритмов машинного обучения.
В статье есть несколько приятных бонусов в виде кода на Python — Вы сможете сами проанализировать любые (почти) биржевые данные (или значения индикаторов), запустить собственного торгового робота и проверить любую торговую стратегию.
Все условия и определения паттернов в статье приведены для примера, вы можете использовать любые критерии.
[Читать дальше →][1]

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

[>] Yapf — причесываем код Python автокорректором
habra.16
habrabot(difrex,1) — All
2017-03-20 09:30:04


В эпоху все большей популярности различных js и css linter'ов, не удивительно появление удобного линтера с автокоррекцией для Python.

Приветствуйте, Yapf — готовое решение, для превращения каши из строк во вполне читаемый код. И поверьте, он вам пригодится.

[github.com/google/yapf][1]

![image][2]

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

[1]: https://github.com/google/yapf/
[2]: https://habrastorage.org/files/0bb/9aa/a5b/0bb9aaa5b0be45f284e180d20c4ab021.jpg
[3]: https://habrahabr.ru/post/324336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Обзор uniset2-testsuite — небольшого велосипеда для функционального тестирования
habra.16
habrabot(difrex,1) — All
2017-03-20 12:30:05


![][1]

Как естественное продолжение работы над [libuniset2][2], возник проект [uniset2-testsuite][3]. Это свой небольшой велосипед для функционального тестирования. В итоге он развился до более-менее универсального решения с «плагинами». Написан на python. Если интересно почитать, то прошу… заходите.
[Читать дальше →][4]

[1]: https://habrastorage.org/files/c26/80f/447/c2680f4472e943a3ad61d5a82678e4d3.png
[2]: https://habrahabr.ru/post/278535/
[3]: https://github.com/Etersoft/uniset2-testsuite
[4]: https://habrahabr.ru/post/323290/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] ASP.NET Core: Разработка приложений ASP.NET Core с помощью dotnet watch
habra.16
habrabot(difrex,1) — All
2017-03-20 12:30:05


В этом руководстве мы воспользуемся существующим приложением WebApi (оно вычисляет сумму и произведение двух чисел), чтобы продемонстрировать варианты использования `dotnet watch`. Образец приложения специально содержит ошибку, которую мы исправим во время изучения.

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

[1]: https://habrastorage.org/files/3b4/c17/fee/3b4c17fee9f04e97adbd7198ea3b1fd7.jpg
[2]: https://habrahabr.ru/post/324312/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Удаление метаданных из PDF
habra.16
habrabot(difrex,1) — All
2017-03-20 14:00:04


![image][1]

Вот, казалось бы, тривиальная задача — удалить metadata из документа. Уже тысячу раз специалисты по паранойе информационной безопасности давали подобного рода рекомендации: «обязательно удаляйте избыточную метаинформацию из документов перед публикацией». И объясняли зачем это может понадобиться ([пример][2]). В сети масса инструкций о том как это сделать для различных форматов изображений и документов, но в то же время про такой распространённый формат как PDF внятной информации довольно мало.

Я провел небольшой эксперимент и по результатам собрал небольшой toolchain и freeware утилит. Вот этим всем и хочу поделиться.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/2e7/d0d/8ba/2e7d0d8bad264a0a9fcaba7faa095aa9.png
[2]: https://toster.ru/q/193551
[3]: https://habrahabr.ru/post/324348/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как перестать ходить на конференции участником и начать выступать? Советы от Андрея Акиньшина
habra.16
habrabot(difrex,1) — All
2017-03-20 14:30:05


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

[Андрей Акиньшин][2] ([@DreamWalker][3]) — разработчик [Rider][4] в JetBrains, мейнтейнер проекта [BenchmarkDotNet][5] (библиотека для написания .NET-бенчмарков, поддержанная .NET Foundation), .NET MVP, кандидат физико-математических наук, серебряный призёр ACM ICPC.

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

![image][6]
_Андрей Акиньшин — спикер многих конференций. Ват, например, одно из последних выступлений — [«Поговорим про арифметику»][7]._
[Читать дальше →][8]

[1]: http://dump-conf.ru/?utm_source=habr&utm_medium=post&utm_campaign=akinshin
[2]: http://aakinshin.net/ru/about/
[3]: https://habrahabr.ru/users/dreamwalker/
[4]: https://www.jetbrains.com/rider/
[5]: https://github.com/dotnet/BenchmarkDotNet
[6]: https://habrastorage.org/files/1b2/653/599/1b26535999ae43d88355c6f2b1d9115d.jpg
[7]: https://www.youtube.com/watch?v=t8GuveyIV38
[8]: https://habrahabr.ru/post/324352/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Intel и Google — дружим «облаками»
habra.16
habrabot(difrex,1) — All
2017-03-20 14:30:05


На проходившей в Сан-Франциско конференции [Google Cloud Next ‘17][1] объявлено о программе стратегического партнерства «Better Together» («Вместе лучше») между компаниями Google и Intel в области облачных технологий и «Интернета вещей». Цель программы — предоставить разработчикам программные и аппаратные компоненты, инструменты и учебные материалы для ускорения процесса создания приложений. При этом Google открывает доступ к своему «облаку» и его функционалу, а Intel обеспечивает программными средствами разработки, такими как [Intel IoT Developer Kit][2] и предоставляет шлюзы «интернета вещей» в лице [Intel NUC][3].

![][4]
Планируется запустить совместные он-лайн ресурсы для разработчиков — [главная страница проекта][5] на сайте Intel Developer Zone уже работает — а также провести тренинги и другие мероприятия. В свою очередь, специалисты компаний будут проводить интеграцию между участвующими в программе Intel IoT Developer Kit, Intel NUC и [Google Cloud Platform][6].
[Читать дальше →][7]

[1]: https://cloudnext.withgoogle.com/
[2]: https://software.intel.com/ru-ru/iot/hardware/dev-kit
[3]: http://www.intel.ru/content/www/ru/ru/nuc/products-overview.html
[4]: https://habrastorage.org/files/96a/e88/394/96ae883949bb479a836f637257001f43.jpg
[5]: https://software.intel.com/en-us/iot/cloud-analytics/google
[6]: https://cloud.google.com/
[7]: https://habrahabr.ru/post/323978/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Использование map и reduce в функциональном JavaScript
habra.16
habrabot(difrex,1) — All
2017-03-20 14:30:05


_Предлагаем вашему вниманию переводной материал об использовании map и reduce в функциональном JavaScript. Эта статья будет интересна в первую очередь начинающим разработчикам._

За всеми этими разговорами о новых стандартах легко забыть о том, что именно ECMAScript 5 подарил нам ряд инструментов, благодаря которым мы сегодня можем использовать функциональное программирование в JavaScript. Например, нативные методы [map()][1] и [reduce()][2] на базе JS-объекта `Array`. Если вы до сих пор не пользуетесь `map()` и `reduce()`, то сейчас самое время начать. Наиболее современные JS-платформы нативно поддерживают ECMAScript 5. Использование этих методов позволит сделать ваш код гораздо чище, читабельнее и удобнее в обслуживании. `map()` и `reduce()` помогут вам встать на путь более элегантной функциональной разработки.
[Читать дальше →][3]

[1]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
[2]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce
[3]: https://habrahabr.ru/post/324342/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [NeoQuest2017] 6 планета или «Слишком много всего…»
habra.16
habrabot(difrex,1) — All
2017-03-20 15:00:04


Есть мнение, что после драки кулаками не машут.
Но первый в моей жизни ctf [NeoQuest2017][1] показал, что бумажная ИБ от практической отличается достаточно сильно и с ходу флаги взять не получится. Хотя, как оказалось, подобрался я к флагу в плотную.
Итак:
> **«СЛИШКОМ МНОГО ВСЕГО…»**
> Эта планета напоминает тропики… Невероятное количество разнообразной флоры и фауны! Наши рюкзаки все заполнялись и заполнялись образцами, а журналы наблюдений – описаниями, а ведь мы только начали исследование планеты! Оглядевшись вокруг, мы поняли, что гораздо эффективнее будет заносить все сведения удаленно сразу в бортовой [журнал][2]. Вот только передача данных очень медленная, поэтому нужно грамотно расставить приоритеты.
[Читать дальше →][3]

[1]: http://neoquest.ru/about.php
[2]: https://213.170.100.212/
[3]: https://habrahabr.ru/post/324360/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Делаем свой Skype с переводом речи в реальном времени, только лучше
habra.16
habrabot(difrex,1) — All
2017-03-20 15:00:04


Не так давно Skype анонсировал реал-тайм перевод во время видеообщения с собеседником. Эта тема уже давно не дает покоя человечеству: многие помнят фильм «Автостопом по галактике» и Babel fish. Мы решили разобраться, как сделать это существо на Voximplant. Описание и демка – под катом. [Читать дальше →][1]

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

[>] Как и почему статические анализаторы борятся с ложными срабатываниями
habra.16
habrabot(difrex,1) — All
2017-03-20 15:30:06


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

[1]: https://habrastorage.org/getpro/habr/post_images/868/88f/ec7/86888fec755babf7003ce362008fddcd.png
[2]: https://habrahabr.ru/post/324372/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Исключения в Windows x64. Как это работает. Часть 3
habra.16
habrabot(difrex,1) — All
2017-03-20 16:00:03


Опираясь на материал, описанный в [первой][1] и [второй][2] частях данной статьи, мы продолжим обсуждение темы обработки исключений в Windows x64.

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

[1]: https://habrahabr.ru/company/aladdinrd/blog/321868/
[2]: https://habrahabr.ru/company/aladdinrd/blog/322956/
[3]: https://habrahabr.ru/post/324376/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как и почему статические анализаторы борются с ложными срабатываниями
habra.16
habrabot(difrex,1) — All
2017-03-20 16:00:03


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

[1]: https://habrastorage.org/getpro/habr/post_images/868/88f/ec7/86888fec755babf7003ce362008fddcd.png
[2]: https://habrahabr.ru/post/324372/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Метод наборов
habra.16
habrabot(difrex,1) — All
2017-03-20 16:30:04


Читая книгу [«Конкретная математика»][1], одновременно набираясь знаний и осознавая свою некомпетентность в вопросе, ещё в самой первой главе я наткнулся на **метод наборов**, который авторы используют для решения [Задачи Иосифа Флавия][2]. Метод они не объясняют, сочтя его слишком элементарным, так что пришлось искать информацию о нём самому. В рускоязычном сегменте интернетов достаточно подробного описания не нашел, поэтому воспользовался [ответом с math.stackexchange.com][3], который позже перевёл, и теперь представляю его вам, дабы те, кто тоже не понял метод инстинктивно, смогли проникнуться.
Далее — перевод от первого лица.
[Читать дальше →][4]

[1]: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D0%B0%D1%8F_%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0
[2]: https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%98%D0%BE%D1%81%D0%B8%D1%84%D0%B0_%D0%A4%D0%BB%D0%B0%D0%B2%D0%B8%D1%8F
[3]: http://math.stackexchange.com/questions/1017498/mathematical-explanation-for-the-repertoire-method
[4]: https://habrahabr.ru/post/324370/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

Pages: 1 ... 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 ... 210