воскресенье, 11 октября 2009 г.

SC&C: Python

Презентация. Много копипаста с вики - я ленивый =)



Исходники: http://gitorious.org/personal-repository/personal-repository/trees/master/python/examples

воскресенье, 13 сентября 2009 г.

Синхронизация расписания ХНУРЭ с вашим Google Calendar

По просьбам трудящихся написал 2 небольших скрипта на Python, которые парсят csv файл расписания с ЦИСТа и добавляют пары в ваш дефолтный календарь в Google Calendar. Вам потребуются:
- сами скрипты gcal.py(такой себе back-end интерфейс) и hnure.py(сам парсер)
- библиотека gdata

Скрипты в моём git'e:
http://gitorious.org/personal-repository/personal-repository/trees/master/python

Библиотека gdata ставится элементарно:
sudo aptitude install python-gdata

Для пользователей Windows постараюсь придумать что-нибудь в ближайшее время.

Использование:
1. Идём на сайт ЦИСТа.
2. Выбираем нужное расписание и качаем файл с расписанием в csv-формате.
3. Запускаем скрипт hnure.py, который к качестве параметра строки принимает путь к нашему csv-файлу.

Замечание: gcal.py должен находиться в одном каталоге с hnure.py, либо путь к нему должен быть прописан в PYTHONPATH.

Тестирование и баг-репорты приветствуются, как и любой другой фидбек =).

UPDATED:
Первые тесты обнаружили проблемы:
1. У вас должна быть актуальная версия gdata (они там что-то чудили раньше с unicode).
2. Время в каледаре отображается в неправильном часовом поясе. Нашёл временное решение - жёстко установил наш текущий часовой пояс. Проблема в том, что время переведут и тогда надо будет опять изменять... Надо будет найти true way. PARTIALLY FIXED
3. Проблемы с парсингом на некоторых парах. FIXED

среда, 2 сентября 2009 г.

Vim, smarttab.py, git...

С недавнего времени в основном пользуюсь Vim'ом - прикольный редактор, надо только разобраться сначала =). Прочитал, что в Python более тру использовать 4-space tabs в качестве отступов, для этого включил в Vim пару опций:
set smarttab
set sw=4
И теперь при вставке табуляции Vim сам заменяет '\t' на 4 пробела.

Но во всех старых скриптах я использовал обычную табуляцию, поэтому решил написать небольшой скрипт, который бы заменял её на заданное число пробелов. Собственно вот:
http://showmecode.com/code/10260/
Скорее всего велосипед, но мне большого функционала не надо, а написать утилиту самому намного интереснее, чем искать подобное в сети.

Обнаружил для себя, что Python - идеальный язык для написания небольших скриптов, решающих повседневные небольшие задачи. В связи с этим возникла потребность где-то хранить хоть сколько-нибудь полезные скрипты. Создал себе git-репозиторий на http://gitorious.org - давно хотел повозиться с git.

Мой git-репозиторий находится здесь: http://gitorious.org/personal-repository/personal-repository
Сделать себе локальную копию можно так:
git clone git://gitorious.org/personal-repository/personal-repository.git

debextractor.py

Система управления пакетами в debian класная штука. Недавно потребовалось экспортировать содержимое установленного в системе пакета, чтобы использовать прогу на другой машине(самого пакета, как и инета, к сожалению, не было). Написал для этого небольшой скрипт. Можно было бы использовать Bash, но зачем, если есть такая удобная вещь как Python =). Выкладываю, может кому-нибудь пригодится.

P.S. Python - потенциальная замена Bash-скриптам в системном администрировании.

http://showmecode.com/code/10259/

суббота, 22 августа 2009 г.

Глупые задания

"Трудно объяснить, что приятного в том, чтобы 3 дня подряд биться головой об стену, не зная как лучше, красивее решить задачу, но когда ты нашёл решение - это чувство нельзя сравнить ни с чем в мире". Linus Torvalds
Я думаю, каждого когда-нибудь просили помочь в чём-нибудь. Меня часто просят помочь с программированием. В большинстве случаев необходимо решить какую-то глупую неинтересную задачу (чаще всего математическую, а особенно любят матрицы) . Казалось бы задача простецкая, но решить её не всегда получается сходу. Тогда это просто заедает тебя всё время: ты не смог решить какую-то глупую задачу! И ты начинаешь пробывать снова и снова. И в итоге находишь решение! Правда, далеко не всегда оно получается простым и лаконичным...

Так было и в этот раз...
В общем попросили меня вчера помочь с заданиями на лето из ШАГа. Нужно заполнить матрицу с помощью вложенных циклов следующим образом:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

Сходу сделать я его не смог (на самом деле оно почти заработало - ещё 15 мин и получилось бы =) ). Приехал сегодня домой, стал пробывать заного. В итоге получилось такое решение на С++ (комментарии добавлю...). Оно мне не нравится =). Думаю, можно найти решение получше и без таких велосипедов. Предлагаю всем попробывать решить эту задачу - будет интересно посмотреть на ваши решения. Жду ответов =)

понедельник, 27 июля 2009 г.

md5sum in python

Вы наверняка слышали о такой интересной утилите как md5sum - она вычисляет уникальный md5-hash переданных строк или файлов. Например, это может быть полезно в том случае, если необходимо убедиться в идентичности 2 файлов, правильности скачанного iso-образа, архива и т. д. Вчера наткнулся на мануал по модулю md5 и вариант md5sum на python, написал по нему эту утилиту, может когда-нибудь пригодится (в частности, когда мне приходится где-то вне дома использовать windows).

Скрипт: http://showmecode.com/code/9917/

четверг, 2 июля 2009 г.

plmaster has been rewritten in python!

Переписал свою программу для составления плейлистов xspf на python: теперь не надо извращаться с boost, компиляцией под разные платформы, а также вручную приводить путь к файлу к url encoded. Красота! Чем дальше, тем больше мне нравится python =)