RSS
Pages: 1 ... 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
[>] [Из песочницы] Внутреннее устройство Python list
habra.15
habrabot(difrex,1) — All
2015-12-14 17:00:02


_Предлагаю вашему вниманию перевод [публикации][1] Laurent Luce о реализации работы со списками в CPython. Она может быть полезна начинающим программистам на Python, либо готовящимся к собеседованию._ Эта статья описывает реализацию объекта списка в CPython, наиболее популярной реализации Python. Списки в Python — это мощный инструмент, и интересно узнать, как они устроены внутри. Взгляните на простой скрипт, который добавляет несколько целых значений в список и выводит их:

>>> l = []
>>> l.append(1)
>>> l.append(2)
>>> l.append(3)
>>> l
[1, 2, 3]
>>> for e in l:
... print e
...
1
2
3


Как вы можете видеть, список является итерируемым объектом.

##### C-структура объекта списка

Объект списка в CPython представлен нижеследующей структурой в C. ob\_item — это список указателей на элементы списка, allocated — количество выделенной памяти.

typedef struct {
PyObject_VAR_HEAD
PyObject **ob_item;
Py_ssize_t allocated;
} PyListObject;


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

[1]: http://www.laurentluce.com/posts/python-list-implementation/
[2]: http://habrahabr.ru/post/273045/#habracut

[>] Open-source реализации отечественных криптоГОСТов
habra.15
habrabot(difrex,1) — All
2015-12-14 18:00:02


На выходных решил поискать open-source реализации отечественных криптографических стандартов. Прежде всего интересовали новые: хэш-функция Стрибог (ГОСТ Р 34.11-2012), Кузнечик (ГОСТ Р 34.12-2015) и ЭЦП (ГОСТ Р 34.10-2012 или 2001 (без 512-бит) ). Старый ГОСТ 28147-89 специально не искал, поскольку найти его реализацию никаких проблем нет уже давно. Итак, давайте посмотрим, что же получилось. Сразу предупреждаю, что корректность реализаций не проверял. [Читать дальше →][1]

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

[>] Russian AI Cup: выбраны лучшие программисты искусственного интеллекта
habra.15
habrabot(difrex,1) — All
2015-12-14 18:00:02


![][1] 13 декабря [завершился][2] финал четвёртого ежегодного чемпионата по программированию искусственного интеллекта [Russian AI Cup][3]. В этот раз своё мастерство продемонстрировали свыше 1 600 программистов, создававшие искусственный интеллект для управления автомобилем в гонках на выживание. По условиям чемпионата можно было использовать один из языков: C++, Java, C#, Python, Ruby или Pascal. После серии напряжённых состязаний в финал выбились 50 сильнейших. И по результатам последней «гонки» золотой приз завоевал Александр «[santa324][4]» Санталов из Москвы. В качестве награды он получил MacBook Pro. «Серебро» и «бронза» достались Антону «[Angor][5]» Гордиенко из Москвы и Юрию «[SDil][6]» Семёнову из Санкт-Петербурга, они были награждены ультрабуками MacBook Air. Не остались без призов и конкурсанты, занявшие с четвёртого по шестое места, им были вручены планшеты iPad Air 2. Поздравляем Дениса «[ud1][7]» Уткина, Сергея «[SKolotienko][8]» Колотиенко и Сергея «[Karkun][9]» Иванова! Однако остальным участникам ещё рано расслабляться, а нам рано подводить окончательные итоги чемпионата. Предстоит ещё неделя состязаний в Песочнице, и по их итогам лучшие 6 участников получат поощрительные призы от партнёров мероприятия. [Читать дальше →][10]

[1]: https://habrastorage.org/files/b4c/ca2/064/b4cca206426f4d2882e240c7a622384e.jpg
[2]: http://russianaicup.ru/post/35
[3]: http://russianaicup.ru/
[4]: http://russianaicup.ru/profile/santa324
[5]: http://russianaicup.ru/profile/Angor
[6]: http://russianaicup.ru/profile/SDil
[7]: http://russianaicup.ru/profile/ud1
[8]: http://russianaicup.ru/profile/SKolotienko
[9]: http://russianaicup.ru/profile/Karkun
[10]: http://habrahabr.ru/post/272893/#habracut

[>] Контентная фильтрация: зачем и как это делать
habra.15
habrabot(difrex,1) — All
2015-12-14 18:30:02


Привет, Хабр! Сегодня мы поговорим о фильтрации интернет-контента. Три года назад вступил в силу федеральный закон 139-ФЗ, дополнивший уже принятый 436-ФЗ «О защите детей от информации, причиняющей вред их здоровью и развитию». В соответствии с российским [законодательством][1], доступ в интернет в школах возможен лишь «при условии применения административных и организационных мер, технических, программно-аппаратных средств защиты детей от информации, причиняющей вред их здоровью и (или) развитию». Другими словами, закон требует обязательной фильтрации интернет-контента. Добро пожаловать под кат. [![][2]][3] [Читать дальше →][4]

[1]: http://www.consultant.ru/document/cons_doc_LAW_108808/b663a547cc140a293671b9fc316f76f70c99e59f/
[2]: https://habrastorage.org/files/7f1/281/bb8/7f1281bb81e44f3ba724541567d557dd.jpg
[3]: http://habrahabr.ru/company/smart_soft/blog/273095/
[4]: http://habrahabr.ru/post/273095/#habracut

[>] Запросы классов в InterSystems Caché
habra.15
habrabot(difrex,1) — All
2015-12-14 18:30:02


[][1]

## Введение

[Запросы классов][2] InterSystems Caché — это полезный инструмент, используемый для абстракции от непосредственно SQL запросов в COS коде. В самом простом случае это выглядит так: допустим вы используете один и тот же SQL запрос в нескольких местах, но с разными аргументами. Для того чтобы не писать его каждый раз, вы можете обозначить текст запроса как запрос класса и в дальнейшем обращаться к этому запросу по его имени. А ещё есть кастомные запросы, в которых логику получения следующей строки результатов вы пишете сами. Под катом я расскажу о том, как этим всем можно пользоваться. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/intersystems/blog/270839/
[2]: http://docs.intersystems.com/cache20152/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_queries
[3]: http://habrahabr.ru/post/270839/#habracut

[>] [Из песочницы] Selenium для Python. Глава 5. Ожидания
habra.15
habrabot(difrex,1) — All
2015-12-14 18:30:02


Продолжение перевода неофициальной документации Selenium для Python. Оригинал можно найти [здесь][1].

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

1. [Установка][2] 2. [Первые шаги][3] 3. [Навигация][4] 4. [Поиск элементов][5] 5. Ожидания 6. Объекты Страницы 7. WebDriver API 8. Приложение: Часто Задаваемые Вопросы

## 5\. Ожидания

В наши дни большинство веб-приложений используют [AJAX][6] технологии. Когда страница загружена в браузере, элементы на этой странице могут подгружаться с различными временными интервалами. Это затрудняет поиск элементов, если элемент не присутствует в [DOM][7], возникает исключение ElementNotVisibleException. Используя ожидания, мы можем решить эту проблему. Ожидание дает некий временной интервал между произведенными действиями — поиске элемента или любой другой операции с элементом. [Читать дальше →][8]

[1]: http://selenium-python.readthedocs.org/waits.html
[2]: http://habrahabr.ru/post/248559/
[3]: http://habrahabr.ru/post/250921/
[4]: http://habrahabr.ru/post/250947/
[5]: http://habrahabr.ru/post/250975/
[6]: https://ru.wikipedia.org/wiki/AJAX
[7]: https://ru.wikipedia.org/wiki/Document_Object_Model
[8]: http://habrahabr.ru/post/273089/#habracut

[>] Тестирование производительности HP P2000 MSA G3
habra.15
habrabot(difrex,1) — All
2015-12-14 18:30:02


В [одной из наших прошлых статей][1], посвященной производительности дисковых систем серверов, мы рассказали о методике тестирования и подборе инструмента. Сейчас же, решили сравнить производительность СХД начального уровня и массива на контроллере P410. Напомню, что интересующие нас параметры: IOPS — количество дисковых операций в секунду (чем больше, тем лучше) и latency — время обработки операции (чем меньше, тем лучше).






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

[1]: http://habrahabr.ru/company/westcomp/blog/267435/
[2]: http://habrahabr.ru/post/271229/#habracut

[>] [Из песочницы] Программный многозадачный таймер на МК
habra.15
habrabot(difrex,1) — All
2015-12-14 18:30:02


В различного рода сложности реализуемых алгоритмов при программировании МК, всегда возникают рутинные циклические и не очень задачи. Одни требуют повышенной точности, другие таким критерием не обязаны обладать. Аппаратных таймеров на борту МК может быть приличное количество, например STM32F4 — аж 14 штук, и это не считая SysTick (системного), а в других и пара тройка за счастье: тот же PIC16, например. Для решения таких не спешных, не критичных ко времени задач можно и нужно применить программный таймер, на базе одного из аппаратных. Но обо всем по порядку… [Читать дальше →][1]

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

[>] Выпущен CrystaX NDK 10.3.0
habra.15
habrabot(difrex,1) — All
2015-12-14 18:30:02


Новая версия [CrystaX NDK 10.3.0][1] доступна для скачивания. Наиболее важные изменения в этом выпуске:

* Новые GCC и LLVM/clang.
* Сильно улучшена поддержка Objective-C v2.
* Добавлена поддержка Python (2.7 и 3.5) для Android.

Кроме этого, починено много ошибок и сделано огромное количество улучшений. Ниже вы можете ознакомиться с более подробной информацией. [Читать дальше →][2]

[1]: https://www.crystax.net/android/ndk
[2]: http://habrahabr.ru/post/273053/#habracut

[>] Об эффективности «учений» Рутрекера
habra.15
habrabot(difrex,1) — All
2015-12-14 19:00:02




> «У любой задачи существует по крайней мере одно очевидное и невероятно простое для понимания неправильное решение»

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

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

[>] Репликация без конфликтов: CRDT в теории и на практике
habra.15
habrabot(difrex,1) — All
2015-12-15 09:00:02


В распределённых хранилищах или редакторах каких-либо данных часто бывает нужна поддержка внесения изменений оффлайн, без блокировок и конфликтов. Для этого применяются разные подходы, один из которых — алгоритмы и типы данных conflict-free replicated data type (CRDT). ![][1] [Читать дальше →][2]

[1]: https://habrastorage.org/files/a51/e03/6b8/a51e036b89dd4ee6a36ba8b3f25ccabf.png
[2]: http://habrahabr.ru/post/272987/#habracut

[>] [Из песочницы] PyLOO — Библиотека для генерации отчетов, счетов Libre/Open Office на Python
habra.15
habrabot(difrex,1) — All
2015-12-15 12:30:02


Порой возникают задачи, когда возникает необходимость формировать отчеты и прочие документы. В моей практике данная задача возникала не раз. Проекты, в которых возникала данная задача:

* складской учет
* учет объектов недвижимости
* документооборот

Первый мой опыт был с MS Office, но позже возникла необходимость в разработке кросс-платформенных решений, посему выбор пал на OpenOffice. Т.к. в большинстве случаев нужно было формировать таблицы, то был выбран OpenOffice Calc. [Читать дальше →][1]

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

[>] Зоопарк коммуникационных протоколов для GPS-трекеров (часть 2)
habra.15
habrabot(difrex,1) — All
2015-12-15 14:00:01


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

[1]: https://habrastorage.org/files/677/5d7/ca8/6775d7ca875c411c8e8b7c8b91246ea8.jpg
[2]: http://habrahabr.ru/post/273127/#habracut

[>] Управление дронами с помощью приложений для распознавания речи на основе Intel RealSense SDK
habra.15
habrabot(difrex,1) — All
2015-12-15 14:00:01


![][1] В новостях рассказывают о дронах — беспилотных летательных аппаратах — буквально каждый день. Области применения у них самые разные: разведка и боевые операции, фото- и видеосъемка, да и просто развлечения. Технология дронов достаточно новая и заслуживает интереса. Разработчики могут создавать приложения для управления дронами. Дрон в конечном итоге является обычным программируемым устройством, поэтому к нему можно подключаться и отдавать команды для выполнения нужных действий с помощью обычных приложений для ПК и смартфонов. Для этой статьи я выбрал один из дронов с самыми мощными возможностями программирования — [AR.Drone 2.0 компании Parrot][2]. Мы узнаем, как взаимодействовать с таким дроном и управлять им с помощью библиотеки, написанной на C#. Опираясь на эту основу, мы добавим речевые команды для управления дроном с помощью [Intel RealSense SDK][3]. [Читать дальше →][4]

[1]: https://habrastorage.org/files/c96/48b/6c1/c9648b6c10d74245b0d667767f2efc57.jpg
[2]: http://ardrone2.parrot.com/
[3]: https://software.intel.com/en-us/intel-realsense-sdk
[4]: http://habrahabr.ru/post/273083/#habracut

[>] [Из песочницы] Нелокальный алгоритм для сглаживания изображений
habra.15
habrabot(difrex,1) — All
2015-12-15 15:00:02


Избавление изображения от шума – одна из фундаментальных операций компьютерного зрения. Алгоритмы сглаживания применяются почти везде: они могут быть как самостоятельной процедурой для улучшения фотографии, так и первым шагом для более сложной процедуры, например, для распознавания объектов на изображении. Поэтому существует огромное множество способов сглаживания, и я бы хотел рассказать об одном из них, отличающемся от остальных хорошей применимостью на текстурах и изображениях с большим количеством одинаковых деталей. Под катом много картинок, аккуратнее с траффиком. [Узнать больше про нелокальный алгоритм сглаживания][1]

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

[>] OpenSource.Mail.Ru: открытые проекты наших сотрудников
habra.15
habrabot(difrex,1) — All
2015-12-15 17:30:03


![image][1] Одним из главных принципов, лежащих в основе движения за открытый исходный код, — Open Source, — является свобода распространения информации. Жизнестойкость этой идеи подтверждают примеры многих успешных проектов, развиваемых свободным сообществом программистов со всего мира. Наверное, кого-то это удивит, но мы тоже активно развиваем множество opensource-проектов. И недавно мы обнаружили, информация об этих проектах разбросана по сети, и разработчики одних продуктов могут совершенно не знать о других, которые могли бы оказаться для них полезными. Так и родилась идея создать информационный сайт [OpenSource.Mail.Ru][2]. [Читать дальше →][3]

[1]: https://habrastorage.org/getpro/habr/post_images/a13/443/319/a13443319110394cd8880f8523d68f12.png
[2]: https://opensource.mail.ru/Home
[3]: http://habrahabr.ru/post/273107/#habracut

[>] Какие микроатаки постоянно идут на офис: детский социнжиниринг и фишинг
habra.15
habrabot(difrex,1) — All
2015-12-15 18:30:02


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

[1]: https://habrastorage.org/files/6ad/f5a/109/6adf5a109b2447dd88a0cce5688f780f.jpg
[2]: http://habrahabr.ru/post/272287/#habracut

[>] [Из песочницы] Проверка теории шести рукопожатий
habra.15
habrabot(difrex,1) — All
2015-12-15 19:00:03


![][1] Хочу рассказать о своем эксперименте по проверке [«Теории шести рукопожатий»][2]. На написание этого материала меня вдохновила статья [«Анализ дружеских связей VK с помощью Python»][3] (чтобы избежать повторений, в дальнейшем я буду ссылаться на нее). Так как в целом задача мной была поставлена по-другому, да и использованные методы тоже отличаются, то я решил что это может быть интересно. [Читать дальше →][4]

[1]: https://habrastorage.org/files/b74/bc9/c7b/b74bc9c7b14a41c695dd8bc0861ca5f7.gif
[2]: https://ru.wikipedia.org/wiki/Теория_шести_рукопожатий
[3]: http://habrahabr.ru/post/221251/
[4]: http://habrahabr.ru/post/273191/#habracut

[>] DB hacking или экскурс в мир СУБД
habra.15
habrabot(difrex,1) — All
2015-12-15 19:00:03


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

[1]: https://habrastorage.org/files/9b5/1aa/8bd/9b51aa8bdec247c9958a721f016eca22.png
[2]: http://habrahabr.ru/post/273125/#habracut

[>] В CMS Joomla обнаружена критическая 0-day уязвимость
habra.15
habrabot(difrex,1) — All
2015-12-15 23:00:02


[![][1]][2] Во вторник 14 декабря команда разработки Joomla выпустила срочное [обновление][3] безопасности, закрывающее 0-day уязвимость, которая открывает злоумышленникам возможность удаленного исполнения кода. Хакеры уже активно пытаются атаковать уязвимые сайты. [Читать дальше →][4]

[1]: https://habrastorage.org/files/f9c/e7b/aef/f9ce7baefe0c4c78bc3ce2a097a8c467.png
[2]: http://habrahabr.ru/company/pt/blog/273213/
[3]: https://developer.joomla.org/security-centre/630-20151214-core-remote-code-execution-vulnerability.html
[4]: http://habrahabr.ru/post/273213/#habracut

[>] Pebble: Timeline — вид «изнутри»
habra.15
habrabot(difrex,1) — All
2015-12-16 00:00:02


![][1] И на улице обладателей «классических» Pebble случился праздник — началось закрытое (по подписке) beta-тестирование Timeline-прошивки (которую, кстати сказать, обещали ещё в августе). Приглашаю под кат, разобраться что представляет из себя Timeline, который изначально доступен пользователям Pebble Time и уже скоро будет радовать (или не очень) всех владельцев Pebble. [Читать дальше →][2]

[1]: https://habrastorage.org/files/d9d/d00/d6b/d9dd00d6ba8649e2b531e03d40fade8d.png
[2]: http://habrahabr.ru/post/273169/#habracut

[>] Реестр отечественного ПО
habra.15
habrabot(difrex,1) — All
2015-12-16 12:00:03


Речь пойдет о следующем: — что это вообще за Реестр отечественного ПО; — требования к желающим внести свое ПО в реестр отечественного ПО; — почему НЕ нужно срочно регистрировать свое ПО в Роспатенте. [Читать дальше →][1]

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

[>] [Из песочницы] Как попасть на дачу президента в пять часов утра
habra.15
habrabot(difrex,1) — All
2015-12-16 13:00:01


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

[1]: http://www.therunet.com/uploads/image_block/image/2469/main_%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0_2013-03-28_%D0%B2_11.20.41_PM.png
[2]: http://habrahabr.ru/post/273249/#habracut

[>] [Из песочницы] Парсинг формул в 50 строк на Python
habra.15
habrabot(difrex,1) — All
2015-12-16 13:30:03


Вдохновение — [задача с собеседования Яндекса][1] и статья [«Парсинг формул в 40 строк»][2]. Моей целью было посмотреть, как будет выглядеть «pythonic» решение этой задачи. Хотелось, чтобы решение было простым, код читаемым и разделённым. В итоге ещё получился и пример применения цепочки генераторов (generators pipeline). [Читать дальше →][3]

[1]: http://habrahabr.ru/company/yandex/blog/206234/
[2]: http://habrahabr.ru/post/216449/
[3]: http://habrahabr.ru/post/273253/#habracut

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


Добрый день, Хабр! Мы только что выпустили книгу по [Юнити][1], и нам стало интересно насколько вообще актуальна тема программирования игр. Казалось бы книг на эту тему должно быть выпущено огромное множество, но это не так. Только что вышла книга "[Multiplayer Game Programming: Architecting Networked Games (Game Design)][2]". Насколько актуален ее перевод на русский язык? Подробности под катом. Ждем ваши комментарии [Читать дальше →][3]

[1]: http://habrahabr.ru/company/piter/blog/256859/
[2]: http://www.amazon.com/dp/0134034309
[3]: http://habrahabr.ru/post/271849/#habracut

[>] [Перевод] Мифы о /dev/urandom
habra.15
habrabot(difrex,1) — All
2015-12-16 14:30:02


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

[1]: https://habrastorage.org/getpro/habr/post_images/124/74d/bbd/12474dbbdcdeefc692f7a81ef6474f49.jpg
[2]: http://habrahabr.ru/post/273147/#habracut

[>] Apache Spark в «боевых» проектах — опыт выживания
habra.15
habrabot(difrex,1) — All
2015-12-16 16:30:02


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

[1]: http://bigdataconf.com.ua/2015/
[2]: http://habrahabr.ru/post/273279/#habracut

[>] Фестиваль данных в музее Москвы, или как Big Data помогает жить и работать
habra.15
habrabot(difrex,1) — All
2015-12-16 18:30:02


![][1] Привет Хабр, Если вам давно было интересно, как Big Data применяется в разных областях бизнеса, науки и государственного управления и это хотелось услышать от самих людей, которые этим занимаются, то добро пожаловать на Фестиваль Данных, который будет проходить 19 декабря на Выставке Высоких Технологий SMIT в Музее Москвы. В течение нескольких часов работы Фестиваля ведущие эксперты отрасли из Yandex, «Школы данных Билайн», Data-Centric Alliance, Авито, ГУП «НИ и ПИ Генплана Москвы, НИУ ВШЭ расскажут гостям выставки о перспективах использования анализа данных в ближайшие несколько лет. [Читать дальше →][2]

[1]: https://habrastorage.org/files/95d/e46/453/95de46453bac40e08b6c42b26baf590d.jpg
[2]: http://habrahabr.ru/post/273117/#habracut

[>] Selenium для Python. Глава 6. Объекты Страницы
habra.15
habrabot(difrex,1) — All
2015-12-16 19:30:03


Продолжение перевода неофициальной документации Selenium для Python. Оригинал можно найти [здесь][1].

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

1. [Установка][2] 2. [Первые шаги][3] 3. [Навигация][4] 4. [Поиск элементов][5] 5. [Ожидания][6] 6. Объекты Страницы 7. WebDriver API 8. Приложение: Часто Задаваемые Вопросы

## 6\. Объекты страницы

Этот раздел является введением в руководство по паттернам проектирования объектов страницы. Объект страницы представляет собой область пользовательского интерфейса в веб-приложении, с которой будет взаимодействовать ваш тест. Плюсы использования паттернов объектов страницы:

* Создание многократно используемого кода, который может быть использован среди множества тест-кейсов
* Уменьшение количества дублируемого кода
* Если интерфейс пользователя изменяется, требуется правка всего в одном месте

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

[1]: http://selenium-python.readthedocs.org/page-objects.html
[2]: http://habrahabr.ru/post/248559/
[3]: http://habrahabr.ru/post/250921/
[4]: http://habrahabr.ru/post/250947/
[5]: http://habrahabr.ru/post/250975/
[6]: http://habrahabr.ru/post/273089/
[7]: http://habrahabr.ru/post/273115/#habracut

[>] Как за 5233 человеко-часа создать софт для микротомографа
habra.15
habrabot(difrex,1) — All
2015-12-16 19:30:03


![][1] Хочу поподробнее рассказать об интересном [проекте компании Edison][2]. Перед разработчиками поставили задачу написать софт для микротомографа, они с этим отлично справились, а потом запихивали в этот томограф семечки, болты, конденсаторы и моль. А серьезным дядям этот томограф нужен, чтобы проверять алмазы и не покупать дырявые. ![][3] А еще сегодня 16 декабря, день рождения [Иоганна Радона][4], австрийского математика, ректора Венского университета, который в 1917 году ввел интегральное преобразование функции многих переменных, родственное преобразованию Фурье, используемое сегодня во всех томографах. Иоганн Радон был профессором 6 университетов (а в одном из них даже без кафедры), был президентом Австрийского математического общества. В Австрии в честь него назвали «Институт вычислительной и прикладной математики» и медаль. О том, как проходила разработка софта для томографа и какие задачи решались в процессе — под катом. [Читать дальше →][5]

[1]: https://habrastorage.org/files/4f2/884/da6/4f2884da68ff4c4ca11d9f1cb1567bf6.jpg
[2]: http://www.edsd.com/software-for-new-tomography-device
[3]: https://habrastorage.org/files/ca4/950/1e2/ca49501e2f6b4f2fae8cf24eccc72c51.jpg
[4]: https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B4%D0%BE%D0%BD,_%D0%98%D0%BE%D0%B3%D0%B0%D0%BD%D0%BD
[5]: http://habrahabr.ru/post/273295/#habracut

[>] [recovery mode] Утрачиваемое искусство доказательства защищенности. Часть 1 из 2
habra.15
habrabot(difrex,1) — All
2015-12-16 20:00:02


_Пашков Юрий, [Пашков Кузьма][1] — Lead [InfoSec][2], [EMC][3], [VMWare][4] trainer @ [training.muk.ua][5]_ Многолетний опыт преподавания по направлению «Информационная безопасность» (далее ИБ) позволяет констатировать положительные тенденции в этой области:

* Владельцы бизнеса, наконец, стали считать риски ИБ такими же значимыми как финансовые и операционные, и все чаще ищут не только доверенных, но квалифицированных советников на должности уровня CSO (Chief Security Officer)
* Нормативный подход к построению систем защиты позволил ИБ стать массово потребляемой услугой
* Взрывной рост рисков ИБ поддерживает стабильно высокий спрос и предложение на рынке услуг обучения по соответствующему направлению

В тоже время налицо и отрицательные:

* Подтвердить свою квалификацию в ИБ сегодня так же сложно, в особенности если успешный опыт работы получен в странах СНГ, а потенциальный работодатель находится в США\\Европе
* Массовость приводит к проблеме консьюмеризации ИБ
* Падает качество услуг обучения и уровень квалификации специалистов

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

[1]: http://www.linkedin.com/in/kouzma
[2]: http://training.muk.ua/courses/security/
[3]: http://training.muk.ua/courses/emc/
[4]: http://training.muk.ua/courses/vmware/
[5]: http://training.muk.ua/
[6]: http://habrahabr.ru/post/272789/#habracut

[>] Создание бизнес-процесса на языке BPEL с использованием платформы Serena Business Manager
habra.15
habrabot(difrex,1) — All
2015-12-16 20:00:02


Пройдясь поиском по Хабрахабру, удалось обнаружить не так уж и много информации, посвященной, надо сказать, не очень распространённому языку BPEL (Business Process Execution Language). Если говорить в общем, то BPEL – это язык, основанный на формате XML, который позволяет описывать логику бизнес-процессов через использование веб-служб. [][1]



Реализаций движков, позволяющих создавать процессы с использованием этого языка, мне известно не так уж и много. В частности, можно упомянуть Oracle BPEL Process Manager и продукт, о котором пойдет речь дальше – Serena Business Manager (SBM). SBM позволяет быстро создавать web-приложения, автоматизирующие какой-нибудь процесс. В модели процесса (workflow) предусмотрена возможность в момент изменения состояния вызвать внешнюю web службу. А если нужно реализовать какую-нибудь логику и одного вызова недостаточно? Вот тут и пригодится процедура, написанная на языке BPEL и исполняемая средствами той же платформы BPM. Подробнее на самом языке я останавливаться не буду, в сети можно найти достаточно информации на эту тему, например, [здесь][2]. Я же опишу реализацию конкретной задачи. [Читать дальше →][3]

[1]: http://habrahabr.ru/company/softmart/blog/273281/
[2]: http://docs.oasis-open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html
[3]: http://habrahabr.ru/post/273281/#habracut

[>] Добавление пакетов к автономному установщику Lubuntu Alternate ISO
habra.15
habrabot(difrex,1) — All
2015-12-16 20:00:02




# Введение

При создании автономных установочных носителей для автоматизированной установки ОС Lubuntu 14.04 с использованием [preseed][1], я столкнулся с тем, что мне нужно добавить на установочный носитель пакеты, которые отсутствуют в исходном [alternate-дистрибутиве][2]. Я перепробовал много различных способов создания собственных автономных дистрибутивов, но они оказались:

* либо неподходящими ([LiveCDCustomization][3]), т.к. мне нужен не LiveCD, а установочный preseed-дистрибутив;
* либо очень сложными ([DebianCustomCD][4]);
* либо работали, не как ожидалось ([Simple-CDD][5], [DebianInstaller/Modify/CD][6]), а может я не до конца разобрался.

В итоге остановился на способе, который [описан в сообществе Ubuntu][7]. Хочу рассказать о том, что у меня получилось. [Читать дальше →][8]

[1]: https://wiki.debian.org/DebianInstaller/Preseed
[2]: https://help.ubuntu.com/community/Lubuntu/Alternate_ISO
[3]: https://help.ubuntu.com/community/LiveCDCustomization
[4]: https://wiki.debian.org/DebianCustomCD
[5]: https://wiki.debian.org/Simple-CDD/Howto
[6]: https://wiki.debian.org/DebianInstaller/Modify/CD
[7]: https://help.ubuntu.com/community/InstallCDCustomization
[8]: http://habrahabr.ru/post/273255/#habracut

[>] Изучаем граф-ориентированную СУБД Neo4j на примере лексической базы Wordnet
habra.15
habrabot(difrex,1) — All
2015-12-16 20:00:02


![][1] СУБД Neo4j — это NoSQL база данных, ориентированная на хранение графов. Изюминкой продукта является декларативный язык запросов Cypher. Cypher позаимствовал ключевые слова типа WHERE, ORDER BY из SQL; синтаксис из таких разных языков как Python, Haskell, SPARQL; и в результате появился язык, позволяющий делать запросы к графам в визуальной форме наподобие [ASCII art][2]. Например, заголовок данной статьи я бы представил в виде графа **(Neo4j) — [изучаем] -> (Wordnet)**. И это почти готовый запрос к базе данных!





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

[1]: https://habrastorage.org/files/2a3/d81/137/2a3d81137cca4753b89ca341f034a7a2.png
[2]: https://en.wikipedia.org/wiki/ASCII_art
[3]: http://habrahabr.ru/post/273241/#habracut

[>] Топ 5 опасных угроз от сторонних поставщиков
habra.15
habrabot(difrex,1) — All
2015-12-16 20:00:02


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

[1]: https://habrastorage.org/files/1d3/4be/f32/1d34bef323ae4795a6df8550a666cc2f.jpg
[2]: http://habrahabr.ru/post/272285/#habracut

[>] [Перевод] Социальная сеть вселенной Звёздных войн
habra.15
habrabot(difrex,1) — All
2015-12-17 09:30:02


![image][1] Кто-то ждёт рождества, кто-то – новой серии Звёздных войн, «Пробуждение силы». А в это время я решила обработать весь шестисерийный цикл с количественной точки зрения и вычленить социальные сети, содержащиеся в нём – как из каждого фильма по отдельности, так и из всей вселенной ЗВ вместе. Пристальное разглядывание соцсетей выявляет интересные различия между оригинальными частями и их приквелами. Ниже – соцсеть, добытая из всех 6 фильмов в сумме. ![image][2] [**открыть**][3] [Читать дальше →][4]

[1]: https://habrastorage.org/getpro/habr/post_images/496/3e6/710/4963e671083f06363a57f5005cfe17cc.png
[2]: https://habrastorage.org/getpro/habr/post_images/4fb/c4c/e2b/4fbc4ce2b0d4ec915d94e8788f7e4794.png
[3]: http://evelinag.com/blog/2015/12-15-star-wars-social-network/interactions.html
[4]: http://habrahabr.ru/post/273319/#habracut

[>] Обнаружение инсайдерской торговли: Алгоритмы выявления и паттерны незаконных сделок
habra.15
habrabot(difrex,1) — All
2015-12-17 13:00:03


[![][1]][2] Как конкретно ведут себя инсайдеры на бирже? Зависят ли их сделки от занимаемой должности в компании (генеральный или финансовый директор), меняется ли поведение инсайдеров с течением времени (повлиял ли на него, к примеру, кризис 2008 года)? Группа исследователей из технологического института Джорджии провели [исследование][3] на основе данных о 12 млн транзакций, совершенных 370 тысячами инсайдеров в период с 1986 по 2012 год. Целью этой работы было выявление паттернов поведения игроков на фондовом рынке, с помощью которых регулирующие органы могли бы обнаруживать и пресекать незаконную инсайдерскую торговлю. Мы представляем вашему вниманию основные моменты этого документа. [Читать дальше →][4]

[1]: https://habrastorage.org/files/e64/df7/5bc/e64df75bc04247f59aadf21993fb82ff.png
[2]: http://habrahabr.ru/company/itinvest/blog/273337/
[3]: http://www.cc.gatech.edu/~dchau/papers/13-snam-insider.pdf
[4]: http://habrahabr.ru/post/273337/#habracut

[>] Вперед, на поиски палиндромов 3
habra.15
habrabot(difrex,1) — All
2015-12-17 14:30:02


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

> «The decimal number 585 is 1001001001 in binary. It is palindromic in both bases. Find n-th palindromic number». Или, по-русски: «Десятичное число 585 в двоичной системе счисления выглядит как 1001001001. Оно является палиндромом в обеих системах счисления. Найдите n-й подобный палиндром».

Но само существование значительно более быстрого, с принципиально другой вычислительной сложностью, алгоритма не давало мне покоя, и в конце концов я вернулся к его [разбору][2]. В конце концов, алгоритм оказался не таким уж и сложным, зато, на мой взгляд, очень красивым. [Как же они это сделали?][3]

[1]: http://habrahabr.ru/post/272555/
[2]: https://discuss.codechef.com/questions/74483/dualpal-editorial
[3]: http://habrahabr.ru/post/272659/#habracut

[>] Как выбрать язык программирования?
habra.15
habrabot(difrex,1) — All
2015-12-17 14:30:02


![][1] Именно таким вопросом задалась команда Почты Mail.Ru перед написанием очередного сервиса. Основная цель такого выбора — высокая эффективность процесса разработки в рамках выбранного языка/технологии. Что влияет на этот показатель?

* Производительность;
* Наличие средств отладки и профилирования;
* Большое сообщество, позволяющее быстро найти ответы на вопросы;
* Наличие стабильных библиотек и модулей, необходимых для разработки веб-приложений;
* Количество разработчиков на рынке;
* Возможность разработки в современных IDE;
* Порог вхождения в язык.

Кроме этого, разработчики приветствовали немногословность и выразительность языка. Лаконичность, безусловно, так же влияет на эффективность разработки, как отсутствие килограммовых гирь на вероятность успеха марафонца. [Читать дальше →][2]

[1]: https://habrastorage.org/files/cfc/193/a51/cfc193a5171e494a9eb32230201204b2.jpg
[2]: http://habrahabr.ru/post/273341/#habracut

[>] Как я 8 месяцев переписывал свою криптовалюту с PHP на Go. Часть 2
habra.15
habrabot(difrex,1) — All
2015-12-17 17:30:02


![][1] 2-я часть истории, которая началась с смс-ки от Кати «Не звони и не пиши мне больше!!!!» [Читать дальше →][2]

[1]: https://habrastorage.org/files/912/ce1/f48/912ce1f48a75415fb529d933668ed3bd.jpeg
[2]: http://habrahabr.ru/post/273333/#habracut

[>] Критическая уязвимость в загрузчике Grub2 позволяет обходить защиту паролем
habra.15
habrabot(difrex,1) — All
2015-12-17 23:00:02


[![][1]][2] Исследователи безопасности Гектор Марко (Hector Marco) и Исмаэль Риполл (Ismael Ripoll) [опубликовали][3] информацию об обнаруженной ими 0-day уязвимости в популярном загрузчике Grub2, который используется в большинстве Linux-системах. Эксплуатация уязвимости позволяет получить доступ к аварийной консоли Grub2 в обход пароля. Это, в свою очередь, открывает злоумышленнику возможность проведение атаки направленной на повышение привилегий в систем и доступа ко всей информации. [Читать дальше →][4]

[1]: https://habrastorage.org/files/992/deb/30e/992deb30e05c40f599617468132dacf3.png
[2]: http://habrahabr.ru/company/pt/blog/273389/
[3]: http://hmarco.org/bugs/CVE-2015-8370-Grub2-authentication-bypass.html
[4]: http://habrahabr.ru/post/273389/#habracut

[>] Установка VNC сервера, и настройка его работы поверх SSH
habra.15
habrabot(difrex,1) — All
2015-12-18 01:00:02


![][1] Да, отчего-то не все клиенты хотят работать в таком удобном и черном терминале, панель полностью не удовлетворяет их эстетические потребности, и вообще — «где мой такой любимый и удобный VNC?». В данной статье будет рассмотрен пример установки и настройки [VNC server][2] и графической оболочки ([GUI][3]) на примере OC Debian 8 jessie. [читать дальше][4]

[1]: https://habrastorage.org/files/a13/7bf/79c/a137bf79cd924f7d9f5a47eab7faf671.png
[2]: https://ru.wikipedia.org/wiki/Virtual_Network_Computing
[3]: https://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F
[4]: http://habrahabr.ru/post/273201/#habracut

[>] Python->Cython->C++, да и COM в придачу: написание фреймворка для автотестов
habra.15
habrabot(difrex,1) — All
2015-12-18 11:00:03


Я думаю все в курсе о пользе автотестов. Они помогают держать код в работоспособном состоянии даже при существенных изменениях. Так же это может избавить тестировщиков от нудной ручной работы и позволяет сосредоточиться на более интересных видах тестирования. Несмотря на то, что отдельным частям нашего проекта более 25 лет, мы только в самом начале пути внедрения автоматического тестирования. Тем не менее, у нас уже есть некоторые успехи, о которых я хочу поведать в этой статье. Как писать хорошие автотесты – тема отдельной статьи. И, вероятно, не одной. Я же расскажу вам как мы внедрили тестирование отдельных компонентов. Компоненты написаны на С++ и имеют интерфейсы очень похожие на СОМ. В качестве языка для тестов мы выбрали python и используем очень мощный тестовый фреймворк PyTest. В статье я расскажу про сложности связки С++/СОМ и питона, подводные камни, на которые мы наткнулись и как решали эти проблемы. [Читать дальше →][1]

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

[>] Шорткаты в JavaScript
habra.15
habrabot(difrex,1) — All
2015-12-18 12:00:02


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

[1]: https://habrastorage.org/files/2d8/17b/92b/2d817b92b57a4d54925e3557ef8d0055.jpg
[2]: http://habrahabr.ru/post/273267/#habracut

[>] [Из песочницы] Быстро поднятое не считается упавшим. Повышаем отказоустойчивость встраиваемых систем
habra.15
habrabot(difrex,1) — All
2015-12-18 14:00:03


![image][1] Год назад выполнял довольно интересную работу по разработке встраиваемого компьютера для одного предприятия, занимающегося электроникой. Компьютер ничего принципиально интересного не представлял: процессор Cortex A-8, работающий на субгигагерцовых частотах, 512Mb DDR3, 1Gb NAND, легковесная сборка Linux. Однако устройству, в который компьютер встраивался, а значит и ему самому, предстояло работать в довольно жестких условиях. Широкий температурный диапазон (от -40 до +85 градусов Цельсия), влагостойкость, стойкость к электромагнитным излучениям, киловольтные импульсы по питанию, защита от статики в 4 кВ и много чего интересного, что хорошо описано в различных ГОСТах на спецтехнику, – это все про него. Одно из основных требований заказчика – срок выработки на отказ не менее 10 лет. При этом производитель обеспечивает гарантийный ремонт изделия в течении пяти лет, потому вопрос не риторический, а денежный и серьезный. В изделие была заложена соответствующая элементная база. Прибор с честью прошел испытания и получил требуемые сертификаты, но разговор не про то. Проблемы начались когда была изготовлена установочная партия, и устройства разошлись по отделам и КБ для создания прикладного ПО. Пошли возвраты с формулировкой: «Чего-то не загружается». [Читать дальше →][2]

[1]: https://habrastorage.org/files/054/f4a/a9d/054f4aa9dd7648678e0f2fa37e02c387.png
[2]: http://habrahabr.ru/post/273425/#habracut

[>] Advent of Code
habra.15
habrabot(difrex,1) — All
2015-12-18 15:00:04


Удивлен, что ссылки на [Advent of Code][1] до сих пор не видно на Хабре. ![][2] Если вкратце, то это [рождественский календарь][3], где каждый день открывается по небольшой задачке на программирование. Сегодня пятница, и уже открыто 18 штук — отличный повод размять мозги, или потренироваться в написании программ на новом языке, до изучения которого никак не доходили руки. [Читать дальше →][4]

[1]: http://adventofcode.com/
[2]: https://habrastorage.org/getpro/habr/post_images/39a/fe4/15b/39afe415b2976f3ee122adb61d6b5113.png
[3]: https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B6%D0%B4%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C
[4]: http://habrahabr.ru/post/273417/#habracut

[>] Дети и родители в Сети: история взлома сервисов VTech
habra.15
habrabot(difrex,1) — All
2015-12-18 15:30:03


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

[1]: https://habrastorage.org/getpro/habr/post_images/9ad/7d0/a28/9ad7d0a288bbe3feb0024f8709815b5a.jpg
[2]: http://habrahabr.ru/post/273423/#habracut

[>] Разработка плагинов для Atlassian JIRA
habra.15
habrabot(difrex,1) — All
2015-12-18 16:30:04


![][1] Все мы в IT сталкивались с системами отслеживания ошибок — с так называемыми баг-трекерами, с issue-трекерами. Один из популярных продуктов такого рода — Atlassian JIRA. На самом деле, Atlassian JIRA — это больше, чем просто система отслеживания ошибок. JIRA может использоваться довольно широко — в том числе и для управления проектами. Можно сказать, что JIRA — это система для отслеживания статуса задач. Задачи могут быть разными: это сбор требований, тестирование, непосредственно разработка и т. д. Я видел даже попытки подсадить на JIRA бухгалтеров — а что, мол, будет у нас agile-бухгалтерия! На официальном же сайте JIRA описывается следующим образом: _JIRA is the tracker for teams planning and building great products. Thousands of teams choose JIRA to capture and organize issues, assign work, and follow team activity. At your desk or on the go with the new mobile interface, JIRA helps your team get the job done. В общем, основная идея JIRA в том, что она позволяет планировать работу. _ В этой статье я расскажу о том, как разрабатывать дополнения к этой программе. Впрочем, может возникнуть вопрос — а зачем разрабатывать дополнения для JIRA. Поэтому давайте рассмотрим, какие дополнения бывают. [Читать дальше →][2]

[1]: https://habrastorage.org/files/865/7fe/e45/8657fee4526e4623bedaa8553f87f07f.png
[2]: http://habrahabr.ru/post/273429/#habracut

[>] [Из песочницы] Сборка XGBoost для Python под Windows
habra.15
habrabot(difrex,1) — All
2015-12-18 18:00:04


_Windows is so evil that consumes extra energy to make the things running._ ![][1] Библиотека [XGBoost][2] гремит на всех соревнованиях по машинному обучению и помогает завоёвывать призовые места. Однако, стать обладателем этого пакета для Python под Windows не так просто. Процесс установки скудно описан на [GitHub][3] и немногим шире на[ форуме Kaggle][4]. Поэтому попробую описать пошагово и более подробно. Надеюсь это поможет сохранить много времени неопытным пользователям. [Читать дальше →][5]

[1]: https://habrastorage.org/files/420/763/71c/42076371c9634d68b5a32622c70cb1bf.png
[2]: https://github.com/dmlc/xgboost
[3]: https://github.com/dmlc/xgboost/tree/master/windows
[4]: https://www.kaggle.com/c/otto-group-product-classification-challenge/forums/t/13043/run-xgboost-from-windows-and-python
[5]: http://habrahabr.ru/post/273363/#habracut

[>] Синхронный код в асинхронном Twisted, или сказ о том, как скрестить ежа с ужом
habra.15
habrabot(difrex,1) — All
2015-12-18 18:00:04




##### Всё хорошо

[Twisted][1] — асинхронный (событийно-ориентированный) фреймворк, написанный на Python. Мощное средство для быстрой разработки сетевых (и не только) сервисов. Он разработан с использованием паттерна проектирования [Reactor][2]. Сервисы созданные с использованием Twisted быстры и надежны, фреймворк позволяет не писать макаронный код, насыщенный непонятными коллбэками, имеет внутри себя красивые хелперы (Deferred, Transport, Protocol etc). Другими словами, делает нашу жизнь бекенд разработчиков лучше.

##### Но есть и проблемы

Основная проблема в том, что многочисленные, надежные, оттестированные, удобные библиотеки, использующие в своей основе синхронные модули Python (socket, os, ssl, time, select, thread, subprocess, sys, signal etc), просто возьмут и заблокируют нам основной процесс, цикл реактора и наступит беда. Такими библиотеками, к примеру, являются psycopg2, request, mysql и другие. В частности, psycopg2 используется в Django ORM как один из бекендов баз данных.

##### Что же делать?

Есть три пути. Сложный, приемлемый и хороший. Сложный — реализовать аналог библиотеки на Twisted. Приемлемый — использовать deferToThread и запускать синхронный код в отдельных потоках (используя пул потоков реализованный в Twisted). О хорошем пути (по моему мнению) и пойдет речь в заметке. [![Скрестить ежа с ужом][3]][4] [Читать дальше →][5]

[1]: https://twistedmatrix.com/trac/
[2]: https://en.wikipedia.org/wiki/Reactor_pattern
[3]: https://habrastorage.org/files/603/884/7fb/6038847fb6d740b5b2abe5f02a8d01fb.jpg "Скрестить ежа с ужом"
[4]: /post/266887/
[5]: http://habrahabr.ru/post/266887/#habracut

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