RSS
[>] Gemini на микроконтроллере
std.hugeping
hugeping(ping,1) — All
2024-11-24 13:37:00


Моим первым компьютером был БК0010-01. 16Кб памяти. 300 тысяч операций в секунду. Два бита на цвет. Он дал мне первое опьянение (чувство эйфории смешанное с деперсонализацией). С тех пор меня тянуло к компьютерам и ко всему, что было на них похоже.

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

Когда появились КПК, я собрал себе коллекцию КПК.

На ipod nano я написал прошивку, которая позволяла мне читать книжки на крошечном экране. Зачем? Потому что это тоже был компьютер.

А потом пришли смартфоны.

Сначала казалось, что это те же самые КПК только лучше.

Потом рынок решил что "маленькие компьютеры с клавиатурами" никому не нужны. Постепенно смартфоны превратились в устройства-экраны для "потребления". Привязались к онлайн "сервисам". Обзавелись банковскими приложениями. Стали обязательным атрибутом жизни. И я стал презирать смартфоны. Смартфоны больше не мои друзья. Скорее -- шпионы.

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

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

# Technointeres Arduino клавиатура на ESP32 C3

Клавиатура для ардуино (UART) и ПК (bluetooth) на ESP32 C3. Русская + английская раскладка. -- так назывался лот на aliexpress.

https://aliexpress.ru/item/1005005764316991.html -- больше нет в продаже.

Можно сказать что это тот самый мини-КПК на контроллере с клавиатурой и маленьким (но всё же не крошечным) экраном 240x240. С wifi и bt. Питается от 18650. Прошивается напрямую через usb type-c. Отличная платформа для опытов!

Пока устройство ко мне шло я начал было читать даташит на контроллер, но быстро понял, что писать всё на низком уровне я не буду. Время БК0010-01 ушло. Современные микроконтроллеры - те же процессоры. В рамках экосистемы Arduino создан слой абстракции с которым действительно проще "сразу взять и написать" не занимаясь написанием ОС. Например, когда в Arduino IDE создаётся прошивка для ESP32 на самом деле в неё прошивается и FreeRTOS. А наша прошивка - лишь задача, запускаемая в этой ОС.

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

https://github.com/technointeres/V3-ESP_KEYBOARD_RU_EN

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

Код пишется на C++. Я много раз встречал упоминание, что это НЕ C++. Возможно, когда люди говорят подобное они имеют в виду отсутствие stl библиотеки и поддержки современных стандартов. Но для системного программиста это настоящий С++ в режиме "Cи с класами"... ;)

В итоге появилась прошивка, которая содержала в себе:

- клиент gemini;
- просмотрщик картинок с zx-art.ee;
- irc клиент.

https://github.com/hugeping/arduino-technointeres-fw

Кстати, пока писал клиента gemini столкнулся с различной интерпретацией стандарта разными серверами. Особенно в части относительных ссылок типа ../. Пришлось городить нечто "среднее". Ещё раз понял, что не надо бояться уточнять детали стандарта.

Вторая проблема - tls. Из коробки для esp32 был только tls 1.2. Большинство капсул работает и по 1.2, но, например gemini://gemlog.stargrave.org похоже жёстко требует 1.3. Впрочем, даже когда я собрал со сторонней библиотекой, которая поддерживает tls 1.3, капсула stargrave по-прежнему рвала соединение. Так что причина может быть в чём то ещё. Например, в каких то жёстких настройках. Не знаю.

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

И тут на глаза подвернулся другой девайс...

# Cardputer

Устройство можно купить на aliexpress. Внутри ESP32-S3 контроллер. Хороший корпус. Игрушечная, но всё-таки клавиатура. И... экран в 1.14" :)

Я не буду описывать целевую аудиторию этого устройства и его возможности. Cardputer достаточно популярен и о нём можно почитать в интернете. А для меня это был просто очередной "маленький компьютер". Конечно, я его заказал...

Штатная прошивка полностью бесполезна и её можно воспринимать только как технологическую демку. Я начал портировать свою прошивку с прошлого устройства заодно пытаясь отвязаться от кучи ненужных библиотек и лишних слоёв. Сделал подобие многозадачности (например, можно запускать irc-клиента в фоне) и функции "органайзера" - когда по netcat можно заливать и считывать текстовые заметки. Добавил repl питона -- теперь устройство можно было использовать в качестве калькулятора. В целом, вышло симпатично.

https://github.com/hugeping/cardputer-fw

Кстати, тут я уже использовал arduino-cli чтобы не запускать Arduino IDE и просто вызывать make. Конечно, это не лучший способ разрабатывать под Arduino, но так было проще "сразу начать".

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

Потом я охладел к игрушке и многие функции остались нереализованными. Например, можно было сделать диктофон, тюнер, поддержку sd-карточки. Может быть я ещё вернусь к этим задачам (например, тюнер был бы полезен "в быту"). Но даже сейчас иногда читаю капсулы в gemini на cardputer и это приносит удовольствие и умиротворение. :)

Если бы только размер экрана был хотя бы в 2 раза больше...

# r36s

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

Меня эти консоли не сильно привлекают именно в плане retro-gaming. Эти устройства мне интересны с точки зрения любительского софта. Конечно, формат устройства предполагает, что это будут главным образом игры.

Когда я изучал ассортимент этих устройств я понял, что они не одинаковы именно с точки зрения любительской разработки. Например, miyoo mini очень неплоха с точки зрения потребительских свойств, но по определённым причинам для неё мало именно любительского ПО. С другой стороны, есть устройства которые работают под управлением ArkOS (фактически, Ubuntu для arm), что делает портирование игр крайне простой задачей. Существует проект, который предоставляет возможность грубо (но эффективно) делать сборки с "портируемым" ПО. Фактически, мы запускаем виртуалку, собираем проект и кидаем бинарник на устройство. Потом обвязываем его скриптом запуска.

https://portmaster.games/games.html

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

Для miyoo тоже есть возможность создавать порты, но их гораздо меньше. Вероятно, это связано с особенностями портирования.

https://github.com/OnionUI/Ports-Collection

Конечно же, я сразу "портировал" свой движок rein и запустил на r36s свою игру.

https://github.com/hugeping/rein

Работает отлично. Изменений в кодовую базу практически не вносил, кроме мелких настроек в Lua части (более гибкий масштаб экрана к разрешению).

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

# Другие устройства

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

## playdate

Очень стильная игровая самобытная консоль с монохромным экраном. Но очень дорого.
https://play.date/

## arduboy

Забавная миниатюрная игровая консоль с монохромным экраном 128x64.
Как выглядят игры можно посмотреть здесь: https://arduboy.ried.cl/
Можно купить на aliexpress за вменяемые деньги. Предпочёл cardputer.

## uConsole

Прикольный маленький linux компьютер. Иногда можно купить на aliexpress. https://www.clockworkpi.com/uconsole
Не очень интересно, потому что там просто Linux. И не думаю что удобен в "практическом" смысле.

## T-Deck-ESP32 S3 Blackberry

Конструктор в виде контроллера + экрана + клавиатуры от BB. Интересный вариант. Если бы не заказывал до этого cardputer, возможно, поиграл бы с этой штукой.

https://aliexpress.ru/item/1005007938506565.html

# Заключение

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

А я _точно_ знаю -- мы должны чувствовать свои компьютеры.

P.S. Edited: 2024-11-24 15:02:57

cardputer.png

[>] Деды против mail.ru
std.hugeping
hugeping(ping,1) — All
2024-11-10 08:56:58


На днях пришло письмо от mail.ru. О том что "вечные" 100Гб облака подаренные ранее "заканчиваются" и нужно срочно оформить подписку.

Капитализм - подумал я. И даже не стал сильно сокрушаться. План маркетоидов понятен -- сначала подсадить на услугу, потом начать шантажировать. Видимо, 100Гб оказалось для многих "слишком много" вот и пришлось закручивать гайки и отменять данное ранее обещание. Интересно, что принесёт такой маркетинговый ход? Какая часть потенциальных клиентов поймёт, что иметь дело с шантажистом -- гиблое дело?

Так или иначе -- свои данные я слил на винчестеры. Но возникла проблема с почтой жены. За эти годы там накопилось несколько десятков гигабайт(!!!) писем (с аттачами). Попытка скачки архивов через web ничего не дала. Сначала браузер задумался на несколько минут, потом начал выплёвывать диалог на каждый .rar аттач. А потом сервер вовсе отказался выполнять запрос.

Удалить старые ненужные файлы тоже оказалось проблемой, связанной с ограничениями веб-версии. Например, в выдаче отсутствовала сортировка по размеру. Работать одновременно можно только с 1000 файлами, при этом страничка подгружает по 50... Бррр... А постоянные баннеры со скидками на подписку намекали что и тут не обошлось без не слишком чистых ручек маркетоидов.

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

Ужасно. Ну что же, тогда пришло время mbsync...

Предварительно нужно создать на mail.ru пароль для imap: https://account.mail.ru/user/2-step-auth/passwords/

Затем создаём файл mail.ru.conf:

IMAPAccount LOGIN
Host imap.mail.ru
User LOGIN@mail.ru
Pass PASSWD
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt

IMAPStore LOGIN-remote
UseUTF8Mailboxes yes
Account LOGIN

MaildirStore LOGIN-local
SubFolders Verbatim
Path ~/Downloads/Mail/
Inbox ~/Downloads/Mail/Inbox

Channel Login
Far :Login-remote:
Near :Login-local:
Patterns *
Create Both
Expunge Both
SyncState *

Потом:

$ mbsync -c mail.ru.conf LOGIN

И всё. Чтобы посмотреть свою почту, можно воспользоваться mutt или neomutt:

$ neomutt -R -f ~/Downloads/Mail/Inbox/

В очередной раз выручают протоколы "дедов". Удивительно, что почта продолжает работать по разработанным давным-давно технологиям и никакие vk, телеграмы, дискорды и прочие проприетарные "решения" не способны её заменить. Правда, это скорее исключительная ситуация именно с почтой. Почему так получилось? Наверное потому, что миру действительно нужна "федеративная" система обмена сообщениями, не привязанная технологически к каким-то конкретным корпорациям. Хотя тенденция когда тот же google (или сбер, или mail.ru, или Яндекс) пытается стать таким компонентом-"агентом" -- прослеживается. Искренне надеюсь, что у них ничего не получится.

P.S. Edited: 2024-11-10 09:40:24

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — doesnm
2024-11-09 22:11:51


doesnm> символ 10 (\n) используется для разделения постов. Для новых линий в посте используется \u2028

Символ 10 в текстовом редакторе виден как перевод строки. А символы \n - это два символа. Буквально бекслеш и буква n. Это эскейпинг. В таком случае, чтобы ввести бекспейс нужно будет два бекспейса.

[>] Re: Станция ping уходит из сети idec
ping.local
doesnm(ping,55) — tuple
2024-11-09 19:23:57


tuple> Но переводы строк немного странные, не каждый редактор их отобразить сможет. Фрагмент https://anthony.buc.ci/user/abucci/twtxt.txt :

символ 10 (\n) используется для разделения постов. Для новых линий в посте используется \u2028

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — tuple
2024-11-09 18:04:24


tuple> Но переводы строк немного странные, не каждый редактор их отобразить сможет. Фрагмент

Да уж, сделали бы тогда через escaping. Например \n - перевод строки. А \ -- \\.

[>] Re: Станция ping уходит из сети idec
ping.local
tuple(ping,54) — doesnm
2024-11-09 17:31:27


doesnm> Клиенты никак не ограничивают длину, это просто рекомендация
doesnm> Уверен что в этом посте больше 140 символов: https://twtxt.net/twt/w3faj4q

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

Но переводы строк немного странные, не каждый редактор их отобразить сможет. Фрагмент https://anthony.buc.ci/user/abucci/twtxt.txt :
...
2024-11-04T18:53:04Z    **Silicon Valley and Wall Street invent collateralized GPU obligations. Surely this will work out fine**<U+2028><U+2028>https://pivot-to-ai.com/2024/11/04/silicon-valley-and-wall-street-invent-collateralized-gpu-obligations-surely-this-will-work-out-fine/<U+2028><U+2028>> Blackstone, Pimco, Carlyle, and BlackRock have so far lent $11 billion to GPU cloud companies — now apparently called “neoclouds” — such as CoreWeave, Crusoe, and Lambda Labs. The loans are collateralized by the neoclouds’ Nvidia GPUs.<U+2028><U+2028><U+2028>Look ma, new asset bubble!

А выглядит так: https://twtxt.net/conv/v77iu5a

[>] Re: Станция ping уходит из сети idec
ping.local
doesnm(ping,55) — tuple
2024-11-09 15:21:17


Клиенты никак не ограничивают длину, это просто рекомендация
Уверен что в этом посте больше 140 символов: https://twtxt.net/twt/w3faj4q

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: Станция ping уходит из сети idec
ping.local
tuple(ping,54) — hugeping
2024-11-09 14:16:10


doesnm>> Весь материал это текстовый файл? А ты не смотрел на twtxt?
hugeping> Слышал, но не смотрел. Но уже после того как сделал ii-go, так что уже не было большого смысла куда-то дёргаться.

Думаю, что это совсем не то, что хотелось бы. Вот формат файла, который и является корнем twtxt:
2016-02-04T13:30:00+01:00   You can really go crazy here! ┐(゚∀゚)┌
2016-02-03T23:05:00+01:00   @<example http://example.org/twtxt.txt> welcome to twtxt!
2016-02-01T11:00:00+01:00   This is just another example.
2015-12-12T12:00:00+01:00   Fiat lux!

И уже видя пример, можно сказать, что большие тексты тут не написать. Так и есть:
> A status should consist of up to 140 characters, longer status updates are technically possible but discouraged. twtxt will warn the user if a newly composed status update exceeds this limit, and it will also shorten incoming status updates by default. Also note that a status may not contain any control characters.

Потому как позиционирует себя twtxt как микроблоггинг. tweet + text = twtxt. А это наследие ограниченного twitter со своими несчастными ограничениями: сначала 140 символами в посте, потом - 280, а теперь меценатам можно постить по 10 тысяч из-за прихода Илона Маска. Могу ошибаться с цифрами.

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — tuple
2024-11-09 14:13:12


tuple> А почему не SMTP? Уже есть готовые вещи как mailing lists. Как пример: https://lists.sr.ht/~sircmpwn/sr.ht-discuss

Хочу посмотреть как там решаются похожие проблемы. mailing list немного другое.

[>] Re: Станция ping уходит из сети idec
ping.local
tuple(ping,54) — hugeping
2024-11-09 14:02:17


hugeping> А я решил почитать про то, как был устроен nntp... Просто стало интересно.

А почему не SMTP? Уже есть готовые вещи как mailing lists. Как пример: https://lists.sr.ht/~sircmpwn/sr.ht-discuss

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — doesnm
2024-11-09 13:32:44


doesnm> Весь материал это текстовый файл? А ты не смотрел на twtxt?

Слышал, но не смотрел. Но уже после того как сделал ii-go, так что уже не было большого смысла куда-то дёргаться.

[>] Re: Станция ping уходит из сети idec
ping.local
doesnm(ping,55) — hugeping
2024-11-09 13:18:39


hugeping> Я кстати и инстед думал обсуждения игр перенести на станцию пинг, но... Не взлетает. Получается, только личное использование ещё как-то имеет смысл. Мне нравится что весь мой материал это просто один текстовый файл. Так что от ii/idec я получил то, что хотел. :)

Весь материал это текстовый файл? А ты не смотрел на twtxt?
Хотя это больш касается блогов, но пост пишется не сложнее чем сделать echo -e "$(date -Is)\tHello World" >> twtxt.txt
С расширениями есть ветвления, но это все опционально

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — hugeping
2024-11-09 13:03:32


hugeping> Ну моё личное решение это не "демонстративный" уход.

Кстати, за это время были люди которые интересовались idec, писали мне лично и даже поднимали свои ноды. Например, один человек из сообщества openbsd пытался сделать что-то на основе ii-go. Но, как я понял, народ просто выбрал "де факто" телеграм. :)

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

Я кстати и инстед думал обсуждения игр перенести на станцию пинг, но... Не взлетает. Получается, только личное использование ещё как-то имеет смысл. Мне нравится что весь мой материал это просто один текстовый файл. Так что от ii/idec я получил то, что хотел. :)

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — doesnm
2024-11-09 12:56:39


doesnm> *Пришел создатель ii
doesnm> Но да, грустненько

Ну моё личное решение это не "демонстративный" уход. Я просто реально понял что мне не по пути. И revoltech и Рома и shaos ... хотят видеть сеть такой, какой мне она не нужна. Я понял что эта "нагрузка" просто мне мешает. Это примерно как с zeronet и прочими "даркнетами". Только gemini стал тем, чем мне хотелось бы. И, что забавно, в том числе благодаря технологической простоте. На гемени сложно сделать "магазин" :) В общем, я просто решил "не мешаться под ногами".

[>] Re: urlы
ping.local
hugeping(ping,1) — tuple
2024-11-09 12:52:17


tuple> А часто ли бывают ссылки на вики, у которых в конце ссылки запятая или двоеточие? Никогда таких не видел. В середине может быть, но не в конце же.

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

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — doesnm
2024-11-09 12:50:30


doesnm> После тебя сегодня ливнул Андрей Лобанов (сисоп таверны)
doesnm> ii://6DaQfNsJWdW4jb9Qo8Ab
doesnm> Сеть потихоньку умирает или еще есть надежда?

Не знаю. С одной стороны, оно существовало последние несколько лет в виде нескольких человек, буквально 3-4. И 2-3 живых станций. Так что, оно вроде и умереть не может, в каком то смысле, ибо и так было мертво. :)

С другой стороны, кто знает?

P.S. А я решил почитать про то, как был устроен nntp... Просто стало интересно.

[>] Re: urlы
ping.local
tuple(ping,54) — hugeping
2024-11-09 12:47:51


hugeping> Тогда перестанут работать некоторые ссылки на вики, например. И их вообще никак нельзя будет ввести. :(

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

[>] Порог входа в IDEC
ping.local
tuple(ping,54) — doesnm
2024-11-09 12:46:56


doesnm> *Пришел создатель ii

А... Ой... А я думаю, что за люди :)

doesnm> Но да, грустненько

Вообще revoltech писал правильно про "неосиляторов", хоть я не согласен с такой грубой формой :), но суть такова: снижение порога сложности входа = снижение качества аудитории, так сказать.

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

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

[>] Re: urlы
ping.local
hugeping(ping,1) — tuple
2024-11-09 12:46:08


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

Тогда перестанут работать некоторые ссылки на вики, например. И их вообще никак нельзя будет ввести. :(

[>] Re: Станция ping уходит из сети idec
ping.local
doesnm(ping,55) — tuple
2024-11-09 12:34:49


doesnm>> Сеть потихоньку умирает или еще есть надежда?
tuple> Сеть была, существовала себе более-менее кучу лет. Но пришли люди со своим виденьем сети/стандарта и начали на этой почве споры разводить с матом.
tuple> P.S. ну какой, блин, topicid, зачем?..

*Пришел создатель ii
Но да, грустненько

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: Станция ping уходит из сети idec
ping.local
tuple(ping,54) — doesnm
2024-11-09 12:31:24


doesnm> Сеть потихоньку умирает или еще есть надежда?

Сеть была, существовала себе более-менее кучу лет. Но пришли люди со своим виденьем сети/стандарта и начали на этой почве споры разводить с матом.

P.S. ну какой, блин, topicid, зачем?..

[>] Re: Станция ping уходит из сети idec
ping.local
doesnm(ping,55) — hugeping
2024-11-09 12:16:59


После тебя сегодня ливнул Андрей Лобанов (сисоп таверны)
ii://6DaQfNsJWdW4jb9Qo8Ab
Сеть потихоньку умирает или еще есть надежда?

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: Дракон и Башня
std.game
hugeping(ping,1) — tuple
2024-11-09 10:21:26


tuple> Но сделана игра хорошо, по-коммерчески качественно, но бесплатная.

Там на http://instead-games.ru отзыв написан под карточкой игры. В принципе, я с ним согласен. Правда я играл в бету ещё, планирую перепройти. Да, в игре нет конфликта но, она как-то умиротворяет. Хочу графику обновлённую заценить.

P.S. Edited: 2024-11-09 13:13:37

[>] Re: Дракон и Башня
std.game
tuple(ping,54) — hugeping
2024-11-09 07:28:00


hugeping> Там DOS команды, наверное? А rm работает? :)
hugeping> P.S. не выдержал и глянул код, да.... (многозначительно)

Ввиду юности своей DOS'ом никогда не пользовался кроме как в таких игрушках.

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

Но сделана игра хорошо, по-коммерчески качественно, но бесплатная.

[>] Re: Дракон и Башня
std.game
hugeping(ping,1) — tuple
2024-11-08 20:08:10


tuple> Меня - линуксоида - затроллили в этой вашей игре:

Там DOS команды, наверное? А rm работает? :)
P.S. не выдержал и глянул код, да.... (многозначительно)

[>] Re: Дракон и Башня
std.game
tuple(ping,54) — hugeping
2024-11-08 14:15:48


Меня - линуксоида - затроллили в этой вашей игре:

C:\DOCS\>cat key.txt
Мяу

C:\DOCS\>ls
Я не Unix

C:\DOCS\>

P.S. спойлером не считается, так как в трейлере игры показан терминал.

[>] gemini прекрасен
std.hugeping.micro
hugeping(ping,1) — All
2024-11-08 11:07:02


После долгого перерыва вернулся посмотреть на gemini.

Остался доволен. Пока, среди всего "подполья" -- самый удачный проект, на мой взгляд. Спасибо всем, кто не молчит! :)

Постараюсь чаще давать "контент". Есть мысли написать новую "станцию" gemini, но понимаю, что это очередная ловушка для программиста. Лучше просто подавать сигналы жизни.

[>] Про ii
std.hugeping.micro
hugeping(ping,1) — All
2024-11-07 12:14:16


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

- возможность фетчить изменения сообщений (msgid:rev);
- без u/e и слайсов;
- критерий что что-то поменялось (время посл. изменения?);
- всегда полный фетч если хоть что то поменялось.

[>] Сигнал
std.hugeping
hugeping(ping,1) — All
2024-11-07 11:50:07


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

Например, что такое точка? Электромагнитное поле? Я?

Или что значит "существует"? Существует ли стул, стол? А формула?

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

Радиолюбители -- страшные люди. Собирают свои схемы, рассуждают о волнах и модуляции а для меня это выглядит просто магией.

Например, что такое AM модуляция? Вроде бы просто. Есть несущий сигнал определённой высокой частоты который мы модулируем передаваемым сигналом (например, голос) просто умножая несущую на силу модулируемого сигнала. Амплитудная модуляция.

И вот, когда смотришь передающие радиостанции на каком-нибудь websdr (например http://websdr.srr-76.ru/ ) ты видишь там спектр. AM сигнал станции виден в виде вертикальной черты (несущая частота) и... симметричной россыпи точек разной яркости слева и справа. И ширина этого столбика -- полоса пропускания. То есть, сигнал радиостанции представляет себя диапазон частот.

И вот тут я сразу перестал понимать. Постойте! Значит AM передача это много разных частот? Но когда мы читали про AM модуляцию мы видели там сигнал несущей частоты, который мы модулируем. Откуда же другие частоты? У нас что, несколько передатчиков с разными частотами?

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

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

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

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

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

Теперь пусть вместо динамика говорит человек. Сложная звуковая волна его речи достигает микрофона. Мы оцифровываем звук. Мы применяем преобразование Фурье и получаем математическую сумму многих волн. Вопрос, эти волны действительно родились в недрах связок и мы можем считать эти сигналы в РЕАЛЬНОСТИ объективно существующими или это лишь наш математический аппарат?

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

Я быстро понял, что в голове моей путаница. Волна. Частота. Существует. Это я ещё даже не говорю про ЭМ поле.

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

Что такое вообще "существует"? Что такое волна? Мы можем рассмотреть её с точки зрения амплитуд (плотности воздуха или характеристик ЭМ поля), можем рассмотреть как суперпозицию частот. А на самом то деле, что это? А может и нет никакой волны вовсе _объективно_ и это просто наш математический аппарат описывающий флуктуации?

Интересно, что в интернете я всё-таки набрёл на обсуждение этой темы.

Вот это обсуждение: https://www.reddit.com/r/explainlikeimfive/comments/16mbnna/eli5_why_does_an_am_radio_channel_require_any/

Также очень интересно, что в "топе" ответы, которые не отвечают на суть моих вопросов. Вроде такого:

> The simple answer would be: because the information you're trying to transmit (generally voice or music) is, even without modulation, a waveform made of a lot of different frequencies. For example, you need at least a bandwidth of 4 kHz (from around 20 Hz to 4000 Hz) for voice to be intelligible.

Это не ответ на вопрос. Тот кто отвечает не понимает сути проблемы. Но если почитать дальше по ходу обсуждения находятся интересные рассуждения, которые немного меня "успокоили". В том смысле, что не я один такой непонятливый.

Электромагнитное поле. В школе нас учат что это форма материи. Наверное чтобы подчеркнуть, что _это_ существует на самом деле. Но что значит существует?

Молекулы воздуха объективно существуют? А функция которая описывает звуковую волну (плотность воздуха) в пространстве - существует ли на самом деле?

Самое близкое что я могу подобрать: взаимодействует, значит -- существует.

Но что такое взаимодействует? Взаимодействуем ли мы с формулой?

Иногда вопросы важнее чем ответы. Тем более что и ответов нет.
P.S. Edited: 2024-11-07 11:58:19

[>] Re: IDEC-клиент на rein
std.rein
doesnm(ping,55) — hugeping
2024-11-06 19:06:47


doesnm>> Это есть в мануале цезия, но продублирую здесь от себя:
doesnm>> Есть несколько форматов для хранения эх: txt, aio, ait, ну и мб бандл
hugeping> А, понял. В принципе, ii-tool если забирать по одной эхе и каждую эху помещать в свою базу (можно опциями этого добиться) - получится очень похоже на aio. Ну или наоборот, из общей базы ii-go можно выдернуть бандлы эх. Но что практически это даёт? Ведь цезий и так хорошо работает со своими базами? Или чисто утилитарная штука "на всякий случай"? Ну то есть, как этот конвертер применять и где?

1. Я хотел добавить еще форматы и посмотреть как оно себя вести будет (например Maildir)
2. Поиграться с скриптами которые выдают на выходе txt

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
P.S. Edited: 2024-11-06 19:10:24

[>] Re: IDEC-клиент на rein
std.rein
hugeping(ping,1) — doesnm
2024-11-06 18:57:03


doesnm> Это есть в мануале цезия, но продублирую здесь от себя:
doesnm> Есть несколько форматов для хранения эх: txt, aio, ait, ну и мб бандл

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

[>] Re: IDEC-клиент на rein
std.rein
doesnm(ping,55) — tuple
2024-11-06 18:42:17


hugeping>> Я не знаю что это за форматы (в чём их ценность). В ii-go просто строчки бандлов + индекс для быстрой выборки и поиска. Так что по идее из него/в него конвертер не проблема сделать. Но не оч. понял что это даст. Есть какой-то софт что работает с этим форматом?
tuple> С ними только caesium работает ;)
tuple> https://github.com/idec-net/caesium/blob/master/docs/formats.md

Не совсем: iing и ii-php в файловой режиме используют txt, других применений не встречал

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: IDEC-клиент на rein
std.rein
doesnm(ping,55) — hugeping
2024-11-06 18:40:44


doesnm>> Хочу написать реализацию парсера/конвертера в другой вид из ait/aio (сообщения в них по идее храняться одинаково, но в ait есть индекс)
doesnm>> Я думаю перенести с питона на луа проблемы не будет. Или мб сразу на луа сделать
hugeping> Я не знаю что это за форматы (в чём их ценность). В ii-go просто строчки бандлов + индекс для быстрой выборки и поиска. Так что по идее из него/в него конвертер не проблема сделать. Но не оч. понял что это даст. Есть какой-то софт что работает с этим форматом?

Это есть в мануале цезия, но продублирую здесь от себя:
Есть несколько форматов для хранения эх: txt, aio, ait, ну и мб бандл
txt - есть две директории: echo и msg. В первой находятся файлы с именем эхи, а во второй файлы с айди сообщения которое содержит само сообщение
aio (all in one) - файл с именем эхи содержит содержит сообщения на каждой строке (вместо символа новой строки используется символ 15, но что-то не особо помогает)
ait - улучшенный aio и txt: в одном файле находится индекс, а в другом сообщения как в aio
Выходит что ты придумал свой :)
Как его назвать для своего парсера/конвертера?

Upd: есть еще sqlite, но в доках нет его спеки, а узнавать лень

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?
P.S. Edited: 2024-11-06 18:42:50

[>] Re: IDEC-клиент на rein
std.rein
tuple(ping,54) — hugeping
2024-11-06 18:34:25


hugeping> Я не знаю что это за форматы (в чём их ценность). В ii-go просто строчки бандлов + индекс для быстрой выборки и поиска. Так что по идее из него/в него конвертер не проблема сделать. Но не оч. понял что это даст. Есть какой-то софт что работает с этим форматом?

С ними только caesium работает ;)

https://github.com/idec-net/caesium/blob/master/docs/formats.md

[>] Re: IDEC-клиент на rein
std.rein
hugeping(ping,1) — doesnm
2024-11-06 17:57:06


doesnm> Хочу написать реализацию парсера/конвертера в другой вид из ait/aio (сообщения в них по идее храняться одинаково, но в ait есть индекс)
doesnm> Я думаю перенести с питона на луа проблемы не будет. Или мб сразу на луа сделать

Я не знаю что это за форматы (в чём их ценность). В ii-go просто строчки бандлов + индекс для быстрой выборки и поиска. Так что по идее из него/в него конвертер не проблема сделать. Но не оч. понял что это даст. Есть какой-то софт что работает с этим форматом?

[>] Re: IDEC-клиент на rein
std.rein
doesnm(ping,55) — hugeping
2024-11-06 17:51:11


hugeping> Вообще, я бы скорее смотрел на связку rein + ii-go. То-есть, на rein можно написать клиента, а забор отправку - всё делать через ii-tool из состава ii-go. Будет симпатично. И сделать это, вроде бы не сложно.
hugeping> Но!
hugeping> Во первых, сейчас там "комитет" будет шатать стандарт. Надо подождать месяц другой и посмотреть, будет ли выхлоп.

Если ты отделишь фетчер в ii-tool, то на комитет можно забить. Формат сообщений они ломать не должны. Ну и ты сейчас ни от какой сторонней ноды не зависишь

hugeping> Но если кто-то другой напишет, я только за. :)

Хочу написать реализацию парсера/конвертера в другой вид из ait/aio (сообщения в них по идее храняться одинаково, но в ait есть индекс)
Я думаю перенести с питона на луа проблемы не будет. Или мб сразу на луа сделать

+++ Никто не знает, как правильно. Так зачем же выдумывать правила?

[>] Re: IDEC-клиент на rein
std.rein
tuple(ping,54) — hugeping
2024-11-06 16:42:35


> Дальше нужна идея игрушки.

По мотивам "Дознание пилота Пиркса"

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — tuple
2024-11-06 15:32:56


tuple> Но можно же было не отключать станцию, а ограничиться замечанием для начала. Хотя бы поставить вопрос об общении. Народу-то тут пока не много всё-таки. Договориться всегда можно. Или всё-таки нет?

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

[>] Re: IDEC-клиент на rein
std.rein
hugeping(ping,1) — doesnm
2024-11-06 15:29:20


doesnm> Так стоп
doesnm> Но ведь IDEC может работать по любому протоколу
doesnm> http - устоявшийся вариант

По http можно сделать, но меня удручает необходимость посылки authstr в открытом виде.
Вообще, я бы скорее смотрел на связку rein + ii-go. То-есть, на rein можно написать клиента, а забор отправку - всё делать через ii-tool из состава ii-go. Будет симпатично. И сделать это, вроде бы не сложно.

Но!

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

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

Но если кто-то другой напишет, я только за. :)

[>] Re: IDEC-клиент на rein
std.rein
doesnm(ping,55) — tuple
2024-11-06 15:10:33


Так стоп
Но ведь IDEC может работать по любому протоколу
http - устоявшийся вариант
Бандл можно передать на флешке, распечатать на бумаге и т.д
Тоесть даже без интернета

[>] Re: Станция ping уходит из сети idec
ping.local
tuple(ping,54) — hugeping
2024-11-06 12:57:01


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

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

hugeping> Да! Если кто не знал, станция пинг поддерживает xpm :)

Его ещё конвертировать нужно.

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — hugeping
2024-11-06 12:36:57


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

Да! Если кто не знал, станция пинг поддерживает xpm :)



[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — tuple
2024-11-06 12:13:31


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

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

[>] Re: Станция ping уходит из сети idec
ping.local
tuple(ping,54) — doesnm
2024-11-06 10:34:43


doesnm> Что если поинт находится на другой ноде? Предупреждение и вылет ноды?

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

[>] Re: Станция ping уходит из сети idec
ping.local
doesnm(ping,55) — tuple
2024-11-06 10:28:32


Что если поинт находится на другой ноде? Предупреждение и вылет ноды?

[>] Re: Станция ping уходит из сети idec
ping.local
tuple(ping,54) — hugeping
2024-11-06 09:46:51


hugeping> Правильно, но поинт пишет сообщение (например, с матом), которое идёт на другую ноду (фетчем) и... что делаем дальше?
hugeping> Блеклисты, фильтры, редактирование? Это припарки.

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

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — tuple
2024-11-06 08:43:24


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

Правильно, но поинт пишет сообщение (например, с матом), которое идёт на другую ноду (фетчем) и... что делаем дальше?

Блеклисты, фильтры, редактирование? Это припарки.

[>] Re: Станция ping уходит из сети idec
ping.local
tuple(ping,54) — hugeping
2024-11-06 08:06:33


hugeping> Насчёт правил. Я не один день думал на эту тему. Даже собирался решать проблему чисто инженерно -- фильтруя fetch запросы. Но, это всё не сработает.

Не фильтровать, каждая нода сама модерирует своих поинтов по общим договорным правилам.

Спасибо за ссылку.

[>] Re: Станция ping уходит из сети idec
ping.local
hugeping(ping,1) — doesnm
2024-11-06 08:04:24


doesnm> [Репост из idec.talks]

Ну, грустно конечно немного. Я ведь тоже ii-go раздавал, когда в лс мне писали и спрашивали про idec. :)

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

Еще хочу гемени капсулу довести до ума. Есть чем заняться.

[>] Re: Станция ping уходит из сети idec
ping.local
doesnm(ping,55) — hugeping
2024-11-06 08:00:10


[Репост из idec.talks]

Эх, именно благодяря тебе и лору я и узнал про IDEC. Читал что-то я околосвязанное с
instead, а там тебя упомянули. Потом зашел на сайт, а там "какой-то клуб" сети idec.
Решил почитать доку и мне зашло. Сначала просто изучал и читал архивы (еще написал пару
писем AL-у), а потом решился стать поинтом
P.S. Edited: 2024-11-06 09:33:50