RSS
Pages: 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 ... 210
[>] Применение KolibriOS. Часть 2: Экзоверсия ядра для разработчиков железа
habra.14
habrabot(difrex,1) — All
2015-06-17 08:30:02


![][1] За окном уже наступило лето, ну а мы представляем вам продолжение цикла статей о практическом применении КолибриОС. В [первой части][2] мы провели теоретический обзор возможных сфер применения, а теперь, как и было обещано переходим к более практической части: экзоверсии ядра для разработчиков железа. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/332/ac0/97c/332ac097cb7bfba245943a942c69f564.png
[2]: http://habrahabr.ru/company/kolibrios/blog/256799/
[3]: http://habrahabr.ru/post/259215/#habracut

[>] DevConf 2015 — сформирована программа конференции
habra.14
habrabot(difrex,1) — All
2015-06-17 11:00:02






Крупнейшая конференция DevConf 2015 пройдет в эту пятницу в Москве (конгресс центр [Измайлово Бета][1]). 20 июня пройдут[ эксклюзивные мастер-классы][2]: Sphinx 3.0, MySQL 5.7, Docker, cоздание мобильных игр и архитектуры социальной сети [**62 докладчика — 7 потоков: Python, PHP, Ruby, Javascript, Storage, DevOps, Common**][3] — _каждый Веб-разработчик найдет что-то интересное для повышения своей квалификации!_ [Читать дальше →][4]

[1]: http://devconf.ru/ru/members/location
[2]: http://devconf.ru/ru/schedule/mk
[3]: http://devconf.ru/ru/schedule/#common
[4]: http://habrahabr.ru/post/260479/#habracut

[>] Как мы имплантировали голосовые звонки в Мегаплан
habra.14
habrabot(difrex,1) — All
2015-06-17 12:30:02


![][1]В веб-технологиях мне очень нравится наличие стандартного фундамента HTML/JS/CSS, который позволяет легко использовать сторонние компоненты. Добавить кнопку “Позвонить”, т.е. функциональность голосовой телефонии, в приложение для ПК — это долгая история с фреймворками, библиотеками, сообщениями, потоками и операционными системами. Добавить такую же кнопку в веб-приложение — вопрос одного элемента и одной библиотеки JavaScript. Под катом я расскажу историю интеграции одной такой кнопки. [Читать откровения разработчиков][2]

[1]: https://habrastorage.org/files/87a/39b/4e3/87a39b4e3ef346b39cbb52f230397642.png
[2]: http://habrahabr.ru/post/260475/#habracut

[>] Курсы этичного хакинга для начинающих
habra.14
habrabot(difrex,1) — All
2015-06-17 14:30:02






_Если вы с восхищением смотрите на практическую ифнормационную безопасность и не знаете, с чего начать — пройдите стажировку в «Zero Security: A», в которой под руководством опытных интруторов освоити базис наиболее актуальных и распространненных векторов атак и методов тестирования на проникновение._ **«Zero Security: A»** — программа стажировки в области этичного хакинга и тестирования на проникновение, состоящая из цикла курсов-вебинаров и практической подготовки в специализированной лаборатори, **составляющей 80% общего курса**. Весь процесс обучения проходит дистанционно и не требует отрыва от работы или учебы. С каждым новым набором **происходит переработка материала**, таким образом «Zero Security: A» включает самый современный материал в области этичного хакинга и тестирования на проникновение, в том числе по **социальной инженерии**. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/260361/#habracut

[>] Видеозаписи и обзор конференции LVEE-2014
habra.14
habrabot(difrex,1) — All
2015-06-17 15:00:02


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




Под катом максимально сжатое описание и ссылки на видео и допматериалы (тезисы, слайды, контакты докладчиков), т.е. не бойтесь заходить, даже если у вас GPRS. [Читать дальше →][3]

[1]: http://lvee.org/
[2]: http://habrahabr.ru/post/234839/
[3]: http://habrahabr.ru/post/260501/#habracut

[>] Hackernews 17.06.2015: Шэньчжэнь изнутри, винил, ноутбуки и пряжа
habra.14
habrabot(difrex,1) — All
2015-06-17 16:30:02


![][1] Всем привет. Возникла идея, а что если попробовать запустить обсуждения самых интересных тем за день c [HackerNews][2] на Хабре? По-моему, будет круто, если таким краудсорсом (совместными усилиями), можно будет мониторить, постить и обсуждать на русском актуальные новости. Если взлетит идея — буду делать еще. Комментируйте, дополняйте, предлагайте темы. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c67/71d/43c/c6771d43cc2b40b9b01a7a7ce7da64e2.jpg
[2]: https://news.ycombinator.com/
[3]: http://habrahabr.ru/post/260503/#habracut

[>] Kolab Groupware (Часть 1 — Обзор)
habra.14
habrabot(difrex,1) — All
2015-06-17 18:00:02


![][1] Привет, Хабр! Хочу рассказать тебе о довольно интересной и функциональной замене MS Exchange, полностью свободной и к тому же с красивой web-мордой. Разговор пойдет про Kolab — свободный почтовый сервер с поддержкой совместной работы, календарей, списков дел, WebDAV, ActiveSync синхронизацией и прочими плюшками, который можно использовать как для работы, так и для дома. _Осторожно, в посте много картинок.._. [Уже хочу!][2]

[1]: https://habrastorage.org/files/3b1/7cb/b50/3b17cbb50147480da0cfab3dc4154b05.png
[2]: http://habrahabr.ru/post/260469/#habracut

[>] Сказ о том, как мы отечественного производителя поддерживали
habra.14
habrabot(difrex,1) — All
2015-06-17 22:00:02


![][1] _Если долго мучиться — что-нибудь получится!_ _ (с) народная мудрость_ Настало время увлекательных историй, %username%! Сразу оговорюсь, что описанной ниже истории никогда не случалось. Все совпадения случайны, все персонажи вымышлены. В силу своей профессиональной деятельности, нам приходится работать с разными операторами связи. Практически все они — федерального уровня, либо их «дочки» в странах СНГ. Одной из таких компаний является… Пусть он будет Z. История взаимоотношений с ним давняя и коллеги, наверное, расскажут много интересного. Но это как-нибудь потом, а пока расскажу свою историю я. Требования к безопасности в этой компании серьезные — положение обязывает (А еще 152-ФЗ «О защите персональных данных»). Причем если раньше требования были драконовские (в духе «Миссия невыполнима»: изолированное помещение, сканер сетчатки, автоматчики...), то сейчас свелись к просто строгим: индивидуальные учетки и шифрованные каналы связи между нами и заказчиком. Шифрование — ГОСТовское, никакого вам заграничного IPSec. Рынок таких решений мал, поставщиков — раз-два и кончились. Реализация… ну не Checkpoint и не Cisco, но терпимо. Но это была присказка, а за сказкой прошу под кат! [Читать дальше →][2]

[1]: https://habrastorage.org/files/ca6/e25/d0a/ca6e25d0ab7946caace940ed49450d10.jpg
[2]: http://habrahabr.ru/post/260415/#habracut

[>] Геолокация без GPS (часть 2)
habra.14
habrabot(difrex,1) — All
2015-06-18 00:00:01


Здравствуйте! После предыдущей статьи ([часть 1][1]) я получил много отзывов о работе открытого API геолокации по WiFi и вышкам мобильных сетей. В этот раз я хочу представить свои исправления, лицензирование проекта, геопозиционирование по нескольким точкам доступа, кейсы использования и самое главное — текущие проблемы [Узнать больше][2]

[1]: http://habrahabr.ru/post/256321/
[2]: http://habrahabr.ru/post/259605/#habracut

[>] XARA-уязвимости в OS X и iOS
habra.14
habrabot(difrex,1) — All
2015-06-18 02:30:02


Сегодня в свет вышел отчет группы специалистов по информационной безопасности, посвященный исследованию атак, основанных на способах коммуникации между собой различных приложений на OS X и iOS — _(XARA, от Cross-App Resource Access)_. Для тех, кому лень читать [все 26 страниц оригинальной статьи][1], я решил подготовить ее небольшой обзор. Для начала, два коротких тезиса:

* Во-первых, большая часть обнародованных уязвимостей касается OS X. В iOS все намного спокойнее.
* Во-вторых, все на самом деле достаточно печально.

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

[1]: https://drive.google.com/file/d/0BxxXk1d3yyuZOFlsdkNMSGswSGs/view
[2]: http://habrahabr.ru/post/260557/#habracut

[>] Active Record для Node.js с API от Yii 2
habra.14
habrabot(difrex,1) — All
2015-06-18 11:30:03


![Jii][1]

# Вступление

Привет всем хабровчанам, любителям Yii и Node.js. Это вторая статья про фреймворк [Jii][2] ([GitHub][3]), в [предыдущей статье][4] мы рассматривали Объекты доступа к данным и конструктор запросов (Query Builder). Как и обещал, в этой статье я расскажу про использовании Active Record.

# Active Record





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

[1]: https://habrastorage.org/files/b9c/e1d/925/b9ce1d9253aa4d0595a6aedb0157380f.png
[2]: http://www.jiiframework.ru/
[3]: https://github.com/jiisoft
[4]: http://habrahabr.ru/post/260295/
[5]: http://habrahabr.ru/post/260569/#habracut

[>] Какие языки программирования и почему используются в сфере финансов
habra.14
habrabot(difrex,1) — All
2015-06-18 13:00:03


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

[1]: https://habrastorage.org/files/2e0/139/303/2e0139303f294ef282415334b1cc96aa.jpg
[2]: http://habrahabr.ru/company/itinvest/blog/260581/
[3]: http://habrahabr.ru/post/260581/#habracut

[>] Доклады и конкурсы на NeoQUEST-2015
habra.14
habrabot(difrex,1) — All
2015-06-18 14:00:02


![][1] 2 июля в Санкт-Петербурге пройдет NeoQUEST-2015, который объединит лучших участников мартовского hackquest и гостей, общее увлечение которых — информационная безопасность! Напоминаем, что посетить NeoQUEST может любой желающий — вход бесплатный, гостям достаточно [зарегистрироваться ][2]на сайте мероприятия. Участников hackquest ждет 8 часов кибербезопасности в режиме non-stop, а все остальные в это время смогут просветиться и развлечься так:

* послушать доклады о самом новом и актуальном в кибербезопасности: Android, TPM и TXT, перебор хэшей пароля Bitcoin-кошелька, автодосье на любого пользователя Сети, энергетическое обнаружение malware и многое другое!
* увидеть практические демонстрации: атака команды Рутковской на TXT, удаленное управление электроникой автомобиля, взлом Bitlocker...
* принять участие в увлекательных реальных и виртуальных конкурсах и выиграть разнообразные призы: Escape-room, «ЕГЭ по ИБ» и многое-многое другое!

[Подробнее о NeoQUEST-2015][3]

[1]: https://habrastorage.org/files/a15/f7f/3d7/a15f7f3d7d3c43b792e9fc0affbdd8f7.jpg
[2]: http://neoquest.ru/timeline.php
[3]: http://habrahabr.ru/post/255629/#habracut

[>] Исключения для хардкорщиков. Особенности обработки эксепшенов в динамически размещаемом коде
habra.14
habrabot(difrex,1) — All
2015-06-18 14:00:02


![image][1] Современные версии ОС налагают на исполняемый код ограничения, связанные с требованиями безопасности. В таких условиях использование механизма исключений в инжектированном коде или, скажем, во вручную спроецированном образе может стать нетривиальной задачей, если не быть в курсе некоторых нюансов. В этой статье речь пойдет о внутреннем устройстве юзермодного диспетчера исключений ОС Windows для платформ x86/x64/IA64, а также будут рассмотрены варианты реализации обхода системных ограничений. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/468/c42/ce5/468c42ce5d2408e7cd330694bbf862cf.jpg
[2]: http://habrahabr.ru/post/260577/#habracut

[>] [Перевод - recovery mode ] Гаджеты становятся «ближе к телу». Пять фактов, о которых вас хотят предупредить эксперты по информационной безопасности
habra.14
habrabot(difrex,1) — All
2015-06-18 15:00:03


В последнее время мы получаем много новостей о носимых гаджетах, используемых в области охраны здоровья и фитнеса. Компания Apple недавно объявила о выпуске приложения «Health», а также облачной платформы “Health Kit”. В связи с этим компания Nike снабдила специальным разъемом свой браслет Fuelband для анализа физической активности. Согласно общему мнению, фитнес-трекеры переживают упадок, в то время как рынок носимых гаджетов в целом — вспомните Google Glass или iWatch — находится на пике. ![image][1] А как дела с защитой личной информации? На самом деле, в этой области много изменений, и следит за этим Федеральная торговая комиссия (ФТК)! [Читать дальше →][2]

[1]: http:////habrastorage.org/files/686/cb7/823/686cb7823af0465bb7ffaa6817e880e2.png
[2]: http://habrahabr.ru/post/260513/#habracut

[>] У семи программистов адрес без дома
habra.14
habrabot(difrex,1) — All
2015-06-18 17:00:03


Привет, Хабр! ![][1]Мы в HumanFactor парсим адреса в особо крупных размерах. Наши продукты [упрощают][2] ввод контактных данных и работу с ними. За 10 лет работы в результате анализа многочисленных исключений в российских адресах мы выработали правила хранения адресов, при соблюдении которых вы не потеряете важную информацию. Недавно на Хабре нас попросили привести примеры необычных адресов, в связи с чем и написана эта статья. [Читать дальше →][3]

[1]: https://habrastorage.org/files/c90/819/5a5/c908195a532d445698e439105f0be3be.jpg
[2]: http://habrahabr.ru/company/hflabs/blog/213679/
[3]: http://habrahabr.ru/post/260601/#habracut

[>] Vim по полной: Snippets и шаблоны файлов
habra.14
habrabot(difrex,1) — All
2015-06-18 17:30:02




# Оглавление



1. [Введение][1] (vim\_lib)
2. [Менеджер плагинов без фатальных недостатков][2] (vim\_lib, vim\_plugmanager)
3. [Уровень проекта и файловая система][3] (vim\_prj, nerdtree)
4. **Snippets и шаблоны файлов** (UltiSnips, vim\_template)
5. Компиляция и выполнение чего угодно (vim\_start)
6. Работа с Git (vim\_git)
7. Деплой (vim\_deploy)
8. Тестирование с помощью xUnit (vim\_unittest)
9. Библиотека, на которой все держится (vim\_lib)
10. Другие полезные плагины

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

[1]: http://habrahabr.ru/post/259701/
[2]: http://habrahabr.ru/post/259725/
[3]: http://habrahabr.ru/post/259995/
[4]: http://habrahabr.ru/post/260591/#habracut

[>] Уязвимость в телефонах Samsung позволяет подслушивать разговоры
habra.14
habrabot(difrex,1) — All
2015-06-18 18:00:02


![image][1] В телефонах Samsung была найдена уязвимость которая позволяет получить злоумышленнику доступ практически ко всем функциям телефона. Под катом более подробнее и видео эксплуатации этой уязвимости. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/55e/05e/d3d/55e05ed3d15d077b50093c73851b7d59.png
[2]: http://habrahabr.ru/post/260535/#habracut

[>] [Перевод] Неизменяемость в JavaScript
habra.14
habrabot(difrex,1) — All
2015-06-18 18:00:02


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

[1]: http://habrahabr.ru/post/260319/#habracut

[>] Kolab Groupware (Часть 2 — Установка)
habra.14
habrabot(difrex,1) — All
2015-06-18 18:00:02


![][1] Если вы еще не знаете что такое Kolab, то вы вероятно захотите прочитать [первую статью][2], где я делал подробный обзор на этот довольно функциональный и полностью свободной почтовый сервер с красивой веб-мордой. На этот раз мы будем его устанавливать. [Читать дальше →][3]

[1]: https://habrastorage.org/files/ee8/922/938/ee892293882e4e2487c48354109305bb.png
[2]: http://habrahabr.ru/post/260469/
[3]: http://habrahabr.ru/post/260527/#habracut

[>] [Перевод - recovery mode ] Ретроспектива разработки Crash Bandicoot, или как разработчики упаковывали целые игры в 2MB RAM
habra.14
habrabot(difrex,1) — All
2015-06-18 20:30:02


Вот вам анекдот из конца 90-ых. Я (Dave Baggett) был одним из двух программистов (вместе с Andy Gavin), разрабатывающих Crash Bandicoot для PlayStation 1. ![][1] Оперативная память была главной проблемой даже в те времена. У PS1 было всего 2MB RAM, и нам приходилось совершать безумные вещи, чтобы уместить в них игру. У нас были уровни, содержащие более 10MB чистых данных, и эти 10 мегабайт должны были постранично загружаться и выгружаться в память динамически, без каких-либо видимых задержек для игрока, при фреймрейте в 30 кадров в секунду. [Читать дальше →][2]

[1]: https://habrastorage.org/files/e6d/542/53c/e6d54253c5814291baf66c1704f3547f.jpg
[2]: http://habrahabr.ru/post/260637/#habracut

[>] [Из песочницы] Прокачиваем тонкий клиент HP t5325
habra.14
habrabot(difrex,1) — All
2015-06-18 22:30:02


В этой статье речь пойдет о доработке тонкого клиента HP для установки на него Debian 8. ![][1] Тонкий клиент HP t5325 самый маленький в своем семействе и единственный построен на архитектуре ARM. Ниже приведу его основные характеристики:

* Прцессор Marvell ARM 88F6281 1.2 GHz.
* Видеокарта XGI VOLARI-Z11-A2CB-HF 64MB.
* RAM 512MB DDR2.
* Flash memory 512MB.

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

[1]: https://habrastorage.org/files/620/49f/376/62049f3760a041edb43f2337c250f796.jpg
[2]: http://habrahabr.ru/post/260631/#habracut

[>] Блокировка по access_log, легкий способ прострелить ногу или устранение конкурентов
habra.14
habrabot(difrex,1) — All
2015-06-18 23:00:02


Очередной пример, как легко прострелить себе ногу, на этот раз «переусердствовав» при защите сайта. Имён как всегда не называю, однако история показательна как-таковая, т.е. в качестве примера, как не надо «защищать» свои сервера. Эх говоришь им, говоришь — а все без толку. Упала посещаемость сайта, не совсем чтобы совсем, но довольно заметно. Смотрели логи, аналитику поисковиков и т.д. и т.п. Все вроде нормально, и кто приходит, тот даже не уходит сразу. Но не буду ходить вокруг, да около — проанализировав логи банов по IP выяснилась одна закономерность — за короткое время в бан попадало огромное количество IP-адресов. Все поголовно по одной причине — якобы как botsearch. Отротированные логи за последний месяц тоже ужасали своими размерами и даже заглядывать туда не нужно было, и так все ясно. Т.е. случилось следующее: куча клиентов просто не могла попасть на сайт. На вопрос «что-то меняли где-то с месяц назад?» был получен отрицательный ответ. Не буду утомлять здесь детективным чтивом, после недолгих поисков — картина маслом. Некий прямой конкурент этого сайта поспособствовал «утечке» клиентов, или вернее и организовал эту «странную непосещаемость». [Читать дальше →][1]

[1]: http://habrahabr.ru/post/260647/#habracut

[>] [Из песочницы] Возможности Matlab для разработки и тестирования механистических торговых систем
habra.14
habrabot(difrex,1) — All
2015-06-19 11:00:02


Думаю, обосновывать необходимость тщательного тестирования и подбора параметров торговых стратегий нет необходимости… Лучше поясню, почему именно Matlab. В торговом терминале MetaTrader есть встроенная система тестирования и настройки торговых стратегий, позволяющая прогнать стратегию на заданном участке истории и посмотреть на результаты торговли как в графическом представлении, так и в виде таблички с характеристиками эффективности работы данной стратегии на данном участке истории. Как это выглядит для стратегии Nova, смотрите ниже. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/260635/#habracut

[>] Как работает Wargaming Common Menu
habra.14
habrabot(difrex,1) — All
2015-06-19 15:00:02


Доброго времени суток! Хочу поделиться с сообществом опытом разработки JS-виджета межпроектной навигации. Он представляет собой модуль, который подключается на большинство сайтов вселенной Wargaming ([Порталы][1], [Wiki][2], [WarGag][3] и пр.). Основная его задача — дать пользователю удобную навигацию между разными сервисами одной тематики. Но он выполняет и ряд других функций, например, отображает личные уведомления, краткие досье по профилям пользователя в каждой из наших игр и еще многое другое. ![][4] [Читать дальше →][5]

[1]: http://wotblitz.ru/
[2]: http://wiki.wargaming.net/ru/
[3]: http://wargag.ru
[4]: https://habrastorage.org/files/aac/e21/ebe/aace21ebe8c140edaf3b14b04e99dcc0.PNG
[5]: http://habrahabr.ru/post/259687/#habracut

[>] Организация «чистого» завершения приложений на Go
habra.14
habrabot(difrex,1) — All
2015-06-19 19:30:02


![][1] Здравствуйте, в данной заметке будет затронута тема организации «чистого» завершения для приложений, написанных на языке Go. Чистым выходом я называю наличие гарантий того, что в момент завершения процесса (по сигналу или по любым иным причинам кроме system failure), будут выполнены определённые процедуры и выход будет отложен до окончания их выполнения. Далее я приведу несколько типичных примеров, расскажу о стандартном подходе, а также продемонстрирую свой пакет для упрощённого применения этого подхода в ваших программах и сервисах. TL;DR: [github.com/xlab/closer][2] [![GoDoc][3]][4] [Читать дальше →][5]

[1]: https://habrastorage.org/getpro/habr/post_images/f2c/025/0cb/f2c0250cbc4e8519d706b5a35374d40d.png
[2]: https://github.com/xlab/closer
[3]: https://godoc.org/github.com/xlab/closer?status.svg
[4]: https://godoc.org/github.com/xlab/closer
[5]: http://habrahabr.ru/post/260661/#habracut

[>] Go как язык для обучения программированию
habra.14
habrabot(difrex,1) — All
2015-06-19 22:30:02




> **tl;dr:**
>
> Go достаточно многословный и строгий язык программирования с очень предсказуемой и стремительной кривой обучения, что делает его крайне удачной технологией для обучения программированию новоприбывших!

Я только приехал из штатов, после Google Code-In 2012 Grand Prize Trip, отдохнувший и веселый. Какое-то время думал написать отчет о том, чем призеры там занимались, как нас приняли в Mountain View и обо всем этом, но в какой-то момент понял, что все это совершенно бесполезно. Совсем недавно я по воле случая должен был помочь своему товарищу с домашкой по информатике (там было что-то вроде selection sort). Реализация требовалась на паскале, а я паскаль знаю очень плохо, как впрочем и другие неактуальные, по большей мере, языки программирования, вроде Ada. ![][1]В меня ударила молния и укусил гофер, после чего мое тело мутировало в какую-то Go хренотень. Иными словами, я задумался о возможном потенциале моего любимчика среди новых технологий, Go, в качестве языка для обучения программированию новоприбывших (читай: школьников). Мне кажется, у Go есть все, что в принципе может быть нужно подобной программе и даже чуточку больше (например, в школе могли бы затрагивать тему параллельного, ни в коем случае не concurrent, программирования, которую не затрагивают, просто потому что FPS вообще не умеет гонять два куска кода одновременно). Под катом, собственно, мои мысли на этот счет. Кстати, пользуясь случаем, хочу передать привет [divan0][2]! Большое спасибо за твою просветительскую деятельность в тематическом хабе: Go действительно нуждается в огласке, ведь много людей до сих пор считают, что это какая-то страшная поделка уровня Plan9 из 80-х и к тому же, без обобщенного программирования (в каждой шутке есть доля шутки), а ты рассказываешь людям очень правильные вещи на понятном для них языке! Никакого дисклаймера не будет, но я настоятельно не рекоммендую воспринимать содержимое статьи абсолютно серьезно, ведь я человек, у которого есть целых **два** гофера: синий и розовый! [Читать дальше →][3]

[1]: https://habrastorage.org/files/9e3/f49/3e2/9e3f493e2b5549918d313c2af5de89de.jpg
[2]: http://habrahabr.ru/users/divan0/
[3]: http://habrahabr.ru/post/260735/#habracut

[>] [Из песочницы] Замена HDD на NetUP стримере и установка прошивки
habra.14
habrabot(difrex,1) — All
2015-06-20 01:00:02












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

На днях перестал вещать один из NetUP стримеров. «Завис», подумал я (есть у них такая «особенность»), и пошел перезагружать его. Т.к. у этих стримеров не предусмотрено кнопки включения-выключения питания, или кнопки Reset, перезагружаются они только выдергиванием шнура питания. Через некоторое время, после того, как я вернул ему питание, стример вывел надпись на LCD панели: «Checking HDD filesystem...». Оставил его в таком состоянии с мыслью, что проверит диск и запустится. Однако ни через час, ни через два этого не произошло. На стримере продолжала показываться надпись о проверке HDD. Через консольный кабель подключиться не удалось. Так же не к чему не привели последующие перезагрузки. Решил достать жесткий диск и проверить его на bad block'и. Нашлось не малое количество секторов, для которых не удалось сделать Remap или Erase. Вывод простой: нужно менять жесткий диск. С самой заменой проблем нет, не рабочий вытащил, рабочий поставил. Но теперь у нас на руках голая железка без ОС (прошивки). О том, как установить прошивку «с нуля» и пойдет дальнейший рассказ. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/260727/#habracut

[>] [Из песочницы] Черная археология дата майнинга
habra.14
habrabot(difrex,1) — All
2015-06-20 02:30:02


Есть темы, по которым очень мало статей по специальности data science, но которые представляют интерес для специалистов по безопасности. Это статистические исследования логинов и паролей пользователей – данные, добытые «черными археологами» дата майнинга. ![image][1] Мне было интересно посмотреть некоторые закономерности и для этой цели я взял базу данных паролей, утёкших в 2014 году – от Яндекса, Гугла и Мейлру, объемом 6 миллионов записей. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/49e/94d/6e5/49e94d6e54a4398855d1ffe35e035bd5.png
[2]: http://habrahabr.ru/post/260747/#habracut

[>] Куда пойти учиться на программиста
habra.14
habrabot(difrex,1) — All
2015-06-20 15:00:02


![][1] Школьники уже, кажется, сдали ЕГЭ и вот-вот отправятся подавать документы в ВУЗы. Программирование и IT-технологии пользуются стабильным спросом, примерно как юридические и экономические специальности 10 лет назад. В этой статье я расскажу как работает высшее образование для IT, как правильно выбрать IT-специальность. Статья будет полезна не только абитурентам-2015, но и школьникам старших классов, которые уже решили связать свою жизнь с IT. [Читать дальше →][2]

[1]: https://habrastorage.org/files/cc1/223/909/cc1223909cf84eeaaaf17a195593d7d4.jpg
[2]: http://habrahabr.ru/post/260713/#habracut

[>] [Перевод] Как команда PVS-Studio улучшила код Unreal Engine
habra.14
habrabot(difrex,1) — All
2015-06-20 17:30:02


![][1]Наша компания создаёт, продвигает и продаёт статический анализатор кода PVS-Studio для C/C++ программистов. Однако, наше взаимодействие с клиентами не ограничивается исключительно продажей им лицензий на продукт PVS-Studio. Например, мы занимаемся некоторыми контрактными работами. В силу NDA обычно рассказать о них мы не можем, да и интересного рассказа не получится. Названия проектов, в которых мы принимаем участие, тоже ничего не скажут большинству наших читателей. Но в этот раз, название как раз говорит о многом. Мы поработали вместе с компанией Epic Games над проектом Unreal Engine. Об этом и будет наш рассказ. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/9f9/b32/bd4/9f9b32bd48eac393913819d51ae4f80c.png
[2]: http://habrahabr.ru/post/260755/#habracut

[>] [Из песочницы] Исправляем Alt-Tab в LabView
habra.14
habrabot(difrex,1) — All
2015-06-20 18:00:02


Когда пишешь программу в среде LabView, в определенный момент её становится слишком много для того, чтобы уместиться в один экран. «Правила хорошего тона» LabView говорят о том, что в таких случаях надо разбивать один vi файл на несколько subvi файлов. Со временем таких subvi становится очень много. Однако об удобной навигации ребята из NI как-то не позаботились. Мало того, что LabView сдвигает все свои окна в начало Alt-Tab списка (больше так не делает никто: [en.wikipedia.org/wiki/Alt-Tab][1]), так еще, несмотря на активно используемую возможность переопределять иконки для vi файлов, в списке Alt-Tab вместо них – стройные ряды из логотипов LabView: ![image][2] Некоторых такое поведение подталкивает к покупке второго монитора. Для них в значительной степени проблема этим и решается. Еще частично помогает интерфейс Windows Aero с его миниатюрами в меню Alt-Tab. Но вроде бы лежащее на поверхности решение – (а) сделать переключение такое же, как во всех остальных приложениях, и (б) выводить в списке иконки vi – стандартными средствами недостижимо. Судя по тому, что началось это едва ли не с самой первой версии, а соответствующая «идея по улучшению» пылится на «форуме по обмену идеями» с 2010 года [forums.ni.com/t5/LabVIEW-Idea-Exchange/Make-Alt-Tab-behaviour-consistent-with-other-applications/idi-p/1162219][3], просить об этом National Instruments бесполезно. Однако кое-что сделать всё-таки можно. [Читать дальше →][4]

[1]: https://en.wikipedia.org/wiki/Alt-Tab
[2]: https://habrastorage.org/files/eb1/677/117/eb1677117c194fd884572efe6eb664fc.png
[3]: https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Make-Alt-Tab-behaviour-consistent-with-other-applications/idi-p/1162219
[4]: http://habrahabr.ru/post/260723/#habracut

[>] Основы Rust – Глава 2. Использование переменных и типов
habra.14
habrabot(difrex,1) — All
2015-06-20 18:00:02


![][1]

> _В [предыдущем главе][2] было много косяков с переводом. Спасибо всем за указания недочетов, текст был полностью переделан. Надеюсь эта глава получилась более «вменяемой» с моей стороны, старался как мог._

В этой главе будут рассмотрены основные строительные материалы Rust программ: переменные и их типы. Мы обсудим такие вопросы, как переменные с базовыми типами, явное указание типа и область видимости переменных. Так же, мы обсудим один из краеугольных камней в стратегии безопасности Rust — неизменяемость. [Читать дальше →][3]

[1]: https://habrastorage.org/files/1e6/5ac/160/1e65ac1605da4da8aff729d21405a101.jpg
[2]: http://habrahabr.ru/post/260147/
[3]: http://habrahabr.ru/post/260759/#habracut

[>] [Перевод] Как мы сделали из JSON язык программирования
habra.14
habrabot(difrex,1) — All
2015-06-20 19:30:06


Спустя месяцы напряжённой работы мы наконец выпустили приложение для iOS Relevant. С ним мы ломаем существующие устои взаимодействия с сервисами и контентом в сети, благодаря чему пользователь тратит куда меньше времени на привычные вещи. Достигается это путём представления приложений и веб-сервисов в виде карточек (подробнее [здесь][1]). Карточки, как независимые интерактивные единицы, показывают, каким будет будущее мобильных интерфейсов. ![image][2] [Читать дальше →][3]

[1]: https://medium.com/relevant-stories/relevant-1-0-2d79b2475e3f
[2]: https://d262ilb51hltx0.cloudfront.net/max/1024/1*C_CoWhC0yLPykFozaksLfA.jpeg
[3]: http://habrahabr.ru/post/260757/#habracut

[>] Bindings QCustomPlot для Python
habra.14
habrabot(difrex,1) — All
2015-06-20 19:30:06


Добрый день, хаброжители!

## Введение

В свободное от работы время увлекся написанием приложений на PyQt5. И свой давний проект по ведению домашней бухгалтерии [ MyWallet ][1] решил в конце мая переписать с плюсов на Python, так как в предыдущей версии были допущены ряд архитектурных ошибок, которые на хотелось исправлять. Поэтому собрав PyQt5 из исходников под Fedora 21, где-то за две недели реализовал весь функционал, который был ранее. И теперь встает вопрос в визуализации данных по расходам/доходам помесячно. Так как имел опыт визуализации данных с помощью [QCustomPlot ][2], хотел визуализацию сделать с помощью этой либы. Но к огорчению, не нашел биндов. [Подробности и исходники под катом][3]

[1]: https://github.com/dimV36/MyWallet
[2]: http://www.qcustomplot.com
[3]: http://habrahabr.ru/post/260761/#habracut

[>] Программирование для начинающих. Моё знакомство с Processing
habra.14
habrabot(difrex,1) — All
2015-06-20 22:30:02


Доброго времени суток, уважаемые. Цифровые электронные самоделки часто взаимодействуют с компьютером. Передают данные, либо управляются с него. В свете этого всегда был интерес к программированию. Мой прошлый опыт в этой области связан с интерпретатором бейсика ZX Spectrum, Qbasic’ом в рамках хобби юности и Си-86 в рамках студенчества. Были попытки освоить ECMAScript в рамках интереса к языку VRML. Встал вопрос, что выбрать сейчас? Прошу под кат. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/260763/#habracut

[>] Логирование чего угодно в Perl
habra.14
habrabot(difrex,1) — All
2015-06-21 09:30:03


![Проблема выбора][1] Для логирования сообщений Перл предлагает несколько готовых решений. Все они, как водится, размещены на [CPAN'е][2]. По запросу [«log»][3] можно найти кучу модулей на все случаи жизни. Однако, среди всех этих модулей есть один особенный, называется он [Log::Any][4]. Особенность этого модуля для логирования заключается в том, что он не занимается, собственно, логированием. Модуль Log::Any предоставляет программе (и программисту) универсальное API для обращений к другим модулям, которые занимаются непосредственно логированием. Если вас мучает проблема выбора способа логирования в Перле — эта статья для вас. [Читать дальше →][5]

[1]: https://habrastorage.org/files/603/72c/5a7/60372c5a78e84055a0d181f870b182e7.jpg
[2]: https://metacpan.org
[3]: https://metacpan.org/search?q=log
[4]: https://metacpan.org/pod/Log::Any
[5]: http://habrahabr.ru/post/260373/#habracut

[>] [Перевод] Почему я не преподаю SOLID и «принцип устранения зависимостей»
habra.14
habrabot(difrex,1) — All
2015-06-21 12:30:02




#### Почему я не преподаю SOLID

Если вы разговариваете с кем-то, кому небезразлично качество кода, уже достаточно скоро в разговоре всплывёт SOLID — аббревиатура, помогающая разработчикам запомнить пять важных принципов объектно-ориентированного программирования: ![][1] SOLID полезен. Его разработали знатоки в нашей области. Он помогает людям рассуждать о дизайне. Помогает создавать системы, устойчивые к изменениям. Раньше SOLID был краеугольным камнем моего набора средств проектирования. Я делал все возможное, чтобы сделать мой код как можно более SOLID. Я учил других поступать так же. Сегодня SOLID остается для меня важным, но я больше не пытаюсь сделать мой код SOLID. Я редко упоминаю его, когда говорю про дизайн. И тем более я не учу пользоваться им разработчиков, которым хочется почерпнуть хорошие дизайнерские методы проектирования. Он больше не находится у меня под рукой в моем «ящике для инструментов». Он лежит в пыльной коробке на чердаке. Я храню его, потому что он важен, но редко им пользуюсь. [Читать дальше →][2]

[1]: https://habrastorage.org/files/5e5/569/566/5e55695664a7484684759f990e20dbdf.png
[2]: http://habrahabr.ru/post/260781/#habracut

[>] Контракты в D
habra.14
habrabot(difrex,1) — All
2015-06-21 16:30:02


Доброго времени суток, хабр! Сегодня я хочу рассказать Вам о контрактном программировании и его реализации в D. Это очень интересная концепция построения API. Смысл заключается в формальной спецификации работы функции или класса на уровне кода, а не комментария. Пример подобной спецификации для функции: [Читать дальше →][1]

[1]: http://habrahabr.ru/post/260779/#habracut

[>] Прогноз на Specification pattern в Domain layer — ожидаются проблемы
habra.14
habrabot(difrex,1) — All
2015-06-21 19:00:02


**Data Access Layer** – одна из наиболее больных тем. Написание хорошего слоя доступа к данным – это не тривиальная задача. Примеров реализации невероятно много, но адекватных среди них единицы. Можно ли считать реализацию шаблона Repository — DAL? Вот что предлагают MS [msdn.microsoft.com/en-us/library/ff649690.aspx][1] ![image][2] А вот и местные работы [habrahabr.ru/post/52173][3] Варианты довольно нормальные. Но когда я вижу

> «Репозиторий – это фасад для доступа к базе данных.»

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

[1]: https://msdn.microsoft.com/en-us/library/ff649690.aspx
[2]: https://habrastorage.org/getpro/habr/post_images/111/aba/3ee/111aba3ee5611cca5466dd4a6b28291a.png
[3]: http://habrahabr.ru/post/52173/
[4]: http://habrahabr.ru/post/260771/#habracut

[>] «Её» или ещё один ёфикатор
habra.14
habrabot(difrex,1) — All
2015-06-21 23:30:02


На так давно в рабочей рассылке обсуждалась тема использования буквы «ё» в документации и постах. Обсуждение затянулось на несколько месяцев… Осознав важность проблемы, написал [ёфикатор на Node.js][1]. [Читать дальше →][2]

[1]: https://github.com/hcodes/eyo
[2]: http://habrahabr.ru/post/260811/#habracut

[>] Howto Qemu-kvm Debian 8
habra.14
habrabot(difrex,1) — All
2015-06-21 23:30:02


В этом howto мы с вами просто и быстро, шаг за шагом, запустим гипервизор Qemu-KVM в debian 8. ![image][1] Будем запускать виртуальную машину в qemu-kvm от пользователя username, используя spice, qxl и virtio. Предполагается, что установлен Debian 8 amd64, с выбранными в tasksel стандартными утилитами и SSH сервером. Доустановим.

aptitude install -y firmware-linux bridge-utils etckeeper


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

[1]: http://qemu.weilnetz.de/icon/alex/logo1.svg
[2]: http://habrahabr.ru/post/260791/#habracut

[>] ПЛИС — мои первые шаги
habra.14
habrabot(difrex,1) — All
2015-06-22 10:30:02


![][1]Недавно я все-таки сделал свой первый шаг к ПЛИС и [призвал вас за собой][2]. Мое фанатическое увлечение ПЛИС и идея о том, что ПЛИС является лучшей платформой для создания любых устройств приобрела религиозный характер. Моя секта ПЛИСоводов проповедует полный отказ от микроконтроллеров, а особо экстремистская ветвь проповедует отказ не только от [софт процессоров][3], но и вообще от последовательных вычислений! Как всегда, постижению истин помогло решение реальных задач. В сегодняшней проповеди я хотел бы рассказать об испытаниях, которые выпадают на долю молодого ПЛИСовода. Преодолевая испытания мы постигаем истину. Но остаются вопросы, на которые я не нашел ответов. Поэтому я бы очень хотел, чтобы братья-хабровчане — ПЛИСоводы с опытом, поучаствовали в обсуждении, протянули руку помощи своим младшим собратьям. Эта статья для новичков. В ней я опишу типичные проблемы, вопросы, заблуждения, ошибки, которые могут появиться в самом начале обучения (потому что они появились у меня). Однако, контекст статьи ограничен тем, что разработка ведется на ПЛИС от [Altera][4] в среде Quartus на языке [Verilog][5]. [Подробности][6]

[1]: http://habrastorage.org/files/76e/936/9e0/76e9369e05bb46ea860d7780d7075b24.jpg
[2]: http://habrahabr.ru/post/237009/
[3]: https://ru.wikipedia.org/wiki/Soft-%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80
[4]: http://www.altera.com/
[5]: https://ru.wikipedia.org/wiki/Verilog
[6]: http://habrahabr.ru/post/252261/#habracut

[>] Пишем обертку для FUSE на Java Native Runtime
habra.14
habrabot(difrex,1) — All
2015-06-22 11:30:02


В статье я расскажу как реализовать файловую систему в юзерспейсе на Java, без строчки ядерного кода. А также покажу как связать Java и нативный код без написания кода на C, при этом сохранив максимальную производительность. ![][1] Интересно? Добро пожаловать под кат! [Подробности][2]

[1]: https://habrastorage.org/files/3b2/a74/094/3b2a740945d74108a2c70a82d7c97a28.png
[2]: http://habrahabr.ru/post/260801/#habracut

[>] Миссия AllMyChanges
habra.14
habrabot(difrex,1) — All
2015-06-22 12:00:03


Когда [наш проект][1] только зарождался, он базировался на гипотезе, что почти для любой библиотеки можно найти changelog, а если найти нельзя, то можно построить его из коммит-мессаджей. Но реальность оказалась не столь радужной, как нам того хотелось: то файл changelog в каком нибудь безобразном формате попадётся, то его перестали вести, а продукт меж тем развивается, то что нибудь ещё. И тогда мы поняли, что распарсить мир – мало, надо его менять.

## Изменить что-то за один миг — необычайно сложная задача

Поэтому мы не ставим себе такую цель. Миссия [AllMyChanges][2] в том, чтобы дать разработчикам всего мира понять, что `ChangeLog` это их способ взаимодействия с внешним миром, такой же канал, как блог или твиттер-аккаунт. [][3] До появления нашего сервиса, сложно было сравнивать простой ChangeLog с блогом, поскольку не было способа подписаться на обновления. Ведь ссылку на rss фид блога можно закинуть в rss читалку, на соцпрофиль можно подписаться, зафолловив человека, а подписаться на изменения библиотеки было сложно. [хмм, что же там дальше?][4]

[1]: https://allmychanges.com/?utm_source=habrahabr&utm_campaign=our-mission
[2]: https://allmychanges.com/?utm_source=habrahabr&utm_campaign=our-mission
[3]: https://www.flickr.com/photos/d_t_vos/15962916323 "Mr. Speaker by Dick Vos, on Flickr"
[4]: http://habrahabr.ru/post/260823/#habracut

[>] Moscow Django Meetup №27: как это было
habra.14
habrabot(difrex,1) — All
2015-06-22 13:30:02


![][1]Приветствую, коллеги! Несколько недель назад состоялся [27-й Moscow Django Meetup][2], а всего через три дня, в эту среду, [состоится 28-й][3]. В этом топике я расскажу что интересного было на предыдущем митапе и что будет на следующем. Участие — бесплатное, площадка Фрии City Hall в центре Москвы ждет вас! [Слайды, видео и позитив под катом][4]

[1]: https://habrastorage.org/files/601/83e/de5/60183ede58d545abaad5afcc4d0f7507.png
[2]: https://moscowdjango.ru/meetup/27/
[3]: http://tceh.com/event/django-meetup-28/
[4]: http://habrahabr.ru/post/260843/#habracut

[>] Сбор и визуализация метрик приложения в Graphite и Graph-Explorer
habra.14
habrabot(difrex,1) — All
2015-06-22 14:30:03


Зачастую возникает необходимость отслеживать различные параметры работы приложения/сервиса. Например, интерес представляет количество запросов в секунду, среднее время ответа сервера, количество ответов сервера с различным HTTP-статусом (технические метрики), количество регистраций пользователей в час, количество платежных транзакций в минуту (бизнес-метрики) и пр. Без системы сбора метрик разработка и сопровождение продукта происходит практически вслепую. ![][1] Данная статья является руководством по настройке системы сбора и анализа метрик приложения на базе [Graphite][2] и [vimeo/graph-explorer][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/a1e/7a0/663/a1e7a066313d456a8046389870f2e720.jpg
[2]: http://graphite.wikidot.com/
[3]: https://github.com/vimeo/graph-explorer
[4]: http://habrahabr.ru/post/260753/#habracut

[>] [Из песочницы] Сетевой интерфейс для BMW
habra.14
habrabot(difrex,1) — All
2015-06-22 14:30:03


В данной статье речь будет о локальной низкоскоростной сети взаимодействия блоков управления автомобиля BMW — I/K-bus. А точнее о том, как с ней могут взаимодействовать приложения из под Linux. На картинках проиллюстрирую созданный мною вариант. Итак, передо мной встала задача расширить функциональность моего автомобиля в области информационно-развлекательной системы. Просто мне этого очень захотелось. Автомобиль хороший, но пожилой. Его создавали во времена, когда даже mp3 не был в обширном употреблении. Поэтому многих современных удобств он лишён. К тому же есть в голове дополнительные идеи, воплотив которые, я смогу подчеркнуть свою индивидуальность. Информационно-развлекательная система выполняется на устройствах, в основе которых контроллеры с заложенными программами. Я буду здесь называть эти устройства блоками управления. Каждый такой блок управления несёт свою функциональную нагрузку, будь то поддержание температуры салона, регулировка положения сидений, воспроизведение музыки и видео, навигация и прочее. Весь этот набор блоков управления должен взаимодействовать друг с другом, управляться с места водителя и пассажиров, передавать диагностические данные. Для этой цели и была разработана сеть I-bus. В последствии появилась технически идентичная сеть K-bus и их объединение I/K-bus. [Читать дальше →][1]

[1]: http://habrahabr.ru/post/260831/#habracut

[>] Как и где нужно применять СКЗИ — точка зрения ФСБ
habra.14
habrabot(difrex,1) — All
2015-06-22 17:00:02


8-й Центр ФСБ выложил достаточно неожиданный [документ][1]. Документ описывает рекомендации в области разработки нормативно-правовых актов в области защиты ПДн. Но этим же документом рекомендуется пользоваться операторам ИСПДн при разработке частных моделей угроз. Что же думает ФСБ о том, как и где нужно применять СКЗИ? [Читать дальше →][2]

[1]: http://www.fsb.ru/files/PDF/Metodicheskie_recomendacii.pdf
[2]: http://habrahabr.ru/post/260833/#habracut

[>] Исключительно простые задачи по AppSec .NET
habra.14
habrabot(difrex,1) — All
2015-06-22 17:00:02


![][1] Предлагаю всем размять мозг после выходных и начать рабочую неделю с простых, на первый взгляд, задачек по программированию на C#. Возможно эти задачи заставят вас посмотреть на код своих проектов с новой стороны, так как все они касаются _сумрачной_ области – области безопасности приложений, Application Security. Про AppSec и платформу .NET пишут не много, говорят еще меньше, некоторые вообще считают, что использование любого managed языка, магическим образом делает приложение защищенным. Это положение дел я пытаюсь исправить, рассказывая на конференциях про различные аспекты безопасности .NET платформы. Так на этой недели, в четверг, наше сообщество [SPB .NET Community][2] проводит митап в Санкт-Петербурге полностью посвящённый вопросам **разработки защищённых ASP .NET приложений**. Кому интересны подробности этой встречи, кто хочет узнать побольше о сообществе .NET разработчиков Санкт-Петербурга и попробовать свои силы в решении задач по AppSec .NET, приглашаю под кат! [Читать дальше →][3]

[1]: https://habrastorage.org/files/028/50e/9ea/02850e9ea9e8457189a094e178cc0f2f.jpg
[2]: http://spbdotnet.org
[3]: http://habrahabr.ru/post/260875/#habracut

Pages: 1 ... 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 ... 210