Pages: 1 2 3
RSS
# 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-технологиями. И я зависим от информации, как и многие из нас. Телефон всегда со мной ("моя прелесть!"). Чаты. Новости. Меня сделали зависимым от информации. Не без моего согласия, конечно. Но я всё ещё помню аналоговый мир и мне хочется верить, что изменения во мне обратимы. Надо выбираться из этих сетей! Пытаться. Начинать с малого. Например, не смотреть в свой телефон на прогулке... Не смотреть в свой телефон на прогулке! НЕ СМОТРЕТЬ В СВОЙ ТЕЛЕФОН! НЕ СМОТРИ В СВОЙ ЧЁРТОВ ТЕЛЕФОН!!!

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

# cwfs без WORM
plan.9
hugeping(ping,1) — hugeping
2021-02-18 15:49:57


Конфигурация cwfs без WORM:
http://docs.a-b.xyz/cwfs.html

# Re: Бороздим интернет без браузера #2
std.hugeping
hugeping(ping,1) — hugeping
2021-02-18 08:06:45


Не буду пилить самостоятельный пост. Просто напишу, что именно я доделал за последние дни.

# reddit

Оказалось, что reddit предоставляет доступ к постам и комментариям через atom feed. Просто добавляем к url .rss и получаем данные без мусора. Мимо такого я пройти не мог, поэтому:

- добавлена утилита atom2rss;
- утилита rss2gmi теперь умеет читать данные из stdin.

Правда, довольно быстро выяснилось, что меня начали рубить за большое количество запросов (хотя их было немного). Смена User-Agent помогла:

# читаем реддит plan9
curl -s -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.89 Safari/537.36" https://www.reddit.com/r/plan9/.rss | atom2rss | rss2gmi -h -r

# Доработки rss2gmi

Улучшил внешний вывод в тех случаях, когда контент представляет из себя html код. Теперь текст выдачи выглядит более аккуратно! Кроме того, добавил параметр -n -- задать число записей, которые хотим показать. Всё это позволило удобным образом делать сводки новостей сразу с нескольких ресурсов, например:

rss2gmi -n 1 https://www.opennet.ru/opennews/opennews_all_noadv.rss
rss2gmi -n 1 -h https://www.linux.org.ru/section-rss.jsp?section=1
rss2gmi -n 1 http://hugeping.tk/echo/all/rss
rss2gmi -h -n 1  https://hype.retroscene.org/rss/index/
rss2gmi -h -n 1 'https://forum.ifiction.ru/extern.php?action=active&type=RSS'

# Выводы

Просто удивительно, что когда я некоторое время назад искал простые консольные rss-читалки, я находил только безумные комбайны. Или библиотеки, с множеством слоёв абстракций. Но на go писать такие вещи настолько просто, что буквально за пару вечеров можно сделать инструмент под себя и пользоваться им с комфортом.

# Скрипты и заметки по ACME
plan.9
hugeping(ping,1) — hugeping
2021-02-18 07:33:59


Несколько раз уже натыкался на этот репозиторий.

https://github.com/evbogdanov/acme

# Мысли о Луне
std.hugeping
hugeping(ping,1) — All
2021-02-15 16:21:40


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

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

Игра доступна по адресу https://instead.itch.io/moon9 Дальше будут раскрыты нюансы сюжета, которые могут сильно испортить впечатление об игре.

# Мечты о Луне

Я не помню точно как именно я вышел на лунную тему. Ассоциативный ряд здесь может быть длинным. Название скриптового языка "Lua" (который используется в INSTEAD) переводится с португальского как "луна". Луна связана с ночью, тайной, снами, другой реальностью. Луна одновременно близкая и далёкая. Последний раз человек был на Луне в 1972 году. Прошло уже почти 50 лет -- время целого поколения. Почему так вышло? Неужели человек и здесь продал (и предал) свою мечту? В общем, я смотрел видеосъёмки лунной поверхности с телескопов, записи посадки Апполонов. Читал книги по лунной программе. Смотрел на Луну. Думал о ней. И начал записывать идеи в текстовый файлик, который редактировал в acme в ОС 9Front (форк Plan9).

Когда я читал книги по лунной программе, меня поразило одно из воспоминаний последнего астронавта на Луне. Что испытывает человек попавший в другой мир? Мир, который не видел ни один человек до тебя. А потом вернулся домой, чтобы остаться там навсегда. Как ты будешь существовать, пережив такой опыт? Зная, что самое значительное событие в твоей жизни навсегда осталось в прошлом.

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

# Сюжет

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

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

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

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

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

# ЗОК

Объявили ЗОК. Я не люблю писать игры на конкурсы и обычно не делаю этого. Но меня поразило совпадение: среди тем-якорей была "девушка в короне" и мне показалось это забавным. Вообще, начиная с этого момента игру начали сопровождать интересные совпадения. Например, совершенно случайно я назвал игру "Луна-9". Почему? Я изучал материалы по проекту лунной базы "Луна семь". https://spacelin.ru/luna-sem/prezentatsiya/ Учитывая время событий, я решил называть вахты по номерам: 7, 8, 9. По моим расчётам, экспедиция должна была стать 9-й вахтой. Поэтому "Луна-9". Но в этот период времени я увлёкся ОС Plan9! И в названии игры тоже была девятка! Потом, когда опубликовали игры конкурса, Луна-9 оказалась под номером... 9! После этого я просто решил расслабиться и ни чему не удивляться.

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

Начинал писать игру я на eee PC под управлением ОС Plan9, в консольной версии instead-метапарсера. Но потом перешёл на Linux-ноутбук помощнее. Правда, код игры всё-равно писался в acme из plan9ports. И это был интересный и полезный опыт, потому что я и сейчас пишу текст этой статьи в acme.

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

# Полёт

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

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

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

# Метаморфозы сюжета

Больше всего мне не давал покоя эпизод с ссорой. К чему он? Как пришло озарение я не помню. Но я вдруг осознал, что если это игра про сны, то герой должен встретиться не только с принцессой, но и с женой. Ситуация с сюжетом напомнила мне ещё одну игру -- "Проводник". "Проводник" начинался просто с ситуации и для меня самого раскрылся только к середине игры. Как это произошло -- я не знаю.

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

> Мк.5:8-9: Ибо Иисус сказал ему: выйди, дух нечистый, из сего человека. И спросил его: как тебе имя? И он сказал в ответ: легион имя мне, потому что нас много.

Чтобы показать тот факт, что герой сам создал принцессу и впустил её в своё сердце, появился постер.

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

По замыслу именно жена спасла героя. Помогла ему увидеть себя, увидеть "их" в своём сердце и сделать их существование невозможным. После этого, пройдя через метанойю, Лариса и Борис оказываются как бы в "раю". Этот "рай" их общий опыт. Он останется с ними навсегда и поможет им преодолеть кризис отношений. Цветочная поляна -- мой любимый момент в игре. Там описаны многие декорации, которые, вероятно пропускаются игроками. Но для меня эта сцена стала очень личной. Один из символов -- белый голубь. Аллюзия на Святого Духа. Чтобы подчеркнуть реальность сцены на поляне, она сопровождается единственной цветной картинкой из всей игры.

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

Очень помогли тестеры. Например, пропавшему болтику нашлось применение благодаря Олегу Бошу, а акцент в концовке был изменён благодаря Александру Никитину.

# Концовка

Было три варианта концовки. В первом варианте (он есть в истории git) после финального пробуждения героя, Александр отвечает на большинство вопросов прямым текстом. Концовка позитивна и не даёт большой свободы интерпретации. Меня эта концовка не удовлетворила.

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

Третий вариант отличается от второго тем, что из диалога Ларисы и Бориса мы узнаём, что они оба видели одинаковый сон. Именно этот вариант присутствует в релизе.

Кроме того, я планировал показывать разные концовки в зависимости от того, сможет ли игрок "помириться" с Ларисой. Но не стал этого делать. Игру вряд ли будут проходить дважды, концовка должна быть сильной не зависимо от прохождения.

# Музыка

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

# Тишина

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

# Руководство

Зато в этот раз я сделал к игре настоящее руководство в pdf. С хорошей вёрстко и иллюстрациями. Правда, его всё-равно никто не читает. :)

# Интерпретации

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

# Выводы

Их нет. Я просто сделал то, что сделал. Надеюсь, "Луна-9" найдёт свою аудиторию. А мне остаётся -- лишь ждать и надеятся, что игра написана не зря.
P.S. Edited: 2021-02-15 17:12:34

# Всё, что надо знать о текущем состоянии ядра Linux
linux.14
hugeping(ping,1) — All
2021-02-15 11:24:27


Из списка изменений 5.11

https://www.opennet.ru/opennews/art.shtml?num=54581

> Добавлен новый механизм перехвата системных вызовов, основанный на prctl() и позволяющий из пространства пользователя генерировать исключения при обращении к определённому системному вызову и эмулировать его выполнение. Указанная функциональность востребована в Wine и Proton для эмуляции системных вызовов Windows...

Ну, что сказать, Linux куплен с потрохами. Моя работа связана с ним, но любить эту систему мне всё сложнее...

# Бороздим интернет без браузера #2
std.hugeping
hugeping(ping,1) — All
2021-02-14 17:30:21


В прошлый раз я погорячился, когда сказал, что раздача контента по RSS -- редкость. Конечно, не редкость. Если посмотреть на исходный код главных страниц многих веб-ресурсов, то очень часто можно найти заветную ссылку с типом application/rss+xml. Я начал с простой утилиты на go, которая бы забирала rss ленту и выводила её в формате gemini разметки. Утилита rss2gmi лежит там же, где и остальные утилиты: https://github.com/gl00my/clearweb/tree/master/rss2gmi

Я испытал её на некоторых ресурсах и понял, что придётся усложнять. Например, некоторые сайты отдают ленту в которой в полях description находится html-разметка. Кроме того, вместо UTF-8 могут использоваться другие кодировки.

После небольших доработок я успешно испытал rss2gmi на:

* linux.org.ru - https://www.linux.org.ru/section-rss.jsp?section=1
* opennt.ru - https://www.opennet.ru/opennews/opennews_all_noadv.rss
* hype.retroscene.org - https://hype.retroscene.org/rss/index/
* форуме ifiction.ru - https://forum.ifiction.ru/extern.php?action=active&type=RSS
* interfax.ru - https://www.interfax.ru/rss.asp
* hugeping.tk - http://hugeping.tk/echo/all/rss


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

## Выпуск Wine 6.2, Wine staging 6.2 и Proton 5.13-6 [38]

Состоялся экспериментальный выпуск открытой реализации WinAPI - Wine 6.2. С момента выпуска версии 6.1 был закрыт 51 отчёт об ошибках и внесено 329 изменений.

=> https://www.opennet.ru/opennews/art.shtml?num=54570 [38]

Если новость меня интересует, я нажимаю на ссылке и открывается браузер. Удобно! И в большинстве случаев -- никакого браузера! И никакой читалки RSS на qt или gtk. А в Plan9 это вообще единственный возможный способ для меня.

Сегодня многие пользуются для почты веб интерфейсом gmail/mail.ru и другими. Но это, конечно, не наш путь. Несколько последних лет я использую gnus в emacs. Забор почты может осуществляться mpop/imapsync. При этом письма просто помещаются в каталог в формате Maildir. Отправка -- msmtp. Для поиска нужных сообщений я использую mu. Mu позволяет делать выборку нужных сообщений и показывать их прямо из Maildir. И конечно, с помощью mu можно автоматизировать показ нужных писем прямо в acme!

Например, мне нужно следить за рабочим багтрекером. Я нажимаю на "кнопку" bugs в acme и получаю список последних ошибок! В теле писем есть ссылки. Я могу нажать на нужную и перейти к нужному багу. Скрип выглядит просто:

mu find from:Mantis --fields "l" -s "d" | tail -n $num | while read f; do mu view --nocolor "$f";done

Твиттер и mastadon я читаю скриптами, которые вызывают bti и toot -- консольные клиенты твиттера и мастадона.

Поиск, новости, чтение почты и твиттера... И всё это не выходя из acme. Жизнь налаживается! Acme -- действительно мощный интерфейс, легко настраиваемый под собственные задачи. И он очень помогает в борьбе с shit-вебом.

# Re: Залечь на дно
std.hugeping
hugeping(ping,1) — vvs
2021-02-13 21:36:09


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

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

# Сергей Павлов
std.hugeping
hugeping(ping,1) — hugeping
2021-02-13 19:39:05


Чтобы не забыть: Прочитать "Лунная Радуга"

# Залечь на дно
std.hugeping
hugeping(ping,1) — All
2021-02-13 19:13:09


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

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

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

И мне нечего возразить ему, этому здравому смыслу. Творчество иррационально и убыточно.

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

В этот раз я решил ещё раз сбросить с себя ненужные мне сетевые связи. Покинул большинство чатов в Discord, Telegram. Ушёл из ФИДО. Закрыл проект "чат-метапарсер". Это были парсерные игры в виде чат-ботов для VK, Telegram, Discord. Кроме того, я не писал о своей игре на linux.org.ru, gamin.ru и dtf.ru... Но всё-равно, накрыло...

Сейчас мне кажется, что "Луна-9" моя последняя игра. Пора возвращаться в реальность. Убрать лишний мусор. Залечь на дно...

# Re: INSTEAD 3.3.3
std.club
hugeping(ping,1) — artur
2021-02-11 10:15:36


>>добавлен параметр темы scr.col.brd (цвет бордюра);
artur> Это, грубо говоря, рамочка вокруг картинок?
Это облась, которая возникает при масштабировании всей темы. Например, квадратная тема на широком мониторе. Справа и слева будут полосы. Теперь этот цвет можно задать.

# Вирт о простоте
std.hugeping
hugeping(ping,1) — hugeping
2021-02-11 08:14:41


http://oberon2005.oberoncore.ru/paper/fatprog.pdf

Просто, чтобы не потерять.

# INSTEAD 3.3.3
std.club
hugeping(ping,1) — All
2021-02-10 11:14:41


Выпустил INSTEAD 3.3.3.

Список изменений:

* добавлен параметр темы scr.col.brd (цвет бордюра);
* поддержка RTL (при сборке с _USE_HARFBUZZ и новым SDL_ttf);
* добавлен флаг instead.tiny в минимальной версии;
* готовность сборки с emscripten 2.0.12;
* gtk3 сборка включается по умолчанию;
* параметр сборки APPIMAGE;
* новая реализация анимированных gif (из движка удалён LGPL код);
* возможность сборки с lua5.4;
* исправления ошибок.

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

Творите с удовольствием. :)

# Re: Бороздим интернет без браузера
std.hugeping
hugeping(ping,1) — artur
2021-02-09 13:05:14


>>победить интернет
artur> Это современный жирный или вообще?=)

Это я скорее, как фигура речи. :)

# Бороздим интернет без браузера
std.hugeping
hugeping(ping,1) — All
2021-02-08 08:53:07


После погружения в gemini и создания своей "капсулы" в нём, мне стало интересно сделать какие-то свои сервисы. Сначала, я прикрутил прогноз погоды по данным METAR-станций. Потом -- добавил поиск по Библии. И тут я понял, что формат gemini просто идеален для использования его как простого интерфейса для личных сервисов!

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

В Plan9 нет (и не может быть) современного браузера. Почему его не может быть, хорошо описано здесь: https://habr.com/ru/post/541196/ Это сильно пересекается с моей заметкой о ненастоящей победе open source: ii://HZhphc84EsazyASVPck3 Поэтому, в Plan 9 я уже сталкивался с ситуациями, когда мне приходилось делать запросы к веб-ресурсам руками, чтобы авторизоваться, получить нужную информацию в удобном виде и т.д. Но каждый раз это была уникальная ситуация.

А что если совместить всё? Формат gemini -- как чистая выдача. Прямые запросы -- для получения той информации сети, которая нужна. Очищенная от тонн мусора. Оформление полученного инструмента как утилит командной строки, для применения их прямо в acme, а также в виде сервисов gemini! Это может быть интересно!

Есть ситуации, когда сайт предоставляет свой контент через rss. Здесь всё понятно. Но таких сайтов немного. Особенно тех, которые предоставляют в ленте статьи целиком. Есть ситуации, когда сайт отдаёт свои данные по общедоступному rest API. Но это тоже не является общей ситуацией и требует детального изучения этого API. Поэтому я начал с утилиты, которая бы делала GET запрос и вытаскивала из HTML только те узлы документа, которые мне нужны.

Написал, конечно же, на go: https://github.com/gl00my/clearweb/tree/master/htmlcut

Утилита крайне простая! Мы просто задаём тип элемента, одно из ключевых свойств и режим поиска: regexp/совпадение/нахождение подстроки. Если какой-то узел попал в выборку, то в неё же попадёт и все вложенные элементы. Не смотря на свою примитивность, оказалось, что таких функций достаточно. Добавив режим отрицания логики и запуская утилиту в UNIX-конвеерах я смог получать дистиллированный текст статей из: живого журнала, хабра, stackoverflow...

У нас есть текст статьи, но читать его с html тегами невозможно. На github я нашёл утилиту html2gmi и оказалось, что она отлично работает!

Я почистил её от лишних мне функций, и немного поменял для нужного мне поведения: https://github.com/gl00my/clearweb/tree/master/htmlgmi

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

curl -s "$1" | htmlcut -val '(post\_full|comment\_\_message|user\-info\_inline)' -regexp | htmlgmi -m -n

А вот фрагмент выдачи для статьи, которую я упоминал выше:

Увидев вот эту публикацию [8] про браузерные войны, я хотел было написать альтернативное наблюдение за тем, как мы докатились до такой жизни. Но Дрю ДеВолт уже всё сказал за меня.

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

С помощью wget я скачал все 1217 спецификаций W3C [9], опубликованных на текущий момент 1. Существенная часть из них должна быть реализована в браузере, чтобы современный веб работал. Я подсчитал объём этих спецификаций. Как думаете, насколько сложен современный веб?

=> https://habr.com/ru/post/541180/ [8]
=> https://www.w3.org/TR/ [9] спецификаций W3C

Не знаю как у вас, а у меня при просмотре статьи в таком формате радостно щемит сердце.

Результат меня вдохновил! Я понял, что могу читать интернет прямо в acme! Просто запуская нужные скрипты. Или написав прокси-скрипт, который сам анализирует ссылки и обрабатывает выдачу.

Но сначала нужно было решить проблему с поиском. Мне нужно было искать в acme! Ну, или из консоли.

В gemini на капсуле Толстоевского gemini://rawtext.club/~tolstoevsky/ я узнал о таком метапоисковике как searx, который использует в своей работе google, duckduckgo и так далее. При этом, он не собирает телеметрию. SearX показался мне очень удобным и для начала я просто прогнал его выдачу через свои утилиты:

curl -s -X POST -F 'q='"$q" -F 'category_general=1' -F 'pageno='"$page" https://search.fedi.life/search | htmlcut -val '(result.content|external.link|result.header)' -regexp | htmlgmi -l 0 -m -n

Результат понравился:
INSTEAD [1]
http://instead-hub.github.io
Instead | Definition of Instead by Merriam-Webster [2]

=> http://instead-hub.github.io [1].

Просто абзац текста, ссылка. Абзац текста, ссылка. Где то на этом моменте я начал плакать от умиления. Но парсинг HTML вывода это всё-таки грубо. Почитав про API SearX я узнал, что можно получать выдачу прямо в RSS! И написал ещё одну примитивную программу на go, которая делает всю работу:

https://github.com/gl00my/clearweb/tree/master/searx

Итак, мечта сбылась. Я могу искать в интернете откуда угодно. Из консоли. Из acme. На сервере gemini. И мне не нужен браузер!

Теперь не составило труда оформить поисковик в виде gemini сервиса. Что я и сделал. gemini://hugeping.tk/searx

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

Скрипт вывода статьи на stackoverflow получился таким:
curl -s "$1" | htmlcut -val '(js\-post\-body|answers\-subheader)' -regexp | htmlcut -val '(js\-filter)' -regexp -not | htmlgmi -l 0 -m -n

Узнавать нужные элементы вёрстки удобно в инспекторе Firefox.

Что дальше?

За бортом осталась OAuth авторизация. Она тоже может быть оформлена в виде небольших утилит, но пока я этим не занимался.

Главное открытие, которым я хотел поделиться в этой статье, состоит в том, что победить интернет можно и это не так сложно, как кажется на первый взгляд! Да, в выдаче большинства ресурсов находится 99% шлака, но вырезать %1 нужного контента -- посильная задача. И вдруг оказывается, что доступ к нужной информации в веб не обязательно предполагает запуск браузера и приём тонн мусора в свою голову. Эта мысль вдохновляет и поощряет на дальнейшие эксперименты.

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

P.S. Edited: 2021-02-09 06:27:39

# Re: Потерянный Internet
std.hugeping
hugeping(ping,1) — boscholeg
2021-02-05 19:07:35


Есть такой вот проект: https://flounder.online/
Это хостер gemini страничек для тех, кто не хочет/может поднимать свой сервер.
Странички смотрят в gemini:// и в web по https. Выглядят вполне симпатично:

Например: https://maple.flounder.online/

Так что, если кто хотел, но стеснялся, ленился или просто не мог -- можно создавать контент прямо сейчас. :)

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

# Re: Обновления ii-go (движка узла ping)
ping.local
hugeping(ping,1) — hugeping
2021-02-05 12:57:48


В ii-go влиты внутренние изменения. Пристально смотрим на стабильность работы. :)

1) ii-gemini для генерации блога gemini
2) ii-tool sort и дополнительные ключи выборки
3) внутренние изменения, которые должны улучшить скорость.

# Запуск нового экземпляра acme в plan9port
plan.9
hugeping(ping,1) — hugeping
2021-02-04 21:48:59


Если запустить acme из plan9port, а затем попробовать запустить его снова, то получим ошибку, вроде такой:

> 9pserve: announce unix!/tmp/ns.peter.:0/acme: Address already in use acme: can't post service: 9pserve failed

Поэтому, у меня есть простой скрипт, который запускает acme если он ещё не был запущен. А в последующие разы открывает файл через plumber в уже существующем экземпляре acme. Выглядит скрипт так:

#!/bin/sh
9

PAGER=nobs
MANPAGER=nobs

# Default font for Plan 9 programs.
font=/mnt/font/GoMono/14a/font

# Equivalent variables for rc(1).
home=$HOME
prompt="$ "

# if you want to use rc instead of your shell within acme, uncomment the following line
shell=rc

user=$USER

export \
    font\
    home\
    shell\
    prompt\
    user\
    PAGER\
    MANPAGER

if ! pidof plumber >/dev/null; then
	plumber
fi

if pidof acme >/dev/null; then
	plumb -d edit "$@"
else
	acme -f /mnt/font/Iosevka/14a/font "$@" &
fi

Но иногда хочется все-таки запустить ещё один (или не один) acme! Оказывается, это возможно!

#!/bin/sh
export NAMESPACE=`mktemp -d /tmp/acmeXXXX`

9

PAGER=nobs
MANPAGER=nobs

# Default font for Plan 9 programs.
font=/mnt/font/GoMono/14a/font

# Equivalent variables for rc(1).
home=$HOME
prompt="$ "

# if you want to use rc instead of your shell within acme, uncomment the following line
shell=rc

user=$USER

export \
    font\
    home\
    shell\
    prompt\
    user\
    PAGER\
    MANPAGER

plumber "$NAMESPACE"
acme -f /mnt/font/Iosevka/14a/font "$@"
for p in `pidof plumber`; do
	if cat /proc/$p/cmdline | grep -q "$NAMESPACE"; then
		kill $p
		break
	fi
done
rmdir $NAMESPACE

Скрипт запустит столько acme, сколько понадобится.

# Цензура на станции пинг
ping.local
hugeping(ping,1) — All
2021-02-03 13:24:00


Сегодня я заблеклистил одно сообщение. За всё время это 2-й или 3-й случай (не считая технических блокировок). Точно не помню.

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

Я могу заблеклистить сообщение в следующих случаях:

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

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

К сожалению, я несу ответственность за присутствие ресурса в сети.

Если вам необходим доступ к сообщениям без цензуры и вас не устраивает данная ситуация, используйте другие узлы.
P.S. Edited: 2021-02-03 13:26:42

# Re: Потерянный Internet
std.hugeping
hugeping(ping,1) — vvs
2021-02-02 16:24:34


vvs> А вот, кстати, в чем разница между публикацией в сети и в печати?
vvs> ... Такие площадки способствуют возникновению мотивов для вовлечения людей в потребительство и борьбу за власть, что не случайно, КМК.

Да, есть о чём подумать. :)

# Re: Интересные ресурсы
plan.9
hugeping(ping,1) — hugeping
2021-02-02 13:25:44


Описание rc на русском:

http://doc.cat-v.org/plan_9/translations/russian/papers/rc

# Re: Потерянный Internet
std.hugeping
hugeping(ping,1) — hugeping
2021-02-01 09:15:58


Пока я писал это сообщение, от техподдержки ЖЖ пришёл ответ.
В общем, кросспостинг возможен только с помощью "профессионального" пакета.

Прекрасная иллюстрация, правда? :)

# gemini:// как дополнение idec
idec.talks
hugeping(ping,1) — All
2021-02-01 08:54:10


Привет!

Погрузился тут в gemini и понял, что эта технология отлично дополняет idec.
А вы как думаете?

Написал пост на эту тему в ii://std.hugeping
ii://p1c3ltDDAoaFciX04W2I

Веб ссылка: http://hugeping.tk/p1c3ltDDAoaFciX04W2I/1

Суть технологии в двух словах.

* Как допиленный gopher;
* UTF-8;
* Есть куча серверов и браузеров.

# Потерянный Internet
std.hugeping
hugeping(ping,1) — All
2021-02-01 08:35:34


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

Начал смотреть другие площадки и понял, наконец, простую истину. Все они ориентированы на коммерцию. Например, трансляция сайта в Zen предполагает монетизацию с самого начала. Кроме того, на свой сайт ты должен поместить js код. Для трансляции RSS в Facebook тоже нужно что-то вроде "бизнес" аккаунта. Для твиттера нужен телефон и перевод аккаунта в новый статус. В общем, везде я натыкался на вот это вот: "продвижение", "бизнес аккаунт", "маркетинг". Потом вспомнил ситуацию с моими парсерными играми в VK, которые не были одобрены с формулировкой "не привлекательны для пользователей"...

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

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

Тогда я снова обратил внимание на #fideverse. И лично для себя пришёл к выводу, к которому прихожу каждый раз, когда возвращаюсь к этой теме. А слежу я за ней давно, ещё с появления Diaspora. В общем, главная ошибка fediverse-движения -- это попытка копировать современный Web2.0. Смысл понятен. Смотрите, у нас мастодон как твиттер, только лучше! Беда только в том, что "обычным" и "нормальным" людям уютно находиться в золотой клетке. Технические особенности их не волнуют. А законы распространения и поддержки контента -- одинаковы и в fideverse и в коммерческом вебе! Только в твиттере "всплывает" одно, а в мастодоне -- другое. А так, ну то же самое: мемасики, мат, политические лозунги, прочий флуд... Формат способствует. Ориентироваться надо не на "обывателя".

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

В общем, в качестве жеста отчаяния я снова спустился в "подполье" и поднял "капсулу" в gemini. Что такое gemini? https://gemini.circumlunar.space/

Кратко, это "исправленный" до необходимого минимума gopher. В частности, UTF-8, разметка в виде упрощённого markdown и поддержка tls (хотя, лично моё мнение, tls -- это уже лишнее). Для просмотра страничек есть свои браузеры и web-прокси. Есть поисковая система.

gemini появился не так давно, но стремительный рост числа клиентов и серверов вдохновляет! Клиенты есть и под Plan9.

В общем, такой экстремальный дауншифтинг в сеть, в которой есть только информация. И честно говоря, мне это нравится. Я бы сказал, что станция ping пытается следовать тем же ориентирам. IDEC и gemini прекрасно дополняют друг-друга! Я предлагаю вам посмотреть на gemeni самим. По крайней мере это любопытно. А любопытство, надеюсь, у нас ещё осталось. :)

До связи!

А ниже я написал немного информации для старта.

# Браузеры

* lagrange -- изумительной красоты браузер с фронтендом на SDL2. Сейчас пользуюсь именно им. https://github.com/skyjake/lagrange
* amfora -- консольный браузер. Неплохо выглядит, но lagrange -- красивее и удобнее.
* deedum -- для Android. https://play.google.com/store/apps/details?id=ca.snoe.deedum&hl=en&gl=US

# Серверы

Смотрел серверы на go. Их много. Я запомнил два.

* brown-molly -- похоже, "стандарт" сервера. https://tildegit.org/solderpunk/molly-brown
* net-gemini -- очень маленький, использую его со своими изменениями https://github.com/jackdoe/net-gemini

# Сертификаты

Сначала боялся, что придётся морочиться с letsencrypt. Но нет, gemini признаёт самоподписанные сертификаты. Поэтому, просто:

openssl req \
            -x509 \
            -out somesite.tk.cer \
            -keyout somesite.tk.key \
            -newkey rsa:2048 \
            -days 3650 \
            -nodes \
            -sha256 \
            -subj '/CN=somesite.tk' \
            -extensions EXT \
            -config <( printf "[dn]\nCN=somesite.tk\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:somesite.tk\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth" )
somesite.tk заменить на FQDN своего ресурса.

# Разметка

Подмножество маркдауна. Есть секции (#). Есть преформатированный текст (```). Есть список (*). Ссылки оформляются особым образом. По одной на каждой строке. Подробности: https://gemini.circumlunar.space/docs/specification.html

# Поднимаем статический сервер

Создаём каталог с файлами .gmi. Стартовый файл обычно называется index.gmi (может зависеть от сервера, но пока все серверы, что я смотрел, работали именно с index.gmi). Генерим ключ и сертификат и запускаем сервер. И это всё! Теперь свою "капсулу" стоит добавить в gemini://gus.guru

Вы можете раздавать картинки и другие файлы, просто создайте на них относительные ссылки в .gmi файле:

=> /images/cat.png Тут котик!

Картинки отлично смотрятся в браузере lagrange!

# Некоторые ресурсы

* gemini://gus.guru -- поисковик
* gemini://wp.glv.one -- Википедия (прокси?)
* gemini://hugeping.tk -- станция ping

P.S. Пока я писал это сообщение, от техподдержки ЖЖ пришёл ответ. В общем, кросспостинг возможен только с помощью "профессионального" пакета. Прекрасная иллюстрация, правда? :)

P.S. Edited: 2021-02-01 09:16:04

# Re: Трансляция моего блога в ЖЖ и в Telegram
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2021-02-01 06:49:39


AL> И правда. Lagrange просто ругается на сертификат, но ресурс открывает.

Сегодня сделал 2 сертификата, всё вроде заработало!

# Re: Трансляция моего блога в ЖЖ и в Telegram
std.hugeping
hugeping(ping,1) — boscholeg
2021-02-01 06:48:51


boscholeg> Спрашивается, кто дал право решать, что кому интересно, а что нет.

Ну в случае VK, понятно. Парсерные игры "не радуют". :) Сегодня текст -- это не круто. На самом деле, грустное явление.

boscholeg> Надо искать единомышленников и дербанить Яндекс петициями.

На Яндекс Zen я в итоге не сунулся даже. Так что и петиции писать нет смысла. :) Там просто ориентация на коммерцию сразу же.

boscholeg> Появляется идея некоей "неподконтрольной" общественной площадки. Но вот как её организовать?

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

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

Ну, как бы, и ладно. Не очень то и хотелось. У меня есть "станция ping", этого достаточно.

# Re: Трансляция моего блога в ЖЖ и в Telegram
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2021-02-01 04:53:36


hugeping>> Сделал трансляцию своего блога в gemini. gemini://hugeping.tk

AL> Не открывается. Только gemini://syscall.ru доступен :)

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

# Re: Трансляция моего блога в ЖЖ и в Telegram
std.hugeping
hugeping(ping,1) — hugeping
2021-01-31 18:26:19


Сделал трансляцию своего блога в gemini. gemini://hugeping.tk
Не спрашивайте меня, зачем. Не спрашивайте -- что это такое.

Это просто факт. :)

# Re: Переход с Atom на RSS
ping.local
hugeping(ping,1) — hugeping
2021-01-31 09:01:30


Теперь появился режим блога. В чём отличие этого режима?

- топики сортируются в порядке создания автором, а не последнего комментария;
- в виде ленты с небольшим фрагментом текста;

Сделал https://syscall.ru редиректом на мой блог.

# Re: Переход с Atom на RSS
ping.local
hugeping(ping,1) — hugeping
2021-01-30 21:38:52


Короче, ещё сильнее всё расколбасил. Надеюсь, ничего не сломал... :)

# Re: Трансляция моего блога в ЖЖ и в Telegram
std.hugeping
hugeping(ping,1) — hugeping
2021-01-30 11:06:07


В общем, свобода свободой, но всё довольно-таки грустно.

1. В своё время, приложение для VK с приложением для метапарсера не прошло модерацию в формулировке "не интересно".

2. Товарищи из ЖЖ молча удалили трансляцию моего блога. API я их не мучал, залил все статьи в первый день и 4 дня трансляций не было.

3. В Zen для импорта RSS с сайта нужно, чтобы у каждой статьи была картинка минимум 300px. Но, это ладно, можно сделать (и даже - сгенерировать из банка). Но главное, трансляция невозможна без:
- монетизации;
- вставки js кода;
- одобрения "интересности" контента (тут смотрим на пп.1)

Теперь мне понятно, почему из сети пропали интересные мне материалы. Единственное, что остаётся, существовать в подполье (или закрываться).

# Переход с Atom на RSS
ping.local
hugeping(ping,1) — hugeping
2021-01-30 10:05:18


В связи с проблемами в некоторых читалках, заменил трансляцию лент с Atom на RSS.

Также добавил недокументированную фичу - лента с новыми топиками. Например:

https://hugeping.tk/echo+topics/std.hugeping

Если что, сообщайте. :)

# Re: Трансляция моего блога в ЖЖ и в Telegram
std.hugeping
hugeping(ping,1) — hugeping
2021-01-29 21:15:48


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

# МЕТАПАРСЕР 1.10
std.club
hugeping(ping,1) — All
2021-01-29 10:38:28


Обновлён модуль МЕТАПАРСЕР3.

Новое:
* mp:pager_mode() experiment;
* for_plural is documented;
* #Drop splitted in #Drop and #Insert;
* use less memory while compiling dict;
* all mp.msg.* can be functions;
* home/end keys while edit line;
* bugfixes.

https://instead3.syscall.ru/page/metaparser/

# Re: Скриншот области экрана X11 в clipboard
linux.14
hugeping(ping,1) — hugeping
2021-01-29 10:37:35


На твоей ноде тоже порядок такой-же, кстати. Так что голословное утверждение пока про порядок =)

UAjWgtopKMN5TuE40eDh
WHBTaCadjSbLfTnPAAZE
uFmdn62wyvWPAiiPM8nI
S9NHawK5w1x7C4W1rQy2

# Re: Скриншот области экрана X11 в clipboard
linux.14
hugeping(ping,1) — Andrew Lobanov
2021-01-29 10:36:05


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

Можно поточнее?

Фрагмент: http://hugeping.tk/u/e/linux.14

UAjWgtopKMN5TuE40eDh <- вопрос
WHBTaCadjSbLfTnPAAZE
uFmdn62wyvWPAiiPM8nI
S9NHawK5w1x7C4W1rQy2 <- ответ

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

# Смысл в альтернативных оконных-менеджерах/средах
linux.14
hugeping(ping,1) — All
2021-01-28 13:49:24


Тут в ii://HqRzKpFeQ23uczZpw4Vq постепенно перешли к другой теме. Использование мейнстрим десктопов vs i3wm/cwm итд.

Сам я, в каком то смысле, всеяден. i3wm давно использую на работе. До этого перепробовал кучу разных оконных менеджеров: dwm, wmii, ion, stumpwm, musca, openbox, fluxbox, e17, fvwm и прочие и прочие. В 9front прекрасно чувствую себя в rio. Дома до последнего времни в основном использовал gnome3. Так как он мне нравится внешне из коробки.

Но у меня у ноута слабо держит батарея. Поэтому, ради интереса, попробовал cwm и ... о чудо! Батарейка стала чувствовать себя гораздо уверенней! В качестве браузера стал реже запускать firefox, больше netfront. Стало ещё лучше. :)

Так что минимализм, кроме эстетического удовольствия, может приносить и вполне конкретные практические плоды. :)

P.S. Из gnome софта в основном использовал evince и eog. Но им легко находится замена.

# Re: Скриншот области экрана X11 в clipboard
linux.14
hugeping(ping,1) — vvs
2021-01-26 15:02:33


vvs> xclip, конечно, полезная вещь, но у него есть недостаток: невозможно скопировать несколько типов данных одновременно, например html и txt для обработки разными приложениями.

А какими средствами ты пользуешься?

# Скриншот области экрана X11 в clipboard
linux.14
hugeping(ping,1) — All
2021-01-26 13:27:43


В gnome3 часто пользовался gnome-screenshot и делал скриншоты области экрана в телеграм через клипбоард.

Оказалось, что то же самое легко сделать и без gnome-screenshot:

import png:- | xclip -selection clipboard -t image/png

# Re: scene_use в stead3
std.prog
hugeping(ping,1) — Dima
2021-01-25 09:28:11


Dima> Вопрос: как реализовать данный метод в стед3 через классы. Например: в сцене есть свободный конец веревки и я хочу привязать его к другому объекту сцены или инвентаря, при этом не добавляя конец веревки в инвентарь.

В stead3 данный метод (use предмета сцены на предмет сцены) был признан ошибочным и упразднён.

Так что, предполагается, что конец верёвки таки добавится в инвентарь (или просто верёвка), а при выходе из сцены писать что-то вроде: ты бросил верёвку.

Если очень хочется, можно пытаться сделать что-то своё (например, меняя форму курсора как сделано в модуле use: https://github.com/instead-hub/stead3-modules/tree/master/use ), но штатного механизма - нет.

# Re: Трансляция моего блога в ЖЖ и в Telegram
std.hugeping
hugeping(ping,1) — boscholeg
2021-01-25 07:36:17


boscholeg> Тогда надо еще добавить трансляцию сообщений в ютуб. Там есть сообщество и можно постить сообщения. Этим сейчас активно пользуются.

Да цели особенной нет. Просто решил почитать ЖЖ в его текущем виде, сделал аккаунт. Потом понял, что могу запостить туда сообщения с ноды. И понеслась. :)

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

# Трансляция моего блога в ЖЖ и в Telegram
std.hugeping
hugeping(ping,1) — All
2021-01-24 14:15:52


Привет всем, кто на связи!

Теперь, содержимое моего блога транслируется в ЖЖ: https://hugeping.livejournal.com и в телеграм канал: https://t.me/pingblog

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

Stay tuned! :)

# Re: Анонимность и искренность
std.hugeping
hugeping(ping,1) — boscholeg
2021-01-22 11:47:55


boscholeg> Я конечно уже не боюсь сказать, что думаю.

А я вот наоборот, чем дальше, тем сдержанней. :) Хотя потребность иногда ощущается.

# Re: Анонимность и искренность
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2021-01-21 16:33:41


AL> Но это моё личное мнение и я не хочу затевать спор на эту тему. По старому интернету я всё равно тоже немного скучаю.

Я когда писал заметку, всё думал про Фидо написать, но так и не написал.

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

Наверное, всё-таки, формат блога, это другое.

# Re: Анонимность и искренность
std.hugeping
hugeping(ping,1) — vvs
2021-01-20 13:54:09


vvs> если хотите резко изменить свою жизнь - посностью поменяйте круг общения.

Совет звучит как что-то простое, но ведь в реальной жизни это практически невозможно?

# Редактор ACME
plan.9
hugeping(ping,1) — All
2021-01-20 12:17:21


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

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

Итак, в чём идея acme? Идея acme состоит в том, чтобы дать прослойку между ОС и человеком в виде TUI. И это всё.

1) Acme - это просто столбцы, в которых могут создаваться "окна", отображающие текст. Просто текст, поток текста. Без цвета, стилей, номеров строк... Лишь текст.

2) Над окнами есть области, в которых тоже может быть текст, которые играют роль меню.

3) Меню и окнами можно управлять с помощью записи в специальные файлы. С помощью чтения, можно получать события и информацию о текущем содержимом окон и меню.

4) Вы можете "выполнять" команды системы прямо из текста и/или меню. Например, вызывать спеллчекер, форматирование кода, увеличение отступа -- всё это должно быть Unix командами, которые будут выполняться для всего текста или выделенной его части. Текст приходит через stdin и выходит через stdout. Текст может быть внедрён в редактируемый текст или отображаться в отдельном окне (например, ошибки компилятора). Скрипт может понимать, что он запущен из среды acme и управлять редактором через файловую систему!

5) Можно открывать и просматривать файлы/каталоги, переходить на нужные строки, делать поиск в тексте. Всё это делается "выполнением" текста. Есть базовая возможность делать обработку текста на языке, который похож на sed. (Встроенная команда Edit).

При такой простой идее получается, что acme это не просто редактор, а интерфейс к ОС! Настоящий Unix подход, у которого есть неоспоримое преимущество -- простота и низкий порог вхождения! Никаких сочетаний клавиш, всё интуитивно понятно и естественно. Как только привыкаешь к этому, чувствуешь как твоя голова отдыхает!

Не смотря на простоту, acme оказывается мощным. В том числе благодаря возможности работать с ним, как с файловой системой. Так как мы можем ловить события редактора и управлять им, то, к примеру, для acme есть почтовый клиент Mail, который выглядит так же, как и всё остальное -- просто текст с активными элементами. Можно запустить win -- "терминал" и выполнять в нём команды. acme умеет дампить и восстанавливать своё состояние. Сразу оговорюсь, до мощи Emacs acme далеко. Хотя бы потому, что в acme окнах возможно отображать только текст. Но учитывая его простоту, мощности на строку кода у acme больше!

Когда я использовал acme для написания игры, то выглядело это примерно так:

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

2) Правый столбец содержал окна: вывод спеллчекера, файл с автокомандами.

Интересно то, что со временем строка меню обросла теми командами, которые я использовал больше всего именно при работе над игрой. Там были фрагменты строк для поиска, какие-то выбранные места кода, запуск форматирования кода и прочее. Таким образом, acme подстраивался под конкретную задачу. Это было удобно и сам факт показался мне интересным.

В общем, acme -- отличный пример удачного применения KISS подхода. Теперь, кроме emacs в Linux я также использую и acme и этот опыт мне нравится. Переходя с emacs на acme, отчётливо чувствуешь разницу подходов и то, как освобождаются ресурсы в твоей голове, когда можно забыть, хотя бы на время, все эти клавиатурные комбинации. :)

# Анонимность и искренность
std.hugeping
hugeping(ping,1) — All
2021-01-20 10:39:36


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

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

Потом посмотрел на IDEC, подумал, что давно не писал никаких заметок и тут... вдруг почувствовал один интересный момент.

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

Сейчас, как только я собираюсь что-то написать включается внутренний фильтр, который настроен на мою роль. Фильтр не пускает на выхлоп какие-то личные мысли. О вере, о любви, о жизненном опыте. Всё это рубится на корню. Но в ЖЖ я писал именно об этом.

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

Например, если я собираюсь написать пост о Христе, внутренний цензор говорит мне, что-то вроде: Ну сейчас опять атеисты/агностики придут и будут спорить, а мне придётся быть корректным. Не стоит. А может быть, я напишу что-то неканонично? Тоже не годится! Я же православный! Думаю написать о каких-то переломных мировоззренческих моментах. Например о том, что внутренне "Я" нифига не стареет. И в 42 ты такой-же 10-летний мальчишка. Это могут найти знакомые/родственники/работодатели. Что подумают? Ну и понеслось. Даже сейчас мне захотелось отредактировать последний абзац, но не в этот раз. :)

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

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

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



# Re: Установка INSTEAD-EM и INSTEAD-JS на vps
std.tech
hugeping(ping,1) — lnp3
2020-12-18 18:18:15


lnp3> Сначала решил делать стандартно, а теперь хочется переделать на парсер. Мне кажется, так интереснее, но времени переделка может отнять много. Думаю.

Я бы не стал переделывать, если часть кода уже написана.

На самом деле, парсер ещё сузит аудиторию.

P.S. Графика -- это круто!

# Re: Установка INSTEAD-EM и INSTEAD-JS на vps
std.tech
hugeping(ping,1) — lnp3
2020-12-17 16:22:14


В дистрибутиве INSTEAD-EM есть файл README. Прямо внутри zip архива.
Если что-то непонятно в этом README, можно спросить здесь, но уже конкретней.

По instead-js не смогу проконсультировать. Проще всего спросить на телеграм каналах @insteadtalk или @insteadchat у автора (@technix),

# Бывают крылья у художников
std.hugeping
hugeping(ping,1) — hugeping
2020-12-12 16:49:57


Только что услышал на канале "Культура".
Передача "Линия жизни. Евгений Стеблов" от 12.10.2020

Бывают крылья у художников,
Портных и железнодорожников,
Но лишь художники открыли,
Как прорастают эти крылья. А прорастают они так,
Из ничего, из ниоткуда.
Нет объяснения у чуда,
И я на это не мастак.

Геннадий Шпаликов

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — vvs
2020-12-07 16:47:35


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

Можно ли сказать, что какие-то числа объективно большие, а какие-то -- не очень большие?

На первый взгляд, нельзя. Ведь всегда можно выбрать число больше. И вообще, 10 это много или мало? Относительно 1 -- много! Но мне кажется, что есть всё-таки какая-то мера сложности, которая должна оцениваться относительно меры сложности человека и мира, в котором он живёт.

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

Были 8битные процессоры. Объективно -- не хватало. Потом 16, лучше, но не всегда хватало. 32 бита! Вообще отлично! На самом деле 32 бит для большинства задач хватало, а то что больше - ну писали библиотеки. Но вот адресное пространство 32 бит, как-то не очень... 64 бита. Нужно ли 128бит? 256? 512? (Я не про векторные инструкции и не про специализированные аккселераторы крипты, к примеру, а именно про регистры общего назначения).

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

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

Та же скорость света - как предел распространения сигнала.

Так что мне кажется, что тут можно говорить об антропном принципе в оценке сложности. :)

Насчёт Singularity возникли мысли, но уже не буду писать, а то много текста. :)

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — vvs
2020-12-07 15:54:52


vvs> Другой пример. Одна ОС реализует аппаратную защиту памяти, а другая полагается для этого на компилятор, как Singularity.

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

Про Singularity я, к сожалению, ничего не знаю. Очевидно, в этой ОС проблема выполнения недоверенного (нативного) кода как-то решается. Или там вообще нет такого понятия и всё проходит через их язык. Но, тоже решение. Может быть, и нормально. Хоть и не традиционно.

Так же, есть вещи, которые изменить нельзя. Например, сложная система команд целевого процессора. Ну, взять тот же vliw.

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

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — vvs
2020-12-07 15:44:15


Да нет, видно там всё по коду.

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

P.S. Я не спорю. Просто делюсь своими наблюдениями. Ты можешь считать их ошибочными, я не против.

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — vvs
2020-12-07 14:26:00


vvs> Комплексность сложно оценить, в отличие от размера. Я вот понятия не имею, что сложнее устроено: солнечная система или электрон?

Ну мы же говорили о том, что человек создал. Скажем, сравнительно оценить сложность: ядра Linux, OpenBSD, FreeBSD, HaikuOS и Plan9 вполне себе сравнивается. :)

vvs> Я там вижу две составляющие: логика и эстетика. Опять же, первую оценить относительно просто, в отличие от второй.

Оценить - несложно. Формально доказать - сложно. Но у кого стоит такая цель? У меня - нет такой. :)

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2020-12-07 09:11:59


AL> Да. Эти компиляторы очень сложные с инженерной точки зрения. И как и везде это имеет две стороны: они позволяют достаточно простые вещи, но они достаточно сложны.

Сложность это не просто размер кода, это _комплексность_. Например, сложность ядра Linux высока не столько из-за размера, сколько из-за сложного взаимодействия компонентов. Так что компилятор компилятору -- рознь.

Я не специалист в ФП, но мне кажется идеи, которые реализует тот же Haskell сами по себе просты. Но, не буду лезть в область, в которой я нуб.

В качестве элегантных (и при этом мощных) вещей можно привести: Форт, Лисп.

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — vvs
2020-12-06 19:11:01


Я тоже немного запутаю.

Когда говорили про Plan9, true-grue прислал мне один свой комментарий, который, на мой взгляд, в тему разговора. Особенно там, где про чувства к инструменту.

http://fforum.winglion.ru/viewtopic.php?p=40887&sid=b952e062260f48b8f6b6b45f8e76b3d0#p40887


Далее цитата.

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

# Re: KolibriOS
idec.talks
hugeping(ping,1) — leency
2020-12-06 11:02:03


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

Интересное совпадение. У меня работала и на eeepc и на thinkpad и на настольном PC...

# Парадокс друга Вигнера
std.hugeping
hugeping(ping,1) — vvs
2020-12-05 21:31:00


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

https://naked-science.ru/article/physics/kvantovaya-fizika-dokazala-chto-obektivnoj-realnosti-ne-sushhestvuet

Забавно, что в 2009-м, когда я писал игру "Возвращение квантового кота" я думал использовать этот парадокс для спасения кота. Но решил, что слишком сложно и не правдоподобно. :)

# Эха plan.9
idec.talks
hugeping(ping,1) — All
2020-12-05 20:08:48


Создал новую эху, посвящённую Plan 9.

Не знаю, будет ли жить, но пока так. Раздаётся пока с http://hugeping.tk.

# Интересные ресурсы
plan.9
hugeping(ping,1) — All
2020-12-05 20:06:33


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

Документация по Plan 9 -- http://doc.cat-v.org/plan_9/

9front -- форк Plan 9 для современного железа -- http://9front.org/

9fans discord -- https://discord.gg/eu8VBUs

Русскоязычная телеграм группа -- https://t.me/ru_plan9

Plan 9 как десктоп -- https://pspodcasting.net/dan/blog/2019/plan9_desktop.html

Интересные заметки по 9front, например есть "рецепт" установки без fsworm партиции. -- http://docs.a-b.xyz/sitemap.html

Музыкальный плеер Zuke -- https://sr.ht/~ft/zuke/

Видео-плеер treason: https://sr.ht/~ft/treason/

Мои патчи/хаки на 9front. Переключение раскладки с клавиатуры, драйверы для eeepc -- https://github.com/gl00my/plan9hacks

# Эха по Plan 9
plan.9
hugeping(ping,1) — All
2020-12-05 19:52:27


Долго думал, создавать ли эху. Просто потому, что есть риск того, что она никогда не наполнится.

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

Если что, грохнуть всегда можно потом.

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — vvs
2020-12-05 18:09:36


vvs> Это просто? Вроде да. Но это только синтаксический сахар.

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

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — hugeping
2020-12-05 17:53:51


Я тут подумал, что есть ещё одна аналогия.

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

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

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

# Re: KolibriOS
idec.talks
hugeping(ping,1) — leency
2020-12-05 17:38:15


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

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — vvs
2020-12-05 17:36:11


vvs> Тут чувствуется одно противоречие. Программист - он еще и пользователь, зачастую очень ленивый.

А в чём противоречие? Во первых, не все эти программисты пробовали разные подходы. Почему не пробовали, это отдельный вопрос. Во-вторых, очень многое решает привычка. Мне лично очень нравится ломать свои привычки. Изучать новое. Поэтому я перепробовал много ОС и много разных подходов. Лично мой опыт -- большинство прибамбасов это просто свистелки, навязанные маркетингом. Я совершенно спокойно программирую без автодополнения кода. Если оно есть - могу с ним. Я не вижу вообще, что это как то критично.

Правда, мне очень тяжело разбираться в сложных интерфейсах. Например, в X Code я так и не освоился, мне проще было бы собирать самому вызывая компилятор с нужными опциями. Потому что это понятно и просто.

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

vvs> Лично мне больше нравится, когда решение моей задачи я доверяю компилятору.

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

# Re: Эффективность против простоты
std.hugeping
hugeping(ping,1) — vvs
2020-12-05 17:05:02


Сложное, это не просто сумма простых частей. А простое, это не значит низкоуровневое.

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

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

Например, я не готов набирать тексты в редакторе ed, хотя он ещё проще. :) Но я спокойно могу пожертвовать подсветкой синтаксиса. Или современным вебом.

Ещё пример. Средство синхронизации rcu в ядре. Какой прирост они обеспечивают? Стоит ли жертвовать скоростью ради более простого кода? Это выбор, который определяется задачей.

А ещё, кроме простоты есть эффективность решений. Красивое решение, это максимум простоты при максимуме эффективности.

Формула: красота = эффективность/сложность.

Например, ACME редактор прост, но для своей простоты он удивительно эффективен. emacs - может больше. Но сложность emacs несоизмеримо больше.

Ещё пример. latex vs troff. Разница - огромна. Функции -- близки.

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

# Re: Пишу ноду ii/idec на go
idec.talks
hugeping(ping,1) — btimofeev
2020-12-05 07:54:26


AL>> Да. RSS нынче не в почёте.

btimofeev> Видимо RSS заменили всплывающие уведомления от сайтов в браузере. Кто-нибудь использовал такое?

Принципиально не использую. Раньше когда-то случайно где-то нажал и сильно задалбывало.

# Re: Идеализм, материализм, мировоззренческие вопросы [обсуждение]
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2020-12-04 10:52:24


AL> Про Копенгагенскую интерпретацию читал, но надо освежить в памяти, потому что всё забыл уже. А вот про эксперимент Аспекта надо почитать так как впервые встретил упоминание только в этой беседе. За что и люблю подобные беседы с твоим участием, так это за то, что неизменно находится нечто новое почитать :)

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

В книге эксперимент описан образно и "на пальцах", в википедии -- надо вникать больше.

# Re: Идеализм, материализм, мировоззренческие вопросы [обсуждение]
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2020-12-04 09:10:30


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

Ок, в таком ключе мне добавить нечего. Могу только ещё раз сказать, что мне понятно то, о чём он говорит. Можно записать и меня к людям, неумеющим в логику, я не против. Луче я буду с Крапивиным.

AL> Я не знаю что считается личным чудом. Моё чудо в том, что я выжил в 16 лет. Вероятность такого была очень мала. Но всё таки она была. Считается ли это чудом?

На этот вопрос, как ты и сам понимаешь, ответить можешь только ты сам. Ты намекаешь на то, что это не чудо, наверное? Ну, ты выбрал систему координат в которой им нет места.

AL> Мне интересно ищет ли кто-либо намёки, кто не подвержен экзистенциальному кризису :)

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

AL> Вопрос в том есть ли выбор как явление. То есть наличие свободы воли не доказано. Хотя, если были какие-либо исследования и есть что почитать, хотя бы препринты, то было бы классно :)

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

Но я по прежнему считаю, что в твоём случае первичней выбор. Тебя устраивает отсутствие свободы воли.

AL> Как вера в отсутствие творца взаимосвязана с верой в непознаваемость вселенной? Я что-то запутался.

Я писал об этом тут ii://CVvGRZBv7ZzMIm0TFWeY подробнее вряд-ли смогу развернуть.

# Re: Идеализм, материализм, мировоззренческие вопросы [обсуждение]
std.hugeping
hugeping(ping,1) — vvs
2020-12-03 17:29:09


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

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

# Re: Идеализм, материализм, мировоззренческие вопросы [обсуждение]
std.hugeping
hugeping(ping,1) — vvs
2020-12-03 16:48:15


vvs> Ну, не знаю насколько это удачный пример. Причинно-следственная связь - это все-таки достаточно неочевидная вещь, согласно ТО. Она зависит от системы отсчета и скорости света.

Я про мышление говорил. ТО, всё-таки, не про законы мышления и в нашем непосредственном опыте не открывается. Мы же не умеем думать сразу с разным направлением времени, или там с нарушением причинности. (Хотя, может быть интуиция - это оно?)

Я думаю, что сама логика (и математика), даже вот твой пример: ¬(a∧¬a), уже содержат и время, и причину и следствие. Вся эта логика - разворачивается во времени и причинна по сути. Ну а как иначе? Мы так думаем, таков наш инструмент. Для любого епсилон > 0 существует такая ... и погнали. Тут тебе и существует, и одновременность и следствие.

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

# Re: Идеализм, материализм, мировоззренческие вопросы [обсуждение]
std.hugeping
hugeping(ping,1) — vvs
2020-12-03 13:48:07


vvs> Нет - это о логике и математике. Аксиомы и правила вывода - основа формальной системы. А верим мы в них, поскольку принимаем как данность, выбор которой основан на эмпирическом опыте.

Ну да. Другими словами, таков механизм нашего мышления. Причина, следствие. Время. Потому-то и выносит мозг та же квантовая механика.

# Re: Идеализм, материализм, мировоззренческие вопросы [обсуждение]
std.hugeping
hugeping(ping,1) — vvs
2020-12-03 13:33:42


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

Это не так просто сделать. Так что оставлю как есть.

vvs> А корявые рассуждения кого хочешь оттолкнут.

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

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

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

vvs> Вера - это неотъемлемая сущность человеческого сознания. Любое доказательство на ней же основано, только по строгим правилам, а не субъективно.

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

vvs> непознаваемое в виде того же Творца или совершенно иного мира. Просто изнутри системы мы не можем даже зафиксировать их.

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

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

Я по прежнему считаю, что первичней, всё-таки, выбор. Знания и логика - не мешают. Они всегда помогают, но помогают в том пути, что ты внутренне выбрал. Даже не выбирая его внешне, думаю, он состоялся.

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

Мне кажется, что атеисту эта мысль должна казаться очень естественной. И в таком случае, сама познаваемость мира, тоже хитрая штука. :)

# Re: Интересная беседа с Владиславом Крапивиным
std.hugeping
hugeping(ping,1) — Andrew Lobanov
2020-12-03 12:32:45


Если что, продолжать лучше здесь: ii://8ggsyyMFCBULz2Ay22W4

# Идеализм, материализм, мировоззренческие вопросы [обсуждение]
std.hugeping
hugeping(ping,1) — All
2020-12-03 12:31:39


Вытащил сюда часть диалога:

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

На самом деле, большой простор для рассуждений да.

1) Есть вот фигуры геометрические. Я могу представить любую фигуру. И в каком-то смысле (рассуждая как идеалист), любая фигура существует, даже если не воплощена. Она представима, она может быть построена, нарисована, смоделирована. И мой мозг устроен так, что сродственен этой сущности настолько, что способен осознавать её. Можно, конечно, перефразировать. Сказать, что существует геометрия вообще. Что человек её неизбежно нашёл. Не создал! Нашёл. А что есть геометрия?

2) Вопрос квалиа. Что есть цвет? Длина волны? А почему субъективный опыт отбрасывается? Ведь механизм его существования явно вплетён в архитектуру мироздания? См "трудная проблема сознания".

3) Есть Вселенная и Земля, на ней возможно существование жизни. Можно сказать, что человек существует даже тогда, когда его на Земле ещё не было. Потому что идеалист считает, что есть более фундаментальная реальность, которая не является хаосом. Мир таков, что в нём возможен человек. Для идеалиста, человек существует архитектурно как часть всего "проекта".

4) Существует ли формула? Тоже интересный вопрос. Особенно те, в которых хорошо отражаются наблюдаемые "законы". А что такое законы? :) Снова - взаимодействие.

5) Как воспринимать вероятность единичного события? Есть разные трактовки, интересные.

6) Недавно только узнал про эксперимент Аспекта. Оказывается, Копенгагенская интерпретация, можно сказать, подтверждена экспериментально. Это для меня удивительно, и снова пограничные вопросы о "реальности".

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

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

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

P.S.
Я в детстве тоже говорил бабушке, что в космосе не нашли Бога. А потом, вот как всё получилось.

P.P.S.
Вообще, я за диалог, но только если он не выходит за рамки вежливости.

P.S. Edited: 2020-12-03 12:56:10

# Re: Интересная беседа с Владиславом Крапивиным
std.hugeping
hugeping(ping,1) — vvs
2020-12-03 11:39:42


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

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

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

Это не физика, конечно, и не математика. Но и люди как бы не только математика.

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

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

О чём-то похожем я писал здесь: ii://CVvGRZBv7ZzMIm0TFWeY

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

# Интересная беседа с Владиславом Крапивиным
std.hugeping
hugeping(ping,1) — hugeping
2020-12-03 09:32:02


Прочитал с огромным интересом.

https://www.pravmir.ru/doroga-negasnushhey-nadezhdyi-pisatel-vladislav-krapivin-i-svyashhennik-dimitriy-struev/


> – А в чем тут метод от противного?

> – Ну вот, допустим, я атеист. Я считаю, что Творца нет, не было, нет, и все это выдумано, тогда ОТКУДА все взялось, и как объясняется существование всего? Потому что, чтобы что-то существовало, оно, помимо всего прочего, должно еще кем-то восприниматься. Если мир никто не воспринимает, никто его не видит, не чувствует, не ощущает, он – что есть, что нет. Его нет практически. Чтобы он возник, его должен кто-то придумать, кто-то должен его воспринимать, а кто, кроме Творца, изначально сможет это сделать?

# Каминг-аут: встречайте нового хейтера systemd
linux.14
hugeping(ping,1) — All
2020-12-02 07:20:02


Привет!

До последнего относился к деятельности Поттеринга с пониманием. Прогресс дело такое. Linux давно уже сложная система, systemd неизбежен -- думал я.

Пока не коснулось моей работы. Несколько лет у нас периодически падала сборка, в момент работы fakeroot. Отлаживали faked, пытались разнести во времени сборки -- результата не было. Наконец, когда за одну ночь сборка упала 5 раз я не выдержал и попытался в очередной раз найти причину.

Помог гугл. Оказалось, что systemd стирает объекты IPC при log-out пользователя из системы. А на систему сборки периодически ломились наши боты, проверяя статус сборки итд.

В общем, RemoveIPC=no в /etc/systemd/logind.conf помог. По крайней мере, три дня уже всё чисто.

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

Как вообще могло придти в голову стирать что-то там при logout? Удивительно, что /tmp не затирается...

В общем, признаюсь себе честно -- Linux больше не система моей мечты. Я разочарован и удручён. Похоже, Plan9 и BSD системы -- это мой удел на старости лет. Linux -- система для выполнения утилитарных вещей и это моя работа. Но сказать, что мне нравится выбранный курс развития -- категорически не могу. Linux стал слишком "взрослым". Sad but true...

# Re: Старый рок (группа Ренессанс)
music.14
hugeping(ping,1) — hugeping
2020-11-28 10:11:41


hugeping> https://www.youtube.com/watch?v=CIEqdXpG5Pg (Innocense)
hugeping> https://www.youtube.com/watch?v=CIEqdXpG5Pg (Sounds Of The Sea)

Упс, промахнулся:
https://www.youtube.com/watch?v=2ZhYx_RMf_A (Innocense)
https://www.youtube.com/watch?v=-yki_mJnzBM (Sounds Of The Sea)

# Re: Старый рок (группа Ренессанс)
music.14
hugeping(ping,1) — Andrew Lobanov
2020-11-28 10:06:20


Я тут тоже постепенно открываю себе артрок.

Я тут уже писал о том, что очень понравился Procol Harum, но на днях нашёл ещё
Renaissance. Вещи есть разные, самая, наверное, известная это: https://www.youtube.com/watch?v=CIEqdXpG5Pg (Northen Lights)

https://www.youtube.com/watch?v=CIEqdXpG5Pg (Innocense)

https://www.youtube.com/watch?v=CIEqdXpG5Pg (Sounds Of The Sea)

Альбомы у них довольно разные, нужно прислушиваться. :)

# О творчестве (цитаты)
std.favorites
hugeping(ping,1) — hugeping
2020-11-26 16:38:40

# Re: О творчестве (цитаты)
std.hugeping
hugeping(ping,1) — hugeping
2020-11-26 16:30:31


Только что по ТВ посмотрел: "Книги моей судьбы" 4-часть.

https://tvkultura.ru/video/show/brand_id/59926/episode_id/1246261/video_id/1413171/

Начиная с 10:30

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

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
hugeping(ping,1) — vvs
2020-11-24 18:00:56


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

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

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
hugeping(ping,1) — vvs
2020-11-24 06:52:14


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

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
hugeping(ping,1) — vvs
2020-11-24 06:45:05


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

Нужно искать компромисс. На самом деле, делать игры с ссылками, которые выделены в тексте цветом, мне не хочется. Остаются:
- парсер;
- невидимые ссылки (как в Вахте);
- xrefs;
- не писать уже. ;)

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

# Официальный и неофициальный чаты INSTEAD
std.club
hugeping(ping,1) — All
2020-11-22 20:11:06


Неофициальный Telegram чат INSTEAD https://t.me/insteadtalk стал большим и флеймообразующим. Новичкам там часто становится страшно и неуютно. Поэтому я создал модерируемый официальный чат.

https://t.me/insteadchat

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

# Модуль extlibs: частичка метапарсера для классики
std.club
hugeping(ping,1) — All
2020-11-22 08:54:37


Привет!

Давно уже хотел портировать часть функций метапарсера в классику. Сегодня я это сделал: https://github.com/instead-hub/stead3-modules/tree/master/extlib

Что есть? Словарь. Таким образом, можно делать стандартные реакции в зависимости от типа объекта. На данный момент поддерживаются:

- генерация описаний предметов, если у них не задан dsc (или dsc вернул false);
- supporter;
- container;
- transparent;
- concealed;
- openable;
- switchable;
- item (вещь можно брать и класть);
- дополнительные обработчики у obj: onact, onuse, oninv - которые вызываются перед стандартными.

Демонстрация:

loadmod 'extlib-ru'

obj {
	-"винтовка";
	nam = "винтовка";
	onuse = function(s, w)
		if w ^ 'ваза' then
			p [[Бах!]];
			remove(w)
			return
		end
		return false
	end;
}:attr 'item'

obj {
	-"телевизор";
	nam = "телевизор";
}:attr 'switchable';

obj {
	-"стол";
	nam = "стол";
}:attr 'supporter': with { 'винтовка', 'ваза', 'коробка', 'телевизор' }

obj {
	-"коробка";
	nam = "коробка";
}:attr 'openable,container';

obj {
	-"ваза";
	nam = "ваза";
}:attr 'container,item':with 'цветок'

obj {
	-"цветок";
	nam = "цветок";
}:attr 'item';

room {
	nam = 'main';
	title = "extlib demo";
	obj = { 'стол' };
}

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

--"видеть"
ex.msg.EXAM = "{#Me} не {#word/видеть,#me,нст} {#vo/{#first/пр}} ничего необычного.";

В общем, как и всегда, надеюсь, что это кому-то понадобится на практике.

P.S. Конечно, модуль будет дорабатываться. Stay tuned!

extlib.png

# Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
hugeping(ping,1) — All
2020-11-21 15:28:26


Играясь с INSTEAD на Plan9, я поймал себя на мысли, что играбельность простых игр в tiny-instead даже выше, чем в обычном настольном INSTEAD. И даже CYOA игры выглядят не так ужасно. Почему?

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

- Сначала обращаю внимание на ссылки;
- Читаю текст фрагментарно и часто непоследовательно;
- Стараюсь нажать на эти ссылки раньше времени.

Поэтому то меня и тянет парсер, где текст -- это просто текст.

Так вот, в tiny-instead текст тоже выглядит текстом, а управление игрой осуществляется через ввод цифр: http://hugeping.tk/lib/uploads/9front-instead-cat.png

И тут я подумал, а может быть можно сделать что-то похожее и в обычном INSTEAD?

Оказалось, можно! Встречайте модуль xrefs.

http://hugeping.tk/lib/uploads/xrefs.png

Модуль уже в репозитории: https://github.com/instead-hub/stead3-modules

Как пользоваться?

1) В начало вашей игры добавьте loadmod 'xrefs'
2) Вы можете пользоваться мышкой, или клавиатурой, нажимая на клавиши для выбора ссылки. Для режима "использовать" нажимайте shift, затем две клавиши по очереди, которые соответствуют предметам.

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

# Re: АРХИВ: за кадром
std.hugeping
hugeping(ping,1) — boscholeg
2020-11-20 11:11:20


Договорились! Когда/если напишу - попрошу протестировать. :)

# Сложность операционных систем
std.hugeping
hugeping(ping,1) — hugeping
2020-11-19 18:41:20


В продолжение. У автора нашлась ещё интересная статья. Или даже, труд.

# Comparison of Operating System Complexity

https://pspodcasting.net/dan/blog/2020/complexity.pdf

Из прекрасного:
> The web has all the hallmarks of being put together by a bunch of teenagers withoutexperience, collaboration or a clue, and come to think of it, that is exactly how it was made. If any one really believes otherwise, I cordially invite them to read the source code of Firefox or Chromium. It willtake 20 years to do so, but hopefully wisdom will dawn long before they are finished.

Всё я не читал, только фрагменты. Но уже видно, что от души. :)

# Plan 9: экстремальный KISS #3
std.hugeping
hugeping(ping,1) — All
2020-11-11 13:25:57


Продолжаю использовать Plan9 (9front) на своём нетбуке.

# Кросскомпиляция на go

Я писал, что собрать современный go на eeepc я не смог - не хватило памяти. Сегодня, внезапно осознав, что всё может быть гораздо проще, чем мне кажется, я набрал на ноутбуке с ArchLinux:
$ GOOS=plan9 GOARCH=amd64 go build 
И собрал проект на go, который прекрасно запустился на 9front! Отлично, получается Plan9 не выкинут из современного go и это радует! Можно просто кросс-компилировать нужный софт.

# Доступ по drawterm

Обычно, я заливаю данные на eeepc через exportfs или по sshfs. Но иногда хочется зайти на машинку удалённо. Для этого в ArchLinux я поставил 9front-drawterm, а на 9front запускаю такой скрипт:

#!/bin/rc
auth/factotum -n
echo 'key proto=p9sk1 dom=$sysname user=glenda !password=password' >/mnt/factotum/ctl
aux/listen1 -t tcp!*!17019 /rc/bin/service/tcp17019 &

С ArchLinux:
9front-drawterm -h <ip address> -u glenda 

И получаем внешне что-то похожее на vnc. Чтобы запустить rio, наберите rio -i riostart. Перед этим можно ещё запустить webfs. Вообще, посмотрите на $home/lib/profile. Там есть ветвление между terminal/cpu. Когда вы заходите по drawterm, выполняется ветка cpu. Когда работаете на машинке в обычном режиме -- это terminal.

# Звук HDA Intel

Звук у меня завёлся, но только в наушниках. Долгое время меня это не беспокоило, но потом стало интересно. Я думал, что игра с пинами должна помочь. Но к сожалению, никакой документации я не нашёл. В исходном коде я увидел, что можно делать что-то вроде echo 'pin 26' > /dev/audioctl. Мой /dev/audiostat был таким:

bufsize   1024 buffered      0
codec 0 pin 26 inpin 18
aout 2 1d
aout 3 1d
beep 4 f00000
beep 5 f00000
aout 6 211
beep 7 f00000
ain 8 10011b ← amix 35
ain 9 10011b ← asel 34
beep 10 f00000
amix 11 20010b ← pin 24, pin 25, pin 26, pin 27, pin 29
amix 12 20010b ← aout 2, amix 11
amix 13 20010b ← aout 3, amix 11
beep 14 f00000
amix 15 20010a ← aout 2, amix 11
beep 16 f00000
beep 17 f00000
pin 18 in fix int special micin ?
beep 19 f00000
pin 20 out fix int special speaker ? eapd ← amix 12, amix 13
beep 21 f00000
beep 22 f00000
pin 23 out nothing ext rear speaker black ← amix 15
pin 24 inout nothing ext rear speaker black ← amix 13
pin 25 in nothing ext rear speaker black
pin 26 inout jack ext rear hpout green ← amix 12, amix 13
pin 27 inout nothing ext rear speaker black ← amix 12, amix 13
beep 28 f00000
pin 29 in nothing ext N/A lineout purple
pin 30 out nothing ext rear speaker black ← aout 6
beep 31 f00000
beep 32 f00040
pin 33 out nothing ext rear speaker black ← amix 12, amix 13
asel 34 30010b ← pin 24, pin 25, pin 26, pin 27, pin 29, amix 11, pin 18
amix 35 20010b ← pin 24, pin 25, pin 26, pin 27, pin 29, amix 11
outpath aout 2 → amix 12 → pin 26
outamp aout 2
inpath pin 18 → asel 34 → ain 9
inamp ain 9

Я прошёлся по всем пинам, делая echo 'pin номер' > /dev/audioctl -- звука нет. Ну и я решил, что не судьба. Потом, случайно, натолкнулся на: https://pspodcasting.net/dan/blog/2019/plan9_desktop.html

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

echo 'pin 20,15,2' > /dev/audioctl

Вы можете сами сопоставить этот "путь" с содержимым audioctl.

А вернуть вывод звука на наушники проще: echo pin 26 > /dev/audioctl

В общем, наслаждаемся звуком: http://hugeping.tk/lib/uploads/9front-zuke.png

# telegram/discord

Я поднял на своей малинке bitlbee сервер. Собрал telegram-tdlib. В итоге, получилось из irc чатиться по работе в telegram. А также зависать в discord. Конечно, есть нюансы, но главное - работает! Детали описывать не буду, скучная рутина.

Зато интересный нюанс, отсутствие "нормального" браузера заставляет находить решения, которые часто оказываются более эффективными. Например, из irc клиента я хотел закачивать скриншоты и публиковать их в telegram чате. Сначала я использовал sshfs на малинку, а потом написал такой скрипт:

#!/bin/rc
if(~ $#* 0)
        file=/fd/0
if not
        file=$1

hpost -m / -u http://curldu.mp 'File@'^$file

Заливаем файл на http://curldu.mp и просто копируем ссылку в чат. Это даже проще, чем telega в emacs. :)

"Из коробки" в 9front также имеется скрипт webpaste, которая заливает текст на pastebin-подобный сервис. Всё для людей!

За это время, я много пользовался mothra и привык к аскетичному интернету. И вы знаете, я не чувствую себя обделённым. :)

Кстати, в mothra нет закладок. Закладки для меня - обычный текст bookmarks.txt, в которой строка за строкой перечислены url. Я открываю файл в acme, нажимаю 2й кнопкой мыши на url и она открывается (с помощью plumber). KISS как он есть.

Ещё один забавный курьёз: бороздя интернет в mothra натолкнулся на сайт с научными новостями. Сайт мне чем-то понравился, я добавил его в bookmarks.txt. А потом, как-то находясь в Linux, открыл его в FireFox: https://nplus1.ru :) Знаете, лучше я пойду обратно в Plan9.

# Чтение epub

page не читает epub, но на самом деле, читает. :) Вы просто монтируете epub с помощью zipfs. Потом открываете xml с текстом с помощью page. Выглядит вполне прилично - логическое форматирование присутствует. А что ешё нужно?

# INSTEAD для Plan9

SDL1 на Plan9 не готов. Поэтому я просто собрал tiny варианты инстеда и метапарсера. На удивление -- вполне юзабельно и в духе минимализма Plan9.

http://hugeping.tk/lib/uploads/9front-instead-cat.png

Так что если что, добро пожаловать: https://github.com/gl00my/plan9hacks/tree/master/9instead

# Лирическое заключение

Почти каждый день после работы я с большим удовольствием запускаю свой eeepc с Plan9 и смотрю IT-новости, чатюсь с друзьями, читаю и отвечаю на почту, слушаю музыку, программирую, запускаю игры INSTEAD (в тексте) и собираюсь написать свою. Зачем?

Честно говоря, не знаю. Но я чувствую огромный терапевтический эффект. В чём тут дело? Система не напрягает, она успокаивает. Здесь всё сделано без оглядки на костыли прошлого, без оглядки на "фичи" и разбалованных пользователей. Без оглядки на требования маркетологов. Система проста и элегантна. И с точки зрения архитектуры, и с точки зрения использования. Такой вот ретро-пост-панк-юникс. Так что я точно знаю, что "работая" в этой ОС я _отдыхаю_. Замечательно, что современный браузер никогда не будет здесь! "Пошёл вон, Вавилон!"(c).

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

Несклько дней назад мне пришлось разбираться с одной из подсистем ядра Linux. 3 или 4 дня я изучал хитрые приёмы синхронизации, в которых гонки были архитектурно предусмотрены, а равномерность нагрузки достигалась путём хитроумнейших хаков. В этом тоже есть своя "хакерская" красота. Но не могу себя обманывать, этот код у меня вызывает стресс. Код на грани возможного. Может быть, так и надо. (Я писал уже на похожую тему ii://kXDk7c9zuOEmsuY0nFZW/ ) Но облегчение, которое я испытал вечером, запустив acme... Оно было настолько реальным... :)

# Re: Механические клавиатуры
pipe.2032
hugeping(ping,1) — Difrex
2020-11-10 10:13:58


Difrex> Поздно, уже едет посылка из китая с коричневыми свичами :)

А, я думал brown тоже щёлкают. Сейчас прочитал, что нет. Ну, короче, лично я теперь хочу только синие. Но дома - красные. Тоже неплохо, но "не то". :)

# Re: Механические клавиатуры
pipe.2032
hugeping(ping,1) — Difrex
2020-11-09 16:02:35


Difrex> За это время понял, что хочеться тактильных свичей. Заказал себе Anne Pro 2 на Kailh Box Brown. Эти свичи еще и водонепроницаемые.

Я вот тоже задумался. Дома - красные. На работе - синие. Понял, что синие рулят больше! (У меня бюджетный вариант на Kailth).

Покупать ещё одну клавиатуру не планирую, но если выбираете между красными и синими/коричневыми -- подумайте ещё. =)

# Right-to-left text support in INSTEAD!
std.english
hugeping(ping,1) — All
2020-11-01 09:53:56


Hi!

Thanks to Mehdi Sadeghi the RTL support is merged in master branch!

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

https://user-images.githubusercontent.com/3101557/89707728-2300ac80-d971-11ea-9334-4de9f237d1f8.png

To use RTL feature you need enable WITH_HARFBUZZ CMAKE flag. SDL2_ttf should be compiled with HarfBuzz too (default off)

There is game tag added -- Direction: rtl|auto.

# Re: Plan 9: экстремальный KISS #1
std.hugeping
hugeping(ping,1) — Difrex
2020-10-28 16:24:44


Difrex> Кстати, а нет ли порта bash под plan9?

Я этого не знаю, но заменять rc, в котором преодолены проблемы bash (и очень изящно) снова на bash - не имеет смысла по-моему. :)

http://doc.cat-v.org/plan_9/4th_edition/papers/rc посмотри здесь раздел Quotation, и сравни с тем же bash. Да в bash ад, просто, на фоне простоты rc!

# Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
hugeping(ping,1) — vvs
2020-10-27 12:57:13


vvs> Поэтому меня крайне удручает тот факт, что я не вижу способа объективно оценить философские критерии, такие как материализм и идеализм.

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

А так, кто то может считать что Земля это центр (антропный принцип), кто то - флуктуациями материи, на которые слепой вселенной наплевать. И выбор этот обусловлен не одним лишь разумом. Разум идёт вслед.

# Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
hugeping(ping,1) — vvs
2020-10-27 08:27:10


vvs> Боюсь, что и сравнение науки с религией тоже слишком искусственно.

Ну, беседа уже зашла в дебри. Я вообще спорю только против нападок со стороны "научного мировоззрения" на религию. Причём против "грубых" и "вульгарных" форм материализма. Даже писал на эту тему: ii://CVvGRZBv7ZzMIm0TFWeY

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

Pages: 1 2 3