All articles, tagged with “it”

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.

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 :)

Eclipse Ganymede

Решил попробовать новый eclipse, многие активно его пиарили типа работает быстрее, куча всяки новых фич, даже инструменты для UML моделирования добавили. Звучит неплохо. Запускаю на jre 1.6 — сначала все хорошо, просит выбрать воркспейс, загружается более чем до середины и на Loading Workbench выдает ошибку, никакого описания, смотрите логи. В логах — “!MESSAGE Application error” и листинг стека — очень помогло. Хорошо, попробовал запустить с jre 1.5 — то же самое. Ну думаю, может тогда gcj попробовать, пусть разработчики на нем и не тестировали, но с чем черт не шутит, пробую, грузится значительно дольше, выдает какую-то мелкую ошибку, но работает! Странно, очень странно. Ладно, пытаюсь установать pydev, потому что использую его исключительно как IDE для Python, вроде бы хорошо, все зависимости есть, скачался и устанвливается, но в конце инсталляции выдает ошибку. Нда.. К черту этот новый eclipse, остаюсь на 3.3, разбираться что там не так ни времени ни желания нет, вобщем разачаровал он меня.

Swiftfox

Installed Swiftfox today. Very good thing. Quite fast performance, lower memory usage(at first blush) in compare with FireFox 2.0. Speaking of memory, I don’t know, maybe it’s just merit of FireFox 3(I didn’t try it) witch latest Swiftfox build use. Swiftfox site:

Swiftfox is an optimized build of Mozilla Firefox. Swiftfox has builds for both AMD and Intel processors and is based on the most cutting edge Firefox source code available.

Добавил память

Еще 512Мб, работать стало значительно приятнее :)

Радио-Т

Сегодня обнаружил интересный проект, послушал несколько подкастов, весьма интересно. Один из создателей проекта, как я понял работает в Яндексе и самое главное любит Python :)

Радио-Т — это еженедельный Hi-Tech подкаст. Авторы и приглашенные гости импровизируют на околокомпьютерные темы. Как правило, не залезая в глубокие дебри, однако иногда нас заносит ;)

“Производство” подкаста происходит практически у вас на глазах, а точнее “на ушах”. В процессе записи мы вещаем поток, и каждый может присоединится к этому таинству, как пассивно слушая прямой эфир, так и активно — реагируя на обсуждаемое в джабер чате и звоня на студийный скайп.

Темы для разговора выбираются авторами по трудно формализуемым параметрам. В основном, чтоб интересно было нам об этом поговорить и вам это послушать. Мы также обсуждаем темы, предложенные слушателями, особенно те которые набрали много голосов.

Microsoft Developer’s Days

С удивлением узнал, что сие событие проходило и в нашем городе и один товарищ, “редиска”, по-другому не скажешь, даже знал об этом, но не потрудился сообщить. Я хоть и не пишу под windows около года ничего(а когда писал использовал не совсем характерную свзяку С++ && (Qt||wxWidgets) && VS), но Visual Studio считаю весьма достойной IDE, да и доклады говорят достаточно интересные были. В общем обидно, что пропустил.

Microsoft Developer’s Day

Python: миф и реальность

Сильно раздражает предвзятое мнение многих разработчиков по поводу Python’a. Если он не так популярен как PHP, это еще ни о чем не говорит. Да, у PHP есть плюсы — его всеобщая распространенность, C-подобный синтаксис, относительная простота, но он абсолютно непригоден для больших серьезных проектов, нет, конечно это возможно, но поддержка и разработка такого проекта превратится в ад. Python в этом плане гораздо более продуманный язык, в нем есть нормальное ООП(которое в PHP в приемлемом виде появилось только в 5 версии, да и то, весьма посредственное), пространство имен и.т.п. А в PHP вплоть до 5 версии не было даже элементарного разыменовывания функций. PHP отстает от Python’a лет на 5… PHP это совковый язык, хорошо подходящий для небольших и с наятжкой средних проектов, но не более. Будто бы в Google и NASA работают идиоты, если они Python во многих своих разработках используют ?! Уфф.. выговорился :)