RSS
Pages: 1 ... 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
[>] [Из песочницы] Как мы организовали мини-провайдер в поселке
habra.14
habrabot(difrex,1) — All
2015-04-24 02:00:02


Переехав по работе на Крайний Север столкнулся с проблемой отсутствия нормального интернета (сотовые операторы не в счет, ибо все равно не устраивает). Потыкавшись пару недель с поиском WiFi сетей по соседству, нашел доброго человека, который решил организовать какое-то подобие провайдера с раздачей интернета всем желающим по WiFi. Но у этого человека не было знаний и опыта по настройке сетей и, как следствие, сеть была построена не очень хорошо. Переговорив, мы решили объединиться. У меня худо-бедно есть опыт по настройке серверов под \*nix и построения сетей, у него оборудование и 2-3 канала в интернет через соседей и их ADSL-модемы. [Читать дальше →][1]

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

[>] [Из песочницы] Скрипт для резервного копирования EC2-instance в AMI
habra.14
habrabot(difrex,1) — All
2015-04-24 12:00:02


Всем привет. Хочу поделиться скриптом для $subj. Возможно, кому-то он окажется полезен. Постановка задачи: есть некоторое количество EC2-серверов в AWS, разбросанных по разным регионам. Требуется автоматизировать их резервное копирование так, чтобы восстановление было легким и быстрым. [Читать дальше →][1]

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

[>] Проверка операционной системы Haiku (семейство BeOS) c помощью PVS-Studio. Часть 2
habra.14
habrabot(difrex,1) — All
2015-04-24 12:00:02


![][1] Это заключительная статья о проверке операционной системы Haiku. В [первой статье][2] были собраны возможные ошибки различных типов диагностик, но так или иначе связанных с проверкой условий. В этой статье будут представлены оставшиеся предупреждения анализатора, о которых я хотел бы рассказать. Собранные примеры разделены на несколько групп. [Haiku][3] — свободная операционная система для персональных компьютеров, которая нацелена на двоичную совместимость с операционной системой BeOS. Haiku воплощает в себе основные идеи BeOS. Это модульная система, архитектурно решённая как гибридное ядро: микроядерная архитектура, способная динамически подгружать необходимые модули. Проект проверялся по просьбе сообщества пользователей Haiku с помощью [PVS-Studio 5.24][4]. [Читать дальше →][5]

[1]: http://habrastorage.org/getpro/habr/post_images/b5c/a3f/a72/b5ca3fa729424a862852e149dc855578.png
[2]: http://habrahabr.ru/company/pvs-studio/blog/256347/
[3]: http://www.viva64.com/go.php?url=1530
[4]: http://www.viva64.com/ru/pvs-studio/
[5]: http://habrahabr.ru/post/256525/#habracut

[>] Яндекс выпустил антивирус для сайтов — Manul
habra.14
habrabot(difrex,1) — All
2015-04-24 13:00:02


Поиск Яндекса ежесуточно показывает людям больше 8M предупреждений о том, что страница, на которую они хотят перейти, заражена. Часто владелец сайта вспоминает о том, что он может быть атакован вирусом, только тогда, когда худшее уже случилось, трафик упал, и пользователи успели заразиться. Чтобы вебмастера могли как можно быстрее реагировать на проблемы, мы уже несколько лет рассылаем предупреждения о заражении в [Яндекс.Вебмастере][1]. В них мы даём подробные инструкции, что нужно делать, а в самых сложных случаях вебмастерам помогает наша служба поддержки. [![][2]][3] Однако всегда хочется лучшего. Одна из главных проблем, с которыми мы сталкиваемся при общении с владельцами зараженных сайтов, — это поиск источника заражения на стороне сервера. У Яндекса, который каждые сутки размечает тысячи сайтов как зараженные вирусом и опасные для устройств человека, есть регулярно обновляемая база вирусов. И у нашей команды появилась идея, выросшая в большой проект, – антивирус для сайтов. Так мы создали [Manul][4], который решили выложить [в open source][5]. Это утилита, которая поможет вебмастеру понять, что произошло с сайтом и вылечить его. Под катом я расскажу подробнее о том, как он устроен и какие проблемы решает. [Читать дальше →][6]

[1]: https://webmaster.yandex.ru
[2]: //habrastorage.org/files/c4f/2f5/699/c4f2f56997f249e2b4ed2454a37fdfdb.jpg
[3]: http://habrahabr.ru/company/yandex/blog/256463/
[4]: http://yandex.ru/promo/manul
[5]: https://github.com/antimalware/manul/
[6]: http://habrahabr.ru/post/256463/#habracut

[>] Prototype this или полезный функционал быстрее чашки кофе
habra.14
habrabot(difrex,1) — All
2015-04-24 16:00:02


Сегодня я хочу рассказать о возможностях быстрого прототипирования, реализованных в [платформе Ultima Businessware][1]. Я покажу, как быстро набросать реализацию тривиального процесса (будут слайды!), расскажу как можно сократить время разработки и улучшить масштабируемость процесса разработки. Ну и заодно немного пройду по всяким мелким «плюшечкам» системы про которые я упоминал в прошлых статьях. За подробностями — прошу под кат. ![][2] [Читать дальше →][3]

[1]: http://www.ultimabusinessware.com/
[2]: //habrastorage.org/files/e18/3db/d6d/e183dbd6df6b4dbe9f73b4f2f043564c.jpg
[3]: http://habrahabr.ru/post/256527/#habracut

[>] Ищем название для открытого проекта
habra.14
habrabot(difrex,1) — All
2015-04-24 16:00:02


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

[1]: http://habrastorage.org/files/53f/eab/4a1/53feab4a135c4449b63d819dcd30802f.jpg
[2]: http://habrahabr.ru/post/256549/#habracut

[>] Где взять полтора миллиона на стартап по кибербезопасности
habra.14
habrabot(difrex,1) — All
2015-04-24 16:00:02


На рынке информационной безопасности сейчас очень интересное время. В первом квартале 2015 года американские стартап-проекты, работающие в области ИБ, привлекли $1,02 млрд инвестиций, тогда как за весь 2011 год сумма была менее $1 млрд. Инвестиционные фонды и венчурные подразделения компаний все активнее ищут новые проекты в ожидании резкого увеличения бюджетов, выделяемых на безопасность, [отмечает][1] Financial Times со ссылкой на исследование PrivCo. Причин для столь бурного роста более чем достаточно, и все о них наслышаны. Хакерские атаки на Sony Pictures и Home Depot, «фотоскандалы» Apple, потеря доверия к Bitcoin, появление в 2014 году «уязвимостей века» Heartbleed и Shellshock, а также естественное после такого хаоса ужесточение требований регуляторов почти во всех ведущих странах. По [прогнозам][2] аналитиков Gartner, в 2015 году расходы на информационную безопасность увеличатся на 8,2% и составят $76,9 млрд. Сумма значительная, но и причины для этого не менее существенные. Хакерские атаки лишили Sony Pictures $100 млн, а ущерб шестого ритейлера США, компании Target, расценивается в $162 млн. В случае c американским дискаунтером оружием послужила программа KAPTOXA (позже переименованная в BlackPOS). [![][3]][4] Большинство идей по защите информации, на которые обратили внимание инвесторы за последние пару лет, крутятся вокруг облачной и мобильной безопасности, а также технологий поведенческого анализа, как [отмечает][5] обозреватель Dark Reading Эрика Чиковски (Ericka Chickowski). [Читать дальше →][6]

[1]: http://www.ft.com/intl/cms/s/0/5cfcbcbc-e692-11e4-afb7-00144feab7de.html#axzz3XotRG3CR
[2]: http://www.gartner.com/newsroom/id/2828722
[3]: //habrastorage.org/files/6fe/e66/644/6fee666444ec4b7b8960d7b5b1191ba0.jpg
[4]: http://habrahabr.ru/company/pt/blog/256461/
[5]: http://www.darkreading.com/attacks-breaches/slide-show-20-security-startups-to-watch/d/d-id/1141251?page_number=1
[6]: http://habrahabr.ru/post/256461/#habracut

[>] [recovery mode] Запись вебинара: «Способы защиты информации на базе Azure, Backup (Microsoft, Veeam, BackupExec) и Azure Site Recovery»
habra.14
habrabot(difrex,1) — All
2015-04-24 16:00:02


Продолжаем публиковать серию вебинаров о технологиях Microsoft, в этом вебинаре рассмотрены такие темы:

* Microsoft Azure — Обзор облачного ЦОДа
* Сколько стоит использование Microsoft Azure
* Защита информации обзор наиболее распространенных решений на базе Veeam, BackupExec
* Преимущества защиты информации с помощью Microsoft Azure Backup
* Azure Site Recovery — новое направление в защите бизнеса






Прошлый вебинар: [Виртуализация на базе Hyper-V 3.0 и Windows Server 2012R2 Virtual Desktop Infrastructure][1]

----

Приглашаем 29 апреля на следующий вебинар из этой серии, тема: "[Удаленная работа пользователей: Windows Server 2012R2 RDS и Azure RemoteApp][2]". Под катом подробности. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/muk/blog/255679/
[2]: http://training.muk.ua/news/7003/
[3]: http://habrahabr.ru/post/256437/#habracut

[>] [Перевод] Поиск ошибок в облаке с научной точки зрения: нежданное приключение CEO
habra.14
habrabot(difrex,1) — All
2015-04-24 16:00:02






_Перевод поста Стивена Вольфрама (Stephen Wolfram) [«Scientific Bug Hunting in the Cloud: An Unexpected CEO Adventure»][1]. Выражаю огромную благодарность [Кириллу Гузенко][2] за помощь в переводе._

## Wolfram Cloud должен быть совершенным

[Wolfram Cloud][3] в самом скором времени выйдет из стадии бета-тестирования, в данный момент я трачу очень много времени на то, чтобы сделать эту систему как можно лучше (и, стоит заметить, получается действительно здорово!). В основном я занимаюсь высокоуровневыми функциями и стратегией. Но мне нравится контролировать процесс на всех уровнях, ведь, как CEO, я полностью отвечаю за все, что происходит в моей компании. И вот в начале марта я оказался погруженным в то, о чём никак не мог догадываться ранее. Собственно, вот о чем речь. Как серьезная производственная система, которую многие люди будут использовать в том числе и для бизнеса, Wolfram Cloud должен работать как можно быстрее. Показатели говорили о том, что скорость достаточно хороша, но чисто субъективно чувствовалось, что что-то не так. Иногда всё было действительно быстро, но иногда казалось, что все работает слишком медленно. В нашей команде есть отличные программисты, однако шли месяцы, и какие-бы то ни было изменений не ощущалось. А тем временем мы успели выпустить Wolfram Data Drop (см. статью на Хабрахабре [«Wolfram Data Drop — новый сервис Wolfram Research»][4]). Так что я подумал, почему бы мне самому не провести несколько тестов, возможно, и собрать немного информации в наш новый Wolfram Data Drop? Существенное преимущество [Wolfram Language][5] заключается в том, насколько он хорош для занятых людей: даже если у Вас есть время только чтобы напечатать всего несколько строк кода (см. статью на Хабрахабре "[Компания Wolfram Research открыла сервис Tweet-a-Program: интересных программ на языке Wolfram Language, длина которых не превышает 140 символов][6]"), Вы сможете получить что-то действительно полезное. И, в данном случае, мне достаточно было просмотреть три строчки кода, чтобы найти проблему. Сперва я развернул [web API][7] для простой программы на Wolfram Language в Wolfram Cloud: [Читать дальше →][8]

[1]: http://blog.wolfram.com/2015/04/16/scientific-bug-hunting-in-the-cloud-an-unexpected-ceo-adventure/
[2]: http://vk.com/ld742
[3]: http://www.wolfram.com/cloud/
[4]: http://habrahabr.ru/company/wolfram/blog/253873/
[5]: http://www.wolfram.com/language/
[6]: http://habrahabr.ru/company/wolfram/blog/237359/
[7]: http://reference.wolfram.com/language/guide/CreatingAnInstantAPI.html
[8]: http://habrahabr.ru/post/256521/#habracut

[>] [Перевод] Обновление #длямобильных уже в действии. Отвечаем на ваши вопросы
habra.14
habrabot(difrex,1) — All
2015-04-24 18:30:02


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

[1]: http://habrahabr.ru/company/google/blog/250089/
[2]: http://habrastorage.org/getpro/habr/post_images/583/b9a/68f/583b9a68f17ef8e4a9306c25aaaabe33.png
[3]: http://habrahabr.ru/post/256539/#habracut

[>] [Из песочницы] CTB-Locker. Мы решили платить
habra.14
habrabot(difrex,1) — All
2015-04-24 19:00:02


![][1] CTB Locker — очень хорошо продуманный и опасный вирус. Писать о нем не буду — информации об этом вирусе в интернете очень много. За последние 3 месяца некоторые наши клиенты поймали этого зверя, несмотря на предупреждения, обновленные корпоративные антивирусы и прочие решения защиты. У некоторых страдала отдельная рабочая машина, у других — сервер терминалов. Но средства резервного копирования всех спасали. Последнее заражение одного из клиентов привело к потере большого количества данных, а также некоторых резервных копий. Ответственность за это лежала на клиенте — финансирование на расширение сервера резервного копирования не могли выделить пол года. Но суть не в этом. Нам поставили задачу платить создателям вируса (и тут финансирование резко нашлось). Я не агитирую пользователей сообщества платить злоумышленникам (я противник этого), но, возможно, этот небольшой мануал кому-то поможет. Далее я опишу пошагово, как платил плохим людям за расшифровку клиентских данных. [Читать дальше →][2]

[1]: //habrastorage.org/files/2d8/150/fb0/2d8150fb0f434966858f9f6499911401.jpg
[2]: http://habrahabr.ru/post/256573/#habracut

[>] Prototype this Или полезный функционал быстрее чашки кофе
habra.14
habrabot(difrex,1) — All
2015-04-24 20:30:02


Сегодня я хочу рассказать о возможностях быстрого прототипирования, реализованных в [платформе Ultima Businessware][1]. Я покажу, как быстро набросать реализацию тривиального процесса (будут слайды!), расскажу как можно сократить время разработки и улучшить масштабируемость процесса разработки. Ну и заодно немного пройду по всяким мелким «плюшечкам» системы про которые я упоминал в прошлых статьях. За подробностями — прошу под кат. ![][2] [Читать дальше →][3]

[1]: http://www.ultimabusinessware.com/
[2]: //habrastorage.org/files/e18/3db/d6d/e183dbd6df6b4dbe9f73b4f2f043564c.jpg
[3]: http://habrahabr.ru/post/256527/#habracut

[>] Легкие потоки в Embox
habra.14
habrabot(difrex,1) — All
2015-04-24 23:30:02


![][1] Сегодня, как и обещала, я продолжу тему планирования легких сущностей, которую уже начала в своем цикле статей. В нем я рассказала о внутреннем устройстве [tasklet][2], [workqueue][3] и [protothread][4]. Конечно, тема не ограничивается лишь этими примерами: есть еще FreeRTOS с ее [coroutine][5], или [GNU Portable threads][6]; или можно отойти от структур и библиотек, применяющихся в ОС, и вспомнить различные green threads, которых становится все больше и больше. На этот раз я хочу поделиться тем, как мы реализовали легкие потоки в проекте [Embox][7]. С одной стороны мы постарались учесть опыт предыдущих разработок, с другой — привнести что-то новое. [Мышь Embot не несет ответственности за код в статье][8]

[1]: //habrastorage.org/files/334/427/c23/334427c23bd54f46ba40343bfe35bad9.png
[2]: http://habrahabr.ru/company/embox/blog/244071/
[3]: http://habrahabr.ru/post/244155/
[4]: http://habrahabr.ru/post/244361/
[5]: http://www.freertos.org/croutine.html
[6]: http://www.gnu.org/software/pth/
[7]: https://github.com/embox/embox
[8]: http://habrahabr.ru/post/256565/#habracut

[>] Классификация предложений с помощью нейронных сетей без предварительной обработки
habra.14
habrabot(difrex,1) — All
2015-04-25 23:00:02


Довольно часто встречается задача классификации текстов — например, определение тональности (выражает ли текст позитивное мнение или отрицательное о чем-либо), или разнесения текста по тематикам. На Хабре уже есть хорошие[ статьи с введением в данный вопрос][1]. Сегодня я хочу поговорить о проблеме классификации отдельных предложений. Решение этой задачи позволяет делать много интересного, например, выделять положительные и отрицательные моменты из длинных текстов, определять тональность твитов, является компонентом многих систем отвечающих на естественно-языковые вопросы (классификация типа вопроса), помогает сегментировать веб-страницы на смысловые блоки и многое другое. Однако, классификация отдельных предложений значительно сложнее классификации больших блоков текста — в одном предложении значительно меньше полезных признаков, и велико влияние порядка слов. Например: «как положено фильму ужасов, этот фильм был ну очень жутким» — содержит негативные слова («ужас», «жуткий»), но выражает положительное мнение о фильме, «все было ужасно красиво», или даже «отличный фильм, ничего не скажешь, только зря деньги потратили». [Читать дальше →][2]

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

[>] [Перевод] C#: коллекции только для чтения и LSP
habra.14
habrabot(difrex,1) — All
2015-04-26 05:30:02


Часто разработчики утверждают, что read-only коллекции в .NET нарушают [принцип подстановки Барбары Лисков][1]. Так ли это? Нет, это не так, потому что IList интерфейс содержит флаг IsReadOnly. Исключением является класс Array, он действительно нарушает LSP принцип начиная с версии .NET 2.0. Но давайте разберемся во всем по порядку. [Читать дальше →][2]

[1]: https://ru.wikipedia.org/wiki/Принцип_подстановки_Барбары_Лисков
[2]: http://habrahabr.ru/post/256605/#habracut

[>] Релиз Debian Jessie 8.0
habra.14
habrabot(difrex,1) — All
2015-04-26 09:30:03


Выпущен релиз Debian под кодовым названием Jessie.![][1]

> Debian 8.0 Jessie has been released!: There's a new sheriff in town. And her name is Jessie. We're happy to a...
>
> — The Debian Project (@debian)
>
> [26 апреля 2015][2]

Новый релиз содержит намного больше программ, чем его предшественник Wheezy — добавлено больше 12 000 пакетов, а всего в этом выпуске больше 43 500 пакетов. К тому же большая часть пакетов — больше 24 500 — была обновлена (это примерно 66% от пакетной базы Wheezy). Еще 5441 пакет был удалён по разным причинам. Официальный дистрибутив Debian теперь занимает от 9 до 10 DVD или от 61 до 69 CD (в зависимости от архитектуры) с собранными пакетами, и 8 DVD или 46 CD дисков занимают пакеты с исходным кодом. Также доступна мультиархитектурная версия дистрибутива на DVD, включающая архитектуры amd64, i386 и исходный код. Кроме этого Debian выпущен в виде образов Blu-ray, по два образа для архитектур [amd64][3] и [i386][4] на каждый и два для [исходного кода][5]. Из-за размеров, очень большие пакеты не попали в сборки для CD; эти пакеты есть на DVD и BD. [Подробности][6]

[1]: //habrastorage.org/files/a42/3e3/132/a423e3132e724579acf37c604af8b2c9.png
[2]: https://twitter.com/debian/status/592141404496769027
[3]: http://cdimage.debian.org/debian-cd/8.0.0/amd64/jigdo-bd/
[4]: http://cdimage.debian.org/debian-cd/8.0.0/i386/jigdo-bd/
[5]: http://cdimage.debian.org/debian-cd/8.0.0/source/jigdo-bd/
[6]: http://habrahabr.ru/post/256617/#habracut

[>] Алгоритм Quickhull для нахождения выпуклой оболочки
habra.14
habrabot(difrex,1) — All
2015-04-26 16:30:02


Как гласит определение, _выпуклая оболочка_ некоторого множества ![][1] — это наименьшее выпуклое множество ![][2], содержащее в себе это множество ![][3]. Выпуклой оболочкой конечного множества попарно различных точек является многогранник. Для реализации одномерного случая алгоритма Quickhull годится функция [_std::minmax\_element_][4]. В сети можно найти множество реализаций алгоритма Quickhull для плоского случая. Однако, для случая произвольной размерности сходу находится лишь одна тяжёловесная реализация с сайта [qhull.org][5]. [Читать дальше →][6]

[1]: //habrastorage.org/files/eeb/2cf/9be/eeb2cf9be1334810ace291fafe932336.png
[2]: //habrastorage.org/files/287/2d8/d4e/2872d8d4ee9b4bab8c26925725f47cf4.png
[3]: //habrastorage.org/files/eeb/2cf/9be/eeb2cf9be1334810ace291fafe932336.png
[4]: http://en.cppreference.com/w/cpp/algorithm/minmax_element
[5]: http://qhull.org/
[6]: http://habrahabr.ru/post/245221/#habracut

[>] Exposable-паттерн. Независимые инжекции путём экспанирования
habra.14
habrabot(difrex,1) — All
2015-04-26 22:30:02


_Disposable_ паттерн (интерфейс _IDisposable_) предполагает возможность высвобождения некоторых ресурсов, занимаемых объектом, путём вызова метода _Dispose_, ещё до того момента, когда все ссылки на экземпляр будут утрачены и сборщик мусора утилизирует его (хотя для надёжности вызов _Dispose _часто дублируется в финализаторе). Но существует также обратный _Exposable_ паттерн, когда ссылка на объект становится доступной до момента его полной инициализации. То есть экземпляр уже присутствует в памяти, частично проинициализирован и другие объекты ссылаются на него, но чтобы окончательно подготовить его к работе, нужно выполнить вызов метода _Expose_. Опять же данный вызов допустимо выполнять в конструкторе, что диаметрально вызову _Dispose_ в финализаторе. Само по себе наличие такой обратной симметрии выглядит красиво и естественно, но где это может пригодиться на практике постараемся раскрыть в этой статье. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/b24/129/b82/b24129b82a9e42fba40fddb01381c2dc.png
[2]: http://habrahabr.ru/post/256629/#habracut

[>] Контейнер в linux, linux в egg, egg в python
habra.14
habrabot(difrex,1) — All
2015-04-26 22:30:02


![tux in egg in python][1] Hello, \{\{username\}\} Я DevOps и очень люблю Linux. Понятное дело, что с такой связкой я просто не мог не полюбить LinuX Containers (тем более, что BSD и Solaris давно радуют аналогичными возможностями своих пользователей). Естественно, бизнес тоже увидел привлекательную возможность и программы для управления контейнерами стали расти и множиться: [docker ][2], [rocket][3], [vagga][4], [lxc][5], [systemd-nspawn][6], etc… Docker стал стандартом де-факто в первую очередь благодаря системе создания и доставки контента. Но главный демон докера запускается от root, и, на мой взгляд, это минус этого проекта ([Пруф][7]). Rocket и vagga пошли другим путем, и путь этот носит название unprivileged containers. Вам больше не нужны root привилегии, чтобы запустить процесс в новых namespaces, и это открывает интересные перспективы для построения тестовых площадок и безопасного окружения. Но во всех этих проектах есть один фатальный недостаток: они все написаны с использованием c, go и rust, а я люблю python и не могу поучаствовать в их разработке. Согласитесь, довольно обидно пропускать все веселье. Так что под катом вас ждет библиотека для запуска процессов в новых [linux user namespaces][8]: [Читать дальше →][9]

[1]: http://habrastorage.org/getpro/habr/post_images/1e9/487/009/1e948700995555f0c7512350c77ab485.jpg
[2]: https://github.com/docker/docker
[3]: https://github.com/coreos/rkt
[4]: https://github.com/tailhook/vagga
[5]: https://linuxcontainers.org
[6]: https://wiki.archlinux.org/index.php/Systemd-nspawn
[7]: https://fosterelli.co/privilege-escalation-via-docker.html
[8]: http://man7.org/linux/man-pages/man7/user_namespaces.7.html
[9]: http://habrahabr.ru/post/256647/#habracut

[>] Генетический алгоритм для решения оптимизационной задачи размещение вершин графа на линейке
habra.14
habrabot(difrex,1) — All
2015-04-26 23:30:02


_В данной работе рассматривается решение оптимизационной задачи размещение вершин графа на линейке. Проведен анализ и разбор задачи. Предоставлена схема генетического алгоритма. Описаны особенности алгоритма такие как: кодирование решений, оператор рекомбинации и параметры генетического алгоритма. Были проведены экспериментальные исследование по определению эффективности предложенного алгоритма. Исследования позволяют сделать вывод, что предложенный алгоритм может находить оптимальные или квазиоптимальные решения за полиномиальное время._

# Введине

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

[1]: //habrastorage.org/files/51e/241/808/51e24180885540a98db70abe00526304.png
[2]: //habrastorage.org/files/bb8/31e/39a/bb831e39a86f47649bba49a604143ca1.png
[3]: http://habrahabr.ru/post/256645/#habracut

[>] Exposable паттерн. Независимые инжекции путём экспанирования
habra.14
habrabot(difrex,1) — All
2015-04-27 00:00:01


_Disposable_ паттерн (интерфейс _IDisposable_) предполагает возможность высвобождения некоторых ресурсов, занимаемых объектом, путём вызова метода _Dispose_, ещё до того момента, когда все ссылки на экземпляр будут утрачены и сборщик мусора утилизирует его (хотя для надёжности вызов _Dispose _часто дублируется в финализаторе). Но существует также обратный _Exposable_ паттерн, когда ссылка на объект становится доступной до момента его полной инициализации. То есть экземпляр уже присутствует в памяти, частично проинициализирован и другие объекты ссылаются на него, но, чтобы окончательно подготовить его к работе, нужно выполнить вызов метода _Expose_. Опять же данный вызов допустимо выполнять в конструкторе, что диаметрально вызову _Dispose_ в финализаторе. Само по себе наличие такой обратной симметрии выглядит красиво и естественно, но где это может пригодиться на практике постараемся раскрыть в этой статье. ![][1] [Читать дальше →][2]

[1]: //habrastorage.org/files/b24/129/b82/b24129b82a9e42fba40fddb01381c2dc.png
[2]: http://habrahabr.ru/post/256629/#habracut

[>] [Перевод] Джеф Атвуд: «Ваш пароль слишком короткий!»
habra.14
habrabot(difrex,1) — All
2015-04-27 03:00:03


Я уже устал [писать про пароли][1]. Но как и налоги, электронная почта и красные глаза, они никуда не денутся. Что я могу сказать, исходя из опыта:

* неважно, что вы скажете пользователям, они будут выбирать простые пароли
* и они будут использовать один и тот же пароль везде. Если повезёт – два пароля

Что с этим можно сделать разработчику?

* прекратите требовать пароли и разрешите авторизацию через Google, Facebook, Twitter, Yahoo или любой другой сервис. Лучший пароль – тот, который [не нужно хранить][2].
* поощряйте браузеры к поддержке автоматических встроенных систем создания и управления паролями. В идеале – поддерживаемых и операционками, но тут уже требуется всеобщая привязка к облачным технологиям. В эту сторону [двигается Chrome][3].
* пинайте юзеров, когда они вводят:
* слишком короткие пароли: UY7dFd
* пароли с минимумом энтропии: aaaaaaaaa
* пароли из словаря: anteaters1

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

[1]: https://www.google.com/webhp?ie=UTF-8#q=site:codinghorror.com+passwords
[2]: http://blog.codinghorror.com/the-god-login/
[3]: https://www.chromium.org/developers/design-documents/password-generation
[4]: http://habrahabr.ru/post/256671/#habracut

[>] [Перевод] Заглянем за кулисы разработки: подборка исходных кодов классических игр
habra.14
habrabot(difrex,1) — All
2015-04-27 08:30:03


Обожаю заглядывать за кулисы. Мне интересно, как делаются вещи. Мне кажется, что большинству людей это тоже интересно. Исторически так сложилось, что видеоигры не делятся исходниками. Конечно, они ведь предназначены для игроков. Но для программистов там всегда есть, на что посмотреть. И некоторые игры всё-таки выпускали свои исходники. А я давно намеревался сделать такую подборку. К сожалению, почти все игры – для PC. Найти исходники для консолей или аркад почти нереально, и большинство программистов не в курсе различий подходов к программам на платформах, отличных от PC. Многие игры после выпуска исходников были улучшены и дополнены сообществом – я намеренно даю ссылки только на оригинальные исходники. Так что, если вас вдруг интересуют апгрейды – они могут существовать. Многие игры были рассмотрены на [сайте Fabien Sanglard][1]. Если вам интересны подробности их работы, то пожалуйте к нему. Можно заметить, что многие игры принадлежат id Software/Apogee. Совпадение? Не думаю. id славится открытостью и привычкой выпускать исходники. Старые коммерческие игры уже не имеют ценности и были бы потеряны – не лучше ли, чтобы кто-то учился чему-то полезному на их основе? Итак, приступим (в хронологическом порядке): [Читать дальше →][2]

[1]: http://fabiensanglard.net/
[2]: http://habrahabr.ru/post/256679/#habracut

[>] Интервью с Serge
habra.14
habrabot(difrex,1) — All
2015-04-27 10:00:02


![][1] Предлагаем Вашему вниманию интервью с **Сергеем Семеновым** aka **Serge** (на Хабре [ion2][2]), одним из самых продуктивных разработчиков в проекте KolibriOS. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/332/ac0/97c/332ac097cb7bfba245943a942c69f564.png
[2]: http://habrahabr.ru/users/ion2/
[3]: http://habrahabr.ru/post/256405/#habracut

[>] Двухэтапная аутентификация в браузере с помощью USB-токена U2F
habra.14
habrabot(difrex,1) — All
2015-04-27 10:30:03


![image][1] U2F — открытый протокол универсальной 2х факторной аутентификации, разработанный [FIDO Alliance][2]. В альянс входят компании Google, PayPal, Lenovo, MasterCard, Microsoft, NXP ,Visa и другие. Протокол поддерживается браузером Chrome с версии 38. Работает из коробки без драйверов в Windows/MacOS/Linux. На текущий момент поддерживается сервисами **Google, LastPass, Wordpress**. В статье описывается опыт использования токена Yubikey NEO с поддержкой NFC и OpenPGP card, недостатки двухфакторной аутентификации по SMS. [Читать дальше →][3]

[1]: http://habrastorage.org/getpro/habr/post_images/d61/aa0/f19/d61aa0f19c311649659f925b448adf9f.jpg
[2]: https://fidoalliance.org/
[3]: http://habrahabr.ru/post/256579/#habracut

[>] Microsoft SQL Server Data Tools
habra.14
habrabot(difrex,1) — All
2015-04-27 12:30:02


В данной статье хотел бы рассказать про набор полезных дополнений к Visual Studio, которые могут в значительной мере облегчить разработку баз данных на основе MS SQL Server. Основными преимуществами использования SSDT я бы выделил следующее:

* возможность простого изменения (refactoring) схемы базы (можно переименовать колонку таблицы и все Views, Functions и Stored Procedures ссылающиеся на неё автоматически будут исправлены для отражения изменений)
* создание юнит тестов для базы данных
* хранение структуры базы данных в Source Control
* сравнение схемы/данных c возможностью генерации скрипта для приведения схемы/данных к требуемому состоянию

Безусловно на этом плюсы использования SSDT не заканчиваются, но остальное не так сильно впечатляет, как то, что упомянуто выше. Если вас интересует, как воспользоваться этими и другими преимуществами — прошу под кат. [Читать дальше →][1]

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

[>] Информационная безопасность в открытых проектах, доклад с РИФ+КИБ 2015
habra.14
habrabot(difrex,1) — All
2015-04-27 12:30:02


22—24 апреля 2015 г. в Подмосковье в 19 раз прошел РИФ+КИБ — главное весеннее мероприятие Рунета. В рамках секции «Актуальные вопросы кибербезопасности» на РИФ+КИБ 2015 эксперты обсудили тренды в области киберпреступности, а также итоги 2014 года и планы на 2015-й. Среди участников был и Алексей Брагин, который выступил со своим докладом «Информационная безопасность в открытых проектах». В 2014 году было обнаружено несколько масштабных критических уязвимостей в открытых проектах, затрагивающие миллионы компьютеров по всему миру. Например знаменитый Heartbleed, FREAK, POODLE и BEAST в библиотеке OpenSSL, обычный SQL Injection в популярной системе управления контентом Drupal. Возможно ли с этим бороться, есть ли плюсы в открытой модели разработки с точки зрения безопасности?




Улучшенный звук: [soundcloud.com/aleksey-bragin-1/2015a][1] [Читать дальше →][2]

[1]: https://soundcloud.com/aleksey-bragin-1/2015a
[2]: http://habrahabr.ru/post/256675/#habracut

[>] Функции IPP c поддержкой бордюров для обработки изображений в нескольких потоках
habra.14
habrabot(difrex,1) — All
2015-04-27 13:00:03


В результате длительного использования даже самых хороших программных продуктов постепенно выявляются те или иные их недостатки. Не стала исключением, и библиотека[ Intel Performance Primitives (IPP). ][1]К моменту выхода версии 8.0 выяснились некоторые проблемы, часть из которых относится к функциям обработки двумерных изображений. Для их решения в IPP 8.0 многие функции обработки изображений приведены к общему шаблону, позволяющему обрабатывать изображения по блокам ( _tiles_), и, следовательно, эффективно распараллеливать на уровне приложения код, содержащий вызовы IPP функций. Новый API соответствующих IPP функций поддерживает бордюры нескольких типов, не использует внутреннее выделение динамической памяти, позволяет делить изображения на фрагменты произвольного размера и обрабатывать эти фрагменты независимо; упрощает использование и повышает производительность ряда функций. В данной статье подробно рассмотрен новый API и приведены примеры использования. [Читать дальше →][2]

[1]: https://software.intel.com/en-us/intel-ipp
[2]: http://habrahabr.ru/post/255931/#habracut

[>] Может ли софтверное уничтожение данных быть лучше мощного магнита?
habra.14
habrabot(difrex,1) — All
2015-04-27 13:30:02


![][1] Привет, %username%, я уверен, что да. И в наших с тобой силах сделать это реальностью. Этот пост навеян вот [этим][2] обсуждением, где порой доходило до ксеноморфов. У нас же всё будет проще и надежней (вдруг ксеноморфа забудут покормить?) [Читать дальше →][3]

[1]: http://habrastorage.org/files/363/7d3/044/3637d3044220451ea2fb240da182aa23.jpg
[2]: http://habrahabr.ru/post/254671/
[3]: http://habrahabr.ru/post/256613/#habracut

[>] [Из песочницы] Тестирование математических алгоритмов
habra.14
habrabot(difrex,1) — All
2015-04-27 13:30:02


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

[1]: http://habrastorage.org/files/6dd/da0/d67/6ddda0d6765a4757bc8ae485aec18372.png
[2]: http://habrahabr.ru/post/256713/#habracut

[>] Анализ изображений и видео. Классификация изображений и распознавание объектов
habra.14
habrabot(difrex,1) — All
2015-04-27 14:30:02


Сегодня мы публикуем седьмую лекцию из курса «Анализ изображений и видео», прочитанного [Натальей Васильевой][1] в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS-клуба.




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

1. [Введение в курс «Анализ изображений и видео»][2];
2. [Основы пространственной и частотной обработки изображений][3];
3. [Морфологическая обработка изображений][4];
4. [Построение признаков и сравнение изображений: глобальные признаки][5];
5. [Построение признаков и сравнение изображений: локальные признаки][6];
6. [Поиск по подобию. Поиск нечетких дубликатов][7].

Под катом вы найдете план новой лекции и слайды. [Читать дальше →][8]

[1]: http://www.hpl.hp.com/people/nvassilieva/
[2]: http://habrahabr.ru/company/yandex/blog/251161/
[3]: http://habrahabr.ru/company/yandex/blog/254249/
[4]: http://habrahabr.ru/company/yandex/blog/254955/
[5]: http://habrahabr.ru/company/yandex/blog/255627/
[6]: http://habrahabr.ru/company/yandex/blog/255985/
[7]: http://habrahabr.ru/company/yandex/blog/256291/
[8]: http://habrahabr.ru/post/256459/#habracut

[>] Virtuozzo переходит на открытую модель разработки
habra.14
habrabot(difrex,1) — All
2015-04-27 15:30:03


Мы в бизнес-подразделении [Odin\*][1] компании Parallels занимаемся разработкой технологий виртуализации [с 1999 года][2]. За прошедшие 15 лет мы превратили концепт в платформу для гипервизорной и контейнерной виртуализации [Virtuozzo][3]. Всё это время параллельно с коммерческим продуктом развивался [открытый проект OpenVZ][4], в рамках которого разрабатывались компоненты для создания и управления контейнерами, а исходный код был доступен под лицензией GPL. И, несмотря на то, что проект сильно проигрывал коммерческому продукту по объёму функциональности и производительности, вокруг него сформировалось активное и открытое [сообщество пользователей][5]. Нас часто спрашивали почему процесс разработки закрыт и почему компания так недружелюбна к контрибьюторам. Принимая во внимание эти просьбы и интерес к нашим технологиями со стороны сообщества [мы открываем часть компонентов Virtuozzo][6], предоставляя доступ к исходному коду этих компонентов, и открываем процесс разработки. Это позволит всем, заинтересованным в наших технологиях, свободно использовать наши наработки и принять участие в разработке новой версии Virtuozzo. [Подробности][7]

[1]: http://odin.com/
[2]: https://openvz.org/History
[3]: http://www.odin.com/uk/products/virtuozzo/
[4]: https://openvz.org
[5]: https://openvz.org/Hosting_providers
[6]: http://lists.openvz.org/pipermail/announce/2015-April/000579.html
[7]: http://habrahabr.ru/post/256279/#habracut

[>] [Перевод] Да какого, блин, хрена, D-Link⁈
habra.14
habrabot(difrex,1) — All
2015-04-27 21:30:02


Как уже писал в апдейте к посту про [баг в HNAP DIR-890L][1], его нашли в начале года, в DIR-645, и выпустили патч. Сейчас D-Link выпустил патч и для DIR-890L. Патчи для DIR-645 и DIR-890L одинаковые, поэтому я буду писать только про DIR-890L. Хоть в предыдущем посте я рассматривал только выполнение команд, патч указывает на несколько дыр в безопасности, которые появились из-за использования `strstr` для валидации HNAP-заголовка `SOAPAction`:

* Использование неутентифицированных пользовательских данных в вызове `system`
* Использование неутентифицированных пользовательских данных в вызове `sprintf`
* Неаутентифицированные пользователи могут выполнять привилегированные HNAP-запросы (такие, как смена пароля администратора)

Видите, D-Link признала все это в информации об уязвимости, и они ясно представляли все векторы атаки. Итак, убрали ли они переполнение стека `sprintf`? [![image][2]][3] _sprintf(cmd\_buf, “sh %s%s.sh > /dev/console”, “/var/run”, SOAPAction);_ Нет. [Читать дальше →][4]

[1]: http://habrahabr.ru/post/256451/
[2]: http://habrastorage.org/getpro/habr/post_images/7e6/f6f/ebd/7e6f6febdb84c4d64e7ff9d727b65476.png
[3]: http://habrastorage.org/getpro/habr/post_images/7b4/972/d2b/7b4972d2b6e5a545722388fd385c1aa3.png
[4]: http://habrahabr.ru/post/256777/#habracut

[>] Определяем веса шахматных фигур регрессионным анализом
habra.14
habrabot(difrex,1) — All
2015-04-27 22:00:03


![][1]Здравствуй, Хабр! В этой статье речь пойдёт о небольшом программистском этюде на тему машинного обучения. Замысел его возник у меня при прохождении известного здесь многим курса[ «Machine Learning»][2], читаемого Andrew Ng на Курсере. После знакомства с методами, о которых рассказывалось на лекциях, захотелось применить их к какой-нибудь реальной задаче. Долго искать тему не пришлось — в качестве предметной области просто напрашивалась оптимизация собственного шахматного движка.

### Вступление: о шахматных программах

![][3] Не будем детально углубляться в архитектуру шахматных программ — это могло бы стать темой отдельной публикации или даже их серии. Рассмотрим только самые базовые принципы. Основными компонентами практически любого небелкового шахматиста являются _поиск_ и _оценка позиции_. Поиск представляет собой перебор вариантов, то есть итеративное углубление по дереву игры. Оценочная функция отображает набор позиционных признаков на числовую шкалу и служит целевой функцией для поиска наилучшего хода. Она применяется к листьям дерева, и постепенно «возвращается» к исходной позиции (корню) с помощью [альфа-бета процедуры][4] или её вариаций. Строго говоря, _настоящая_ оценка может принимать только три значения: выигрыш, проигрыш или ничья — 1, 0 или ½. По теореме Цермело для любой заданной позиции она определяется однозначно. На практике же из-за комбинаторного взрыва ни один компьютер не в состоянии просчитать варианты до листьев полного дерева игры (исчерпывающий анализ в эндшпильных базах данных — это отдельный случай; 32-фигурных таблиц в обозримом будущем не появится… и в необозримом, скорее всего, тоже). Поэтому программы работают в так называемой _модели Шеннона_ — пользуются усечённым деревом игры и приближённой оценкой, основанной на различных эвристиках. Поиск и оценка не существуют независимо друг от друга, они должны быть хорошо сбалансированы. Современные переборные алгоритмы давно уже не являются «тупым» перебором вариантов, они включают в себя многочисленные специальные правила, связанные в том числе и с оценкой позиции. Первые такие усовершенствования поиска появились ещё на заре шахматного программирования, в 60-х годах XX в. Можно упомянуть, например, технику _форсированного варианта (ФВ)_ — продление отдельных ветвей поиска до тех пор, пока позиция не «успокоится» (закончатся шахи и взаимные взятия фигур). Продления существенно увеличивают тактическую зоркость компьютера, а также приводят к тому, что дерево поиска становится очень неоднородным — длина отдельных ветвей может в несколько раз превышать длину соседних, менее перпективных. Другие улучшения поиска, наоборот, представляют собой _отсечения_ или _сокращения поиска_ — и здесь критерием отбрасывания плохих вариантов может, в числе прочего, служить всё та же статическая оценка. Параметризация и улучшение поиска методами машинного обучения — отдельная интересная тема, но сейчас мы оставим её в стороне. Займёмся пока только оценочной функцией. [Читать дальше →][5]

[1]: http://habrastorage.org/getpro/habr/post_images/54a/41c/ddb/54a41cddb26a65d98a05c4fcde9bf9eb.jpg
[2]: https://www.coursera.org/learn/machine-learning
[3]: http://habrastorage.org/getpro/habr/post_images/fe2/f43/090/fe2f4309061f637bb0622e6e0781c982.jpg
[4]: https://chessprogramming.wikispaces.com/Alpha-Beta
[5]: http://habrahabr.ru/post/254753/#habracut

[>] Почему вас все равно взломают
habra.14
habrabot(difrex,1) — All
2015-04-28 03:30:09


Тему этой небольшой статьи навеяла небольшая дискуссия на хабре, свидетелем которой я стал. Один участник дискуссии был ярым сторонником ОС Linux и утверждал, что если всех простых пользователей перевести на Linux, то все будет просто зашибись – и не взломают и данные не украдут. [Читать дальше →][1]

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

[>] Не очень большие данные и определение тональности текста
habra.14
habrabot(difrex,1) — All
2015-04-28 10:00:02


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

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

[>] Euphoria Module: короткометражная 3D-анимация, созданная с помощью открытого ПО
habra.14
habrabot(difrex,1) — All
2015-04-28 11:30:03







Euphoria Module — короткометражный анимационный фильм, сделанный с помощью Open Source-инструментов (за исключением некоторых сторонних ресурсов: музыка, несколько звуков, несколько текстур).

* **Blender**: моделирование, анимация, рендеринг, композитинг, монтаж видео и звука;
* **MakeHuman**: генерирование модели девушки, которая была позже «доведена» в Блендере;
* **Audacity**: создание и обработка нескольких звуковых эффектов;
* **GIMP**: всё, что связано с 2D (довольно мало в моём случае).

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

[1]: //habrastorage.org/files/af3/d16/71a/af3d1671a7344ffcaa46960766763e3b.jpg
[2]: http://habrahabr.ru/post/256683/#habracut

[>] Разбор задач 2-го квалификационного раунда Russian Code Cup 2015
habra.14
habrabot(difrex,1) — All
2015-04-28 13:00:02


![][1] В субботу 25 апреля [прошел][2] второй квалификационный раунд Russian Code Cup 2015. 3516 программистов решали задачи в течение двух часов, из них хотя бы одно правильное решение прислали **458** участников. Первым за 4 минуты и 9 секунд решил задачу A (Турникеты в метро) Машарабов Александр (map). Задачу B (Игра) за 8:48 решил Дубленных Денис (Stigius), задачу C (Палочки и шарниры) за 18:08 решил Нигматуллин Нияз (niyaz.nigmatullin). Задачу D (Числа Фибоначчи) за 1 час 5 минут и 21 секунду решил Лунев Антон (Anton\_Lunyov). А последнюю задачу E (Телепорты) за 1 час 44 минуты и 55 секунд решил Кунявский Павел (PavelKunyavskiy), который занял 1 место в рейтинге по итогам раунда. Последняя успешная попытка совершена Альбертом Саакяном за 4 секунды до конца соревнования. Все пять задач сдал только Павел Куявский. Всего участники отправили на проверку 4287 решений, на С++ их было 3145, на Java — 613. Отметим, что из 2166 решений, сданных на GNU C++, 1218 решений использует С++ 11 стандарта, а остальные все еще не применяют новые возможности языка. Правильных решений на этот раз всего 913, из них на С++ — 726, на Java — 141. [Читать дальше →][3]

[1]: //habrastorage.org/files/94d/c63/68c/94dc6368c1f9497cb81ecf6300ca46fc.jpg
[2]: http://www.russiancodecup.ru/championship/result/36/
[3]: http://habrahabr.ru/post/256719/#habracut

[>] Потери данных и простои обходятся российским компаниям более чем в 29 млрд долл
habra.14
habrabot(difrex,1) — All
2015-04-28 13:00:02


![][1] В конце прошлого года корпорация EMC опубликовала [результаты очередного международного исследования][2], посвящённого системам защиты данных. В нём приняли участие IT-руководители из различных организаций в 24 странах мира, как государственных, так и частных. С общими результатами исследования вы можете ознакомиться, скачав [отчёт][3]. А здесь мы предлагаем вашему вниманию данные, полученные по результатам опроса российских компаний (по катом много графики). [Читать дальше →][4]

[1]: //habrastorage.org/files/a02/da1/7fe/a02da17fe1af4af8b1784d8e1f5c9d54.jpg
[2]: https://www.emc.com/infographics/global-data-protection-index-global.htm
[3]: https://www.emc.com/collateral/presentation/emc-dpi-key-findings-global.pdf
[4]: http://habrahabr.ru/post/256749/#habracut

[>] [Перевод] Быстрое сшивание панорамы
habra.14
habrabot(difrex,1) — All
2015-04-28 13:00:02


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

[1]: //habrastorage.org/files/1e5/438/1cd/1e54381cd26d464eafeaf81904aad5b8.jpg
[2]: http://software.intel.com/en-us/articles/dual-camera-360-panorama-application
[3]: http://habrahabr.ru/post/256533/#habracut

[>] Реверс-инжиниринг целочисленного деления на константу
habra.14
habrabot(difrex,1) — All
2015-04-28 15:00:03


Так бывает, что иногда реверсишь код, который занимается какой-то рутиной, не предполагающей каких-то серьезных вычислений и тут внезапно умножение на большую константу (поплачем, что на хабре нет хайлайтера для асма):

mov edx, [ebp+end_of_buffer]
mov eax, [ebp+src]
mov ecx, edx
sub ecx, eax
mov edx, 80808081h
mov eax, ecx
imul edx
lea eax, [edx+ecx]
mov edx, eax
sar edx, 7
mov eax, ecx
sar eax, 1Fh
sub edx, eax
mov eax, edx


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

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

[>] [Из песочницы] Интересные заметки по C# и CLR
habra.14
habrabot(difrex,1) — All
2015-04-28 15:00:03


![][1] Изучая язык программирования C#, я сталкивался с особенностями как самого языка, так и его средой исполнения, \*некоторые из которых, с позволения сказать, «широко известны в узких кругах». Собирая таковые день за днем в своей копилке, что бы когда-нибудь повторить, чего честно сказать еще ни разу не делал до этого момента, пришла идея поделиться ими. Эти заметки не сделают ваш код красивее, быстрее и надежнее, для этого есть Стив Макконнелл. Но они определенно внесут свой вклад в ваш образ мышления и понимание происходящего. [Читать дальше →][2]

[1]: //habrastorage.org/files/54a/658/21e/54a65821eb79429db9809318771dc029.png
[2]: http://habrahabr.ru/post/256819/#habracut

[>] Car Hacking: так ли безопасны системы безопасности автомобиля?
habra.14
habrabot(difrex,1) — All
2015-04-28 15:00:03


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

[1]: //habrastorage.org/files/21b/ba2/165/21bba2165257468d82b9e5285f74881e.jpg
[2]: http://habrahabr.ru/post/256661/#habracut

[>] Особенности внедрения DLL и установки хуков в Modern-приложениях Windows 8/10
habra.14
habrabot(difrex,1) — All
2015-04-28 15:00:03


![][1]Для чего вообще нужно внедрять свои DLL-ки в чужие процессы и устанавливать там хуки? Для того, чтобы понять какие функции будет вызывать это приложение, с какими параметрами и что эти функции вернут. Таким образом мы можем понять внутреннюю логику работы этого приложения, узнать к каким файлам оно пытается получить доступ, какие данные пересылает по сети, мы можем добавить в него логирование, профилирование, отладить баг, получить из приложения некоторые данные или наоборот — добавить в его интерфейс что-нибудь нужное нам. Хуки использует известная утилита [Spy++][2] для работы с окнами приложений, DirectX-отладчики вроде [RenderDoc][3], некоторые утилиты от SysInternals, программы типа [ApiMonitor ][4]и т.д. Некоторое время назад я писал вводные статьи об использовании хуков на примерах библиотек [Microsoft Detours][5] и [madCodeHook][6] (если вы совсем не знакомы с хуками — это то, с чего можно начать). Описанных там техник достаточно для работы с обычными приложениями, но время не стоит на месте и вот сегодня у нас уже есть целях. [Читать дальше →][7]

[1]: //habrastorage.org/files/c4c/4e8/026/c4c4e8026191481185234a6f6490bb0c.png
[2]: https://msdn.microsoft.com/en-us/library/aa264396%28v=vs.60%29.aspx
[3]: http://habrahabr.ru/company/infopulse/blog/234619/
[4]: http://www.rohitab.com/apimonitor
[5]: http://habrahabr.ru/company/infopulse/blog/140456/
[6]: http://habrahabr.ru/company/infopulse/blog/213309/
[7]: http://habrahabr.ru/post/256829/#habracut

[>] Поклонникам китайских пионеров
habra.14
habrabot(difrex,1) — All
2015-04-28 15:30:02


Участие в различного рода мероприятиях приводит к грустному выводу: антивирус никому не интересен. Количество посетителей вендорских стендов стремится к нулю. Дошло до того, что уже не разбираются даже знаменитые подарки от Касперского. В основном подходят, чтобы сообщить о проблемах, вопросы «что нового?» и «а как?» отходят в область легенд… И это на фоне того, что большинство (по моей статистике – примерно 19 из 20) администраторов даже не подозревает о том, что они не реализовали защиту от вредоносных программ – при полной уверенности в обратном. Пример? Да легко! Краткое содержимое статьи «CTB-Locker. Мы решили платить» (http://habrahabr.ru/post/256573):

1. Клиент поймал шифровальшика.
2. Антивирус плохой, поскольку пропустил его. Нужно сменить.

На самом деле это – типичная ситуация, с которой мы как вендоры сталкиваемся постоянно. В комментариях, правда, указали, что все антивирусы пропускают. Естественно, развернулась дискуссия о методах защиты. Но что предлагали ее участники? За исключением одного (всего одного! — свой комментарий я не считаю, естественно) участника дискуссии – «Единственный способ борьбы с шифровальщиками — это бэкапы». Убиться и не встать. Не буду повторять доказательства. Материалов в интернете много, из того, что находится в пределах Хабра, — серия статей «Как поймать то, чего нет». Здесь же опишем только тезисы – и да прочитают их те, кто уверен, что антивирус нужен для защиты от пропуска. [Читать дальше →][1]

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

[>] В Управлении по регулированию телекоммуникаций Индии (TRAI) произошла утечка более 2 миллионов email-адресов; месть Anonymous India
habra.14
habrabot(difrex,1) — All
2015-04-28 16:30:02


Официальный веб-сайт Управления по регулированию телекоммуникаций Индии (TRAI) был взломан через несколько часов после того, как на нём было выставлено более 1 млн. email-адресов пользователей, которые выступили в поддержку сетевого нейтралитета. Группа хакеров под названием AnonOpsIndia взяла на себя ответственность за DDoS-атаку на официальный сайт TRAI и его взлом.Несколько часов назад с твиттер-аккаунта AnonOpsIndia было сообщение о блокировке сайта trai.gov.in посредством DDoS-аттаки. [Читать дальше →][1]

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

[>] Реализация интервально-ассоциативного массива в СУБД Caché
habra.14
habrabot(difrex,1) — All
2015-04-28 16:30:02


Пост написан на основе статьи на хабре: [Интервально-ассоциативный массив][1]. Поскольку изначальная реализация основана на слайсах (срезах) питона, нелишней для прочтения будет статья: [Всё, что Вы хотели знать о слайсах][2]. И, конечно, немного теории: [Дерево Интервалов (Отрезков)][3]. Итак, как же слайсы будут выглядеть в Caché? [Читать дальше →][4]

[1]: http://habrahabr.ru/post/43731/
[2]: http://habrahabr.ru/post/89456/
[3]: http://blog.coolsoftware.ru/2014/01/blog-post.html
[4]: http://habrahabr.ru/post/256851/#habracut

[>] Как поймать то, чего нет. Часть пятая, дробь два: Что нужно знать для покупки сертифицированного продукта. ЧАВО
habra.14
habrabot(difrex,1) — All
2015-04-28 16:30:02


Как это ни грустно, и что бы мы ни думали о возможности неиспользования сертифицированных средств защиты, но ситуация практически полностью совпадает с известным подходом: «Вы не согласны с результатами проверки? Ваше право! А пока мы заблокируем ваши счета». Поэтому рано или поздно (а для государственных органов и компаний, которым требуется обеспечить защиту гостайны — всегда) приходится обращаться к вендорам за соответствующим ПО. И тут начинается самое интересное. Как вы думаете, что у нас просят? Для тех, кто сталкивался, ответ загадкой не является: «Нам нужен сертифицированный продукт». Для тех, кто не в курсе, такой запрос фактически соответствует знаменитому анекдоту: «Петька, прибор! 45! Что 45? А что прибор?» Но не будем жаловаться! Вашему вниманию предлагается список типичных граблей, на которые наступают заказчики, желающие использовать сертифицированные антивирусные средства. [Читать дальше →][1]

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

[>] Да пребудет с вами слов сила
habra.14
habrabot(difrex,1) — All
2015-04-28 16:30:02


_Пока мы работаем над дневником разработчика fuel-плагина, появление которого вы большинством голосов (43 — за, 5 — против, 19 — воздержались) одобрили, мы предлагаем вам почитать рассказ нашего технического писателя Ирины Поволоцкой о прошедшей недавно конференции “Гипербатон”. Это — сборище техписов, на котором они творят свои тайные обряды (зачеркнуто) — делятся друг с другом опытом. Поскольку каждый контрибутор OpenStack должен уметь не только писать код, но и объяснять сообществу, почему этот код имеет право на существование, мы не могли обойти вниманием такое знаковое событие. И вообще — у нас давно не было обновлений. Вдруг вы соскучились?_ [Читать дальше →][1]

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

[>] [Перевод] Игровые Истории и немного «ЧАЯ» ч.1
habra.14
habrabot(difrex,1) — All
2015-04-28 16:30:02


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

[1]: http://habrahabr.ru/company/ilkfinkom/blog/256237/
[2]: //habrastorage.org/files/1b3/d78/bec/1b3d78becab94a52988417a7a4e752b0.jpg
[3]: http://habrahabr.ru/post/256745/#habracut

Pages: 1 ... 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41