Pages: 1 2 3 4
RSS
# МЕТАПАРСЕР 2.3
std.club
hugeping(ping,1) — All
2021-10-23 09:06:59


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

# МЕТАПАРСЕР 2.3

* исправление TakeAll (для частей объекта);
* экспериментальный режим mp.strict_mode;
* mp.inp_delim;
* исправление в mp:match;
* исправление в mp:post_action во время abort_cmd (snapshots);
* исправления в стандартной библиотеке.

# RE:INSTEAD 0.6

* перевод Urzi на английский (спасибо, canwolf!);
* новая игра "Краски октября:;
* Android: совместимость с настройкой rotate lock;
* исправление ошибок.

// Версия для F-Droid в пути!

# Сайт парсерного сопротивления https://parser.hugeping.ru

* обновлён МП;
* добавлены новые игры: Краски октября и перевод Urzi.

# instead-cli 1.6

* обновлён до новой версии МП.

# metaparser-js 2.3

* обновлён до новой версии МП.

#news

# Re: КРАСКИ ОКТЯБРЯ
std.hugeping.micro
hugeping(ping,1) — vvs
2021-10-18 17:15:39


vvs> А почему ты решил, что тебя сейчас читают меньше, чем "Компьютерру"? По крайней мере сюда ещё кто-то пишет, в отличие от неё :)

О, с такой стороны я ещё не заходил. :) Надо потом будет ещё pdf делать из лучших статей :)

# Re: КРАСКИ ОКТЯБРЯ
std.hugeping.micro
hugeping(ping,1) — vvs
2021-10-18 16:31:50


А я всё хотел написать статью в "КОМПЬЮТЕРРУ". Всё хотел, хотел.. пока она не закрылась. :)
Теперь вот "тренируюсь" на играх и статьях здесь. Правда, непонятно кому и зачем это нужно. Хотя, как терапия, нужно мне самому. :)

# Аскетика в отладке
std.hugeping
hugeping(ping,1) — All
2021-10-18 16:29:58


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

Когда-то, разрабатывая драйверы ещё в Windows, я пользовался SoftIce. Это был такой легендарный отладчик уровня ядра. Когда я перешёл на Linux, отладчиков такого уровня я не нашёл. Это был удар. Я не мог понять как вообще можно отлаживать код без отладчика? Но шло время и постепенно я стал замечать, что основное затруднение вызывают баги такого рода, когда отладчик никак не поможет... Обычно это проблемы синхронизации, гонок, или фундаментальные проблемы (когда архитектурные решения основывались на ложных предпосылках). И вот для такого рода ошибок, как оказалось, отладчик бесполезен. Нужно только проводить эксперименты и думать, пытаться сложить все наблюдения в одну картину.

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

Учась в институте, когда мы-студенты уже считали себя крутыми программистами, сталкиваясь с необъяснимыми ситуациями, мы часто ссылались на "ошибки компилятора". Как же хочется и сегодня иногда свалить всё на "ошибку компилятора".

- Такого не может быть!
- Это проблема в тесте!
- Может быть, виноваты битые провода?

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

Работает прямо противоположный подход. Я бы назвал его аскетическим. Есть факт, и этот факт прост -- в твоей программе баг. Она несовершенна. Ты не понимаешь сути происходящего, но реальность подчиняется логике. Ты просто не видишь всей картины. Нужно смириться, собирать факты (улики) и думать, думать, думать. Не можешь связать все улики воедино? Не стоит отчаиваться! Все баги, которые ты встречал до сих пор в своей в жизни, ты решил. Каждый раз объяснение находилось, и каждый раз оно было и очевидным, и неожиданным одновременно. Так будет и в этот раз, хотя сейчас в это сложно поверить. Просто думай.

Объяснение нашлось. Как именно это происходит, я не знаю. В какой-то момент просыпается интуиция и говорит в чём дело. Поэтому отладка для меня это всегда источник страха. Потому что я не понимаю до конца, как именно решаю проблему. Есть здесь что-то иррациональное. Я просто собираю факты, обсуждаю их с кем-нибудь, думаю и потом что-то происходит. Но я, как буд-то, не контролирую этот процесс. А вдруг, в этот раз не сработает?

Ещё интересное наблюдение. Сейчас проблема была архитектурной. То, что я считал аксиомой -- оказалось ложным предположением. Именно поэтому я так долго находился в состоянии "отрицания". А ещё, проблема оказалась каскадной. То-есть, пофиксив один баг, я не решил проблему в целом. Интересное ощущение, когда логика отказывает второй раз подряд и ты вдруг понимаешь, что реакции "чёрного ящика" снова стали непредсказуемыми. Ощущение, что реальность рассыпается на кусочки.

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

# КРАСКИ ОКТЯБРЯ
std.hugeping.micro
hugeping(ping,1) — All
2021-10-17 18:28:15


В 2015 году я, тогда ещё на МЕТАПАРСЕР2, написал игру "КРАСКИ СЕНТЯБРЯ". А так как для проекта Re:instead есть пока только 10 игр, я решил её портировать на новый метапарсер. Думал сейчас быстренько перенесу и будет 11 игр... Ага. Сейчас.

Нет, технически проблем не было. Проблемы начались тогда, когда я начал читать свой текст.

Он -- ужасен. Нет, он правда УЖАСЕН! Из этого я сделал интересный вывод. Я меняюсь. Практически каждое предложение заставляло меня морщиться и ужасаться. Загадки, конечно, тоже спорные. Поэтому их я частично переделал. Ну и графика была такого низкого качества, что пришлось нарисовать новые картинки... В итоге, получилась вроде бы не новая игра, но и уже не совсем старая. И я решил ей дать другое название. Оригинал из 2015-го назывался "КРАСКИ СЕНТЯБРЯ". Не долго думая, заменил название на "КРАСКИ ОКТЯБРЯ".

Но, возвращаясь к тексту. Похоже, мне лучше не смотреть свои старые проекты. Иначе придётся переписывать всё. Я раньше думал, что такое у меня только с кодом...

Интересно, впрочем, что всё-таки были участки, которые мне нравились. Что-то я оставлял без изменений. И вообще, в целом, история меня вдохновила так же, как и в 2015-м.

Так что, после тестирования, буду выпускать новый Re:instead с этой игрой.

# ACME в Linux: пишем почтовый клиент
plan.9
hugeping(ping,1) — hugeping
2021-10-13 17:48:36


Написал статью о том, как писал фронтенд к почте для acme:
ii://S4sJA2iZYo83k8ZnpjEX

# Редактор acme: пишем почтовый клиент
std.hugeping
hugeping(ping,1) — All
2021-10-13 17:46:59


Медленно, но верно, редактор acme становится моим основным редактором-средой в Linux. Почему это происходит, вопрос отдельный и он не сводится к утилитарности. Проще, удобнее, быстрее -- это всё категории, которые в большей степени определяются нашими привычками. А мной в IT движет любопытство и тяга к простоте.

Идея acme очень простая, но при этом мощная. Это не редактор, это прослойка между Unix средой и человеком. Когда вы работаете с acme, "редактором" становится вся ОС. В начале это очень непривычно, но потом -- затягивает.

До последнего момента в качестве основного редактора я пользовался emacs и пользовался им как средой. То-есть, кроме собственно редактирования файлов я читал в нём почту (mu4e), общался в телеграм (telega.el), читал pdf ну и так далее...

Отвыкнуть от emacs очень сложно, а мне было интересно проводить в acme больше времени, поэтому я решил попробовать перенести в него работу с почтой.

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

# Синхронизация почты mbsync

Для синхронизации почты между Maildir на диске и imap на сервере нашлась отличная штука: isync (или mbsync). Замечательна она тем, что синхронизация работает в обе стороны. То-есть, удаляя письмо в Maildir вы тем самым удаляете его в imap mailbox. Ну и так далее. Таким образом, вы получаете единый срез почты на многих машинах и всё это прекрасным образом синхронизируется через imap.

Конфигурация выглядит примерно так:

IMAPAccount gmail
Host imap.gmail.com
User user@gmail.com
Pass password
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt

IMAPStore gmail-remote
UseUTF8Mailboxes yes
Account gmail

MaildirStore gmail-local
SubFolders Verbatim
Path ~/Mail/gmail/
Inbox ~/Mail/gmail/Inbox

Channel gmail
Far :gmail-remote:
Near :gmail-local:
Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/9front"
Create Both
Expunge Both
SyncState *

Правда, mbsync из апстрима создаёт каталоги на диске в кодировке UTF-7. Но в aur есть пакет с поддержкой UTF-8. Обратите внимание на UseUTF8Mailboxes в конфиге. Для других Linux можно собрать версию отсюда: https://sourceforge.net/u/shashurup/isync/ci/utf8-mailboxes/tree/

После того, как всё настроили, можно поставить задачу на таймер в systemd или cron и всё.

# Индексация

Не так давно я открыл для себя mu. Mu позволяет индексировать почту в Maildir и дальше делать выборку, показ писем, распаковку аттачей и так далее. И всё это очень быстро. Вместе с mu идёт почтовый клиент для emacs -- mu4e.

Для создания базы просто делаем что-то вроде:

$ mu init --my-address='ваш емейл'

И потом периодически делаем индексацию:

$ mu index

# Идея почтового клиента на acme

Mu -- это почти полноценный клиент, по крайней мере, для чтения почты. Практически всё можно сделать из командной строки. Например, вывести последние сообщения:

$ mu find --sortfield d --reverse "" | head -n10

Чтобы просмотреть сообщение, вы должны указать путь к конкретному файлу в Maildir. Например:

mu view `mu find "" --sortfield d --reverse -f l | head -n1`

Конечно, пользоваться в таком виде почтой малореально, но возможностей для скриптования -- масса. И когда я это понял, то решил написать свой фронтенд к mu для acme.

# Приложение на acme

Acme с помощью файловой системы предоставляет доступ к некоторым функциям по работе с своими окнами, которых оказывается достаточно для написания "приложений". Если вы работаете в Plan9, то файловая система доступна всегда. Если же вы запускаете acme в рамках plan9port, то для доступа к ней можно:

1. Использовать утилиту 9p
2. Подмонтировать ФС через fuse: 9pfuse

Допустим, у нас есть скрипт hello, который доступен по PATH. Если запустить acme и вписать hello в заголовок главного окна (там где Newcol Kill Putall Dump..), а потом нажать на hello 2-й кнопкой мыши, то скрипт запустится.

Когда скрипт запускается в рамках acme, то переменная окружения winid содержит номер текущего окна или 0, если нет никаких открытых окон, кроме главного.

Для работы с файловой системы acme пока будем пользоваться 9p.

#!/bin/sh
9p ls acme
9p read acme acme/$winid/tag

Запустите этот вариант скрипта и увидите в отдельном окне корень ФС acme и список пунктов меню вашего текущего активного окна (если такое есть).

То же самое можно сделать с fuse:

#!/bin/sh
mnt=`mktemp -d /tmp/acmeXXXX`
9pfuse `namespace`/acme $mnt

ls $mnt
cat $mnt/$winid/tag

fusermount -u "$mnt" && rmdir "$mnt"

На самом деле, в теории, fuse вариант удобнее и быстрее, но я столкнулся с проблемой. Мой ноутбук с ArchLinux не хотел уходить в сон, пока есть хоть одна подмонтированная точка fuse. Так что приходится всё время монтировать и размонтировать, что не очень удобно.

В man 4 acme (из plan9port) описана файловая система acme. Я не буду здесь пересказывать эту информацию, но отмечу только некоторые моменты с которыми столкнулся.

1. По идее, мы можем считать позицию селектора (курсор + выделение) с помощью записи в ctl строки addr=dot и и последующего чтения из addr. Однако, при открытии addr он каждый раз ресетится. Таким образом, с помощью 9p вы не сможете получить текущую позицию курсора, так как это две операции: запись addr=dot и чтение addr. А нужно, открыть (и не закрывать addr), потом записать addr=dot, потом прочитать addr. Это можно проделать при использовании 9pfuse. Например:

pos=`{ echo 'addr=dot' >> $mnt/$winid/ctl; cat; }<$mnt/$winid/addr`

2. Если добавлять в окно текст (в data), содержащий в себе переводы строк, то просто так читать из event построчно не получится. Потому что первая строка будет содержать событие, а следующая -- уже просто кусок текста и так далее. Да, число символов текстового блока тоже при этом приходит, но писать обработку такого протокола на shell неудобно. Поэтому я добавлял текст только построчно.

# Версия на shell

Первую черновую версию я написал на shell. Всё, что она делала -- показывала последние 100 писем и реагировала на нажатие средней кнопки мыши на путь к письму (при этом, нужно было сначала этот путь выделить). Она была неудобна, неполна. Но очень проста. Поэтому, в качестве иллюстраций я привожу этот вариант целиком:

#!/bin/sh
mail_view()
{
	mu view "$MAILDIR/$2" --nocolor | 9p write acme/$1/data
	echo -n 'clean' | 9p write acme/$1/ctl
	toline $1 0
}

mail_ls()
{
	mu find --nocolor -s d --reverse -f "l|d|f|s" "" | \
		/usr/bin/sed -e 's|'$MAILDIR'/\([^ ]\+\)|\1|g' | \
		head -n 100 | 9p write acme/$1/data
	echo -n 'clean' | 9p write acme/$1/ctl
	toline $1 0
}

toline()
{
	echo -n "$2" | 9p write acme/$1/addr
	echo -n 'dot=addr' | 9p write acme/$1/ctl
	echo -n 'show' | 9p write acme/$1/ctl
}

if [ -z "$winid" ]; then
	exit 1
fi

# создаём новое окно
winid=`9p read acme/new/ctl | awk '{ print $1 }'`
# показываем 100 сообщений
mail_ls $winid
# добавляем "кнопку" Get
echo -n "Get" | 9p write acme/$winid/tag

# цикл обработки событий
9p read acme/$winid/event | while read a b c d e; do
	if echo "$a" | grep -q -e '^Mx' 2>/dev/null; then # mx
		if [ "$e" = "Get" ]; then
			mail_ls $winid
			continue
		fi
	elif echo "$a" | grep -q -e '^ML' 2>/dev/null; then
		if [ -f "$MAILDIR/$e" ]; then
			msgid=`9p read acme/new/ctl | awk '{ print $1 }'`
			mail_view $msgid $e
			continue
		fi
	fi
	echo "$a $b" | 9p write acme/$winid/event 2>/dev/null
done

Кстати, этот текст был вставлен в статью так:

- ввел в tagline <cat email;
- выделил этот текст;
- нажал 2ю кнопку мыши.

Обратите внимание на цикл обработки событий. Мы просто ждём их, читая из event и реагируем нужным образом. Или снова перечитываем сообщения, или открываем текст нужного сообщения в новом окне.

Не смотря на некоторые проблемы, о которых я узнал позже, скрипт как-то работал. Однако я быстро понял, что сложную логику писать на shell не очень весело, поэтому я перешёл на Lua. Вероятно, на go было бы ещё проще, но мне хотелось сделать всё "здесь и сейчас"...

# Версия на Lua

То, что в итоге получилось, можно посмотреть тут: https://github.com/gl00my/plan9hacks/blob/master/linux/mu-query

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

1. Для отправки почты используется msmtp.

defaults
auth on
tls on
logfile ~/.msmtp.log

account gmail
host smtp.gmail.com
port 587
tls_certcheck off
from user@gmail.com
user user@gmail.com
password password

account default : gmail

2. mu-query умеет показывать запросы mu. Например, вводим в tagline: mu-query from:ivanov, выделяем, нажимаем 2-ю кнопку мыши и видим нужный результат. Если не указывать запрос, показываются последние 100 сообщений. Можно листать по 100 сообщений командой Page.

3. При просмотре сообщения все аттачи распаковываются во временную директорию. Например, если я вижу, что это html письмо, я могу дописать firefox file:/// перед путём к файлу прямо в теле сообщения и нажать.

4. На данный момент поддерживается только Reply, составление нового сообщения, удаление и пометка сообщений как Seen. Forward и добавлений аттачей нет. Это несложно добавить, но пока я не стал этого делать. Может быть, будет третья итерация уже на go. :)

5. Чтобы удалить пачку сообщений или пометить их как прочитанные нужно выделить все нужные сообщения и нажать на соответствующую "кнопку".

На данный момент я пользуюсь mu-query на постоянной основе и очень доволен. Мне действительно это удобно. И главное, я понял что относительно просто могу писать под себя интерфейсы. Например, я уже задумываюсь о команде git-log.

# Опыт acme

Если говорить о практической пользе, то кроме "персонализации" инструментария я получаю с acme тот же эффект, что получаю от Plan9. У меня разгружается сознание. Когда я работаю в emacs, мой мозг перегружен информацией о множестве клавиатурных комбинаций и конкретных рецептах. Если брать другие редакторы, то в целом, ситуация повторяется. Acme в этом плане не похож ни на один из них. Его "базис" очень простой, единообразный и при этом всё ещё мощный. Настоящий Unix инструмент!

Когда я первый раз увидел acme, я не мог даже себе представить, что в _этом_ можно работать. Что же, ещё один повод напомнить себе, что встречать по одёжке не стоит.

Кстати, об одёжке. Уверен, у 99% людей пропадает интерес к acme как только они узнают, что в нём нет подстветки синтаксиса. Или, что в этом редакторе нельзя перемещаться по строкам вверх-вниз с помощью клавиатуры... Я зря это сейчас сказал, да? :)

# Re: Про собаку, мячик и сливную решётку
std.hugeping.micro
hugeping(ping,1) — boscholeg
2021-10-13 11:03:36


boscholeg> Намекаешь на то, что тебя тащат куда-то против твоей воли? Или на беспочвенность своих страхов и сомнений?

Да в том-то и дело, что не знаю. :) Может быть, просто жалок? :) Шучу. Не знаю. Много каких-то ассоциативных образов, которые подсознательно действуют.

# Про собаку, мячик и сливную решётку
std.hugeping.micro
hugeping(ping,1) — All
2021-10-13 09:30:56


На днях шёл домой. Было уже темно. Спустился в длинный подземный переход. Меня обогнал мужчина в спортивного телосложения, который вёл на поводке свирепого на вид бульдога. Бульдог нёс в зубах мячик. Когда они были где-то на середине перехода я услышал, как мужчина уговаривает пса:

-- Ну не бойся, давай. Не бойся.

Оказалось, что пёс лег на пол, прижав голову и распластав лапы. Он отказывался пересекать узкую решётку слива. Ну, сантиметров 15.

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

Я не знаю почему, но этот эпизод прямо врезался в память, и я всё время к нему возвращаюсь.

Почему сливная решётка стала для пса непреодолимой проблемой? Травма, ассоциация, что-то ещё? Помогал ли мячик в зубах бульдога преодолеть страх? Что он чувствовал, когда хозяин волок его через "страшное" препятствие?

Может быть, я тоже как эта собака?

# Re: 0 или 1
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2021-10-13 08:08:49


AL> Саму проблему я примерно понял, но не понял откуда вообще берётся этот вопрос.

Я, в общем, об этом и говорю. Остальные рассуждения, следствие вот этой вот поворотной точки. Я где-то кажется цитировал Джона Чалмерса, но не могу найти сейчас. Так что ещё раз приведу.

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

...

> В этой связи можно было бы говорить о Великом Разделении, имеющемся в области исследований сознания. Если вы считаете, что решение «легких» проблем объясняет все, что нуждается в объяснении, то у вас получается один тип теории; если вы считаете, что кроме них есть и дополнительная «трудная» проблема, то у вас будет другой ее тип. В какой-то момент общезначимые аргументы становятся затруднительны, и обсуждения зачастую сводятся к ударам по столу.

> Мне кажется очевидным, что здесь есть некий дополнительный момент, нуждающийся в объяснении; другие же готовы принять, что ничего подобного не существует.

> Не исключено, что нам надо попросту смириться с этим базовым разделением.

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

Так что, действительно, есть "разделение". Это удивительно. И таких разделений масса.

# Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-10-12 11:15:18


vvs> Иногда даже возникает сомнение: а действительно ли многие люди говорят на одном со мной языке?

Вот-вот... ;) Скорее всего на разных. Особенно, когда речь заходит об абстрактных понятиях. И дело тут мне кажется не только в языке, но и в том, как ощущаются понятия (или не ощущаются вообще).

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

# Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-10-04 22:41:23


vvs> Честно говоря, для меня эта тема была уже закрыта. Я высказал здесь своё мнение только чтобы до конца объяснить своё отношение и во избежание обвинений в предвзятости меня самого. А вот в предвзятой обстановке на форуме я такой возможности просто не вижу.

Да, давай закроем. Я с твоим мнением согласен в той части, что касается хамства и перехода на личности. Но вмешиваться в процесс я не хочу. Форум я "дропнул" и если бы не spline, его бы не было сейчас вообще. Я модерировал его тоже не лучшим образом и тоже, скорее в авторитарном режиме (что мне не нравилось). В поддержке репозитория я тоже себя дескредитировал. Так что это spline сейчас разгребает мои долги.

Все мы имеем свои особенности. Я привык к резкости и kerber и spline и как то делаю поправку на неё. Меня могут тоже послать, но и я в принципе могу это сделать. Так и живём. Но, в общем, прими мои извинения за ситуацию. Можешь писать здесь спокойно. Если дойдёт до конфликтов и тут, я решу проблему на своей площадке.

# Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-10-04 08:41:28


vvs> P.S. Совсем другое дело - проявление неуважения к собеседнику, чего я в людях не выношу. Моё определение подлости: обращение с людьми не по правилам, общим для всех порядочных людей, а по критерию личной пользы и положению в какой-то иерархии, да ещё и хамство и притворство. И это моя мораль, к которой у меня отношение исключительно чёрно-белое и это меня не тяготит.

Тут ещё проблема в том, что общение по сети накладывает свои особенности. В жизни к тебе вряд-ли подойдёт человек и начнёт докапываться по какому-то поводу. Если только он не пьян. В другую сторону, правда, тоже действует. Общение по сети действует как алкоголь - ослабляя сдерживающие факторы.

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

Агрессивное общение spline/kerber меня печалит особенно, потому что это мои сетевые друзья. И я знаю этих людей с хорошей стороны, но агрессивно-прямая манера поведения -- конечно многих пугает.

P.S. Можно ещё Столлмана вспомнить. :)

# Re:instead 0.5 с поддержкой tts
std.club
hugeping(ping,1) — All
2021-10-02 10:22:07


Выпустил Re:instead 0.5 с поддержкой голосового вывода и улучшениями в Android сборке.

* поддержка голосового вывода на: Linux, Windows и Android.
* !tts команда;
* функции доступности в Android версии;
* лучшая поддержка виртуальных клавиатур Android;
* исправления ошибок.

Этот релиз не состоялся бы без помощи Nikita Tseykovets. Спасибо!

Как обычно, скачать версии для Windows/Linux и Android можно с github: https://github.com/instead-hub/reinstead

Версия в F-Droid будет через несколько дней.

#news

# Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-09-23 13:41:42


vvs> Иными словами, я хочу сказать, что человек - активный преобразователь мира, а не просто сторонний наблюдатель.

Моя заметка в основном о том, что одно дело -- те вещи, которые мы создаём (и, поэтому, осознаём и подчиняем их логике), а другое дело -- мы сами и другие люди, восприятие мира. Жизнь не редуцируется. В лучшем случае -- она диалектична. Законы, которые работают в логике -- работают не везде. Попытка обосновать всю нашу жизнь логически, научно или как-то ещё уложить в непротиворечивую "теорию" неизбежно будут содержать сингулярности. В нас есть (как в творении Божьем) бесконечность внутри. Тот же пример рассуждения: я смертен значит меня не существует, при кажущемся парадоксе мне соверешенно (как идеалисту) понятен. Если наше существование не утверждено Богом -- нас просто не существует.

Это "философская" часть заметки, которая присутствует в ней неявно. А явно -- просто бытовая проблема, когда твоя "логичность" доводит до нервных срывов и конфликтов, потому что доведённая до абсолюта -- она в жизни только мешает.

Но я ни с чем не спорю, просто пояснил другими словами свою мысль.

# Re: 0 или 1
std.hugeping
hugeping(ping,1) — vvs
2021-09-21 19:47:10


> Наличие только двух вариантов - это характерно для булевой логики и, в более скрытом виде, в классическом законе исключённого третьего.

> Программист, который не любит математические головоломки - это любопытная экзотика. Возможно он просто не умеет их готовить? (изучаем ещё и кулинарию ;)

В повседневной жизни я встречал программистов-математиков и программистов-инженеров. Я скорее отношусь ко вторым.

"Он делает всё точно так, как я скажу! Даже, если я ошибаюсь!" Эта была основная мысль, которую я помню в процессе написания своей первой программы и она дала толчок всему остальному.

Никогда не умел нормально (да и не любил) играть в шахматы. Решать математические головоломки. Терпеть не мог квесты с вставками игрушек на логику. (Например, были такие в Машинариуме).

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

# Re: Блокировка INSTEAD в Google Play
std.club
hugeping(ping,1) — hugeping
2021-09-21 15:49:49


Приложение снова доступно :) Ура!

# Re: RE:INSTEAD
std.club
hugeping(ping,1) — hugeping
2021-09-21 15:49:11


tts в re:instead

Со второй попытки, всё-таки, поддержку tts решил оставить. (Пока, только для Android). Спасибо Никите за помощь! Поддержка неидеальна, конечно, но пользоваться можно.

Будет в следующей версии (0.5).

# 0 или 1
std.hugeping
hugeping(ping,1) — All
2021-09-21 15:32:40


Когда долго программируешь, привыкаешь проверять все причинно-следственные связи от начала и до конца, разворачивать их. Отладка учит быть подозрительным. Не верь тому, что написано и вроде-бы "работало раньше". Ошибка могла не проявляться. Ошибка может скрывать проявление другой ошибки. Ошибка может быть следствием гонки. Несколько ошибок могут входить в суперпозицию и выглядеть как одна ошибка или наоборот. Чтобы действительно разобраться в проблеме, ты должен понять что именно происходит максимально педантично и досконально. Никаких домыслов! Никаких непроверенных предположений! Каждый раз ты должен учиться смотреть на код, как будто он написан только что.

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

Если высказано какое-либо суждение, ты начинаешь его раскручивать и доводить до логического конца. Интерпретация событий всегда чёрно-белая. 0 или 1? Ведь нужен конкретный и простой факт в основе. То, что хорошо помогает искать ошибки может навредить в общении. Например?

> - Смотри, я тут игру написал Color Lines.
> - Неплохо. Только цвета шариков мне не нравятся.
> - А мне, кажется, красиво.
> - Нет, слишком яркие.

(сценарий 0) Я подобрал плохие цвета. -> Они мне нравятся, значит, у меня нет вкуса. -> Зря я написал игру.

(сценарий 1) Цвета мне нравятся, а оппоненту -- нет. -> У оппонента нет вкуса, не надо учитывать его мнение. -> Зря я его спросил.

Следствие синдрома. "Если что-то может случиться, то это обязательно случится." Перекликается с законами Мерфи, да? Не случайно, ой не случайно... :)

> - Где мой паспорт?
> - Зачем тебе?
> - Я всегда беру паспорт, когда выхожу на улицу... И, кстати, где зонт?

Усиление следствия. "Если что-то случится в будущем, то это уже случилось."

> Мы смертны -> мы уже мертвы -> нас не существует и никогда не существовало.

Ещё одно следствие -- если назревает конфликт, нет смысла тянуть, ведь "он уже случился".

> - Не могу тебя видеть!
> - Если мы враги, то давай расстанемся. Если нет, то зачем эта ссора?

Наконец, невозможность делать простейшие вещи без детального понимания задачи.

> - Отрежь кусочек скотча.
> - Какой длины?
> - Просто кусочек скотча.
> - Для какой задачи нужен скотч? (попытка узнать точную длину отрезка под задачу)
> - Блин, да ты издеваешься!

// Все диалоги являются вымышленными, любое сходство -- случайно.

Годами выработанная привычка сводить всё к "да" или "нет", "всё" или "ничего", 0 или 1 -- рано или поздно находит выход, нередко приводя к раздражению, непониманию, ссорам.

Программа -- мир, который создал программист и полностью его контролирует. Выполнение программы в глубине своей -- детерминированная шарманка. Возможно, именно отсутствие противоречий и привлекает программистов в профессию. Но жизнь -- нередуцируема и противоречива по своей сути. Попытка действовать в реальном мире так же, как ты привык работать в виртуальном, неизбежно приводит к конфликту. Попытка решения его в виде ответа 0 или 1 приводит к парадоксальным и опасным состояниям. В лучшем случае -- просто неадекватным.

Когда я слышу очередную "печальную" новость про программиста, я всегда с сожалением думаю, что не последнюю роль здесь сыграл синдром 0 или 1.

Мне кажется, любой программист в качестве противоядия должен иметь "аналоговое" хобби. Велосипед, гитара, рыбалка... Что угодно, что позволяет не терять связь с реальным миром и напоминать себе, что не всё решается через 0 или 1.

Берегите себя!

# Re: Деды и творчество
std.hugeping.micro
hugeping(ping,1) — vvs
2021-09-21 14:39:55


vvs> Внуки есть? Тогда не дед ;)

Дед! Дед Мороз я. :)

# Деды и творчество
std.hugeping.micro
hugeping(ping,1) — All
2021-09-21 13:08:20


Очень вдохновляют примеры, когда творчеством занимаются пожилые люди. Пётр Мамонов, Procol Harum (выпустившие альбом в 2017!), Питер Фальк в роли самого себя в Коломбо... Экзюпери написал Маленького принца после 40. В общем, если приглядеться, то в глазах взрослых с виду людей, можно разглядеть искорки детства.

Как-то на youtube случайно натолкнулся на любительский клип на одну из любимых песен Procol Harum. Вот он https://www.youtube.com/watch?v=-MnQTFa7PHI

Видеоряд + музыка совпали на 100%! Музыка резонируют с картинкой так, что на кадрах, когда барон обгоняет летящую смерть, я чувствовал мурашки по телу. Это было настолько удивительно и круто, что я посмотрел фильм, из которого был нарезан видеоряд. Вот этот фильм: https://ru.wikipedia.org/wiki/Приключения_барона_Мюнхгаузена_(фильм)

А режиссёром оказался Терри Гиллиам, известный мне главным образом только по прекрасной "Бразилии". Прочитал, что "Приключения барона Мюнхгаузена" неофициально считается одой старости и завершает трилогию, начатую картинами "Бандиты времени" и "Бразилия", которые соответствуют юности и зрелости.

Что тут сказать? "Ты не один"(c)

# Re: RE:INSTEAD
std.club
hugeping(ping,1) — hugeping
2021-09-19 13:29:01


Выпустил RE:INSTEAD 0.4

Новое:

* возможность сборки с одной из трёх библиотек рендеринга шрифтов (stb_truetype/libschrift/freetype);
* статические сборки Linux/Windows теперь собираются с freetype;
* исправление ошибок;
* системные команды теперь начинаются с ! (например, !save);
* команды !saves и !rm для просмотра и удаления сейвов.

Готовы бинарные сборки для Linux/Windows (reinstead-0.4.zip) и .apk для Android.
Обновление в F-Droid должно тоже скоро подоспеть.

https://github.com/instead-hub/reinstead/releases

# Re: Программирование как зависимость
std.hugeping.micro
hugeping(ping,1) — vvs
2021-09-18 14:46:19


В "Возвращении квантового кота" есть герой, бомж. Там он говорит что-то такое:

> Когда-то я хотел стать кандидатом наук... Писал диссертацию на тему строения материи.. Но... Мой мозг переутомился... Я пытался успокоиться и вот... Теперь я здесь...

Действительно, слышал, были такие случаи... ;)

# Re: Программирование как зависимость
std.hugeping.micro
hugeping(ping,1) — vvs
2021-09-17 20:09:52


vvs> В итоге ни одна книга в отдельности уже не может нанести мне вреда! Здорово, правда? :'D

А книга наносит вред содержимым или самим фактом чтения? :) Потому что если говорить про программирование, то тут сам процесс -- источник хронических заболеваний и повреждения нервной системы. :)

# Программирование как зависимость
std.hugeping.micro
hugeping(ping,1) — All
2021-09-15 13:12:03


Несколько дней нахожусь в программистском запое. Программирую Re:instead. Этот проект никак не связывает мне руки, поэтому чувствую эмоциональный подъём. За счёт недосыпания и насилия над нервной системой, конечно же. Это плохо, каждый раз думаю об этом и... Ничего не меняется. Страсть программирования сидит уже глубоко, и просто так победить это не получится. Да и решимости, наверное, нет. "Дай мне целомудрие и воздержание, только не сейчас" // Августин Блаженный.

Но вред от этой зависимости есть. Конечно, хочется её романтизировать и идеализировать. Но она вредит и, при этом, мало что даёт на выходе. Кто знает о проекте Re:instead? 10 человек? :) Полезен ли он? Единственная надежда на пользу, это добавление TTS поддержки для незрячих. Которую, кажется, можно было бы сделать для Android версии. Может быть попробую сделать это.

За это время отделил логику рендеринга шрифтов так, что менять библиотеки отрисовки текста стало очень просто. Сделал возможность собираться с freetype (он даёт лучшее качество на низких DPI) и с libschrift (просто до кучи). Так что теперь Re:instead может быть собран с 3-мя рендерами.

Бинарные сборки 0.4 будут уже на freetype.

# netsurf и iconv
plan.9
hugeping(ping,1) — All
2021-09-12 22:11:57


Те, кто пользуются 9front наверняка знают, что есть порт netsurf: https://github.com/netsurf-plan9/netsurf

К сожалению, порт собран без iconv поддержки. Поэтому некоторые сайты (например, opennet) открываются с убитой кодировкой.

Я взял iconv реализацию из openwrt и грязным образом прикрутил к netsurf. Положил в свой репозиторий: https://github.com/gl00my/plan9hacks

P.S. Кроме этого, у меня там есть ещё какие-то патчи, которые что-то исправляют в плане русского и шрифтов.

# RE:INSTEAD
std.club
hugeping(ping,1) — All
2021-09-12 16:11:47


Выпущен Re:instead 0.3. В новой версии:

- Настройка conf.width: максимальное число символов в строке;
- Обновлён Метапарсер;
- Исправлены ошибки;
- Улучшена Android версия.

Также, Re:instead уже можно поставить из F-Droid! Правда, пока только прошлую версию (0.2).

https://github.com/instead-hub/reinstead/releases/tag/0.3

#news

P.S. Edited: 2021-09-19 13:24:33

# 07.09.2021 - F-Droid и бан INSTEAD в Google Play
std.hugeping.micro
hugeping(ping,1) — All
2021-09-07 18:30:43


Последние дни занимался тем, что добавлял re:instead в F-Droid. И это, похоже, удалось! Сегодня смержили в мастер ветку. Так что остаётся только ждать, когда обновится репозиторий, искать и ставить приложение reinstead.

Вчера INSTEAD ланчер от Бориса Тимофеева был забанен на Google Play. С одной стороны, я расстроился. С другой -- это закономерно. Свободное ПО всегда будет встречать сопротивление. Наверное, можно попробовать оспорить решение, объяснив что INSTEAD не устанавливает ПО, а качает Lua скрипты игр... И Борис попробует это сделать. Но мне кажется, окончательно сбросить с себя ярмо корпорации -- тоже неплохой вариант. Так или иначе, INSTEAD доступен через в F-Droid...

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

P.S. Edited: 2021-09-07 18:32:14

# Блокировка INSTEAD в Google Play
std.club
hugeping(ping,1) — All
2021-09-05 19:04:07


Сегодня выпустил re:instead. Сделал также merge реквест в f-droid. Настроение выполненной работы держалось до самого вечера, когда пришли тревожные новости...

# INSTEAD от btimofeev заблокирован в Google Play #

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

На самом деле, неуместность INSTEAD на коммерческой площадке чувствовалась и раньше. И вот, сейчас мы получили логическую развязку. INSTEAD не место на площадке Apple. Не место на площадке Google.

Не знаю, что будет дальше, но лично моё мнение, что лучше просто послать Google подальше и продолжать заниматься творчеством. Пока ещё есть возможность запускать открытый код на наших (пока?) компьютерах.

Напомню, что скачать приложение вы можете из репозитория открытых проектов на F-Droid: https://f-droid.org/en/packages/org.emunix.insteadlauncher/

Я обновил ссылку на https://instead.hugeping.ru на приложение для Android.

#news

# RE:INSTEAD 0.2
std.club
hugeping(ping,1) — All
2021-09-05 11:33:05


Сегодня, тихо и незаметно, выпущено обновление re:instead 0.2!

RE:INSTEAD это приложение проекта "ПАРСЕРНОЕ СОПРОТИВЛЕНИЕ"

https://parser.hugeping.ru

которое предлагает вашему вниманию сборник парсерных игр в минималистичном формате. Сборки подготовлены для: Windows, Linux и Android. Для других ОС (включая Plan9, MacOS X, BSD*) предлагается тривиальная самостоятельная сборка из исходных кодов.

Изменений масса:

- изменение размера шрифта клавишами ctrl-+/-/0;
- поддержка автоскриптов через параметр -i <autoscript>;
- значительное ускорение работы;
- исправления в играх;
- поддержка сохранения настроек;
- порт на Android;
- исправление ошибок и прочие улучшения.

Сборку для android пока можно скачать прямо в виде .apk файла. А потом, я надеюсь, приложение примут в F-Droid. Соответствующий merge request уже создан.

Проект на github: https://github.com/instead-hub/reinstead

Руководство для игроков: https://github.com/instead-hub/reinstead/releases/download/0.2/manual.pdf

Бинарные сборки: https://github.com/instead-hub/reinstead/releases

#news

# МЕТАПАРСЕР 2.2.1
std.club
hugeping(ping,1) — All
2021-09-04 17:52:33


Обновлён метапарсер.

- Исправлено формирование с/со в русской библиотеке;
- Исправлены сохранения в metaparser.js.

Обновлениы: metaparser, metaparser-js(до 2.2.2). Заменена сборка instead-cli(1.5).

#news

# 04.09.2021
std.hugeping.micro
hugeping(ping,1) — All
2021-09-04 09:43:30


За последние дни практически закончил re:instead. Версия для ANDROID работает и играется приемлемо. Очень много доработок, в том числе и в плане производительности. re:instead будет распространяться только в виде комплекта игр, гарантированно хорошо работающих в этом интерпретаторе. Никаких ланчеров и скачиваний из сети.

Также пробросил микроблог из gemini на https://hugeping.ru
Сомневаюсь, транслировать ли эти сообщения микроблога в twitter/mastadon/telegram или это будет только засорять... Пока они транслируются только в телеграм.

Накопил много тем для блога, но программировать пока интереснее. :)

# Надвигается беда
std.hugeping
hugeping(ping,1) — All
2021-09-04 08:54:33


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

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

## Рей Бредбери. Надвигается беда

В детстве и в институте я не очень любил Бредбери. Тогда я читал фантастику запоем, но другую -- понятную мне. А Бредбери вызывал скорее недоумение. О чём это всё? И только в зрелом возрасте я обнаружил, что он стал мне ближе и понятней. По восприятию, где-то рядом с Гофманом, которого я тоже начал открывать.

Книга отличная. Читал и не мог остановиться. Близко было всё. И главные герои -- подростки. И религиозные мотивы в фундаменте. И переплетение реального и идеального.

> - Папа.. а я хороший человек?
> - Думаю, да. Точно знаю - да, - был ответ.
> - Это... поможет, когда придется действительно туго?
> - Обязательно.
> - И спасет, когда придется спасаться? Ну, если вокруг, например, все плохие и на много миль - ни одного хорошего? Тогда как?
> - И тогда пригодится.
> - Хотя ведь пользы от этого не очень-то много, верно?
> - Знаешь, это ведь не для тела, это все-таки больше для души.

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

> Мы разжигаем в своих помыслах страсть, зависть, похоть, окисляем их в наших душах, и все это срывается с наших глаз, с наших губ, с наших рук, как с антенн, работающих, уж не знаю, на длинных или на коротких волнах. Но хозяева балаганных уродов знают, они давно научились принимать эти сигналы и не преминут урвать здесь свое. Карнавал не спешит, он знает, что на любом перекрестке найдет желающих подкормить его пинтой похотливой страсти или квартой лютой ненависти. Вот чем жив Карнавал: ядом грехов, творимых нами по отношению друг к другу, ферментами наших ужасных помыслов!

Аллюзия была настолько сильная, что ошибиться невозможно.

> ... Одного только не говорят они людям, катающимся под их музыку...
> - Чего? - не утерпел Джим.
> - А того, что если ты в одном обличье стал несчастным грешником, то и в любом другом им останешься.

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

> - Эй, что вы там прижимаете? - М-р Дарк прищурился. А, Библия! Очаровательно! Как это по-детски наивно и свежо.
> - Вы читали ее, мистер Дарк?
> - Представьте, читал. Скажу даже больше. Каждую главу этой книги, каждый стих вы можете прочесть на мне, сэр...

Но всё-таки, как мне кажется, назвать повесть христианской будет не вполне правдой. Ближе к концу события развиваются в таком ключе, что в какой-то момент я даже почувствовал недоумение. Так что же такое карнавал? И кто такой Дарк? Почему борьба с ним возможна именно тем способом, который обнаружил Чарьльз Хэллуэй?

> - Ну что? Удивлены? Могу даже почитать вам. - Дым от сигареты м-ра Дарка завихрялся над шелестящими страницами.
> - А вы, конечно, ожидали, что я рассыплюсь прямо перед вами? К вашему несчастью, это все - легенды. Жизнь, это очаровательное скопище самых разных понятий, продолжается, как видите. Она движет сама себя и сама себя оберегает, а смысл ей придает неистовость. А я - не последний в легионе необузданных.

Можно ли верить Дарку, отцу лжи? Но и Чарльз Хэллуэй, порой, сообщает нам со страниц книги нечто не всегда понятное.

К концу книги эти вопросы, на мой взгляд, не разрешаются и в полной мере не преодолеваются. Это, в свою очередь, оставляет колкое послевкусие вопроса. Так о чём же повесть? О жизни, детстве, взрослении, о человеческих страстях. Но действует ли в этом мире Бог? Доверившись книге, я чувствовал что болтаюсь между двумя состояниями: ощущением присутствия Бога и ужасом богооставленности. В повести, не смотря на всю её "сказочность", присутствует парадоксальность реального мира. В ней нет прямого рецепта, хотя сначала кажется, что есть. И это переплетение фантастики и реализма делает повесть пронзительно острой.

> "У Зла есть только одна сила, та, которой наделяем его мы. От меня ты ничего не получишь. Наоборот, я заберу у тебя все. И тогда тебе останется только погибнуть".

И вот мы уже почти добрались до конца. Счастливого конца?

> - Да, сынок. Теперь уж всю жизнь придется быть начеку. Все только начинается. Они неторопливо обогнули карусель.
> - А как же мы их узнаем? - допытывался Вилли. - На кого они будут похожи?
> - Может быть, они уже здесь, - тихо ответил отец.
> Оба друга быстро огляделись. Но поблизости была только карусель да они сами. Тогда Вилли поднес руки к лицу и внимательно осмотрел их, перевел взгляд на Джима и снова на отца.
> Чарльз Хэллуэй кивнул. Только один раз.

После того, как закончил читать, поискал в интернете и нашёл, что книга изначально была сценарием к фильму, который превратился в повесть. В 1983 году был снят фильм "Именно так зло и приходит", для которого Бредбери снова написал сценарий. Я попытался смотреть фильм и был разочарован. От магии мало что осталось. Я просмотрел ключевые моменты, диалоги и концовку, надеясь узнать что-то новое... Но быстро понял, что в фильме всё упрощено. Рецепт подан прямым текстом. Счастливые люди не нужны карнавалу. Любовь побеждает зло. Слабые места (страсти) персонажей нарисованы без тени загадки. Нет, возможно это всё есть и в повести, и это хорошо и правильно! Только в книге это настоящее, которое врывается со страниц прямо в наш реальный мир. А в фильме... похоже на пластмассу...

P.S. Кстати, такое же разочарование было у меня от просмотра фильма "1984", который на фоне книги показался блеклым и невыразительным.

# Re: 26-08-2021
std.hugeping.micro
hugeping(ping,1) — vvs
2021-09-02 21:38:22


vvs> Это из майкрософта человек :)

Довели, беднягу. :)))

Да, тенденция есть! Это интересный феномен. Люди перегружены.

# Re: 26-08-2021
std.hugeping.micro
hugeping(ping,1) — vvs
2021-08-31 18:16:09


О, спасибо! Посмотрим...
Может быть, тяга к простоте -- это возрастное? :)

# Последний день лета
std.hugeping.micro
hugeping(ping,1) — All
2021-08-31 18:15:23


Всё-таки выпустил в последний день лета INSTEAD 3.4.0. Этот релиз сильно задержался и несёт в себе долгожданную поддержку HiDPI.

Помню, как в 2009 (или в 2008?) писал первую игру "Одна старая история", которая начиналась в последний день лета... Конечно, я тогда думать не мог, что это хобби растянется на >10 лет. Думаю, так или иначе, оно повлияло на меня. В том числе в профессиональном плане.

https://instead.hugeping.ru/post/2021-08-31-instead-3-4-0/

# INSTEAD 3.4.0 вышел!
std.club
hugeping(ping,1) — All
2021-08-31 16:07:33


На исходе последнего дня лета вышел INSTEAD 3.4.0! Версия с поддержкой hi-dpi экранов и возможностью создавать игры с адаптивными темами. Список изменений:

- исправление в pxl:fill_triangle (сортировка вершин);
- исправлена сборка с новым SDL_image;
- корректная работа с масштабированием в Windows (dpi awarness);
- поддержка высоких dpi (если включена опция HQ);
- новый параметр -dpi;
- новая функция instead.screen_dpi();
- новый параметр theme scr.gfx.scale;
- новый параметр theme scr.dpi;
- новый параметр theme scr.scale_aware (1|2) - поддержка адаптивных тем;
- возможность запуска игры через командную строку по пути к main?.lua файлу;
- более качественное масштабирование картинки сцены;
- обновлён SDL для windows сборки;
- улучшение: используется GetModuleName для нахождения полного пути к .exe (Windows);
- новая функция pxl:tosprite (конвертация pxl в sprite с масштабированием);
- ускорение pxl:fill;
- экспериментальная поддержка сборки с gtk4.0 (пока отключено).

Бинарные сборки будут появляться по мере готовности.

#news

# RE:INSTEAD на Android
std.hugeping.micro
hugeping(ping,1) — All
2021-08-29 19:29:51


Всё-таки, что-то получилось! Только что закоммитил в contrib проекта reinstead https://github.com/instead-hub/reinstead исходники для сборки Android версии.

Конечно, это ещё не релиз, но, вроде бы, в целом -- работает. Заодно, перевёл reinstead на работу с SDL render Api (он стал работать заметно быстрее).

К сожалению, из-за REINSTEAD сдвигается релиз его старшего брата (INSTEAD).

# Играю с Android
std.hugeping.micro
hugeping(ping,1) — All
2021-08-28 12:50:37


Ради интереса решил попробовать собрать reinstead на Android. Я думал, что всё будет просто. Но нашлись нюансы...

В результате войны в течении 2-х дней с Java/ndk и отладкой SDL получился прототип. https://twitter.com/peter_ru/status/1431581688728010755

Но я пока не уверен, что буду доводить его до конца.

Пока работал со всем этим, меня не покидало ощущение перегруженности и текучести современных технологий. POSIX всё-таки более фундаментальная вещь. 50 лет Си уже существует, сколько ещё технологий он переживёт?

P.S. Список тем для блога растёт, но между программированием и блогом я всегда выбираю первое. Надеюсь, скоро будет перерыв и я напишу новые заметки. :)

# 26-08-2021
std.hugeping.micro
hugeping(ping,1) — All
2021-08-26 15:18:11


Продолжил работу над RE:INSTEAD. Всё-таки, очень нравится мне этот проект. Отдушина от сложных вещей. Что сделано:

- изменение размера шрифта на-лету (ctrl+/ctrl-);
- поддержка автоскриптов (опция -i);
- поддержка прокруткой тасканием (для возможного порта на android).

Рад, что проект https://parser.hugeping.ru известен незрячим. Это даёт смысл его существованию!

# Микроблог
std.hugeping.micro
hugeping(ping,1) — All
2021-08-26 15:12:36


Решил создать эху std.hugeping.micro как замену твиттеру/мастадону.
Возможно, потом настрою трансляцию отсюда.

# metaparser-js 2.2.1
std.club
hugeping(ping,1) — All
2021-08-25 16:29:13


Обновлёна js версия метапарсера до версии 2.2.1.

Изменения:
- исправлена работа старой js версии, которая активизируется если браузер не поддерживает wasm;
- исправлена доступность для незрячих (спасибо Даниилу Гусеву за помощь в отладке).

#news

# RE:INSTEAD 0.1
std.club
hugeping(ping,1) — All
2021-08-15 09:48:26


Сегодня вышла в свет первая версия нового проекта RE:INSTEAD!

Что это: https://github.com/instead-hub/reinstead/blob/master/MANIFEST.md
Скриншоты: https://github.com/instead-hub/reinstead/blob/master/README.md

Вы можете скачать готовую сборку, которая должна работать на Linux (64 бита) и Windows. Также, проект собирается в 9front (Plan9).

https://github.com/instead-hub/reinstead/

RE:INSTEAD распространяется с играми проекта "ПАРСЕРНОЕ СОПРОТИВЛЕНИЕ", которые лицензированы под лицензией CC SA 4.0.

http://parser.hugeping.ru/

#plan9
#news

# МЕТАПАРСЕР 2.2
std.club
hugeping(ping,1) — All
2021-08-15 09:41:50


Выпустил новую версию метапарсера. Исправление содержит исправления ошибок, поэтому рекомендуется для всех авторов.

* исправлено падение при вызове mp:myself();
* исправлено поведение Meta команд;
* исправлен std.busy();
* бекпорт исправлений из проекта re:instead.

С новым модулем выпущены: metaparser, metaparser-js, instead-cli

https://instead.hugeping.ru/page/metaparser/
https://parser.hugeping.ru

#news

# МЕТАПАРСЕР 2.1
std.club
hugeping(ping,1) — All
2021-07-31 14:55:18


Выпустил новую версию метапарсера.

* transcript больше не включается автоматически по команде autoscript;
* mp.detailed_attr;
* mp.msg.INCOMPLETE_NOUN/SECOND_NOUN/UNKNOWN_VERB переписаны;
* mp:content переписан;
* mp:footer();
* mp:verb_filter() (ru: лучшее детектирование глаголов);
* ru: исправлен глагол #Insert;
* исправления в автодополнении;
* исправления в английской библиотеке.

Рекомендую обновиться, если вы пишете свои игры с использованием МЕТАПАРСЕРА.

Выпущены: metaparser, metaparser-js, instead-cli

https://instead.hugeping.ru/page/metaparser/
https://parser.hugeping.ru

#news
P.S. Edited: 2021-07-31 18:43:00

# Консольный телеграм клиент (работающий)
linux.14
hugeping(ping,1) — All
2021-07-27 13:37:31


Форк telegram-cli, который работает: https://github.com/kenorb-contrib/tg
Конечно, есть прекрасная telega.el, но иногда хочется чего-то более изощрённого.

# shithub
plan.9
hugeping(ping,1) — hugeping
2021-07-27 07:51:48


https://shithub.us - git9 репозитории разного софта под 9front.

# Книги, которые на меня повлияли
std.hugeping
hugeping(ping,1) — All
2021-07-25 20:01:11


> Значит, нужные книги ты в детстве читал! (с) Высоцкий

* Книги, которые на меня повлияли. *

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

Сначала под пунктом 1 я хотел поместить Евангелие. Но потом подумал, что как то не очень правильно помещать в один список откровение Божие и другую литературу. Я помню место в Евангелие, которое стало "живым" чудом и мне сложно и неуютно рассматривать это в плоскости "философии", интеллекта и подобного. Поэтому, Евангелие подразумевается, но не под пунктом "номер 1", а как бы в другой плоскости, расположенной выше. Я напишу об этом в gemini, когда-нибудь позже.

Итак, что дальше? "Диалоги" В. Свенцицкого. Книжка, которую посоветовал мне мой друг. Вроде бы простая, но именно она подтолкнула меня к изменению моего отношения к христианству. "Братья Карамазовы". "Диалектика мифа". "Новый ум короля" Пенроуза... (книга, в которой я находил 100% совпадения со своими собственными мыслями и даже мысленными экспериментами).

А до этого была гремучая смесь из произведений Экзюпери, фантастики Филип К. Дика, эзотерики Р. Баха и книг различных философов (среди которых запомнилась "Я и ты" Мартина Бубера). И, возможно, всё это тоже не было лишним. Хотя, большую часть того что я читал в этот период я не стал бы включать в список.

Но, мысленно отбирая книги, я заметил, что что-то не так.

Дело в том, что большинство из этих книг читались уже в состоянии "предожидания". И во время чтения возникало "узнавание" или вербализация того, что я ожидал найти. Да, "Диалектика мифа", например, вывернула моё сознание. Но я, похоже, внутренне был к этому уже подготовлен, когда начинал читать. Я был в восторге от мыслей Бердяева. Но не потому ли, что они совпадали с моими? Ну и дальше можно продолжать в том же духе.

Потом я вспомнил, как давным-давно удивлялся наличию "Одиссеи капитана Блада" в одном из подобных списков (к сожалению, не вспомню сейчас у кого именно я её увидел). И тут я понял, что книги, которые действительно влияли на моё мышление следует искать в детстве!

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

Знакомство с первой книгой состоялось так.

Мне лет 13. Мы с отцом гуляем по нашему району и обнаруживаем библиотеку. Заходим внутрь. Отец предлагает чтобы я взял что-нибудь почитать. Что меня интересует? Конечно, фантастика! Желательно, развлекательная. На полке стоит убитая в хлам книжка небольшого формата в тонком переплёте. Так как я поскорее хочу покинуть это место и выйти на свежий воздух, быстро пролистав томик, говорю: "Беру эту!".

Я потом долго искал книжку по описанию в интернете и нашёл! Это: "Опрокинутый мир" К. Приста.

Дальше, будут спойлеры. Чтобы не пересказывать сюжет, я просто помещу ссылку на статью в wiki: https://ru.wikipedia.org/wiki/Опрокинутый_мир

Я помню, что "Опрокинутый мир" подействовал на меня как удар. Привычная почва ушла из под ног и моё восприятие вывернулось наизнанку. Прямо как у героя романа.

Интересно, что воспринял произведение я, как мне сейчас кажется, не вполне традиционно. В неокрепшей психике подростка родилось странное чувство, которое я сейчас назвал бы антропоцентризмом или пониманием мифологичности реальности. Мифологичности не как чего-то "ненастоящего". А напротив -- сверх настоящего. Я вдруг понял, что реальность города, который движется к оптимуму по этим рельсам не менее реальна, чем реальность "нормального" мира. Реальность мифа оказывается более настоящей, трансцендентной, чем материализм. Материализм сам оказывается всего лишь ещё одним мифом. Я действительно думаю, что произведение я понял "не так". Хотя, вероятно, такие утверждения бессмысленно относить к художественным произведениям. Я плохо помню, кажется, в романе герой принимает "настоящую" реальность. Его миф разрушается другим, чужим для него мифом. В моём подростковом восприятии это была трагедия. Поражение, а не победа. Удивительно!

Вторую повесть я тоже долго искал в интернете по описанию. И кажется, нашёл. Но не уверен, потому что мои воспоминания и впечатления от недавнего прочтения немного разнятся. Но, скорее всего, произведение идентифицировано правильно.

В школе по наводке друга я неожиданно увлёкся Стругацкими. Как сейчас понимаю, они стали для меня детоводителем из развлекательной фантастики к более взрослой литературе.

Я прочитал рассказ (как оказалось, повесть), который для меня повторил мотивы, которые я увидел в "Опрокинутом мире". Речь идёт о "Парне из преисподней": https://ru.wikipedia.org/wiki/Парень_из_преисподней

Перечитав повесть недавно, я сравнил впечатления со школьными воспоминаниями и они совпали не везде. В памяти я снова получил закрепление понимания относительности реальности. Или, скорее, реальности как жизни. Субъективность всегда воспринималась как нечто ненастоящее, ложное. Но я начал понимать, что это заблуждение! Что субъективное восприятие и есть настоящая реальность, как и сама жизнь. Нередуцируемая на что-то более примитивное.

Реальность парня из преисподней в моих воспоминаниях не была разрушена. Он жил войной, и война осталась с ним навсегда. Он не смог остаться в "новом мире", и вернулся в старый. Разрушенный, больной, но настоящий дом. Его миф устоял.

> – Я хочу знать, кто победил.
> Корней очень долго молчал, по лицу его ничего нельзя было разобрать. Гаг сел – не держали ноги. Рядом из траншеи торчала голова Драмбы. Гаг бессмысленно уставился на нее.
> – Я ведь уже объяснял тебе, – сказал наконец Корней. – Никто не победил. Вернее, все победили.
> Гаг процедил сквозь зубы:
> – Объясняли... Мало ли что вы мне объясняли. Я этого не понимаю. У кого осталось устье Тары? Это, может быть, вам все равно, у кого оно осталось, а нам не все равно!
> Корней медленно покачал головой.
> – Вам тоже все равно, – устало сказал он. – Армий там больше нет – только гражданское население...
> – Ага! – сказал Гаг. – Значит, крысоедов оттуда выбили?
> – Да нет же... – Корней страдальчески сморщился. – Армий вообще больше не существует, понимаешь? Из устья Тары никто никого не выбивал. Просто и алайцы, и имперцы побросали оружие и разошлись по домам.
> – Это невозможно, – сказал Гаг спокойно. – Я не понимаю, зачем вы мне все это рассказываете, Корней. Я вам не верю. Я вообще не понимаю, чего вам от меня надо. Зачем вы меня здесь держите? Если я вам не нужен – отпустите. А если нужен – говорите прямо...

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

В общем, список из книг я так и не составил. Но в очередной раз понял, что записывать прочитанное стоит. Чтобы не искать это потом долго и мучительно в интернете. :)

# Пётр Мамонов
std.hugeping
hugeping(ping,1) — hugeping
2021-07-15 19:33:19


Упокой, Господи, душу раба Твоего Петра.


Посмотрел интервью, очень тёплое и искреннее ощущение.

https://m.youtube.com/watch?v=MQNahSdqFCU

# Re: Анонс станции
idec.talks
hugeping(ping,1) — ake
2021-07-07 18:31:05


ake> Тогда ведь получается, что по существу IDEC, как протокол, и как сеть, практически ортогонален этим применениям.

Ну, в каком-то смысле, формата сообщений достаточно для стандартизации да. Но то, что idec прост как валенок, позволило не думая просто реализовать свой вариант этого валенка. Например, база сообщений у меня это просто текстовый файл. Ну а так, хоть rsync можно базы синкать. Или на дискетках носить. :)

ake> Я даже не столько о стандарте, хотя там тоже можно много чего придумать и сделать, а о сообществе. Всё-таки в сети с десятком пользователей можно хоть TCP over avian carriers брать, было бы что обсуждать.

В разное время здесь была разная активность. Сейчас всё выглядит полумёртвым, если честно. Но я в основном сконцентрирован на своём проекте/блоге, так что меня это не сильно беспокоит. Ну как и присутствие в gemini -- мне нравится и этого достаточно.

# Re: Анонс станции
idec.talks
hugeping(ping,1) — ake
2021-07-06 21:16:22


>> Тут тихо. Но, надеюсь, IDEC ещё шевелится
ake> Не было бы это шевеление конвульсиями, будет жалко.

Ну, я лично получил от idec то, что хотел и даже без оглядки на наличие других станций. Моя нода ii-go стала единым источником данных для gemini капсулы и моего блога в вебе. А также для телеграмм каналов. И все это просто текст.

ake> А есть ли какие-то мысли о его перспективах и, страшно сказать, развитии?

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

ake> Но чем дальше думал, тем менее обоснованной казалась идея (несмотря на концептуальную близость сетей) - писать сообщения из gemini не выйдёт;

Да, но мне тоже кажется, что gemini и idec имеют что то родственное. Например, gemini разметка в сообщениях idec смотрелась бы отлично, на мой взгляд.

# Re: Анонс станции
idec.talks
hugeping(ping,1) — ake
2021-07-06 10:34:42


ake> Следуя девизу "каждому пользователю сети по станции" организовал собственную.

Привет! Тут тихо. Но, надеюсь, IDEC ещё шевелится. :)

ake> Пока нет веб-интерфейса, можно использовать gemini-гейт - gemini://ake.crabdance.com:1966/

lagrange пишет, что срок действия сертификата истёк.

# Re: Работа
std.hugeping
hugeping(ping,1) — vvs
2021-06-29 15:28:54


vvs> Больше всех получают мошенники, воры и спекулянты, а вовсе не программисты. Не надо себе льстить ;)

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

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

# Работа
std.hugeping
hugeping(ping,1) — All
2021-06-29 14:31:03


Прочитал на днях книгу про работу в метро.

Называется "Не прислоняться". Один из авторов -- Макс Рублёв (я так понял -- это псевдоним), бывший машинист и автор блога в ЖЖ известный под ником Метроэльф https://metroelf.livejournal.com/

Книга очень захватила! Прочитал буквально за вечер. Где-то слышал такую мысль, что читать об особенностях чей-то работы всегда интересно. И это действительно так. Например, есть такая книга "Работа" Стадса Теркела. Там главы оформлены как интервью с обычными людьми, представителями разных профессий. Известная и популярная книга. Я читал её фрагментами. Больше всего запомнилась глава "Телефонистка".

> Один человек попросил: «Что-то мне тоскливо, поговорите со мной, хорошо?» А я ответила: «Простите, пока не могу». Но ведь, правда, же не могу. (Смеется.) Люди общаются благодаря мне, но не со мной.

Вроде всё просто, но остаётся какое-то ламповое послевкусие... Ощущение пространства, глубины за кадром.

Кстати, на "Телефонистку" я набрёл после просмотра фильма "Бескрайняя ночь" 2019 года, где нет ничего, кроме атмосферы летней ночи, тайны и работы на аналоговом телефонном коммутаторе. Но вот, что-то всколыхнулось от этого фильма. Что-то детское, настоящее, аналоговое...

Так вот, возвращаясь к "Не прислоняться". В книге есть романтика. Есть контакт с людьми, с пассажирами, работниками метро, с читателями книги... Есть искра. И книга становится интересной не только (и не столько) потому, что раскрывает некоторые нюансы профессии, но, главным образом, благодаря наличию этой искры. Из-за понимания, что все мы люди, все мы в одной лодке.

> Последний круг. Легкий сквозняк гуляет по кабине. На открытом участке – ливень. Тугие струи смывают со стекла пыль и грязь. Открываю окно. Жадно впитываю наполненный влагой воздух. Хочешь быть счастливым? Будь им! Станция…

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

А ещё, читая книгу, я в очередной раз задумался о том, как уродлив капитализм в контексте социальной справедливости. Я посмотрел сколько зарабатывают машинисты метро. Почитал в интернете отзывы от бывших работников, которые описывают привычную картину, когда всё держится на работягах, инженерах и низшем руководстве. Вопреки самодурству и шапкозакидательству высоких начальников. Как далеко от реальных проблем руководство высшего и среднего звена... Это всё очень знаком и типично. Наверное, каждый из нас сталкивался с таким.

Но, "рыночек порешал"...

Мне повезло, с детства я выбрал профессию, которая оказалась востребованной и хорошо оплачиваемой на рынке. Но была ли в этом моя заслуга? Если честно, я не уверен. Я всегда занимался тем, чем мне было интересно заниматься. К чему, вероятно, у меня были природные способности и задатки.

Я часто встречаюсь с восприятием интеллектуального труда, как с чем-то несоизмеримо более почётным, чем физический труд. И мне это кажется странным. Профессионалом/мастером можно быть в любой области. Какая роль в твоём профессиональном росте принадлежит твоей свободе воли, преодолению? А какая -- просто счастливым набором врождённых талантов? Я не берусь ответить для себя на этот вопрос. Как по мне, программисты всю жизнь играют в компьютеры и получают за это неплохие деньги. Разве это справедливо? // Только работодателю не надо такое говорить. :)

А ещё я часто вспоминаю работу в контексте книги Бытия.

> Быт 3:19 в поте лица твоего будешь есть хлеб, доколе не возвратишься в землю, из которой ты взят, ибо прах ты и в прах возвратишься.

Тут труд -- суровая необходимость. Особенность повреждённого мира. И большинство людей живут именно в режиме выживания без какого-либо выбора... Что тут сказать... Всё-таки странная это штука -- работа...

А книжка -- хорошая! Рекомендую.

# Передача телеграм-чата INSTEAD official
std.club
hugeping(ping,1) — All
2021-06-29 08:41:18


Модерируемый телеграм чат https://t.me/insteadchat передан новому владельцу @canwolf.
Чат переименован в "INSTEAD разработка" и теперь его политика и будущее будут определяться новым владельцем и сообществом INSTEAD.

Я чувствую, что должен дать какие-то пояснения текущим событиям. Но на самом деле, никакой интриги тут нет.

Мне нравится проект INSTEAD, я трачу много своего свободного времени на его кодовую базу и на написание своих игр. (Сейчас, например, готовится новая версия INSTEAD с долгожданной поддержкой hidpi и масштабируемых тем.) Я занимаюсь проектом с 2009 года. При этом, мои социальные роли в проекте вызывали и вызывают эффект выгорания. У меня нет никаких амбиций по продвижению INSTEAD, поэтому я постепенно отчуждаю все ресурсы, которые не относятся непосредственно к разработке движка: группа VK, репозиторий игр, форум... Теперь настало время чатов.

Моей единственной территорией социального взаимодействия остаётся https://hugeping.ru
Присутствие меня в чатах INSTEAD вероятно, но не гарантируется.

Cпасибо @spline и @canwolf за свободу!

P.S. Фактическая передача чатов новым владельцам займёт около 6 дней.

#news

# Неофициальный телеграм чат меняет владельца!
std.club
hugeping(ping,1) — All
2021-06-28 21:45:37


Чат https://t.me/insteadtalk, а также все связанные с ним чаты (irc, discord и jabber) целиком переходят под управление нового владельца -- spline. Теперь, неофициальный INSTEAD чат больше не контролируется мной (автором движка INSTEAD). Начиная с этого момента, будущее и политика чата зависят от spline и сообщества любителей INSTEAD.

Судьба официального (модерируемого) телеграм-чата https://t.me/insteadchat пока не решена.

#news

# Re: Как сделать переход из одной комнаты в две другие?
std.prog
hugeping(ping,1) — hopkins1988
2021-06-23 18:10:24


hopkins1988> Как сделать?

room {
    nam = 'room2';
    title = 'Зал';
    dsc = 'Вы в огромном зале.';
    way = { path { 'В главную комнату', 'main'}, 
            path { 'В столовую', 'kitchen' } };
};

Но если не нужно менять название комнаты, то достаточно просто:

    way = { 'main', 'kitchen' }

# Re: TGE 5.2.10 и Instead
std.tech
hugeping(ping,1) — Darkon
2021-06-03 22:39:25


Тут есть инициатива по развитию модуля TGE. Может быть стоит скооперироваться, написать там issue для начала?

https://github.com/KOLANICH/instead-game-rangers

# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
hugeping(ping,1) — vvs
2021-05-20 14:11:29


vvs> Все эти споры о парсере подвигнули меня покопаться в исторических парсерных играх.

Вот что интересно, я почти не играл в "оригинальные" парсеры старой школы. И вообще, любил квесты попроще. Например, предпочитал графические адвенчуры от Lucas Arts (там подписывались объекты при наведнии, в отличие от игр Sierra).

Так что мои игры реконструкцией сложно назвать. Более того, я терпеть не мог эффект "угадай глагол". Почему сейчас всё поменялось, сам не понимаю. Ну, угадай глагол мне и сейчас не нравится, конечно. :) Просто я теперь знаю какие глаголы работают :)

vvs> Кстати, удивляет сегодня, что такое было возможно на компьютерах с 32 _килобайтами_ памяти и 8-битным процессором (в графике!). И да, разумеется, там же рядом можно полюбоваться исходным кодом Zork и Dungeon на ZIL или FORTRAN.

Вообще, старые технологии часто недооценивают. Например, в troff можно верстать не хуже, чем в Latex, но только при этом ресурсов нужно на порядок меньше.

# Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — hugeping
2021-05-15 11:31:02


Сегодня обновлены:

- МЕТАПАРСЕР3 до версии 2.0;
- metaparser-js до версии 2.0;
- instead-cli до версии 1.2;
- Обновлён metaparser-js на сайте https://parser.hugeping.ru

Ссылки на проекты:

МЕТАПАРСЕР https://instead.hugeping.ru/page/metaparser
instead-cli https://github.com/instead-hub/instead-cli
P.S. Edited: 2021-05-15 11:32:07

# Бердяев и Твиттер
std.hugeping
hugeping(ping,1) — All
2021-05-14 18:21:43


Когда я заводил аккаунт в твиттере ( https://twitter.com/peter_ru ), мне казалось это хорошей идеей. Я думал записывать там свои наблюдения, делиться ими. Потом находить их, перечитывать снова. Но со временем я стал замечать, что не делаю этого. Даже тогда, когда я точно помнил о нужной мне записи, мне не удавалось найти её.

Для написания заметки о свей политической ориентации ( только в gemini://hugeping.tk/LIKwmTZZxh8nPJQsKJrm.gmi ) мне понадобились цитаты, которые (я точно помнил!) я записывал в твиттер. Найти нужные записи через обычный поиск я не смог. Не смог я их найти и через google. Только с помощью расширенного поиска удалось найти этот период времени! Но забрать цитаты всё равно было очень нелегко!

Дело в пресловутой js обвязке, которая не позволяет просто скопировать весь нужный период. Руками же прокручивать и копировать очередную порцию записей было крайне утомительно.

Я тогда в очередной раз (как и с инстаграмм) понял, что есть фундаментальное зло в том, чтобы раздавать частички своей личной информации корпорациям, которые используют её как быстро обесценивающийся товар. Твиттеру мои записи нужны лишь для создания потока, а для меня они -- часть моей жизни. Иногда мне хочется вернуться к ним, протереть пыль. Посмотреть старые фотографии. Прочитать мысли, которые меня беспокоили. Почему я так легко расстаюсь со своим личными воспоминаниями?

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

Мне нравится, что теперь я могу просто опубликовать цитаты. В простом тексте. Без подвоха. :) Нет никакого смысла пользоваться твиттером, инстаграмм или другими соц. сетями, если только ты не преследуешь коммерческие цели или тешишь свои амбиции, пытаясь завладеть чужим вниманием. Но зачем разменивать свою жизнь на эту пустоту?

# Цитаты Бердяева

> Тоска может пробуждать богосознание, но она есть также переживание богооставленности. Она между трансцендентным и бездной небытия.

> Я мучительно чувствовал чуждость всякой среды, всякой группировки, всякого направления, всякой партии.

> Прежде всего, я убежден в том, что воображение еcть один из путей прорыва из этого мира в мир иной.

> Стремление к бесконечному и вечному не должно быть пресечено иллюзией конечного совершенства.

> Ничего нельзя любить, кроме вечности, и нельзя любить никакой любовью, кроме вечной любви. Если нет вечности, то ничего нет.

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

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

> Идол коллектива столь же отвратителен, как идол государства, нации, расы, класса, с которым он связан.

> Чел. сознание перерождается, когда им овладевает идолопоклонство. Комм-зм как религия … есть образование идола коллектива.

> Совесть есть глубина личности, где человек соприкасается с Богом. Коллективная совесть есть метафорическое выражение.

> Я антиколлективист, потому что не допускаю экстериоризации личной совести, перенесения ее на коллектив.

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

> Коммунизм … в русской революции, отрицал свободу, … личность, … дух. В этом, а не в … социальной системе, было демоническое зло …

> Политика в значительной степени есть фикция, владеющая людьми, паразитарный нарост, высасывающий кровь из людей.

> …у меня отвращение к «политике», кот. есть самая зловещ. форма объективации человеческого существования… Она всегда основана на лжи.

> Я могу принять Бога только через Сына. Нельзя принять Бога, если Бог сам не принимает на себя страданий мира и людей…

> Идея свободы для меня первичнее идеи совершенства, потому что нельзя принять принудительного, насильственного совершенства.

> Я не согласен принять никакой истины иначе, как от свободы и через свободу. Слово свобода … здесь в более глубоком, метафиз. смысле.

> У меня есть основное убеждение, что Бог присутствует лишь в свободе и действует лишь через свободу.

> Во мне есть сильный метафизически-анархический элемент. Это есть бунт против власти конечного.

> Я чувств. погруженность в бессознательное лоно, в нижн. бездну, но еще более чувствовал притяжение верхней бездны трансцендентного

> Я твердо убежден, что в человеческой жизни есть трансцендентное, есть притяжение трансцендентного и действие трансцендентного.

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

> Я не могу поставить себя вне судьбы своего народа, оставаясь на высоте каких-ниб. отвлеченных либерально-демократических принципов.

> У меня всегда была советская ориентация, несмотря на то, что я всегда критиковал и продолжаю критиковать коммунистическую идеологию

> В русск среде в Париже были элементы германофильские, кот. ждали от Гитлера освобождения России… Это вызывало … глубокое отвращение

> Существует Сущая Правда, она не походит на мир и на все, что в мире, но она должна открываться и вочеловечиваться.

> Бог есть сила освобождающая, просветляющая и преображающая

> Самая напряженная мысль аффективна, проникнута трансцендентным чувством и не подчиняется принципу тождества.

> Мысль, не взятая в целостность духа, имеет тенденцию объективировать и экстериоризировать, и это и порождает противоречие…

> Конец мира … не в будущем, кот. есть часть нашего разорванного времени. Конец мира есть конец времени. Времени больше не будет.

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

> Если нет Бога т.е. … нет высшей сферы свободы, вечной и подлинной жизни, … то нельзя дорожить миром и тленной жизнью в нем.

> Нет ничего более жалкого, чем утешение, связанное с прогрессом человечества и блаженством грядущих поколений.

> Познание жизни, самое глубокое и … истинное познание, имеет невыразимо эмоциональную природу…

> Реальность мифа о Боге, о Духе, об Истине нельзя доказать и не нужно. Это дело последнего избрания и предполагает свободу.

> Совершенный … строй в царстве Духа… будет царством свободы. Совершенный… строй в царстве Кесаря будет всегда истреблением свободы

> Революция всегда лишь результат взрыва иррациональных сил. И вместе с тем революция всегда стоит под знаком рациональных идей

> Свобода предполагает, что жизнь не окончально… рационализирована, что в ней есть зло, кот. должно быть побеждено своб. усилием духа

> И самый большой, самый предельный трагизм есть трагизм в отношении человека к Богу.

> Весь трагизм жизни происходит от столкновения конечного и бесконечного, временного и вечного…

> Он (марксизм) есть духовная утопия… именно потому, что он претендует победить трагизм человеческой жизни

> … марксизм духовная утопия, утопия совершенной рационализации всей человеческой жизни.

> Христианство есть религия распятой правды. Распятая правда не принуждает, она обращена к свободе.

> Духовное начало в человеке есть истинная свобода, а отрицание духа, додуманное до конца, - неизбежно есть отрицание свободы.

> … При этом творимое свободным духом есть и наиболее реальное.

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


P.S. Edited: 2021-05-14 19:53:20

# Новости с INSTEAD фронта
std.club
hugeping(ping,1) — All
2021-05-14 17:41:29


Последнее время я внёс множество изменений в репозитории, которые относятся к проекту INSTEAD. Изменений накопилось масса. И я подумал, что неплохо держать гипотетических энтузиастов в курсе того, что именно происходит. Ведь нет ничего интересней, чем наблюдать за чьей-то работой, правда? :)

Изменения к 14 мая 2021.

# Метапарсер

Метапарсер изменился очень заметно. Толчком послужило мероприятие по написанию коллективного парсера "17 комнат". Сложно уже перечислить всё, что с происходило с кодом МЕТАПАРСЕРа. Назову только самые заметные вещи:

* Значительно улучшены подсказки. Смешных и абсурдных ситуаций должно стать меньше!
* Решение проблемы одушевлённости слов, которые имеют несколько смыслов;
* Улучшено качество распознавания при использовании сокращений;
* Исправлено множество внутренних недоработок (сообщения, ввод, и так далее);
* Улучшена документация;
* Служебные глаголы: счёт, парсер глаголы, парсер версия;
* Безопасный формат записи if "объект" ^ w (по сравнению с if w ^ "объект", w может быть nil);
* Новая тема по умолчанию;
* Экспериментальный модуль приказов.

Сейчас готовлю очередную версию, которая будет называться 2.0. После чего, перенесу на новый движок все свои парсерные игры. Парсер объективно стал удобней и для игрока и для автора.

# instead-cli

Долгое время я пользовался для разработки своих игр tiny instead. Эти минималистичный интерпретатор в 100 строк, который можно собрать в дереве исходного кода INSTEAD (src/tiny) и запускать его из терминала.

Для работы в Plan9 я сделал другой вариант tiny, который назвал 9instead. Очень удобная штука! Игра Луна-9 почти полностью написана с его помощью. Можно запустить редактор (acme или emacs), набирать текст и тут же прогонять заготовленный автоскрипт а другом фрейме редактора. Ничего лишнего!

Долгое время меня просили собрать такой интерпретатор, но в виде "продукта". Для Windows в том числе. И в этот раз у меня, наконец, нашлось время это сделать! Теперь на instead-hub появился проект https://github.com/instead-hub/instead-cli Он постоянно развивается. Сейчас готовится новая версия. Все наработки из Plan9 интерпретатора перешли в этот новый проект и я удалил 9instead. Присутствуют статические сборки для Windows и Linux. Особенно instead-cli удобно использовать при разработке парсерных игр, в том числе для перегенерации словаря и прогона тестов. Да и играть в нём тоже неплохо. К тому же, этот интерпретатор можно использовать как референсную реализацию при создании своих версий INSTEAD.

Ну и, конечно, instead-cli собирается в 9front. Так что теперь это официальная версия INSTEAD для Plan9 вместо 9instead.

# Модуль protect

Иногда хочется сделать так, чтобы исходники вашей игры не были доступны для изучения. Для этого есть "штатный" метод в виде doencfile в INSTEAD, но он довольно неудобен в использовании (требуется модификация кода) и легко вскрывается. Поэтому в stead3-modules появился protect! Как он работает?

Для его запуска вам нужен lua или instead с опцией -lua для запуска скрипта. Ну и instead-cli теперь умеет запускать скрипты Lua.

```
instead-cli -xprotect.lua main3.lua main3.lua
```

Осторожно! Файл main3.lua будет закодирован! Вы можете повторить эту процедуру для всех lua файлов вашего проекта.

Конечно, "защиту" можно взломать. Но сделать это сложнее, чем стандартный encoder в INSTEAD. Если вам удалось сделать расшифровщик, расскажите, насколько это было легко. Это правда любопытно. Сам я не сторонник закрытия исходников, но иногда художественный замысел требует этого. Например, если речь идёт о хардкорной головоломке.

# Перевод игры "Архив"

Я перевёл игру Архив на английский. Но нужна вычитка. Если у вас есть скиллы и возможность помочь, прошу на https://github.com/gl00my/instead-game-archive Игра полностью проходима на русском и на английском.

Вообще, с переводом получилось обидно. Единственная причина, по кторой я взялся за работу, это предложение одного активиста в чате INSTEAD. Я перевёл, а активист на данный моент работу остановил. Что теперь делать с этим "повисшим" переводом я не знаю. Но энтузиазм у меня пропал и захлебнулся. Так что всё отдаю на откуп энтузиастов. Если вы поможете - английской версии быть. Нет -- значит нет. Выпущу как есть.

# INSTEAD, вперёд!

В общем, я доволен прогрессом. INSTEAD превращается в инструмент мечты. Много интересных задач. И радость творчества присутствует! Готовлю обновление: метапарсер + metaparser-js + instead-cli + перевыпуск всех своих парсерных игр. Потом в очередной раз подумаю, что делать дальше. Надеюсь, работа над INSTEAD доставляет радость не только мне. :) А пластмассовый мир пусть идёт лесом.

# Re: TGE 5.2.10 и Instead
std.tech
hugeping(ping,1) — Darkon
2021-05-08 18:54:15


Darkon> Приветствую. Использую связку TGE 4.3 и INSTEAD для создания квестов (не только по вселенной КР).

Привет! А есть ли описание нового формата? Или, хотя бы, отличия от старого?

# Бердяев и моя политическая самоидентификация
std.hugeping
hugeping(ping,1) — hugeping
2021-04-25 15:44:57


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

# Re: Plan 9: экстремальный KISS #1
std.hugeping
hugeping(ping,1) — vvs
2021-04-25 15:36:07


Да, это отличная новость. :)

# Re: Икона // Джорджия Бриггс
std.hugeping
hugeping(ping,1) — boscholeg
2021-04-24 13:10:53


В общем, я почитал и не знаю что ответить. Растекусь мыслью :)

С одной стороны да, у меня тоже был "бунд". И вообще, у каждого есть какой-то свой путь.
С другой, родитель хочет оградить своё чадо от собственных ошибок. Да и стыд за собственное несоответствие роли родителя мучает, да. :)
С третьей, абстрактно говорить на тему религиозности не получится. Вопросы в духе "о пользе" становятся странными. Так что восприятие проблемы разное.

Я думаю, тут нет "комфортного состояния". Так что, продолжаем мучаться и жить. ;) И решать главный вопрос постоянно, каждый момент этой самой жизни. Не получится найти "рецепт".

Естественного религиозного воспитания в моей семье не получилось, потому что я сам имею "странности". С другой стороны, воспитание в традиционно-религиозной семье (и даже в религиозном государстве!), как мы знаем, тоже ничего не гарантирует. А на некоторые типы психики, вообще действует обратным образом.

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

Так что я не знаю, что и сказать. Надо быть любящим отцом -- эта фраза уже выглядит странно, да? Как-то неестественно. И как она может работать? Непонятно.

Передать свой жизненный опыт? А как его можно передать? Непонятно...

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

# Re: Оголтелая информатизация
std.hugeping
hugeping(ping,1) — btimofeev
2021-04-20 07:28:28


btimofeev> Кроме пароля на телефон нужно ставить пин-код на сим-карту. Иначе, если потеряешь/украдут телефон, то пароль на телефоне не поможет, симка просто переставляется в другой телефон и деньги выводятся.

Хех, действительно. :) Как тут не стать параноиком?

btimofeev> Кстати в приложении Сбера можно взять кредит не ходя в банк. Так что злоумышленник может не только увести деньги, но ещё и оставить человека должником.

Ох, кредиты, это вообще отдельная тема. :(

# Re: Оголтелая информатизация
std.hugeping
hugeping(ping,1) — hugeping
2021-04-19 09:08:25


hugeping> От взлома вас защищает только пароль на Android и надежда на то, что номер карточки злоумышленнику не известен. Что предполагается? "Ну, в случае чего, вы можете позвонить и заблокировать карточку."(c)

Всё-таки, похоже, не всё так совсем плохо. Есть мнение, что в Сбере банк следит за ID устройства при регистрации, географией запросов и так далее. То-есть, есть некая эвристика, которая оценивает риски взлома по доступной информации. Но это вопрос доверия к службе безопасности банка. Было бы гораздо понятнее, если бы доступ предоставлялся по паролю.

# Оголтелая информатизация
std.hugeping
hugeping(ping,1) — All
2021-04-18 12:08:34


Я не пользуюсь мобильными банками. До сих пор я считал, что это повышает безопасность в случае кражи и потери смартфона. Как же я был наивен!

На днях пришлось взаимодействовать с ВТБ и совершенно случайно я узнал, что для того, чтобы получить доступ к мобильному банку достаточно знать номер карты и... и это всё! То есть, если злоумышленник получает доступ к вашей "симке" и при этом знает номер карточки -- он спокойно ставит приложение и авторизируется! Пароли из банкомата? Зачем, это же так сложно! Прибыли упадут!

Некоторое время не мог прийти в себя. Потом узнал, что точно такая же ситуация и в Сбере.

При этом, я не могу создать счёт, операции с которым были бы не доступны онлайн. Понимаете? Абсолютно все ваши сбережения вы таскаете с собой в кармане! От взлома вас защищает только пароль на Android и надежда на то, что номер карточки злоумышленнику не известен. Что предполагается? "Ну, в случае чего, вы можете позвонить и заблокировать карточку."(c)

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

Интересно, что не смотря на то, что сам я работаю в IT, я не очень доверяю IT-системам, о которых я мало что знаю. Например, я всё ещё сталкиваюсь с проблемами при работе с Госуслугами. Три ситуации за последний месяц со мной и членами моей семьи! Одну из проблем пока так и не удалось решить. И похоже, что это массовое явление. При этом, отсутствие возможности получения услуг без использования IT-систем делает тебя заложником ситуации. Не проходит проверка паспорта? Обращайся в ГУВД! Сайт с услугой проверки паспортов не работает? (И, кстати, не поддерживает https.) Ну, что делать. Никто не знает. :) Хорошо, я хотя бы способен понять, что происходит. А что говорить о людях, для которых IT -- тёмный лес? Так и ходят годами между разными ведомствами.

В общем, везде одно и то же. Тотальная и оголтелая "информатизация" приносит не только пользу, но и вред. Информация -- слишком текучая субстанция. Её тяжело контролировать. Невозможно предотвратить её распространение. Любые базы -- утекают. В любых системах случаются сбои. И если не предусмотрены иные "запасные" механизмы работы, неизбежно возникают "неразрешимые" проблемы.

Я давно не доверяю собственному смартфону. Да и почему я должен ему доверять, если я вижу, что даже фраза произнесённая вслух влияет на выдачу контекстной рекламы? И что история моего браузера уходит куда-то (конечно же, ради моего удобства!) на сервера google? И чтобы это всё отключить, я должен проявить немалое упорство. Почему, зная это, я должен доверять надёжности защиты Android и верить, что мои банковские счета надёжно защищены "кодом доступа"?

Почему я должен решать проблемы неконсистентности баз данных и программных сбоев ведомственных услуг?

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

В ситуации с банками, думаю, победила жадность над здравым смыслом.
В ситуации с Госуслугами скорее всего "сработало" отсутствие нормальных кадров и масштабность задачи.

Причины разные, но во всех случаях прослеживается отсутствие "архитектора". Интересно, я угадал или нет? :)

P.S. Edited: 2021-04-18 12:12:27

# Re: Икона // Джорджия Бриггс
std.hugeping
hugeping(ping,1) — vvs
2021-04-18 09:00:28


vvs>> О! "Контакт" Сагана.

Помню, фильм мне понравился. Правда, не безусловно.

В плане замысла режиссёра vs писателя, конечно, сразу вспоминается "Солярис". :)

"Сталкер" тоже смотрится совсем не так, как читается. Но вроде бы там Стругацкие сценарий писали?

# Re: Икона // Джорджия Бриггс
std.hugeping
hugeping(ping,1) — vvs
2021-04-16 18:38:02


vvs> Но раз шутка не дошла, значит она оказалась неудачной.

Ага, теперь понял. На самом деле я прямо атеистом не был, всё-таки. В детстве скорее всего "подхватил" общую тенденцию. А в институте рассуждал о безликом абсолюте и читал всякую философию.

# Re: Лунная радуга
std.hugeping
hugeping(ping,1) — vvs
2021-04-16 14:42:20


vvs> Я тут недавно подумал, что с точки зрения информатики противопоставление идеализма и материализма есть не что иное, как спор о том, какой из нескольких уровней харда и софта - первичнее.

Мне кажется, всё-таки, что материализм отрицает одну из реальностей полностью. То-есть, для идеалиста аналогия с хардом и софтом естественна (до какой-то степени, я не верю что сознание - алгоритм, но аналогия понятна всё-равно), а вот для материализма - нет никакого софта. Ну если грубо аналогию проводить. Никакого дуализма нет.

# Re: Икона // Джорджия Бриггс
std.hugeping
hugeping(ping,1) — vvs
2021-04-16 14:38:52


vit01>> Скажу как уже сформировавшийся атеист
vvs> Пётр, ты был плохо сформировавшийся атеист столько лет :) А уж сколько раз за всю жизнь меняются интересы...

Это ты обознался, vti01 -- это не Пётр. =)

# Re: Икона // Джорджия Бриггс
std.hugeping
hugeping(ping,1) — boscholeg
2021-04-14 21:14:30


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

Ну ты нашёл кого спросить! Из меня тоже воспитатель никакой. Но есть мнение, что дело на 90% в личном примере... Хотя, и с этим проблемы. Так что даже и не знаю что сказать. Но "навязывать" своё мнение не получится. Такой подход вызывает бунт, и я это на примере своего детства/взросления помню прекрасно.

P.S. Я тут тоже хотел было "пожаловаться", но решил, что не стоит :) Лично потом напишу.

# Икона // Джорджия Бриггс
std.hugeping
hugeping(ping,1) — All
2021-04-10 20:50:04


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

Но, в центре Церкви -- Христос.

> Евр13:8 Иисус Христос вчера и сегодня и вовеки Тот же.

А тёмный двойник церкви был всегда, об этом хорошо писал С. Фудель.

Я очень нерадивый православный, это без какого-либо обмана. Так что "постится, молится, слушает Радонеж" не совсем (или совсем не) про меня, но я понимаю, что без Христа меня просто не существует. Не существует всего того, что я люблю и чем дышу.

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

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

А ещё есть произведения в которых христианство вписано "между строк". Например, "Нарния" С. Льюиса или "Властелин колец" Р. Толкиена. Правда, Нарнию я так и не дочитал...

А песни В. Цоя? Удивительно, но сколько там звенящих слов? Если есть шаг, должен быть след... На эту тему можно вообще отдельную заметку написать.

Среди художественных книг мне очень запомнилась "Камо грядёши" Г. Сенкевича. Да, ещё "Несвятые святые". Отличная книга!

Среди фильмов: "Остров", "Монах и бес" и "Старец Паисий и я, стоящий вверх ногами". Наверное, было что-то ещё, но это те, которые вспомнил прямо сейчас.

Как мне кажется, все эти произведения доступны как верующим/ищущим, так и неверующим людям. Можно долго спорить о "лубочности", "каноничности" и всём таком прочем, но мне кажется что это хороший пример произведений для "всех".

Однажды, я был в храме и слушал проповедь священника. Честно говоря, мне она не очень понравилась. Она казалось вымученной. Просто речь усталого человека. Понятно, не все священники -- ораторы. Но мне было всё-равно немного грустно. А потом на амвон вышел молодой священник. И своими словами, на пальцах, начал говорить. Возможно, в его речи были "ошибки и неточности", но было главное. Я видел, что он верит в то, что говорит. Что он горит! И это передалось сразу же. Мне. Другим людям вокруг. Я стоял и мне хотелось улыбаться. Я и улыбался этому молодому священнику. Запомнил этот случай, хотя он был уже давно.

Так вот, делиться таким зарядом тоже очень важно! Поэтому, в чисто христианском творчестве есть смысл. Когда ты уже "устал от безжалостных уличных драм", опыт живой веры способен вывести тебя из тупика или кризиса. Так я подумал, когда натолкнулся на книгу "Икона" Джорджии Бриггс на каком-то православном ресурсе.

Меня сразу подкупили несколько фактов:

* Книгу написала американка. Американская православная! Удивительно, правда?
* Автор -- молодая девушка, с глазами в которых горит искренность.
* Книга в жанре антиутопии!

Я решил купить книгу у издательства, чтобы поддержать всё хорошее. Но забыл. Сделал это только вчера. Прочитал книгу за день (она совсем короткая) и теперь мне есть что рассказать и о чём подумать...

Мне понравилось! Но "понравилось", возможно, не то слово. Просто в этой книге чувствуется горение, которое пробивается сквозь строки и оживляет их. Добавляет всему смысл и глубину.

Повествование ведётся от лица девочки, которая живёт в эпоху толерантности, когда христианство вне закона. Уничтожаются книги. Даже такие безобидные как "Нарния". Детям христиан дают новые имена (так, чтобы они не напоминали о святых). Психологи и учителя искореняют остатки вредной веры среди учащихся. Девочка -- сирота. Её семью убили во время стихийных гонений. Сама она выжила благодаря чуду.

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

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

Да, нечто подобное происходит и сегодня. Когда я не доверяю собственному смартфону.

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

> — Да, и мне, — говорю я, — я так и не поняла — это ему приснилось или он действительно спрятался в безопасном месте. Почему бы автору не написать об этом просто и понятно?
> — Наверное, она думала, так будет более правдоподобно, — говорит Мими, — жизнь полна таких моментов, когда кажется, ты висишь над пропастью. И далеко не всё в жизни устраивается просто и красиво.
> — Вот именно поэтому я считаю, что книжка должна заканчиваться то хорошо, — говорю я, — в жизни и так слишком много грусти.
> Мими смеётся.
> — И чем старше ты становишься, тем она грустнее... Какое утешение.

Прочитав больше половины, я поймал себя на мысли, что вспоминаю "Мерзейшую мощь" Льюиса. Но если в "Мерзейшей мощи" христианство читается "между строк", "Икона" с определённого момента начинает напоминать "жития святых" в фантастическом антураже антиутопии. Это воспринимается необычно. Смесь мифа, почти переходящего в "наивную сказку для подростков", с зловещим реализмом антиутопии. И вот в этот момент, когда я уже практически был уверен в том, что книгу можно рекомендовать только православным, наступает развязка...

И тут, снова звенящая искренность. Простота. Спокойствие. Мне не хочется спойлерить концовку. Хотя хотел бы описать место, которое потрясло меня своей простотой и при этом точностью.

Сейчас, когда я пишу эту заметку, я внезапно понимаю, что сама книга напоминает икону. Вроде бы, простая на вид, с примитивной "обратной" перспективой. Но это дверь. Кто-то, пожав плечами, увидит в ней лишь наивную "плоскую" картинку. А кто-то, в душевной простоте, откроет эту дверь и окажется в Нарнии. Зависит от читателя.

> ...а может быть, когда твоя душа становится только душой и уже не связана с телом, возраст больше не имеет значения?

P.S. Кстати, сама Джорджия пишет настоящие иконы. Об этом я узнал уже после прочтения книги, поискав информацию об авторе в интернете. Интересно. :)

# Re: Лунная радуга
std.hugeping
hugeping(ping,1) — vvs
2021-04-05 21:15:22


boscholeg> Зато я с удовольствием прочитал еще две повести этого автора. Одна называется «Чердак вселенной» а другая «Океанавты».

Надо будет тоже заценить. Насчёт двоякости о "Радуге". Есть такое, но всё-таки за счёт нескольких мест, которые попали "в точку", впечатление от книги хорошее. Мне, кстати, наоборот бодрое начало оттолкнуло. А потом начало раскручиваться. :)

vvs> Да, интересно сравнивать. Вспоминается, как я читал в детстве "Туманность Андромеды".

Я её так и не прочитал. Но иллюстрации из книги (кажется, это были кадры из х/ф фильма) помню. Особенно зловещим казался "чужой" корабль-диск. Если не изменяет память.

Про философию. Со временем мне стало казаться, что у людей есть какие-то индивидуальные отличия в мышлении. Например, тот же идеализм vs материализм, кажется, вызван такими отличиями. Конечно, соблазнительно было бы сказать, что идеализм более "полный". :) Но я этого не буду делать. Хотя, мне по-прежнему он кажется более естественным что-ли для природы человека.

# Re: Войнушка
std.hugeping
hugeping(ping,1) — vvs
2021-03-29 09:57:31


vvs> Явно субъективное мироощущение, КМК.

Да, согласен, вполне может быть и так. Но мне лично кажется, что тенденция к воспитанию бизнесом "аморфного индивидуалиста" -- прослеживается.

# Re: Войнушка
std.hugeping
hugeping(ping,1) — boscholeg
2021-03-29 09:53:15


boscholeg> Думаю сильного крена в сторону игры за плохих не наблюдается.

Я не о крене в сторону плохих. Я о крене в сторону, что "всё-равно кого выбирать".

boscholeg> Игры где можно было выбрать сторону конфликта существуют уж очень давно. Вспомни тут же Дюну II, там можно было играть за Харконнена. Откровенно отрицательного персонажа.

Согласен. Я написал о личной встрече с этим подходом в своём детском сознании. И, кстати, за Харконнена я не играл. :) Хотя играл в контру за кого придётся. Как раз напоминает ту самую войнушку. Правда, это уже был взрослый период жизни.

boscholeg> Но это все вторично. Играя в войнушку мы точно знали почему хотим быть за своих и не хотим быть за врагов. И такое знание было продуктом воспитания в семье. Нет никаких предпосылок надеяться, что абсолютно коммерческий проект (игра) будет воспитывать мораль и ответственность у игроков.

Ну игры, это только часть. Относительность морали -- это очень популярный подход сегодня. И хочешь-не хочешь, через те же игры дети тоже "воспитываются". Но вообще, я не сгущаю краски, просто написал, скажем так, свои мысли по теме. А как их интерпретировать, конечно, дело читателя. :)

# Войнушка
std.hugeping
hugeping(ping,1) — All
2021-03-28 21:59:55


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

Не знаю, лично моё ли это наблюдение, или это характерная черта того периода истории, в котором прошло моё детство, но я отчётливо помню свой первый опыт навязывания относительности морали.

В детстве мы всем двором играли в "войнушку". Кстати, у каждого поколения свои игры. И мне кажется, "войнушка" осталась в прошлом. Можно возразить, что военные игры перешли в компьютерные стрелялки. Но мне думается, это не совсем так. Играя в "войнушку", мы как бы всегда противопоставляли себя - хороших и врага - плохих. Как мне кажется и помнится, это не было просто "игрушечной бойней". Это был способ почувствовать этот "вектор". Хотя, конечно, я могу ошибочно обобщать личный опыт.

Потом был период "перестройки", в который пропаганда попыталась вовлечь и детей. Помню, как в детских передачах, в школе, постепенно пошли разговоры о разоружении. В том числе и "детском разоружении". Кажется, вспоминается кадр (ТВ?), когда дети выбрасывают игрушечное оружие... Не знаю как другим, но мне было не по душе. Я не понимал, что плохого мы делали? Ведь в "войнушке" мы всегда были за хороших и против плохих! К счастью, эта фальшивая движуха как-то быстро сошла на "нет".

Ну, а что было потом -- все знают...

Когда у нас в стране стали массово появляться сначала "бытовые" компьютеры, а затем и "персоналки", конечно, мы все были ошеломлены компьютерными играми! Во многих играх правила не отличались от "войнушки" и было очевидно, что мы играем за "хороших парней". Принц. Вольфенштейн. Another World. Flashback. Ну и так далее... Даже в думе мы мочили "плохих парней", следовательно, были "за наших".

Но потом, я точно помню этот момент, что-то изменилось. Стали появляться игры, о которых было принято говорить в превосходной форме, потому что они предлагали "новые ощущения". Одну из таких игр я купил. По своей наивности, поддавшись общему настроению. Это была Dungeon Keeper, в которой мы играли за злого персонажа, властелина подземелий и который уничтожал, мучил и так далее -- хороших героев. Я не помню, как долго я играл в эту игру. Скорее всего раза два. Но я точно помню что был обескуражен. Что это? Что происходит? Но все в моём окружении, как один, хвалили игру. И я верил им.

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

Конечно, фрактал человеческой истории раскручивается. Наивные представления рушатся, как представления ребёнка. Но всё-таки, здесь что-то не так.

Враждующие армии, ведомые генералами и политиками, сталкиваются. И солдаты по обе стороны линии фронта умирают. Шальные снаряды убивают невинных детей. На чьей стороне правда? Не всегда ответ очевиден. Да, наверное, в высшем смысле, война -- всегда зло. Но это понимание приходит тогда, когда появляется более фундаментальный ориентир. Понимание, что все мы в одной лодке и чистенькими остаться -- не получится. Что руками жар загребать (c) всё-таки придётся. Что высшая правда, истина -- существует. И перед ней мы все предстоим равными.

Но всё это отличается от ситуации, когда релятивизм навязывается без этого высшего ориентира. Просто как норма. А в случае игр -- как прикол, поиск новых впечатлений...

Может быть я так и не вырос, но мне до сих пор не нравится, когда у меня хотят отобрать мою "войнушку".

Весь мир идёт на меня войной (c).

# Re: Windows 10
pipe.2032
hugeping(ping,1) — vvs
2021-03-28 10:08:50


vvs> Насколько мне помнится, графика в терминале виртуальной машины всегда реализуется по сетевым протоколам типа X11

А я думал. что wsl это не виртуализация. Я думал, там как wine. Системные вызовы linux транслируются в win. Или что-то вроде user-mode linux. Но это требует специальной сборки всего, вряд-ли оно так устроено?

P.S. Почитал опять интернеты. Оказывается, есть wsl и wsl2. wsl2 - виртуализация/гипервизор, а в wsl -- примерно то, что я выше написал.

# Re: Windows 10
pipe.2032
hugeping(ping,1) — btimofeev
2021-03-27 16:45:06


btimofeev> Я пока не смотрел можно ли запускать графические приложения.

Судя по нагугленному, там можно ставить X11 сервер в саму винду, и запускать приложения, задавая DISPLAY=... Ну что, прикольно. :)

# Re: Windows 10
pipe.2032
hugeping(ping,1) — btimofeev
2021-03-27 08:03:04


Да, тоже давно не использовал винду. Программировал под 2000. XP уже как пользователь не застал. Иногда хочется поизучать чисто как "экзотику", но каждый раз останавливаюсь... Зачем? Перегруженное, проприетарное... Так что немного сочувствую твоей ситуации. С другой стороны, опыт пригодится, так или иначе...

Интересно, конечно, что там с wsl? Графические приложения работают или только консоль? Где-то слышал, что там полноценный userland от Ubunta?

# Re: Что меня раздражает
pipe.2032
hugeping(ping,1) — btimofeev
2021-03-23 08:11:49


btimofeev> Вот моя статейка про эту программу https://emunix.org/post/atool/

Отлично, почитаем! Спасибо.

# Re: Что меня раздражает
pipe.2032
hugeping(ping,1) — Peter
2021-03-23 06:22:42


Дико, люто раздражают архивы виндузятников, которые не содержат в себе директории и распаковываются засоряя каталог всяким виндузятным хламом. :(

# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
hugeping(ping,1) — vvs
2021-03-23 06:16:06


Я говорил об играх в рамках интерактивной литературы или классических point&click квестах. Под "квестом" или игрой с моделью мира я понимал игры в которых моделируются действия игрока. Ходить по локациям, брать предметы и т.д. Тогда и Zork и Maniac Mansion относятся условно к "квестам". Сюжет в таких играх обычно линеен. Чувство свободы возникает от свободы перемещений и действий, но на сам сюжет это не влияет.

В CYOA подходе обычно речь идёт не о моделировании локаций/действий, а о развитии сюжета непосредственно. Текст (художественный, а не сгенерированный движком) выводится порциями и в идеале не повторяется, не заставляет игрока ходит по тем же местам снова и снова, а ведёт игрока от начала истории и до конца, ветвясь в зависимости от замысла автора.

Конечно и в CYOA можно применить элементы "моделирования", но это довольно дорогое удовольствие по сравнению с "квестом". Потому что требует от автора написания художественного текста для всех развилок.

# CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
hugeping(ping,1) — All
2021-03-22 18:54:02


Недавно @technix подсунул мне статью https://if50.substack.com/p/1981-his-majestys-ship-impetuous в которой рассказывается о Роберте Лафоре (Robert Lafore) создателе интерактивной литературы и его играх. В играх применён довольно простой и забытый сегодня приём. История разворачивается как в CYOA играх, в ключевых моментах предлагая игроку вводить текст в свободной форме. Движок реагирует на:

* присутствие ключевых слов в фразе (например: да, нет, имя NPC и т.д.);
* отсутствие ключевых слов в фразе (попрошу обращаться ко мне как "сэр");
* объём текста и так далее...

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

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

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

Мне всегда нравилось писать истории, которые напоминают книги или кино (или театр). Загадки в такой истории воспринимаются как часть происходящих событий и естественно вплетаются в повествование. Поэтому и INSTEAD был написал с упором на такой вид игр. Условно, назовём их играми с моделью мира или просто квестами. Не смотря на ощущение свободы, на самом деле, именно свободы как правило в подобных играх нет. Мы просто "проживаем" разворачивающиеся события. Это "проживание" помогает погружению и не является средством реализации вариативности.

Модель мира позволяет реализовать линейную историю, потому что само разворачивание сюжета составлено из действий игрока. Это уже само по себе "актёрская игра". Возникает элемент вовлечённости. Сюжет один и тот же, но остаётся ощущение, что ты был в центре описываемых событий.

Зачем эти рассуждения? Дело в том, что меня давно интересует вопрос применения элементов CYOA для написания _линейных_ историй. И прочитанная статья вроде бы в очередной раз намекает на возможность этого пути. Мне казалось, что должен бысть способ скрестить парсер и CYOA и получить нечто новое.

Что мне нужно от CYOA? Литературный текст. Лёгкость работы с текстом (как в книге). Что мне нужно от парсера? Чувство свободы (хотя бы и мнимое) и вовлечённости. Однако, как только мы убираем модель мира, мы приходим к неизбежной нелинейности! Этот парадокс я долгое время не замечал.

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

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

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

То-есть, при проектировании игры мы можем выделить некую игровую механику и уже вокруг этой механики развернуть сюжет. В качестве примера: SMS игры, работа с документами, игры в виде диалогов, кликеры, текстовые-roguelike, расшифровка текстов и так далее. Да, мы всегда можем придумать новую уникальную (или не очень) механику и навесить на неё сюжет. Но, в таком случае, нельзя говорить об универсальности подхода. И, строго говоря, мы не можем назвать это CYOA. Потому что игровая механика таких игр не влияет на сюжет. Напомню, я говорю сейчас об играх с линейным сюжетом.

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

Игры с моделью мира -- настоящая интерактивная литература. ;)
P.S. Edited: 2021-03-22 18:58:47

# Re: Лунная радуга
std.hugeping
hugeping(ping,1) — vvs
2021-03-22 13:09:45


vvs> Прочитай еще третью часть - "Волшебный локон Ампары", и у тебя уже не останется никаких сомнений. По-моему, Павлов скорее идеалист.

Да, думаю, что прочитаю. Уже присматриваюсь. :)

# Лунная радуга
std.hugeping
hugeping(ping,1) — All
2021-03-22 09:45:36


Давно не читал. А тут мне посоветовали "Лунную радугу" С.И. Павлова со словами, что "Луна-9" чем-то "неуловимо напоминает". Я давно не читал художественную литературу. Даже уже забыл как это здорово -- прочитать несколько страниц перед сном. Так что не мог пропустить такой повод и взялся за книгу.

Книга понравилась! Поэтому я решил немного написать про свои впечатления.

Я не могу сказать, что читал я Радугу ровно. Нет, в некоторых местах я вяз и буксовал, но в книге были такие моменты, которые я воспринял очень сильно.

Один из таких моментов это разговор Дэвида Нортона с Людмилой Быстровой на Меркурии. Кажется, что разговор относится к конкретным событиям. Но, как всегда это бывает с настоящим произведением искусства, разговор содержит в себе более общие, фундаментальные вещи. "Весь мир идёт на меня войной"(c). Что чувствует человек, который осознаёт себя "лишним"? Драма несоответствия внутреннего мира окружающей реальности? А ведь это уже постановка религиозного вопроса!

Интересно, что зачитываясь фантастикой в институтские годы, я искал в ней подобные крупицы. Очень много таких "крупиц" было в произведениях Стругацских. И это при том, что сами Стругацкие называли себя атеистами.

В случае с Радугой, в тексте встречаются интересные, едва заметные аллюзии на христианство.

> — Нортон, надо отдать ему должное, отлично знал своих людей — но и металл устает. Я тоже устал. Я чувствовал неодолимую усталость от постоянных тревог. Каково же им, отчаянным труженикам Внеземелья?… Но десантники, которым не довелось войти в число «двенадцати апостолов» (как теперь с легкой руки обиженного Яна стали называть группу «Титания»), штурмом брали мой кабинет.

> — Ладно, — шутливым тоном сказал я возбужденным «апостолам», — поберегите энергию для броска на Титанию. Утверждаю всех, и Христос с вами!

И вроде бы тут аналогия обыгрывается в шутливом ключе. Просто случайный оборот? Но взявшись за вторую часть книги, я пришёл к другому выводу. Аналогия, скорее всего, не случайна.

Во второй части Андрей Тобольский попадает в "грум" - пространственно-временную аномалию. Центр аномалии находится рядом с кратером. Номер кратера... 666.

> По нашим расчетам, гипоцентр можно отождествить с кратерком-малюткой, диаметр которого не превышает сотни метров. В Лунном Кадастре – раздел «Япет», подраздел «Эпигены ведущего полушария» – кратерок этот числится под номером шестьсот шестьдесят шесть. Абсолютно банальный ориентир…

Когда первый раз читаешь такое -- недоумеваешь. Что это? Своеобразный авторский юмор? Дешёвый способ нагнетать саспенс? Но после возвращения из "аномалии" в тексте встречается это:

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

В этом тексте характерна "стеснительная" форма выражения мысли. Особенно это кивание на "весь цивилизованный мир". Возможно, попытка избежать цензуры? Так или иначе, в этот момент аналогия закрепляется окончательно.

Нет, ребята, я не верю в случайность. Думаю, автор (осознанно или нет) ассоциировал поход в "аномалию" с сошествием в ад Христа. А потом, в конце книги, когда экзоты (часть человечества, которая прошла горнило аномалии) направляются к звёздам, я вижу аналогию с новой землей как обетованием. Ветхий человек остаётся на Земле. Новый -- уходит к звёздам.

> Откр21:1 И увидел я новое небо и новую землю, ибо прежнее небо и прежняя земля миновали, и моря уже нет.

# Перешёл с gnus на mu4e
linux.14
hugeping(ping,1) — All
2021-03-17 14:15:04


Окончательно свалил с gnus и очень доволен!

Основная проблема gnus: очень медленно работает с большим количеством сообщений.
Но перешёл я по другой причине.

Для поиска по Maildir я давно уже пользовался mu. mu -- строит базу по сообщениям, с которой можно потом работать удобным образом. Делать выборку, искать по содержимому писем, выводить на консоль. А потом я подумал, что это же и есть удобная читалка почты :) А ещё потом оказалось, что с mu идёт mu4e -- почтовый клиент в emacs, который целиком основан на mu! Это очень просто и это работает.

Попробовал и офигел!

1) Быстро! Мои 4 ящика с тысячами сообщений обрабатывает моментально!
2) Простота интерфейса! Есть всё, что мне нужно и это удобно.
3) Автодополнение адресов, которые встречаются в письмах!

Правда, есть нюанс. Старые версии mu и mu4e заметно хуже. Поэтому, в Debian 10 мне пришлось собрать версию с git и поставить в /usr/local. Ну а в Арче, понятное дело, свежак.

Короче, если вы пользуетесь почтой в emacs - рекомендую.
Если пользуетесь maildir -- тоже рекомендую в связке с любым другим клиентом. Потому что автоматизация поиска по базе с помощью mu -- полезная в быту функция.

В общем, сейчас схема работы с почтой у меня такая:

1) забор всего утилитой mpop по крону или таймеру (да, я забираю почту по pop, а не по imap. Ну, потому что мне просто нужно забрать все сообщения, которые есть на сервере, и которых нет у меня. И это всё, что мне нужно).
2) procmail -- распределение по подкаталогам в зависимости от тем/аккаунтов
3) msmtp -- отправка
4) mu4e -- просмотр, выборка, редактирование итд.

# Re: gemini:// как дополнение idec
idec.talks
hugeping(ping,1) — ake
2021-03-13 18:45:06


Вообще, круто! Сам хотел что-то делать подобное, но времени на всё не хватает.

А на чём проект написан?

> С отображением сообщения есть особенность - текст сообщения завернут в преформатированный блок, чтобы разметка не ломалась,

С форматированием проблем нет. Я писал себе форматер, он как раз берёт мои сообщения из idec и постит в виде блога на gemini://hugeping.tk

Вот этот код: https://github.com/gl00my/ii-go/blob/master/ii-gemini/main.go#L49

# Re: АРХИВ
std.game
hugeping(ping,1) — Peter
2021-03-13 08:34:47


Начал работу над переводом "АРХИВА" на английский язык.
Процесс идёт не очень быстро, но он идёт. Надеюсь на последующую вычитку.
Пока очень похоже на то, что метапарсер нормально поддерживает английский.

# Станция пинг переезжает на другой домен
idec.talks
hugeping(ping,1) — All
2021-03-12 11:53:12


Новый адрес: club.hugeping.ru или club.hugeping.tk

По hugeping.ru/hugeping.tk будет мой личный блог.

Если кто-то фетчит, поменяйте пожалуйста.

P.S. Edited: 2021-03-13 20:21:37

# Прощай syscall.ru, здравствуй hugeping.ru!
std.hugeping
hugeping(ping,1) — All
2021-03-11 10:42:53


Мой домен syscall.ru обслуживался nic.ru. Сразу скажу, что крайне не рекомендую этого регистратора. Есть компании, с которыми не хочется иметь дела, и эта -- из их числа. Последней каплей стал перевод на более дорогой "тариф по умолчанию". В общем, перенёс syscall.ru к reg.ru не особенно вникая в детали. И, как оказалось, зря. Почитал материалы на их стайте и понял, что замашки такие же. Короче, в конце-концов я решил просто обрубить все мосты и отдать syscall.ru...

Зачем я это делаю? Мне кажется, это подсознательная попытка уйти из "ловушки". Я не занимаюсь бизнесом. Я не занимаюсь раскруткой. Но моя "привязка к домену" легко превращается в слабость. Начиная от того, что цена на регистрацию домена начинается с 200 рублей, а на продление -- уже с 900. (Подсадить!) И заканчивая нюансами взаимодействия с регистратором в случае неудобных для него ситуаций. Например, для расторжения договора необходимо оформление бумаг, хотя заключение договора происходит целиком онлайн. А если бы на домене была моя почта? В общем, чувствую неприятный запашок "беспощадного бизнеса". На reg.ru тоже своеобразные материалы в стиле: подумайте 100 раз, прежде чем уходить к другому регистратору! Ну и цена на продление спрятана глубоко-глубоко и даже превышает цену nic.ru (на что я и попался!)

Проект INSTEAD давно уже размещён на github.io: https://instead-hub.github.io и в самом приложении указан именно этот адрес. Так что в целом, я не так уж завязан на домен. Ну и "Перемен! Требуют наши сердца!"(c)

Появился повод поменять привычные вещи. Уже давно хотел разделить "личное" и общественное. На этот раз я сделал так:

* https://hugeping.ru -- мой личный блог + визитка
* gemini://hugeping.ru -- блог в gemini
* https://instead.hugeping.ru -- INSTEAD
* https://parser.hugeping.ru -- парсерный минимализм
* https://club.hugeping.ru -- станция Ping

Домен hugeping.tk пока указывает на станцию Ping, но скоро будет просто копией hugeping.ru

Так что, если вы посещаете какие-то ресурсы из списка -- время сменить закладки. Если вы читаете станцию пинг, в том числе и по RSS, добавьте префикс 'club.' к адресу.

Я всё-ещё думаю над тем, чтобы продлить syscall.ru на год (растянуть переходный период). Но это очередной компромисс. Я не уверен, что пойду на него.

По адресу https://hugeping.ru будут перечислены все мои ресурсы.

P.S. некоторые материалы будут публиковаться только в gemini.

P.S. Edited: 2021-03-11 11:14:58

# Re: Скрипты и заметки по ACME
plan.9
hugeping(ping,1) — hugeping
2021-03-10 04:19:49


Ещё скрипты и заметки: https://github.com/jinyangustc/acme-editor

# Re: Power Metal
music.14
hugeping(ping,1) — Andrew Lobanov
2021-03-08 21:16:54


AL> Какие металльные группы с чистым вокалом можете посоветовать? Есть у нас в секте вообще металлюги? :)

Насчёт жанра не уверен (я так понял, что тебе интересно бодрое рубилово), но рекомендую The Gathering. С 1995 по 1998 три альбома (Mandylion, Nighttime Birds, How to Measure a Planet) мне очень нравились. Но и другие, тоже очень здорово.

P.S. Сеточка наша что-то подохла окончательно. :)

# 9front на rpi4 как терапия
std.hugeping
hugeping(ping,1) — All
2021-03-01 14:16:23


Специально для 9front (форк Plan9) я заказал себе вторую "малинку". На данный момент система работает и я ей пользуюсь. Но путь был непростым, поэтому я решил составить памятку по основным, скажем так, нюансам.

## Plan9, 9Front и golang

На самом деле, кроме 9front на rpi4 можно поставить "ванильный" Plan9 с патчами от Дэвида Миллера. Скачать образ можно здесь: https://9p.io/wiki/plan9/download/ Забегая вперёд скажу, что ванильный Plan9 есть только для архитектуры arm32, в то время как 9front образ -- это arm64. Забавно, что даже rPI OS до сих пор поставляется в виде 32-битных сборок. И вроде бы хорошо, что 9front такой крутой. Но только на данный момент golang не поддерживает цель plan9/arm64, поэтому установка Plan9 для rpi4 от Миллера -- единственный путь получить golang. Ещё одно отличие -- драйвер wifi, который есть только в сборке Миллера.

Я думал уже поставить "чистый" Plan-9 но... Но потом понял, что если у Plan-9 и есть будущее, то оно за 9front. Так что ставил именно его.

## Заполняем всю карту

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

* Поставил в qemu 9front;
* Собрал в нём версию для arm64 (описано в разделе J руководства. С поправкой "arm32->arm64");
* Заменил скрипт inst/mountcwfs чтобы ставиться без worm http://docs.a-b.xyz/cwfs.html ;
* Ещё я поменял в скрипте inst/copydist строчку с disk/mkfs, заменив allproto на distproto;
* Включил export файловой системы;
* Записал образ на sd карту малинки. Во время загрузки выбрал загрузку не с карты, а по сети с 9front на qemu;
* Провёл процедуру инсталляции.

В итоге, у меня получилось занять всю sd карточку и без WORM раздела!

## Видео

Сначала я явно задал режим для своего монитора, отредактировав config.txt:

9fs pidos
acme /n/pidos/config.txt

Далее, заглянув в исходники ядра, я убедился что включается 16 битный режим. Я задал 24-битный (отредактировав config.txt и cmdline.txt). На мой взгляд, он работал быстрее! Однако каналы R и B были перепутаны. Тогда я просто поменял это в исходном коде и пересобрал ядро. Заработало!

## Шрифты

В этот раз я решил заморочится с шрифтами. Потому что дефолтный вид браузеров на русскоязычных ресурсах был категорически страшен. Оказалось, что для Plan9 есть утилита: ttf2subf, которая может перегонять ttf шрифт в битмап формат Plan9.

Взять её можно из extra 9front:

9fs 9front;
ls /n/extra | grep ttf2subf

Я скачал шрифты Go и перегнал размеры: 13,14,16,18,20 для каждого из начертаний (выбирал режим antialias). С помощью fontsel (тоже есть в extra) посмотрел на шрифты. Мне понравилось. До кучи прогнал ещё для любимой Iosevka. Попатчил: netfront, acme, mothra на шрифты Go и... результатом был очень доволен! Вот такой веб мне по душе!

## Почта

При настройке почты по мануалу 9front снова натолкнулся на грабли о которых забываю уже второй раз. В мануале не написано, что /mail/lib/rewrite нужно заменить файлом /mail/lib/rewrite.gateway. Без этого инструкции бесполезны. При отправке письма вы будете получать 'Invalid address.'. Не благодарите. Тем более, что вы вряд-ли будете заниматься тем же, что сделал я. :) Кроме того попатчил upas, чтобы не требовал проверки подлинности сертификатов. Да, это плохо. Но google меняет их постоянно, а в 9front нет нормальной проверки цепочки сертификатов.

## Русская раскладка

Тут я воспользовался своими патчами с https://github.com/gl00my/plan9hacks -- caps переключает раскладку.

## ruspell

Собрал lua из ports. Только там нужно собрать не только lua библиотеки, но и сам интерпретатор. Для этого там есть специальный mk файл. После этого заработал мой ruspell на lua.

## А что же с go?

Без go тяжело. Я пытался дописать plan9/arm64 цель. Даже написал реализацию системных вызовов. Но на этапе линковки под цель -- падает линкер. Пока я не разобрался в чём тут дело и отложил задачу. Но у меня есть вторая малинка, на которой крутится Linux. И на которой, кстати, сейчас находитесь вы (если читаете эту статью с https://hugeping.tk или gemini://hugeping.tk ). Так что я решил проблему своих утилит для чистого веба просто запуском их по ssh.

## Да, а как с gemini?

Собрал castor9. Но он неправильно работает с UTF-8. Делает узкими русскоязычные ресурсы. Запатчил. Ну и текстовый gemnine тоже есть.

## Зачем весь этот кошмар?

А вот тут начинается самое интересное. Моя тяга к минимализму постепенно прогрессирует и всё это время я пытался найти ей объяснение. Да, как оказалось, в этом я совсем не одинок. Например, Drew DeVault -- автор sway, основатель sourcehut. Недавно сообщил о том, что открывает хостинг в gemini: gemini://drewdevault.com/2021/02/20/Free-gemini-hosting.gm

А Алан Кокс уже довольно давно сделал Fuzix OS -- UNIX-систему для древних процессоров. Знаете какой у неё слоган? "Fuzix: Because Small Is Beautiful".

И таких примеров немало. Что происходит?

Похоже, у этой странной формы луддизма явно не технические, а человеческие причины. Вопрос ставится уже не в форме "а может ли ваша X делать Y?" Нет, выглядит это как "руки прочь от меня! Я не продукт. Здесь нет ничего, что тебя заинтересует!" Это уже напоминает панк-движение или что-то в этом духе.

Когда я собрал себе "машинку" на rpi4, поставил 9front, подключил дешёвый монитор и механическую клавиатуру на синих свитчах в голову неожиданно пришла ассоциация. Да это же просто печатная машинка! Да. Я испытываю умиротворение работая с простой системой. Это, в каком-то смысле, информационная аскетика -- выбросить мусор из головы, ограничить себя. Ограничить потоки информации, поступающие через органы чувств. Разгрузить мозг. На rpi4 в 9front не работает даже звук! Сначала у меня была мысль написать драйвер. Потом я подумал. Нет звука? Что же, это прекрасно! Поработаю в тишине.

Как то раз я отправил письмо из gmail (через веб почту) в рассылку 9front. Через пару минут пришёл ответ от робота. Извини, мы не принимаем письма в html. "Пошёл вон, Вавилон!" (c)

Я давно занимаюсь IT-технологиями. И я зависим от информации, как и многие из нас. Телефон всегда со мной ("моя прелесть!"). Чаты. Новости. Меня сделали зависимым от информации. Не без моего согласия, конечно. Но я всё ещё помню аналоговый мир и мне хочется верить, что изменения во мне обратимы. Надо выбираться из этих сетей! Пытаться. Начинать с малого. Например, не смотреть в свой телефон на прогулке... Не смотреть в свой телефон на прогулке! НЕ СМОТРЕТЬ В СВОЙ ТЕЛЕФОН! НЕ СМОТРИ В СВОЙ ЧЁРТОВ ТЕЛЕФОН!!!

До встречи! :)

Pages: 1 2 3 4