RSS
Pages: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ... 210
[>] [Перевод] Основные сертификаты информационной безопасности для ИТ-специалистов и предприятий
habra.15
habrabot(difrex,1) — All
2015-10-08 17:30:03


![][1] Даже если просто просматривать заголовки новостей, то этого достаточно, чтобы понимать: в сфере информационной безопасности постоянно появляются новые угрозы и уязвимости. А потому предприятиям крайне важно иметь возможность осуществлять подготовку своих профессионалов в области безопасности в таком объеме, как того требует их стратегия ИТ-управления. Это означает, что существует только один вопрос: как лучше всего, с одной стороны, специалистам получить адекватное обучение (что сделает их более востребованными на рынке труда), а с другой стороны, предприятиям улучшить свои протоколы и процедуры безопасности (и продемонстрировать своим клиентам чувство безопасности)? Правильные решения – это сертификаты безопасности, которые допускают сочетания минимальных требований, стандартизированного языка и профессионального кодекса этики. Если мы, как специалисты и руководители предприятий решили взять курс в управлении ИТ-безопасностью, то рекомендуется выбирать сертификаты ведущих международных и независимых организаций. С учетом этого, в данной статье мы приводим некоторые из доступных наиболее серьезных сертификационных программ: **CISA / CISM** CISA и CISM– это две основные аккредитации, выдаваемые ассоциацией [Читать дальше →][2]

[1]: https://habrastorage.org/files/b60/a88/0a9/b60a880a92b245c3bae883782e971bdd.jpg
[2]: http://habrahabr.ru/post/268453/#habracut

[>] [Из песочницы] Конференция SGTech Europe 2015: взгляд из России
habra.15
habrabot(difrex,1) — All
2015-10-08 17:30:03


Конференция Smart Grid Technical Forum (SGTech Europe) проводилась в Амстердаме с 22 по 24 сентября 2015 года. SGTech Europe — это ежегодная конференция, которая собирает представителей крупнейших европейских сетевых компаний, компаний-операторов диспетчерского управления, консалтеров и производителей решений в области автоматизации подстанций, телекоммуникаций и информационной безопасности. Формат конференции предусматривал три рабочих дня:

* Первый день — пленарное заседание, работа по трем секциям: автоматизация подстанций, интеграция СКАДА и бизнес сетей, телеком в энергетике, круглые столы по темам.
* Второй день — итоги обсуждений на круглых столах, продолжение докладов по секциям.
* Третий день был тематическим (Smart Sec Europe 2015) и был полностью посвящен вопросам информационной безопасности критических инфраструктур.

Параллельно с конференцией в фойе проходила выставка, было порядка 15 стендов на которых были представлены ведущие поставщики решений по обсуждавшимся на конференции темам, в том числе Schneider Electric, Siemens, Landis+Gyr, Advantech, Sae-IT, Locomation, Satel, Netcontrol, Security Matters, Subnet, Alstom и другие. [Читать дальше →][1]

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

[>] Как сделать fuel-плагин (на примере NFS). Часть 2
habra.15
habrabot(difrex,1) — All
2015-10-08 18:00:05


Действующие лица и исполнители: Александр Кислицкий — автор кода, Евгения Шумахер, Ирина Поволоцкая — полезные замечания и ссылки, Вячеслав Струк — ревью, Илья Стечкин — рассказчик _**Важная оговорка:** мир плагинов очень быстро развивается. То, что описано ниже, актуально для плагинов, созданных под [MOS 6.0][1]. Напомним, что MOS — это Mirantis OpenStack, наш дистрибутив, открытый, как и все, что мы делаем. Однако на прошлой неделе было официально объявлено об официальном выпуске [MOS 7.0][2], а это совсем другая история, которую мы тоже постараемся рассказать. Но в другой раз. Для ленивых копипастеров сразу предлагаем ссылку на [GitHub][3] и напоминаем, что лень — двигатель прогресса._ [Читать дальше →][4]

[1]: https://software.mirantis.com/releases/
[2]: https://software.mirantis.com/openstack-download-form/
[3]: https://github.com/stackforge-attic/fuel-plugin-external-nfs
[4]: http://habrahabr.ru/post/268315/#habracut

[>] Google выпустила security-обновление для Android
habra.15
habrabot(difrex,1) — All
2015-10-08 18:00:05


Google выпустила обновление для Android, которое закрывает ряд уязвимостей в различных компонентах ОС. В рамках обновления _Nexus Security Bulletin — October 2015_ компания исправила 30 уникальных уязвимостей, включая, уязвимость Stagefright 2.0, о которой мы более подробно писали [здесь][1]. Уязвимости присутствуют в системном компоненте _libstagefright_ и позволяют атакующему удаленно исполнить код в Android с максимальными привилегиями в системе. ![][2] Новое обновление для Android уже третье по счету, в котором Google пытается избавить пользователей от уязвимостей типа Stagefright. Предыдущие обновления закрывали в Android критический для пользователей метод эксплуатации уязвимостей с использованием мультимедийного MMS-сообщения, когда ему даже не нужно открывать само сообщение, при этом эксплойт срабатывает сразу по приходу сообщения. Обновление этого месяца закрывает другой вектор эксплуатации — с использованием мобильного веб-браузера. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/eset/blog/268101/
[2]: //habrastorage.org/files/f95/f81/3fa/f95f813fa42049e6a6c973b85ff5b000.png
[3]: http://habrahabr.ru/post/268291/#habracut

[>] Пишем симулятор медленных соединений на Go
habra.14
habrabot(difrex,1) — All
2015-02-20 06:30:03


В этой статье я хочу показать, как просто в Go можно делать достаточно сложные вещи, и какую мощь в себе несут интерфейсы. Речь пойдет о симуляции медленного соединения — но, в отличие от популярных решений в виде правил для iptables, мы реализуем это на стороне кода — так, чтобы можно было легко использовать, к примеру, в тестах. Ничего сложного тут не будет, и ради большей наглядности я записал ascii-анимации (с помощью сервиса [asciinema][1]), но, надеюсь, будет познавательно. ![][2] [Читать дальше →][3]

[1]: https://asciinema.org
[2]: //habrastorage.org/files/6f0/cef/be3/6f0cefbe3e18464ebe40802a91afe9b0.jpg
[3]: http://habrahabr.ru/post/251095/#habracut

[>] Коллизия для SHA-1 за 10 дней
habra.15
habrabot(difrex,1) — All
2015-10-09 09:00:05


![image][1] В начале года я [рекомендовал][2] обновить SSL/TLS сертификаты, имеющие подпись с алгоритмом SHA-1. Теперь это стало не просто рекомендацией, а предупреждением. Недавние новости показали — оценка того, что получение коллизии для SHA-1 будет вполне доступно для криминального мира уже к 2018 году, оказалась оптимистичной. Марк Стивенс, Пьер Карпмэн и Томас Пейрин (надеюсь они простят меня за такой перевод их имен) опубликовали [статью][3] и [пресс-релиз][4], в которых призывают как можно скорее отказаться от SHA-1. Они показывают, что создание поддельной подписи, основанной на SHA-1 сейчас может стоить около 100$ тыс., что вполне по карману преступному миру, а не 700$ тыс., как рассчитывал на 2015 год известный криптограф Брюс Шнайер. [Читать дальше →][5]

[1]: https://habrastorage.org/files/40b/7d0/617/40b7d0617d6a4c5493724d5a324c3441.jpg
[2]: http://habrahabr.ru/post/250109/
[3]: https://docs.google.com/viewer?url=https%3A%2F%2Fsites.google.com%2Fsite%2Fitstheshappening%2Fshappening_article.pdf%3Fattredirects%3D0
[4]: https://docs.google.com/viewer?url=https%3A%2F%2Fsites.google.com%2Fsite%2Fitstheshappening%2Fshappening_PR.pdf%3Fattredirects%3D0
[5]: http://habrahabr.ru/post/268495/#habracut

[>] На старт, внимание, DUMP! Екатеринбург, 20 марта
habra.14
habrabot(difrex,1) — All
2015-02-20 08:30:03


Привет, Хабр! У нас новости с Урала :) Конференция для разработчиков [DUMP][1] (Development. Usability. Management. Practice) пройдет 20 марта в Екатеринбурге. В этом году мы отмечаем юбилей — уже пятую весну мы собираем уральских (и не только) айтишников в одном месте и делимся опытом. Так что готовьте поздравления, торт будет :) Наверняка многие уже бывали на DUMP, поэтому подробно рассказывать о его истории мы не будем. Кто не был и не знает, что это — вот [отчет ][2]о DUMP-2014, где все рассказано. А вот отличный ролик, передающий атмосферу прошлогодней конференции.




Ниже под катом — планы на этот год и инструкции о том, как стать докладчиком и спонсором конференции. И, внимание, регистрация уже открыта. Присоединяйтесь! [Читать дальше →][3]

[1]: http://dump-conf.ru
[2]: http://habrahabr.ru/company/it_people/blog/216893
[3]: http://habrahabr.ru/post/250937/#habracut

[>] Коллизия для SHA-1 за 100$ тыс
habra.15
habrabot(difrex,1) — All
2015-10-09 12:00:06


![image][1] В начале года я [рекомендовал][2] обновить SSL/TLS сертификаты, имеющие подпись с алгоритмом SHA-1. Теперь это стало не просто рекомендацией, а предупреждением. Недавние новости показали — оценка того, что получение коллизии для SHA-1 будет вполне доступно для криминального мира уже к 2018 году, оказалась оптимистичной. Марк Стивенс, Пьер Карпмэн и Томас Пейрин (надеюсь они простят меня за такой перевод их имен) опубликовали [статью][3] и [пресс-релиз][4], в которых призывают как можно скорее отказаться от SHA-1. Они показывают, что создание поддельной подписи, основанной на SHA-1 сейчас может стоить около 100$ тыс., что вполне по карману преступному миру, а не 700$ тыс., как рассчитывал на 2015 год известный криптограф Брюс Шнайер. [Читать дальше →][5]

[1]: https://habrastorage.org/files/40b/7d0/617/40b7d0617d6a4c5493724d5a324c3441.jpg
[2]: http://habrahabr.ru/post/250109/
[3]: https://docs.google.com/viewer?url=https%3A%2F%2Fsites.google.com%2Fsite%2Fitstheshappening%2Fshappening_article.pdf%3Fattredirects%3D0
[4]: https://docs.google.com/viewer?url=https%3A%2F%2Fsites.google.com%2Fsite%2Fitstheshappening%2Fshappening_PR.pdf%3Fattredirects%3D0
[5]: http://habrahabr.ru/post/268495/#habracut

[>] Знакомимся с Otto, наследником Vagrant
habra.15
habrabot(difrex,1) — All
2015-10-09 12:30:05


[Otto][1] — это новый продукт от Hashicorp, логический наследник Vagrant, призванный упростить процесс разработки и деплоя программ в современном мире облачных технологий. Концептуально новый подход к проблеме, проверенные технологии под капотом и открытый исходный код. Персональный DevOps ассистент разработчика. ![][2] [Читать дальше →][3]

[1]: https://www.ottoproject.io
[2]: https://habrastorage.org/files/6d4/ec4/b47/6d4ec4b4786f47048d5fd55301234115.png
[3]: http://habrahabr.ru/post/268497/#habracut

[>] Буриданов осел и композиция конфигурации
habra.14
habrabot(difrex,1) — All
2015-02-20 08:30:03


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

[1]: http://habrahabr.ru/post/244727/
[2]: http://www.ultimaerp.com/library/modules_erp/
[3]: http://habrahabr.ru/post/250685/#habracut

[>] [Из песочницы] Внешняя сортировка с O(1) дополнительной памяти
habra.15
habrabot(difrex,1) — All
2015-10-09 15:00:07


Прочитав [эту статью][1], я вспомнил, как писал внешнюю сортировку, которая использовала O(1) внешней памяти. Функция получала бинарый файл и максимальный размер памяти, которую она могла выделить под массив:

void ext_sort(const std::string filename, const size_t memory)


Я использовал алгоритм из [Effective Performance of External Sorting with No Additional Disk Space][2]:

1. Разделим файл на блоки, которые помещаются в доступную память. Обозначим эти блоки Block\_1, Block\_2, …, Block\_(S-1), Block\_S. Установим P = 1.
2. Читаем Block\_P в память.
3. Отсортируем данные в памяти и запишем назад в Block\_P. Установим P = P + 1, и если P ≤ S, то читаем Block\_P в память и повторяем этот шаг. Другими словами, отсортируем каждый блок файла.
4. Разделим каждый блок на меньшие блоки B\_1 и B\_2. Каждый из таких блоков занимает половину доступной памяти.
5. Читаем блок B\_1 блока Block\_1 в первую половину доступной памяти. Установим Q = 2.
6. Читаем блок B\_1 блока Block\_Q во вторую половину доступной памяти.
7. Объеденим массивы в памяти с помощью in-place слияния, запишем вторую половину памяти в блок B\_1 блока Block\_Q и установим Q = Q + 1, если Q ≤ S, читаем блок B\_1 блока Block\_Q во вторую половину доступной памяти и повторяем этот шаг.
8. Записываем первую половину доступной памяти в блок B\_1 блока Block\_1. Так как мы всегда оставляли в памяти меньшую половину элементов и провели слияние со всеми блоками, то в этой части памяти хранятся M минимальных элементы всего файла.
9. Читаем блок B\_2 блока Block\_S во вторую половину доступной памяти. Установим Q = S −1.
10. Читаем блок B\_2 блока Block\_Q в первую половину доступной памяти.
11. Объеденим массивы в памяти с помощью in-place слияния, запишем первую половину доступной памяти в блок B\_2 блока Block\_Q и установим Q = Q −1. Если Q ≥ 1 читаем блок B\_2 блока Block\_Q в первую половину доступной памяти и повторяем этот шаг.
12. Записываем вторую половину доступной памяти в блок B\_2 блока Block\_S. Аналогично шагу 8, тут хранятся максимальные элементы всего файла.
13. Начиная от блока B\_2 блока Block\_1 и до блока B\_1 блока Block\_S, определим новые блоки в файле и снова пронумеруем их Block\_1 to Block\_S. Разделим каждый блок на блоки B\_1 и B\_2. Установим P = 1.
14. Читаем B\_1 и B\_2 блока Block\_P в память. Объеденим массивы в памяти. запишем отсортированный массив назад в Block\_P и установим P = P +1. Если P ≤ S, повторяем этот шаг.
15. Если S > 1, возвращаемся к шагу 5. Каждый раз мы выделяем M минимальных и максимальных элементов, записываем их в начало и конец файла соответственно, а потом делаем то же самое с оставшимися элементами, пока не дойдем до середины файла.

Преимущество такого алгоритма, кроме отсутствия буфера на диске, это то, что с диска мы читаем данные относительно большими порциями, что ускоряет алгоритм. Реализуем алгоритм на C++. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/266557/
[2]: https://scholar.google.co.il/scholar?cluster=7995905689817415486&hl=ru&as_sdt=0,5
[3]: http://habrahabr.ru/post/268535/#habracut

[>] [Перевод] Муравьиная оптимизация и сетевые алгоритмы
habra.15
habrabot(difrex,1) — All
2015-10-09 16:00:07


Как вы могли заметить, у нас тут затишье. Но наш творческий поиск не прекращается, и первая октябрьская публикация будет посвящена ACO (Ant Colony Optimization) ![][1] Отдавая должное автору, мы не будем публиковать здесь последнюю часть статьи, содержащую пример на JavaScript, а предложим вам опробовать его на сайте оригинала. Под катом же вы найдете перевод теоретической части, доступно рассказывающей о тонкостях муравьиной оптимизации в различных сценариях. [Читать дальше →][2]

[1]: https://habrastorage.org/files/f7b/030/866/f7b0308662d94be683e0677bcb89f127.jpg
[2]: http://habrahabr.ru/post/268513/#habracut

[>] Освоение специальности Data Science на Coursera: личный опыт
habra.15
habrabot(difrex,1) — All
2015-10-09 16:30:03


![][1] Недавно Владимир Подольский [vpodolskiy][2], аналитик в департаменте по работе с образованием [IBS][3] закончил обучение по специализации Data Science  на Coursera. Это набор из 9 курсеровских  курсов от Университета Джонса Хопкинса + дипломная работа, успешное завершение которых дает право на сертификат. Для нашего блога на Хабре он написал подробный пост о своей учебе. Для удобства мы разбили его на 2 части. Добавим, что Владимир  стал еще и редактором проекта по переводу специализации Data Science на русский язык, который весной [запустили IBS и ABBYY Language Services][4]. _**Часть 1.** О специальности Data Science в общих чертах. Курсы: Инструменты анализа данных (программирование на R); Предварительная обработка данных; Документирование процесса обработки данных._

## Привет, Хабр!

Не так давно закончился мой 7-месячный марафон по освоению специализации «Наука о данных» (Data Science) на Coursera. Организационные стороны освоения специальности очень точно [описаны тут][5]. В своём посте я поделюсь впечатлениями от контента курсов. Надеюсь, после прочтения этой заметки каждый сможет сделать для себя выводы о том, стоит ли тратить время на получение знаний по аналитике данных или нет. [Читать дальше →][6]

[1]: https://habrastorage.org/files/90c/52b/73b/90c52b73b20741d1a8b1d133b5bdbc07.png
[2]: http://habrahabr.ru/users/vpodolskiy/
[3]: http://www.ibs.ru/
[4]: http://www.ibs.ru/media/news/ibs-i-abbyy-language-services-gotovyat-spetsialistov-v-oblasti-bolshikh-dannykh/
[5]: http://megamozg.ru/post/14960/
[6]: http://habrahabr.ru/post/268491/#habracut

[>] Запуск DOS-приложения в Linux
habra.15
habrabot(difrex,1) — All
2015-10-09 16:30:03


Необходимость запуска DOS-приложений под Linux возникает нечасто, но случается. Вот как-то и со мной случилось, решил поделиться опытом, может, кому пригодится. А нужно было запустить кем-то, когда-то написанное приложение для поликлиники, работающее на Foxpro под DOSом, в Linux, т.к. денег на покупку Windows лицензий не нашлось. Исходные данные: Suse Linux Enterprise Desktop 10.3 — рабочие станции. Suse Linux Enterprise Server 10.3, на нем шара на Samba (я же до этого и расшаривал для работы с Windows рабочих станций, т.к. на лицензию для Win-сервака тоже денег не было), имя шары, как ни странно, — SHARE. Происходило всё 2-3 года назад, поэтому версии SLED и SLES на момент установки были не такие уж и древние. [Читать дальше →][1]

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

[>] Security Week 41: цензура исследований, взлом Outlook Web Access, потери данных на стыках
habra.15
habrabot(difrex,1) — All
2015-10-09 16:30:03


![][1]Сегодня — специальный корпоративный выпуск нашего дайджеста, в котором мы поговорим о таких вещах как ROI, EBITDA, TCO, РСБУ, CRM, SLA, NDA, GAAP, и т.д. Впрочем, нет, поговорим, как обычно, о самых значимых новостях безопасности за неделю. Вышло так, что все три так или иначе относятся к корпоративной безопасности: показывают, как компании взламывают, как утекают данные, и как бизнес на это реагирует. В чем вообще основное отличие между «пользовательской» безопасностью и корпоративной? Во-первых, если пользователям доступны относительно простые защитные решения или методы, то для бизнеса простых решений не бывает — хотя бы из-за того, что инфраструктура значительно сложнее. Во-вторых, чтобы эффективно защитить компанию, нужны не только сложные технологии, но и определенные организационные решения. А как вообще обстоят дела с безопасностью у бизнеса? Скажем так, не очень хорошо. Например, Gartner [считает][2], что через три года на безопасность будет тратиться до 30% IT-бюджета, и что распространенный подход компаний «держать и не пущать» устарел. В смысле, сейчас типичная компания 90% усилий пускает на оборону периметра, и всего 10% — на обнаружение и реагирование. Если атакующему удалось пробить защиту, дальше он оказывается в достаточно благоприятной для него среде, с неприятными для жертвы последствиями. Рекомендация Gartner по изменению этого соотношения до 60/40 выглядит вполне разумной. Например, из нашего [исследования Carbanak][3], атаки на банковские организации, понятно, что в этой самой «зоне 10%» атакующие находились _очень_ долго. Предыдущие дайджесты новостей вы можете найти [тут][4]. [Читать дальше →][5]

[1]: https://habrastorage.org/files/566/ba3/3f4/566ba33f4f174923a3bc4205908a4b37.jpg
[2]: https://threatpost.ru/it-kompaniyam-pridetsya-tratit-30-byudzheta-na-bezopasnost/12493/
[3]: https://securelist.ru/blog/issledovaniya/25106/bolshoe-bankovskoe-ograblenie-apt-kampaniya-carbanak/
[4]: http://habrahabr.ru/search/?target_type=posts&q=%5Bklsw%5D%20&order_by=date
[5]: http://habrahabr.ru/post/268493/#habracut

[>] Говорила же мама: не доверяй телефону с SIM-картой
habra.14
habrabot(difrex,1) — All
2015-02-20 09:30:03


_Пока все спят новостники...._ Да, это стало уже традицией. Под поздний вечер сайты крупнейших агентств поразила ещё одна интересная техническая информация. На этот раз, с компьютерных технологий перешли на более современные, мобильные. Надо сразу скаазать, что у специалистов давно возникали сомнения в надёжности SIM-карт. Некоторые прямо как в воду глядели (в 2013-м), не только с сим-картами, но и со Сноуденом… К примеру, вот заметка 2013 года: "[Сим-карта далеко не так хорошо защищена как хотелось бы думать][2]" Карстен Ноль (Karsten Nohl) говорил: «Мы можем дистанционно (через SMS) установить программу на мобильный телефон жертвы, причем эта программа будет работать полностью независимо от телефона. Мы можем шпионить за вами. Можем добыть ваши криптоключи, используемые для шифрования телефонных звонков. Мы можем читать ваши SMS. Помимо же просто шпионажа, мы (так же через SMS) можем похищать из SIM-карты телефона критично важные данные о владельце — вашу мобильную личность — и снимать деньги с вашего счета». И… [спецслужбы США и Великобритании выкрали шифры у производителя SIM-карт][3]

[1]: http://habrastorage.org/files/cce/1ee/c92/cce1eec929ac4f02958c4d060a1e75ee.jpg
[2]: http://www.3dnews.ru/offsyanka/655897
[3]: http://habrahabr.ru/post/251099/#habracut

[>] Программные инструкции на естественном языке, или интенциональное программирование
habra.15
habrabot(difrex,1) — All
2015-10-09 16:30:03


Данная тема способна вызвать скорее негативную реакцию благодаря тому, что большинство разработчиков являются ее противниками. Все потому, что интенциональное программирование, по сравнению с классическим, имеет существенные недостатки:

* слабая детерминированность инструкций на естественном языке
* значительная длина каждой инструкции, что заставляет вводить довольно объемный код
* код выглядит единообразным, что может затруднять его восприятие и процесс поиска
* сниженная скорость работы программы за счет анализа большего количества символов

Но у него есть и существенные достоинства:

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

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

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

[>] Бильярдный бот: история создания
habra.14
habrabot(difrex,1) — All
2015-02-20 12:00:03




### **Привет, хабрахабр!**



#### **О чём эта статья?**

Эта статья посвящена подробному описанию процесса создания биллиардного бота, который без участия человека играет в игру pool billiard и принимает решения, зарабатывая очки. Статья будет полезна и интересна людям, увлекающимся созданием ботов и программированием.

#### **Предисловие**

![][1]У всех нас есть любимые игры и виды спорта. Здорово, когда первое совпадает со вторым. Помимо своих увлечений спортом и спортивными проектами, я люблю также и некоторые компьютерные игры. Одна из моих любимейших игр, и вживую, и виртуально — это, конечно же, бильярд. Бильярд, пул, снукер… как угодно, — я люблю их все! Я разделяю мнение многих о том, что, например, снукер — это «недискретные» шахматы. Мало просто забивать последовательность определённых шаров в лузы, там ведётся ещё и невероятная стратегическая борьба. Борьба за снукеры, за позиции… а какой фантастической техникой обладают профессиональные бильярдисты — просто молчу в тряпочку. ![][2]Достоинства этой несомненно аристократической игры можно перичислять очень долго. Но перейдём к сути статьи. Моя самая любимая игра в бильярд вот уже пять лет и по сегодняшний день — это «[Pool Billiard][3]» на Facebook. Она классно сделана не только эстетически, но и технически. Невооруженным глазом видны классно написаный физический движок, продуманный геймплей, клиент-серверная валидация действий, обработка ошибок, дизайн, система статистики, магазин, чат в конце концов. Игру явно делали профи, да и она в топах. В неё очень приятно играть… и выигрывать! Я достаточно долго играл в неё, пока в голову не пришла мысль: «Ба! Да она же идеально подходит для создания под неё игрового бота!» Выигрывать приятно, а выигрывать своим роботом, автоматически — вдвойне! Выигрывать у платных игроков, понакупивших систему навигации и подкручивания битка, демонстрируя им фантастические по технике и красоте удары, оставляя их с отвисшими челюстями — втройне приятно! Плюс автоматический набор очков опыта и монет: оставил робота на ночь, под утро ты лучший! Кроме того, я даже как зритель обажаю часами смотреть на игру в бильярд. В общем, да, я решился! Добро пожаловать под кат! :) [Читать дальше →][4]

[1]: http://habrastorage.org/getpro/habr/post_images/afa/8db/ad6/afa8dbad600aadece36a0aee09868a58.jpg
[2]: http://habrastorage.org/getpro/habr/post_images/cbe/a92/962/cbea92962aea55e179250d468b5d4109.jpg
[3]: http://apps.facebook.com/pool-billiard/
[4]: http://habrahabr.ru/post/251101/#habracut

[>] To Git, or not to Git
habra.14
habrabot(difrex,1) — All
2015-02-20 16:00:02


Здравствуйте! Издательство «Питер» рассматривает возможность выпустить книгу по системе управления версиями Git. Хотим посоветоваться с будущими читателями – какое издание вам будет наиболее интересно в русском переводе? Мы сразу исключили книги ознакомительного уровня и выбрали три кандидатуры: 1. [Новое издание (декабря 2014) книги Скотта Шакона ][1] Просьба голосовать: [Читать дальше →][4]

[1]: http://www.amazon.com/Pro-Git-Scott-Chacon/dp/1484200772/ref=sr_1_2?ie=UTF8&qid=1418123083&sr=8-2&keywords=git
[2]: http://www.amazon.com/Version-Control-Git-collaborative-development/dp/1449316387/ref=pd_sim_b_2?ie=UTF8&refRID=0Q9D2N5Q2F34YTQJA56Z
[3]: http://www.amazon.com/Git-Practice-Mike-McQuaid/dp/1617291978/ref=sr_1_6?ie=UTF8&qid=1418122320&sr=8-6&keywords=git
[4]: http://habrahabr.ru/post/245381/#habracut

[>] Установка неподписанных программ на устройства с iOS 9 без Jailbreak
habra.15
habrabot(difrex,1) — All
2015-10-09 16:30:03


Дорого дня, уважаемые хабражители! Сегодня я расскажу вам о том, как можно установить неподписанное (или плохо подписанное) приложение на устройство с iOS 9. Да, без Jailbreak. Да, бесплатно. Нужен лишь компьютер с OS X и Apple ID. Как такое возможно? Читаем под катом. ![][1] Осторожно! Много картинок! [Читать дальше →][2]

[1]: https://habrastorage.org/files/38b/97d/250/38b97d250e3d41b796ce7cf5df3277ea.png
[2]: http://habrahabr.ru/post/268515/#habracut

[>] [Из песочницы] Пишем графическую программу на Python с tkinter
habra.15
habrabot(difrex,1) — All
2015-10-09 16:30:03


В работе со студентами и учениками я заметила, что при изучении какого-либо языка программирования большой интерес вызывает работа с графикой. Даже те студенты, которые скучали на заданиях про числа Фибоначчи, и уже казалось бы у них пропадал интерес к изучению языка, активизировались на темах, связанных с графикой. Поэтому предлагаю потренироваться в написании небольшой графической програмки на Python с использованием tkinter (кроссплатформенная библиотека для разработки графического интерфейса на языке Python). Код в этой статье написан для Python 3.5. **Задание**: написание программы для рисования на холсте произвольного размера кругов разных цветов. Не сложно, возможно программа «детская», но я думаю, для яркой иллюстрации того, что может tkinter самое оно. Хочу рассказать сначала о том, как указать цвет. Конечно удобным для компьютера способом. Для этого в tkinter есть специальный инструмент, который можно запустить таким образом: [Читать дальше →][1]

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

[>] Мы делили интернет: много нас, а его нет
habra.15
habrabot(difrex,1) — All
2015-10-09 18:00:07


Сегодня мы расскажем о ситуациях, когда одной[ настройкой QoS для роутера][1] не обойдешься. Представить себе туриста, отправившегося в путешествие хотя бы без мобильного телефона, сегодня практически невозможно. Но цены и наших, и зарубежных операторов связи в роуминге по-прежнему весьма высоки. И если поговорить несколько минут c родными и друзьями или отправить СМС не так и дорого, то доступ в Сеть может серьёзно ударить по карману. Но ведь во всех отелях есть бесплатный WiFi, правда? [][2]



«_Всё хорошо, но в номере поймать WiFi практически невозможно – только на ресепшене_», «_Интернет тут совсем никакой», «WiFi постоянно обрывался_»… Всё это – совершенно реальные отзывы о самых разных отелях, возможно даже, ваши. И как результат – жирный минус в оценках, даже если все остальное вполне устраивает. Почему? [Читать дальше →][3]

[1]: http://habrahabr.ru/post/62831/
[2]: http://habrahabr.ru/company/smart_soft/blog/268545/
[3]: http://habrahabr.ru/post/268545/#habracut

[>] CxxMock — Mock-объекты в C++
habra.14
habrabot(difrex,1) — All
2015-02-21 07:30:05


Если вы верите в Agile и разработка через тестирование для вас является нормой, а не какой-то непонятной практикой, но наверное столкнулись с такой нехорошей проблемой как организацией тестирования объектов которые используют другие объекты через интерфейсы на C++. Если для .NET есть замечательная библиотека [Rhino.Mocks][1], которой достаточно «скормить» интерфейс и вы получаете возможность программирования поведения методов интерфейса прямо в модульном тесте. То для С++ все сильно сложнее, так как нет замечательного [рефлекшена][2] который позволяет строить код во время исполнения. И приходится писать объекты-заглушки вручную. И в случае изменения интерфейса приходится не только обновлять все классы в приложении но обновлять весь набор «одноразовых» классов заглушек реализующих интерфейс которые применяются в тестах. [Читать дальше →][3]

[1]: http://www.hibernatingrhinos.com/oss/rhino-mocks
[2]: https://ru.wikipedia.org/wiki/%D0%9E%D1%82%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29
[3]: http://habrahabr.ru/post/250979/#habracut

[>] Пишем бот для MMORPG с ассемблером и дренейками. Часть 0
habra.14
habrabot(difrex,1) — All
2015-02-21 11:30:02


![][1] Привет, %username%! Покопавшись в статьях хабра, я нашел несколько оных про написание ботов для MMORPG. Несомненно это очень интересные и познавательные статьи, но возможности в них весьма скудны. Что если, например нужно пофармить мобов или руду по заданному маршруту убивая агрессивных мобов, игроков и всех кто будет на Вас нападать по пути, выкрикивая им вслед непристойности, да что б еще и определить не смогли. В общем полная эмуляция среднестатистического MMORPG игрока. Написание макросов для AutoIt, симуляция кликов в окне, анализ пикселей под курсором — это совсем не наш вариант. Заинтриговал? Добро пожаловать под кат! [Грязные подробности][2]

[1]: //habrastorage.org/files/708/53f/a39/70853fa39f3f4d4f82bc6525a2ebc41f.png
[2]: http://habrahabr.ru/post/251137/#habracut

[>] Введение в курс «Анализ изображений и видео». Лекции от Яндекса
habra.14
habrabot(difrex,1) — All
2015-02-21 22:00:03


Мы начинаем публиковать лекции [Натальи Васильевой][1], старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, на отделении Школы анализа данных Яндекса в Computer Science Center в Петербурге.




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

[1]: http://www.hpl.hp.com/people/nvassilieva/
[2]: https://yadi.sk/d/_w8dMYggepSht
[3]: http://habrahabr.ru/post/251161/#habracut

[>] [Из песочницы] О переборе на примере генерации кроссвордов
habra.14
habrabot(difrex,1) — All
2015-02-22 22:30:03


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

[1]: http://habrahabr.ru/post/249899/
[2]: http://habrastorage.org/files/019/87c/95c/01987c95c1154581bb753ff80758c3a7.png
[3]: http://habrahabr.ru/post/251207/#habracut

[>] Утечка реальных ФИО пользователей через Кинопоиск.ру
habra.15
habrabot(difrex,1) — All
2015-10-09 20:00:04


8 октября 2015 года Яндекс «перезапустил» купленный два года назад сайт Кинопоиск.ру. Судя по всему, это крупная неудача Яндекса. Число критических сообщений от пользователей старого Кинопоиска [растёт как лавина][1]. Новый Кинопоиск не имеет никаких очевидных преимуществ перед старым, в то время как минусов масса: [Читать дальше →][2]

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

[>] MessagePack аналог JSON, но быстрее и меньше
habra.14
habrabot(difrex,1) — All
2015-02-22 23:00:02


MessagePack это эффективный сериализатор данных в бинарное представление. ![][1] Используя данную библиотеку вы можете обмениваться сообщениями между вашими компонентами системы подобно тому, как вы это делаете с помощью формата JSON. Интерпретация библиотеки существует для 44 языков программирования (!) [Читать дальше →][2]

[1]: //habrastorage.org/files/de5/7ad/bfd/de57adbfde2e4caab226f736ad53438f.png
[2]: http://habrahabr.ru/post/251177/#habracut

[>] [Перевод] Еженедельник io.js, 20 февраля 2015
habra.14
habrabot(difrex,1) — All
2015-02-23 01:30:02


Релиз 1.3.0, MongoDB, планы развития и многое другое. [Читать дальше →][1]

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

[>] [Из песочницы] Kotlin ❤ FP
habra.15
habrabot(difrex,1) — All
2015-10-10 00:30:06


_Предлагаю читателям «Хабрахабра» вольный перевод статьи [«Functional programming in Kotlin»][1]. Автор публикации — Mike Hearn._ ![image][2] Те, кто используют .NET, наверняка слышали про F#, универсальный функциональный язык программирования для CLR. Программисты же вне .NET сообщества скорее всего знают про функциональное программирование в связи с языком Haskell. Так или иначе, я подозреваю что многим пришелся бы по душе схожий язык, но для JVM, с развитыми инструментами и без необходимости делать все подряд в функциональном стиле. Язык Kotlin ([kotlinlang.org][3]) от [JetBrains][4] может показаться всего лишь подслащенной Java: синтаксические конвенции, автовывод типов (type inference) и тому подобные мелочи. Но под незамысловатой оболочкой в нем можно найти все самые популярные и прогрессивные конструкции функциональных языков. [Читать дальше →][5]

[1]: https://medium.com/@octskyward/kotlin-fp-3bf63a17d64a
[2]: https://habrastorage.org/getpro/habr/post_images/2f8/85e/fc0/2f885efc0d315929cb17cdd725ec5e16.png
[3]: http://kotlinlang.org/
[4]: http://jetbrains.ru/
[5]: http://habrahabr.ru/post/268463/#habracut

[>] Потенциально до 1 миллиона «живых» аккаунтов VK.com оказалось скомпрометировано злоумышленниками
habra.15
habrabot(difrex,1) — All
2015-10-10 01:00:03


![image][1]«Лаборатория Касперского» заявила, что обнаружила масштабную аферу по хищению учетных данных пользователей «ВКонтакте» через приложение для проигрывания музыки. Жертвами хакеров, по данным компании, могли стать сотни тысяч человек, говорится в сообщении на [сайте компании][2]. Для хищения информации использовалось приложение для прослушивания музыки под названием «Музыка ВКонтакте». Жертвы скачивали его из официального магазина Google Play, где собрано программное обеспечение (ПО) для Android-устройств. По грубым оценкам «Лаборатории Касперского», число пострадавших может исчисляться сотнями тысяч. Кража данных происходила после того, как пользователь авторизовался в приложении, то есть вводил свои логин и пароль, установленные для доступа в свой аккаунт «ВКонтакте». Примечательно, что злоумышленники проверяли подлинность этих данных, отправляя их на легитимный сервер аутентификации oauth.vk.com, отмечают в «Касперском», а пользователи не догадывались о вредоносности программы, поскольку она справлялась со своей заявленной функцией — проигрывала аудиозаписи из «ВКонтакте». [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/1a4/243/1a0/1a42431a043edb1999c82a5a9e9c9c54.jpg
[2]: http://www.kaspersky.ru/about/news/virus/2015/krast-tak-muz
[3]: http://habrahabr.ru/post/268581/#habracut

[>] Собственная реализация https с использованием crypto++ для начальной загрузки I2P
habra.14
habrabot(difrex,1) — All
2015-02-23 02:00:02


Каждый новый узел I2P при первом запуске должен откуда то получить начальный список узлов. Для этого существуют специальные сервера (reseed), адреса которых жестко прописаны в коде. Раньше загрузка осуществлялась по http, однако с недавних пор reseed-ы стали переходить на https. Для успешной работы [«пурпурного» I2P][1] также потребовалось внести соответствующие изменения. Используемая там криптографическая библиотека [crypto++][2] не поддерживает ssl. Вместо использования дополнительной библиотеки типа openssl, фактически дублирующей криптографию, был выбран рассмотренный ниже вариант. Начальная загрузка это единственное место в I2P, где используется https. С другой стороны, статья будет интересно тем кому интересно понять, как работает ssl и попробовать самому. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/240815/
[2]: http://www.cryptopp.com/
[3]: http://habrahabr.ru/post/251143/#habracut

[>] Патчим mysqldump в домашних условиях
habra.15
habrabot(difrex,1) — All
2015-10-10 13:00:11


![image][1] Бекапы это хорошо, а еще лучше когда они работают так как надо когда они нужны. На одном из проектов понадобилось восстановить дамп из 745 триггеров и накатить их на рабочую MySQL базу. MySQL позволяет использовать любые имена триггеров, в том числе с использованием точек (_например_: `analitica.cron.indeg.y.run.a_insert`). А **mysqldump** при создании дампа не учитывает это обстоятельство и добавляет конструкцию для их дропа следующего вида:



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

[1]: https://habrastorage.org/getpro/habr/post_images/c55/5ba/126/c555ba1264e7a39ba30129db92fce36d.png
[2]: http://habrahabr.ru/post/268569/#habracut

[>] Необычные модели Playboy, или про обнаружение выбросов в данных c помощью Scikit-learn
habra.14
habrabot(difrex,1) — All
2015-02-23 09:00:03


Мотивированный [статьей][1] пользователя [BubaVV][2] про предсказание веса модели Playboy по ее формам и росту, автор решил углубиться модели, выделяющиеся на фоне других своими формами, ростом или весом. А на фоне этой разминки чувства юмора заодно немного рассказать начинающим исследователям данных про обнаружение выбросов (outlier detection) и аномалий (anomaly detection) в данных с помощью реализации одноклассовой машины опорных векторов (One-class Support Vector Machine) в библиотеке Scikit-learn, написанной на языке Python. [Читать дальше →][3]

[1]: http://habrahabr.ru/post/172043/
[2]: http://habrahabr.ru/users/bubavv/
[3]: http://habrahabr.ru/post/251225/#habracut

[>] Освоение специальности Data Science на Coursera: личный опыт (ч.1)
habra.15
habrabot(difrex,1) — All
2015-10-10 14:00:03


![][1] Недавно Владимир Подольский [vpodolskiy][2], аналитик в департаменте по работе с образованием [IBS][3], закончил обучение по специализации Data Science на Coursera. Это набор из 9 курсеровских курсов от Университета Джонса Хопкинса + дипломная работа, успешное завершение которых дает право на сертификат. Для нашего блога на Хабре он написал подробный пост о своей учебе. Для удобства мы разбили его на 2 части. Добавим, что Владимир  стал еще и редактором проекта по переводу специализации Data Science на русский язык, который весной [запустили IBS и ABBYY Language Services][4]. _**Часть 1.** О специальности Data Science в общих чертах. Курсы: Инструменты анализа данных (программирование на R); Предварительная обработка данных; Документирование процесса обработки данных._

## Привет, Хабр!

Не так давно закончился мой 7-месячный марафон по освоению специализации «Наука о данных» (Data Science) на Coursera. Организационные стороны освоения специальности очень точно [описаны тут][5]. В своём посте я поделюсь впечатлениями от контента курсов. Надеюсь, после прочтения этой заметки каждый сможет сделать для себя выводы о том, стоит ли тратить время на получение знаний по аналитике данных или нет. [Читать дальше →][6]

[1]: https://habrastorage.org/files/90c/52b/73b/90c52b73b20741d1a8b1d133b5bdbc07.png
[2]: http://habrahabr.ru/users/vpodolskiy/
[3]: http://www.ibs.ru/
[4]: http://www.ibs.ru/media/news/ibs-i-abbyy-language-services-gotovyat-spetsialistov-v-oblasti-bolshikh-dannykh/
[5]: http://megamozg.ru/post/14960/
[6]: http://habrahabr.ru/post/268491/#habracut

[>] OData REST API и рекурсивные запросы
habra.14
habrabot(difrex,1) — All
2015-02-23 11:30:02


В дискуссии к [предыдущей ][1]статье [dezconnect ][2]поднял интересный вопрос о возможностях OData выполнять рекурсивные запросы (по аналогии с SQL CTE). В [документации OData][3] в разделе 11.2.4.2 описывается опция запроса **$expand**. Эта опция позволяет получать объекты вместе со связанными объектами. Например, Вы можете получить данные о компании вместе со всеми данными о ее президенте: **В 4й версии OData существенно расширены возможности опции $expand для выполнения рекурсивных запросов.** [Читать дальше →][4]

[1]: http://habrahabr.ru/post/250913/
[2]: http://habrahabr.ru/users/dezconnect/
[3]: http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html
[4]: http://habrahabr.ru/post/251185/#habracut

[>] Алло! Это FreeSWITCH? Тогда мы проверим вас
habra.15
habrabot(difrex,1) — All
2015-10-11 01:30:03


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

[1]: https://habrastorage.org/getpro/habr/post_images/cb8/a46/43e/cb8a4643efb749c18f78b4516c019fa9.png
[2]: http://habrahabr.ru/post/268603/#habracut

[>] Supervisord и forever больше не нужны. Systemd
habra.15
habrabot(difrex,1) — All
2015-10-11 12:00:03


В статье речь будет идти о systemd, который вошел в Debian 8 jessie. Я пишу о Debian, потому что пользуюсь именно им. Пишу о systemd не потому что его фанат, но некоторые вещи меня действительно радуют. Так почему же больше не нужны supervisord и forever? [Читать дальше →][1]

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

[>] Первичный ключ – GUID или автоинкремент? Часть вторая
habra.15
habrabot(difrex,1) — All
2015-10-11 14:00:04


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

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

[>] [Перевод] Rust в деталях: пишем масштабируемый чат с нуля, часть 1
habra.15
habrabot(difrex,1) — All
2015-10-11 15:00:07




## Часть 1: Реализуем WebSocket. Введение.

В этом цикле статей мы рассмотрим процесс создания масштабируемого чата, который будет работать в реальном времени. Целью данного обзора является пошаговое изучение основ быстро набирающего популярность языка программирования Rust на практике, с попутным охватом системных интерфейсов. В первой части мы рассмотрим начальную настройку окружения и реализацию простейшего WebSocket-сервера. Чтобы понять технические детали статьи вам не потребуется опыта работы с языком Rust, хотя знание основ системных API (POSIX) и C/C++ лишним не будет. Прежде чем начинать чтение, заготовьте немного времени (и кофе) — статья описывает все максимально подробно и поэтому довольно длинная. [Читать дальше →][1]

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

[>] Типы CQRS
habra.15
habrabot(difrex,1) — All
2015-10-12 10:00:03


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

[1]: http://martinfowler.com/bliki/CQRS.html
[2]: http://habrahabr.ru/post/268627/#habracut

[>] Виртуальный квадрокоптер на Unity + OpenCV (Часть 1)
habra.15
habrabot(difrex,1) — All
2015-10-12 11:00:03


![КПДВ. Виртуальный квадрокоптер в окружении параллелепипеда и цилиндра][1] Доброго времени суток, дорогие хабравчане! Что нам стоит дом построить? Нарисуем — будем жить. В этой серии статей я хотел бы поделится опытом строительства (и рассказать как) виртуального квадрокоптера в Unity. А также получить ценные советы от коллективного разума хабра :) Виртуального дрона я задумал с целью тестирования существующих алгоритмов компьютерного зрения, а также их приложения в навигации коптеров. С 5й версии в Unity есть возможность писать C++ плагины, то есть имеется возможность применить все возможности сторонних C/C++ библиотек, таких как OpenCV, чем я, собственно, и собираюсь заняться. Да, реальный мир намного сложнее Unity. Но мне хочется верить, что использование такого симулятора может послужить хорошим начальным приближением для разработки искусственного интеллекта дрона. Если вам интересно, то добро пожаловать под кат :) [Читать дальше →][2]

[1]: https://habrastorage.org/files/576/76a/680/57676a6808994e77b0dfcb7646c8d762.png
[2]: http://habrahabr.ru/post/267791/#habracut

[>] Использование хардлинков (hardlink) для инкрементального бекапа Synology DSM
habra.15
habrabot(difrex,1) — All
2015-10-12 12:00:03


![][1] Система DSM достаточно удобна и по умолчению в системе установлены модули, которые закрывают 95% потребностей рядового (и не очень) пользователя, что называется «из коробки». Есть и встроенная система резервного копирования: Backup & Replication. Простая, понятная и надежная. В качестве сетевого места назначения в может использовать либо похожую Synology, либо rsync сервер. К сожалению эта система не умеет делать инкрементальный бекап. Самый примитивный способ обойти это — настроить отдельный бекап на каждый день недели. Таким образом у нас будет 7 папок с резервными копиями, но очевидный минус — хранение полной копии в каждой папке — объем может получиться таким, что не каждый позволит себе такое хранилище. Итак — настроим полноценный инкрементальный бекап. [Читать дальше →][2]

[1]: https://habrastorage.org/files/9f7/bf7/6ea/9f7bf76ea3a24f938876559fd716cf5d.png
[2]: http://habrahabr.ru/post/268613/#habracut

[>] [Из песочницы] Говорящий пингвин
habra.14
habrabot(difrex,1) — All
2015-02-23 11:30:02


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

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

[>] Пишем бот для MMORPG с ассемблером и дренейками. Часть 1
habra.14
habrabot(difrex,1) — All
2015-02-23 13:30:03


![][1]Привет, %username%! И так, продолжим написание нашего бота. Сегодня мы внедрим наш код в игровой процесс (не без помощи ассемблера), а позже позаботимся и о том, что бы его было не так просто найти, ведь наказывают не за то что жульничаешь, а за то что попался. И если быть до конца честным то даже не совсем в сам процесс игры будем его внедрять, да и 1 раз только за весь жизненный цикл.

###### Но обо всем по порядку, так что жду Вас под катом!

[Приподнять завесу тайны][2]

[1]: //habrastorage.org/files/708/53f/a39/70853fa39f3f4d4f82bc6525a2ebc41f.png
[2]: http://habrahabr.ru/post/251149/#habracut

[>] [Из песочницы] У Калифорнии теперь лучший в стране закон о защите цифровых данных (перевод статьи WIRED)
habra.15
habrabot(difrex,1) — All
2015-10-12 13:00:02


![][1] _Перевод [статьи «California Now Has the Nation’s Best Digital Privacy Law»][2] с сайта WIRED о новом законе о конфиденциальности цифровых сообщений, принятом 8.10.15._ Законодательство, пусть и не у нас, наконец-то обратило свой взор на защиту частной жизни в цифровом формате. [Читать дальше →][3]

[1]: https://habrastorage.org/files/f21/f90/1da/f21f901da228434bb4c9e3a78b1bba1a.jpg
[2]: http://www.wired.com/2015/10/california-now-nations-best-digital-privacy-law/
[3]: http://habrahabr.ru/post/268633/#habracut

[>] Гибридные приложения в Qt на примере использования D3.js
habra.14
habrabot(difrex,1) — All
2015-02-24 00:30:02


D3 — [мощная JavaScript библиотека][1] для визуализации данных. На мой взгляд — просто рай для web-разработчика, казалось бы недоступный для Qt-программиста. Но гибкость фреймворка Qt позволяет интегрировать web-frontend в толстый клиент с помощью механизма [Qt Web Bridge][2]. Такие приложения получили наименование гибридные ([Qt Hybrid Apps][3]). Для JavaScript-программистов хорошая новость заключается в том, что их решения можно легко интегрировать в Desktop приложения, что потенциально может увеличить целевую аудиторию пользователей разрабатываемых библиотек (во всяком случае это верно для мира Qt приложений). На скриншоте ниже изображен виджет [Dependency Wheel][4] (Круг Зависимостей), отрисовка которого осуществляется с помощью D3.js а управление данными и отображением — с помощью Qt. При нахождении указателя над соответствующей дугой её взаимосвязи «подсвечиваются», а остальные становятся полупрозначными. Данный виджет можно использовать для визуализации различного рода зависимостей (например библиотек). В отличии от оригинального JS решения диаграмма динамически изменяет размер под размер виджета, а данные устанавливаются на стороне Qt, а не с помощью загрузки JSON-файла. Статья больше ориентирована на Qt-программистов, но также может быть интересна и JS программистам.



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

[1]: https://github.com/mbostock/d3/wiki/Gallery
[2]: http://qt-project.org/doc/qt-4.8/qtwebkit-bridge.html
[3]: http://www.slideshare.net/YnonPerek/hybrid-apps-with-qt
[4]: http://www.redotheweb.com/DependencyWheel/
[5]: http://habrahabr.ru/post/218389/#habracut

[>] LinuxCon + CloudOpen + Embedded LinuxCon Europe 2015: как это было
habra.15
habrabot(difrex,1) — All
2015-10-12 15:30:03


Раз в год в Европе проходит событие, которое мечтают посетить все, кто хоть что-то знает про Linux. Событие, которое собирает вокруг себя самое большое сообщество, когда-либо существовавшее на этой планете. Сообщество энтузиастов, хакеров, инженеров, программистов, админов, корпоративных боссов, всех тех, кто имеет работу и хобби благодаря Linux и open source. Мы в НТЦ Метротек привыкли делится знаниями и получать их, поэтому такое пропустить не могли. Дамы и господа, добро пожаловать в Дублин на тройную конференцию LinuxCon + CloudOpen + Embedded LinuxCon Europe 2015! ![image][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/4c6/e2e/f6e/4c6e2ef6e15746edbb2f56bbc1652b15.jpg
[2]: http://habrahabr.ru/post/268655/#habracut

[>] Как йога кодить и жить помогает: личный опыт
habra.15
habrabot(difrex,1) — All
2015-10-12 17:30:04


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

[1]: https://habrastorage.org/files/704/e45/bc6/704e45bc6f80447791fff3a258682066.jpg
[2]: http://habrahabr.ru/post/267699/#habracut

[>] SpecFlow и альтернативный подход к тестированию
habra.15
habrabot(difrex,1) — All
2015-10-12 17:30:05


![][1]Тестирование с помощью SpecFlow прочно вошло в мою жизнь, в список необходимых технологий для «хорошего проекта». Более того, несмотря на ориентированность SpecFlow на behaviour тесты, я пришел к мысли, что и integration и даже unit тесты могут получить преимущества этого подхода. Конечно, в написании таких тестов уже не будут участвовать люди из BA и QA, а только сами разработчики. Разумеется, что для небольших тестов это привносит немалый оверхэд. Но насколько же приятнее читать человеческое описание теста, нежели голый код. [Читать дальше →][2]

[1]: https://habrastorage.org/getpro/habr/post_images/e5a/a53/74d/e5aa5374dabf352fe3e9ba84bde4eef6.png
[2]: http://habrahabr.ru/post/268561/#habracut

Pages: 1 ... 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ... 210