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

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

     24.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Статьи

Asyncio Tarantool Queue, вставай в очередь

В одной из своих статей я рассказывал об асинхронной работе с Tarantool на Python. В данной статье продолжу эту тему, но внимание хочу уделить обработке информации через очереди на Tarantool. Мои коллеги опубликовали несколько статей о пользе очередей (Инфраструктура обработки очередей в социальной сети Мой Мир и Push-уведомления в REST API на примере системы Таргет Mail.Ru). Хочу дополнить информацию об очередях на примере решений наших задач, а также рассказать о работе с Tarantool Queue на Python и asyncio. Почему мы выбираем именно Tarantool, а не Redis или RabbitMQ?

     24.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Статьи

Нейросеть в 11 строчек на Python: часть 1

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

Дайте код!

X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in xrange(60000):
    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))
    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))
    l2_delta = (y - l2)*(l2*(1-l2))
    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))
    syn1 += l1.T.dot(l2_delta)
    syn0 += X.T.dot(l1_delta)

Слишком сжато? Давайте разобьём его на более простые части.

     24.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Статьи

Хроники лаборатории: как мы молотый кофе считали софтом для анализа клеточных структур

Продолжаю кофейную тематику, которую я начал еще на geektimes: Здравствуйте, я Meklon и я кофеин-зависимый. Сегодня мы будем творить непотребства с софтом для биоинженерных задач — CellProfiler. Нормальные люди им считают клетки, плазмиды, экспрессию белка и прочие нужные вещи. Мы долбанутые, поэтому будем проводить гранулометрический анализ помола по микрофотографии, бить кофе статическим электричеством и думать, как прицепить к этому безобразию фен. Ну и конечно нам потребуется скотч для получения графена картины распределения частиц.

В целом, компьютерный анализ изображения — штука гибкая и может применяться в совершенно странных задачах. Заодно проверим, можно ли заменить турку колбой с магнитной мешалкой. В конце концов, главный принцип выживания в лаборатории — «Нет кофе — нет работы») Под катом очень много фотографий, но я постарался их ужать до приличных размеров.

     24.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Видео

Синтаксис Python: применение генераторов

Генераторы Python уже давно используются для решения всевозможных проблем связанных с итерациями и потоками данных. В этом уроке мы рассмотрим некоторые экзотические виды использования генераторов, таких как написание контекста менеджеры, функций обратного вызова (callbacks), устранение рекурсии, workers и много другого. Внимание - видео очень длинное, но ЖЖУТКО интересное

     24.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Интересные проекты, инструменты, библиотеки

hacker-scripts - скрипты из истории http://bash.im/quote/436725

xxx: У нас тут YYY (билд инженера) сманили. Чел принципиально жил только в консоли и vim, диаграммы рисовал скриптами в dot, доки писал в wiki маркдауном, если что-либо требовало больше чем 1.5 минуты писал скрипт. Сидим разбираем его наследие.
xxx: Из прекрасного
xxx: smack-my-bitch-up.sh - шлет видимо его жене "Задержался на работе" и генерит отмазки из списка. Поставлено в cron, стреляет после 9 вечера если на рабочей станции висят интерактивные сессии по ssh с его логином.
xxx: kumar-mudak.sh - сканит почту, ищет письма от Кумара (заграничный ДБА с говорящей фамилией) с ключевыми словами (sorry, help и т.д.) откатывает упомянутую базу стейджинга на последний бэкап и отписывается типа не вопрос будь аккуратнее в следующий раз. Зело заколебал его Кумар вестимо.
xxx: badun.sh - поставлен на cron на определенные даты, шлет письма "плохо себя чувствую, поработаю из дома" опять же если к 8-45 утра не обнаружилось интерактивных сессий на рабочей станции.
xxx: И наконец первый приз: coffe-blyat.sh - ждет 17 сек (!!!) логинится по ssh в кофе-машину (епрст, мы и понятия не имели что она в сетке да и еще что на ней sshd поднят) и засылает туда какую-то абракадабру. Экспериментальным путем выяснили что ЭТО запускает процесс варения half-caf chai latte среднего размера, которое начинает выливаться в чашку как раз к тому моменту когда неспеша идущий человек добирается от его офиса до автомата.

     23.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Статьи

Raspberry Pi 2 + цветок == интересная задача

Статья описывает как воспользоваться датчиком влажности и получить с него данные через Интернет. 

     23.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Интересные проекты, инструменты, библиотеки

neobunch - словарь с доступом через точку (как в JS)

>>> b = NeoBunch()
>>> b.hello = 'world'
>>> b.hello
'world'
>>> b['hello'] += "!"
>>> b.hello
'world!'
>>> b.foo = NeoBunch(lol=True)
>>> b.foo.lol
True
>>> b.foo is b['foo']
True

     23.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Интересные проекты, инструменты, библиотеки

ButterflyNet – framework для работы с сетью на asyncio

Фреймворк был разработан чтобы упростить работу с сокетами (ибо они не так просты), Twisted сложная для обучения, да и в нем много мусора, а asyncio хорошо подходит для сетевых взаимодействий.

     23.11.2015       Выпуск 101 (23.11.2015 - 29.11.2015)       Статьи

Конвертируем XLSX в PDF

По ссылке вы найдете готовый код для конвертирования XLSX в PDF

     22.11.2015       Выпуск 100 (16.11.2015 - 22.11.2015)       Интересные проекты, инструменты, библиотеки

dukpy - интерпретатор JavaScript на Python

Интепретатор поддерживает CoffeeScript, EcmaScript6, EcmaScript5, чистый Javascript

>>> import dukpy
>>> dukpy.coffee_compile('''
...     fill = (container, liquid = "coffee") ->
...         "Filling the #{container} with #{liquid}..."
... ''')
'(function() {\n  var fill;\n\n  fill = function*(container, liquid) {\n    if (liquid == null) {\n      liquid = "coffee";\n    }\n    return "Filling the " + container + " with " + liquid + "...";\n  };\n\n}).call(this);\n'

     22.11.2015       Выпуск 100 (16.11.2015 - 22.11.2015)       Статьи

JSON парсеры - производительность и потребление памяти

В статье вы найдете подробное сравнение JSON парсеров. Будут рассматрваться такие параметры как производительность и потребление памяти.

Список JSON библиотек:

cjson, rapidjson, yajl, ujson, jsonlib2, jsonlib, simplejson, json.