IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
читайте авторский блог

     17.07.2017       Выпуск 187 (17.07.2017 - 23.07.2017)       Статьи

Использование нейронных сетей для распознавания рукописных цифр Часть 1

Человеческая визуальная система — одна из самых удивительных на свете. В каждом полушарии нашего мозга есть зрительная кора, содержащая 140 млн. нейронов с десятками млрд. связей между ними, но такая кора не одна, их несколько, и вместе они образуют настоящий суперкомпьютер в нашей голове, лучшим образом адаптированный в ходе эволюции под восприятие визуальной составляющей нашего мира. Но трудность распознавания визуальных образов становится очевидной, если вы попытаетесь написать программу для распознавания, скажем, рукописных цифр.

     15.07.2017       Выпуск 186 (10.07.2017 - 16.07.2017)       Статьи

Метод BFGS или один из самых эффективных методов оптимизации. Пример реализации на Python


Метод BFGS, итерационный метод численной оптимизации, назван в честь его исследователей: Broyden, Fletcher, Goldfarb, Shanno. Относится к классу так называемых квазиньютоновских методов. В отличие от ньютоновских методов в квазиньютоновских не вычисляется напрямую гессиан функции, т.е. нет необходимости находить частные производные второго порядка. Вместо этого гессиан вычисляется приближенно, исходя из сделанных до этого шагов.

     14.07.2017       Выпуск 186 (10.07.2017 - 16.07.2017)       Статьи

Вышел Upsource 2017.2 с поддержкой внешних инспекций кода, Python, NPM и многим другим

У нас отличные новости — вышел Upsource 2017.2! В этом релизе мы добавили ряд наиболее часто запрашиваемых возможностей, и, как обычно, улучшили уже имеющуюся функциональность.
Давайте посмотрим, что попало в этот релиз.

     14.07.2017       Выпуск 186 (10.07.2017 - 16.07.2017)       Статьи

Делаем сервис по распознаванию изображений с помощью TensorFlow Serving

 

Всегда наступает то самое время, когда обученную модель нужно выпускать в production. Для этого часто приходится писать велосипеды в виде оберток библиотек машинного обучения. Но если Ваша модель реализована на Tensorflow, то у меня для Вас хорошая новость — велосипед писать не придется, т.к. можно использовать Tensorflow Serving.

     13.07.2017       Выпуск 186 (10.07.2017 - 16.07.2017)       Статьи

IceCash 2.0 Web АРМ Кассира и АИС по обмену данными с кассами под Linux на Python

Да, Линуксовая касса под GPL. В этих словах, собственно и заключается точное описание этой поделки. Это абсолютно свободный код, части которого можно легко отделить и использовать в своих разработках. Вторая версия была ответом на все нововведения в рознице. Сейчас, можно сказать, что всем этим новым требованиям касса отвечает и продолжает существовать в альтернативном пространстве самописного кодинга. 

     13.07.2017       Выпуск 186 (10.07.2017 - 16.07.2017)       Статьи

Как мы ловим Deadlock`и на PostgreSQL и чиним их

Ситуация: есть высоконагруженная мета-игра для наших танков под названием Глобальная карта. Эдакая пошаговая настолка для команд, где бои происходят в реальном танковом клиенте. В пиковые часы на карте несколько тысяч руководителей кланов производят игровые действия: атакуют друг друга, перемещают дивизии, покупают, продают, грабят корованы. Помимо этого, существует десяток сервисов, которые также могут вносить изменения в игровую ситуацию: подкидывают деньжат, штрафуют, добавляют игроков в клан и прочее.
Всё это неизбежно приводит к дедлокам. Так вот, хочу вам поведать историю о том, как мы эти периодические проблемы держим в допустимых рамках.

     12.07.2017       Выпуск 186 (10.07.2017 - 16.07.2017)       Статьи

Интервью с программистом из Тинькофф Банка Андреем Степановым о языке Python и ML

Серию интервью с докладчиками PyCon Russia продолжает разговор с разработчиком-аналитиком из Тинькофф Банка Андреем Степановым. Мы поговорили с Андреем о месте Python в инфраструктуре банка, о машинном обучении и о технологии распознавания речи. 

     11.07.2017       Выпуск 186 (10.07.2017 - 16.07.2017)       Статьи

Линейное программирование в python силами библиотеки scipy

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

Зачем может понадобиться линейное программирование на практике? Как правило, с его помощью решают задачу минимизации функции f(x) (или обратную задачу максимизации для — f(x) ).

     10.07.2017       Выпуск 186 (10.07.2017 - 16.07.2017)       Статьи

Интервью с разработчиком из Venmo Ниной Захаренко о языке Python и не только

Под катом — короткое интервью c Ниной Захаренко (Портленд, США), старшим инженером-программистом в Venmo, ранее — в Reddit и HBO. Нина рассказала, как начала писать на Python, какие проблемы есть у Python-сообщества и почему она ждет своё выступление на PyCon Russia.

     09.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Программный сбор данных о котировках

Эффективные действия на бирже связаны с тщательным анализом происходящего на рынке. Что кроется за динамикой цифр, котировок? 

Отсутствие такого анализа, либо сумбурное принятие решений по сделке может привести к потерям. Мне не раз приходилось наблюдать за тем, как люди принимали решения — правильные… или не правильные — в дилинговом зале брокерской конторы. 

     09.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Автоматизация IP-сети. Часть2 – Мониторинг скорости открытия Веб страниц

Продолжаем серию статей по доступной автоматизации в IP-сети. У каждого из инженеров, работающих с сетью Интернет, так или иначе периодически возникает потребность измерения скорости загрузки Веб странницы. Для этого существует множество инструментов, один из них это утилита wget. Например, для измерения скорости загрузки можно из консоли (Unix/Linux) воспользоваться такой командой:

     07.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Спасёт ли Python от казни?

При просмотре экшн-фильмов (фильмов с хорошо продуманными динамичными сценами) иногда закрадывается в голову: а реально ли это в действительности? Например, мог ли автомобиль перевернуться на маленькой скорости, как быстро можно раскачаться на верёвке без начальной скорости над пропастью… 

     06.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Использование утилит timeout & strace для мониторинга неактивности пользователя для разрыва соединения Shellinabox

 

Недавно я занимался тем, что исследовал какие существуют решения для реализации web-ssh прокси-сервера. Суть задачи заключается в том, чтобы дать пользователям возможность соединяться с произвольным ssh-сервером посредством web-интерфейса. Обычно, решения web-ssh предназначены для соединения с сервером, на котором они развернуты, но в рамках моей задачи мне хотелось, чтобы пользователь мог указать IP, порт, имя и пароль пользователя (или ключ) и выполнить соединение с произвольным сервером. С ходу найти подобного решения мне не удалось.

 

Однако, для открытого пакета shellinabox я обнаружил решение на блоге на немецком языке, которое я и решил довести до нужного мне уровня. В итоге, получился симпатичный контейнер Docker, который можно найти как на GitHub так и на Dockerhub, который решает все необходимые задачи.

     05.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Вырастаем над проблемами Python

Сегодня я хочу поделиться с вами впечатлениями от нашей поездки на конференцию PyCon CZ 2017, которая прошла в Праге. Мне давно хотелось узнать, какие темы обсуждают зарубежные коллеги, чем они отличаются от “нашей” повестки. И это стало возможным, когда меня в составе небольшой команды разработчиков отправили в Чехию. Конечно, оказалось, что перед зарубежными коллегами стоят такие же задачи и вопросы. Но вот угол зрения докладчиков и те акценты, которые они расставляют, показались мне интересными. Под катом — короткие заметки по интересным докладам, особенности чешской конференции и несколько фото. 

     05.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Про аналитику и серебряные пули или «При чем здесь Рамблер/топ100?»

Это лонгрид о том, как мы проектировали архитектуру обновлённого сервиса веб-аналитики, с какими сложностями столкнулись по пути и как с ними боролись. Если вам интересны такие базворды как ClickhouseAerospikeSpark, добро пожаловать под кат.

В прошлом году Рамблеру и Топ-100 исполнилось 20 лет – достаточно большой срок, за который на сервисе было несколько крупных обновлений и последнее из них случилось достаточно давно. Предыдущая версия Рамблер/топ-100 морально устарела, с точки зрения интерфейсов, кода и архитектуры. Планируя перезапуск, мы отдавали себе отчёт в том, что косметическим ремонтом не обойтись – нам надо было выстроить новый сервис практически с нуля.

     04.07.2017       Выпуск 185 (03.07.2017 - 09.07.2017)       Статьи

Оптимизация производительности Django проектов (часть 2)

Это продолжение серии статей про оптимизацию Django приложений. Первая часть доступна здесь и рассказывает о профилировании и настройках Django. В этой части мы рассмотрим оптимизацию работы с БД (модели Django).

     02.07.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Метод оптимизации Нелдера — Мида. Пример реализации на Python

Метод Нелдера — Мида — метод оптимизации (поиска минимума) функции от нескольких переменных. Простой и в тоже время эффективный метод, позволяющий оптимизировать функции без использования градиентов. Метод надежен и, как правило, показывает замечательные результаты, хотя и отсутствует теория сходимости. Используется по умолчанию в функции optimize из модуля scipy.optimize популярной библиотеки для языка python, которая используется для математических расчетов.

     01.07.2017       Выпуск 184 (26.06.2017 - 02.07.2017)       Статьи

Автоэнкодеры в Keras, Часть 6: VAE + GAN

В позапрошлой части мы создали CVAE автоэнкодер, декодер которого умеет генерировать цифру заданного лейбла, мы также попробовали создавать картинки цифр других лейблов в стиле заданной картинки. Получилось довольно хорошо, однако цифры генерировались смазанными.

В прошлой части мы изучили, как работают GAN’ы, получив довольно четкие изображения цифр, однако пропала возможность кодирования и переноса стиля.

В этой части попробуем взять лучшее от обоих подходов путем совмещения вариационных автоэнкодеров (VAE) и генеративных состязающихся сетей (GAN)