Glyph Lefkowitz on threads

I value very much the ability to put complex concepts into words in a systematic manner. And I thrive to do the same (at least, I did try when I was blogging actively). So now I'm a big fan of Glyph who laid out everything that is problematic about threads: ...

Рефакторинг одного скринкаста

17.01.2013

Python

В прошлом ревью одного скринкаста я написал такой "P.S.": А вообще, чисто архитектурно, никаких классов тут конечно не нужно. Всё в единственном экземпляре и вызывается ровно один раз, поэтому классы только лишними self везде мешаются. И после этого, конечно, не выдержал и решил действительно порефакторить этот код, чтобы всё было ...

Ревью одного скринкаста

14.01.2013

Python

Бобук вчера попросил комментариев на свой небольшой скринкаст. Я попробовал, было, делать это прямо в Твиттере, но быстро осознал кривость затеи. Переделываю по-правильному, как нормальный ревью кода. Как в любом ревью, комментарии не претендуют на абсолютную истину и не являются оценкой автора кода — это просто взгляд другого программиста. Полный ...

ijson 1.0

26.10.2012

Python

I've finally scraped some time to finish and release a new version of ijson — 1.0. New stuff: support for YAJL 2 pure Python parser compatibility with Python 2 and Python 3 Parsing improvements On this I have already posted in details not that long ago. To summarize, ijson now ...

ijson on PyPy, Episode 3: New parsing

07.09.2012

Python

It's a funny thing when after neglecting your project for a year you get a question on whether it's orphaned and then suddenly you find yourself hacking on it for few days straight… Knowing that your work is needed and appreciated is the greatest motivator! Anyway… The news I wanted ...

When to use decorators in Python

09.07.2012

Python

The @decorator syntax in Python is easy to abuse. After all, it's simply a syntactic sugar for: obj = decorator(obj) The obj must be a function or a class but Python doesn't care about the output value that is then assigned to the same name. It may be, quite literally, ...

virtualenv: solved

26.05.2012

Python

My problem with virtualenv is solved. Great thanks to Malcolm Tredinnick for taking the time to understand it and pushing me into the right direction. As I said in the previous post, I didn't really need the isolation feature of virtualenv with my single-user, single-codebase site. What I really needed ...

SM.Org software update 2012

24.05.2012

Python, Django, Ubuntu

Over the course of a few recent weeks I updated this site to a more modern software and revised some previously made choices. This one was loooong overdue considering that I still ran Ubuntu 9.10 before the update meaning that the system was almost 3 years old. Here are some ...

ijson on PyPy, Episode 2: Warm-up

06.09.2011

Python

Today I've come upon a very interesting development in the story of optimizing pure Python version of ijson. The thing as I left them yesterday were like this: Original yajl wrapper0.47 sec CPython0.84 sec PyPy1.30 sec These are the times of parsing a JSON array of 10000 objects. The parser ...

ijson on PyPy

04.09.2011

Python

I happen to follow Alex Gaynor on Twitter and his ravings on speed and general awesomeness of PyPy have inspired me to a small experiment. I have this iterative JSON parser — ijson — which is a ctypes-based wrapper around C library yajl by Lloyd Hilaiel. I don't know of ...

Вместе или врозь: новая идея

14.06.2011

Python

Всем большое спасибо за комментарии к первой статье. Хочу дать несколько разъяснений по заданным вопросам и сформулировать текущее видение ситуации. Особенности выкладки питоньих проектов По просьбам рассказываю немного подробностей о том, как у нас сейчас всё управляется и выкладывается: Управление каждым сервисом находится в его команде. У сервиса свой план ...

Вместе или врозь

Есть у нас в Яндексе кластер, на котором живёт много проектов на Питоне. Большие, маленькие — около двух десятков. И все они пользуются общими библиотеками. Не отдельными копиями одних и тех же библиотек, а именно общими файлами, лежащими в системных каталогах. Периодически эта система вызывает вопросы и сомнения, и мы ...

ijson

18.09.2010

Python

В Питоне для парсинга JSON обычно берут либо включённый в стандартную библиотеку simplejson, либо популярный в последнее время cjson. Обе библиотеки обрабатывают JSON одним куском: парсят всё целиком и возвращают нативный питоний объект. Мне же недавно понадобилось обрабатывать JSON потоком, в духе SAX. Это имеет смысл, когда размер данных начинает ...

elementflow: формальное представление

19.05.2010

Python

В прошедший понедельник на московской конференции DevConf я презентовал в виде мастер-класса питоновую библиотеку для потоковой генерации XML. Как и надеялся, получил хороший фидбек, и вот сегодня формально представляю проект и первый его релиз. Описание Скачать релиз 0.1 можно на PyPI. Код под BSD-лицензией лежит на Launchpad. Название обыгрывает "ElementTree" ...

Публичные выступления

23.03.2010

Python

Весна получается у меня насыщенной выступлениями. Уже нарисовалось два, и оба — про Питон. Первое — это подкаст The Art of Programming, на который я недавно наезжал за терминологические и фактические неточности :-). После этого его ведущий golodnyj убедил меня, чтобы я "ответил за слова", и мы с ним записали ...

Форум по Питону

22.12.2009

Python

У меня на форуме появился раздел про Питон. В соседнем форуме про Джанго стало появляться уж очень много постов, никак с Джанго не связанных. Подумав, я решил это административно не запрещать, потому что это во-первых всё равно не сработает, а будет только всех раздражать, а во-вторых, видимо у спрашивающих есть ...

adisp

11.12.2009

Python

Программирование иногда не даёт нормально спать. Придёт в голову какая-нибудь идея, присмотришься к ней — вроде простая и красивая. Потом начинаешь прикидывать подробности, и вроде тоже всё складывается. А потом садишься писать код... Тут-то и получается, что в реальности есть ещё и другие подробности, которые мозг при умозрительном разглядывании удобно ...

Отрывание префикса пути

08.06.2009

Python

Как-то раз я уже веселил народ питоновой задачкой про move_month. Было весело и полезно, мне понравилось! Ловите новую задачку. Дано: абсолютное имя файла загруженного питоньего модуля sys.path — список директорий, в которых его можно найти для простоты положим, что пути в sys.path показывают на уникальные директории (на практике это может ...

Задачка про move_month

22.01.2009

Python

Рефакторил сегодня древние уголки кода и наткнулся на две функции: add_month и sub_month, которые принимают дату и соответственно либо увеличивают ее на календарный месяц, либо уменьшают. Главное, зачем они очевидно нужны — корректная обработка перехода в следующий и предыдущий год. И вот, глядя на их код, у меня родилась задачка, ...

Barcamp: минибар для программистов

25.09.2008

Python

В рамках iCamp 2 октября в Москве пройдет некое экспериментальное мероприятие — минибар для программистов. Туда активно собирается рельсовая тусовка, и также организаторы зовут питонью тусовку — каковое приглашение я тут сейчас и транслирую. Планируется что-то вроде посиделок программистов человек на пятьдесят (хотя реально придут, конечно, человек десять :-) ) ...