SH.PP.RU blog


Keepalive - как дела и что делаю (+ проект)

Wed Jul 1 20:46:38 2026 UTC

Всем привет! Уже полтора месяца я ничего не выкладывал на свой сайт, так как весь июнь были дела. Необходимо это исправить! :)

Начну с того, что теперь я буду выкладывать новости о новых версиях программ только на английской версии сайта. Думаю, всё равно переводить их на русский было бессмысленно, да и пару раз я, видимо, уже забывал это сделать. Так что все, кому это таки нужно, подпишитесь на англоязычный RSS[1].

На русской версии я с самого начала хотел сделать блог, но, как можно понять по новостной ленте, этот блог повторил судьбу трёх или четырёх предыдущих. Я просто так ничего путного и не написал, даже не пробовал. Видимо, этот формат не для меня, хотя мне всегда хотелось завести бложик.

Так что пока русская версия сайта остаётся абсолютно пустой.

Но рассказать я хотел о том, что последний месяц (с 9 июня) пишу сервер для протокола Spartan[2]. Spartan, не считая референсного сервера и клиента на Питоне, довольно неплох, и я в декабре прошлого года сделал что-то довольно на него похожее. Но под кодовым именем hitori оно так и осталось валяться у меня на диске. Разве что hitori markup я возможно приспособлю, ведь писать gemtext-файлы в vim'е довольно неудобно из-за длинных строк. Всё-таки очень неприятно быть ни с чем не совместимым, а Spartan уже поддерживается в нескольких клиентах. Хотя, клиент для spartan'а я тоже хочу когда-нибудь сделать, но не раньше, чем захочу вручную собрать ncurses :)

Свой сервер я назвал Nokotan[3] :D. Работает он одним процессом, одновременно несколько клиентов обслуживает с помощью select(2)'а. В общем, всё по фэншую. Собственно, я начал писать его, чтобы попробовать сделать что-то рабочее на select'е, потому что тестовый сервер для hitori у меня fork-ался на каждое соединение.

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

Сейчас я поднял у себя тестовый сервер <spartan://sh.pp.ru/>. Там есть несколько довольно тяжёлых по меркам Spartan'а файлов (~10 МиБ), так что можно испытывать сервер на прочность :)

Хотя на самом деле я послезавтра на неделю отключаюсь от интернета, поэтому не смогу читать письма и комментарии. И Нокотан хорошо если упадёт на какой-нибудь ошибке, а то недавно был такой баг, что select переставал блокироваться, и сервер вертелся в активном ожидании, но продолжал корректно принимать соединения, так что я очень долго ничего не замечал. К счастью, в конце концов пофиксил.

За сим откланяюсь, пишите. Feature request'ы принимаются :)

  1. http://en.sh.pp.ru/rss.xml
  2. https://portal.mozz.us/spartan/mozz.us/?
  3. http://en.sh.pp.ru/nokotan.html

Немного информации

Sat May 16 21:53:16 2026 UTC

Я наконец-то написал текст про Рефал, так что другие смогут понять, как писать на нём программы.

Описание языка

Список встроенных в интерпретатор функций

Эти тексты будут поставляться со следующей версией интерпретатора.

Надеюсь, будет полезно. И, как всегда, sorry for bad english!


Beta 1.11 -- ещё немного исправлений

Mon May 11 11:16:21 2026 UTC

В Alya Beta 1.11 исправлено следующее:

  • В Makefile добавлены флаги -ansi -pedantic. Спасибо left и Vbit, мой компилятор не настолько привередливый :-)
  • Убраны все утечки памяти (даже безвредные). Только полюбуйтесь выводом valgrind'а!
  • Починено сообщение об ошибке открытия файла программы.

Спасибо ещё раз dronix <http://apm.unixwizards.net>, протестировавшему Алю на OpenBSD.


Несколько исправлений

Fri May 8 19:58:56 2026 UTC

Вышла новая версия Alya beta 1.1

  • Добавлена цель `make install'
  • Некоторые скрипты в examples/ переработаны
  • В скриптах из examples/ исправлены пути до интерпретатора
  • Исправлен вылет, если начальное поле зрения пусто (например, если в интерактивном режиме подать пустую строку)

Спасибо пользователю dronix <http://apm.unixwizards.net>, который отправил полезный фидбек и добавил цель `install' в Мэйкфайл.


Alya REFAL Beta!

Wed May 6 21:07:44 2026 UTC

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

Страница интерпретатора

Страница для скачивания

Очень надеюсь на обратную связь по эл. почте или в комментариях!


Первая версия Alya Refal

Mon Apr 20 17:49:30 2026 UTC

Сегодня выложил-таки первую версию своей самой большой на данный момент программы (около 1500 строк).

Это интерпретатор полузабытого в наши дни языка Рефал. Несколько отличается от Рефала-5, а других диалектов я и не знаю.

Находится здесь.

В будущем напишу более внятную документацию, а то пока что, возможно, понятно будет только мне :) Хотя надеюсь, что это не так, и все, кто попробует, со всем разберутся.

Развлекайтесь!)


Сайт настроен и запущен

Wed Apr 1 08:36:32 2026 UTC

Вчера настроил английскую часть сайта, а сегодня утром доделал русскую.

Да, пока что тут ничего нет, но я планирую сделать здесь свой блог, а ещё выкладывать какие-нибудь свои мысли и работы. Когда-нибудь же я сделаю всё, что хочу сделать!

Пока что здесь можно написать мне письмо через форму или оставить коммент под этим постом или в гостевой. Хотя пока что тут просто нечего обсуждать. Но всему своё время!


RSS feed