Вторая альфа 0.6.0

| Нет трекбэков

В разделе загрузок выложена вторая альфа для версии 0.6.0.

Запуск: скрипт "run.bat", в браузере: http://localhost:8080/admin, логин/пароль: admin/admin.

Что сделано:

  • Исправлены ошибки.
  • Разбиение длинных сообщений на части.
  • Доработан интерфейс протокола. Значительные изменения в нем маловероятны. Можно начинать разработку плагинов с реализацией собственных протоколов.
  • Окончательно сформированы принципы обработки команд в боте: аргументы команд, псевдонимы, динамическая загрузка и изменение в процессе работы бота.
  • Реализована работа со скриптами. Скрипт теперь запускается один раз, формирует класс команды и загружает его в реестр команд. Таким образом, скорость работы и накладные расходы по выполнению таких команд ничем не отличаются от заранее скомпилированных.

Дальнейшие планы:

  • Чат.
  • Добавление новых протоколов.
  • Реализация "Админа" чата в виде отдельного сервиса, способного работать как внутри комнаты чата, так и внутри jabber-конференций.

Как всегда, список изменений можно поглядеть тут.

Есть вопросы? Пиши на форум.

Первая альфа 0.6.0

| Нет трекбэков

В разделе загрузок выложена первая альфа версия 0.6.0.

В этой версии реализован полноценный анекбот, а также средство работы с базой анекбота через веб. Эта же версия запущена и тестируется на моем анекботе: 460626318

Запуск: скрипт "run.bat", в браузере: http://localhost:8080/admin, логин/пароль: admin/admin.

Список изменений можно поглядеть тут.

Версия 0.6.0 постепенно движется к выпуску полноценной первой альфы, и поэтому появляется все больше желающих ее пощупать. Эта инструкция описывает как скачать исходники, импортировать проект в Eclipse и запустить его. Инструкция актуальна на текущий момент, последующие изменения в коде могут потребовать некоторых дополнительных дествий, поэтому необходимо при выполнении инструкции руководствоваться прежде всего логикой.

Внимание, в тексте много картинок!

Контакты

| Нет трекбэков

Обновил информацию на странице контактов. Если есть что сказать интересного - пишите.

Демка 0.6.0

| Нет трекбэков

В загрузках выложена технологическая демка версии 0.6.0.

Можно поглядеть работу новой веб-админки и простого автоответчика.

После запуска нужно открыть в браузере ссылку: http://localhost:8080/admin

Для входа использовать admin/admin, в браузере должны быть включены ява-скрипты.

В настройках бота можно добавить уин, или посмотреть работу прямо в админке через тестовый протокол.

Коллеги, прошу обратить внимание, что в гуглкод сегодня были помещены обновления исходных текстов для версии 0.6.0. Так что если для работы необходима версия 0.5 - нужно откатиться на соответствующую ревизию.

Пока изменения представляют собой лишь прототип, который умеет запускаться и реагировать на сообщения.

Версия 0.6 пишется с нуля. Основная цель - дальнейшая абстракция модулей, создание гибкой и масштабируемой архитектуры, более полное использование преимуществ OSGi.

С этого момента обновления исходников будут происходить чаще.

Прощай MySQL.

| Нет трекбэков

Недавно меня посетила мысль. Это случается довольно редко, поэтому пришедшие в голову мысли я стараюсь не упускать. На самом деле, в боте совершенно нет никакой необходимости использовать реляционные базы данных. Вполне достаточно использовать базу типа "key-value".

Несколько статей на эту тему: [1], [2], [3].

В моем проекте будет использоваться база данных Oracle Berkeley DB Java Edition, а в качестве persistence layer над ней - проект Carbonado.

Пощупать все это дело можно прямо сейчас, скачав третью альфу.

В данный момент эта версия запущена на моем анекботе. Первые несколько часов прошли успешно, что показывает жизнеспособность этой идеи.

Обсудить все это дело можно как всегда на форуме.

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

Начнем с описания работы ядра - модуля jimbot.core.

Для начала советую прочитать про основы OSGi.

Бандл ядра состоит из нескольких пакетов.

  • jimbot.core - содержит активатор бандла и коннекторы сервисов. Название пакета отличается от общепринятого из-за того, что этот пакет не нужно экспортировать для других бандлов.
  • ru.jimbot - несколько общих классов, которые я не смог отнести к другим пакетам. Самые важные из них: MainConfig и Manager.
  • ru.jimbot.core - тут собраны общие классы, которые должны быть использованы при работе других бандлов. Часть из классов абстрактные и должны быть расширены.
  • ru.jimbot.core.api - тут собраны все интерфейсы, которые должны реализовываться бандлами.
  • ru.jimbot.core.events - в данном пакете содержатся классы событий. Я планирую переделать систему коммуникации между частями бота, т.к. в OSGi есть собственные средства обмена сообщениями и событиями между бандлами, но с этим еще предстоит разбираться.
  • ru.jimbot.db - содержит общие абстрактные классы для работы с БД. Возможно, они тоже будут переписаны.
  • ru.jimbot.utils - некоторые сервисные классы, реализующие функции общего назначения.

Метод кирпича

| Нет трекбэков

Все в реальной жизни состоит из маленьких кусочков. Частичек. Кирпичиков. Модулей...

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

В области разработки программного обеспечения ситуация аналогичная. Систему, обеспечивающую поддержку функций загрузки модулей, их запуска, разрешения зависимостей между ними, изоляцией молулей друг от друга называют плагинной шиной. В JimBot начиная с версии 0.5.0 будет также использована полноценная плагинная шина, реализованная на основе технологии OSGi.

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

В качестве эпиграфа.

- А вы на что проживаете?
- Младенцев крещу.
- Это как?
- Ну, макаю в воду, потом отдаю обратно.
- И в чём смысл?
- Ну как же, а бульон?

 

[В гостях у сказки mode on]

Последнее время все чаще замечаю проблемы у самых маленьких читателей нашего сайта по поводу запуска бота на своем домашнем компьютере. В связи с этим я потратил пару вечеров и наконец воплотил в жизнь свою старую идею по поводу программы-управлятора ботом. А за одним вспомнил некоторые особенности работы со Swing.

И так, встречайте: JimBotManager - программа для простого, как 5 копеек, запуска сервера MySQL на домашнем компьютере и последующего запуска бота.

Loading

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.

Хостинг для чата

Рейтинг@Mail.ru службы мониторинга серверов