Радио-Т #112 послешоу

Если кто не знает — Радио-Т это хайтек подкаст, который записывается онлайн, после записи обычно бывает послешоу, которое с определённого момента так же записывается и выкладывается. Так вот, в последнем послешоу велась трансляция видео(помимо аудио) на live.yahoo.com. Во время трансляции можно лицезреть людей, наблюдающих за трансляцией(в том случае если они включили вебкамеру). Читаем отчет от одного из слушателей и лицезреем на последнем скриншоте мирно спящего Кимби и небольшой кусочек меня справа :)

T-Shirt and Certificate

На днях пришли фтуболка и сертификат. Заказвал M, не ошибся, футболка по качеству вроде неплохая, и на вид тоже, теперь можно считать GSoC полностью завршенным, в следующем году думаю тоже буду учавствовать, если конечно получится пройти. В плане опыта это достаточно полезно да и вообще Open Source девелопмент это весьма и весьма увлекательно :) Спасибо Google за Summer of Code :)

Агата Кристи: фотоотчет

Концерт в Ижевске 2008, последний концерт в старом составе.

Как обычно, остальные фотографии можно посмотреть на Picasa.

Izhevsk Zoo / Ижевский Зоопарк

Сделано все достаточно неплохо, я бы сказал не хуже Московского + вторая часть зоопарка еще строится. Практически все животные уже привезены, но некоторых почему-то не выпустили, например белого медведя и рысь увидеть так и не удалось. Некоторым животным там явно не комфортно, волк бегает по одной и той же траектории часами, неясыть аутично сидит чуть ли не упираясь головой в верхнюю часть клетки, но надеюсь что it’s just a matter of time.

Остальные фотографии можно посмотреть at Picasa.

Велосипед :)

Буду крайне признателен тому, кто одолжит велосипед на пару дней, обещаю возвратить в целости и сохранности :)

Jabber Bot

Just for fun написал простенький движок для создания джаббер ботов. Использовал xmppy, стоит заметить, что написана она очень не по-питоновски, сразу видно у автора какой-то сишный бэкграунд. Документация тоже мягко говоря не очень, приходилось спецификацию протокола XMPP читать чтобы понять, как эта библиотека работает. Собственно вот результат: jabber bot mini-framework on Python Использовать следующим образом:
from jabberbot import JabberBot
bot = JabberBot("example@example.com", "password", "BotName")
bot.setConference("example@conference.example.com")
bot.run()
Сейчас бот ничего не будет делать, кроме того как логиниться и заходить на конференцию. Чтобы расширить его функциональность, нужно написать класс-расширение. Например мы хотим чтобы на команду “!торт <ник>” бот отвечал: “<имя_бота> смачно кидает бисквитный трот прямо в лицо <ник>”, тогда класс будет выглядеть так:
from jabberbot import CommandExtension
class CakeExtension(CommandExtension):
    def process(self):
        if self.options:
            return "/me смачно кидает бисквитный торт прямо в лицо %s" % self.options
        else:
            return None
и результирующий код будет такой:
from jabberbot import JabberBot, CommandExtension

class CakeExtension(CommandExtension):
    def process(self):
        if self.options:
            return "/me смачно кидает бисквитный торот прямо в лицо %s" % self.options
        else:
            return None

bot = JabberBot("example@example.com", "password", "BotName")
bot.setConference("example@conference.example.com")
bot.extensions.append(CakeExtension("торт")) # Добавляем наше расширение
bot.run()
В конструктор расширения передается название команды, само расширение наследуется от CommandExtension. Префикс команды задается константой jabberbot.CMD_PREFIX и по умолчанию — “!”. В self.options расширения записывается весь текст который следует после команды. Возможно переопределить функцию CommandExtension.check(text), в своем расширении, если вы например хотите делать проверку на какое-то слово во всем сообщении. Функция в качестве параметра получает сообщение пользователя и возвращает True, если оно соответствует команде расширения(а именно если строка начинается с команды), иначе False. Безусловно это достаточно простой пример, но более сложный/полезный/интересный функционал уже дело техники и вашей фантазии, легкий API вам предоставлен :)

My Macbook

Macbook

Теперь я являюсь счастливым обладателем макбука, с него сейчас и пишу этот пост :) Пока впечатления исключительно положительные, хорошая сборка, ничего не скрипит, он достаточно компактен. Стильный минималистичный дизайн, без лишних кнопок, кучи мигающих индикаторов и наклеек, которыми пестрят большинство современных ноутбуков. На Mac OS тоже пока нареканий нет, юниксподобность — это большой плюс для меня. Кстати тут Eclipse 3.4 запустился вообще без каких-либо проблем и дополнительных настроек. Еще радует то, что в стандартной поставке Mac OS идет с Python. Была возможность купить за те же деньги в США макбук про, но ждать нужно было до сентября, решил взять сейчас обычный макбук, к тому же в ближайшее время новый макбук про выйдет, так что потом можно будет подумать о замене, где нибудь через год. Теперь неплохо бы wi-fi сеть дома настроить, а то пока сижу на gprs с телефона через bluetooth. Кстати обнаружил, что под одним джаббер аккаунтом можно с нескольких компьютеров одновременно сидеть, просто указать разные ресурсы, например macbook и desktop, весьма удобно. Так что многоуважаемый Слон, вот вам еще одно преимущество Jabber перед ICQ.

Caterpillar & Lily

Today made some photos.

Nice, isn’t it ? :)

Just an ordinary lily.

Python Markdown

As you know I’m working on improvements of Python Markdown implementation in terms of Google Summer of Code 2008. Markdown is a markup language, which was originally created by John Gruber and Aaron Swartz, and implemented in Perl. Today there are a lot of different Markdown implementations, for almost all popular languages. The main aim of markdown — maximum readability, markdown is simpler than (X)HTML and widely used in different services, where users can publish some texts(i.e blogs, in some blogs users can write comments/posts, using Markdown).

 

Apple site

Just now tried to see retail stores page on apple.com, but it says “Hmm, the page you’re looking for can’t be found.” Didn’t expect such blunder from a big company like Apple. Sent them a bug report :)

Update: wow, they fixed it in 10 minutes or so, good job :)