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


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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

#news

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


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

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

#news

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


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

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

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

    way = { 'main', 'kitchen' }

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


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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

# Метапарсер

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

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

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

# instead-cli

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

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

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

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

# Модуль protect

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

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

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

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

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

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

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

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

# INSTEAD, вперёд!

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

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


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

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

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


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

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


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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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


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

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

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


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

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

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


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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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


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

## Plan9, 9Front и golang

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

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

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

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

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

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

## Видео

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

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

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

## Шрифты

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

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

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

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

## Почта

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

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

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

## ruspell

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

## А что же с go?

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

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

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

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

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

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

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

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

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

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

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

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

# 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. Я не спорю. Просто делюсь своими наблюдениями. Ты можешь считать их ошибочными, я не против.

Pages: 1 2 3 4 5 6