RSS
Pages: 1 ... 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 ... 133
[>] Macaw
habra.16
habrabot(difrex,1) — All
2016-10-26 17:00:05


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



Именно с этой проблемой мы столкнулись во время разработки iOS приложений. Чтобы упростить задачу, мы разработали графическую библиотеку [Macaw][3], которая позволяет описывать сложные интерфейсы в виде понятных объектов [сцены][4] и даже напрямую отображать SVG графику с поддержкой событий и анимации.



Интересно? В этой статье мы познакомим вас с базовыми понятиями Macaw и вместе создадим диаграмму с анимацией, используя минимум кода.


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

[1]: https://itunes.apple.com/us/app/fresh-air-beautiful-personalized/id933439687?mt=8
[2]: https://itunes.apple.com/us/app/portfolio-finance-news-stock/id974217998?mt=8
[3]: https://github.com/exyte/macaw
[4]: https://en.wikipedia.org/wiki/Scene_graph
[5]: https://habrahabr.ru/post/313630/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] GitLab о политике управления проектами open source
habra.16
habrabot(difrex,1) — All
2016-10-26 17:00:05


_Некоторые скептически высказываются насчет ГитЛаба — мол вот вы перестанете поддерживать бесплатный Community Edition(CE), и что мы будем делать? Не перестанем. Публикуем для вас перевод статьи на эту тему._


----


Недавно мы [зафиксировали нашу политику в отношении поддержки ПО с открытым кодом (open source)][1] и нашу преданность этому методу разработки. Коротко нашу политику можно описать так: нужно принимать решения в интересах проекта, при этом не забывая о бизнесе, который этот проект поддерживает. В этой статье я хочу поделиться с вами соображениями о некоторых правилах в нашей политике.


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

[1]: https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/1106
[2]: https://habrahabr.ru/post/313632/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Идем на рекорд: пятая проверка Chromium
habra.16
habrabot(difrex,1) — All
2016-10-26 17:30:04


![][1]
Казалось бы, Chromium был рассмотрен нами неоднократно. Внимательный читатель задастся логичным вопросом: «Зачем нужна еще одна проверка? Разве было недостаточно?». Бесспорно, код Chromium отличается чистотой, в чем мы убеждались каждый раз при проверке, однако ошибки неизбежно продолжают выявляться. Повторные проверки хорошо демонстрируют, что чем чаще будет применяться статический анализ, тем лучше. Хорошо, если проект проверяется каждый день. Ещё лучше, если анализатор используется программистами непосредственно при работе (автоматический анализ изменённого кода).
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/f5e/8a1/f46/f5e8a1f46052cffe7cdf1b1dc0120cc7.png
[2]: https://habrahabr.ru/post/313670/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Macaw — удобная библиотека для векторной графики в Cocoa
habra.16
habrabot(difrex,1) — All
2016-10-26 17:30:04


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



Именно с этой проблемой мы столкнулись во время разработки iOS приложений. Чтобы упростить задачу, мы разработали графическую библиотеку [Macaw][3], которая позволяет описывать сложные интерфейсы в виде понятных объектов [сцены][4] и даже напрямую отображать SVG графику с поддержкой событий и анимации.



Интересно? В этой статье мы познакомим вас с базовыми понятиями Macaw и вместе создадим диаграмму с анимацией, используя минимум кода.


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

[1]: https://itunes.apple.com/us/app/fresh-air-beautiful-personalized/id933439687?mt=8
[2]: https://itunes.apple.com/us/app/portfolio-finance-news-stock/id974217998?mt=8
[3]: https://github.com/exyte/macaw
[4]: https://en.wikipedia.org/wiki/Scene_graph
[5]: https://habrahabr.ru/post/313630/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Зоопарк архитектур нейронных сетей (часть 1)
habra.16
habrabot(difrex,1) — All
2016-10-26 22:30:04


![][1]
За всеми архитектурами нейронных сетей, которые то и дело возникают последнее время, уследить непросто. Даже понимание всех аббревиатур, которыми бросаются профессионалы, поначалу может показаться невыполнимой задачей.

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

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

[1]: https://habrastorage.org/getpro/habr/post_images/38d/b02/e6e/38db02e6e4d0e92271a2c6577dfd71ce.png
[2]: https://habrahabr.ru/post/313696/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] [ В закладки ] Зоопарк архитектур нейронных сетей (часть 1)
habra.16
habrabot(difrex,1) — All
2016-10-26 23:30:05


![][1]
За всеми архитектурами нейронных сетей, которые то и дело возникают последнее время, уследить непросто. Даже понимание всех аббревиатур, которыми бросаются профессионалы, поначалу может показаться невыполнимой задачей.

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

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

[1]: https://habrastorage.org/getpro/habr/post_images/38d/b02/e6e/38db02e6e4d0e92271a2c6577dfd71ce.png
[2]: https://habrahabr.ru/post/313696/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Голуби брутфорсят парадокс Монти Холла лучше людей
habra.16
habrabot(difrex,1) — All
2016-10-27 00:00:04


Голуби дают людям фору в решении дилеммы Монти Холла, что могло бы позволить им успешно выступать на одноименном ток-шоу. Это закономерность может, в свою очередь, излить свет на то, почему людям так трудно она дается.


![][1]


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



Когнитивный психолог Massimo Piattelli-Palmarini [заметил по этому поводу][2]: _Ни одна статистическая задача даже рядом не стоит по способности дурачить всех людей и во все времена_.



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

[оставить или поменять][3]

[1]: https://habrastorage.org/files/406/9db/fee/4069dbfee07d4b3bb17d4c23c269eefb.jpg
[2]: https://en.wikipedia.org/wiki/Monty_Hall_problem#Sources_of_confusion
[3]: https://habrahabr.ru/post/313452/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Подключение АЦП к ПЛИС. Особенности, сложности, реализация
habra.16
habrabot(difrex,1) — All
2016-10-27 01:00:03


![][1]
Всем привет!

В данной статье речь пойдет о подключении микросхем АЦП к кристаллам ПЛИС. Будут рассмотрены основные особенности соединения узлов схем, представлены современные АЦП и их характеристики. В статье будут даны практические советы по быстрому и правильному подключению АЦП к ПЛИС с минимальными временными затратами. Кроме того, речь пойдет о принципах подключения тех или иных АЦП, будет рассмотрен входной буфер ПЛИС и его базовые компоненты – триггеры, узлы задержки IODELAY, сериализаторы ISERDES и т.д. Более детально с примерами программного кода на языке VHDL будет проведен обзор основных элементов, требуемых для качественного приёма данных от АЦП. Это входной буфер, узел упаковки данных для одноканальных и многоканальных систем, модуль синхронизации и передачи данных на базе FIFO, узел программирования АЦП по интерфейсу SPI, узел синтеза частоты данных – MMCM/PLL. Также в статье будет представлен обзор законченных устройств (в стандарте FMC) от ведущих зарубежных и отечественных производителей аналоговых и цифровых схем. В конце статьи вы найдете ссылку на исходные коды универсального узла приёмника данных от многоканальных схем АЦП. Код простой и гибкий в конфигурировании, он представлен на языке VHDL и заточен на микросхемы ПЛИС Xilinx 7 серии и выше, но может быть применен и в других кристаллах ПЛИС.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/3f1/63c/177/3f163c17739344cfb625350440a24caa.png
[2]: https://habrahabr.ru/post/313692/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Деятельность кибергруппировки Sednit под микроскопом — Часть 2
habra.16
habrabot(difrex,1) — All
2016-10-27 01:30:04


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

![][3]
Группировка специализируется на компрометации только тех целей, которые заранее были выбраны для кибератаки, т. е. кибератака носит направленный характер и осуществляется после проведенной разведки этих целей. Вредоносный инструмент (toolkit) авторов состоит из трех основных компонентов: бэкдоров SEDRECO, XAGENT и сетевого агента XTUNNEL.
[Читать дальше →][4]

[1]: http://www.welivesecurity.com/wp-content/uploads/2016/10/eset-sednit-part-2.pdf
[2]: https://habrahabr.ru/company/eset/blog/313188/
[3]: https://habrastorage.org/files/cab/c95/160/cabc95160ffb430d8e25b0be6fddbf3a.jpeg
[4]: https://habrahabr.ru/post/313678/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] [ В закладки ] Зоопарк архитектур нейронных сетей. Часть 1
habra.16
habrabot(difrex,1) — All
2016-10-27 02:00:04


![][1]


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

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

[1]: https://habrastorage.org/getpro/habr/post_images/38d/b02/e6e/38db02e6e4d0e92271a2c6577dfd71ce.png
[2]: https://habrahabr.ru/post/313696/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Что нам стоит сервис email-маркетинга построить? Взгляд изнутри, часть первая
habra.16
habrabot(difrex,1) — All
2016-10-27 13:30:07


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

![][1]

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

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

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

[>] [recovery mode] Двухфакторная аутентификация и открытые двери
habra.16
habrabot(difrex,1) — All
2016-10-27 13:30:07


Sony все же добавила двухфакторную аутентификацию для защиты ста с лишним миллионов учетных записей пользователей в своей сети Sony PlayStation Network. Этого шага уже давно ждали пользователи PSN, особенно после знаменитого взлома в 2011 году, в результате которого доступ к игровому сервису был закрыт на целый месяц, и под угрозой оказались данные кредитных карт, адреса электронной почты и прочая персональная информация пользователей. Возможно, даже слишком давно…


[Читать дальше: 2FA or not 2FA, вот в чем вопрос][1]

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

[>] [Из песочницы] Ускорение библиотеки HeatonResearchNeural (нейросети) в 30 раз
habra.16
habrabot(difrex,1) — All
2016-10-27 14:00:08


Всем привет! Хочу поделиться небольшой историей допиливания [HeatonResearchNeural][1] — библиотеки разнообразных нейросетей. Сразу оговорюсь, что работаю аналитиком, а честным программистом перестал быть лет 10 назад.

Однако у меня есть собственный проект на C#, который развиваю в свободное время. Чтобы не заморачиваться написанием велосипеда когда-то скачал HeatonResearchNeural прикрутил скотчем и спокойно гонял тесты, дорабатывал логику своего кода и т.д. Для максимального ускорения заложил в архитектуру решения параллелизацию выполнения расчетов и глядя на загрузку CPU по 80-90% по телу разливалось приятное хозяйское тепло — все пашут, все при деле!
[Читать дальше →][2]

[1]: http://www.heatonresearch.com/download/
[2]: https://habrahabr.ru/post/313740/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Питер Хинченс про Optimistic Merging: Сначала люди, потом код. Соберите правильное сообщество, и оно напишет нужный код
habra.16
habrabot(difrex,1) — All
2016-10-27 15:00:03


![image][1]



Я выступал на DomCode в ноябре 2015 года (отличная конференция, кстати; проходила в маленьком красивом городке) и рассказывал о своем списке правил для построения open source сообществ. Один человек позже попросил меня объяснить, почему я советую мерджить патчи быстро, не дожидаясь завершения тестирования непрерывной интеграции (Continuous Integration) и без перепроверки кода. Я буду называть эту стратегию optimistic merging (ОМ). И сейчас я расскажу о некоторых ее плюсах.

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

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

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

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

[1]: https://habrastorage.org/getpro/habr/post_images/be3/ade/840/be3ade84084d3d9c9bf4a5296719c099.jpg
[2]: https://habrahabr.ru/post/313606/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] ИТ-бульдоги под ковром
habra.16
habrabot(difrex,1) — All
2016-10-27 15:30:04


А поговорим мы с вами сегодня про сложные взаимоотношения американских ИТ-вендоров и спецслужб: о мировой ИТ-закулисе, скандале в Yahoo, тайне бекдора в Juniper, истории Apple vs ФБР. Также обсудим, зачем АНБ заплатило RSA 10 млн. долларов за криптобэкдор. Попробуем нарисовать несколькими штрихами современный ИТ-мир как он есть, и без лишней суеты и параноидальных выводов, и без слепого обожания в «розовых тонах». Что получилось — смотрите под катом.
[Читать дальше →][1]

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

[>] [Перевод] Безопасность в IoT: Azure IoT Suite для тех, кто начинает с нуля
habra.16
habrabot(difrex,1) — All
2016-10-27 16:30:03


Представляем перевод серии статей, посвященных безопасности в IoT. Первый материал будет более теоретический и посвящен обзору возможностей Microsoft Azure IoT Suite.

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

[1]: https://habrastorage.org/files/a2b/0ca/f0f/a2b0caf0fdc04c60b0fcc78c8cc2a170.jpg
[2]: https://habrahabr.ru/post/313762/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Разработка прикладных приложений для KolibriOS. Обзор вариантов
habra.16
habrabot(difrex,1) — All
2016-10-27 17:30:06


![][1]


Опустим вопрос, зачем это нужно. Это одна из немногих компактных операционных систем open source с поддержкой русского языка, которые шагнули дальше концептуальной версии.


## Что нужно для начала разработки для Колибри ОС (КОС)?


Источниками информации для вас будут (начало [тут][2]):

* Форум, чтобы знать в каком направлении двигаться;
* Вики, хотя к сожалению достаточно фрагментирована, но даст необходимый минимум обзорной информации;
* Исходные тексты программ в хранилище Subversion (SVN);
* Справочник по системным функциям на русском и английском языке [SVN:/kernel/trunk/docs/sysfunc\*.txt][3], или на [Вики][4];[Читать дальше →][5]

[1]: https://habrastorage.org/files/705/c40/dde/705c40dde2c24b8db2357e8c5f923b75.png
[2]: http://kolibrios.org/ru/
[3]: http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fkernel%2Ftrunk%2Fdocs%2F&#a9c10d0a9ec4d4bb1adfc4e75aeef8f61
[4]: http://wiki.kolibrios.org/wiki/Ru/api/kernel
[5]: https://habrahabr.ru/post/313772/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] Стратегии расширения Django User Model
habra.16
habrabot(difrex,1) — All
2016-10-27 22:00:04


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

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

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

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

[>] Adobe выпустила экстренное обновление для Flash Player
habra.16
habrabot(difrex,1) — All
2016-10-27 22:00:04


Adobe выпустила экстренное обновление [APSB16-36][1], которое исправляет критическую уязвимость CVE-2016-7855 типа Remote Code Execution (RCE). Уязвимость находится на стадии активной эксплуатации злоумышленниками. Как в случае и с другими уязвимостями Flash Player, CVE-2016-7855 позволяет атакующим удаленно исполнить код в веб-браузере с использованием специальным образом сформированного объекта Flash.

![][2]

Сама уязвимость была обнаружена группой антивирусных аналитиков Google и замечена в эксплуатации в направленных кибератаках на пользователей Windows 7, 8.1 и 10. Выше в таблице указаны актуальные версии Flash Player, в которых была закрыта данная уязвимость. Мы рекомендуем пользователям обновить используемую версию веб-браузера на актуальную. Обновления доступны для платформ Windows, OS X, Linux и Chrome OS. [][3]

[1]: https://helpx.adobe.com/security/products/flash-player/apsb16-36.html
[2]: https://habrastorage.org/files/761/102/301/761102301efa473dabe33cd94bc19ae7.png
[3]: https://habrahabr.ru/post/313768/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Правила плохого и хорошего тона в программировании — мнения экспертов
habra.16
habrabot(difrex,1) — All
2016-10-27 22:00:04


![][1]

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

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

Для слабых разработчиков работа в изоляции может стать непреодолимым препятствием [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/9e5/923/11c/9e592311c356c728324d8e40d67da35d.jpg
[2]: https://habrahabr.ru/post/313784/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] main(){printf(&unix["\021%six\012\0"], (unix)[«have»]+«fun»-0x60);}
habra.16
habrabot(difrex,1) — All
2016-10-28 14:00:05


## Развлекаемся, «распутывая» код на языке Си

Вызов: Прежде чем лезть под кат, скомпилируйте в голове заголовок статьи, что он дает на выходе?

![image][1]
Когда я в очередной раз просматривал книгу «Expert C programming», я вдруг наткнулся на раздел «light relief» в международном конкурсе на самый запутанный код на Си ([IOCCC][2]). Это соревнование по написанию как можно более нечитабельного кода. То, что такие конкурсы устраиваются для Си, наверное, говорит что-что об этом языке. Мне хотелось увидеть работы участников этого соревнования. Не найдя никакой информации в интернете, я решил поискать их самостоятельно.

IOCCC был придуман Стивеном Борном, когда он решил использовать препроцессор Си и написать Unix shell как бы на языке Си, но больше похожем на язык Algol-68, с его явными окончаниями операторов, например:

if
...
fi
Он добился этого, сделав:

#define IF if(
#define THEN ){
#define ELSE } else {
#define FI ;}

Что позволило ему писать так:

IF *s2++ == 0
THEN return(0);
FI

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

[1]: https://habrastorage.org/getpro/habr/post_images/313/607/582/3136075824da622da17f179baca6c787.jpg
[2]: http://ioccc.org
[3]: https://habrahabr.ru/post/313598/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Правила хорошего вкуса от Линуса Торвальдса. Делаем код быстрее, проще и понятнее
habra.16
habrabot(difrex,1) — All
2016-10-28 15:30:04


> _«Вкус — это способность судить о прекрасном»_
> И. Кант


Дирк Хондел, один из тех, кто стоял у истоков Linux, [однажды][1] сказал о создателе Linux Линусе Торвальдсе: «Линус не только блестящий программист: у него хороший вкус. Торвальдс находит простые и разумные пути решения проблем, умеет всё «разложить по полочкам». Сложные вещи он делает простыми. По-моему, это и есть главное отличие превосходного программиста от просто хорошего».


В [недавнем интервью][2], примерно на 14-й минуте, Линус Торвальдс коснулся темы «хорошего вкуса в программировании». Хороший вкус? Ведущий попросил его остановиться на этом подробнее, и Линус, пришедший не с пустыми руками, показал пару слайдов.
[Читать дальше →][3]

[1]: https://www.crn.ru/numbers/reg-numbers/detail.php?ID=10627
[2]: https://www.ted.com/talks/linus_torvalds_the_mind_behind_linux/transcript?language=ru
[3]: https://habrahabr.ru/post/313836/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Что значит «Нам нужно больше времени»??
habra.16
habrabot(difrex,1) — All
2016-10-28 15:30:04


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

![image][1]

Если есть сомнения в том, что это действительно необходимый навык, вспомните этот ужасный, но часто задаваемый вопрос: «Как много времени это займёт?». Даже если вы супер-Agile и не верите в дедлайны, будьте уверены, что кто-нибудь сломается под давлением и выдаст дату, к которой и будет привязана ваша команда. И когда эта дата наступит, а вы не будете готовы к запуску, ваш менеджер будет злиться, потому что из-за вас она будет глупо выглядеть; отдел продаж будет злиться, потому что они обещали самым важным заказчикам продукт уже сегодня; и ваша команда тоже будет злой, потому что они работали пять выходных подряд пытаясь вложиться в невозможный дедлайн. Так что давайте избежим всего этого и создадим план, пригодный к жизни.

Для примера я хочу предложить упражнение, которое я позаимствовал из курса “Intro to Development” от Microsoft. Цель – оценить время покраски комнаты. Это тот тип упражнения, который не требует каких-то специфичных знаний о какой-то системе.

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

[Готово?][2]

[1]: https://habrastorage.org/getpro/habr/post_images/9f8/96f/481/9f896f481eb6a1a08dc71089756de12e.png
[2]: https://habrahabr.ru/post/313818/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Глупые трюки с ES6
habra.16
habrabot(difrex,1) — All
2016-10-28 15:30:04


_Это перевод [статейки][1] о некоторых не совсем очевидных прикольных возможностях, которые предоставляет ES6 стандарт JavaScript'а. В статье время от времени проходит нечто наркоманское, так что вполне возможно я не смог перевести всё достаточно качественно. Если нашли косяки, напишите мне об этом — поправлю._



\{в оригинале здесь была [какая-то непонятная гифка с обезьяной][2], которую я как-то не очень понял, оттого и не буду её здесь ставить\}



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

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

[1]: https://engineering.haus.com/dumb-es6-tricks-53ecadd1b29f
[2]: https://cdn-images-1.medium.com/max/800/1*vIA5px45AXToYpLWemiHBw.gif
[3]: https://habrahabr.ru/post/313814/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Фонд перспективных исследований: конкурс на лучшую интеллектуальную технологию дешифрирования аэрокосмической информации
habra.16
habrabot(difrex,1) — All
2016-10-28 15:30:04


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

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

[1]: https://habrastorage.org/files/c42/641/ce7/c42641ce7140436495ee2d0d91b9c618.jpg
[2]: https://habrahabr.ru/post/313828/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В процессорах Intel обнаружена ошибка, позволяющая обходить защиту ASLR
habra.16
habrabot(difrex,1) — All
2016-10-28 17:30:03


[![][1]][2]

Рандомизация адресного пространства (Address Space Layout Randomization, сокращенно ASLR) — это механизм обеспечения безопасности, встроенный в популярные операционные системы. Его суть сводится к рандомизации виртуальных адресов памяти различных структур данных — угадать расположение в памяти целевой структуры сложно предугадать, поэтому шансы на успешную атаку значительно снижаются. Ранее в нашем блоге мы рассказывали об устройстве [ASLR на примере ОС Windows 8][3].

В середине октября 2016 года группа американских исследователей информационной безопасности из Калифорнийского (Риверсайд) и Нью-Йоркского (Бинхемптон) университетов [опубликовала][4] описание техники атаки, которая использует для обхода ASLR ошибку в процессорах Intel. [Читать дальше →][5]

[1]: https://habrastorage.org/files/aa9/8e4/95e/aa98e495e1f145758116eb46b27c196e.png
[2]: https://habrahabr.ru/company/pt/blog/313856/
[3]: https://habrahabr.ru/company/pt/blog/162617/
[4]: http://arstechnica.com/security/2016/10/flaw-in-intel-chips-could-make-malware-attacks-more-potent/
[5]: https://habrahabr.ru/post/313856/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Из песочницы] NaNoGenMo: как компьютеры пишут новеллы
habra.16
habrabot(difrex,1) — All
2016-10-28 18:30:03


Ноябрь считается месяцем литературного творчества. Каждый год в интернете проходит мероприятие NaNoWriMo ([National Novel Writing Month][1]). Участники должны до конца месяца написать новеллу длиной не менее 50000 слов. За 17 лет в нем поучаствовали больше 20000 человек.



В 2013 году у программистов появилось аналогичное соревнование — NaNoGenMo ([National Novel Generation Month][2]). Задача NaNoGenMo — написать программу, которая _сгенерирует_ новеллу длиной 50000 слов или больше. При этом требования к новелле довольно слабые — подойдет любой текст достаточной длины. Как вы увидите, это может быть сборник рассказов, пьеса, кулинарная книга, словарь или туристический путеводитель. На самом деле, произведение не обязано даже быть текстовым.



[][3]
_Графическая новелла «Сгенерированный детектив»_

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

[1]: https://en.wikipedia.org/wiki/National_Novel_Writing_Month
[2]: https://github.com/dariusk/NaNoGenMo/
[3]: http://gregborenstein.com/comics/generated_detective/14/
[4]: https://habrahabr.ru/post/313862/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Security Week 43: атака на серверы Dyn, жизнь поддельного техсаппорта, уязвимость в Linux
habra.16
habrabot(difrex,1) — All
2016-10-28 21:00:04


![][1]Главной новостью недели стала атака на DNS-серверы компании Dyn в прошлую пятницу. Мощная DDoS-атака началась утром по времени США, проходила в два этапа и на несколько часов привела к проблемам с доступом или же к полной недоступности множества сайтов-клиентов Dyn ([новость][2]). Среди пострадавших — Twitter, Reddit, Github, Soundcloud, Spotify и другие. Фактически все указанные сайты работали, были недоступны обслуживающие их DNS-серверы, но на стороне пользователя невозможность транслировать имя веб-сайта в IP-адрес выглядела так же, как если бы сервис ушел в офлайн целиком. Как обычно, недоступность крупной соцсети привела к глюкам и падению сайтов, которые изначально были вообще не при чем (например, подвисший код элементов Twitter [мешал][3] загружаться сайту The Register).

Позже подтвердились предположения об источнике атаки ([новость][4]) — это был ботнет IoT-устройств Mirai, ранее [отметившийся][5] массивной атакой на блог Брайана Кребса. Код Mirai был [выложен][6] в открытый доступ, что привело к заметному росту числа атакованных устройств. Их и так было немало: 380 тысяч по утверждению изначального «владельца» исходников.

Термин «взлом» к подверженным устройствам не совсем применим: в большинстве случаев эксплуатируются банальные уязвимости и зашитые пароли. OEM-производитель Xiongmai, частично ответственный за небезопасные прошивки устройств, даже [начал][7] в США отзывную кампанию, которая, впрочем, относится только к нескольким тысячам IP-видеокамер. По остальным выпущены рекомендации и обновления прошивок. Проблема в том, что вряд ли все владельцы устройств будут обновлять устройства.
[Читать дальше →][8]

[1]: https://habrastorage.org/files/883/c94/f1a/883c94f1a7b341399afcdd01ec59431e.jpg
[2]: https://threatpost.ru/mirai-fueled-iot-botnet-behind-ddos-attacks-on-dns-providers/18814/
[3]: https://twitter.com/TheRegister/status/789507386352349184
[4]: https://threatpost.ru/mirai-fueled-iot-botnet-behind-ddos-attacks-on-dns-providers/18814/
[5]: https://threatpost.ru/brajan_krebs_pod_obstrelom_novyj_ddos-rekord/18282/
[6]: https://threatpost.ru/source-code-released-for-mirai-ddos-malware/18444/
[7]: https://threatpost.ru/chinese-manufacturer-recalls-iot-gear-following-dyn-ddos/18869/
[8]: https://habrahabr.ru/post/313882/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как подружить Bagri и MongoDB
habra.16
habrabot(difrex,1) — All
2016-10-28 21:00:04


Примерно месяц назад, я рассказал Хабру о проекте [Bagri][1]: [NoSQL базе данных с открытым кодом, построенной поверх распределенного кэша][2].

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

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

[1]: http://bagridb.com
[2]: https://habrahabr.ru/post/310110/
[3]: https://habrastorage.org/files/d4d/303/3f2/d4d3033f2ce94acdb3111b5c320b05eb.png
[4]: https://habrahabr.ru/post/312626/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Я унылый программист и горжусь этим
habra.16
habrabot(difrex,1) — All
2016-10-29 15:00:04


![image][1]

![][2]
Dan Kim, Android Programmer в Basecamp.

Должен кое в чём признаться — я не рок-звезда программирования. И не хакер. Я не владею ниндзюцу. Никто никогда не называл меня волшебником.

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

Тем не менее, каждую неделю я вижу, как ищут ниндзя-программистов, которые, полагаю, нарезают строки кода с невероятной точностью. Я читаю о технарях рок-звёздах и представляю, что они пишут такие же красивые функции, как соло “Stairway to Heaven”. Я слышу, как люди бросаются словом «хакер» (и связанными с ним «хак», «хакфест» и «хакатон»), как будто рандомно ломать что-то на кусочки или вламываться в несанкционированную систему — хорошо.

И нельзя забывать про этих потрясных волшебников, которые из ничего создают нечто с помощью своей… \*магии\*

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

Но что, если вы, как и я, не соответствуете этим ярлыкам?

Если вы не разделяете чувства рок-звёзд-ниндзя-хакеров-волшебников, то делаете что-то не так? Не-а.
[Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/e9a/fd2/d34/e9afd2d34caa55e59b9ea39646b5b0f4.jpg
[2]: https://habrastorage.org/files/a74/f21/554/a74f215549ca4866a8d40cfa019cb04d.jpg
[3]: https://habrahabr.ru/post/313852/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Массовое ограбление покупателей Fix-Price
habra.16
habrabot(difrex,1) — All
2016-10-30 10:00:03


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

![image][1]

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

[1]: https://habrastorage.org/getpro/habr/post_images/7c9/e67/028/7c9e670281cd7f96c6daca0f65cc61e6.png
[2]: https://habrahabr.ru/post/313926/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Концепция жизни программы
habra.16
habrabot(difrex,1) — All
2016-10-30 15:30:04


Как можно определить понятие жизни программы? **Жизнь программы** можно описать повторяющейся последовательностью конечных процессов в компьютере выполненных в контексте выбранной предметной области. Обязательно конечных, в каком-то разумном временном отрезке.



## design {#design}



Когда появляется программа? Скорее всего, программа появляется в голове у проектировщика/разработчика, можно назвать это **design-time**. Но так как этот момент не поддаётся контролю компьютера (пока), то предположим, что моментом появления программы является момент создания минимального запускаемого (о подробном смысле этого термина стоит поговорить отдельно) исходного кода.

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

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

[>] [Из песочницы] Реализация блочного шифра «Кузнечик» с режимом CFB на С++
habra.16
habrabot(difrex,1) — All
2016-10-30 15:30:04


Сегодня речь пойдёт о новом алгоритме блочного шифрования «Кузнечик» из стандарта ГОСТ Р 34.12 2015. В последнее время выходит множество публикаций, посвященных этому стандарту. В них с теоретической точки зрения описываются приведённый алгоритм, изучаются особенности отельных преобразований, а так же предлагаются способы оптимизации, путём включения вставок кода на языке ассемблера.

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


#### Структура программы


Программа состоит из трех частей
* набор вспомогательных функций и классов — mycrypto.cpp mycrypto.hpp
* блочный шифр «Кузнечик» — Kuznyechik.cpp Kuznyechik.hpp
* режим шифрования Cipher Feed Back — modes.hpp[Читать дальше →][2]

[1]: https://tc26.ru/standard/gost/GOST_R_3412-2015.pdf
[2]: https://habrahabr.ru/post/313932/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Лямбды и анонимные классы: кто больше жрёт
habra.16
habrabot(difrex,1) — All
2016-10-30 15:30:04


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

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

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

[>] [Перевод] Дональд Кнут: Когда же, наконец, выйдет четвертый том
habra.16
habrabot(difrex,1) — All
2016-10-30 18:30:03


_«Сейчас предельно ясно, что с той скоростью с которой я пишу, я не закончу весь проект до своего девяностолетия.»_

![][1]

Прочитайте и оцените объем работ. И не торопите дедушку Кнута, он и так старается.
[Читать дальше →][2]

[1]: https://habrastorage.org/files/70e/147/338/70e147338f9b47ac8c51d5304a20d4d8.jpg
[2]: https://habrahabr.ru/post/313790/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Тензорные разложения и их применения. Лекция в Яндексе
habra.16
habrabot(difrex,1) — All
2016-10-30 19:00:05


Предыдущая лекция с Data Fest [была посвящена][1] алгоритмам, необходимым для построения нового вида поиска. Сегодняшний доклад тоже в некотором смысле про разные алгоритмы, а точнее про математику, лежащую в основе множества из них. О матричных разложениях зрителям рассказал доктор наук и руководитель группы вычислительных методов «Сколтеха» [Иван Оселедец][2].


Под катом — расшифровка и большинство слайдов.

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

[1]: https://habrahabr.ru/company/yandex/blog/313340/
[2]: http://faculty.skoltech.ru/people/ivanoseledets
[3]: https://habrahabr.ru/post/313892/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [recovery mode] Проблемы с установкой начального загрузчика на флеш-накопитель
habra.16
habrabot(difrex,1) — All
2016-10-30 20:00:04


В статье содержатся 5 вопросов и ответов по следующим темам:

**1\.** Очистка mbr флешки в Windows
**2\.** Конвертирование ISO-файла в гибридный ISO-файл (только Linux)
**3\.** Создание загрузочной флешки с сохранением изменений (Linux, Windows, Mac OS X)
**4\.** Создание мультизагрузочной флешки (Windows)
**5\.** Восстановление таблицы разделов и загрузчика mbr (Hiren's BootCD).
[Читать дальше →][1]

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

[>] Как развернуть для своей команды архив slack сообщений c синхронизацией и поиском
habra.16
habrabot(difrex,1) — All
2016-10-31 13:00:04


Я сам сторонник идеи что если нравится продукт то нужно покупать его и своими деньгами поддержать программистов.
Но иногда бывает что компания на этот софт денег тратить не может или не хочет. Особенно сложно платить от 100$ в месяц когда есть бесплатные аналоги или если чаты используются в некоммерческих целях.

Я опишу как можно развернуть сервис для хранения истории всех публичных сообщений вашей команды в slack и избавиться от основного, неприятного, иногда выбешивающего ограничения — up to 10k of your team’s most recent messages (можно смотреть и искать только среди 10 000 последних сообщений)
[Читать дальше →][1]

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

[>] [Перевод] Учебное руководство по управлению светодиодами с помощью Robotics Development Kit
habra.16
habrabot(difrex,1) — All
2016-10-31 14:30:04


В этом учебном руководстве демонстрируется управление контактами GPIO на простом примере, аналогичном написанию простейшей программы «Hello World»: путем настройки платы UP так, чтобы можно было мигать внешним светодиодом.

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

[1]: https://habrastorage.org/files/442/5bd/9f5/4425bd9f58f24bbcab0e4a2bdf8f33d4.jpg
[2]: https://habrahabr.ru/post/313942/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] В ReactOS появилась обещанная год назад поддержка печати
habra.16
habrabot(difrex,1) — All
2016-10-31 16:30:04


![][1] Помните [это видео][2]?
Мы обещали поддержку печати «совсем скоро». Ну как совсем скоро… в итоге прошел год. Но ведь обещанного три года ждут, а мы справились всего за один! Причин для такой задержки было две:
1) главный и единственный разработчик стека печати, Колин Финк, почти на год уезжал на прохождение интернешипа (производственной практики ) в США;
2) почти год мы ждали, пока команда проекта Wine [примет наши исправления][3] в RPC-сервис, чтобы мы могли корректно их бэкпортировать\\синхронизировать.

Но теперь эти трудности преодолены. Колин вернулся, патч приняли. Поэтому Колин [торжественно «залил»][4] свою экспериментальную ветку в основную кодовую базу проекта ReactOS. Начиная с ревизии #73039, служба печати доступна для тестов в [ночных сборках][5].

Многим будет интересно узнать, что Колин Финк разрабатывал стек печати в рамках своей дипломной работы бакалавра. Теперь все желающие могут [скачать PDF][6] с его работой.

Джарред Смадд демонстрирует работу принтера:


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

[1]: https://habrastorage.org/files/1fd/4c3/02d/1fd4c302d0a34f93be0bfeb2f9729e83.jpg
[2]: https://habrahabr.ru/company/reactos/blog/263441/
[3]: https://github.com/wine-mirror/wine/commit/01290cdc1f79e2ad53ef02acc109f132521e3f66
[4]: https://git.reactos.org/?p=reactos.git;a=commit;h=7584173ec4796137fc4dddff627d936b03c0ba66
[5]: https://www.reactos.org/getbuilds/
[6]: https://svn.reactos.org/reactos/trunk/documentation/articles/Printing%20Stack%20Thesis/thesis.pdf
[7]: https://habrahabr.ru/post/314026/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

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


![][1]

**Код для генерирования именно этого изображения**
$generator = new imgGenerator();
$textGenerator=new imgTextGenerator();
$textGeneratorTop=new imgTextGenerator();

$label=$textGeneratorTop
->seTextShadow("#000000", 75, 1, 2, 2)
->setText("Test Site","#ffffff",imgGenerator::position_center_top,"1/12",0 )
->setBackground("#000000",'3%')
->setFont(DR."/upload/fonts/fonts2_7/hinted-PTF55F.ttf");

$text=$textGenerator
->seTextShadow("#000000", 75, 1, 2, 2)
->setText("Морковь как двигатель прогресса человечества","#ffffff",imgGenerator::position_center_center,"1/7",array(0,'5%',0,'5%'))
->setFont(DR."/upload/fonts/fonts2_7/hinted-PTF55F.ttf");

$generator
->addText($text)
->addText($label)
->fromImg($_SERVER["DOCUMENT_ROOT"] . "/upload/dynamic/2016-08/15/carrot-big.jpg")
->resizeFor("autodetect")
->addOverlay(0.5,"#000000")
->show();

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

**Примеры картинок**
![][2]

Скрипт работает на PHP, с использованием модуля Imagick. Писать это на GD2 что-то я не решился.

Алгоритм работы предполагался такой:

* Берем за основу картинку или цвет
* Уменьшаем до нужного размера
* Накладываем сверху полупрозрачный фон
* Устанавливаем логотип
* Добавляем надпись
* Кешируем результат
[Читать дальше →][3]

[1]: https://habrastorage.org/files/f10/946/95e/f1094695ef494e78803a01d31ab82dc2.jpg
[2]: https://habrastorage.org/files/a7f/8b2/4e4/a7f8b24e457e46fc9288b74a908a2eab.jpg
[3]: https://habrahabr.ru/post/314018/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] [ В закладки ] Зоопарк архитектур нейронных сетей. Часть 2
habra.16
habrabot(difrex,1) — All
2016-10-31 17:30:04


![][1]

Публикуем вторую часть статьи о типах архитектуры нейронных сетей. [Вот первая.][2]

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

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

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

[1]: https://habrastorage.org/files/853/1e4/f6c/8531e4f6c8b348939868f8696c1bcf7c.png
[2]: https://habrahabr.ru/company/wunderfund/blog/313696/
[3]: https://habrahabr.ru/post/313906/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Дональд Кнут о первых шагах в программировании: Как я провел лето с компьютером, а не с девушками (19,20,21,22/97)
habra.16
habrabot(difrex,1) — All
2016-10-31 18:00:04


_«Суть в том, что это руководство по эксплуатации IBM Model 650 было довольно глупым. Оно и подтолкнуло меня к программированию.»_

![image][1]

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

_Перевод: Юлия Хаитова_
_Поддержка публикации — компания [Edison][2], которая разрабатывает [геолокационные игры с орками и демонами][3] и [CRM-системы для координации работы филиалов][4]._
[Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/6c3/aea/82c/6c3aea82c1dcef099c6327cda6f749bd.jpg
[2]: https://www.edsd.com/
[3]: https://www.edsd.ru/geolokacionnaya-igra-s-privyazkoj-k-mestonahozhdeniyu-uchastnikov
[4]: https://www.edsd.ru/bazy-dannyh-i-crm-sistemy
[5]: https://habrahabr.ru/post/313428/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Находим ошибки в коде проекта LLVM с помощью анализатора PVS-Studio
habra.16
habrabot(difrex,1) — All
2016-10-31 18:00:04


![PVS-Studio vs LLVM][1]Около двух месяцев назад я написал статью о проверке компилятора GCC с помощью анализатора PVS-Studio. Идея статьи была следующая: предупреждения GCC — это хорошо, но недостаточно. Надо использовать специализированные инструменты анализа кода, например, PVS-Studio. В качестве подтверждения я показал ошибки, которые PVS-Studio смог найти в коде GCC. Ряд читателей заметили, что качество кода GCC и его диагностики так себе, в то время как компилятор Clang современен, качественен, свеж и молод. В общем Clang — это ого-го! Что ж, значит пришло время мне проверить с помощью PVS-Studio проект LLVM.
[Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/95a/d29/d4e/95ad29d4e9f307da4d0ea76c33f25f4d.png
[2]: https://habrahabr.ru/post/314044/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Оптимизация на примере. Муравьиный алгоритм (ACS) против Метода отжига. Часть 2
habra.16
habrabot(difrex,1) — All
2016-10-31 21:30:03


Продолжаю цикл статей «Оптимизация на примере». В данной статье сравниваются два эвристических алгоритма на избитой симметричной задаче коммивояжера. Сегодня чуть углубимся в данную тему и разберем определенную модификацию муравьиного алгоритма.

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

[1]: https://habrastorage.org/files/bf9/485/fdf/bf9485fdf4044f259a6b46b3ca142b7f.jpg
[2]: https://habrahabr.ru/post/314056/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] [Перевод] Парсинг JSON — это минное поле
habra.16
habrabot(difrex,1) — All
2016-10-31 23:00:04


![image][1]

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

**Содержание**
1\. [Спецификации JSON ][2]
2. [Тестирование парсинга][3]
2.1. [Структура][4]
2.2. [Числа (Numbers)][5]
2.3. [Массивы][6]
2.4. [Объекты][7]
2.5. [Строки][8]
2.6. [Двойственные значения RFC 7159][9]
3. [Архитектура тестирования][10]
4. [Результаты тестирования][11]
4.1. [Полные результаты][12]
4.2. [C-парсеры][13]
4.3. [Objective-C-парсеры][14]
4.4. [Apple (NS)JSONSerialization][15]
4.5. [Freddy (Swift)][16]
4.6. [Bash JSON.sh][17]
4.7. [Другие парсеры][18]
4.8. [JSON Checker][19]
4.9. [Регулярные выражения][20]
5. [Контент парсинга][21]
6. [STJSON][22]
7. [Заключение][23]
8. [Приложение][24]
[Читать дальше →][25]

[1]: https://habrastorage.org/getpro/habr/post_images/55a/70e/a58/55a70ea5864211ffb526350b07bcf847.jpg
[2]: #1
[3]: #2
[4]: #21
[5]: #22
[6]: #23
[7]: #24
[8]: #25
[9]: #26
[10]: #3
[11]: #4
[12]: #41
[13]: #42
[14]: #43
[15]: #44
[16]: #45
[17]: #46
[18]: #47
[19]: #48
[20]: #49
[21]: #5
[22]: #6
[23]: #7
[24]: #8
[25]: https://habrahabr.ru/post/314014/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Хакеры Shadow Brokers опубликовали новую порцию данных группировки Equation Group
habra.16
habrabot(difrex,1) — All
2016-11-01 06:30:04


![][1] Хакеры Shadow Brokers получили всемирную известность после [публикации][2] секретных данных элитной кибергруппировки Equation Group, которая использовала в кибератаках сложное и хорошо разработанное кибероружие. Опубликованный хакерами ранее архив _eqgrp-free-file_ содержал несколько 0day эксплойтов для сетевых устройств Cisco и Fortinet. На сей раз хакеры выложили в открытый доступ архив с информацией о метаданных кибератак, используемых группировкой. В частности, там указаны IP-адреса и домены источников кибератак, а также их даты.

> _This is being equation group pitchimpair (redirector) keys, many missions into your networks is/was coming from these ip addresses_. Is being unfortunate no peoples is already owning eqgrp\_auction\_file. Auction file is having tools for to making connect to these pitchimpairs.
[Читать дальше →][3]

[1]: https://habrastorage.org/files/7a1/43e/748/7a143e74859246c48ca8a78747960757.jpeg
[2]: https://habrahabr.ru/company/eset/blog/307792/
[3]: https://habrahabr.ru/post/314002/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Поиск кратчайших путей в дорожных сетях: от теории к реализации
habra.16
habrabot(difrex,1) — All
2016-11-01 06:30:04


![image][1]


В ближайшую субботу Виталий Осипов (Технологический институт Карлсруэ) начнёт читать в Computer Science клубе в Санкт-Петербурге курс по алгоритмам поиска кратчайших путей в графах. В ходе курса будут изучаться и реализовываться алгоритмы, используемые миллионами людей в таких сервисах, как Google/Bing/Yandex карты. Как всегда, вход свободный, регистрация не требуется, приглашаются все желающие.

» [Страница курса на сайте CS клуба][2]
**Первая лекция:** суббота, 5 ноября, 17:20
**Место:** Математический институт Стеклова, Санкт-Петербург, Фонтанка 27, Мраморный зал (второй этаж) [][3]

[1]: https://habrastorage.org/files/441/0f1/b3f/4410f1b3fd5c474aaad47b6247e47433.png
[2]: http://compsciclub.ru/courses/shortestpaths/2016-autumn/
[3]: https://habrahabr.ru/post/314016/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut

[>] Как найти вектор развития программного продукта? Планирование как наука
habra.16
habrabot(difrex,1) — All
2016-11-01 06:30:04


Основной принцип, по которому мы развиваем Macroscop сегодня – «услышать пользователя и сделать то и так, как ему нужно». Мы не просто придумали для себя такую стратегию, а получили ее на своем опыте, и этот путь занял у нас 6 лет. Об этом мы рассказывали в одном из [предыдущих постов][1]. При этом мы уверены, что путь исключительно удовлетворения текущих потребностей пользователей не может сделать компанию абсолютным лидером рынка. И если вы этого хотите, необходимо делать то, чего никто не делает, воплощать в своих разработках то, что другим кажется невозможным.

**Превращаем планирование в точную науку**

Как определить вектор развития продукта и совместить его полезность и инновационность? Для того, чтобы наши новые разработки с большей вероятностью «попали в цель», было принято решение провести глубокое исследование и на основе его результатов запланировать новую версию. Определением стратегии развития Macroscop занимается product-менеджер компании, и вот по какому алгоритму действовал он: [Читать дальше →][2]

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

[>] Опыт использования MassTransit 3.0
habra.16
habrabot(difrex,1) — All
2016-11-01 06:30:04


MassTransit это open source библиотека, разработанная на языке C# для .NET платформы, упрощающая работу с шиной данных, которая используется при построении распределенных приложений и реализации SOA (service oriented architecture).

В качестве message broker могут выступать RabbitMq, Azure Service Bus или In-Memory менеджер (в случае с In-Memory область видимости ограничивается процессом, в котором проинициализирован экземпляр).
[Читать дальше →][1]

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

Pages: 1 ... 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 ... 133