diff options
author | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2025-01-02 19:52:06 +0300 |
---|---|---|
committer | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2025-01-02 19:52:06 +0300 |
commit | 99deed9ef6ab7624d5485ed582de015fae6b578b (patch) | |
tree | 461f800fc2d4ba4cdfec4a09b54950106dfd8c09 /content/posts | |
parent | 876f3e0ae68f46791aeecdaed398dfc91389c3c8 (diff) |
Auto-commit 2025-01-02
Diffstat (limited to 'content/posts')
27 files changed, 780 insertions, 391 deletions
diff --git a/content/posts/2021-02-13-jsonnet/index.md b/content/posts/2021-02-13-jsonnet/index.md index cb22840..231fea4 100644 --- a/content/posts/2021-02-13-jsonnet/index.md +++ b/content/posts/2021-02-13-jsonnet/index.md @@ -6,23 +6,35 @@ title = 'Jsonnet' image = 'logo.webp' +++ -Редко такое бывает, что случайно натыкаешься на какую-то технологию и она вызывает вау-эффект и буквально переворачивает всё верх дном. На днях для меня такой технологией стал [Jsonnet](https://jsonnet.org/) от Google. +Редко такое бывает, что случайно натыкаешься на какую-то технологию и она +вызывает вау-эффект и буквально переворачивает всё верх дном. На днях для меня +такой технологией стал [Jsonnet](https://jsonnet.org/) от Google. -В кратце, это надмножество JSON являющееся языком описания шаблонов. Пока звучит не очень круто, да? На деле это офигенный Тьюринг полный функциональный язык, результатом выполнения которого будет сформированый JSON (и не только) документ([или несколько документов](https://jsonnet.org/learning/getting_started.html#multi)). +В кратце, это надмножество JSON являющееся языком описания шаблонов. Пока звучит +не очень круто, да? На деле это офигенный Тьюринг полный функциональный язык, +результатом выполнения которого будет сформированый JSON (и не только) +документ(или несколько документов[^1]). +[^1]:https://jsonnet.org/learning/getting_started.html#multi -[Если интересно, рекомендую сразу переходить к туториалу.](https://jsonnet.org/learning/tutorial.html) +Если интересно, рекомендую сразу переходить к туториалу — +https://jsonnet.org/learning/tutorial.html. # Почему же это круто? -Ну, во-первых, он реально мощный и простой. С его помощью можно формировать документы любой сложности. +Ну, во-первых, он реально мощный и простой. С его помощью можно формировать +документы любой сложности. -Во-вторых, его можно встроить в свою программу на Go ([и не только, но на Go — проще всего](https://jsonnet.org/ref/bindings.html)), и это даст бесплатно мощный DSL для написания очень гибких конфигов. +Во-вторых, его можно встроить в свою программу на Go (и не только, но на Go — +проще всего — https://jsonnet.org/ref/bindings.html), и это даст бесплатно +мощный DSL для написания очень гибких конфигов. -В третьих, ну камон, приятно же когда компьютер берет на себя рутинную работу по формированию больших и сложных JSON’ов! +В третьих, ну камон, приятно же когда компьютер берет на себя рутинную работу по +формированию больших и сложных JSON’ов! # Пример -Накидал простенький пример который формирует конфигурацию пайплайна для гипотетической CI системы: +Накидал простенький пример который формирует конфигурацию пайплайна для +гипотетической CI системы: ```json local map(arr, predicate) = // определяем функцию map @@ -78,8 +90,17 @@ local commands = ['go build', 'go test']; // Общая часть Круть же! -Да, на небольшом примере не очень показательно, но даже тут, скажем, при добавлении новой цели сборки будет достаточно слегка подправить массив tasks и автоматически сформируется все остальное, а не копипаст целой секции и ручная правка в нужных местах. +Да, на небольшом примере не очень показательно, но даже тут, скажем, при +добавлении новой цели сборки будет достаточно слегка подправить массив tasks и +автоматически сформируется все остальное, а не копипаст целой секции и ручная +правка в нужных местах. -Я оставил за скобками то, что этот шаблонизатора позволяет формировать не только JSON но и фактически любой другой текстовый формат. И даже из одного скрипта формировать несколько документов разного формата. При этом локальные переменные будут использоваться общие. Теоретически, если упороться, можно одним скриптом сформировать весь /etc на новом сервере. Почему бы и нет?) +Я оставил за скобками то, что этот шаблонизатора позволяет формировать не только +JSON но и фактически любой другой текстовый формат. И даже из одного скрипта +формировать несколько документов разного формата. При этом локальные переменные +будут использоваться общие. Теоретически, если упороться, можно одним скриптом +сформировать весь /etc на новом сервере. Почему бы и нет?:) -Не знаю смог ли передать ощущение своего восторга, но я охренеть как рад и жду выходных, чтобы с головой нырнуть в эту технологию, которая открывает столько новых интересных перспектив!
\ No newline at end of file +Не знаю смог ли передать ощущение своего восторга, но я охренеть как рад и жду +выходных, чтобы с головой нырнуть в эту технологию, которая открывает столько +новых интересных перспектив!
\ No newline at end of file diff --git a/content/posts/2021-05-13-цифровая-гигиена/index.md b/content/posts/2021-05-13-цифровая-гигиена/index.md index 8f8dbae..e11f909 100644 --- a/content/posts/2021-05-13-цифровая-гигиена/index.md +++ b/content/posts/2021-05-13-цифровая-гигиена/index.md @@ -7,43 +7,81 @@ title = 'Немного о цифровой гигиене' # Вступление -Как раз вступление тут особо и не нужно. Ни для кого не открою америки, что в современном цифровом обществе все мы являемся товаром для интернет-медиа гигантов, того же фейсбука да гугла. Не скажу что это для меня, как личности опасно или вредно, но мне это неприятно. Решил с этим что-то делать. +Как раз вступление тут особо и не нужно. Ни для кого не открою америки, что в +современном цифровом обществе все мы являемся товаром для интернет-медиа +гигантов, того же фейсбука да гугла. Не скажу что это для меня, как личности +опасно или вредно, но мне это неприятно. Решил с этим что-то делать. # Вводные -- В интернетах я уже очень давно и много где и как “наследил” своими данными. И с этим уже ничего не поделать. -- У меня в телефоне и на всех компьютерах куча приложений работающих с интернетом, и не только мессенджеры. -- У меня достаточно узкий круг людей с кем бы я хотел быть на связи, и не хочу чтобы мои действия как-то ухудшили или усложнили их жизнь. -- Вопрос анонимности для меня не стоит, я не анонимен и это моё осознанное решение. Я законопослушный человек и прятаться мне не от кого. И да, я знаю что этот тезис стараниями либерах нынче пытаются выставить как глупость, но нет. Глупость — это слушать либерах, а не иметь свою голову на плечах. И контртезис “Гы гы гы, ну раз тебе нечего скрывать — поставь камеру у себя в спальне и ванной” даже комментировать не буду в силу его ущербности. -- Я пользователь техники Apple и с этим уже ничего не поделать, менять целиком экосистему для меня не вариант (это очень дорого, бессмысленно, а местами и невозможно, например, рабочий мак мне поменять не на что). И да, есть наивная надежда что у яблок в плане приватности всё получше чем у ведроидов. Во всяком случае по сравнению со стоком. Гиковские прошивки с вырезанными зондами в расчет не беру, верю что у них совсем всё хорошо. +- В интернетах я уже очень давно и много где и как “наследил” своими данными. И + с этим уже ничего не поделать. +- У меня в телефоне и на всех компьютерах куча приложений работающих с + интернетом, и не только мессенджеры. +- У меня достаточно узкий круг людей с кем бы я хотел быть на связи, и не хочу + чтобы мои действия как-то ухудшили или усложнили их жизнь. +- Вопрос анонимности для меня не стоит, я не анонимен и это моё осознанное + решение. Я законопослушный человек и прятаться мне не от кого. И да, я знаю + что этот тезис стараниями либерах нынче пытаются выставить как глупость, но + нет. Глупость — это слушать либерах, а не иметь свою голову на плечах. И + контртезис “Гы гы гы, ну раз тебе нечего скрывать — поставь камеру у себя в + спальне и ванной” даже комментировать не буду в силу его ущербности. +- Я пользователь техники Apple и с этим уже ничего не поделать, менять целиком + экосистему для меня не вариант (это очень дорого, бессмысленно, а местами и + невозможно, например, рабочий мак мне поменять не на что). И да, есть наивная + надежда что у яблок в плане приватности всё получше чем у ведроидов. Во всяком + случае по сравнению со стоком. Гиковские прошивки с вырезанными зондами в + расчет не беру, верю что у них совсем всё хорошо. # Цели 1. Уменьшить информационный шум вокруг себя и тем самым улучшить качество жизни. 2. Уменьшить свой “информационный след” -3. Иметь больше контроля над своими данными, чтобы мои волосы стали мягкими и шелковистыми. +3. Иметь больше контроля над своими данными, чтобы мои волосы стали мягкими и + шелковистыми. # Наброски плана -1. Перейти максимально на собственные ресурсы, которые я контролирую и которые *точно* не сливают ничего налево.Примерно так: социалки => <https://soc.neonxp.ru/> , GitHub => <https://gitrepo.ru/> , Облачные диски => локальный NAS Synology и т.д. -2. Мне надо сократить мессенджеры в идеале до одного, не считая корпоративного рабочего. Тут всё просто — оставляю Telegram, остальные сношу. -3. Мне надо отказаться от неэтичных социальных сетей, где я не могу полностью контролировать свои данные. -4. При отказе от социальных сетей чтобы не доставить проблем моим контактам надо оставить “новый адрес” по которому со мной можно связаться и, например, этот пост. Я не хочу чтобы для всех мои действия были прозрачны и понятны, а не “молча удалиться” оставив кого-то в недоумении. -5. Везде где возможно отключить или заблокировать телеметрию, чтобы как можно меньше моих данных неконтролируемо утекало. Да, полностью не перекрыть, но сократить возможно. -6. Для связи с “миром” оставить только e-mail как наиболее удобный асинхронный метод коммуникации. +1. Перейти максимально на собственные ресурсы, которые я контролирую и которые + *точно* не сливают ничего налево.Примерно так: социалки => + <https://soc.neonxp.ru/> , GitHub => <https://gitrepo.ru/> , Облачные + диски => локальный NAS Synology и т.д. +2. Мне надо сократить мессенджеры в идеале до одного, не считая корпоративного + рабочего. Тут всё просто — оставляю Telegram, остальные сношу. +3. Мне надо отказаться от неэтичных социальных сетей, где я не могу полностью + контролировать свои данные. +4. При отказе от социальных сетей чтобы не доставить проблем моим контактам надо + оставить “новый адрес” по которому со мной можно связаться и, например, этот + пост. Я не хочу чтобы для всех мои действия были прозрачны и понятны, а не + “молча удалиться” оставив кого-то в недоумении. +5. Везде где возможно отключить или заблокировать телеметрию, чтобы как можно + меньше моих данных неконтролируемо утекало. Да, полностью не перекрыть, но + сократить возможно. +6. Для связи с “миром” оставить только e-mail как наиболее удобный асинхронный + метод коммуникации. # Дальнейшие шаги 1. Превратить наброски плана в цельный план. Написать манифест? Возможно. -2. Подготовить “визитку” с актуальными контактами и объяснением что произошло. Причем как в виде изображения, так и текста. -3. Вышеуказанную визитку поместить на уже неактуальных для меня местах обитания (инстаграм, вк и проч). Удаляться не хочу. Жалко контент за столько лет, да и пункт 3 предыдущего абзаца. +2. Подготовить “визитку” с актуальными контактами и объяснением что произошло. + Причем как в виде изображения, так и текста. +3. Вышеуказанную визитку поместить на уже неактуальных для меня местах обитания + (инстаграм, вк и проч). Удаляться не хочу. Жалко контент за столько лет, да и + пункт 3 предыдущего абзаца. 4. Удалить “лишние” приложения от вышеуказанных сервисов. -5. Разлогиниться в этих сервисах и очистить браузеры от них, чтобы исключить треккинг на сторонних сайтах. +5. Разлогиниться в этих сервисах и очистить браузеры от них, чтобы исключить + треккинг на сторонних сайтах. 6. ????? 7. PROFIT! # Обратная связь -Очень бы хотелось получить обратную связь по моему плану. Комментарии про то что упустил и предложения улучшений приветствуются в комментариях к посту, в комментариях к [телеграм каналу](https://t.me/neonxp), или на почту <a.kiryukhin@mail.ru> (кстати, стоит наверное и почту перевести к себе? Но пока уровень сервиса врядли смогу адекватный обеспечить) +Очень бы хотелось получить обратную связь по моему плану. Комментарии про то что +упустил и предложения улучшений приветствуются в комментариях к посту, в +комментариях к [телеграм каналу](https://t.me/neonxp), или на почту +<a.kiryukhin@mail.ru> (кстати, стоит наверное и почту перевести к себе? Но пока +уровень сервиса врядли смогу адекватный обеспечить) -*UPD:* Да, я знаю что уже данные так и останутся в чужих руках, но со временем они будут всё больше и больше протухать, а мой “цифровой профиль” терять актуальность. Ведь я не скала, я тоже меняюсь и ухожу от этого профиля.
\ No newline at end of file +*UPD:* Да, я знаю что уже данные так и останутся в чужих руках, но со временем +они будут всё больше и больше протухать, а мой “цифровой профиль” терять +актуальность. Ведь я не скала, я тоже меняюсь и ухожу от этого профиля.
\ No newline at end of file diff --git a/content/posts/2022-05-30-возрождение/index.md b/content/posts/2022-05-30-возрождение/index.md index 67aa4c2..93bc3c6 100644 --- a/content/posts/2022-05-30-возрождение/index.md +++ b/content/posts/2022-05-30-возрождение/index.md @@ -5,15 +5,20 @@ tags = ['блог', 'моё'] title = 'Возрождение?' +++ -Определенно, вести блог это не мое. Учитывая, что последний пост был год назад — sad but true. +Определенно, вести блог это не мое. Учитывая, что последний пост был год назад — +sad but true. -Не буду говорить, что “вот сейчас то уж точно буду вести регулярно”. Нет не буду. +Не буду говорить, что “вот сейчас то уж точно буду вести регулярно”. Нет не +буду. Но раз в полгода-год, наверное все же буду. Из новостей, что не писал в канал, наверное, только парочка: -1. сейчас всё свободное время пилю свой петпроджект 😉 Пока что выходит ух какая красота. Но об этом как-нибудь в другой раз, как говорится, пол работы не показывают 🙂 -2. в ленивом режиме начали заниматься вопросами улучшения жилищных условий. Давно пора. +1. сейчас всё свободное время пилю свой петпроджект 😉 Пока что выходит ух какая + красота. Но об этом как-нибудь в другой раз, как говорится, пол работы не + показывают 🙂 +2. в ленивом режиме начали заниматься вопросами улучшения жилищных условий. + Давно пора. До встречи когда-нибудь потом 🙂
\ No newline at end of file diff --git a/content/posts/2022-05-31-golang-1/index.md b/content/posts/2022-05-31-golang-1/index.md index 37dd2e8..9ba4e7c 100644 --- a/content/posts/2022-05-31-golang-1/index.md +++ b/content/posts/2022-05-31-golang-1/index.md @@ -8,8 +8,12 @@ title = 'Golang подборка 1' Просто собираю подборку интересных ссылок по гошке на почитать потом. - [Extra](https://github.com/neonxp/extra) — Моё. Пакет с разными полезными функциями без дополнительных зависимостей. -- [Серия видосов про создание игры в стиле Animal Crossing на golang с помощью raylib](https://www.youtube.com/watch?v=iWp-mCIQgMU&list=PLVotA8ycjnCsy30WQCwVU5RrZkt4lLgY5&index=1) -- [Самописный распределенный типа Postgres](https://notes.eatonphil.com/distributed-postgres.html). Под капотом raft от hashicorp, boltdb и самое интересное — парсинг SQL +- Серия видосов про создание игры в стиле Animal Crossing на golang с помощью + raylib — + https://www.youtube.com/watch?v=iWp-mCIQgMU&list=PLVotA8ycjnCsy30WQCwVU5RrZkt4lLgY5&index=1 +- Самописный распределенный типа Postgres + https://notes.eatonphil.com/distributed-postgres.html. Под капотом raft от + hashicorp, boltdb и самое интересное — парсинг SQL - Рассчет расстояния между двумя Geo точками: ``` @@ -27,4 +31,5 @@ func GetDistance(lat1, lon1, lat2, lon2 float64) float64 { ``` -- [god](https://github.com/pioz/god) — Утилита подгатавливающая демоны из go программы. Для меня ценное — что генерит systemd конфиги.
\ No newline at end of file +- [god](https://github.com/pioz/god) — Утилита подгатавливающая демоны из go + программы. Для меня ценное — что генерит systemd конфиги.
\ No newline at end of file diff --git a/content/posts/2023-01-12-gitrepo/index.md b/content/posts/2023-01-12-gitrepo/index.md index 414cd72..0d2653f 100644 --- a/content/posts/2023-01-12-gitrepo/index.md +++ b/content/posts/2023-01-12-gitrepo/index.md @@ -5,24 +5,29 @@ tags = ['it', 'моё'] title = 'GitRepo.ru' +++ -Сегодня серьезно переделал свой хостинг [репозиториев кода](https://gitrepo.ru/): +Сегодня серьезно переделал свой хостинг [репозиториев +кода](https://gitrepo.ru/): - Переехал на большой арендованный сервак - Привел в порядок оркестрацию вокруг сервака с использованием Docker Compose - Gitea заменил на её форк [Forgejo](https://forgejo.org/) - Впилил CI/CD на основе [Woodpecker CI](https://woodpecker-ci.org/) -Приглашаю пользоваться заместо бездуховного западного github: <https://gitrepo.ru/> +Приглашаю пользоваться заместо бездуховного западного github: +<https://gitrepo.ru/> -Сервер физически находится в датацентре в Москве у весьма годного провайдера Selectel. +Сервер физически находится в датацентре в Москве у весьма годного провайдера +Selectel. -Тем более, время сейчас неспокойное и неизвестно когда github станет недоступен для РФ, а GitRepo — он вот тут, в нашей стране. +Тем более, время сейчас неспокойное и неизвестно когда github станет недоступен +для РФ, а GitRepo — он вот тут, в нашей стране. # Немного про устройство Расскажу немного как я организовал себе Ops сервиса. -У меня на руках `docker-compose.yml` который полностью описывает всю конфигурацию сервака, примерно так: +У меня на руках `docker-compose.yml` который полностью описывает всю +конфигурацию сервака, примерно так: ```yml version: "3" @@ -130,7 +135,9 @@ networks: а рядом лежит `.env` файлик с значениями переменных `${...}`. -Запускаю деплой я с локального компьютера, предварительно добавив удаленный сервер в [контекст докера](https://docs.docker.com/engine/context/working-with-contexts/): +Запускаю деплой я с локального компьютера, предварительно добавив удаленный +сервер в [контекст +докера](https://docs.docker.com/engine/context/working-with-contexts/): ``` # Создаю новый контекст для удаленного сервера @@ -143,13 +150,15 @@ docker use default # Оставшиеся проблемы -Сейчас так получается, что Caddyfile должен лежать на удаленном сервере, т.к. часть конфига +Сейчас так получается, что Caddyfile должен лежать на удаленном сервере, т.к. +часть конфига ```yml volumes: - ./Caddyfile:/etc/caddy/Caddyfile ``` -выполняется в контексте именно удаленного сервера, а значит при его апдейте на локальном серваке приходится делать SCP этого файла на сервак. Такое себе. +выполняется в контексте именно удаленного сервера, а значит при его апдейте на +локальном серваке приходится делать SCP этого файла на сервак. Такое себе. Как это решить — есть интересная идея, но это уже в другой раз.
\ No newline at end of file diff --git a/content/posts/2023-05-26-gist/index.md b/content/posts/2023-05-26-gist/index.md index 5b14e7a..c2f6b16 100644 --- a/content/posts/2023-05-26-gist/index.md +++ b/content/posts/2023-05-26-gist/index.md @@ -5,7 +5,8 @@ tags = ['it', 'моё'] title = 'Импортозамещение Gist' +++ -И в догонку к комментариям, запустил на своём серваке свой аналог Gist’ов от GitHub. +И в догонку к комментариям, запустил на своём серваке свой аналог Gist’ов от +GitHub. Вот и он: [gist.neonxp.ru](https://gist.neonxp.ru/) diff --git a/content/posts/2023-07-24-tls/index.md b/content/posts/2023-07-24-tls/index.md index 0a025a8..da413dc 100644 --- a/content/posts/2023-07-24-tls/index.md +++ b/content/posts/2023-07-24-tls/index.md @@ -5,29 +5,63 @@ tags = ['it', 'Россия', 'TLS'] title = 'Немного мыслей о TLS (HTTPS) в России' +++ -Накопилось немного мыслей относительно того, что может грозить нам (и мне) в связи с трендом на “балканизацию” рунета. +Накопилось немного мыслей относительно того, что может грозить нам (и мне) в +связи с трендом на “балканизацию” рунета. -И самое болезненное место — HTTPS который нынче стандарт де-факто в современных интернетах. А болезненное оно потому, что целиком и полностью контролируется другой стороной нынешного противостояния. Все доверенные удостоверяющие центры принадлежат странам “коллективного запада”. Помню, были ещё какие-то китайские, вроде, но с ними был какой-то скандал и не факт что они есть. +И самое болезненное место — HTTPS который нынче стандарт де-факто в современных +интернетах. А болезненное оно потому, что целиком и полностью контролируется +другой стороной нынешного противостояния. Все доверенные удостоверяющие центры +принадлежат странам “коллективного запада”. Помню, были ещё какие-то китайские, +вроде, но с ними был какой-то скандал и не факт что они есть. -Есть относительно [доверенный УЦ от Минцифры](https://www.gosuslugi.ru/tls). Это здорово и я это всецело поддерживаю. Вот только есть момент. Он не для нас, простых людей, и при попытке его получить видим то, что на скриншоте ниже. А сранный Firefox вообще хочет его внести в черный список, чтобы даже специально его нельзя было установить. В общем, пока его я поставить не могу даже при всём желании. +Есть относительно [доверенный УЦ от Минцифры](https://www.gosuslugi.ru/tls). Это +здорово и я это всецело поддерживаю. Вот только есть момент. Он не для нас, +простых людей, и при попытке его получить видим то, что на скриншоте ниже. А +сранный Firefox вообще хочет его внести в черный список, чтобы даже специально +его нельзя было установить. В общем, пока его я поставить не могу даже при всём +желании. -![Услуга предоставляется только юридическим лицам](/img/posts/20230724_202627.webp) +![Услуга предоставляется только юридическим +лицам](/img/posts/20230724_202627.webp) Какие ещё альтернативы есть, если нас вдруг прокинет Let’s encrypt? -1. Не использовать HTTPS вообще. Я же не магазин и у меня нет форм логина, которые требуют шифрования. Так-то оно так, да не так. Браузеры уже сейчас очень косо смотрят на “обычные”, не HTTPS сайты, а в дальнейшем, не удивлюсь если перестанут открывать вообще. Так же на HTTP сайтах не работают прикольные браузерные API типа геолокации (наверное, это в каком-то роде даже плюс 😉 ). Ну и ещё проблема, что, например, этот сайт без HTTPS вообще не может работать, ибо для доменов зоны .dev насильно включено HSTS и они не могут работать не по HTTPS. Последнее то я решу старым добрым доменом neonxp.ru, но тем не менее. -2. Самоподписанные сертификаты. Вот это уже более менее похоже на правду! Да, такие сайты надо добавлять в исключения и мороки с сертификатами чуть больше. Но тут та же история с доменами .dev. Для них самоподписаные не катят. Выход — опять таки старый добрый neonxp.ru. +1. Не использовать HTTPS вообще. Я же не магазин и у меня нет форм логина, + которые требуют шифрования. Так-то оно так, да не так. Браузеры уже сейчас + очень косо смотрят на “обычные”, не HTTPS сайты, а в дальнейшем, не удивлюсь + если перестанут открывать вообще. Так же на HTTP сайтах не работают + прикольные браузерные API типа геолокации (наверное, это в каком-то роде даже + плюс 😉 ). Ну и ещё проблема, что, например, этот сайт без HTTPS вообще не + может работать, ибо для доменов зоны .dev насильно включено HSTS и они не + могут работать не по HTTPS. Последнее то я решу старым добрым доменом + neonxp.ru, но тем не менее. +2. Самоподписанные сертификаты. Вот это уже более менее похоже на правду! Да, + такие сайты надо добавлять в исключения и мороки с сертификатами чуть больше. + Но тут та же история с доменами .dev. Для них самоподписаные не катят. Выход + — опять таки старый добрый neonxp.ru. -К чему я всё это? А то что в случае “балканизации” мы остаемся без нормального валидного HTTPS. Для себя я выбрал второй путь, с самоподписанными сертификатами. Чекнуть как работает можно на зеркале блога на <https://neonxp.ru> . Там я выпустил сам себе сертификат на домен от своего собственного удостоверяющего центра 🙂 А доверять ему или не доверять — дело посетителей сайта. +К чему я всё это? А то что в случае “балканизации” мы остаемся без нормального +валидного HTTPS. Для себя я выбрал второй путь, с самоподписанными +сертификатами. Чекнуть как работает можно на зеркале блога на +<https://neonxp.ru> . Там я выпустил сам себе сертификат на домен от своего +собственного удостоверяющего центра 🙂 А доверять ему или не доверять — дело +посетителей сайта. -Если доверяете мне то [вот сертификат моего УЦ](/files/root_ca.crt), а установка такая же как сертификата Минцифры 🙂 +Если доверяете мне то [вот сертификат моего УЦ](/files/root_ca.crt), а установка +такая же как сертификата Минцифры 🙂 Ну и совсем краткая инструкция как выпустить сертификат для себя: -1. `openssl genrsa -out root_ca.key 4096` — создание секретного ключа УЦ (должен храниться в безопасности!) -2. `openssl req -x509 -new -key root_ca.key -days 3650 -out root_ca.crt` — создаем сам сертификат УЦ (он НЕ секретный). Я указал срок действия 10 лет, но это потому что я ленивый и не хочу его перегенеривать каждый год. Так делать не советую. -3. `openssl genrsa -out server.key 4096` — создаем секретный ключ уже для конкретного сайта (и поддоменов) -4. `openssl req -new -key server.key -subj "/CN=neonxp.ru/CN=*.neonxp.ru" -out server.csr` — генерируем файл запроса для конкретного сайта +1. `openssl genrsa -out root_ca.key 4096` — создание секретного ключа УЦ (должен + храниться в безопасности!) +2. `openssl req -x509 -new -key root_ca.key -days 3650 -out root_ca.crt` — + создаем сам сертификат УЦ (он НЕ секретный). Я указал срок действия 10 лет, + но это потому что я ленивый и не хочу его перегенеривать каждый год. Так + делать не советую. +3. `openssl genrsa -out server.key 4096` — создаем секретный ключ уже для + конкретного сайта (и поддоменов) +4. `openssl req -new -key server.key -subj "/CN=neonxp.ru/CN=*.neonxp.ru" -out + server.csr` — генерируем файл запроса для конкретного сайта 5. Создаем файл `openssl.cnf` с примерно таким содержимым: ``` [SAN] @@ -36,11 +70,15 @@ title = 'Немного мыслей о TLS (HTTPS) в России' DNS.1 = neonxp.ru DNS.2 = *.neonxp.ru ``` -6. И, наконец, создаем сертификат для сайта, который будет подписан ключами server.key и root\_ca.key (то есть и своим удостоверяющим центром тоже): +6. И, наконец, создаем сертификат для сайта, который будет подписан ключами + server.key и root\_ca.key (то есть и своим удостоверяющим центром тоже): ``` openssl x509 -req -in server.csr -CA root_ca.crt -CAkey root_ca.key -CAcreateserial -out server.crt -days 365 -extensions SAN -extfile openssl.cnf ``` -В общем, всё. Полученные root_ca.crt (но не root_ca.key!), server.key и server.crt можно вносить в конфигурацию используемого вебсервера. А так же внести root_ca.crt в доверенные для себя. +В общем, всё. Полученные root_ca.crt (но не root_ca.key!), server.key и +server.crt можно вносить в конфигурацию используемого вебсервера. А так же +внести root_ca.crt в доверенные для себя. -Так у меня выглядят [сертификат на сайт](/img/posts/20230724_204209.webp) и [сертификат УЦ](/img/posts/20230724_204325.webp).
\ No newline at end of file +Так у меня выглядят [сертификат на сайт](/img/posts/20230724_204209.webp) и +[сертификат УЦ](/img/posts/20230724_204325.webp).
\ No newline at end of file diff --git a/content/posts/2023-12-29-переезд/index.md b/content/posts/2023-12-29-переезд/index.md index 8a19c0f..ffab7bc 100644 --- a/content/posts/2023-12-29-переезд/index.md +++ b/content/posts/2023-12-29-переезд/index.md @@ -7,10 +7,19 @@ title = 'Переезд и проблемы обновления' Немного новостей. -Начну с грустного. Крайне неудачно обновил forgejo на gitrepo.ru. В общем, БД побилась без возможности восстановления. Репозитории я спас, обращайтесь — пришлю архив репозиториев. +Начну с грустного. Крайне неудачно обновил forgejo на gitrepo.ru. В общем, БД +побилась без возможности восстановления. Репозитории я спас, обращайтесь — +пришлю архив репозиториев. -Очень грустно, я был крайне расстроен. Штош, теперь настроил зато постоянные бекапы БД и данных на локальный NAS. Прошу прощения у пользователей, я очень виноват. +Очень грустно, я был крайне расстроен. Штош, теперь настроил зато постоянные +бекапы БД и данных на локальный NAS. Прошу прощения у пользователей, я очень +виноват. -А теперь о негрустном. Всё же решил что мне больше нравится основным домен не .dev, а именно .ru. Времена неспокойные — лучше перестраховаться и сделать ставку именно на национальный домен, а не на международный. К тому же у .dev домена есть неприятная особенность, что он требует обязательно валидного (то есть одобренного западными “партнерами”) сертификата. А это не дело, как я уже [писал в заметке](https://neonxp.ru/posts/2023-07-24-tls/). +А теперь о негрустном. Всё же решил что мне больше нравится основным домен не +.dev, а именно .ru. Времена неспокойные — лучше перестраховаться и сделать +ставку именно на национальный домен, а не на международный. К тому же у .dev +домена есть неприятная особенность, что он требует обязательно валидного (то +есть одобренного западными “партнерами”) сертификата. А это не дело, как я уже +[писал в заметке](https://neonxp.ru/posts/2023-07-24-tls/). Пока что как-то так 🤷🏻♂️
\ No newline at end of file diff --git a/content/posts/2024-01-03-архив/index.md b/content/posts/2024-01-03-архив/index.md index c7e4526..46bf232 100644 --- a/content/posts/2024-01-03-архив/index.md +++ b/content/posts/2024-01-03-архив/index.md @@ -5,6 +5,8 @@ tags = ['блог'] title = 'Архив' +++ -Покопавшись по вебархиву смог вытащить древние посты с разных моих старых блогов. В основном, кринжовые, конечно, но это моя жизнь, как она была в то время. Так что пусть будут. +Покопавшись по вебархиву смог вытащить древние посты с разных моих старых +блогов. В основном, кринжовые, конечно, но это моя жизнь, как она была в то +время. Так что пусть будут. [Архив блога](https://neonxp.ru/archive/)
\ No newline at end of file diff --git a/content/posts/2024-02-21-tls/index.md b/content/posts/2024-02-21-tls/index.md index 0fc4182..332cf7c 100644 --- a/content/posts/2024-02-21-tls/index.md +++ b/content/posts/2024-02-21-tls/index.md @@ -5,21 +5,32 @@ tags = ['it', 'Россия', 'TLS'] title = 'Конфигурация HTTPS с сертификатом от Минцифры' +++ -Третьего дня потратил достаточно много времени на установку на данном сайте сертификата от Минцифры.А поскольку сертификат краткоживущий (90 дней) — заметка мне самому пригодится на будущее. +Третьего дня потратил достаточно много времени на установку на данном сайте +сертификата от Минцифры.А поскольку сертификат краткоживущий (90 дней) — заметка +мне самому пригодится на будущее. -Началось всё с того, что я с удивлением обнаружил, что на госуслугах теперь можно выпустить сертификат для домена физлицу.Это меня обрадовало, хотя ранее я приунывал что нет никакой альтернативы простым смертным. Теперь есть. <del>Закрывайте буржуйнет.</del> +Началось всё с того, что я с удивлением обнаружил, что на госуслугах теперь +можно выпустить сертификат для домена физлицу.Это меня обрадовало, хотя ранее я +приунывал что нет никакой альтернативы простым смертным. Теперь есть. +<del>Закрывайте буржуйнет.</del> Поехали! 1. Идём сюда: <https://www.gosuslugi.ru/627603/1/form> -2. По приведенной инструкции генерируем файл запроса сертификата. Вкратце так (только вместо neonxp.ru указываем свой домен): +2. По приведенной инструкции генерируем файл запроса сертификата. Вкратце так + (только вместо neonxp.ru указываем свой домен): ``` openssl req -out neonxp.ru.csr -new -subj "/C=RU/CN=neonxp.ru" -addext "keyUsage = digitalSignature, keyEncipherment" -addext "subjectAltName=DNS: neonxp.ru" -addext "extendedKeyUsage = serverAuth" -newkey rsa:2048 -nodes -keyout neonxp.ru.key ``` - Важно! Нужно сохранить файл ключа neonxp.ru.key в надежном месте. Если он попадет в чужие руки — нужно будет отзывать сертификат и начинать всё заново!SAN и Wildcard пока не поддерживается, но что имеем — то и имеем. Но по слухам таки будут, как минимум SAN. + Важно! Нужно сохранить файл ключа neonxp.ru.key в надежном месте. Если он + попадет в чужие руки — нужно будет отзывать сертификат и начинать всё + заново!SAN и Wildcard пока не поддерживается, но что имеем — то и имеем. Но + по слухам таки будут, как минимум SAN. 3. Полученный файл csr загружаем там же на госуслуги -4. Ждём не долго (реально недолго, у меня прислали сертификат буквально через несколько минут!) -5. В ответ придёт файл с рандомным названием. Сохраняем его туда, где лежат другие файлы под названием “домен.crt” +4. Ждём не долго (реально недолго, у меня прислали сертификат буквально через + несколько минут!) +5. В ответ придёт файл с рандомным названием. Сохраняем его туда, где лежат + другие файлы под названием “домен.crt” 6. Скачиваем корневой и промежуточные сертификаты: ``` wget https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cerwget https://gu-st.ru/content/Other/doc/russian_trusted_sub_ca.cer````` @@ -32,7 +43,9 @@ title = 'Конфигурация HTTPS с сертификатом от Мин ``` cat neonxp.cer russian_trusted_sub_ca_pem.cer russian_trusted_root_ca_pem.cer > chain.cer ``` -9. Используем полученный бандл и сгенерированный в пункте 2 файл ключа в конфигурации вебсервера. У меня используется Caddy, поэтому мой конфиг выглядит так: +9. Используем полученный бандл и сгенерированный в пункте 2 файл ключа в + конфигурации вебсервера. У меня используется Caddy, поэтому мой конфиг + выглядит так: ``` neonxp.ru:443 { tls /data/ssl/chain.cer /data/ssl/neonxp.ru.key @@ -40,4 +53,5 @@ title = 'Конфигурация HTTPS с сертификатом от Мин } ``` -В общем-то, всё. Как настанет время продлевать — я дополню заметку деталями именно продления. Если будут вопросы — пишите, попробуем решить.
\ No newline at end of file +В общем-то, всё. Как настанет время продлевать — я дополню заметку деталями +именно продления. Если будут вопросы — пишите, попробуем решить.
\ No newline at end of file diff --git a/content/posts/2024-06-01-вам-не-нужны-пуши/index.md b/content/posts/2024-06-01-вам-не-нужны-пуши/index.md index 70937e9..6a603f6 100644 --- a/content/posts/2024-06-01-вам-не-нужны-пуши/index.md +++ b/content/posts/2024-06-01-вам-не-нужны-пуши/index.md @@ -7,56 +7,99 @@ title = 'Вам не нужны пуши!' Я не шучу. Серьёзно. -С неделю назад меня осенила крайне простая мысль, которая ранее, почему-то, мне не приходила. +С неделю назад меня осенила крайне простая мысль, которая ранее, почему-то, мне +не приходила. -Но сначала, две вводных, или, скажем, тезиса, которые послужили для вывода этой мысли: +Но сначала, две вводных, или, скажем, тезиса, которые послужили для вывода этой +мысли: # Тезис №1 -Меня действительно огорчает количество пушей которые постоянно сыплются мне на телефон. Это вызывает раздражение сразуна нескольких уровнях: +Меня действительно огорчает количество пушей которые постоянно сыплются мне на +телефон. Это вызывает раздражение сразуна нескольких уровнях: 1. Сам момент их прихода — я автоматически смотрю на телефон, что же пришло 2. Если я игнорирую пуш — он потом висит в шторке вызывая раздражение -3. Очень часто это сранная реклама от какого-нибудь озона или магнит маркета (бывш. KazanExpress) +3. Очень часто это сранная реклама от какого-нибудь озона или магнит маркета + (бывш. KazanExpress) -Но бывают же и полезные пуши! Например, уведомления от Госуслуг или информация что заказ доставлен ну илисообщения в мессенджерах. +Но бывают же и полезные пуши! Например, уведомления от Госуслуг или информация +что заказ доставлен ну илисообщения в мессенджерах. -То есть, как будто, ради вышеуказанных полезных пушей, я должен терпеть и тонну бесполезного говна! +То есть, как будто, ради вышеуказанных полезных пушей, я должен терпеть и тонну +бесполезного говна! # Тезис №2 -Ну и вторая вводная, которая, какмне кажется подтолкнула меня — я всегда любил *простые* и открытые технологии, какдревние, типа RSS, e-mail, irc, так и новые, но такие же простые и открытые, как, например, gemini (да, сейчас он наэтом сайте сломан, но я его починю на днях, честно!), федиверс и прочие подобные. Кстати, сейчас подумалось, что именноэти качества меня и так сильно влюбили в golang 🙂 +Ну и вторая вводная, которая, какмне кажется подтолкнула меня — я всегда любил +*простые* и открытые технологии, какдревние, типа RSS, e-mail, irc, так и новые, +но такие же простые и открытые, как, например, gemini (да, сейчас он наэтом +сайте сломан, но я его починю на днях, честно!), федиверс и прочие подобные. +Кстати, сейчас подумалось, что именноэти качества меня и так сильно влюбили в +golang 🙂 # Та самая простая мысль -На стыке двух вышеуказанных тезисов у меня внезапно для себя самого и синтезировалась крайне простая мысль: +На стыке двух вышеуказанных тезисов у меня внезапно для себя самого и +синтезировалась крайне простая мысль: -> **<u>Действительно</u>** важные вещи всегда приходят на электропочту, а сообщения в мессенджерах — это не срочно! +> **<u>Действительно</u>** важные вещи всегда приходят на электропочту, а +> сообщения в мессенджерах — это не срочно! -Таким образом, запретив на телефоне вообще все пуши кроме электропочты я избавился от этого угнетающего информационногошума, оставив только полезный сигнал. +Таким образом, запретив на телефоне вообще все пуши кроме электропочты я +избавился от этого угнетающего информационногошума, оставив только полезный +сигнал. -Хей, да на почте же один спам! — скажешь ты мне -На самом деле, уже давно нет. Я лично использую почту mail.ru (в данном случае, это не очень важно и относится к любой)и на ней спама как такового уже давно нет (если думаешь, что это не так, перепроверь, возможно, твои представленияустарели). При этом, самое великое в этом то, что почта (на самом деле, не важно, какая именно — mail.ru, yandex или,прости господи, гмейл) предоставляет гибкие фильтры входящей почты. И потратив буквально пару десятков минут можносформировать правила, чтобы, например, от того же озона пропускались только письма со статусом заказа и больше ничего. +На самом деле, уже давно нет. Я лично использую почту mail.ru (в данном случае, +это не очень важно и относится к любой)и на ней спама как такового уже давно нет +(если думаешь, что это не так, перепроверь, возможно, твои +представленияустарели). При этом, самое великое в этом то, что почта (на самом +деле, не важно, какая именно — mail.ru, yandex или,прости господи, гмейл) +предоставляет гибкие фильтры входящей почты. И потратив буквально пару десятков +минут можносформировать правила, чтобы, например, от того же озона пропускались +только письма со статусом заказа и больше ничего. -Вот так, древняя технология обычных, старых-добрых, писем позволяет решить проблему современных назойливых уведомлений! +Вот так, древняя технология обычных, старых-добрых, писем позволяет решить +проблему современных назойливых уведомлений! -При этом, почта не пушит проверять её постоянно! Самое главное её преимущество для меня — это её ассинхронность, вотличие от мессенджеров. Можно отключить от нее уведомления тоже, но завести себе правило, что раз в Н времени выделятьвремя на ее проверку. Самое главное — делать это в *комфортное для себя* время. +При этом, почта не пушит проверять её постоянно! Самое главное её преимущество +для меня — это её ассинхронность, вотличие от мессенджеров. Можно отключить от +нее уведомления тоже, но завести себе правило, что раз в Н времени выделятьвремя +на ее проверку. Самое главное — делать это в *комфортное для себя* время. # Так же как и на мессенджеры, кстати! -Выше я уже сказал, что мессенджеры — это не срочно. Ничего страшного не случится, если я отвечу через час-два-три иливообще вечером. Если будет что-то *действительно* срочное — мне можно и позвонить. Но, к счастью, мне повезло, что мояжизнь достаточно спокойная и *действительно* срочное почти не случается. Отрефлексируй, уважаемый читатель, насколько*действительно* срочные и важные вопросы, которые ты таковыми считаешь и которыми ежедневно дёргают тебя? И ответь себечестно, мир бы разрушился, если бы ты их отложил на комфортное для *себя*, а не других время? +Выше я уже сказал, что мессенджеры — это не срочно. Ничего страшного не +случится, если я отвечу через час-два-три иливообще вечером. Если будет что-то +*действительно* срочное — мне можно и позвонить. Но, к счастью, мне повезло, что +мояжизнь достаточно спокойная и *действительно* срочное почти не случается. +Отрефлексируй, уважаемый читатель, насколько*действительно* срочные и важные +вопросы, которые ты таковыми считаешь и которыми ежедневно дёргают тебя? И +ответь себечестно, мир бы разрушился, если бы ты их отложил на комфортное для +*себя*, а не других время? -Такой эксперимент я ставлю на себе уже неделю. Я практически не захожу в мессенджеры, всё действительно важное мнеприходит на почту, лишней рекламы я не вижу, нет никакого информационного шума, который буквально стал бичомсовременности. +Такой эксперимент я ставлю на себе уже неделю. Я практически не захожу в +мессенджеры, всё действительно важное мнеприходит на почту, лишней рекламы я не +вижу, нет никакого информационного шума, который буквально стал +бичомсовременности. # Вывод за неделю -Моё внутреннее состояние ощущается как очень спокойное и, главное, комфортное. Я чувствую полный контроль над тем, чтои когда я потребляю и нет никакого информационного насилия, как его называет [Столяров](http://stolyarov.info/)(хоть мне этот персонаж и кажется чрезвычайно радикальным и оттого отталкивающим, но что-то в его словах таки есть). +Моё внутреннее состояние ощущается как очень спокойное и, главное, комфортное. Я +чувствую полный контроль над тем, чтои когда я потребляю и нет никакого +информационного насилия, как его называет +[Столяров](http://stolyarov.info/)(хоть мне этот персонаж и кажется чрезвычайно +радикальным и оттого отталкивающим, но что-то в его словах таки есть). Считаю, что эксперимент оказался удачным, и я его продолжу! # Пишите письма! -Напомню раз пришлось к слову, пожалуй, свою электропочту: <i@neonxp.ru> или <a.kiryukhin@mail.ru> обе почты абсолютноравноценны, писать можно на любую. Очевидно из поста, что молниеносный ответ я не гарантирую, но, сам факт ответа вобозримое время гарантирован! +Напомню раз пришлось к слову, пожалуй, свою электропочту: <i@neonxp.ru> или +<a.kiryukhin@mail.ru> обе почты абсолютноравноценны, писать можно на любую. +Очевидно из поста, что молниеносный ответ я не гарантирую, но, сам факт ответа +вобозримое время гарантирован! 73!
\ No newline at end of file diff --git a/content/posts/2024-06-02-книги-1/index.md b/content/posts/2024-06-02-книги-1/index.md index 3afa3ab..ae1b669 100644 --- a/content/posts/2024-06-02-книги-1/index.md +++ b/content/posts/2024-06-02-книги-1/index.md @@ -7,10 +7,12 @@ title = 'Книжные рекомендации 1' Подумалось, почему бы не рекомендовать понравившиеся мне книги. -В прошлый раз, ещё [в VK рекомендовал](https://vk.com/wall-174034751_45) Азимовский цикл “Основание”. -А в этот раз рекомендую цикл фантастики Андре Нортона “Королева Солнца”. +В прошлый раз, ещё [в VK рекомендовал](https://vk.com/wall-174034751_45) +Азимовский цикл “Основание”. А в этот раз рекомендую цикл фантастики Андре +Нортона “Королева Солнца”. -Если без спойлеров — цикл описывает приключения помощника супер-карго Дейла на космическом корабле вольных торговцев -«Королева Солнца». Читается легко и увлекательно. Книги небольшие, проглатываются за пару часов. +Если без спойлеров — цикл описывает приключения помощника супер-карго Дейла на +космическом корабле вольных торговцев «Королева Солнца». Читается легко и +увлекательно. Книги небольшие, проглатываются за пару часов. [Скачать](andre_norton-queen_of_sun.zip)
\ No newline at end of file diff --git a/content/posts/2024-07-13-joplin/index.md b/content/posts/2024-07-13-joplin/index.md index 0f015d4..d722633 100644 --- a/content/posts/2024-07-13-joplin/index.md +++ b/content/posts/2024-07-13-joplin/index.md @@ -6,17 +6,35 @@ tags = ['it', 'joplin'] title = 'Заметочник Joplin' +++ -Просто хочу поделиться отличным приложением для заметок, вместо популярного Notion и менее популярного Obsidian. +Просто хочу поделиться отличным приложением для заметок, вместо популярного +Notion и менее популярного Obsidian. -Название на для русского уха звучит по дурацки — [Joplin](https://joplinapp.org/). Но, не смотря на такое название, самоприложение очень даже серьёзное. +Название на для русского уха звучит по дурацки — +[Joplin](https://joplinapp.org/). Но, не смотря на такое название, +самоприложение очень даже серьёзное. -В общем и целом, это достаточно продвинутый опенсорсный заметочник. В качестве формата текста он использует[Markdown](https://skillbox.ru/media/code/yazyk-razmetki-markdown-shpargalka-po-sintaksisu-s-primerami/). +В общем и целом, это достаточно продвинутый опенсорсный заметочник. В качестве +формата текста он использует Markdown[^1]. +[^1]:https://skillbox.ru/media/code/yazyk-razmetki-markdown-shpargalka-po-sintaksisu-s-primerami/ -Так же, из приятностей — большое количество плагинов (<https://github.com/topics/joplin-plugin>) и возможностьиспользовать свой сервер для синхронизации ([https://docs.vultr.com/how-to-host-a-joplin-server-with-docker-on-ubuntu)](https://docs.vultr.com/how-to-host-a-joplin-server-with-docker-on-ubuntu%29). -Для себя я, конечно же, поставил на свой сервак. Ну, а более бюджетно, если нет своего сервера — можно использовать любой WebDav сервер. В частности, [Облако Mail.Ru](https://help.mail.ru/cloud_web/app/webdav/) или Яндекс Диск (адрес <https://webdav.yandex.ru>, необходимо использовать [пароль приложения](https://yandex.ru/support/id/authorization/app-passwords.html)). +Так же, из приятностей — большое количество плагинов +(<https://github.com/topics/joplin-plugin>) и возможность использовать свой +сервер для синхронизации +https://docs.vultr.com/how-to-host-a-joplin-server-with-docker-on-ubuntu . +Для себя я, конечно же, поставил на свой сервак. Ну, а более бюджетно, если нет +своего сервера — можно использовать любой WebDav сервер. В частности, [Облако +Mail.Ru](https://help.mail.ru/cloud_web/app/webdav/) или Яндекс Диск (адрес +<https://webdav.yandex.ru>, необходимо использовать [пароль +приложения](https://yandex.ru/support/id/authorization/app-passwords.html)). -Но почему же стоит поднять свой сервер? Ну хотя бы для того, чтобы иметь возможность спокойно публиковать заметки, например, вот так: <https://notes.neonxp.ru/shares/UKB6Rkgt2yA2q1yrwpvb8F>. +Но почему же стоит поднять свой сервер? Ну хотя бы для того, чтобы иметь +возможность спокойно публиковать заметки, например, вот так: +<https://notes.neonxp.ru/shares/UKB6Rkgt2yA2q1yrwpvb8F>. -Или возможность совместной работы, например, со своей парой над общим списком покупок. +Или возможность совместной работы, например, со своей парой над общим списком +покупок. -~~P.S. Если нужен аккаунт на моем сервере синхронизации Joplin — пишите на почту, самостоятельной регистрации на сервере синхронизации не предусмотренно. Вот только не забудьте при синхронизации включить в настройках шифрование заметок. Я не хочу потом получать подозрения в нарушение приватности.~~
\ No newline at end of file +~~P.S. Если нужен аккаунт на моем сервере синхронизации Joplin — пишите на +почту, самостоятельной регистрации на сервере синхронизации не предусмотренно. +Вот только не забудьте при синхронизации включить в настройках шифрование +заметок. Я не хочу потом получать подозрения в нарушение приватности.~~
\ No newline at end of file diff --git a/content/posts/2024-07-21-bbs/index.md b/content/posts/2024-07-21-bbs/index.md index eb26f1b..87a68cc 100644 --- a/content/posts/2024-07-21-bbs/index.md +++ b/content/posts/2024-07-21-bbs/index.md @@ -7,16 +7,25 @@ title = 'Преемственность от BBS до Телеграма' Чисто на правах воскресной шизы. -Обнаружил для себя интересную тенденцию, в характерных своему времени инструментах для общения за последние 40+ лет: +Обнаружил для себя интересную тенденцию, в характерных своему времени +инструментах для общения за последние 40+ лет: -Если взять эволюционный ряд BBS (в т.ч. Фидо) → Форумы → Соцсети → Мессенджеры, то можно выделить в них несколько общихчерт: +Если взять эволюционный ряд BBS (в т.ч. Фидо) → Форумы → Соцсети → Мессенджеры, +то можно выделить в них несколько общихчерт: - Возможность общения 1—1 -- Возможность общения 1—М (оператор BBS, администратор форума может сделать какую-то тему в read-only и сам туда писать,получая что-то типа каналов в телеге или блога) -- Возможность общения М—М (обычный режим форума или многопользовательский чат в мессенджерах) -- Возможность обмена файлами (в т.ч. картинками, не зависимо от того, сразу они отображаются у собеседника или нет) +- Возможность общения 1—М (оператор BBS, администратор форума может сделать + какую-то тему в read-only и сам туда писать,получая что-то типа каналов в + телеге или блога) +- Возможность общения М—М (обычный режим форума или многопользовательский чат в + мессенджерах) +- Возможность обмена файлами (в т.ч. картинками, не зависимо от того, сразу они + отображаются у собеседника или нет) - Возможность проводить голосования (внезапно, да?) -Что из этого следует? Да ничего, просто забавно. Интересно, что будет в постмессенджеровую эпоху? По идее, какой быинструмент ни был — эти же черты будут присущи и ему. +Что из этого следует? Да ничего, просто забавно. Интересно, что будет в +постмессенджеровую эпоху? По идее, какой быинструмент ни был — эти же черты +будут присущи и ему. -P.S. Да, я тут не упомянул про мейллисты и условные IRC, но просто не знал куда и после чего их приткнуть. Но по факту,черты все те же самые.
\ No newline at end of file +P.S. Да, я тут не упомянул про мейллисты и условные IRC, но просто не знал куда +и после чего их приткнуть. Но по факту,черты все те же самые.
\ No newline at end of file diff --git a/content/posts/2024-09-26-hugo-wordpress/index.md b/content/posts/2024-09-26-hugo-wordpress/index.md index 9730c34..0173c95 100644 --- a/content/posts/2024-09-26-hugo-wordpress/index.md +++ b/content/posts/2024-09-26-hugo-wordpress/index.md @@ -5,9 +5,10 @@ tags = ['блог'] title = 'Hugo → WordPress' +++ -Поменял в блоге движок с модного Hugo на немодный бумерский WordPress. Почему? Да просто он удобнее. +Поменял в блоге движок с модного Hugo на немодный бумерский WordPress. Почему? +Да просто он удобнее. -Серьёзно, неужели этот гиковский пердолинг с сборкой блога через Git CI удобнее чем просто написать пост в браузере? -Ну если не врать себе, то конечно же нет. +Серьёзно, неужели этот гиковский пердолинг с сборкой блога через Git CI удобнее +чем просто написать пост в браузере? Ну если не врать себе, то конечно же нет. Так что да, с возрастом начинаешь ценить просто удобные, а не новомодные вещи.
\ No newline at end of file diff --git a/content/posts/2024-10-06-цитатник-рунета/index.md b/content/posts/2024-10-06-цитатник-рунета/index.md index a926d4c..6d383eb 100644 --- a/content/posts/2024-10-06-цитатник-рунета/index.md +++ b/content/posts/2024-10-06-цитатник-рунета/index.md @@ -7,24 +7,54 @@ tags = ['go', 'it', 'моё'] location = "Казань" +++ -В середине-конце нулевых был очень популярный сайт баш.орг.ру. Думаю, те, «кому за» помнят ещё такой. - -Сайт просто был сборником цитат из разных чатов, irc каналов или личных переписок. Изначально, был исключительно анимешно-айтишной направленности и тем самым для нас, студентов и гиков был крайне популярным местом. В своё время, он подарил мне много часов приятного времяпрепровождения и ламповых вечеров. - -Затем, когда БОР (как часто его сокращали) выиграл премию Рунета, на него хлынул поток, как сейчас бы сказали, «нормисов». Которые, уже в свою очередь, заполнили БОР всяким про отношения, офисно-планктонные темы, фейковыми цитатами, ответами на цитаты, ответами на ответы на цитаты и прочим подобным, далёким от изначального айтишного флёра, шлаком. - -В общем, как всегда, в андеграунд пришли нормисы и всё испортили. И да, баш скатился уже, по сути, к десятым годам. - -Примерно тогда же он для меня и закончился, ибо стал уже совсем не «торт». Потом он как-то жил больше декады за границами моего внимания. Успев при этом поменять адрес с зоны .ru на зону .im зачем-то. Ну а с началом СВО его админы окончательно сошли с ума и закрыли БОР который к тому времени и так едва ли был жив. На этом, его история окончательно закончилась. - -Однако, не смотря на это БОР был интересным и знаковым феноменом, который неотрывно вписан как в историю рунета так и в мою личную историю юности. - -Посему, я решил, так сказать, или возродить его, ну или, как минимум, сделать ему мемориал. - -Сказано — сделано. Купил домен, который отсылается к самому старому домену оригинала — [sh.org.ru](https://sh.org.ru) (sh является командной оболочкой, предком командной оболочки bash). За несколько часов написал скраппер по зеркалам и архивам бора, спарсил более 80К цитат. Затем, написал на golang простенький движок и всего за день запустил свой цитатник в свободное плавание! - -Из функций пока только вывод цитат по страницам, а так же вывод случайных 20 цитат + кнопка для выдачи других 20 случайных. Лично мне гораздо больше нравятся как раз случайные подборки. Их можно обновлять почти бесконечно! - -Да, он пока не умеет принимать новые цитаты (да и кто их будет слать то, лол?), да и нет других функций, типа голосований (классическими `[+]`, `[-]`, `[:|||:]`). Буду ли я это доделывать и как-то развивать? Не знаю. Возможно, время цитатника безвозвратно ушло. Но может быть и внезапный комбек. Кто знает 🤷♂️. В ближайшие дни я допилю и голосвалку и добавление цитат, но вряд ли буду в это инвестировать много времени. Есть ещё и мысль публиковать цитаты через ТГ бота простой пересылкой ему сообщений, а он уже их сам анонимизирует заменяя данные пользователей на обезличенные XXX и YYY и оформляет цитату как надо. Как вам такая идея? - -Вообще, я бы хотел это как-то, наверное, обсудить, относительно того как это развивать и стоит ли?
\ No newline at end of file +В середине-конце нулевых был очень популярный сайт баш.орг.ру. Думаю, те, «кому +за» помнят ещё такой. + +Сайт просто был сборником цитат из разных чатов, irc каналов или личных +переписок. Изначально, был исключительно анимешно-айтишной направленности и тем +самым для нас, студентов и гиков был крайне популярным местом. В своё время, он +подарил мне много часов приятного времяпрепровождения и ламповых вечеров. + +Затем, когда БОР (как часто его сокращали) выиграл премию Рунета, на него хлынул +поток, как сейчас бы сказали, «нормисов». Которые, уже в свою очередь, заполнили +БОР всяким про отношения, офисно-планктонные темы, фейковыми цитатами, ответами +на цитаты, ответами на ответы на цитаты и прочим подобным, далёким от +изначального айтишного флёра, шлаком. + +В общем, как всегда, в андеграунд пришли нормисы и всё испортили. И да, баш +скатился уже, по сути, к десятым годам. + +Примерно тогда же он для меня и закончился, ибо стал уже совсем не «торт». Потом +он как-то жил больше декады за границами моего внимания. Успев при этом поменять +адрес с зоны .ru на зону .im зачем-то. Ну а с началом СВО его админы +окончательно сошли с ума и закрыли БОР который к тому времени и так едва ли был +жив. На этом, его история окончательно закончилась. + +Однако, не смотря на это БОР был интересным и знаковым феноменом, который +неотрывно вписан как в историю рунета так и в мою личную историю юности. + +Посему, я решил, так сказать, или возродить его, ну или, как минимум, сделать +ему мемориал. + +Сказано — сделано. Купил домен, который отсылается к самому старому домену +оригинала — [sh.org.ru](https://sh.org.ru) (sh является командной оболочкой, +предком командной оболочки bash). За несколько часов написал скраппер по +зеркалам и архивам бора, спарсил более 80К цитат. Затем, написал на golang +простенький движок и всего за день запустил свой цитатник в свободное плавание! + +Из функций пока только вывод цитат по страницам, а так же вывод случайных 20 +цитат + кнопка для выдачи других 20 случайных. Лично мне гораздо больше нравятся +как раз случайные подборки. Их можно обновлять почти бесконечно! + +Да, он пока не умеет принимать новые цитаты (да и кто их будет слать то, лол?), +да и нет других функций, типа голосований (классическими `[+]`, `[-]`, +`[:|||:]`). Буду ли я это доделывать и как-то развивать? Не знаю. Возможно, +время цитатника безвозвратно ушло. Но может быть и внезапный комбек. Кто знает +🤷♂️. В ближайшие дни я допилю и голосвалку и добавление цитат, но вряд ли буду +в это инвестировать много времени. Есть ещё и мысль публиковать цитаты через ТГ +бота простой пересылкой ему сообщений, а он уже их сам анонимизирует заменяя +данные пользователей на обезличенные XXX и YYY и оформляет цитату как надо. Как +вам такая идея? + +Вообще, я бы хотел это как-то, наверное, обсудить, относительно того как это +развивать и стоит ли?
\ No newline at end of file diff --git a/content/posts/2024-10-17-книги-2/index.md b/content/posts/2024-10-17-книги-2/index.md index 2785553..adc9f4e 100644 --- a/content/posts/2024-10-17-книги-2/index.md +++ b/content/posts/2024-10-17-книги-2/index.md @@ -15,9 +15,12 @@ location = "Казань" Артур Кларк, 1973 -Фантастическая повесть о встрече человечества с необитаемым(?) инопланетным кораблём, который прилетел в нашу солнечную систему. На изображении выше — вид этого корабля изнутри. +Фантастическая повесть о встрече человечества с необитаемым(?) инопланетным +кораблём, который прилетел в нашу солнечную систему. На изображении выше — вид +этого корабля изнутри. -- На сайте lib.ru: [www.lib.ru/KLARK/rama1.txt](http://www.lib.ru/KLARK/rama1.txt) +- На сайте lib.ru: + [www.lib.ru/KLARK/rama1.txt](http://www.lib.ru/KLARK/rama1.txt) - В виде аудиокниги: <https://akniga.org/klark-artur-svidanie-s-ramoy> - Если надо — могу выложить по запросу в формате fb2 @@ -25,7 +28,9 @@ location = "Казань" Вернор Виндж, 1999 -Об экспедиции двух разных человеческих колоний к странной звезде, имеющей свойство выключаться на 200 лет. Причиной отправки стали принятые с окрестной планеты радио сигналы, свидетельствующие о наличии разумной жизни на ней. +Об экспедиции двух разных человеческих колоний к странной звезде, имеющей +свойство выключаться на 200 лет. Причиной отправки стали принятые с окрестной +планеты радио сигналы, свидетельствующие о наличии разумной жизни на ней. Книга является частью цикла, и я прикладываю цикл целиком: diff --git a/content/posts/2024-11-15-hugo/index.md b/content/posts/2024-11-15-hugo/index.md index f590fe8..b25a9be 100644 --- a/content/posts/2024-11-15-hugo/index.md +++ b/content/posts/2024-11-15-hugo/index.md @@ -8,8 +8,10 @@ location = 'Казань' Так, ну я вернулся на hugo :D -Основная причина — я нашел решение основной моей проблемы с Hugo, а именно, удобной публикации. +Основная причина — я нашел решение основной моей проблемы с Hugo, а именно, +удобной публикации. А как именно решил — тема отдельного поста на потом. -Ну и тему наконец-то сделал сам с нуля. Как говорится, хочешь сделать хорошо — сделай это сам.
\ No newline at end of file +Ну и тему наконец-то сделал сам с нуля. Как говорится, хочешь сделать хорошо — +сделай это сам.
\ No newline at end of file diff --git a/content/posts/2024-11-17-obsidian/index.md b/content/posts/2024-11-17-obsidian/index.md index 64253cc..49e4b43 100644 --- a/content/posts/2024-11-17-obsidian/index.md +++ b/content/posts/2024-11-17-obsidian/index.md @@ -8,45 +8,56 @@ location = "Казань" image = "logo.webp" +++ -Некоторое время назад я [писал](/posts/2024-07-13-joplin/) про заметочник Joplin. +Некоторое время назад я [писал](/posts/2024-07-13-joplin/) про заметочник +Joplin. -С тех пор мои вкусы несколько поменялись и я открыл для себя его величество [Obsidian](https://obsidian.md/). +С тех пор мои вкусы несколько поменялись и я открыл для себя его величество +[Obsidian](https://obsidian.md/). -В целом он такой же заметочник, с ± тем же функционалом, но имеет для меня одну особенность, которая буквально -переворачивает всё. Это мощнейшая система плагинов. Серьёзно, я нашел плагины которые покрывают для меня всё, кроме -одного (но об этом позже). +В целом он такой же заметочник, с ± тем же функционалом, но имеет для меня одну +особенность, которая буквально переворачивает всё. Это мощнейшая система +плагинов. Серьёзно, я нашел плагины которые покрывают для меня всё, кроме одного +(но об этом позже). # Что такое Obisidian? -Obsidian представляет собой приложение для ведения персональных баз данных, основанное на принципах локальных файлов -Markdown. Это значит, что ваши данные хранятся в виде обычных текстовых файлов, что обеспечивает максимальную гибкость +Obsidian представляет собой приложение для ведения персональных баз данных, +основанное на принципах локальных файлов Markdown. Это значит, что ваши данные +хранятся в виде обычных текстовых файлов, что обеспечивает максимальную гибкость и независимость от облачных сервисов. -Приложение работает на операционных системах: Windows, macOS, Linux, iOS, Android. +Приложение работает на операционных системах: Windows, macOS, Linux, iOS, +Android. <!--more--> # Основные функции и преимущества 1. **Граф связей** — да, он есть уже много где, но нельзя его не упомянуть. -2. **Markdown** — очень приятно, что все заметки хранятся в Markdown, что обеспечивает максимальную интероперабельность - и переносимость -3. **Плагины** — плагины пишутся на JS/TS и их много. Даже не так, их **МНОГО**. Что приятно, они скачиваются и лежат - в той же директории что и основное хранилище, а это важно для следующего пункта -4. **Синхронизация** — она есть. Но вроде как платная. Но мне это и не интересно, я использую Syncthing. Просто шарю - через него директорию хранилища по схеме оба ноутбука <-> NAS <-> Android. При этом синкаются все плагины и - настройки. -5. **Скорость** — не смотря на то, что он написан на проклятом электроне, работает достаточно шустро, претензий нет. -6. **Доска для рисования** — мелочь, конечно, но удобно, когда надо на скорую руку накидать небольшую схемку. В конце - этого поста как раз есть пример такой схемки. +2. **Markdown** — очень приятно, что все заметки хранятся в Markdown, что + обеспечивает максимальную интероперабельность и переносимость +3. **Плагины** — плагины пишутся на JS/TS и их много. Даже не так, их **МНОГО**. + Что приятно, они скачиваются и лежат в той же директории что и основное + хранилище, а это важно для следующего пункта +4. **Синхронизация** — она есть. Но вроде как платная. Но мне это и не + интересно, я использую Syncthing. Просто шарю через него директорию + хранилища по схеме оба ноутбука <-> NAS <-> Android. При этом синкаются все + плагины и настройки. +5. **Скорость** — не смотря на то, что он написан на проклятом электроне, + работает достаточно шустро, претензий нет. +6. **Доска для рисования** — мелочь, конечно, но удобно, когда надо на скорую + руку накидать небольшую схемку. В конце этого поста как раз есть пример + такой схемки. # Минусы -1. **Проприетарность** — Obsidian хоть и в целом бесплатный, но он не свободный и даже не opensource. Да, это серьёзный - минус, но он компенсируется тем, что хотябы вся база данных не в проприетарном формате. И в случае чего можно будет - с наименьшими проблемами свалить куда-нибудь. -2. **Electron** — ну это скорей мой личный пунктик. Но при этом приходиться смиряться с электроном что на Obsidian что - на VSCode (VSCodium, конечно же), потому что лучше-то и нет. +1. **Проприетарность** — Obsidian хоть и в целом бесплатный, но он не свободный + и даже не opensource. Да, это серьёзный минус, но он компенсируется тем, что + хотябы вся база данных не в проприетарном формате. И в случае чего можно + будет с наименьшими проблемами свалить куда-нибудь. +2. **Electron** — ну это скорей мой личный пунктик. Но при этом приходиться + смиряться с электроном что на Obsidian что на VSCode (VSCodium, конечно же), + потому что лучше-то и нет. Это только то, что сейчас пришло в голову. @@ -60,7 +71,8 @@ Markdown. Это значит, что ваши данные хранятся в https://blacksmithgu.github.io/obsidian-dataview/ -Ну это просто must-have плагин, который позволяет обращаться с вашими заметками именно как с базой данных, не меньше. +Ну это просто must-have плагин, который позволяет обращаться с вашими заметками +именно как с базой данных, не меньше. Например, можно создать новый документ, написать в него @@ -71,7 +83,8 @@ https://blacksmithgu.github.io/obsidian-dataview/ ``` ``` -и волшебным образом вместо этого блока появятся все невыполненные задачи, а вот так +и волшебным образом вместо этого блока появятся все невыполненные задачи, а вот +так ``` ```dataview @@ -82,11 +95,12 @@ https://blacksmithgu.github.io/obsidian-dataview/ мы получим все выполненные. -Язык запросов [очень мощный](https://blacksmithgu.github.io/obsidian-dataview/queries/structure/), в нём сто́ит -разобраться. +Язык запросов очень мощный[^1], в нём сто́ит разобраться. +[^1]:https://blacksmithgu.github.io/obsidian-dataview/queries/structure/ -Ещё есть возможность делать однострочные запросы, например, в домашней заметке (которая у меня открывается по умолчанию) -у меня есть ссылка на именно сегодняшнюю заметку ежедневного журнала. Сделано вот так: +Ещё есть возможность делать однострочные запросы, например, в домашней заметке +(которая у меня открывается по умолчанию) у меня есть ссылка на именно +сегодняшнюю заметку ежедневного журнала. Сделано вот так: ``` `=link(dateformat(date(today), "yyyy.MM.dd"))` @@ -96,8 +110,8 @@ https://blacksmithgu.github.io/obsidian-dataview/ https://silentvoid13.github.io/Templater/ -Этот плагин позволяет мне задать некоторым директориям умолчальный шаблон. Например, вот такой у меня шаблон для -ежедневных журналов: +Этот плагин позволяет мне задать некоторым директориям умолчальный шаблон. +Например, вот такой у меня шаблон для ежедневных журналов: ``` <%* @@ -157,26 +171,33 @@ ___ Остальные тоже крутые, но я их приведу просто списком: -- [tasks](https://publish.obsidian.md/tasks/Introduction) — помогает более богато управлять - задачами. В частности, у меня проставляет дату завершения задачи, и проставляет даты дедлайна и прочее. -- [reminder](https://uphy.github.io/obsidian-reminder/) — трекает и напоминает про задачи -- [calendar](https://github.com/liamcain/obsidian-calendar-plugin) — просто миникалендарь в боковой панели -- [homepage](https://github.com/mirnovov/obsidian-homepage) — позволяет задать произвольную заметку "домашней" -- [icon-folder](https://github.com/timolins/obsidian-icon-folder) — позволяет задавать директориям и заметкам - произвольные иконки. Пример есть как раз на скриншоте выше. -- [pomodoro-timer](https://github.com/eatgrass/obsidian-pomodoro-timer) — думаю, из названия и так понятно +- [tasks](https://publish.obsidian.md/tasks/Introduction) — помогает более + богато управлять задачами. В частности, у меня проставляет дату завершения + задачи, и проставляет даты дедлайна и прочее. +- [reminder](https://uphy.github.io/obsidian-reminder/) — трекает и напоминает + про задачи +- [calendar](https://github.com/liamcain/obsidian-calendar-plugin) — просто + миникалендарь в боковой панели +- [homepage](https://github.com/mirnovov/obsidian-homepage) — позволяет задать + произвольную заметку "домашней" +- [icon-folder](https://github.com/timolins/obsidian-icon-folder) — позволяет + задавать директориям и заметкам произвольные иконки. Пример есть как раз на + скриншоте выше. +- [pomodoro-timer](https://github.com/eatgrass/obsidian-pomodoro-timer) — думаю, + из названия и так понятно - [kanban](https://publish.obsidian.md/kanban/) — шикарнейший канбан плагин # А что же мне не хватает? -Я упомянул выше что мне кое чего не хватает. А именно, постить заметку в мой блог по протоколу -[Micropub](https://indieweb.org/Micropub). +Я упомянул выше что мне кое чего не хватает. А именно, постить заметку в мой +блог по протоколу [Micropub](https://indieweb.org/Micropub). -Только из-за Obsidian и того, что он использует Markdown я опять [вернулся на Hugo](/posts/2024-11-15-hugo/), который -так же рендерится из Markdown. +Только из-за Obsidian и того, что он использует Markdown я опять [вернулся на +Hugo](/posts/2024-11-15-hugo/), который так же рендерится из Markdown. -«Но Hugo это же генератор статичных сайтов, куда ты ему будешь отправлять заметку для публикации?» — можешь спросить -меня ты. А я отвечу что у меня вот такой план: +«Но Hugo это же генератор статичных сайтов, куда ты ему будешь отправлять +заметку для публикации?» — можешь спросить меня ты. А я отвечу что у меня вот +такой план: ```mermaid graph TB @@ -198,15 +219,18 @@ style b5 fill:#222c2c, stroke:#20acaa То что выделено красным — ещё не существует в природе. -micropub сервер для hugo я уже начал писать. Да, есть nanopub сервер, но у него есть два серьёзных недостатка, это PHP и -то что его сделал не я. +micropub сервер для hugo я уже начал писать. Да, есть nanopub сервер, но у него +есть два серьёзных недостатка, это PHP и то что его сделал не я. -micropub плагин для obsidian я вижу сделать на основе существующего плагина rest-publish. Ну или как пойдёт. +micropub плагин для obsidian я вижу сделать на основе существующего плагина +rest-publish. Ну или как пойдёт. В общем, меня ждёт ещё очень много весёлого дрочева с этим всем. # Закругляюсь -Пожалуй, пока на этом всё. Поделился как радостью использования Obsidian, так и планами на пет-проекты, что ещё надо-то? +Пожалуй, пока на этом всё. Поделился как радостью использования Obsidian, так и +планами на пет-проекты, что ещё надо-то? -Если что, пишите комментарии. Лучше всего здесь, но можно и во всяких телеграмах-вкшках.
\ No newline at end of file +Если что, пишите комментарии. Лучше всего здесь, но можно и во всяких +телеграмах-вкшках.
\ No newline at end of file diff --git a/content/posts/2024-11-27-hyperlocality/index.md b/content/posts/2024-11-27-hyperlocality/index.md index 75fb347..19a3d32 100644 --- a/content/posts/2024-11-27-hyperlocality/index.md +++ b/content/posts/2024-11-27-hyperlocality/index.md @@ -7,134 +7,162 @@ tags = [ "разное", "IT", "размышления", "гиперлокаль location = "Казань" +++ -Это очередной пост моих пространных рассуждений про тенденции и будущее интернета, которых в последнее время становится -как-то многовато. Вероятно, в последствии, это станет даже серией постов. +Это очередной пост моих пространных рассуждений про тенденции и будущее +интернета, которых в последнее время становится как-то многовато. Вероятно, в +последствии, это станет даже серией постов. Этот же я воспринимаю, как вводный в лор гиперлокальности. -Сначала, пожалуй, расскажу про посылки, а потом уже о том, куда они ведут, и какие из этого можно сделать выводы. +Сначала, пожалуй, расскажу про посылки, а потом уже о том, куда они ведут, и +какие из этого можно сделать выводы. <!--more--> # Посылка -Думаю, все мы заметили как много вокруг стало ИИ инструментов. Сейчас ИИ на хайпе и его засовывают буквально -куда можно и куда нельзя. Само по себе меня это не беспокоит. Я отношусь к ИИ как к просто очередному инструменту, -который можно и нужно использовать там, где он применим. С этим нет проблем. -Пройдёт какое-то время и ИИ инструменты займут ниши, где они наиболее уместны и где от них наибольшая польза. -Однако тут есть и негативный нюанс. Этот инструмент будет способствовать в том числе и тому, -что интернет станет (если ещё не стал!) по сути своей «мёртвым». Не мёртвым буквально, а «мёртвым» в том же смысле, в -котором в «Руководстве путешествующего автостопом по галактики» Д. Адамса была вселенная обозначена необитаемой. +Думаю, все мы заметили как много вокруг стало ИИ инструментов. Сейчас ИИ на +хайпе и его засовывают буквально куда можно и куда нельзя. Само по себе меня это +не беспокоит. Я отношусь к ИИ как к просто очередному инструменту, который можно +и нужно использовать там, где он применим. С этим нет проблем. Пройдёт какое-то +время и ИИ инструменты займут ниши, где они наиболее уместны и где от них +наибольшая польза. Однако тут есть и негативный нюанс. Этот инструмент будет +способствовать в том числе и тому, что интернет станет (если ещё не стал!) по +сути своей «мёртвым». Не мёртвым буквально, а «мёртвым» в том же смысле, в +котором в «Руководстве путешествующего автостопом по галактики» Д. Адамса была +вселенная обозначена необитаемой. {{< quote author="Д. Адамс" source="Ресторан «У края Вселенной», 19 глава" >}} Вселенная — кое-какая информация, облегчающая существование в ней. <...> -4. Население: Отсутствует. -Известно, что существует бесконечное множество планет. -Это объясняется той простой причиной, что пространство, в котором они могут существовать, также -бесконечно. Однако не всякая из этих планет обитаема. Отсюда следует, что число обитаемых планет конечно. -Частное от деления любого конечного числа на бесконечность стремится к нулю и не дает остатка, -следовательно, можно заключить, что средняя численность населения планет Вселенной равна нулю. Отсюда -следует, что численность населения во всей Вселенной также равна нулю, и потому все люди, которые порой -попадаются на вашем пути, являются продуктом вашего воспаленного воображения. -{{< /quote >}} +4. Население: Отсутствует. Известно, что существует бесконечное множество +планет. Это объясняется той простой причиной, что пространство, в котором они +могут существовать, также бесконечно. Однако не всякая из этих планет обитаема. +Отсюда следует, что число обитаемых планет конечно. Частное от деления любого +конечного числа на бесконечность стремится к нулю и не дает остатка, +следовательно, можно заключить, что средняя численность населения планет +Вселенной равна нулю. Отсюда следует, что численность населения во всей +Вселенной также равна нулю, и потому все люди, которые порой попадаются на вашем +пути, являются продуктом вашего воспаленного воображения. {{< /quote >}} # Следствие -Количество сгенерированного ИИ контента, ИИ ботов пишущих комментарии и иным способом имитирующих людей будет -расти нелинейно. Таким образом будет «размываться» весьма конечное количиство «живых» пользователей «неживыми» до того, -что все эти миллиарды «живых» пользователей будут лишь статистической погрешностью относительно «неживых» ИИ ботов. +Количество сгенерированного ИИ контента, ИИ ботов пишущих комментарии и иным +способом имитирующих людей будет расти нелинейно. Таким образом будет +«размываться» весьма конечное количиство «живых» пользователей «неживыми» до +того, что все эти миллиарды «живых» пользователей будут лишь статистической +погрешностью относительно «неживых» ИИ ботов. # Как это повлияет на наше восприятие реальности? -Представьте себе мир, где большинство сообщений, комментариев и публикаций создаются ИИ. Мы будем жить в мире, где -трудно отличить реальность от иллюзии. Где каждый день нам придётся задаваться вопросом: кто написал этот комментарий – -реальный человек или искусственный интеллект? -Это приведёт к тому, что доверие к информации в интернете начнёт стремительно падать. Люди станут всё больше сомневаться -в подлинности того, что видят и читают. В итоге, интернет превратится в огромное море данных, где настоящие голоса людей -тонут в океане фальшивок и симуляций. +Представьте себе мир, где большинство сообщений, комментариев и публикаций +создаются ИИ. Мы будем жить в мире, где трудно отличить реальность от иллюзии. +Где каждый день нам придётся задаваться вопросом: кто написал этот комментарий – +реальный человек или искусственный интеллект? Это приведёт к тому, что доверие к +информации в интернете начнёт стремительно падать. Люди станут всё больше +сомневаться в подлинности того, что видят и читают. В итоге, интернет +превратится в огромное море данных, где настоящие голоса людей тонут в океане +фальшивок и симуляций. ![Киберпанк который мы заслужили](/posts/2024-11-27-hyperlocality/braindance.webp "Киберпанк который мы заслужили" ) # Гиперлокальность -Уже сейчас вполне себе просматиривается контур того, что я, за неимением лучшего термина, называю «Гиперлокальностью». -Термин мне нравится тем что он, с одной стороны, хорошо описывает то, куда, по моему мнению, мы придём, -а с другой стороны, названием отсылает к «гипертексту». +Уже сейчас вполне себе просматиривается контур того, что я, за неимением лучшего +термина, называю «Гиперлокальностью». Термин мне нравится тем что он, с одной +стороны, хорошо описывает то, куда, по моему мнению, мы придём, а с другой +стороны, названием отсылает к «гипертексту». ## Что я под этим подразумеваю? -Помните старые времена, когда интернет только-только появлялся и из каждого утюга звучало как одно из его преимуществ, -то, что «вы сможете находить себе собеседников и друзьей в любой точке мира, не выходя из дома». Звучало многообещающе, -и в каком-то смысле, оно так и было. +Помните старые времена, когда интернет только-только появлялся и из каждого +утюга звучало как одно из его преимуществ, то, что «вы сможете находить себе +собеседников и друзьей в любой точке мира, не выходя из дома». Звучало +многообещающе, и в каком-то смысле, оно так и было. ![Наивное представление из 90х о том, что интернет будет нас соединять](/posts/2024-11-27-hyperlocality/90e.webp "Наивное представление из 90х о том, что интернет будет нас соединять") -Но что происходит сейчас? Интернет, вместо того чтобы соединять людей по всему миру, начинает дробиться на маленькие -замкнутые круги. Почему так происходит? Ответ кроется в недоверии. Когда невозможно понять, кто перед тобой – настоящий -человек или ИИ-бот, люди начинают замыкаться в узких кругах тех, кому они доверяют. +Но что происходит сейчас? Интернет, вместо того чтобы соединять людей по всему +миру, начинает дробиться на маленькие замкнутые круги. Почему так происходит? +Ответ кроется в недоверии. Когда невозможно понять, кто перед тобой – настоящий +человек или ИИ-бот, люди начинают замыкаться в узких кругах тех, кому они +доверяют. {{< quote author="Януш Леон Вишневский" source="Одиночество в Сети" >}} -Интернет, он не сближает. Это скопление одиночества. Мы вроде вместе, но каждый один. -Иллюзия общения, иллюзия дружбы, иллюзия жизни… +Интернет, он не сближает. Это скопление одиночества. Мы вроде вместе, но каждый +один. Иллюзия общения, иллюзия дружбы, иллюзия жизни… {{< /quote >}} -Эти круги становятся всё меньше и меньше, пока не превращаются в замкнутые сообщества, где общение ограничено только -теми, кого знаешь лично. Таким образом, получается некая WebOfTrust, но только по валидации «человечности». -Это напоминает модель «доверительных сетей», которая существовала задолго до появления интернета, но теперь она -приобретает новый смысл в цифровую эпоху. - -А личные знакомства они, как правило, достаточно локальные. А следовательно, в ближайшее время мы увидим расцвет -изолированных «анклавов» из _лично_ знакомых между собой людей, который и будут существовать своими маленькими, -**гиперлокальными** сообществами. Размер при этом может быть почти любой, как группка из трёх друзей, так и небольшой -клуб из пары десятков _лично знакомых_ единомышленников. - -Причём, примеры гиперлокальных сообществ уже сейчас есть и в большом количестве. Например, у меня с друзьями уже почти -10 лет есть свой маленький чатик на шесть голов. И, в принципе, этого круга общения мне вполне хватает. И в своём кругу +Эти круги становятся всё меньше и меньше, пока не превращаются в замкнутые +сообщества, где общение ограничено только теми, кого знаешь лично. Таким +образом, получается некая WebOfTrust, но только по валидации «человечности». Это +напоминает модель «доверительных сетей», которая существовала задолго до +появления интернета, но теперь она приобретает новый смысл в цифровую эпоху. + +А личные знакомства они, как правило, достаточно локальные. А следовательно, в +ближайшее время мы увидим расцвет изолированных «анклавов» из _лично_ знакомых +между собой людей, который и будут существовать своими маленькими, +**гиперлокальными** сообществами. Размер при этом может быть почти любой, как +группка из трёх друзей, так и небольшой клуб из пары десятков _лично знакомых_ +единомышленников. + +Причём, примеры гиперлокальных сообществ уже сейчас есть и в большом количестве. +Например, у меня с друзьями уже почти 10 лет есть свой маленький чатик на шесть +голов. И, в принципе, этого круга общения мне вполне хватает. И в своём кругу мы, конечно же, уверенны в «человечности» каждого из нас, ибо знакомы и ИРЛ. -Причём, «достаточность» этого кружка для меня такая, что если у меня, вдруг, магическим образом, останется только этот -чатик, мой NAS в который загруженно примерно 50К книг и несколько любимых сериалов, и, конечно, VPN до работы, чтобы -я мог зарабатывать на жизнь — то, это и будет вся моя гиперлокальная сеть. И как будто, не сильно то я и потеряю если -останется только это, ну или как минимум, уж точно выживу. -Если что, это именно магически и гипотетически, но тем не менее. +Причём, «достаточность» этого кружка для меня такая, что если у меня, вдруг, +магическим образом, останется только этот чатик, мой NAS в который загруженно +примерно 50К книг и несколько любимых сериалов, и, конечно, VPN до работы, чтобы +я мог зарабатывать на жизнь — то, это и будет вся моя гиперлокальная сеть. И как +будто, не сильно то я и потеряю если останется только это, ну или как минимум, +уж точно выживу. Если что, это именно магически и гипотетически, но тем не +менее. -Так же, подобные кружки, я видел и, -например, у своих старших родственников. Они, в основном, устраивают гиперлокальные «кружки» в том же вотсаппе. Там -они делятся рекомендациями фильмов, рецептами, шутками, новостями и прочим подобным. +Так же, подобные кружки, я видел и, например, у своих старших родственников. +Они, в основном, устраивают гиперлокальные «кружки» в том же вотсаппе. Там они +делятся рекомендациями фильмов, рецептами, шутками, новостями и прочим подобным. ## А к чему я это всё? -Да к тому что на текущем этапе развития интернета, мы всё больше уходим от **глобальной** сети к **гиперлокальной**. -И, наверное, мне это даже вполне нравится. Это как-то... уютно чтоли. +Да к тому что на текущем этапе развития интернета, мы всё больше уходим от +**глобальной** сети к **гиперлокальной**. И, наверное, мне это даже вполне +нравится. Это как-то... уютно чтоли. ![Примерно так я визуализирую гиперлокальное сообщество](/posts/2024-11-27-hyperlocality/camp.webp "Примерно так я визуализирую гиперлокальное сообщество" ) # Перспективы -Дисклеймер. Дальше идут мои размышления, которые основываются в основном на интуитивных, а не объективных предположениях +Дисклеймер. Дальше идут мои размышления, которые основываются в основном на +интуитивных, а не объективных предположениях -С развитием этого тренда будут всё больше и больше отмирать крупные социальные сети типа ВК или РКНбука. История сделает -виток и восскресит т.н. локалки, которые были популярны в 90е-00е. Конечно же, уже в другом облике. Никто не будет -лазать по чердакам чтобы протянуть витуху между соседями, но именно суть останется. А суть в том, что будет бо́льшая -концентрация на небольшом числе условно локальных ресурсов, где человек будет только со своими друзьями, а «большой» -интернет отходит на второй план. +С развитием этого тренда будут всё больше и больше отмирать крупные социальные +сети типа ВК или РКНбука. История сделает виток и восскресит т.н. локалки, +которые были популярны в 90е-00е. Конечно же, уже в другом облике. Никто не +будет лазать по чердакам чтобы протянуть витуху между соседями, но именно суть +останется. А суть в том, что будет бо́льшая концентрация на небольшом числе +условно локальных ресурсов, где человек будет только со своими друзьями, а +«большой» интернет отходит на второй план. -Так же могут получить развитие indieweb технологии, а так же self-hosted решения для общения, например, Matrix. -Эти инструменты потребуются как ответ на заполненные ботами и спамом соцсети и мессенджеры. -Конечно же, всё что нужно не затащить в свою уютненькую локалочку, но вылазка за недостающей инфой в интернет будет -ощущаться, как выход из своей зоны комфорта в дикую и опасную пустошь. +Так же могут получить развитие indieweb технологии, а так же self-hosted решения +для общения, например, Matrix. Эти инструменты потребуются как ответ на +заполненные ботами и спамом соцсети и мессенджеры. Конечно же, всё что нужно не +затащить в свою уютненькую локалочку, но вылазка за недостающей инфой в интернет +будет ощущаться, как выход из своей зоны комфорта в дикую и опасную пустошь. ![Вылазка в «большой» интернет](/posts/2024-11-27-hyperlocality/in-internet.webp "Вылазка в «большой» интернет") # Окончание? -Я отдаю себе отчёт что то, что я написал выше — весьма сумбурно. Но это следствие того, что я ещё не до конца исследовал -эту тему, и многие мысли на эту тему в моей голове пока ещё не сформированы в слова, а остаются на интуитивном уровне. +Я отдаю себе отчёт что то, что я написал выше — весьма сумбурно. Но это +следствие того, что я ещё не до конца исследовал эту тему, и многие мысли на эту +тему в моей голове пока ещё не сформированы в слова, а остаются на интуитивном +уровне. -А написал я это, скорее как повод начать дискуссию на эту тему. Мне интересно, что вы думаете по этой теме. Возможно, -мнение со стороны меня наведёт на еще какие мысли. +А написал я это, скорее как повод начать дискуссию на эту тему. Мне интересно, +что вы думаете по этой теме. Возможно, мнение со стороны меня наведёт на еще +какие мысли. -В дальнейшем у меня уже есть некоторые мысли на развитие темы, но уже в каких то отдельных аспектах. +В дальнейшем у меня уже есть некоторые мысли на развитие темы, но уже в каких то +отдельных аспектах. Остаёмся на связи, 73!
\ No newline at end of file diff --git a/content/posts/2024-11-29-hobbies/index.md b/content/posts/2024-11-29-hobbies/index.md index b22c8a1..ac83eb0 100644 --- a/content/posts/2024-11-29-hobbies/index.md +++ b/content/posts/2024-11-29-hobbies/index.md @@ -8,18 +8,35 @@ location = "Казань" image="dozor.webp" +++ -На днях задался вопросом вынесенным в заголовок. Причём не столько над эволюцией, сколько о том, откуда они взялись. +На днях задался вопросом вынесенным в заголовок. Причём не столько над +эволюцией, сколько о том, откуда они взялись. -Раньше я часто играл в ночные полевые игры, такие как «Дозоры» и «Энкаунтеры». Они были мне очень интересны и играли важную роль в моей жизни. Даже, я бы сказал, во взрослении, так как пришлись на возраст 19–25 лет. +Раньше я часто играл в ночные полевые игры, такие как «Дозоры» и «Энкаунтеры». +Они были мне очень интересны и играли важную роль в моей жизни. Даже, я бы +сказал, во взрослении, так как пришлись на возраст 19–25 лет. <!--more--> -Сейчас давно уже не играю, но многие мои нынешние увлечения берут начало именно оттуда. Например, самый очевидный пример — интерес к картографии и ГИСам (геоинформационным системам), поскольку для «Дозоров» они были неотъемлемой частью. Также сюда относится и то, что я хорошо ориентируюсь в своем городе и немного интересуюсь его историей. - -Кроме того, можно проследить интерес к радиоэлектронике: пару раз, когда с командой организовывали игры, я придумывал задания, основанные на простых электронных устройствах, собранных на микроконтроллерах. - -Туда же и любовь к исключительно ноутбукам, да и вообще переносной, что важно, технике. Теплое отношение к простым, надёжным, нетребовательным технологиям. Это всё оттуда же! - -Любовь к программированию у меня возникла чуть раньше, поэтому её связать с этими играми я не могу. Здесь, скорее случилось наоборот. И я не менее трех раз даже порывался писать собственный «движок» для НПИ. Но, пока ни разу не успешно. Вероятно, меня здесь привлекает процесс, а не результат. Так что, последний мой заход хоть и является вполне себе функционально законченным, но для его развития времени я не выкраиваю, к сожалению. - -Что-то еще было, но я не успел записать, и теперь забыл. Вывод: не стоит давать остывать размышлениям дольше суток, а писать сразу 🙂
\ No newline at end of file +Сейчас давно уже не играю, но многие мои нынешние увлечения берут начало именно +оттуда. Например, самый очевидный пример — интерес к картографии и ГИСам +(геоинформационным системам), поскольку для «Дозоров» они были неотъемлемой +частью. Также сюда относится и то, что я хорошо ориентируюсь в своем городе и +немного интересуюсь его историей. + +Кроме того, можно проследить интерес к радиоэлектронике: пару раз, когда с +командой организовывали игры, я придумывал задания, основанные на простых +электронных устройствах, собранных на микроконтроллерах. + +Туда же и любовь к исключительно ноутбукам, да и вообще переносной, что важно, +технике. Теплое отношение к простым, надёжным, нетребовательным технологиям. Это +всё оттуда же! + +Любовь к программированию у меня возникла чуть раньше, поэтому её связать с +этими играми я не могу. Здесь, скорее случилось наоборот. И я не менее трех раз +даже порывался писать собственный «движок» для НПИ. Но, пока ни разу не успешно. +Вероятно, меня здесь привлекает процесс, а не результат. Так что, последний мой +заход хоть и является вполне себе функционально законченным, но для его развития +времени я не выкраиваю, к сожалению. + +Что-то еще было, но я не успел записать, и теперь забыл. Вывод: не стоит давать +остывать размышлениям дольше суток, а писать сразу 🙂
\ No newline at end of file diff --git a/content/posts/2024-12-12-guessr/index.md b/content/posts/2024-12-12-guessr/index.md index 8016647..eb1c713 100644 --- a/content/posts/2024-12-12-guessr/index.md +++ b/content/posts/2024-12-12-guessr/index.md @@ -8,65 +8,78 @@ location = "Казань" image="logo.webp" +++ -На недавних выходных я запилил очередной «проект выходного дня». На этот раз — аналог известного сервиса GeoGuessr, но -в отличие от него, все точки сконцентрированы в моей родной Казани. Ну и я не использую панорамы, а фотографии мест. +На недавних выходных я запилил очередной «проект выходного дня». На этот раз — +аналог известного сервиса GeoGuessr, но в отличие от него, все точки +сконцентрированы в моей родной Казани. Ну и я не использую панорамы, а +фотографии мест. -Я обещал выложить исходники, и в общем, вот они: https://git.neonxp.ru/guessr.git/ +Я обещал выложить исходники, и в общем, вот они: +https://git.neonxp.ru/guessr.git/ # Немного про разработку -Первым встал вопрос, откуда брать данные, а именно фотографии и координаты точек. Пару лет назад нашу страну покинул -такой проект, как Ingress, представлявший собой гео игру в дополненной реальности. В свою очередь, я посчитал, что раз -проект решил отказаться от нас, как игроков, я посчитал морально оправданным ~~спиз~~экспропреировать кусочек их данных, -а именно спарсил с их карты intel.ingress.com т.н. «порталы», которые, по сути и есть эти самые геоточки с фотографиями. - -Дамп я загнал в Postgresql с подключенным расширением [Postgis](https://postgis.net/). - -Ну а далее написал достаточно простой API на Golang, который реализует следующие методы: - -- Создание новой игровой сессии, в ответ ставится кука внутри которой зашифровано текущее состояние — ник, количество - очков, ID текущего угадываемого объекта (в начале пустое). - ```http - POST /api/state - Content-Type: application/json - - { - "username": "NeonXP" - } - ``` +Первым встал вопрос, откуда брать данные, а именно фотографии и координаты +точек. Пару лет назад нашу страну покинул такой проект, как Ingress, +представлявший собой гео игру в дополненной реальности. В свою очередь, я +посчитал, что раз проект решил отказаться от нас, как игроков, я посчитал +морально оправданным ~~спиз~~экспропреировать кусочек их данных, а именно +спарсил с их карты intel.ingress.com т.н. «порталы», которые, по сути и есть эти +самые геоточки с фотографиями. + +Дамп я загнал в Postgresql с подключенным расширением +[Postgis](https://postgis.net/). + +Ну а далее написал достаточно простой API на Golang, который реализует следующие +методы: + +- Создание новой игровой сессии, в ответ ставится кука внутри которой + зашифровано текущее состояние — ник, количество очков, ID текущего + угадываемого объекта (в начале пустое). + ```http + POST /api/state + Content-Type: application/json + + { + "username": "NeonXP" + } + ``` - Получение состояния. Просто возвращает вышеуказанные параметры - ```http - GET /api/state - ``` -- Выдача нового объекта для угадывания. При этом возвращается ссылка на фото и обновляется состояние, тем что в него - вписывается ID объекта - ```http - POST /api/next - ``` -- Угадывание. Собственно, на вход передаются координаты куда на карте указал игрок. А в ответ возвращается: - - Название объекта - - Расстояние от переданной точки до реального размещения объекта - - Geojson строка в которой зашифрована линия соединяющая точку и объект (нужна для отрисовки красной линии на карте) - - При этом высчитываются очки которые получает игрок за попытку по формуле max(1000-d, 0), где d - расстояние между - выбранной точкой и объектом в метрах. То есть, если разница меньше 1000м, то чем ближе - тем больше очков (максимум - 1000 очков за 1 очень точное угадывание). - ```http - POST /api/guess - Content-Type: application/json - - { - "lat": 55.123, - "lon": 49.123 - } - ``` + ```http + GET /api/state + ``` +- Выдача нового объекта для угадывания. При этом возвращается ссылка на фото и + обновляется состояние, тем что в него вписывается ID объекта + ```http + POST /api/next + ``` +- Угадывание. Собственно, на вход передаются координаты куда на карте указал + игрок. А в ответ возвращается: + - Название объекта + - Расстояние от переданной точки до реального размещения объекта + - Geojson строка в которой зашифрована линия соединяющая точку и объект (нужна + для отрисовки красной линии на карте) + + При этом высчитываются очки которые получает игрок за попытку по формуле + max(1000-d, 0), где d - расстояние между выбранной точкой и объектом в метрах. + То есть, если разница меньше 1000м, то чем ближе - тем больше очков (максимум + 1000 очков за 1 очень точное угадывание). + ```http + POST /api/guess + Content-Type: application/json + + { + "lat": 55.123, + "lon": 49.123 + } + ``` Вот в общем-то и всё API! -Из интересностей, при выборе очередной точки у неё в БД увеличивается счетчик, а сам select выбирает случайную точку -только среди тех точек, где этот счетчик минимальный. То есть, пока не будут выданы игрокам все точки, уже выбранные -заново не будут выданы. Вот это место в коде: https://git.neonxp.ru/guessr.git/tree/pkg/service/places.go#n26 -(стр. 26-32) +Из интересностей, при выборе очередной точки у неё в БД увеличивается счетчик, а +сам select выбирает случайную точку только среди тех точек, где этот счетчик +минимальный. То есть, пока не будут выданы игрокам все точки, уже выбранные +заново не будут выданы. Вот это место в коде: +https://git.neonxp.ru/guessr.git/tree/pkg/service/places.go#n26 (стр. 26-32) ```go err = btx.NewSelect(). @@ -78,8 +91,9 @@ err = btx.NewSelect(). Scan(ctx, r) ``` -Ещё я бы отметил то, что я решил по максимуму логику вынести в БД, и, например, при угадывании расстояние до точки, а -также вышеупомянутый geojson формируются так же на стороне БД: +Ещё я бы отметил то, что я решил по максимуму логику вынести в БД, и, например, +при угадывании расстояние до точки, а также вышеупомянутый geojson формируются +так же на стороне БД: https://git.neonxp.ru/guessr.git/tree/pkg/service/places.go#n50 (стр. 50-59) ```go @@ -97,12 +111,14 @@ err := p.db.NewSelect(). # Дальнейшие планы -В комментах к анонсу ребята накидали достаточно много хороших идей, синтезировав которые, и добавив свои хотелки я -составил примерно такой чеклист: +В комментах к анонсу ребята накидали достаточно много хороших идей, синтезировав +которые, и добавив свои хотелки я составил примерно такой чеклист: - [ ] Авторизация и общая доска лидерства -- [ ] После угадывания спрашивать у игрока «сложность», чтобы потом можно было, например, настраивать чтобы попадались - только простые объекты. И, например, разное количество очков за простые и сложные объекты -- [ ] Подумать как вынести игру в оффлайн, по типу того же ингресса. Это сложно и предстоит хорошо это обдумать +- [ ] После угадывания спрашивать у игрока «сложность», чтобы потом можно было, + например, настраивать чтобы попадались только простые объекты. И, например, + разное количество очков за простые и сложные объекты +- [ ] Подумать как вынести игру в оффлайн, по типу того же ингресса. Это сложно + и предстоит хорошо это обдумать Как-то так :) А впереди новые выходные и новые «проекты выходного дня»!
\ No newline at end of file diff --git a/content/posts/2024-12-15-conditional-operator-go/index.md b/content/posts/2024-12-15-conditional-operator-go/index.md index 5275348..a409ecf 100644 --- a/content/posts/2024-12-15-conditional-operator-go/index.md +++ b/content/posts/2024-12-15-conditional-operator-go/index.md @@ -25,6 +25,8 @@ func If[T any](condition bool, thn T, els T) T { [Плейграунд чтобы потыкать](https://go.dev/play/p/sBDnPGHce8I) -Будет настроение — добавлю в свою либку https://neonxp.ru/go/extra , а пока, как-то так держите. +Будет настроение — добавлю в свою либку https://neonxp.ru/go/extra , а пока, +как-то так держите. -**Не стоит** использовать в реальном коде. Я лично не вижу никакого оправдания для использования, кроме как покекать.
\ No newline at end of file +**Не стоит** использовать в реальном коде. Я лично не вижу никакого оправдания +для использования, кроме как покекать.
\ No newline at end of file diff --git a/content/posts/2024-12-15-posse/index.md b/content/posts/2024-12-15-posse/index.md index 684380d..f67460e 100644 --- a/content/posts/2024-12-15-posse/index.md +++ b/content/posts/2024-12-15-posse/index.md @@ -8,49 +8,60 @@ location = "Казань" image="posse.webp" +++ -Решил я перейти к использованию практики POSSE. Что это такое? Аббревиатура расшифровывается примерно следующими -способами: +Решил я перейти к использованию практики POSSE. Что это такое? Аббревиатура +расшифровывается примерно следующими способами: -**P** - Publish или Post, **OS** - Own Site, **SE** - Syndicate Elsewhere (мне больше нравится, Share Everywhere) +**P** - Publish или Post, **OS** - Own Site, **SE** - Syndicate Elsewhere (мне +больше нравится, Share Everywhere) -Это практика, когда изначально любой материал публикуется на полностью подконтрольном собственном сайте, а только затем -переразмещаяется на всякие социальные сети, типа ВК, Телеги и прочих Мастодонов. +Это практика, когда изначально любой материал публикуется на полностью +подконтрольном собственном сайте, а только затем переразмещаяется на всякие +социальные сети, типа ВК, Телеги и прочих Мастодонов. <!--more--> # Почему это важно? -- Во-первых, **платформы ненадежны**. - Любая платформа в любой момент может сделать что угодно с вашим контентом, или закрыться. -- Во-вторых, **право собственности**. - Не секрет, что у платформ весьма вольное представление об авторском праве на материалы размещаемые пользователями. - С одной стороны, у них неограниченное право распоряжения контентом для любых целей, а с другой никакой - ответственности за содержание контента. Не слишком ли кучеряво? - - А следуя POSSE, я и все кто следуют POSSE — сохраняют первоисточник под своим контролем, отдавая платформам лишь - небольшой огрызок от контента. Да, у меня не больно какой-то великий контент, за который стоит трястись, но я всё - равно предпочту сохранить за собой все права на него. -- В-третьих, **за пользователем остаётся право** выбирать где ему удобнее следить за контентом. Либо на первоисточнике, - с помощью божественного RSS (к чему я бы хотел призывать), либо на удобной платформе куда происходит синдикация. -- В-четвёртых, ... А давайте, я не буду пересказывать [вот эту статью](https://indieweb.org/POSSE)? 😉 В общем, это - правильная и нужная практика. Как минимум, на долгосрок. Платформы приходят и уходят, а файлы (в виде markdown моего - блога) останутся на всегда. +- Во-первых, **платформы ненадежны**. Любая платформа в любой момент может + сделать что угодно с вашим контентом, или закрыться. +- Во-вторых, **право собственности**. Не секрет, что у платформ весьма вольное + представление об авторском праве на материалы размещаемые пользователями. С + одной стороны, у них неограниченное право распоряжения контентом для любых + целей, а с другой никакой ответственности за содержание контента. Не слишком + ли кучеряво? + + А следуя POSSE, я и все кто следуют POSSE — сохраняют первоисточник под своим + контролем, отдавая платформам лишь небольшой огрызок от контента. Да, у меня + не больно какой-то великий контент, за который стоит трястись, но я всё равно + предпочту сохранить за собой все права на него. +- В-третьих, **за пользователем остаётся право** выбирать где ему удобнее + следить за контентом. Либо на первоисточнике, с помощью божественного RSS (к + чему я бы хотел призывать), либо на удобной платформе куда происходит + синдикация. +- В-четвёртых, ... А давайте, я не буду пересказывать вот эту + [статью](https://indieweb.org/POSSE)? 😉 В общем, это правильная и нужная + практика. Как минимум, на долгосрок. Платформы приходят и уходят, а файлы (в + виде markdown моего блога) останутся на всегда. # Что я сделал чтобы следовать POSSE? -Ну для начала, у меня сильно чесались руки переделать дизайн блога. Вроде, получилось так, как я и хотел, в стиле сайтов -начала-середины 2010х. Просто потому что могу, кто же мне тут что запретит 😉. Тем самым я улучшил UX блога, до хотя бы -терпимого. Походу дела, при редизайне, я порасставил правильных тегов и микроформатов для правильной синдикации с -другими платформами. +Ну для начала, у меня сильно чесались руки переделать дизайн блога. Вроде, +получилось так, как я и хотел, в стиле сайтов начала-середины 2010х. Просто +потому что могу, кто же мне тут что запретит 😉. Тем самым я улучшил UX блога, +до хотя бы терпимого. Походу дела, при редизайне, я порасставил правильных тегов +и микроформатов для правильной синдикации с другими платформами. -Далее, я перепилил немного улучшил программку, которую написал уже достаточно давно, которая читает RSS моего блога и -отправляет новые посты в Телеграм канал. Вот она, если что: https://git.neonxp.ru/posse +Далее, я перепилил немного улучшил программку, которую написал уже достаточно +давно, которая читает RSS моего блога и отправляет новые посты в Телеграм канал. +Вот она, если что: https://git.neonxp.ru/posse -Кстати, в очередной раз напоминаю о [RSS ленте](https://neonxp.ru/feed/) блога. Эта лента — это самый правильный способ -подписки на блог! +Кстати, в очередной раз напоминаю о [RSS ленте](https://neonxp.ru/feed/) блога. +Эта лента — это самый правильный способ подписки на блог! -Так же из этой ленты автоматически подтягиваются посты в VK группу. Это сделано встроенным механизмом VK, за что им -определенно респект! Не часто можно встретить нечто подобное на закрытых платформах (помним, же как Google убивал RSS?)! +Так же из этой ленты автоматически подтягиваются посты в VK группу. Это сделано +встроенным механизмом VK, за что им определенно респект! Не часто можно +встретить нечто подобное на закрытых платформах (помним, же как Google убивал +RSS?)! Сейчас прорабатываю идеи по синдикации и в Fediverse [^1]. [^1]: пока думаю, синдицировать через узел Betula diff --git a/content/posts/2024-12-17-infra/index.md b/content/posts/2024-12-17-infra/index.md index 4733211..31f0d7b 100644 --- a/content/posts/2024-12-17-infra/index.md +++ b/content/posts/2024-12-17-infra/index.md @@ -28,8 +28,12 @@ image="cover.webp" <!-- more --> # Программное обеспечение -По сути, на первом уровне, установлены [armbian](https://www.armbian.com/orangepi3b/), [веб—сервер Caddy](https://caddyserver.com/), да [Docker](https://devdotnet.org/post/ustanovka-docker-dlya-arm-i-64-bit-arm-armbian-linux/). -Всё остальное уже внутри Docker'а. +По сути, на первом уровне, установлены armbian[^1], веб—сервер Caddy[^2], да +Docker[^3]. Всё остальное уже внутри Docker'а. + +[^1]: https://www.armbian.com/orangepi3b/ +[^2]: https://caddyserver.com/ +[^3]: https://devdotnet.org/post/ustanovka-docker-dlya-arm-i-64-bit-arm-armbian-linux/ # Caddy @@ -62,8 +66,10 @@ comments.neonxp.ru { Из него я убрал всё, что не относится к непосредственно блогу. -Сам блог у меня собирается с помощью Hugo и загружается в `/var/www/neonxp.ru` -[с помощью rsync](https://git.neonxp.ru/blog.git/tree/Makefile#n11), а оттуда уже раздается с помощью Caddy. +Сам блог у меня собирается с помощью Hugo и загружается в `/var/www/neonxp.ru` с +помощью rsync[^4], а оттуда уже раздается с помощью Caddy. + +[^4]: https://git.neonxp.ru/blog.git/tree/Makefile#n11 # Docker diff --git a/content/posts/2024-12-30-irc/index.md b/content/posts/2024-12-30-irc/index.md index c9cb8ad..889ed1a 100644 --- a/content/posts/2024-12-30-irc/index.md +++ b/content/posts/2024-12-30-irc/index.md @@ -10,17 +10,30 @@ image="logo.webp" # IRC -Когда-то единственным способом общения в сети в режиме реального времени был исключительнольно протокол IRC. И всем бы он был хорош — простой, лёгкий, может работать на чём угодно. Но времена изменились и мы погрязли во всяких телеграммах да вотсаппах (пока не запрещенные на территории России, к сожалению). - -Это грустно, но закономерно. Но делает ли это ИРКу плохой? Да нет конечно! И лично меня притягивают именно такие надёжные и простые вещи — открытые, текстовые протоколы, софт для которых можно написать чуть ли не на коленке для любого электрочайника. - -Например, даже [на таких устройствах](https://club.hugeping.ru/blog/IYMX9ZdAnn0dA1RBO5JH#IYMX9ZdAnn0dA1RBO5JH), я вполне себе могу представить клиент к ИРКе, но не представлю клиента телеграма. - -И недавно я обнаружил, что IRC не только не умер, но и развивается, осовременивается! Сейчас есть актуальная современная версия протокола [IRCv3](https://ircv3.net/), которая не потеряла былой простоты и интерперабельности! +Когда-то единственным способом общения в сети в режиме реального времени был +исключительнольно протокол IRC. И всем бы он был хорош — простой, лёгкий, может +работать на чём угодно. Но времена изменились и мы погрязли во всяких +телеграммах да вотсаппах (пока не запрещенные на территории России, к +сожалению). + +Это грустно, но закономерно. Но делает ли это ИРКу плохой? Да нет конечно! И +лично меня притягивают именно такие надёжные и простые вещи — открытые, +текстовые протоколы, софт для которых можно написать чуть ли не на коленке для +любого электрочайника. + +Например, даже на таких устройствах[^1], я вполне себе могу представить клиент к +ИРКе, но не представлю клиента телеграма. +[^1]: https://club.hugeping.ru/blog/IYMX9ZdAnn0dA1RBO5JH#IYMX9ZdAnn0dA1RBO5JH + +И недавно я обнаружил, что IRC не только не умер, но и развивается, +осовременивается! Сейчас есть актуальная современная версия протокола +[IRCv3](https://ircv3.net/), которая не потеряла былой простоты и +интерперабельности! # Мой IRC -Короче, не затягивая сильно, я запустил для теста небольшой свой сервачок, куда и приглашаю забежать на огонёк и посидеть в ламповой олдскульной атмосфере: +Короче, не затягивая сильно, я запустил для теста небольшой свой сервачок, куда +и приглашаю забежать на огонёк и посидеть в ламповой олдскульной атмосфере: В любом современном IRC клиенте: @@ -32,18 +45,29 @@ image="logo.webp" # Чем он хорош? -Ну помимо вышеуказанных простоты и интерперабельности протокола, можно выделить и то, что поскольку общение чисто текстовое, без всяких гифок, картинок и прочего. -Казалось бы, это же скорее минус? А вот и не обязательно. В каком-то роде это мотивирует к конструктивному общению, когда надо хоть немного включать мозг и думать что писать. -Таким обазом, повышается осмысленность общения и появляется определённая самодисциплина. Примерно так же, как и в переписке по e-mail, что я тоже весьма и весьма уважаю. +Ну помимо вышеуказанных простоты и интерперабельности протокола, можно выделить +и то, что поскольку общение чисто текстовое, без всяких гифок, картинок и +прочего. Казалось бы, это же скорее минус? А вот и не обязательно. В каком-то +роде это мотивирует к конструктивному общению, когда надо хоть немного включать +мозг и думать что писать. Таким обазом, повышается осмысленность общения и +появляется определённая самодисциплина. Примерно так же, как и в переписке по +e-mail, что я тоже весьма и весьма уважаю. # Станет ли оно популярным? -Да нет, конечно! Это всегда будет исключительно нишевая гиковская игрушка. И это даже хорошо. Лампово. Так же как и обычные текстовые блоги, например. Но это не значит, что это не имеет право на жизнь. +Да нет, конечно! Это всегда будет исключительно нишевая гиковская игрушка. И это +даже хорошо. Лампово. Так же как и обычные текстовые блоги, например. Но это не +значит, что это не имеет право на жизнь. -Ну и да, это одна из технологий, которые я отношу к тем, что пригодятся человечеству в случае кризисов. +Ну и да, это одна из технологий, которые я отношу к тем, что пригодятся +человечеству в случае кризисов. # Альтернативы? -Самая хорошая альтернатива, что я вижу — это протокол Matrix, который выглядит как новомодный хипстерский IRC с JSON поверх HTTP(S). С моей точки зрения, у него есть серьёзные недостатки, но считаю, что он вполне себе займёт ту же нишу. +Самая хорошая альтернатива, что я вижу — это протокол Matrix, который выглядит +как новомодный хипстерский IRC с JSON поверх HTTP(S). С моей точки зрения, у +него есть серьёзные недостатки, но считаю, что он вполне себе займёт ту же нишу. -Всякие телеграммы и прочее завязанное на конкртеного вендора я не рассматриваю как альтернативы. Да, они удобные, популярные, но мертворожденные, как технология.
\ No newline at end of file +Всякие телеграммы и прочее завязанное на конкртеного вендора я не рассматриваю +как альтернативы. Да, они удобные, популярные, но мертворожденные, как +технология.
\ No newline at end of file diff --git a/content/posts/2024-12-31-new-year/index.md b/content/posts/2024-12-31-new-year/index.md index e55deb2..ad22df7 100644 --- a/content/posts/2024-12-31-new-year/index.md +++ b/content/posts/2024-12-31-new-year/index.md @@ -12,22 +12,31 @@ image="2025.webp" В этот день принято подводить итоги года. Ну и я подведу немного: -- Поступил на второе высшее в институт брака. Раз уж нет классического высшего, что ещё остаётся то ;) -- В аккурат под конец года разрешились проблемы на работе. Причем разрешились настолько удачно, что я почти что жду окончания новогоднего отпуска, чтобы скорее начались трудовыебудни. -- Стал активно вести блог. Но всё равно не оставляет подспудное ощущение, что уже стал надоедать этим тем, кто подписан. После каждого поста жду что кто-то да отпишется :) Но мне нравится его вести, так что, уже не остановлюсь :) -- Ездили с новоиспеченной супругой на Кавказ. Самое яркое — посетили обсерваторию в Нижнем Архызе. Под впечатлением, купили по приезду настоящий телескоп! -- Начали строить свой домик в деревне. Но пока ещё до заселения далеко, вот только окна поставили. +- Поступил на второе высшее в институт брака. Раз уж нет классического высшего, + что ещё остаётся то ;) +- В аккурат под конец года разрешились проблемы на работе. Причем разрешились + настолько удачно, что я почти что жду окончания новогоднего отпуска, чтобы + скорее начались трудовыебудни. +- Стал активно вести блог. Но всё равно не оставляет подспудное ощущение, что + уже стал надоедать этим тем, кто подписан. После каждого поста жду что кто-то + да отпишется :) Но мне нравится его вести, так что, уже не остановлюсь :) +- Ездили с новоиспеченной супругой на Кавказ. Самое яркое — посетили + обсерваторию в Нижнем Архызе. Под впечатлением, купили по приезду настоящий + телескоп! +- Начали строить свой домик в деревне. Но пока ещё до заселения далеко, вот + только окна поставили. Под катом приложу фоточки наиболее ярких моментов, пожалуй. <!--more--> -![Институт брака](1.webp "Институт брака") ![Выхожу с работы](2.webp "Выхожу с работы") -![Собаньки на Кавказе](3.webp "Собаньки на Кавказе") ![Своя личная обсерватория](4.webp "Своя личная обсерватория") -![Домик в деревне](5.webp "Домик в деревне") +![](1.webp "Институт брака") ![](2.webp "Выхожу с работы") +![](3.webp "Собаньки на Кавказе") ![](4.webp "Своя личная обсерватория") +![](5.webp "Домик в деревне") Вот как-то так :) -А пока, возвращаемся к новогоднему столу и готовимся встретить наступающий 2025 год! +А пока, возвращаемся к новогоднему столу и готовимся встретить наступающий 2025 +год! Надеюсь, всё у нас у всех будет хорошо в этом наступающем новом году!
\ No newline at end of file |