RSS
Pages: 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 210
[>] STM32 и FreeRTOS. 1. Развлечение с потоками
habra.14
habrabot(difrex,1) — All
2015-01-30 13:35:20


_Данный цикл из 5 статей рассчитан на тех, кому стало мало возможностей привычных «тинек» и ардуинок, но все попытки перейти на более мощные контроллеры оканчивались неудачей или не приносили столько удовольствия, сколько могли бы. Все ниженаписанное проговаривалось мной много раз на «ликбезе» программистов нашей студии (которые часто сознавались, что переход с «тинек» на «стмки» открывает столько возможностей, что попадаешь в ступор, не зная за что хвататься), поэтому смею надеяться, что польза будет всем. При прочтении подразумевается, что читающий — человек любопытный и сам смог найти и поставить Keil, STM32Cube и понажимать кнопки «ОК». Для практики я использую оценочную плату STM32F3DISCOVERY, ибо она дешевая, на ней стоит мощный процессор и есть куча светодиодиков. Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых… _ ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/2b7/340/ece/2b7340ece81145e79f8e336231b83325.jpg
[2]: http://habrahabr.ru/post/249273/#habracut

[>] Анонс — Артем Гавриченков из Qrator расскажет в Москве про DDoS-атаки
habra.15
habrabot(difrex,1) — All
2015-09-16 14:00:03


Всем привет. В четверг, 17 сентября, в Москве состоится встреча CodeFreeze с **Артемом [ximaera][1] Гавриченковым**, экспертом компании Qrator. Речь пойдет о **DDoS-атаках**: их видах, масштабах и способах противодействия. ![ximaera][2] Атаки на отказ в обслуживании, или DoS-атаки, появились более 15 лет назад и в последнее время на слуху — атакам подвергаются то магазины, то сайты газет и онлайн-СМИ, то правительственные порталы… Журналисты привыкли писать о подобных инцидентах красочные отчёты, в которых любят сыпать цифрами наподобие «мощность атаки достигала десятков гигабит в секунду» или «в атаке участвовали сотни серверов по всему миру». Проблема этих цифр в том, что они абстрактные. 20-30 Гбит/с — это много для сайта, но для крупного Интернет-провайдера это повседневность. Стив Баллмер в 2013 году объявил, что в Microsoft работает 1 миллион серверов, так что, по всей видимости, компании уровня Microsoft и Sony не должны испытывать проблем с паразитным трафиком от сотни-другой серверов — но на практике это не подтверждается. [Анонс и регистрация][3]

[1]: http://habrahabr.ru/users/ximaera/
[2]: https://habrastorage.org/getpro/habr/post_images/751/c8d/1b0/751c8d1b093b52215514e9f44b1e4fc1.jpg
[3]: http://habrahabr.ru/post/224217/#habracut

[>] Поиск периодических элементов защиты Паспорта РФ с помощью преобразования Фурье: часть вторая
habra.15
habrabot(difrex,1) — All
2015-09-16 14:00:03


Многие документы содержат защитные элементы, такие как голограммы, водяные знаки, гильош и т.д. В процессе сканирования таких документов возникает проблема — защитные элементы мешают системам распознавания (OCR). При разработке [Smart PassportReader][1] мы провели исследование, направленное на поиск и устранение подобных защитных элементов с изображений документов. В нашей предыдущей [статье][2] по этой теме мы рассказали о первой половине решения задачи поиска — детектировании, т.е. определении наличия периодических элементов на изображении. Сегодня мы расскажем, как найти непосредственное положение периодических элементов на изображении, при условии, что детектирование прошло успешно: мы уверены, что элементы на изображении присутствуют. Вторая часть сильно зависит от первой, поэтому настоятельно рекомендуется сначала ознакомиться с первой, если вы этого еще не сделали. Как и в прошлый раз, для этого будет использоваться преобразование Фурье. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/smartengines/blog/252703/
[2]: http://habrahabr.ru/company/smartengines/blog/259251/
[3]: http://habrahabr.ru/post/266917/#habracut

[>] Интерфейс для Яндекс.Диска в Ubuntu 14.04
habra.14
habrabot(difrex,1) — All
2015-01-30 13:35:20


![image][1] Как известно, Яндекс.Диск на Ubuntu существует только как консольный клиент. Сегодня я решил «хватит это терпеть» и написал для себя простенький скрипт, который значительно упрощает работу с ним (исходники в низу статьи). [Читать дальше →][2]

[1]: http://habrastorage.org/files/45e/899/97f/45e89997fa5e4eeeb84cb9adac3adb36.png
[2]: http://habrahabr.ru/post/249267/#habracut

[>] [Из песочницы] Что такое красивый код, и как его писать?
habra.15
habrabot(difrex,1) — All
2015-09-16 16:30:03




#### 1\. Вступление

Сталкиваясь с необходимостью контролировать работу других программистов, начинаешь понимать, что, помимо вещей, которым люди учатся достаточно легко и быстро, находятся проблемы, для устранения которых требуется существенное время. Сравнительно быстро можно обучить человека пользоваться необходимым инструментарием и документацией, правильной коммуникации с заказчиком и внутри команды, правильному целеполаганию и расстановке приоритетов (ну, конечно, в той мере, в которой сам всем этим владеешь). Но когда дело доходит собственно до кода, все становится гораздо менее однозначно. Да, можно указать на слабые места, можно даже объяснить, что с ними не так. И в следующий раз получить ревью с абсолютно новым набором проблем. Профессии программиста, как и большинству других профессий, приходится учиться каждый день в течение нескольких лет, а, по большому счету, и всю жизнь. Вначале ты осваиваешь набор базовых знаний в объеме N семестровых курсов, потом долго топчешься по различным граблям, перенимаешь опыт старших товарищей, изучаешь хорошие и плохие примеры (плохие почему-то чаще). Говоря о базовых знаниях, надо отметить, что умение писать красивый профессиональный код — это то, что по тем или иным причинам, в эти базовые знания категорически **не входит**. Вместо этого, в соответствующих заведениях, а также в книжках, нам рассказывают про алгоритмы, языки, принципы ООП, паттерны дизайна… Да, все это необходимо знать. Но при этом, понимание того, как должен выглядеть достойный код, обычно появляется уже при наличии практического (чаще в той или иной степени негативного) опыта за плечами. И при условии, что жизнь “потыкала” тебя не только в сочные образцы плохого кода, но и в примеры всерьез достойные подражания. В этом-то и заключается вся сложность: твое представление о “достойном” и “красивом” коде полностью основано на личном многолетнем опыте. Попробуй теперь передать это представление в сжатые сроки человеку с совсем другим опытом или даже вовсе без него. Но если для нас действительно важно качество кода, который пишут люди, работающие вместе с нами, то попробовать все же стоит! [Читать дальше →][1]

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

[>] Практическая подготовка в пентест-лабораториях. Часть 2
habra.15
habrabot(difrex,1) — All
2015-09-16 16:30:03


![image][1] [«Корпоративные лаборатории»][2] — программа профессиональной подготовки в области информационной безопасности, состоящая из теоретической (курсы-вебинары) и практической подготовки (работа в пентест-лабораториях). В данной статье будет рассмотрено содержание именно практической базы, составляющей порядка 80% от общей программы обучения. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/65d/ca6/6a7/65dca66a73e9bcd128ce7cd78dcfc13e.jpg
[2]: https://www.pentestit.ru/labs/corp-lab
[3]: http://habrahabr.ru/post/266945/#habracut

[>] Как разблокировать Android, не зная пароль
habra.15
habrabot(difrex,1) — All
2015-09-16 17:30:03


Обнаружена очередная уязвимость CVE-2015-3860 в Android 5.0 и старше, позволяющая при должном усердии получить полный доступ к устройству, несмотря на установленный пароль на экран блокировки. Для этого необходимо: — создать достаточно длинную строку и скопировать её в буфер обмена — вызвать с экрана блокировки приложение «Камера» — перейти на настройки — вставить скопированную строку в появившееся окно ввода пароля — немного подождать [Читать дальше →][1]

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

[>] [Из песочницы] Как мы делали робота-футболиста
habra.14
habrabot(difrex,1) — All
2015-01-30 13:35:20


25 ноября 2012 года в Таллинне проводилось крупнейшее в Балтии соревнование роботов — «Роботекс». Мы решили построить робота в категории профессиональный футбол. Конечно, это будет не Криштиану Роналдо, но вызов интересный. Я опишу детали создания и программирования робота. Имя его — Палмер. Сам футбол проходит на площадке зеленого цвета, на котором расположены 11 оранжевых мячиков для гольфа. Имеются ворота, 15 см высотой и примерно 37 см шириной, желтые у одной стороны и синие с другой. Робот должен искать мячи на поле, захватывать их, выбирать нужные ворота и забивать. На поле находятся два робота. Побеждает тот, кто забьет больше мячей. Технические требования к роботу: цилиндр высотой 35 см и диаметром 35 см. Все просто. [Читать дальше →][1]

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

[>] [Из песочницы] Микросервисы (Microservices)
habra.14
habrabot(difrex,1) — All
2015-01-30 13:35:20


_От переводчика: некоторые скорее всего уже читали этот титанический труд от Мартина Фаулера и его коллеги Джеймса Льюиса, но я все же решил сделать перевод этой статьи. Тренд микросервисов набирает обороты в мире enterprise разработки, и эта статья является ценнейшим источником знаний, по сути выжимкой существующего опыта работы с ними. _ _Термин «Microservice Architecture» получил распространение в последние несколько лет как описание способа дизайна приложений в виде набора независимо развертываемых сервисов. В то время как нет точного описания этого архитектурного стиля, существует некий общий набор характеристик: организация сервисов вокруг бизнес-потребностей, автоматическое развертывание, перенос логики от шины сообщений к приемникам (endpoints) и децентрализованный контроль над языками и данными._ [Читать дальше →][1]

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

[>] Как подружить C++ и QML
habra.15
habrabot(difrex,1) — All
2015-09-16 22:30:02


![image][1] Прислали мне как то тестовое задание. Надо написать шахматы на Qt с использованием C++ и QML. QML до этого не изучал, только слышал и читал про него, поэтому решил что напишу только с использованием C++ и библиотеки Qt. Написал, отправил, возвращают и просят графическую часть переписать на QML. Делать нечего, сел за изучения сего чуда и переписал графическую часть. Теперь хочу поделиться приобретённым опытом. Весь процесс написания шахмат описывать не буду, опишу только процесс постижения QML. Думаю эта статья будет в помощь начинающим в QML. [Читать дальше →][2]

[1]: https://habrastorage.org/files/217/8d9/ed2/2178d9ed26c84bb8b95f5cb69817c01b.jpg
[2]: http://habrahabr.ru/post/266985/#habracut

[>] Apple исправила важные уязвимости в OS X
habra.14
habrabot(difrex,1) — All
2015-01-30 13:35:21


Компания Apple выпустила OS X 10.10.2, закрыв 54 уязвимости в рамках обновления APPLE-SA-2015-01-27-4. Большинство закрытых уязвимостей позволяют атакующим исполнять произвольный код в OS X, в т. ч. с системными привилегиями. Apple также исправила опасную уязвимость под названием [Thunderstrike][1], которая позволяла компрометировать безопасность OS X на самых ранних этапах загрузки (OS X bootkit). Обновление APPLE-SA-2015-01-27-4 исправляет множественные уязвимости в ОС, которые были публично [раскрыты][2] группой специалистов из Google Project Zero. ![][3] [Читать дальше →][4]

[1]: https://trmm.net/Thunderstrike
[2]: http://www.zdnet.com/article/googles-project-zero-reveals-three-apple-os-x-zero-day-vulnerabilities/
[3]: //habrastorage.org/files/382/09d/8ea/38209d8ea3ae44d788a957cb25c0018d.png
[4]: http://habrahabr.ru/post/249159/#habracut

[>] [Из песочницы] Ограничение доступа к веб-приложениям в Synology DSM
habra.15
habrabot(difrex,1) — All
2015-09-16 23:30:02


Системы хранения Synology — достаточно распространенная нынче штука. Они удобные, тихие, компактные, с кучей возможностей. Однако собственное облако — это хорошо, но надо серьезно задуматься о безопасности. Далее мы рассмотрим, как гибко ограничить доступ к пользовательским веб приложениям Synology. Будем использовать авторизацию x509 сертификатами, именем и паролем и ограничение по IP адресам. [Подробности][1]

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

[>] Продолжаем смотреть публичные камеры видео-наблюдения Москвы
habra.14
habrabot(difrex,1) — All
2015-01-30 13:35:21


Дело было вечером, делать было нечего. Поводом послужила активность пользователя [leider][1], который дал в [комментарии][2] ссылку на публичный ресурс: `http://video.dit.mos.ru/window/` ![image][3] Чем примечателен этот ресурс — он предоставляет **публичный доступ** к камерам видео-наблюдения **через встроенный плеер**. [Читать дальше →][4]

[1]: http://habrahabr.ru/users/leider/
[2]: http://habrahabr.ru/post/248727/#comment_8241135
[3]: http://habrastorage.org/getpro/habr/post_images/69f/956/a90/69f956a900896bb4dc093a4a2c8f3dd8.jpg
[4]: http://habrahabr.ru/post/249173/#habracut

[>] [recovery mode] Разнообразные тесты безопасности сети: решения компании IXIA
habra.15
habrabot(difrex,1) — All
2015-09-17 00:30:02


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

[1]: https://habrastorage.org/files/6a3/685/226/6a36852263e742498c38c982a21a9048.png
[2]: http://www.ixiacom.com/
[3]: http://habrahabr.ru/post/266533/#habracut

[>] Баг в CLR: как затащить объект в песочницу без маршаллинга и вызвать Callback
habra.14
habrabot(difrex,1) — All
2015-01-30 13:35:21


Добрый день! Надеюсь, я уже завоевал на Хабре достижение «узнал автора по заголовку» -) Однако сегодня речь пойдет о свежей, еще не закрытой уязвимости в .Net, на которую меня навел своей мыслью один человек (кто подкинет ему инвайт?), который написал мне на почту:

> Вы пытались IL кодом приводить объекты к строковому типу и передавать в другие домены?

Сначала я его не понял, но потом родился пример кода, который пробрасывает любой объект типа, находящегося в SharedDomain в песочницу и позволяет использовать его методы БЕЗ маршаллинга. Дырой, с одной стороны это назвать достаточно сложно, т.к. почву для этого должен подготовить хост. И не самым обычным способом, надо заметить. Но с другой стороны… Да, это ![][1] . Первое, что нам понадобится — это ставшие обыденностью, методы EntityPtr.ToPointer() и \*.ToInstance() из [![][2] DotNetEx][3]. Их комбинация заставляет приводить объект к несовместимому типу. Т.е. к тому типу, которым он не является:



Естественно, если вызвать любой метод у такой «строки», ничего не получится: вылетит Exception (кроме виртуальных методов от object — их позиции в таблице вирт методов совпадут с переопределенными в нашем типе и вызов произойдет корректно) Однако, поскольку строка является уже сериализованным объектом, то при маршаллинге она передается по ссылке, без копирования. Это значит, что мы можем прокинуть ее в метод, код которого выполняется в «песочнице» и там, внутри, сделать кастинг обратно в тип. [Читать дальше →][4]

[1]: //habrastorage.org/files/06d/302/e4f/06d302e4f18d4fb88b7051f17b212c13.png
[2]: //habrastorage.org/files/979/38e/df1/97938edf1170406c842b0613d0c84ae9.png
[3]: https://github.com/mumusan/dotnetex
[4]: http://habrahabr.ru/post/249135/#habracut

[>] [Из песочницы] Делаем из HP LJ1000 сетевой принтер
habra.15
habrabot(difrex,1) — All
2015-09-17 13:00:02


HP LaserJet 1000 — отличная рабочая лошадка, быстрый и безотказный принтер с USB интерфейсом с низкой стоимостью отпечатка. В статье я опишу сложности и тонкости настройки софт-принтеров HP для работы через роутер по сети на примере своего LJ1000. Велкам под кат! [Читать дальше →][1]

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

[>] Skyforge: технологии рендеринга
habra.14
habrabot(difrex,1) — All
2015-01-30 13:35:21


![][1] Всем привет! Меня зовут Сергей Макеев, и я технический директор в проекте Skyforge в команде Allods Team, игровой студии Mail.Ru Group. Мне хотелось бы рассказать про технологии рендеринга, которые мы используем для создания графики в Skyforge. Расскажу немного о задачах, которые стояли перед нами при разработке Skyforge с точки зрения программиста. У нас свой собственный движок. Разрабатывать свою технологию дорого и сложно, но дело в том, что на момент запуска игры (три года назад) не было технологии, которая могла бы удовлетворить всем нашим запросам. И нам пришлось самим создать движок с нуля. [Читать дальше →][2]

[1]: //habrastorage.org/files/0aa/050/406/0aa050406432462d8bad41a05e225f44.jpg
[2]: http://habrahabr.ru/post/248873/#habracut

[>] [Из песочницы] Как нельзя проводить олимпиаду или настройка ejudge с распределением вычислений
habra.14
habrabot(difrex,1) — All
2015-01-30 14:30:03


В одном отдаленном регионе нашей необъятной страны как-то раз проходил очередной региональный этап Всероссийской олимпиады школьников по информатике и программированию. До 2014 года всё было хорошо, проводили олимпиаду на старой системе, написанной в далеких 2004 годах очень одаренным программистом, на Delphi. С тех пор его никто не менял — работал, ну и ладно. В 2014 году решили попробовать ejudge. Поднимать всё с исходников не стали, решили взять готовое, образ для виртуальной машины. Всё было хорошо, все работало. Но тут наступил 2015 год, в котором некоторые пункты проведения олимпиады немножко, совсем чуть-чуть поменяли, и нужные «человеки» об этих изменениях узнали только за 1-2 дня до начала… Тут-то и начинается самое веселое. [Читать дальше →][1]

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

[>] Простые решения. Прокачиваем картинки
habra.14
habrabot(difrex,1) — All
2015-01-30 15:00:01


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

[1]: //habrastorage.org/files/f9e/036/05d/f9e03605d5cc47e886099323bcfae45c.jpg
[2]: http://habrahabr.ru/company/mailru/blog/248443/
[3]: http://habrahabr.ru/post/248443/#habracut

[>] Блокируем блокировку от Роскомнадзора
habra.14
habrabot(difrex,1) — All
2015-01-30 16:30:05


Когда в очередной раз переадресовываешься на страницу от провайдера, с предупреждением о том, что доступ к запрашиваемому сайту заблокирован, и приходится вручную вытаскивать URL сайта, задумываешься об автоматизации этой рутинной деятельности. ![image][1] В моём частном случае речь пойдёт о блокировке от Билайна, чтобы избавится от её назойливости нам понадобится веб сервер, подойдёт установленный на локальной машине. Билайн перекидывает нас на страницу **[blackhole.beeline.ru/?url=][2]....**, где в переменной url в закодированном urlencode виде содержится наш адрес. Копировать, и декодировать его каждый раз руками достаточно скушное дело, поэтому мы попробуем использовать нашу эволюционную особенность — мозг. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/bbd/6f8/7ad/bbd6f87ad045983807a22cb65607cdc7.jpg
[2]: http://blackhole.beeline.ru/?url=
[3]: http://habrahabr.ru/post/249315/#habracut

[>] Инкапсуляция интерфейсов. Делаем API в C++ удобным и понятным
habra.15
habrabot(difrex,1) — All
2015-09-17 13:30:03


![][1]В свое время я написал для журнала «Хакер» цикл статей для рубрики «Академия С++», в котором описывал интересные возможности использования C++. Цикл давно завершён, но меня до сих пор часто спрашивают, как именно работает эмуляция динамической типизации из [первой статьи][2]. Дело в том, что когда я начинал цикл, не знал точно, что нужно, а что нет, и упустил в описании ряд нужных фактов. Зря! В обучающем материале не бывает ничего лишнего. Сегодня я в деталях изложу, как именно получается красивый высокоуровневый API в терминах самого обычного C++: просто классы, методы и данные. [Добро пожаловать под кат][3]

[1]: https://habrastorage.org/getpro/habr/post_images/b14/68f/0b7/b1468f0b733fdc6934602b3f7fba0017.jpg
[2]: http://habrahabr.ru/company/xakep/blog/257891/
[3]: http://habrahabr.ru/post/266999/#habracut

[>] Система самообразования IronBrain (beta)
habra.14
habrabot(difrex,1) — All
2015-01-30 18:30:02


Хотелось бы поделится с вами системой для самообразования, которую я разрабатываю уже в течении нескольких лет и которая уже принесла мне . P.S.: Проект полностью открытый и свободный, не имеет никакой коммерческой направленности, сделан от души и выложен на ваше рассмотрение — вдруг кому пригодится… ![][2] [Читать дальше →][3]

[1]: http://ironbrain.org/
[2]: //habrastorage.org/files/3c3/74e/4f3/3c374e4f3ca84295916947f5e7da2fa7.jpg
[3]: http://habrahabr.ru/post/249187/#habracut

[>] Первый опыт с RealSense
habra.14
habrabot(difrex,1) — All
2015-01-30 19:00:03


Однажды я [писал][1] на Хабр про различные технологии получения 3D изображения с одной камеры. Заканчивал я ту статью словами: “Сам я, правда, до сих пор не сталкивался ни с одной из этих камер, что жалко и досадно." И вот, внезапно, не прошло и года, Intel [проводит][2] в Москве семинар + хакатон по новому поколению своих 3D камер (Intel RealSense). Любопытство взыграло: мы с коллегой записались на мероприятие. Как выяснилось, не зря. Хакатон мы выиграли + получили Developer-версию камеры, которую теперь мучаем. Статья посвящена двум вещам: 1) Рассказу про камеру, её плюсы и недостатки. Обзор того, что можно сделать, а для каких задач она не годится. 2) Рассказ про концепцию, которую мы предложили на хакатоне и за которую получили первое место. [Читать дальше →][3]

[1]: http://geektimes.ru/post/224605/
[2]: http://habrahabr.ru/company/intel/blog/247839/
[3]: http://habrahabr.ru/post/249009/#habracut

[>] Безопасный WiFi в Яндекс.Браузере. О защите для тех, кто ещё не успел HTTPS
habra.15
habrabot(difrex,1) — All
2015-09-17 14:00:03


Сегодня я хочу рассказать вам о новой технологии Яндекс.Браузера, которая защищает трафик при использовании публичного WiFi. А в ближайшее время в рамках конкурса на конференции ZeroNights любой желающий сможет попробовать найти в ней уязвимость. Но обо всем по порядку. ![][1] **Небезопасный WiFi** Про риски, которые несет открытый или слабозащищенный WiFi, можно на Хабре и не рассказывать. Достаточно вспомнить самую крупную в истории [утечку банковских данных][2], когда потеря миллионов номеров кредитных карт стала возможно во многом из-за использования ненадежного протокола WEP в WiFi-сетях. С тех пор прошло десять лет, но ситуация не стала лучше, ведь сейчас нас всюду окружают точки вообще без какого-либо шифрования. Их можно найти в кафе, в аэропортах и даже на автобусных остановках. При этом перехват такого WiFi может освоить любой школьник со сниффером. А простейшие устройства для взлома вообще [продаются][3] в интернете за считанные доллары. [Читать дальше →][4]

[1]: https://habrastorage.org/files/217/564/f7c/217564f7ce0b408abaa07e1a224aeaca.png
[2]: http://secureinfo.info/breaches/the-tjx-hack
[3]: http://www.networkworld.com/article/2208671/wireless/wi-fi-key-cracking-kits-sold-in-china-mean-free-internet.html
[4]: http://habrahabr.ru/post/267013/#habracut

[>] STM32 и FreeRTOS. 2. Семафорим по-черному
habra.14
habrabot(difrex,1) — All
2015-01-30 20:30:02


[Часть первая, про потоки][1] В реальной жизни часто случается так, что некоторые события происходят с разной переодичностью (а могут и вообще не происходить). Скажем, заказ сока в «Макдональдсе», нажатие кнопки пользователем или заказ лыж в прокате. А наш могучий микроконтроллер должен все это обрабатывать. Но как это сделать наиболее удобно? [Читать дальше →][2]

[1]: http://habrahabr.ru/post/249273/
[2]: http://habrahabr.ru/post/249283/#habracut

[>] RCC 2015, финал 19 сентября
habra.15
habrabot(difrex,1) — All
2015-09-17 15:00:05


![][1] Как знают все участники чемпионата [Russian Code Cup][2] и их болельщики, 19 сентября состоится финальное состязание. Это уже четвёртый по счёту RCC, и в этом году общее количество участников превысило 6 000 человек. Однако на этот раз мы решили отойти от привычного формата и существенно расширили программу финала. В то время как участники будут решать выданные задания, в офисе Mail.Ru Group будет идти ток-шоу, посвящённое прошлому, настоящему и будущему программирования и высоких технологий, которое будет [транслироваться][3] в прямом эфире. [Читать дальше →][4]

[1]: https://habrastorage.org/files/d2a/9f9/470/d2a9f94703824621b354ee3e6a4885ff.jpg
[2]: http://www.russiancodecup.ru/
[3]: https://it.mail.ru/
[4]: http://habrahabr.ru/post/266509/#habracut

[>] [Перевод] Простая методика оптимизации с использованием Intel System Studio
habra.15
habrabot(difrex,1) — All
2015-09-17 15:00:05


![][1]В этой статье мы описываем простую методику оптимизации с использованием Intel Cilk Plus и компилятора Intel C++ на основе результатов анализа производительности, проведенного с помощью Intel VTune Amplifier. [Intel System Studio 2015][2] содержит упомянутые компоненты, использованные для этой статьи. • [Intel VTune Amplifier][3] — интегрированный инструмент для анализа производительности, помогает разработчикам анализировать сложный код и быстро обнаруживать узкие места. • [Компилятор Intel C++][4] создает оптимизированный код для архитектур IA-32 и Intel 64. Также предоставляются различные возможности, помогающие разработчикам повышать производительность своих программ. • [Intel Cilk Plus][5] — это расширение языка C/C++, входящее в состав компилятора Intel C++, позволяет повышать производительность за счет распараллеливания новых или существующих программ на языке C или C++. [Читать дальше →][6]

[1]: https://habrastorage.org/files/16d/42c/b76/16d42cb76df247aab8f21499431962f8.jpg
[2]: https://software.intel.com/en-us/intel-system-studio
[3]: https://software.intel.com/en-us/intel-vtune-amplifier-xe
[4]: https://software.intel.com/en-us/c-compilers
[5]: https://software.intel.com/en-us/intel-cilk-plus
[6]: http://habrahabr.ru/post/267033/#habracut

[>] Написание framework на asyncio, aiohttp и мысли про Python3 часть первая
habra.15
habrabot(difrex,1) — All
2015-09-17 15:00:05


![][1] Года полтора назад встал вопрос совместимости написанного кода с `Python3`. Поскольку уже стало более менее очевидно, что развивается только `Python3` и, рано или поздно, все библиотеки будут портированы под него. И во всех дистрибутивах по [умолчанию будет тройка][2]. Но постепенно, по мере изучения, что нового появилось в последних версиях `Python` мне все больше стал нравится `Asyncio` и, скорее, даже не `Acyncio` а написанный для работы с ним `aiohttp`. И, спустя какое то время, появилась небольшая обертка вокруг `aiohttp` в стиле `like django`. Кому интересно что из этого получилось прошу под кат. [Введение][3] [ Краткий обзор других фреймворков на базе aiohttp][4] [1\. Структура][5] [2\. aiohttp и jinja2 ][6] [3\. aiohttp и роуты][7] [4\. статика и GET, POST параметры, редиректы][8] [5\. Websocket ][9] [6\. asyncio и mongodb, aiohttp, session, middleware ][10] [7\. aiohttp, supervisor, nginx, gunicorn ][11] [8\. После установки, о примерах.][12] [9\.RoadMap][13] [Читать дальше →][14]

[1]: https://habrastorage.org/files/4dd/292/fb4/4dd292fb4a494a6dbafea76e0c50edbe.jpg
[2]: http://www.opennet.ru/opennews/art.shtml?num=41989
[3]: #0
[4]: #01
[5]: #1
[6]: #2
[7]: #3
[8]: #4
[9]: #5
[10]: #6
[11]: #7
[12]: #8
[13]: #9
[14]: http://habrahabr.ru/post/242541/#habracut

[>] Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 6 из 6
habra.14
habrabot(difrex,1) — All
2015-01-30 21:00:02




# Содержание основного курса



* [Статья 1: алгоритм Брезенхэма][1]
* [Статья 2: растеризация треугольника + отсечение задних граней][2]
* [Статья 3: Удаление невидимых поверхностей: z-буфер][3]
* Статья 4: Необходимая геометрия: фестиваль матриц
* [4а: Построение перспективного искажения][4]
* [4б: двигаем камеру и что из этого следует][5]
* [Статья 5: Пишем шейдеры под нашу библиотеку][6]
* [**Статья 6: Чуть больше, чем просто шейдер: просчёт теней**][7]



### Улучшение кода

__

* [Статья 3.1: Настала пора рефакторинга][8]
* красивый класс матриц
* как работает новый растеризатор



# Shadow mapping

Ну вот наш краткий курс подходит к концу, задача на сегодня — научиться отрисовывать тени (внимание, просчёт полутеней — это отдельная тема): ![][9] Как всегда, код доступен [на гитхабе][10] [Читать дальше →][11]

[1]: http://habrahabr.ru/post/248153/
[2]: http://habrahabr.ru/post/248159/
[3]: http://habrahabr.ru/post/248179/
[4]: http://habrahabr.ru/post/248611/
[5]: http://habrahabr.ru/post/248723/
[6]: http://habrahabr.ru/post/248963/
[7]: http://habrahabr.ru/post/249139/
[8]: http://habrahabr.ru/post/248909/
[9]: http://habrastorage.org/getpro/habr/post_images/50d/e2a/be9/50de2abe990efa345664f98c9464a4c8.png
[10]: https://github.com/ssloy/tinyrenderer/tree/0c1d955e4f86c25f31f97e4f4563313ddba0c104
[11]: http://habrahabr.ru/post/249139/#habracut

[>] Приглашение на FOSDEM 2015
habra.14
habrabot(difrex,1) — All
2015-01-31 01:00:03




> Друзья, FOSDEM уже в эти выходные! На
>
> [стенде][1]
>
> ReactOS ожидаются: Colin Finck, Pierre «HeisSpiter» Schweitzer, Giannis «smiley» Adamopoulos — впервые увидимся лично (не только я, но и остальные члены команды с ним никогда не встречались до этого момента), и я, Alekesy «Fireball» Bragin — мне очень приятно снова оказаться на этом замечательном событии.

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

[1]: https://fosdem.org/2015/stands/
[2]: //habrastorage.org/files/eca/c00/6b7/ecac006b777a46d2879f2f31b6c6650e.jpg
[3]: http://habrahabr.ru/post/249347/#habracut

[>] Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 3.14 из 6
habra.14
habrabot(difrex,1) — All
2015-01-31 03:00:02




# Содержание основного курса



* [Статья 1: алгоритм Брезенхэма][1]
* [Статья 2: растеризация треугольника + отсечение задних граней][2]
* [Статья 3: Удаление невидимых поверхностей: z-буфер][3]
* Статья 4: Необходимая геометрия: фестиваль матриц
* [4а: Построение перспективного искажения][4]
* [4б: двигаем камеру и что из этого следует][5]
* [Статья 5: Пишем шейдеры под нашу библиотеку][6]
* [Статья 6: Чуть больше, чем просто шейдер: просчёт теней][7]

### Улучшение кода

__

* [Статья 3.1: Настала пора рефакторинга][8]
* **[Статья 3.14: Красивый класс матриц][9]**
* как работает новый растеризатор



#### 4 Приветствие и вступление

_Нумерация в прошлой статье закончилась на 3, в этой будем продолжать нумеровать насквозь._ **UPD: ВНИМАНИЕ! Раздел, начиная с номера 3.1, 3.14 и 3.141 и далее, будет о тонкостях реализации основы основ компьютерной графики — линейной алгебры и вычислительной геометрии. О принципах графики пишет [haqreu][10], я же буду писать о том, как это можно внятно запрограммировать!** Эта статья является продолжением серии статей о практической реализации элементов вычислительной геометрии, и, в частности, программного отрисовщика, с использованием C++98. Мы с [haqreu][11] сознательно идем на использование прошлой версии стандарта и написание собственной геометрической библиотеки для того, чтобы, во-первых, выпустить код примеров, которые без особых трудностей будут компилироваться большинством имеющихся компиляторов, а во-вторых, чтобы в нашем коде не было ничего, что скрыто в недрах библиотеки. В статье излагаются вопросы реализации шаблона прямоугольной матрицы `template class mat;`

##### 4\.1 Благодарности

Я выражаю огромную признательность [haqreu][12], как основоположнику данного курса. Так держать! Я очень признателен [lemelisk][13] за предварительное рецензирование и ревью моих исходников. Спасибо за плодотворные дискуссии! [Познавательного чтения!][14]

[1]: http://habrahabr.ru/post/248153/
[2]: http://habrahabr.ru/post/248159/
[3]: http://habrahabr.ru/post/248179/
[4]: http://habrahabr.ru/post/248611/
[5]: http://habrahabr.ru/post/248723/
[6]: http://habrahabr.ru/post/248963/
[7]: http://habrahabr.ru/post/249139/
[8]: http://habrahabr.ru/post/248909/
[9]: http://habrahabr.ru/post/249101/
[10]: http://habrahabr.ru/users/haqreu/
[11]: http://habrahabr.ru/users/haqreu/
[12]: http://habrahabr.ru/users/haqreu/
[13]: http://habrahabr.ru/users/lemelisk/
[14]: http://habrahabr.ru/post/249101/#habracut

[>] CSRF в моем домашнем роутере и как я ее закрыл
habra.14
habrabot(difrex,1) — All
2015-01-31 13:00:02


_В продолжение публикации [«Был получен доступ к тысячам персональных данных пользователей «Билайн проводной интернет»»][1]._ Как вы уже узнали, в этой небольшой коробочке скрывается довольно много интересного. Есть такая совершенно очевидная и в то же время сравнительно невинная ошибка, [CSRF][2]. Примечательно, что она находится именно в тех роутерах, в которых ничего из недавней статьи нет. Однако, в отличие от тех багов, ее могут эксплуатировать не только ваши соседи, а кто угодно, вроде коварного собеседника в чате или единожды посещенного сайта. CSRF работает так: каким-либо образом попросить браузер жертвы загрузить сочиненный url, при этом целевой сайт, узнав ваш браузер, что-то сделает, как будто этого хотели вы. Примерно вот так будет выглядеть адрес от человека, собирающего ботнет для дерзкой icmp-атаки на ya.ru:

http://192.168.1.1/apply.cgi?
current_page=Main_AdmStatus_Content.asp&
next_page=Main_AdmStatus_Content.asp&
next_host=192.168.1.1&
sid_list=FirewallConfig%3B&
group_id=&
modified=0&
action_mode=+Refresh+&
first_time=&
action_script=&
SystemCmd=nohup+ping+ya.ru+%26&
action=Refresh



Есть то, что защищает обладателей типичных CSRF-уязвимых роутеров, это с большой вероятностью отсутствующая у жертвы в момент атаки авторизованная сессия, что сводит на нет любой удачно сформированный от ее имени запрос. А вы знали, что Safari не имеет привычки забывать\* один раз введенные данные http аутентификации? Я вот не знал, но уже несколько недель как захожу в веб интерфейс не вводя пароль, хотя никогда не просил его сохранять. И, что удивительно, даже ничего не могу с этим сделать. Иначе говоря, если роутер при логине показывает такое системное окошко с предложением пройти аутентификацию, а у вас Safari, то закончить сессию так просто не получится. На этом месте я осознал необходимость что-то со всем этим сделать. [Топорное решение проблемы под катом][3]

[1]: http://habrahabr.ru/post/243997/
[2]: https://ru.wikipedia.org/wiki/Межсайтовая_подделка_запроса
[3]: http://habrahabr.ru/post/248917/#habracut

[>] «Zero Security: A» — курсы этичного хакинга для начинающих
habra.15
habrabot(difrex,1) — All
2015-09-17 15:00:05


![][1] Одним из основных направлений PENTESTIT является разработка специализированных программ начальной ([Zero Security: A][2]) и профессиональной ([Корпоративные лаборатории][3]) подготовки в области информационной безопасности. Вне зависимости от программ обучения, их ключевыми особенностями являются актуальный материал и практическая подготовка в пентест-лабораториях, составляющая 80% от общей программы курса. В данной статье мы разберем несколько примеров практических заданий. [Читать дальше →][4]

[1]: https://habrastorage.org/files/1fb/3e4/ebb/1fb3e4ebbb724ed2850bbe912ed3cdcc.png
[2]: https://www.pentestit.ru/study/zerosecurity-a
[3]: https://www.pentestit.ru/labs/corp-lab
[4]: http://habrahabr.ru/post/267021/#habracut

[>] STM32 и FreeRTOS. 3. Встаем в очередь
habra.14
habrabot(difrex,1) — All
2015-01-31 14:30:03


Раньше: [про потоки][1] и [про семафоры][2] «Вас много, а я одна!» — классическая фраза продавщицы, которую затерроризировали покупатели с вопросами «А есть ...?». Вот и в микроконтроллерах случаются полностью аналогичные ситуации, когда несколько потоков требуют внимания от какой-либо медленной штуки, которая просто физически не способна обслужить всех разом. Возьмем наиболее яркий и богатый проблемами пример, на котором «валятся» большинство неопытных программистов. Есть мощный и достаточно быстрый микроконтроллер. К нему подключен с одной стороны адаптер com-порта, через который пользователь подает команды и получает результаты, а с другой — шаговый двигатель, который согласно этим командам поворачивается на какой-то угол. И конечно же, прикольная кнопочка, которая тоже что-то этакое значит для пользователя. Где можно наловить проблем? [Читать дальше →][3]

[1]: http://habrahabr.ru/post/249273/
[2]: http://habrahabr.ru/post/249283/
[3]: http://habrahabr.ru/post/249381/#habracut

[>] Стартовали Стэнфордские курсы cs193p 2015: iOS 8 + Swift и только Swift
habra.14
habrabot(difrex,1) — All
2015-01-31 16:30:02


![image][1] В [прошлой публикации][2] я писала о том, что ожидаются Стэнфордские курсы cs193p 2015. И вот они стартовали. Вернее в Стэнфорде они стартовали давно, 5 января 2015 года. Но только сейчас их выкладывают в iTunes [Developing iOS 8 Apps with Swift][3] В первой же лекции Пол Хегэрти (Paul Hegarty) четко сказал, что в курсе будет использоваться только [Swift][4]. Стэнфорд окончательно переключился на Swift не только потому, что многие компании в Силиконовой долине проводят интервью с выпусниками на позиции разработчиков iOS приложений на Swift, но и потому, что с [благословления Apple][5] свободное распространение такого качественного контента c 1.2 миллионами скачиваний откроет для многих разработчиков по всему миру язык разработки iOS приложений Swift. Для того, чтобы воспользоваться этим контентом, вам нужно иметь только Mac — Macbook Pro, MacBook Air, iMac. Все программное обеспечение — бесплатное. Уже выложены 4 лекции и одно домашнее задание. Если кто-то чувствует себя не совсем уверенно с английским или просто хотите почитать материал на русском языке, предлагаю свой неавторизованный конспект лекций на русском языке. Выложена [Лекция 1 CS193P Winter 2015 — Логистика курса, обзор iOS 8.][6] В ближайшее время будет выложены остальные. Блестящие лекции профессора Пола Хегэрти (Paul Hegarty) будут полезны как начинающим, так и опытным программистам. [Читать дальше →][7]

[1]: http://habrastorage.org/files/1b9/ac6/5d8/1b9ac65d8f4c479da7c85ba9facc7b4f.png
[2]: http://habrahabr.ru/post/244353/
[3]: https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099?utm_campaign=This_Week_in_Swift_26&utm_medium=email&utm_source=This%2BWeek%2Bin%2BSwift
[4]: https://developer.apple.com/library/mac/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2-ID1
[5]: https://developer.apple.com/news/?id=01272015a&utm_campaign=iOS_Dev_Weekly_Issue_183&utm_medium=email&utm_source=iOS%2BDev%2BWeekly
[6]: http://bestkora.com/IosDeveloper/
[7]: http://habrahabr.ru/post/249353/#habracut

[>] Functional C#: Non-nullable reference types (ненулевые ссылочные типы)
habra.15
habrabot(difrex,1) — All
2015-09-17 16:30:03


Третья статья в серии «Функциональный C#».

* [Functional C#: Immutability][1]
* [Functional C#: Primitive obsession][2]
* **Functional C#: Non-nullable reference types**
* Functional C#: Handling failures and input errors (coming soon)

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

[1]: http://habrahabr.ru/post/266873/
[2]: http://habrahabr.ru/post/266937/
[3]: http://habrahabr.ru/post/267063/#habracut

[>] [Из песочницы] Почему компании не умеют обращаться с деньгами
habra.14
habrabot(difrex,1) — All
2015-02-01 02:00:03


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

[1]: //habrastorage.org/files/8ee/ccc/054/8eeccc054bd24ae3a2fedcded239ae56.jpg
[2]: http://habrahabr.ru/post/249369/#habracut

[>] Разбор задачи Digit Recognizer соревнования Kaggle
habra.15
habrabot(difrex,1) — All
2015-09-17 17:30:03


Привет, хабр! ![][1] Как и обещал, продолжаю публикацию разборов задач, которые я прорешал за время работы с ребятами из [MLClass.ru][2]. В этот раз мы разберем метод главных компонент на примере известной задачи распознавания цифр [Digit Recognizer][3] с платформы Kaggle. Статья будет полезна новичкам, которые еще только начинают изучать анализ данных. Кстати, еще не поздно записаться на курс [Прикладной анализ данных][4], получив возможность максимально быстро прокачаться в данной области. [Читать дальше →][5]

[1]: https://habrastorage.org/files/5bb/a0d/0af/5bba0d0af5514b4b9f22caa4bce3f0b7.png
[2]: http://dscourse.mlclass.ru
[3]: https://www.kaggle.com/c/digit-recognizer
[4]: http://dscourse.mlclass.ru
[5]: http://habrahabr.ru/post/267075/#habracut

[>] [Из песочницы] Бот для сапера с изюминкой
habra.15
habrabot(difrex,1) — All
2015-09-17 17:30:03


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

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

[>] [Из песочницы] Nginx: защищаем урл одноразовым паролем
habra.15
habrabot(difrex,1) — All
2015-09-17 19:30:02


Появилась задача обезопасить админскую часть на сайте. Причём это надо было сделать без внесения изменений в код самого сайта. Лучшее, что смог я найти — [oauth2\_proxy][1] и [nginx-google-oauth][2], но они требовали обработку коллбэков. Эти решения мне не понравились и я их отверг. Пришлось обратиться к одному из [модулей][3] nginx и [комплектующим][4] для [велосипеда][5]. [Читать дальше →][6]

[1]: https://github.com/bitly/oauth2_proxy
[2]: https://github.com/agoragames/nginx-google-oauth
[3]: http://nginx.org/ru/docs/http/ngx_http_auth_request_module.html
[4]: http://flask.pocoo.org/
[5]: https://www.python.org/download/releases/2.7/
[6]: http://habrahabr.ru/post/267095/#habracut

[>] Как подружить QML с чужим OpenGL контекстом. Часть III: Обработка пользовательского ввода
habra.14
habrabot(difrex,1) — All
2015-02-01 02:30:02


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

[1]: http://doc.qt.io/qt-5/qquickwindow.html
[2]: http://doc.qt.io/qt-5/qquickrendercontrol.html
[3]: http://habrahabr.ru/post/249383/#habracut

[>] Жизнь без регулярных выражений и без logstash при разборе логов. Публикация событий в Elasticsearch
habra.15
habrabot(difrex,1) — All
2015-09-17 19:30:02


![][1] Парсинг логов будет совсем не нужен. При изменении формата логирования и появлении новых сообщений не нужно поддерживать большой набор регулярок. Так как будем перехватывать вызовы методов error, warn, info, debug, trace логера и отправлять данные в elasticsearch. С этим нам поможет аспектно-ориентированное программирование [Программа, конфигурация и скринкаст...][2]

[1]: https://habrastorage.org/files/97e/b05/08a/97eb0508a20b426794605137cc004d51.png
[2]: http://habrahabr.ru/post/267009/#habracut

[>] Пишем свой нагрузочный тестер на Node.js
habra.14
habrabot(difrex,1) — All
2015-02-01 05:30:02


В посте речь пойдет о написании утилиты для нагрузочного тестирования HTTP сервисов на Node.js, а также описание самого инструмента и области его использования. [Читать дальше →][1]

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

[>] Бэкдор SYNful knock позволяет подменять операционную систему маршрутизаторов Cisco
habra.15
habrabot(difrex,1) — All
2015-09-17 19:30:02


Исследователи безопасности из принадлежащей FireEye компании Mandiant [обнаружили][1] ранее неизвестные атаки на машрутизаторы Cisco, позволяющие злоумышленникам собирать большие объёмы данных и при этом оставаться незаметными для популярных средств защиты. Бэкдор SYNful knock был обнаружен в 14 маршрутизаторах, расположенных в четырех странах, включая Украину, Филиппины, Мексику и Индию. Закладки поддерживают загружаются каждый раз при включении маршрутизатора. ![][2] В ходе атаки злоумышленники не эксплуатируют какие-либо уязвимости программного обеспечения маршрутизатора, а используют похищенные легитимные учетные данные и стандартные пароли администратора. Бэкдор подменяет образ операционной системы Cisco IOS, на экземпляр, позволяющий осуществлять загрузку функциональных модулей из интернета. Кроме того, бэкдор содержит специальный пароль, позволяющий получать удаленный доступ к устройству через консоль или telnet. [Читать дальше →][3]

[1]: https://www.fireeye.com/blog/threat-research/2015/09/synful_knock_-_acis.html
[2]: https://habrastorage.org/files/a03/e50/677/a03e50677e67416b80c4e4fc36c14dcd.jpg
[3]: http://habrahabr.ru/post/267057/#habracut

[>] Лекции Технопарка. 1 семестр. Web-технологии
habra.14
habrabot(difrex,1) — All
2015-02-01 17:00:03


Сегодня этим постом мы открываем цикл еженедельных публикаций учебных материалов [Технопарка][1]. Если кто-то ещё не знает, Технопарк — это совместный образовательный проект Mail.Ru Group и МГТУ им. Н. Э. Баумана. На данный момент здесь проходит обучение по 20 IT-дисциплинам 91 наиболее талантливый студент. Технопарк существует с 18 ноября 2011 года, а первые счастливчики приступили к занятиям в декабре 2011 года. Обучение в Технопарке совершенно бесплатное, оно проходит после занятий в университете. Стать участниками проекта могут студенты 3-5 курсов. Хотя для 2 и 6 курсов можем сделать исключение. Обучение длится 2 года, оно разбито на 4 семестра, в каждом из которых проходят по 3-4 предмета. Первый блок первого семестра посвящён всему, что связано с web-технологиями, от истории возникновения до программирования и безопасности web-приложений.

#### **Лекция 1. Введение**

На вводном занятии вы познакомитесь с краткой историей развития интернета, основными трендами в развитии web-приложений, облачных сервисов и мобильных приложений. Также на лекции разобрано устройство и работа несложного web-приложения, обсуждены такие фундаментальные понятия, как система адресации в интернете, домены, HTML-страницы и протокол HTTP. Напоследок кратко рассказано о CGI-скриптах, их назначении и особенностях работы.




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

[1]: https://tech-mail.ru/
[2]: http://habrahabr.ru/post/248745/#habracut

[>] Как мы работали над новым mos.ru
habra.15
habrabot(difrex,1) — All
2015-09-17 20:00:03


Когда-то давно в школе нас заставляли зубрить факты, правила и даты. Однако в век тотальной информатизации можно не знать что-то наизусть, достаточно понимать, где можно найти ту или иную информацию. И при этом еще желательно не заблудиться по дороге к нужным знаниям. Логично, что именно по этому пути должны следовать власти современных мегаполисов, создавая свои официальные электронные ресурсы - дать своим жителям понимание, где они могут найти всю необходимую для жизни информацию. Однако правительства даже самых передовых стран далеко не всегда выбирают правильные способы коммуникации и не успевают быстро осваивать инструменты, экономящие время и реально упрощающие жизнь граждан. Но мы стараемся, и вот настало время перемен для главной страницы Москвы в интернете – mos.ru. [Об опыте ее разработки – под катом.][1]

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

[>] Pundle — bundler для python
habra.14
habrabot(difrex,1) — All
2015-02-01 22:00:02


Начну с пиара другого проекта, который мне очень нравится использовать — pyenv. Это порт rbenv для python, который служит для установки нужных версий python в папку пользователя в недра ~/.pyenv, и активации нужной версии руками или, что более грамотно, через файл .pyenv-version в папке проекта. Следуя этой старой доброй традиции обмениваться здравыми идеями с ruby сообществом, я решил портировать идею Bundler (http://bundler.io/), и назвал его Pundle. Это вторая часть рабочего процесса связанного с версиями интерпретаторов и пакетов в руби, и как и первая, достаточно разумна. Главная идея pundle в том, чтобы не создавать отдельную директорию на каждую комбинацию версий пакетов как в virtualenv, а вместо этого поставить все пакеты в директории типа .pundlerdir/python-version-variant/package-name-2.3.4, и при старте проекта, взяв информацию из frozen.txt, активировать нужные версии пакетов [Читать дальше →][1]

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

[>] DI в сложных приложениях. Как не утонуть в зависимостях
habra.15
habrabot(difrex,1) — All
2015-09-17 20:00:03


Всем привет. При конструировании приложений хорошим тоном является использование Dependency Injection(внедрение зависимостей). Данный подход позволяет делать код слабо связанным, а это в свою очередь обеспечивает легкость сопровождения. Также облегчается тестирование и код становится красивым, универсальным и заменяемым. При разработке наших продуктов с самого начала использовался этот принцип: и в высоконагруженной DSP и в корпоративном [Hybrid][1]. Мы писали модули, подключали интеграцию с различными системами, количество зависимостей росло и в какой-то момент стало сложно поддерживать само конфигурирование приложения. Плюс к этому добавлялись неявные регистрации(например, кастомный DependencyResolver для Web Api задавался в настройках Web Api) и начали возникать сложности с **_порядком _**вызова модулей конфигурации. В конце концов мы выработали подход для регистрации, конфигурации и инициализации модулей в сложном приложении. О нём и расскажу. ![image][2] [Читать дальше →][3]

[1]: http://hybrid.ru
[2]: https://habrastorage.org/files/067/ecd/a1c/067ecda1c3824cd7886d796a91c8b93b.png
[3]: http://habrahabr.ru/post/266975/#habracut

[>] [Перевод] План EFF по устранению массовой слежки
habra.14
habrabot(difrex,1) — All
2015-02-02 01:30:03


![image][1] _Electronic Frontier Foundation (EFF), Фонд Электронных Рубежей — основанная в июле 1990 в США некоммерческая правозащитная организация, с целью защиты заложенных в Конституции и Декларации независимости прав в связи с появлением новых технологий связи. Основатели — Джон Гилмор, Джон Перри Барлоу, Митч Капор._ С прекращением массовой слежки есть проблема. Организация, осуществляющая самые пристальные и глубоко проникающие наблюдения, Агентство Национальной Безопасности, связано законами США. Для американцев это хорошо. Законы США и её Конституция защищают американских граждан и легальных резидентов от наблюдения, не подкреплённого ордером. То есть, юридически мы можем противостоять домашнему наблюдению или массовому прослушиванию. Кроме того, конгресс США избирается американцами. Получается, что представители в Конгрессе обязаны гражданам их работами, и публичное давление избирателей может повлиять на принятие законов в будущем – законов, которые могут предотвратить самые вопиющие практики АНБ. Но как насчёт всех остальных людей? 96% населения Земли являются гражданами других государств и живут вне границ США. Они не голосуют за конгрессменов. И законы США защищают только граждан страны. Что может EFF сделать для защиты миллиардов людей, подвергшимся подглядыванию со стороны АНБ вне США? [Читать дальше →][2]

[1]: http://habrastorage.org/getpro/habr/post_images/8c0/ef6/728/8c0ef6728ac2719eb777ae07eee8d17a.jpg
[2]: http://habrahabr.ru/post/249437/#habracut

[>] Кросс-компиляция в Go
habra.14
habrabot(difrex,1) — All
2015-02-02 09:30:04


Несмотря на то, что кроссплатформенность стала фактически стандартным атрибутом практически всех современных языков и библиотек, создавать по-настоящему кроссплатформенный продукт, всё равно было непросто. Компилируемые языки и сопутствующие библиотеки требовали сложной установки и настройки среды сборки и библиотек, а интерпретируемые — обязывали иметь или деплоить в составе необходимую версию интерпретатора. Есть немало проектов, пытающихся сделать этот процесс чуть более простым, но зачастую единственным решением оставалось устанавливать отдельный сервер и компилировать нативно. В Go кросс-платформенность вышла на тот уровень, когда впервые можно смело отказаться от compile farms, специально настроенных dev-сред, виртуальных машин для сборки или chroot/docker-dev решений. И это ещё один серьезный game-changer, подробнее о котором я и хочу рассказать и показать на примерах Поехали. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/1dd/0dc/931/1dd0dc9313c84154b96560aadf1ade50.jpg
[2]: http://habrahabr.ru/post/249449/#habracut

Pages: 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 210