# Итоги года 2023

> Год полного переезда на self-hosted решения. Как я перевёл блог на Cloudflare Pages, ушёл из облаков на домашний сервер, посетил 6 стран и сдал комнату в Airbnb.

**Published:** 2024-01-11

**Canonical:** <https://grishy.dev/ru/posts/review-2023/>

**Translations:** [Русский](https://grishy.dev/ru/posts/review-2023.md)

![Итоги года 2023](https://grishy.dev/_astro/preview-jorge-fdez-LNcEj--Mz2Q-unsplash.B1cLb4fW.avif)

---

Обзор 2023 года и планы на 2024. Что получилось и что нет, посмотрим насколько планы совпали с реальностью.\
Не все конечно получилось и в целом действовали не по плану, а по обстоятельствам. Но в целом год удался, многое сделано и многое планируется.

## Блог

В этом году я не стал ничего писать в блог, но в целом я его и не забросил. Когда я решил что-то написать, то у меня опять не завелась сборка сразу с Node.js + Gatsby.js. Опять зависимости и работа с версиями. У меня стоял Node.js последней версии, с которым не работало Gatsby.js. Пришлось устанавливать предыдущую версию Node.js. И еще раз убедился в идее перейти с Gatsby.js.

Мне не нравится в Gatsby.js то, что он очень динамический. Что на выходе у тебя полупустая страница, которая после наполняется по JSON. Хотя это и работает. Но я решил попробовать сделать простой скрипт на JavaScript или другом языке, который бы просто проходил по Markdown файлам и генерировал HTML страницы.

Оказалось, что у меня много хотелок:

- Оптимизация картинок и генерация разных форматов
- Генерация RSS
- Пагинация
- Поддержка нескольких языков

Самое сложное оказалась оптимизация, а точнее не оптимизировать все на каждый чих. Я попробовал и [Parcel](https://parceljs.org/) (билд систему), хотел дописать плагин, который бы брал все страницы и после использовать готовые модули Parcel для оптимизации и кеширования. Они как раз начали делать модульную систему.

Затык случился в том, что они как раз начали делать эту часть и ещё не
доделали. Отдельные ресурсы оптимизировать было удобно: перегонять Markdown в
HTML и сжимать результат в конце. Но если нужны связи между страницами, всё
становится сложнее. Модуль для этого уже был, но без документации и в виде
одного файла на несколько тысяч строк. Так я отказался от этой задумки.

В общем, я переключился пока на обновление дизайна блога, сделать его более доступным и приятным по типографике. Решил использовать Tailwind CSS. Отлично работает, я его обычно использую, чтобы создать PDF. Делаю страницу просто в HTML и после делаю печать как PDF. Работает отлично, делал так для документов на визу, анкеты по поиску квартиры или CV 😄

Но блог все же изменился, он переехал с GitHub и GitHub Pages на [Cloudflare Pages](https://pages.cloudflare.com/), где сразу и хостится. Ведь это просто набор статических файлов. Сборка блога переехала на мой локальный сервер (который стоит на соседнем столе, дома). Всё хранится в Gitea локально и собирается в Drone внутри контейнера. После этого заливается на Cloudflare с помощью `npx wrangler pages deploy ...`. Работает отлично. Сделал так, что теперь могу хранить тут оригиналы фото с геолокацией и прочее. Ну и было интересно настроить.

## Английский

Что и раньше в обзоре 2023 года, что сейчас. У меня идет неплохой прогресс в английском языке. Я начал заниматься регулярно и это дает свои плоды. Во-первых, если замерять разными сайтами словарный запас, то в феврале 2023 года было около **4304-4688 слов**, а сейчас проходит и около **6500-7084 слов**. Не уверен, что показываю цифры, я про них думаю больше как про абстрактных попугаев. Больше показывается прогресс работы. Кажется это больше похоже на накопительный эффект, что сейчас просто начал подмечать незнакомые слова и записывать их, так как таких слов меньше и они бросаются в глаза.

Начал смотреть Netflix в оригинале с субтитрами (иногда удобно посмотреть на слова) и еще читать книги на английском. Скорее всего буст дало именно чтение. Я читаю сколько-то страниц, отмечая и переводя все незнакомые слова, но не сильно пробую запоминать их. Читаю книгу и стараюсь понимать смысл. После прохожу по незнакомым словам и добавляю все их в [Anki](https://apps.ankiweb.net/) и каждый день занимаюсь с утром до работы Anki.

![Статистика Anki](https://grishy.dev/_astro/anki-stats.BVLxqjOO.avif)

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

А так выглядит карточка в Anki, я добавил картинку, чтобы было легче запоминать и звук, который воспроизводится автоматически. Карточки наполовину создаются Python скриптом, собирая информацию из [dictionary.cambridge.org](https://dictionary.cambridge.org/) и вторая половина руками.

![Карточка Anki](https://grishy.dev/_astro/anki.BCR8pxmo.avif)

## Домашний сервер - TravelLab

Это, наверное, одно из самых значительных в плане технологий изменений. Я решил перенести все файлы и документы из облаков и разных сервисов по возможности локально. Так как я хотел что-то портативное, то подумал, что мини-компьютер будет отличным устройством. Выбрал Beelink EQ12 на Intel N100. Работает отлично, только, как обычно, в Linux были проблемы с Wi-Fi от Intel. Драйверы появились к нему только в последних ядрах Linux. Так что это Ubuntu с последним ядром, и всё работает.

![Beelink](https://grishy.dev/_astro/Beelink.DkYyF29J.avif)

Все ставилось через Ansible, а в качестве файловой системы там `btrfs`. Для данных взял 2 одинаковых SSD-диска от Samsung по 4 TB и настроил синхронизацию по ночам. Один SSD внутри mini-PC, а второй лежит сверху и подключен по USB-C. Работает отлично, восстанавливать машину с нуля я не пробовал, но отключал внешний SSD и смотрел, что на нем лежат все нужные файлы (подключал к MacBook Pro). А так как вся система ставилась через Ansible и я периодически запускаю его, чтобы обновить какие-то компоненты, то мне нужны только файлы, а не вся система. Хотя я делаю копию всего диска.

Так выглядел процесс настройки сервера, интернет раздал с Android телефона по кабелю:
![Настройка локального сервера](https://grishy.dev/_astro/IMG_1536.DyMUt-8v.avif)

Сейчас там крутится сервисов 10 в Docker и все доступно из любой точки мира, если есть подключение к VPN. В качестве VPN - WireGuard (конфигурация генерируется в Ansible).

В VPN-сеть не так давно добавился Raspberry Pi, который стоит у родителей.
Добавил его также в Ansible и думаю настроить там показ фильмов на локальные
Android TV. Но пока до этого не дошёл.

## Отпуск 2 недели

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

- Сауны в домах - Финляндия(🇫🇮). Оказалось очень круто сходить погреться так, когда за окном становится прохладно. Мы были уже осенью.
- Порядок Стокгольма(🇸🇪) и отличный кофе. Наверное один из самых чистых городов, где я был. Хорошо сочетается с природой и скалистой местностью. Роттердам кстати был больше разочарованием.
- Амстердам(🇳🇱) был в целом красив как город, приятные вело-дороги. Кстати, велосипеды меня совершенно не напрягали.
- В Испании(🇪🇸) отличная осень и в целом зима. Тут мы прям втянулись в раменные и что-то японское. В Испании оказалось куча азиатских заведений и в целом еда была отличная. Отличные железные дороги, если пользоваться скоростными поездами. Можно купить свежие фрукты и цветы 365 дней в году.
- Грузия(🇬🇪) - Умудряется казаться больше, чем он есть. Куча неплохих кафешек от СНГ людей. Одно из самых вкусных мест, где я был. Огромный разброс в ценах и не всегда можешь угадать что дорого, что будет дешево.
- Армения(🇦🇲) - Умудряется казаться меньше, чем он есть. 🙂 Но зато много фонтанчиков для воды в городе. Наверное место с самой вкусной водой.

### Съём комнаты в Airbnb

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

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

Фото из Стокгольма квартиры, где я снимал комнату:
![Фото из Стокгольма](https://grishy.dev/_astro/IMG_2202.V4RYB9WM.avif)

## Личные проекты

### go-avahi-cname - [github.com/grishy/go-avahi-cname](https://github.com/grishy/go-avahi-cname)

Этот проект я написал, когда начал делать TravelLab. Он позволяет всегда
обращаться к моему серверу, просто написав `lab.local` в браузере. Оказалось,
что такого финального решения не было, поэтому я написал своё за 2-3 дня. Сейчас
оно постоянно работает в Docker-контейнере на моём сервере.

### Сделать все локально

Можно выделить как отдельный проект, потому что это было не просто взять и начать все хранить локально. Во-первых, нужно понять, как это хранить и после собрать со всех мест по типу Google Photo, Google Disk и прочее. Во вторых, поменять свои привычки и как ты пользуешься.

## Итоги

- **Переезд на локальные данные**
  - Google Photo -> Immich
    Теперь у меня фоточки все лежат в 2 метрах и очень похоже на Google Photo. Но только пока дома, то все работает мгновенно.
  - Google Disk -> Syncthing
    Не могу сказать, что один в один. У меня Google Disk был просто файлопомойкой. А пока переезжал, то всё разобрал 😄
  - Облачные email клиенты -> Thunderbird
    Почта и файлы открываются довольно быстро и даже без интернета.
- **Страны** - побывал в 6 странах. Наверное никогда так много не ездил.
- **План и стратегия** - оказалось до сих пор работает. Когда строишь схему или рисуешь в Miro или Figma, то потом намного проще ориентироваться.
- **Бюрократия** - в целом в разных странах примерно одно и тоже и можно жить. Тратишь например 2 месяца разобраться и потом уже все ок.
- **Люди** - самыми крутыми в моих глазах оказались те, кто переехал. В Стокгольме это были люди, которые родились и выросли там, но чьи родители из Турции или Ирана. В Испании это пока люди из Венесуэлы. В общем, те, кто приехал жить и работать. Они, как правило, очень позитивные, и у них есть цель.

## Открытия года

- Механическая клавиатура - у меня [Keychron K3](https://www.keychron.com/products/keychron-k3-max-qmk-via-wireless-custom-mechanical-keyboard) и печатать намного приятнее сейчас.
- Подставка под ноутбук [Roost Laptop Stand v3](https://www.therooststand.com/products/roost-v3-roost-laptop-stand) - удобно, когда ноутбук на уровне глаз и не надо смотреть вниз.
- Локальный сервер - это просто удобно, когда все у тебя дома и ты можешь все настроить как хочешь.
- Японская еда - мне особенно понравился рамен, только не самый обычный, а мисо-рамен. Ходили почти через день в разные рестораны.
- [GaN-зарядки](https://www.ozon.ru/product/zaryadnoe-ustroystvo-anker-powerport-nano-ii-gan-100vt-usb-c-zaryadka-dlya-noutbukov-824707885/) - отличное решение для поездок. У меня такая с несколькими выходами для ноутбука, телефона и других устройств.
- Средние города прямо зашли в этом году, когда население около 250-400 тыс. человек. Там всё есть, но везде можно дойти пешком и не надо ездить на метро или автобусе. Всё рядом, и это очень удобно.
- Игра [Civilization VI](https://civilization.com/es-ES/) - я купил ее с друзьями только в декабре и поиграл только пару игр, но очень зашла пока. Один минус правда, надо сидеть долго, чтобы закончить игру. А еще проблемы с сетью, то синхронизация, то долго ждешь ход другого игрока, хотя он закончил уже
- Netflix - подписку мне подарили, и неожиданно хорошо зашли документальные фильмы.
- Нормальное рабочее окружение - свет, стул, стол - очень сильно влияет на самочувствие.
- Фильм Оппенгеймер - мне заходит такой формат.

## Что планировал и что получилось в 2023

- **Чтение**
  - ✅ Продолжить читать книги;
  - ✅ Читать большую часть на английском - к концу года полностью перешел на английский;
- **Изучение**
  - ❌ *Rust* - написать pet-проект на этом языке; Начал делать, но не закончил.
  - ✅ *Английский* - писать большую часть текста без использования словаря; Да, теперь пишу все без использования словаря в чатах.
  - ❌ *Немецкий* - изучить 500 слов в LingQ; Немецкий язык я не трогал, так как поменялись приоритеты.
- **Блог**
  - ❌ Написать статей 5 за год;
  - ❌ Сделано нормальную типографику в постах. Сейчас очень странно выглядит посты и не читаемые;

## Планы на 2024

- **Чтение**
  - Продолжить читать книги;
  - К конца года уменьшить список для чтения;
- **Технологии**
  - Обновиться на ARM MacBook Pro - я кажется остался один такой на работе. Так что иногда приходится делать скрипты под Intel и ARM самому 😅.
  - Сделать еще два проекта формата go-avahi-cname. Небольшие, но законченные.
  - Новый дизайн и типография для блога.
  - Перейти на хранение большей части заметок локально.
  - Сделать игру на Rust c использование ML. Все таки читаю и пробую с 2015 года язык, но так и не закончил.
- **Языки**
  - *Английский* - Основная практика, прочитать >5 книг на английском с Anki.
  - *Испанский* - Посмотреть на язык, может выучить базу, пока есть возможность попрактиковаться. Начал общаться с прикольными ребятами из Венесуэлы.
- **Попробовать найти место, где было бы интересно жить долгосрочно**

---

Финальный вид во время написания поста:
![Рабочее место](https://grishy.dev/_astro/IMG_4177.mq2PFoue.avif)

---

**Thumbnail:** Font: Roboto Mono.
