Сломаный Атом
Ого, оказывается всё это время у меня была сломана генерация ленты Атом! А именно, некорректно подставлялось содержание состоящее из, в том числе, ХТМЛ тегов, но без указания что это ХТМЛ. Что интересно, большинству читалок у меня на хозяйстве — всё равно и они не показывали проблемы. Но сегодня я открыл в Newsboat1 (ссылка на оффсайт у меня всё равно не открывается) и мои глаза начали плакать кровью от этой мешанины текста и тегов. Пришлось чинить :)
Смерть «продвинутого пользователя ПК»
https://fireborn.mataroa.blog/blog/the-slow-death-of-the-power-user/
Очень и очень хороший лонгрид о деградации технических навыков и скатывании в простое потребление контента на платформах бигтехов. Этот пост зацепил тем, что он достаточно подробно выражает всё то, о чём и я и думаю и говорю постоянно. А именно о полной деградации инженерной культуры.
Я готов подписаться под буквально каждым словом поста, но единственное, в чём я не согласен с автором — так это в том, что, как мне показалось, у него ещё есть надежда, что что-то улучшится или исправится. У меня такой надежды нет давно.
Пакетный менеджер Stapler
Давеча я открыл для себя чудесный пакетный менеджер для Linux — Stapler.
Как я понял, делают его ребята из сообщества пользователей AltLinux, но он не заточен конкретно под Alt, а может работать, по идее, на любом дистрибутиве. Ну а я уже давно использую этот дистрибутив, поэтому у меня выработался пиетет ко всему связанному с AltLinux :)
Самое близкое, как бы я его мог описать это смесь маковского Homebrew и арчевского AUR.
Моё первое дополнение для Firefox
Буквально только что пришло письмо, что наконец-то опубликовано публично моё первое расширение для Firefox!
Без долгих разгонов, вот ссылка: https://addons.mozilla.org/ru/firefox/addon/groupper/
И, конечно же, исходники: https://gitrepo.ru/NeonXP/Grouper
А теперь немного про то, что это за расширение: это расширение для Firefox для автоматической группировки вкладок по группам на базе доменного имени сайта. При этом домен преобразуется в имя вкладки по следующим правилам:
- Домен делится по точкам
- Отсекается домен 1 уровня (.ru, .com, .net и т.п.)
- Если самый верхний уровень домена — www, то он так же отсекается, как не
информативная часть - Оставшееся преобразуется в Title Case (то есть первая буква каждого слова
становится заглавной)
Таким образом, например, все страницы домена www.some.site.ru сгруппируются автоматически в группу Some Site.
qChat — чатик поверх SSH
Для собственного интереса написал на Go реализацию IRC-подобного чата, который работает поверх прокола SSH.
Умеет пока немного, но много я от него и не хотел. Основная идея в том, чтобы его можно было запустить без конфигурации, с минимальными усилиями на любой «картошке» и чтобы он могу обслуживать, например, небольшую группу пользователей в одной локальной сети (хотя может работать и по интернету).
Получилось очень гиковски и лампово. Так сказать, чатик на случай ядерной войны :)
Про здоровые и нездоровые технологии
Я заметил, что часто стал в речи употреблять словосочетания «здоровая технология» или «нездоровая технология». Но при этом, я не задумывался о том, а что же именно это для меня значит, и как определить что есть здоровая, а что нездоровая технология. Я классифицировал исключительно интуитивно, исходя из принципа «я так чувствую».
Но раз есть классификация, то должны быть и критерии. Так? Так. И критерии я опираясь на собственное ощущение, вроде как, нашёл.
Тернарник в Go
Хотите немного наркомании сахара для Go?

Тернарник в Go
Их есть у меня:
Тернарный оператор для Go на генериках
func If[T any](condition bool, thn T, els T) T {
if condition {
return thn
}
return els
}
Будет настроение — добавлю в свою либку https://neonxp.ru/go/extra , а пока, как-то так держите.
Не стоит использовать в реальном коде. Я лично не вижу никакого оправдания для использования, кроме как покекать.
Guessr
На недавних выходных я запилил очередной «проект выходного дня». На этот раз — аналог известного сервиса GeoGuessr, но в отличие от него, все точки сконцентрированы в моей родной Казани. Ну и я не использую панорамы, а фотографии мест.

Guessr
Я обещал выложить исходники, и в общем, вот они: https://git.neonxp.ru/guessr.git/
Немного про разработку
Первым встал вопрос, откуда брать данные, а именно фотографии и координаты точек. Пару лет назад нашу страну покинул такой проект, как Ingress, представлявший собой гео игру в дополненной реальности. В свою очередь, я посчитал, что раз проект решил отказаться от нас, как игроков, я посчитал морально оправданным спизэкспропреировать кусочек их данных, а именно спарсил с их карты intel.ingress.com т.н. «порталы», которые, по сути и есть эти самые геоточки с фотографиями.
Obsidian
Некоторое время назад я писал про заметочник Joplin.
С тех пор мои вкусы несколько поменялись и я открыл для себя его величество Obsidian.
В целом он такой же заметочник, с ± тем же функционалом, но имеет для меня одну особенность, которая буквально переворачивает всё. Это мощнейшая система плагинов. Серьёзно, я нашел плагины которые покрывают для меня всё, кроме одного (но об этом позже).
Что такое Obisidian?
Obsidian представляет собой приложение для ведения персональных баз данных, основанное на принципах локальных файлов Markdown. Это значит, что ваши данные хранятся в виде обычных текстовых файлов, что обеспечивает максимальную гибкость и независимость от облачных сервисов.
Вам не нужны пуши!
Я не шучу. Серьёзно.
С неделю назад меня осенила крайне простая мысль, которая ранее, почему-то, мне не приходила.
Но сначала, две вводных, или, скажем, тезиса, которые послужили для вывода этой мысли:
Тезис №1
Меня действительно огорчает количество пушей которые постоянно сыплются мне на телефон. Это вызывает раздражение сразуна нескольких уровнях:
- Сам момент их прихода — я автоматически смотрю на телефон, что же пришло
- Если я игнорирую пуш — он потом висит в шторке вызывая раздражение
- Очень часто это сранная реклама от какого-нибудь озона или магнит маркета
(бывш. KazanExpress)
Но бывают же и полезные пуши! Например, уведомления от Госуслуг или информация что заказ доставлен ну илисообщения в мессенджерах.
Jsonnet
Редко такое бывает, что случайно натыкаешься на какую-то технологию и она вызывает вау-эффект и буквально переворачивает всё верх дном. На днях для меня такой технологией стал Jsonnet от Google.

Jsonnet
В кратце, это надмножество JSON являющееся языком описания шаблонов. Пока звучит не очень круто, да? На деле это офигенный Тьюринг полный функциональный язык, результатом выполнения которого будет сформированый JSON (и не только) документ(или несколько документов[^1]). [^1]:https://jsonnet.org/learning/getting_started.html#multi
Если интересно, рекомендую сразу переходить к туториалу — https://jsonnet.org/learning/tutorial.html.