Очередной перенос

В ближайшие 2-3 дня я перенесу мады и связанные с ними сайты на новый сервер. Так надо. Переноситься будет статистика русскоязычных мадов muds.kharkov.org и мад-сайты mud.kharkov.org & zerkalo.kharkov.org

О завершении переноса я напишу в этот блог, а также на перенесенных сайтах и в заставках, новостях и вече мадов. А может, вы ничего и не заметите. Символические доменные имена то не поменяются! То есть по прежнему

connect mud.kharkov.org 3000 — Virtustan MUD
connect zerkalo.kharkov.org 4000 — Zerkalo MUD
connect mud.kharkov.org 6666 — Ancestry MUD — тестовая пре-бета версия переводимого на русский язык DeadSouls

Технические подробности с Centos 6 32 bit 512 K RAM я пересаживаюсь на Centos 7 64 bit 1024 K RAM . В семерке появился такой ужасный ужоснах, как systemd!

BAN!

Ну чо, у моей системы статистики появился первый бан. Меня забанили в Былинах

UPDATE. 09/05/2017 моего статистического персонажа автоматически разбанили (бан был изначально на неделю)

MUDLET

Интересный клиент (я давно о нем слышал, но сильно не тестировал), есть для разных ОС, авторы занимаются интернационализацией, в частности, русификацией. Надо потестировать. (Как вы может знаете, моя основная рабочая ОС — Ubuntu и в мад я вхожу при помощи tintin++, причем у меня есть своя сборка Тинтина с нужными мне опциями типа перевода и ватчдога)

http://www.mudlet.org/

Оригинальный MUDLET https://github.com/Mudlet/Mudlet — собрался легко по их инструкции. С конца мая 2016 года начал работать с кириллицей в разных кодировках

Частично русифицированная старая версия, понимающая UTF-8 (май 2011 года) https://github.com/olostan/mudlet — мне его собрать пока не удалось, потому что я тупой

Письмо на форуме Былин http://forum.bylins.su/showthread.php?t=4407

Mudlet 4.0 internalization roadmap http://forums.mudlet.org/viewtopic.php?f=7&t=19499

Текущее

Мы с Пацифистом бросили Лиму и вернулись продолжать работу с библиотекой DeadSouls, эта библиотека на текущий момент нам нравится больше других:

https://github.com/prool/deadsouls

Всё, что было сделано в Лиме, выложено тут:

https://github.com/prool/lima

Главное, что в обоих библиотеках сделан патч, позволяющий работать с кодировкой UTF-8 и полными восьмибитным байтами. Это даже не патч библиотек, а патч драйвера FluffOS (см. предыдущее сообщение). Те, кто не любит UTF, могут на базе нашего патча делать свои библиотеки с кириллицей в кодировке koi8-r или cp1251, всё тоже будет работать.

Теперь остается текущая рутинная (и достаточно огромная) работа: переводить все сообщения и описания всех комнат, мобов, объектов на русский. Есть еще проблема с падежами, она непроста, но решаема

О русификации кодовой базы FluffOS

В каталоге packages в файле parser.c надо поместить вот эти определения вместо тех, которые там присутствуют

#define isignore(x) (x == '\'')
#define iskeep(x) (x!=' ')

И кириллица перестанет быть игнорируемой и заработают команды

say ёжиик
get палица

Собственно, не только кириллица (в любой кодировке), перестанет игнорироваться всё, что представимо в кодировке UTF-8 (то есть вообще все алфавиты)

Вот два мада, уже пропатченных таким образом:

https://github.com/prool/deadsouls

https://github.com/prool/lima

Текущие новости

Мы с Пацифистом бросили DeadSouls и взялись за Лиму, которая тоже построена на базе FluffOS, но показалась проще, по крайней мере say привет работает там «из коробки» (то есть показывает кириллическое сообщение).

Всё, что наработано на текущий момент в DS здесь https://github.com/prool/deadsouls
Последнее достижение: взят кириллический объект. Бросить его пока нельзя 🙂 См. тестовую команду prool, которая берет всё, включая мобов и игроков! 🙂 🙂 🙂

А Лима здесь: https://github.com/quixadhal/lima или более старая версия http://lpmuds.net/files/lima_fluffos_v1.zip

Кстати, работа с DS не прошла даром: мы поняли немного о структуре драйвера FluffOS и его библиотек.

Тестовый мад на Лиме работает здесь mud.kharkov.org 7878 (это у них такой номер порта по умолчанию)

FluffOS, Dead Souls, UTF-8 cyrillic and other stuff

Мы тут с коллегой Пацифистом бросили один проект (QiuckMUD) и начали другой — русификацию Dead Souls (этот мад сделан на основе движка FluffOS и муд-базы Dead Souls). Даже не русификацию DS, а создание на ее базе чего-то своего

Технически русифицировать FluffOS не надо, там понимание UTF-8 есть изначально. Надо переводить сообщения, создавать кириллические команды и т.д.

Мой форк dead souls вот https://github.com/prool/deadsouls

О Винде

Я только сейчас сообразил: Виндовые сборки по сути уже не нужны. В Windows 10 входит вполне работающая Убунта в виде подсистемы. Не далее как вчера коллега Пацифист почти без проблем собрал там QiuckMUD+lua

Впрочем, я думаю, некоторые консерваторы сидят на Windows 7 или XP и не хотят переходить на 10-ю версию…

О русификации QuickMUD-lua

С подачи товарища Пацифиста начал русифицировать QuickMUD+lua (Авраам породил Иакова, ROM породил QuickMUD, а потом товарищ Odoth добавил туда lua). В общем, все делается примерно по тому же шаблону, что и ранее слегка русифицированный tbaMUD. Русские команды лучше и проще реализовывать не в общей таблице, а отдельным обработчиком, вызываемым до основного. А то всякие глюки выползают из-за UTF-8

Всё здесь:

https://bitbucket.org/prool/quickmud-lua-russian

А вот взгляд на проблему с другой стороны: http://muder.ru/blog/172.html

Статистика русскоязычных мадов

Внезапно я решил начал делать статистику посещения русских (русскоязычных, постсоветских, называйте как хотите) мадов. Я давно использую пакет munin и добавить туда еще один плагин сравнительно несложно.

Я уже начал эту работу, вот первые три мада

http://muds.kharkov.org/munin/localhost/localhost/index.html#mud

Кстати, исходники своих плагинов потом я выложу на github примерно сюда

https://github.com/prool/prool-utilities
(там появится подкаталог)

Как я получаю информацию:

1. У некоторых мадов (у малого количества) статистика (число игроков онлайн в данный момент) есть на сайте мада. Сайт посещает каждые 5 минут мой бот (curl) и парсит

2. У тех мадов, у которых этого нету, я зарегистрирую персонажа и специальным скриптом для клиента tintin++ буду заходить каждые 5 минут, выдавать команду КТО и выходить. И парсить

Тут меня и забанят 😉

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

* * *

UPDATE. Прагматические замечания по программированию.

Как оказалось, tintin++ не умеет запускаться по крону, так как у крона терминал dumb, а тинтину нужен, например vt100. Я не придумал ничего умнее, чем под бота выделить отдельное окно скрина 🙂

И не надо забывать, что плагины Мунина запускаются от пользователя nobody