Цікаві досліди

14 января 2023 года, Харьков, в 15 ч 38 мин пропал свет из-за российского обстрела. Российская армия сейчас придерживается такой тактики: бить по электростанциям, чтобы украинцы вымерзли от холода.

Сейчас 18 ч 23 мин. Мобильного интернета почти нет, я экспериментировал с соединением смартфона (ОС Андроид) и Макбука (смартфон в режиме раздачи вайфай, то есть точки доступа).

На смартфоне в среде termux запустил tbamud, а с Макбука подключался к нему при помощи MUD клиента tintin++. Вначале не работало из-за тайм-аутов при соединении. Таймауты вызвались отсутствием интернета, то есть отсутствием доступа к DNS и таймаутами вызова gethostbyaddr. Оказалось, авторы MUDа о похожей ситуации уже позаботились и если в конфиге указать опцию nameserver slow, то всё заработает (для редактирования конфига команда cedit). То же самое происходит и при обратной ситуации: мад-сервер tbamud на Макбуке, а tt++ на смартфоне.

Похожий случай был у меня в конце февраля. Тогда мы сбежали из Харькова от обстрелов и пару недель жили в селе Ульяновка Харьковской области. Свет там был, но мобильного интернета практически не было. Я взял с собой два ноутбука и пытался наладить внукам возможность поиграть в Майнкрафт по сети. Еще из железа я взял обычный wi-fi роутер. Я включил роутер, он начал раздавать вайфай без интернета. Я подключил к нему оба ноутбука. Ноутбуки могли пингать друг друга. Запустил на обоих Майнкрафт, java версию. На одном создал локальный мир и расшарил мир по сети. Второй ноут увидел этот мир. Увидеть-то он его увидел, но соединиться не смог. Возможно, ситуация была связана с чем-то похожим на мои эксперименты с MUD. Скорее всего при старте майнкрафты что-то пытались резольвить или получить со своего сервера.

Свет починили к часу ночу 15 января.

Вообще, из-за российских обстрелов отключения света бывают у нас частенько, поэтому хочешь не хочешь, а приходится как-то занимать себя в темноте. У меня Макбук, относительно новый, по крайней мере аккумулятор держит заряд несколько часов, часов пять так точно. Можно программировать, можно читать заранее скачанные электронные книги, можно играть в локальный MUD. В локальный Майнкрафт или Майнтест тоже можно играть, но они сильно жрут энергию, особенно Майнкрафт, написанный на джаве. Майнтест это клон Майнкрафта, написан на С++ и более экономен. Надо, кстати, подучить теорию, почему процессор под нагрузкой тратит больше энергии. Ведь и когда компьютер ничего не считает, через микросхему процессора все равно идет ток, то есть он все равно потребляет энергию.

Еще одна тонкость: при авариях с электричеством почти сразу пропадет мобильная связь. Видимо, генераторы и аккумуляторы стоят не на всех сотах или их хватает очень ненадолго. Иногда в моей квартире авосеть не ловится, а если выйти с фонариком и пройтись в темноте в сторону торгово-развлекательного центра “Украина”, то там иногда можно найти места, где ловит. Почему в темноте, потому что зима, рано темнеет. Летом будет проще, будет длинный день и будет тепло и можно будет гулять вечерами, хотя хотелось бы, чтобы к лету мы победили.

Как оказалось, протокол VT100 из знакомых мне клиентов реализован только в tintin++ (еще в zmud, cmud). Не реализован в tortilla, mudlet.

Для чего он может быть нужен? Ну, например для редкого мада Low Lands (Lola MUD), у которого есть оригинальный “тактический дисплей” сверху экрана и строка состояния снизу. Впрочем, при желании все это можно наверное сделать и на ANSI escape codes, позиционирование курсора есть и там.

tintin++ new commit

Вышел новый коммит (то есть минорная версия) мад-клиента tintin++, в который пара мелких багфиксов

Ссылка на github:

https://github.com/scandum/tintin

Сейчас я замусь сборкой его на всех доступных мне платформах, то есть вручную буду делать CI (continuous integration)

Update. 20-aug-2022. Вот сборка для 64-разрядной Винды

http://files.mud.kharkov.org/tintin/tintin2.02.20-august-2022-win64.zip

tintin 2.02.20 для Windows 64 и 32 bit

Дело было вечером, делать было нечего, вот, решил собрать tintin

http://files.mud.kharkov.org/tintin/tintin2.02.20win64.zip

Там внутри три бинарника – оригинальные 2.02.12 и 2.02.20
и прульверсия 2.02.20 (в ней сделано только одно изменение – по умолчанию включается кодировка UTF-8, а не ASCII, а еще я отметился в заставке).

UPDATE: И 32-разрядную версию тоже сделал:

http://files.mud.kharkov.org/tintin/tintin-2.02.20-win32.zip

И снова о cygwin

Иногда при сборке в среде cygwin выдается сообщение (сегодня я на него наткнулся в Win 7 32 bit при сборке клиента tintin++)

‘conftest.exe’: Permission denied.

Или rm: can’t stat conftest.exe или что-то похожее

Чаще всего это бывает при запуске скрипта configure

Я погуглил, этот глюк бывает в Windows из-за того, что выключена служба Windows Application Experience service (в русской Винде – Информация о совместимости приложений). Ее надо включить для чего надо запустить services.msc, найти ее там и включить. Мне помогло.

Маленькое наблюдение про русификацию

Я уже писал, что русификацию английских кодовых баз делаю простейшим способом: в кодовых базах, основанных на Circle/DIKU/ROM/MERC в одном месте модфицируется код проверки вводимого символа так, чтобы все 8-битные символы проходили нормально. Один из последних примеров вот. Но при этом во входной поток могут попасть управляющие символы протокола telnet (или их куски). Когда это бывает? Например после ввода пароля. Во многих кодовых базах для безопасного ввода пароля управляющими символами отключается эхо, а потом оно включается. А во время регистрации после пароля мад спрашивает sex и на любой первый ответ выдает сообщение об ошибке, приходится второй раз говорить m. (Я всегда говорю m).

Так вот, оказалось последние версии клиента tintin++ эту проблему с выскакивающими мусорными символами решают. В версии 2.02.12 все ок, а например в prooltin, основанном на tintin 2.01.7 выскакивает ошибка. Команда telnet тоже дает ошибку (что естественно, он тупой по определению, он так сделан). Чуть позже протестирую другие клиенты.

UPDATE. Проблему можно решить как на стороне сервера, так и на стороне клиента. В новой версии tintin++ проблема решена на стороне клиента – “не реагируем на мусорные символы”. Но я внес коррективы в функцию isprool и теперь не выдаю эти мусорные символы и старая версия tintin++ и некоторые другие виндовые клиенты, которые раньше глючили, теперь не глючат. В общем, проблема решена.