суббота, 19 января 2008 г.

Мой Vim

Не так давно решил прислушаться к мнeнию и опыту многих разработчиков, использующих в своей работе, а так же повседневной жизни текстовый редактор Vim. В этом посте хотел бы рассказать, что я сделал со своим редактором, для поднятия удобства и комфортности до уровня полноценного( ? ) IDE. Итак, что на данный момент умеет мой редактор:
  • Подсветка синтаксиса
  • Удобная цветовая схема
  • Сворачивание кода
  • Авто-дополнение кода
  • Организация файлов в проекты
  • Отображение структуры кода
  • Проверка python-кода средствами pylint и pychecker
Многое из перечисленного входит в стандартную поставку, нужно только правильно его завести. Об этом, и том, что доставлял сам — в продолжении

суббота, 12 января 2008 г.

Полуавтоматическая обработка каптчи


Время от времени нам приходится автоматизировать разные действия - от рутинных, до довольно мудрённых. Нормально, что в этом нам помогают наши навыки разработки ПО, программирования. В идеале, конечно, к ним ещё приложить математический поход, и тогда такой продукт становится на порядок ценнее.
В этом посте хотел поделится своим решением, для упрощения жизни рядовым автоматизаторам :) Следующий скрипт представляет из себя небольшой модуль, который поможет делегировать пользователю обработку каптчи, тем самым позволив вашим скриптам взять на себя окружающую эту самую каптчу рутину. Интерфейс максимально упрощён - с внутренней стороны представлен функцией с говорящим названием do_stuff(file), принимающей в качестве параметра имя файла или file-like object (например StringIO(image_buffer) ) , в общем то, что поймёт Image.open(). С внешней стороны - пользовательский интерфейс представлен простейшим Tk окошком с вашей картинкой, полем ввода и счётчиком ожидающих в очереди картинок. Так же имеется в окошке многофункциональный переключатель :) В моём случае, многопоточной обработки, он был использован для передачи сигнала об остановке потоку. Да, модуль будет рад обслужить сразу множество ваших потоков.


Например, для следующей картинки:




имеем такой результат:



$ python captcha_dialog.py  
('dvcv', 0)
собственно код - inside

Hello World!

Как повелось, запуск блога сопровождается первым, наверное самым бессмысленным постом. Назван в лучших традициях программирования. В общем, велкам!
P.S.Поздравляю talmuth с наступившим днём рожденья!