RSS
Pages: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 37
[>] Пешком по тайлам
habra.15
habrabot(difrex,1) — All
2015-09-15 15:30:07


![][1] Для автомобилистов проблему незнакомых улиц давно решили навигаторами. Но даже автомобилисты ходят пешком. Если магазин через дорогу, то мы встаём и идём. Трудности появляются, если предстоит пройти пятьсот метров по незнакомой улице и два-три раза свернуть. Ни один из известных нам сервисов не строил маршрут из точки А до точки Б там, где нет тропинок и тротуаров, зато полно заборов и домов причудливых очертаний. 2ГИС решил эту проблему. Мы научились строить маршруты для пешеходов по растеризованной карте местности. Карта формально представляется [ графом ][2]с вершинами на регулярной решётке в местах, где пешеход может находиться физически. Принято считать, что такой способ строить маршруты неприемлем, потому что съедает много ресурсов. Под катом — как мы с этим справились. [Читать дальше →][3]

[1]: https://habrastorage.org/files/aa0/26f/3cd/aa026f3cd53a49ee8e84313daca75891.png
[2]: https://en.wikipedia.org/wiki/Graph_(abstract_data_type)
[3]: http://habrahabr.ru/post/266753/#habracut

[>] Как перестать настраивать и начать жить или настройка Puppet в школьном классе на 25 компьютеров
habra.15
habrabot(difrex,1) — All
2015-09-15 17:30:03


_Можно настраивать компьютеры по одному, но иногда их становится слишком много..._ ![][1] Так уж вышло, что я устроился преподавателем на один бесплатный курс для школьников по разработке под Android, спонсируемый одной крупной корпорацией, и, естественно, мне потребовалось осваивать соответствующую технику в количестве 25 ноутбуков, 25 планшетов, 2 стационарных компьютеров и сенсорной панели. До недавнего времени ноутбуки использовались с ОС Windows 8.1, но мало кого устраивала производительность и стабильность работы этой ОС при разработке в Eclipse и Android Studio. После одного года под Windows, наше руководство решило все ноутбуки перевести на Xubuntu 14.04, чтобы разрешить эти сложности. Был подготовлен образ, настроенный под конкретную модель ноутбуков, что у нас использовалась, и со всеми необходимыми программами. Накатил и работай. Одна беда — не было предусмотрено никакого решения для централизованного управления конфигурацией. На мой логичный вопрос по этому поводу был дан ответ, что внедрение подобной системы усложняет процедуру установки Linux на ноутбуки и, поскольку в образе уже все сделано как надо, никаких изменений после его установки вносить не понадобится. (ох уж эти оптимисты!) В общем я решил, что мне лично централизованное управление конфигурацией очень нужно, и взялся за дело самостоятельно. После недолгих размышлений был выбран Puppet как более простой в настройке и установке (может мне просто инструкции неудачные по Chef попадались — не знаю). Для меня эта простота была главным критерием, поскольку много времени на это дело я уделить не мог. На Хабре уже немало писали о Puppet, в том числе и инструкции, как его установить и настроить с нуля. Я нашел целых 3 штуки. Однако [1-я][2] описывает какой-то уж слишком сложный случай, [2-я][3] больше сосредоточена на файлах манифестов, чем на самой установке Puppet. [3-я][4] весьма неплоха, я использовал ее как один из источников информации, но, к сожалению, уже устарела. Поэтому решил, заодно с настройкой и статью на хабр разместить. И мне напоминание и для других инструкция. [Читать дальше →][5]

[1]: https://habrastorage.org/files/985/77e/789/98577e7894224c93b2249439cc09dd29.jpg
[2]: http://habrahabr.ru/post/229867/
[3]: http://habrahabr.ru/post/163811/
[4]: http://habrahabr.ru/post/68532/
[5]: http://habrahabr.ru/post/265755/#habracut

[>] [Из песочницы] Реализация генератора псевдослучайных чисел на ПЛИС с использованием Vivado HLS 2014.4
habra.15
habrabot(difrex,1) — All
2015-09-15 20:00:02


Во многих задачах возникает необходимость использования генератора псевдослучайных чисел. Вот и у нас возникла такая необходимость. В общем и целом задача заключалась в создании вычислительной платформы на базе блока [RB8V7][1], которая должна была быть использована как ускоритель расчетов конкретной научной задачи. _Скажу пару слов об этой научной задаче: необходимо было произвести расчет динамики биологических микротрубочек на временах порядка минуты. Расчеты представляли собой вычисления с использованием молекулярно-механической модели микротрубочки, разработанной в научной группе. Планировалось, что на основе полученных результатов вычислений можно будет сделать вывод о механизмах динамической нестабильности микротрубочек. Необходимость в использовании ускорителя была обусловлена тем фактом, что минута эквивалента достаточно большому количеству расчетных шагов (~ 10 ^ 12) и, как следствие, большому количеству времени, затрачиваемому на вычисления._ Итак, возвращаясь к теме статьи, в нашем случае генераторы псевдослучайных чисел нужны были для учета теплового движения молекул упомянутых микротрубочек. В качестве базовой архитектуры проекта был использована [архитектура с поддержкой DMA передач][2]. Как компонент этого вычислительной платформы необходимо было реализовать IP ядро, которое способно было бы генерировать новое псевдослучайное нормально распределенное число типа float каждый такт и занимало бы как можно меньше ресурсов на ПЛИС. [Читать дальше →][3]

[1]: http://yandex.ru/search/?lr=213&text=RB-8V7
[2]: http://habrahabr.ru/post/193646/
[3]: http://habrahabr.ru/post/266897/#habracut

[>] [Перевод] Оттачиваем мастерство работы в консоли
habra.15
habrabot(difrex,1) — All
2015-09-16 01:30:03


После того, как у меня появился новый монитор на рабочем месте, я начал новую итерацию улучшения своего «безмышечного» (_mouse-less, прим. пер._) опыта. Вы же знаете, что это значит, не так ли? Это значит, что каждый раз, когда вы беретесь за мышку, убирая руку с клавиатуры, вы тратите немного времени и энергии. Если вам нужно набирать много текста (а я много пишу кода), это становится существенным. Так же существует следующий уровень «безмышечного» опыта, когда вы стараетесь избежать труднодоступных клавиш, например `Delete`, `Backspace`, `Escape` или даже `Enter`. Если вы держите руки в стандартной позиции для 10-пальцевой слепой печати, более удобно нажать `Ctrl-m` вместо того, чтобы тянуться мизинцем к энтеру. ![image][1] [Читать дальше →][2]

[1]: https://upload.wikimedia.org/wikipedia/commons/0/0d/QWERTY-home-keys-position.svg
[2]: http://habrahabr.ru/post/266933/#habracut

[>] Jii: конфигурация и масштабирование
habra.15
habrabot(difrex,1) — All
2015-09-16 08:00:13


Привет всем хабровчанам, любителям Yii и Node.js. Давно небыло статей про Jii, но работа не стояла на месте и мне есть что рассказать! В этой статье мы рассмотрим способы конфигурирования приложения и запуск приложений как несколько процессов. [][1]



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

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

[>] Functional C#: Primitive obsession (одержимость примитивами)
habra.15
habrabot(difrex,1) — All
2015-09-16 10:00:03


Это вторая статья из миницикла статей про функциональный C#.

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

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

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

[>] Профилировка гибридных кластерных приложений MPI+OpenMP
habra.15
habrabot(difrex,1) — All
2015-09-16 12:00:03


![][1] Библиотеки, реализующие стандарт MPI (Message Passing Interface) — наиболее популярный механизм организации вычислений на кластере. MPI позволяет передавать сообщения между узлами (серверами), но никто не мешает запускать несколько MPI процессов и на одном узле, реализуя потенциал нескольких ядер. Так часто и пишутся HPC приложения, так проще. И пока количество ядер на одном узле было мало, никаких проблем с «чистым MPI» подходом не было. Но сегодня количество ядер идёт на десятки, а то и на сотни для со-процессоров Intel Xeon-Phi. И в такой ситуации запуск десятков процессов на одной машине становится не совсем эффективным. Дело в том, что MPI процессы общаются через сетевой интерфейс (хоть и реализованный через общую память на одной машине). Это влечет за собой избыточные копирования данных через множество буферов и увеличенный расход памяти. Для параллельных вычислений внутри одной машины с общей памятью гораздо лучше подходят потоки и распределение задач между ними. Здесь наибольшей популярностью в мире HPC пользуется стандарт OpenMP. Казалось бы – ладно, используем OpenMP внутри узла, и MPI для меж-узловых коммуникаций. Но не всё так просто. Использование двух фреймворков (MPI и OpenMP) вместо одного не только несёт дополнительную сложность программирования, но и не всегда даёт желаемый прирост производительности – по крайней мере, не сразу. Нужно ещё решить, как распределить вычисления между MPI и OpenMP, и, возможно, решить проблемы, специфичные для каждого уровня. В этой статье я не буду описывать создание гибридных приложений – информацию найти не сложно. Мы рассмотрим, как можно анализировать гибридные приложения с помощью инструментов Intel Parallel Studio, выбирая оптимальную конфигурацию и устраняя узкие места на разных уровнях. [Читать дальше →][2]

[1]: https://habrastorage.org/files/d55/c79/a28/d55c79a28e7d48718011d0f2796621fc.png
[2]: http://habrahabr.ru/post/266409/#habracut

[>] О безопасности UEFI, части нулевая и первая
habra.15
habrabot(difrex,1) — All
2015-09-16 13:30:03


![][1]Когда-то давно, в начале 2014 года, я назвал состояние безопасности большинства реализаций UEFI "[полумифическим][2]". С тех пор минуло полтора года, дело осторожно двигается с мертвой точки, но до сих пор очень многие производители ПК для конечного пользователя не обращают на эту самую безопасность почти никакого внимания — «пипл хавает». В этой статье речь пойдет о модели угроз и векторах атаки на UEFI, а также о защитах от перезаписи содержимого микросхемы BIOS — самой разрушительной по возможным последствиям атаки. Если вам интересно, как устроена защита UEFI и какие именно уязвимости в ней так и остаются неисправленными на большинстве современных систем — добро пожаловать под кат. [Читать дальше →][3]

[1]: https://habrastorage.org/files/cd4/487/c77/cd4487c770854cca841ce93f21e34374.jpg
[2]: http://habrahabr.ru/post/211574
[3]: http://habrahabr.ru/post/266935/#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

[>] [Из песочницы] Что такое красивый код, и как его писать?
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

[>] Re: Как разблокировать Android, не зная пароль
habra.15
vit01(mira, 1) — habrabot
2015-09-16 17:54:50


Не работает способ. Копирование/вставка на экране блокировки убраны. Камеру оттуда тоже давно убрал :)

[>] Как подружить 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

[>] [Из песочницы] Ограничение доступа к веб-приложениям в 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

[>] [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

[>] [Из песочницы] Делаем из 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

[>] Инкапсуляция интерфейсов. Делаем 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

[>] Безопасный 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

[>] 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

[>] «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

[>] 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

[>] Разбор задачи 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

[>] Жизнь без регулярных выражений и без 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

[>] Бэкдор 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

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


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

[1]: http://habrahabr.ru/post/267077/#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

[>] История о чертовых дублях
habra.15
habrabot(difrex,1) — All
2015-09-17 20:00:03


Данная статья подготовлена Дмитрием Овчаренко, архитектором Департамента прикладных финансовых систем компании «Инфосистемы Джет» Да будет унификация! Такое решение было принято при проектировании интеграционной архитектуры, связывающей CRM с другими внешними системами посредством шины на Oracle Service Bus. Помимо онлайн-интеграции на основе веб-сервисов, она принимает файлы, поступающие в систему, и вызывает веб-сервисы на стороне CRM, специально разработанные для каждого типа входящих данных. Файл содержит множество записей, и по каждой требуется выполнить отдельный вызов сервиса на стороне CRM. Обработка файла производится в цикле по записям. На каждый вызов сервиса уходит по 5 секунд – это довольно много, но для выполнения поставленных требований вполне хватало. Процесс обработки вызова веб-сервиса в CRM предварительно проверяет запись на дубль, затем выполняет требуемую бизнес-логику и создает запись в БД. Но «внезапности» могут возникнуть в непредвиденных моментах «шиномонтажа». На промышленных объемах данных в базе CRM стали появляться дубли. Мы выяснили, что источник может почему-то отправить большой файл повторно (сразу после того, как он будет подхвачен файловым proxy-сервисом и помещен в Stage-папку). Причем отставание между вызовами веб-сервисов, создающих дубли, настолько мало, что в момент второго вызова данные в первом еще не закоммичены, и проверка на стороне CRM не успевает срабатывать. [Читать дальше →][1]

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

[>] [Из песочницы] Разворачиваем Flask-приложение на Nginx, используя Gunicorn
habra.15
habrabot(difrex,1) — All
2015-09-17 20:00:03


Предположим, у вас есть Ubuntu, в котором нужно развернуть Nginx с Flask-приложением. Вам необходимо использовать WSGI сервер, например, Gunicorn. Gunicorn (Green Unicorn) — WSGI HTTP сервер на Python для UNIX систем. Представляю вольный перевод статьи Onur Güzel [«How to Run Flask Applications with Nginx Using Gunicorn»][1], где шаг за шагом показано процесс развертывания. [Читать дальше →][2]

[1]: http://www.onurguzel.com/how-to-run-flask-applications-with-nginx-using-gunicorn/
[2]: http://habrahabr.ru/post/267097/#habracut

[>] Анализ логов с помощью Hadoop/Python
habra.15
habrabot(difrex,1) — All
2015-09-17 20:30:03


Привет, Хабр! В этом посте я хотел бы рассказать вам о том, как мы, Лаборатория новых профессий, вместе с компанией Data-centric Alliance смогли сконструировать несколько лабораторных работ, посвящённых обработке и анализу веб-логов. Эти лабораторные работы являются ключевыми в рамках первого кейса нашей образовательной программы «[Специалист по большим данным][1]» и выполняются на основе аудиторных данных DMP Facetz.DCA. Меня зовут Артем Пичугин, и я являюсь её координатором. [![][2]][3]

## Задача

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

[1]: http://newprolab.com/bigdata/?utm_source=habrahabr.ru&utm_medium=social&utm_campaign=PostA.Petrova17.9.15
[2]: https://habrastorage.org/files/c9f/f4a/5b9/c9ff4a5b985144c3af9145c6faa6e4ff.png
[3]: http://habrahabr.ru/company/dca/blog/267107/
[4]: http://habrahabr.ru/post/267107/#habracut

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


![][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

[>] Публикация логов в Elasticsearch — жизнь без регулярных выражений и без logstash
habra.15
habrabot(difrex,1) — All
2015-09-18 01:00:03


![][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

[>] Игра знакомая с детства в реализации на JavaScript
habra.15
habrabot(difrex,1) — All
2015-09-18 09:00:02


![][1] Нет ничего лучше, чем вновь почувствовать себя ребенком. Воспоминания с детства зачастую самые яркие и приятные. Случайно попавшаяся на просторах интернет фотография электронной игры «Ну, погоди!» («Электроника ИМ-02») навеяла массу воспоминаний и… породила желание не просто сыграть, а еще и реализовать её (специфика профессии). Собственно, результатом и хотел бы поделиться с аудиторией хабра. [Игра «Ну, погоди!»][2] [Читать дальше →][3]

[1]: https://habrastorage.org/files/cfd/b28/025/cfdb28025ccf4aaa8625646ce897d803.jpg
[2]: http://shtange.com/catch-the-egg/
[3]: http://habrahabr.ru/post/261669/#habracut

[>] Секреты алгоритма ценообразования Airbnb
habra.15
habrabot(difrex,1) — All
2015-09-18 11:00:03


![][1] Какую бы вы назначили цену за проживание незнакомцев в вашем доме? Или сколько вы сами заплатили бы за то, чтобы пожить у кого–то? Вы заплатили бы больше или меньше, будь это спланированный отпуск или спонтанная поездка? Не так просто ответить на все эти вопросы. В своё время мы столкнулись с тем, что заставляя арендодателей и пользователей отвечать на них, мы тем самым уменьшали активную базу данных жилья. Собирая фокус–группы мы наблюдали за тем, как люди вносят своё жильё в список доступных для аренды мест на нашем портале. И большинство застревали, когда нужно было назначить стоимость. Многие начинали смотреть, какие цены установлены на жильё поблизости, открывая в браузере кучу вкладок и пытаясь сравнивать своё предложение с аналогичными. Кто–то уже приходил, имея определённую цель, может быть, чтобы немного заработать на оплату ипотеки или оплату отпуска. Такие люди устанавливали цену исходя из своих заранее обдуманных целей, без учёта реальной ситуации на рынке. А некоторые, к сожалению, просто сдавались и не указывали стоимость аренды их жилья. Мы пришли к выводу, что нужно предложить арендодателям удобный автоматизированный сервис, помогающий принять решение при назначении стоимости аренды. Разработка началась в 2012 году, и мы до сих пор его периодически дорабатываем. Этим летом мы внедрили динамическое ценообразование: ориентировочные цены пересчитываются ежедневно, исходя из текущей рыночной ситуации. Мы настроили алгоритм так, чтобы он учитывал наличие необычных, даже удивительных свойств выставляемого жилья. Также мы внедрили, уникальный, как мы считаем, механизм машинного обучения, позволяющий системе не только обучаться на своём опыте, но и, при необходимости, использовать небольшую толику «человеческой» интуиции. [Читать дальше →][2]

[1]: https://habrastorage.org/files/da6/2cd/aa0/da62cdaa0730448387e9103e698731aa.jpg
[2]: http://habrahabr.ru/post/267127/#habracut

[>] Перебор ссылок — получение данных о клиентах Portmone и Фидобанка
habra.15
habrabot(difrex,1) — All
2015-09-18 11:00:04


Идентичная проблема подбора ссылки, описанная тут "[Утечка пользовательских данных в QIWI][1]" в июле и тут "[Тинькофф банк скомпрометировал выписки по счетам клиентов?][2]" в августе, была найдена мной у украинских компаний Portmone.com и «Фидобанк» ещё раньше. Сразу скажу, что **эти проблемы уже закрыты. Однако есть другие**. Я напишу и о тех, и о других. ![image][3] ![image][4] [Читать дальше →][5]

[1]: http://habrahabr.ru/post/263109/
[2]: http://habrahabr.ru/post/265365/
[3]: https://habrastorage.org/files/af1/28f/fae/af128ffae9384d81aff5d775fcd159be.png
[4]: https://habrastorage.org/files/a62/359/435/a62359435eed4ef68a6a11217cbfe97c.jpg
[5]: http://habrahabr.ru/post/267121/#habracut

[>] [Перевод] ES6 в деталях: прокси
habra.15
habrabot(difrex,1) — All
2015-09-18 16:30:04


Ряд публикаций Джейсона Орендорфа ES6 In Depth посвящен ES6, который добавили в язык программирования JavaScript в 6 итерации ECMAScript. Сегодня будем делать такие штуки:

var obj = new Proxy({}, {
get: function (target, key, receiver) {
console.log(`getting ${key}!`);
return Reflect.get(target, key, receiver);
},
set: function (target, key, value, receiver) {
console.log(`setting ${key}!`);
return Reflect.set(target, key, value, receiver);
}
});


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

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

[>] Security Week 38: Атака на роутеры Cisco, баг в AirDrop, арест криптобарыг
habra.15
habrabot(difrex,1) — All
2015-09-18 16:30:04


![][1]«Жизнь трех миллиардов людей оборвалась 29 августа 1997 года. Выжившие в ядерном огне назвали этот день судным. Но им предстояло пережить новый кошмар: войну против машин» Не совсем. В 1997 году разработали самый первый стандарт для сетей WiFi (802.11b), Стив Джобс вернулся в Apple, придумали формат PNG, компьютер обыграл в шахматы человека. А вот судного дня не произошло, чего нет, того нет. Машины не настолько развились, чтобы его устроить. До настоящего искусственного интеллекта им далеко и сейчас, но это не значит, что за 18 лет ничего не изменилось. Очень даже. Если трактовать понятие «роботы» широко и за пределами голливудских рамок, то их сейчас вокруг нас — тьма, и локальные армагеддоны происходят каждый день, то здесь, то там. Благодаря тому, что роботы, созданные для того, чтобы людям было удобнее жить, все чаще выходят из-под контроля. Не сами, просто их кто-то когда-то не очень качественно создал, вот и все. В сегодняшнем дайджесте новостей — три темы о том, какие ошибки допускают люди при создании (программных) роботов, как другие люди эксплуатируют эти недостатки, и что за это людям бывает. Конец света не обещаю, но уровень опасности — коралловый, с оттенками тыквенного. Традиционные правила: каждую неделю редакция новостного сайта [Threatpost][2] выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти [тут][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/fbf/6b9/3c8/fbf6b93c8bd64682bc90d30abcb0175d.jpg
[2]: https://threatpost.ru/
[3]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[4]: http://habrahabr.ru/post/267117/#habracut

[>] Бэкдор SYNful Knock для атаки на маршрутизаторы: в чем проблема и как защититься
habra.15
habrabot(difrex,1) — All
2015-09-18 16:30:04


[![][1] ][2] Представители компании Mandiant (принадлежит FireEye) на этой неделе [опубликовали][3] результаты исследования безопасности маршрутизаторов Cisco. Им удалось обнаружить бэкдор, с помощью которых злоумышленники могут осуществлять ранее неизвестные атаки и собирать большие объёмы конфиденциальных данных, не привлекая к себе внимания. [Читать дальше →][4]

[1]: https://habrastorage.org/files/6f2/5b4/a23/6f25b4a23bc146879468c9b9d9c0ce97.jpeg
[2]: http://habrahabr.ru/company/pt/blog/267141/
[3]: https://www.fireeye.com/blog/threat-research/2015/09/synful_knock_-_acis.html
[4]: http://habrahabr.ru/post/267141/#habracut

[>] [Из песочницы] Настройка SCST Target на CentOS 7 с использованием FC QLogic адаптера
habra.15
habrabot(difrex,1) — All
2015-09-18 16:30:04




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

В моей инфраструктуре в числе прочего работают три ESXi 5.5 сервера, подключенных к SAN HP MSA1000 (железяке уже в районе 10 лет) по оптике через свитч HP StorageWorks 2/8q, с использованием адаптеров QLogic QLA200. Разумеется, хранилище очень производительное, но также и очень скромное по объему. Так как виртуализация нынче — тренд, возникло непреодолимое желание получить реально большое хранилище, также подключенное по оптике с блочным доступом. Не буду обьяснять, почему именно блочным – холивары на эту тему начались еще на Ноевом Ковчеге, и это не относится к предмету данной статьи. Ну и как это всегда бывает, бюджет даже близко не позволяет прикупить некое брендовое решение, поэтому остается только становиться героем программы «Очумелые ручки». [Читать дальше →][1]

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

[>] Корпоративный VPN c ACCEL-PPP+IPsec и авторизацией в Freeradius через AD
habra.15
habrabot(difrex,1) — All
2015-09-18 16:30:04


![][1] В этой заметке я хочу показать пример быстрой реализации корпоративного VPN сервера с поддержкой PPTP, L2TP (как с IPsec так и без), IPSec vpn с единой базой, который сможет работать с пулами адресов, разными группами пользователей, авторизировать пользователей как из LDAP, так и из локальной базы, опциональная настройка шейпирования как для групп, так и для отдельных пользователей с поддержкой windows, linux, osx, ios, android клиентов и все это на открытых решениях. P.S. В данной заметке аспекты сетевой безопасности затронуты не будут, иначе она разрастется в огромный документ, с кучей нюансов в реализации, возможно о защите периметра и сетевой безопасности отдельно расскажу в следующий раз. Кому интересно, добро пожаловать под кат. [Читать дальше →][2]

[1]: https://habrastorage.org/files/e83/37e/d75/e8337ed75b7247bdae0d3f4f0b4b0497.jpg
[2]: http://habrahabr.ru/post/267103/#habracut

[>] Игра для РЖД: complete story
habra.15
habrabot(difrex,1) — All
2015-09-18 17:00:02


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

[1]: https://cdn.pbrd.co/images/Ji93J9V.png
[2]: http://kanobu.ru/special/rzd/
[3]: http://gameofbombs.com/demos/railroad/v3/
[4]: http://habrahabr.ru/post/267179/#habracut

[>] Python 3.5; async/await
habra.15
habrabot(difrex,1) — All
2015-09-18 18:00:03


Тихо и незаметно (с), [вышел Python версии 3.5][1]! И, безусловно, одно из самых интересных нововведений релиза является новый синтаксис определения сопрограмм с помощью ключевых слов **async/await**, далее в статье об этом. Поверхностный просмотр [«PEP 0492 — Coroutines with async and await syntax»][2] по началу оставил у меня вопрос «Зачем это надо». Сопрограммы удовлетворительно реализуются на расширенных генераторах и на первый взгляд может показаться, что все свелось к замене **yield from** на **await**, а декоратора, создающего сопрограмму на **async**. Сюда можно добавить и возникающее ощущение, что все это сделано исключительно для использования с модулем **asyncio**. **_Но это, конечно же, не так, тема глубже и интереснее._** [Читать дальше →][3]

[1]: https://docs.python.org/3.5/whatsnew/3.5.html
[2]: https://www.python.org/dev/peps/pep-0492/
[3]: http://habrahabr.ru/post/266743/#habracut

[>] Курс «Основы эффективной работы с технологиями Wolfram». Занятие 2.2: Задание функций, работа со списками, шаблонными выражениями и ассоциациями
habra.15
habrabot(difrex,1) — All
2015-09-18 18:00:03








### Содержание

Списки ⋅⋅⋅ Список \{...\} и функция [List][1][...] ⋅⋅⋅ «Естественное» отображение списков ⋅⋅⋅ Способы генерирования списков ⋅⋅⋅ Индексация элементов и некоторые числовые характеристики списка. Функции [Length][2] и [Depth][3] ⋅⋅⋅ Вычленение элементов, занимающих определенные места в списке, с помощью функции [Part][4] (\[[...]]) ⋅⋅⋅ Переобозначение элементов списка ⋅⋅⋅ Генерирование списка с помощью функции [Table][5] ⋅⋅⋅ Генерирование списка чисел с помощью функции [Range][6] Ассоциации ⋅⋅⋅ Задание ассоциации и работа с ней ⋅⋅⋅ [Dataset][7] — формат баз данных в Wolfram Language Шаблонные выражения ⋅⋅⋅ Введение в шаблоны ⋅⋅⋅ Базовые шаблоны объектов: [Blank][8] (\_), [BlankSequence][9] (\_\_), [BlankNullSequence][10] (\_\_\_) ⋅⋅⋅ Что можно сделать с помощью шаблонов? Функция [Cases][11] ⋅⋅⋅ Определение типа выражения в шаблоне ⋅⋅⋅ Наложение ограничений на шаблоны с помощью функций [Condition][12] (/;), [PatternTest][13] (?), [Except][14], а также применение тестовых функций ⋅⋅⋅ Создание шаблонов, имеющих возможность альтернативного выбора с помощью функции [Alternatives][15] (|) Функции ⋅⋅⋅ Применение отсроченного присваивания [SetDelayed][16] (:=) ⋅⋅⋅ Применение абсолютного присваивания [Set][17] (=) ⋅⋅⋅ Задание функции, которая помнит значения, которые она уже находила и рекуррентной функции ⋅⋅⋅ Атрибуты функций и функции [Attributes][18], [SetAttributes][19], [ClearAttributes][20]​, [Protect][21]​, [Unprotect][22]​для работы с ними Чистые функции ⋅⋅⋅ Применение функции [Function][23] (&) ⋅⋅⋅ Где используются чистые функции? [Читать дальше →][24]

[1]: http://reference.wolfram.com/language/ref/List.html
[2]: http://reference.wolfram.com/language/ref/Length.html
[3]: http://reference.wolfram.com/language/ref/Depth.html
[4]: http://reference.wolfram.com/language/ref/Part.html
[5]: http://reference.wolfram.com/language/ref/Table.html
[6]: http://reference.wolfram.com/language/ref/Range.html
[7]: http://reference.wolfram.com/language/ref/Dataset.html
[8]: http://reference.wolfram.com/language/ref/Blank.html
[9]: http://reference.wolfram.com/language/ref/BlankSequence.html
[10]: http://reference.wolfram.com/language/ref/BlankNullSequence.html
[11]: http://reference.wolfram.com/language/ref/Cases.html
[12]: http://reference.wolfram.com/language/ref/Condition.html
[13]: http://reference.wolfram.com/language/ref/PatternTest.html
[14]: http://reference.wolfram.com/language/ref/Except.html
[15]: http://reference.wolfram.com/language/ref/Alternatives.html
[16]: http://reference.wolfram.com/language/ref/SetDelayed.html
[17]: http://reference.wolfram.com/language/ref/Set.html
[18]: http://reference.wolfram.com/language/ref/Attributes.html
[19]: http://reference.wolfram.com/language/ref/SetAttributes.html
[20]: http://reference.wolfram.com/language/ref/ClearAttributes.html
[21]: http://reference.wolfram.com/language/ref/Protect.html
[22]: http://reference.wolfram.com/language/ref/Unprotect.html
[23]: http://reference.wolfram.com/language/ref/Function.html
[24]: http://habrahabr.ru/post/267185/#habracut

[>] О безопасности UEFI. Часть вторая
habra.15
habrabot(difrex,1) — All
2015-09-18 20:00:03


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

[1]: https://habrastorage.org/files/8aa/ea6/135/8aaea61356364273b9779501dc8fb2ed.jpg
[2]: http://habrahabr.ru/post/266935/
[3]: http://habrahabr.ru/post/267197/#habracut

[>] О безопасности UEFI, часть вторая
habra.15
habrabot(difrex,1) — All
2015-09-18 22:30:02


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

[1]: https://habrastorage.org/files/8aa/ea6/135/8aaea61356364273b9779501dc8fb2ed.jpg
[2]: http://habrahabr.ru/post/266935/
[3]: http://habrahabr.ru/post/267197/#habracut

Pages: 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ... 37