brain_dump_etc – Telegram
brain_dump_etc
638 subscribers
98 photos
4 videos
3 files
380 links
Дампы мыслей, свалка ссылок, программизмы, вот это всё (ВНИМАНИЕ: много вкусовщины!)

Автор надампленых мыслей: @astynax

Чат к каналу: https://news.1rj.ru/str/brain_dump_chat
Плейлист трансляций: https://youtube.com/playlist?list=PLUFoWyWge7mrg4GqHLMZV62gGC912PCGq
Download Telegram
Окончание начатого тут и тут.

Сейчас всё, что я успел наделать, лежит здесь.

Ещё предстоит добавить сборку релиза CGI app для Linux, чтобы моя песочница его переварила, но это уже скучная история 😅

https://github.com/astynax/hb.cgi
🤔1
Сделал на базе своего шаблонизатора-as-CGI демку "Список счётчиков".

- Счётчики можно добавлять, удалять, инкрементить, декрементить.
- Всё состояние хранится в URL, можно сохранять в закладки и пользоваться историей браузера.
- Ни одной строчки JS не потребовалось.

Кроме того получилось сделать так, что CGI-модули не вызывают друг-друга по возможности. Да, шаблонизатор ходит за данными в сеть, но и только. Это потенциально позволяет разнести все компоненты по разным машинам, то есть получается Web функций 🤓

Ради вышеупомянутой "чистоты концепции" пришлось делать двойной URL-encoding в одном месте, но зато без Base64 обошёлся и удовлетворение результатом получил!

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

Код поделки найдёте в репе самого проекта hb.cgi.
🔥11
Рекомендаций пост: рекомендую почитать про Web Numbers. Там опять про Small Web говорится, да, но в контексте владения собственным адресом в том или ином виде. Вообще очень вдохновляющее чтиво, особенно если читатель пока не успел обжечься с "владением" чего-либо.

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

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

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

С другой стороны, иметь ещё один способ поименовать себя в сети — неплохая идея. Можно иметь одновременно IP, домен, поддомен на small-web.org (см.статью) — три разные корзины лучше, чем одна, хе-хе. А использование SSL-сертификатов для IP-адресов позволит хотя бы отозвать таковой сертификат, если IP у вас отобрали. Что послужит для респондентов сигналом найти вас по альтернативному пути.

Вопрос о том, как эти самые альтернативные пути до респондента доносить, пока остаётся открытым. Тут как раз можно попробовать через OpenNIC (тоже в статье упомянут) завести себе домен, на нём поставить редирект на актуальный домен/IP. OpenNIC, кажется, не должны просто так лишать людей адресов направо и налево. Но стоит помнить, что, поскольку OpenNIC не дружит с HTTPS (см.сноску в статье, там описано, почему), доверять редиректам таким можно только с большой натяжкой: ну, вы знаете, MITM и проч.

И да, есть всякие децентрализованные способы заиметь адрес. В IPFS так IPNS-имена работают (тут можно почитать). Но это всё очень далеко от обычных людей, к которым поближе автор заглавной статьи хочет быть. Увы и ах.
Вчера на такого зверя наткнулся: https://agregore.mauve.moe

Этот тоже в Gemini умеет, хотя микровеб — и не основная функция софтины. Изначально это браузер для децентрализованного p2p веба на базе IPFS и Dat. И кажется мне, что одно другому не мешает: микровеб и p2p могут сосуществовать, и неплохо иметь обе штуки под рукой, иногда даже в одном ПО.

Печально только, что эгрегор на электроне сделан и вообще большая часть SDK и ПО вокруг упомянутого Dat — тоже на JS, взять хотя бы Cabal Chat. И SSB тоже на JS сделан. Ох, и любят эти децентрализованные ребятки на JS писать 😉

При этом JS в контексте Эгрегора я как раз понять могу: это не только браузер как таковой, это ещё и среда для запуска — и созданияp2p-приложений, которые хранят данные на "гипердиске" и распространяются сами по тому же IPFS, bitTorrent и им подобным. По задумке оно в должно работать так, чтобы я мог прямо у себя накидать прототип, сгенерировать ключ на гипердиске и послать другу. И вот мы оба уже имеем по копии моей программки. И если она выложена на IPFS, то пока софтина будет кому-то нужна, она будет существовать. Сам же Эгрегор предоставляет вполне человечные API для простого взаимодействия с p2p штучками, чтобы можно было, скажем, прямо из bookmarklet "сграбить" обычный сайт в WebArchive и загрузить на IPFS! Это один из немногих примеров настоящего живого использования встроенных средств JS-рантайма для своих маленьких нужд — а вы знаете, как я люблю "программируемые кнопки" и прочее "moldable software", потому и Emacs пользую 🤓
🔥7
Внезапно захотелось потранслировать свои мысли по поводу того, что у меня сейчас крутится в голове вокруг smol software/web, permacomputing, malleable software, а именно — про Algernon, Agregor, Hyperclay. Причём я именно подумал об кого-то вслух, а то я подзаскучал в своей echo chamber, жажду общения :)

Пока думаю завтра в районе обеда (у меня это 12 GMT+4) стартануть и будет здорово, если кто-то придёт пообщаться! Но если вы вдруг очень хотите присоединиться, но время вам не подходит, пишите в комменты до того самого завтрашнего обеда :Р Запись будет, думаю, так что если кому-то именно посмотреть захочется, то и такая возможность останется.

Update по итогам:

Запись: https://news.1rj.ru/str/c/1750847264/1087 ( https://youtu.be/PLltigzF2Ps )

Ссылки:

- What is the Small Web? – Aral Balkan
https://ar.al/2020/08/07/what-is-the-small-web/

- Kitten: Home
https://kitten.small-web.org/

- Agregore Browser IPFS Development Environment
https://agregore.mauve.moe/docs/tutorials/ipfs-browser-devenv/part-1

- HTML APPS | Hyperclay
https://hyperclay.com/

- Algernon
https://algernon.roboticoverlords.org/

- Decker
https://beyondloom.com/decker/

Ещё в кадре фигурировали мои программки на Elm, так что вот на них ссылки, чтобы были:
- Кубики для Берсерка: https://astynax.me/berserk-ru-dices/
- SameGame: https://astynax.me/elm-samegame/
- SafeBox: https://astynax.me/elm-safe/ (стрим с процессом создания: https://www.youtube.com/watch?v=yXlrUpfEQRE )
🔥14
Live stream started
Live stream finished (5 hours)
Обычные статейки в процессе, читателей прошу не пугаться! Например, надо уже про Fleet написать, раз его теперь закапывают, а ведь там и мой код есть!

Однако не могу не отметить, что и общение голосом в прошлый раз слушателям понравилось 😎 Во вторник буду опять стримить в 12:00 GMT+4. Не уверен, что успею завести Discord, так что велика вероятность, что в этот раз всё опять случится в Telegram.

Попробую и сам формат повторить: что-то покажу, потом просто оставлю голосовой чат в фоне и буду там разглагольствовать 😉

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

Если хотите ещё что-то конкретное обсудить, то пишите в комментарии — я всегда готов поговорить про разное. А ещё можете поделиться впечатлениями от прошлого захода — за это отдельно благодарен буду!

Завтра попробую сделать тестовый голосовой чат в "чате для комментариев к каналу" — там, кажется, получится сделать именно "voice chat". А не "stream", в котором нужно каждому давать право говорить. Знать бы ещё, как давать ссылки на сам чат, а не на посты из него (ох уж этот Telegram UX 🤡).
👍7🔥4
Беседе быть!

https://news.1rj.ru/str/brain_dump_chat?videochat=7c26a7a3b78e97a676 вот тут начну вещать в 12:00 GMT+4
🔥5
Media is too big
VIEW IN TELEGRAM
https://youtu.be/qtb4dtDoIdE — оно же на Youtube, друг ещё и на PeerTube выложил
Код весь живёт тут: https://github.com/astynax/shell-hell
🔥5
Поздравляю всех читатетей с Наступающим Новым Годом! Буду продолжать вас развлекать и в 2026!

Тут исходник на Python, который я ещё и на no_std/Rust переписал.
2🔥22👍6
Решил я недавно в очередной раз попробовать взращивать цифровой садик 🪴 (о том, что это, я писал тут) и совместить этот процесс с новой попыткой попользоваться TiddlyWiki.

TiddlyWiki — это приложение для ведения "нелинейных заметок". Но приложение особенное тем, что упаковано в самодостаточный HTML-файл, не требующий для работы никаких облаков. А ещё TW интересна тем, что это настоящее Malleable Software, а эта тема мне очень близка, недаром я использую именно Emacs! Если говорить кратко, то TW позволяет изменять и расширять себя без каких-либо искусственных ограничений. TiddlyWiki сама реализована на себе: код, шаблоны, стили оформления, plugins — всё это тоже заметки, которые можно в любой момент найти и отредактировать!

Отдельно стоит озвучить, что TW интерфейсно не разделяет автора и читателей. У читателя всего лишь нет возможности сохранить изменения (по умолчанию нет, но и это поправимо!). Таким образом читатель всегда видит не только контент базы заметок, но и само ПО, которое эту базу обслуживает. Читатель может сохранить копию себе и затем начать её модифицировать под свои задачи! Даже распространяется TiddlyWiki таким образом: можно скачать empty.html, где уже есть платформа, но нет контента. А ещё есть возможность начать и со сторонней "сборки".

Интересно сделана и подсистема сохранения изменений. Браузеры не позволяют странице записывать что-то на диск, но это может делать браузерное расширение. В крайнем случае можно просто предложить пользователь "скачать" и сохранить файл вручную. Со временем появились и другие savers, например очень удобная сохранялка, делающая коммит в GitHub по токену. Токен хранится в Local Storage браузера, вместе с настройками не утекает. А поскольку на GH сохраняется готовый HTML-файл, то оный можно сразу и раздать через GitHub Pages — и вот мы уже имеет готовую CRM для ведения публичной Wiki, цифрового сада, списка прочитанных книг и т.п! Вот это "минимальное трение" при ведении садика меня очень привлекает, так что свой сад я ровно таким способом и завёл.

Надо сказать, что о TW я знаю давно, видел садики на её основе не раз, но у самого как-то руки не доходили погрузиться глубоко. Но недавно я наткнулся на книгу Grok TiddlyWiki, которая, конечно же, оформлена как экземпляр TW, но помимо самого текста имеет ещё и встроенные упражнения и даже карточки с системой интервального их повторения — да, и такой plugin для TiddlyWiki есть! Причём книга не является перепечаткой официальной документации к проекту, это скорее очень авторский курс по тому, как думать о/в TW и как подстраивать её под себя — я такое очень люблю!

Собственно, когда я начал читать/проходить GTW, то встала необходимость каким-то образом захостить и учебник, и учебную тетрадьWiki. Ещё и эти две на GH я выкладывать не захотел, а пойти по рекомендованному в книге пути и завести аккаунт на специальном хостинге для TW тоже показалось не интересно, и я написал свой серверчик 😎. Сервер написан на Python, раздаёт HTML-файл по GET, а по POST сохраняет новую версию с резервным копированием нескольких свежих сохранений. Кода получилось на полтора экрана, всё на встроенных модулях!

Есть, правда, пока не решённая проблема с ведением нескольких Wiki под разными именами: комплектный saver отправляет довольно специфический POST запрос, мне ещё предстоит разобрать прилагаемый к нему form/multi-part, но это дело техники. И да, готовых приложений для локального поднятия TiddlyWiki уже существует несколько, но я захотел сделать свой минималистичный вариант, развлекаюсь 😜
👍10🔥2🤔2
Часика через два попробую запустить трансляцию в Twitch и голосовой канал в дискорд, там буду лайфкодить на питоне — доделывать свой серверчик для WiddlyWiki.

Сегодня мне хочется опробовать сетап для будущих тематических трансляций. Завтра как раз таковую планирую сделать, мне уже и тем подкинули: hotkey managers и вопроизводимые постустановочные настройки ОС.
🔥6👍1🤔1
Го, я создал!
- https://www.twitch.tv/astynax2hs
- https://discord.gg/tJvze5y5va

На твиче запись с недельку пролежит. Там в основном мои страдания, так что я не стал запись выгружать куда-то. Или стоило?
🔥6
В комментариях к записи о TiddlyWiki спросили, почему не Org Mode или Obsidian. Процитирую свой же ответ:
Иметь доступную со многих девайсов Wiki без траты приличных усилий на разворачивание не получится. И уж точно я не хочу быть привязан к Emacs всегда и на каждом устройстве.

Я вообще не хочу быть к софту привязан — и вот тут меня запуск в браузере очень привлекает! Ровно для этого же у меня textpod поднят — это inbox, который я могу использовать на нескольких девайсах для временного хранения каких-то коротких заметок.

А на "Ну в целом у себя я решил проблему syncthing + orgro. Мне нравится." я ответил:
Цифровой сад подразумевает, что его не только я буду посещать с саженцами и секатором — он будет открыт для всех. А это уже подразумевает настройку пубикации. Если писать я могу с любого устройства, то публикация должна быть сделана где-то в одном месте и настроена на обновление HTML-версии при внесении изменений в базу знаний. Ну не хочу я это настраивать!

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

Эта публичность отличает цифровые сады от персональных баз знаний, на ведение которых заточены Obsidian, Org Mode и многие другие инструменты.

Да, именно отвязка от конкретного приложения для редактирования в пользу универсального браузера — моя личная хотелка, про неё я написал выше и мысль свою донёс, я надеюсь 😉
🔥2
brain_dump_etc
Го, я создал! - https://www.twitch.tv/astynax2hs - https://discord.gg/tJvze5y5va На твиче запись с недельку пролежит. Там в основном мои страдания, так что я не стал запись выгружать куда-то. Или стоило?
В 13:00 GMT+4 тут же будет стрим про "hotkey managers и вопроизводимые постустановочные настройки ОС." Надеюсь, что будете в голосовой чат в Discord приходить общаться устно!
1🔥5
Завтра в обычное время будет очередной сеанс вещания телепередачи "Нескучная Дичь"!

Планирую рассказать про инструменты для создания развесистых TUI на разных стеках. Есть кое-какие мысли, которые хочется голосом проговорить, в идеале — в диалоге, конечно же 😉 Twitch и Discord те же, если что.
🔥6💩1