Итоги Года 2023


31.12.2023Итоги Года


Итоги прошлых лет: 2022202120202019

Это был безусловно сумасшедший год. С одной стороны – хиты в игровой индустрии, анонсы новых долгожданных игр и легендарные провалы, “AI” бум (единственное его упоминание в статье), а с другой – внушающие и повсеместные сокращения, новая война. Для меня же нет причин жаловаться, в чём вы скоро убедитесь. Как вы могли заметить из превью, год по протоптанной дорожке. Делаю, что делал всегда: работаю, занимаюсь личными open source проектами, увлекаюсь всяким, связанным со здоровьем, путешествую.

Забавы ради я решил перепройти парочку тестов и свериться с яркой версией себя, версией 2021 года. Так, например, тип личности с ESTP-A (Делец) изменился на ISFP-A (Артист). Всё ещё остался в категории искателей, но рискую гораздо меньше. А в mycreativetype с Visionary я перешёл в Adventurer. По-прежнему пытлив и энергичен, но меньше мечтаю. Для себя я охарактеризовал эти изменения одним словом: остепенился.

(я не принимаю результаты тестов всерьез, но разницу чувствую)

Проекты года

Год переезда на ruff и ruff format. Удивительная тула, всосавшая в себя абсолютно все линтер и кодстайл тулы всей Python экосистемы за последние 20 лет. Чудовищна быстрая и создавшая целое кладбище проектов. Уже несколько из них, чьи правила форматирования были переписаны в ruff, заявили о прекращении поддержки и архивировании. Грустно это видеть,будучи самим open source разработчиком, но как же классно было выкинуть весь этот зоопарк из black, isort, pydocstyle и прочих из своих проектов!

Несколько лет я мечтал заиметь в список своих проектов SDK для работы с протоколом, где отлично бы вписалась генерация кода из схем. Всё вокруг да около ходил MTProto от Telegram, и прошлогодняя попытка с tdlib провалилась. С тех пор я в целом не вижу разработку около тележки перспективной. Поэтому ещё в ноябре 2022 года я подсуетился и на хайпе вокруг Bluesky зарезервировал на PyPI имя пакета “atproto”. Сама сеть была ещё только по приглашениям, которого у меня не было (и остается по сей день, а вначале 2024 должна открыться). Следовательно, как и планов по разработке. Всё изменилось весной. Я стал получать письма на почту по поводу зарезервированного имени. Одно было от самих разработчиков протокола, а второе от стороннего разработчика, желающего написать SDK. В ходе краткой переписки я получил код приглашения и доступ к протоколу соответственно. Реализация не застала себя ждать. Я устроил себе марафон и, включив таймер (WakaTime), начал реализацию парсера лексикона (API схемы), генератора кода моделей и методов. Задокументировав, оформив, заведя сайт, я пустил это всё в публичное пространство, собрав первых пользователей и закрепив себя среди первых Python библиотек для AT Protocol. Уложился я в 40 часов. Так уже месяцев 7 я продолжаю работать над реализацией различных модулей и полном покрытии всего протокола. Последним в 2023 году я реализовал модуль разрешения имён и идентификаторов пользователей с помощью разных техник. От DNS и TXT записей в нём, до HTTP через Well-known URI и PLC directory.

Сам же протокол является децентрализованным и использует различные W3C стандарты, например: DID (децентрализованный ID). А ещё он активно использует всякое разное из IPLD, не реализовывая сам протокол. Поэтому, условный DAG-CBOR и CID (Content ID) тут в активном использовании. Очень классно рассказывать о протоколе на примере Git. Ведь тут существуют такие же сущности, как репозиторий, коммит и ребейс. Репозитории публичны, а хранят их специальный тип серверов под названием PDS (aka Git Server). Даже внутри себя репозиторий представляет MST (Merkle tree), как и Git! Каждый коммит подписывается приватным ключем, репозиторий каждого участника сети можно скачать. В репозитории могут лежать записи разных приложений. Главное из них – Bluesky, очередной децентрализованный Twitter. Отличий от ActivityPub достаточно. В AT Protocol есть другой вид сервера, называется BGS (для упрощения, вроде как был переименован в relay). Его задача – принимать запросы на crawl и собирать все сервера хранения репозиториев (PDS) в едино, образуя один большой поток событий всей огромной сети. А уже на основе этого потока, backend отдельных приложений может делать реализацию своей задумки. Например, осуществлять агрегацию лайков у “твиттер” постов. Такой backend тут называют AppView.

Python IPLD

Неотъемлемый компонент atproto SDK. Чтоб читать этот огромный поток событий всей сети – нужно успевать декодировать DAG-CBOR. Сам же поток – это обычный Websocket со своими фреймами. На декодировании только заголовков далеко не уедешь, ведь самая ценная информация в сети – это образование новых коммитов, где можно отслеживать добавление/удаление той или иной записи. Например: лайка, поста, если говорить про Bluesky. Поэтому, больше чем в 90% случаев приходится декодировать содержимое коммита. Операция это не быстрая, если использовать реализацию декодирования на чистом Python. Так быстро сообщество уперлось в проблему производительности.

Пытливые умы уже задумались: “А зачем сообществу слушать события всей сети? Ведь это дело relay сервера!”. А вот тут появляется ещё одна особенность Bluesky! Вы можете написать свой алгоритм ленты из постов участников всей сети! Эта лента будет публичной, на нее смогут подписываться другие участники, а кроме этого, лента может быть персонализированной! Именно так сейчас мою SDK в основном и используют. Ведь я быстро подхватил идею и предоставил пример такого сервера с лентой на GitHub. Работает данный сервер элементарно. Вы слушаете весь поток событий сети и на их основе, например, на анализе добавленного в сеть нового сообщения (текста), сохраняете его ID себе в базу данных ленты. Когда на ваш сервер приходит запрос “дай ленту”, вы отдаете массив отобранных ID.

Сеть выросла быстро. И даже мой, не совсем слабый сервер, начал отжирать больше 60% CPU. Оставлять пример в текущем состоянии было невозможно. Пришёл я, конечно, к своему старому делу – написанию расширений к питону. Первым делом мысль про C++. У меня два опенсурс проекта уже на нём. Опыт имеется, но, как оказалось, “официальной” библиотеки под кресты нет. Да даже популярной! Зато есть на расте! А знаете, что есть на расте для петухона?! PyO3! Официально заявляю, что теперь я ни ногой обратно на pybind11. Писать расширения для питона на расте – сплошное удовольствие! А сборка-то какой кайф! Вам не передать, сколько я часов раньше тратил на CI/CD для крестов, а тут… копипаста и готово. Для разбора полётов и сравнений понадобится отдельная статья, поэтому не об этом. Знаете что ещё использует PyO3? Pydnatic v2!

Переезжаем на Pydantic и свой Rust биндинг – получаем x40 буст к производительности декодирования. В 2024 я продолжу развивать данные проект, так как мне понадобится multibase и encode CID’a, DAG’a для реализации своего PDS сервере.

Старые

Yandex Music Token

Вариант получения токена через старые OAuth эндпоинты работает для единиц. В следствии чего были разработаны альтернативные версии получения токена:

  • Приложение на Android, которое использует официальную SDK Яндекс, работающую через webview.
  • Расширения для Chrome и Firefox, которые автоматизируют перехвату токена при переадресации в процессе авторизации.

Yandex Music API

Целых два обновления за год! В апреле и прям перед НГ в декабре! Два, для этого проекта, много (чисто статистически). Поддержка, обновление стиля ведения проекта (тот же ruff). Ничего такого.

Yandex Music Telegram Bot

Пришли правообладатели и приказали удалить бота. Благодарите Яндекс и BrandMonitor. Грозились судом. Бот удален. Другие владельцы в таких случаях строят распределенную систему и обслуживают тысячи токенов от ботов, присланными пользователями. Например такую.

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

Telegram Crawler

Проект по-прежнему делает своё дело. Местами не так хорошо из-за проблем Telegram с SDN/кэшем JS скриптов. Всё больше людей понимает, что там происходит и как из изменений найти инсайд нового обновления Telegram. За год там было достаточно исправлений и добавление нового трекера – исходного кода Mini App’a @wallet, который, на минуточку, они есть в главном меню официальных приложений. Данные товарищи активно использовали source maps, чем мой проект и пользовался, получая чистенький код. Быстро смекнув, они сурс мапы потерли, но, ранее сохранённый кравлером код остался на GitHub’e. Улыбает, как они рассказывают про желание сделать бота Open Source, затирая текущие попытки взглянуть на код. Быть может из-за своих комментариев в коде на русском языке.

Работа года

Ну, я её сменил. Но давайте по-порядку. Свой 2023 я начал с продолжения развития MDM решения для VR шлемов. А именно – портирование Device Setup Tool’a (см. Итоги 2022) на малинку (ну тип прост Linux). Идея была управлять целым набором шлемов в шкафе с его дверки через сенсорный экран. Портировал, перешёл заниматься старым добрым стримингом через WebRTC в VR. Если в прошлом году это были видео конференции, то в этом – полноценный стриминг на сотни зрителей (а, ой, кажется я об этом забыл рассказать). Аналогично через BlueJeans. Проработав там 3 года, на этом мы с компанией разошлись. Сдал все свои шлемы, включая Meta Quest Pro.

Забегая вперед скажу, что осенью приобрёл Meta Quest 3 в надежде на улучшенный passthrough (видите окружающий себя мир в шлеме через камеры)… Не верьте тому, что записали на встроенный рекордер! Всё так же плохо, как на Meta Quest Pro! Но лидар – это сила! Новый уровень смешанной реальности. По итогу, шлем вернул. Подробнее можете узнать в моём подкасте голосовом сообщении: Яндекс.Музыка, Apple Podcasts, Spotify.

Новая работа

Хо-хо-хо, я пилю open source проекты! Для самого сообщества тут мало чего полезного. Конечно, ведь это всё не работает без нашего сервера, а так-то мы SaaS. Но теперь я полностью закрепился на GitHub’e, как в рабочее время, так и в свободное. Работаю я в Cycode. Мы занимаемся кибербезопасностью, предоставляя решения для сканирования кода на оставленные токены, пароли и пр., анализы конфигураций инфраструктуры, статического анализа кода, анализа компонентов проектов и отслеживания уязвимостей в них и много чего ещё. Моя же роль в этом – это опыт конечных разработчиков. Я делаю полноценную экосистему, в которую входит CLI, плагины для JetBrains IDEs, VS Code и других. За полгода работы я уже выпустил все три ранее названных компонента и даже упаковал CLI в официальный репозиторий Homebrew. Продолжаю выпускать новые продукты и развивать старые!

Достижения года

Достижение прошлого года сдулось т.к. проект заброшен :) Сейчас пакет скачивают 4000 раз в неделю.

Я был приятно удивлён получить статус critical project на PyPI летом этого года. Данный статус значит, что мой tgcalls проект вошёл в TOP 1% по скачиванию во всём языке программирования Python! Если говорить не в процентах, то библиотека входит в TOP-3500 среди всех опубликованных пакетов!

— Ilya. Итоги Года 2022

GitHub

Суммарно я получил больше 2к звёзд на свои репозитории! Столько разработчиков респектануло проектам, а еще больше ими воспользовалось (I hope). Растём! Нехилый буст дал новый проект! Кроме этого, мне ещё передали yandex2spotify, который работает на моей же библиотеке. Когда-то с помощью него я идеально плавно и переехал на Spotify.

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

GitHub Wrapped 2022 -> 2023:

  • Contributions: 742 -> 1243
  • Active days: 146 -> 223
  • Longest streak: 11 -> 22
  • Weekend activity: 46% -> 25%
  • Most Used Languages: Python, C++ -> Python, TypeScript, Kotlin
  • Lines Changed per day: 93 -> 206
  • LOC Additions: +21k -> +50k
  • LOC Deletions: -13k -> -25k

Самым активным днём в 2022 было воскресенье, неактивным - среда. В 2023 самым активным днём стала пятница, неактивным - суббота.

WakaTime говорит, что я накодил всего 1042 часа за год (TOP 3% of 500k+ devs). Подозрительно мало… А ещё ужасно страшно, что в той же CS, в которую я не заходил с 2017 года, у меня наиграно 1500 часов…

Английский

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

EF Standard English Test. Так, в апреле 2021 года, пятнадцатиминутный тест сказал мне, что я B1-B2 (70%), а в январе 2023 тот же тест уже C1-C2 (86%). Не поверив в результаты 2023 года, я пошёл проходить полный тест на 50 минут – C1 (68/100). 71 чтение и 61 слушание. Всё фигня, товарищи, у меня в том, что понимания у меня дофига, а говорения нефига! А этот тест только понимание и тестировал. Не сложнее ютубчика под чипсоны посмотреть, да статью прочитать. Зато добавить сертификат в LinkedIn – моё почтение. Висит красивый теперь.

EnglishScore. Тут меня оценили в B2. Итого 433 попугая. Из которых – grammar 425, reading 393, vocabulary 489, listening 426. C1 у них от 500 попугаев.

В 2022 я ходил общаться с онлайн репиком, тот меня тогда оценил на уверенный B1+. А недавний внутренний тест, для записи на курсы в компании, сказал что я A1. Вот она, правда!  

Здоровье

Данная категория претерпела значительные изменения за 2023 год.

Мой всплеск к digital healthcare остыл. Я больше не измеряю себе давление и температуру раз в N дней просто для статистических данных. Данная индустрия не так стремительно развивается, чтоб быть в ней 24/7. За 2023 год я ничего, кроме датчика анализа мочи, крепящийся в унитаз, из новопреставленного и не помню. А сам же датчик, вроде как, так ещё и не вышел. Apple не спешит совершать очередные революции (слишком заняты своим шлемом), а все остальные стремительно их догоняют. Теперь достойные часы есть и у Google (Pixel Watch), а их экосистема вокруг Fitbit растёт. Ждём всем человечеством неинвазивные датчики для диабетиков.

Мой стрик по ежедневному гулянию, который я начал еще в 2022 году, оборвался 24 Апреля. Ему было 184 дня ежедневных гуляний не меньше 1 часа. Помянем. После такой трагедии я не оправился и заново свой пусть не начал. Это был интересный эксперимент по закрытию колец, который никогда не был ко мне лоялен. Даже при плохом самочувствии. Когда-то это всё равно бы закончилось. Но это стало толчком для следующего шага – тренажерный зал! С детства мечтал!

Тренажерный зал

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

Тренер

Дорогое удовольствие, но того стоящие. Особенно, если вы весь занятой такой человек, разрывающийся между работой и пет-проектами. Слежение за своей программой, техникой, ее изучением, мотивированием себя ходить и соблюдением режима – всё это вы можете делать самостоятельно! Но ведь есть возможность переложить это на человека, для которого это работа! А хотели бы вы человека, который за вас будет разгружать штангу после подходов или добавлять блинов? Заплатите! Максимально всем рекомендую хотя бы на первые месяца три. У вас будет человек, который будет вас водить за ручку среди всех накачанных мужчин и девушек. Отжимать для вас тренажеры и, самое главное, обучит работе с ними! Советую выбирать тренеров при зале и с сертификатами. Данные мастера точно не научат вас, как вредить организму. Это критически важно при работе с весами. Суставам очень легко навредить неправильной техникой в самых банальных упражнениях. Ошибиться и использовать не ту группу мышц тоже элементарно. Тренер рядом будет вам всегда напоминать напрячь спину, поджать жопу – это база. В будущем, как выработаете привычку, можете отправиться в своё плавание. Не будете ощущать что делаете правильно – зеркала в помощь. Зрительно то уж вы должны запомнить, как вам тренер показывал. Рекомендую приложение MuscleWiki.

Шмот

Поилка, два палатенца, сумка, кроссовки с плоской подошвой, а лучше еще и с твердой пяткой, удобная одежда, не сковывающая движения. Кроссовки, что у меня, что у тренера моего – это Nike Metcon 8. За технологию Dri-FIT в одежде, наверное, не стоит переплачивать, но если не бьет по карману, будет славно. Вот вам TLDR.

(перчи так и не использовал, говорят качки вас не поймут с такими перчаточными наклонностями)

Зал

Не добавить, не убавить. З-А-Л. Все современные, в целом ОК. Абонементы в приложениях, сканирования QR на входе, статистика посещений. Подвальные для хардкорщиков. Там прячутся реальные машины. Ведь в обычных колоссальные веса стараются не предоставлять, дабы избежать наплыва тестостероновых орущих мужиков, бросающих и ломающих инвентарь. Чтоб привести себя в форму и получить без фанатизма массу мышц, будет предостаточно того, что есть. Всё что нужно – больше уже будет во вред вашему здоровью :) вы же не собираетесь две-три сотни кг поднимать и участвовать в соревнованиях.

Хожу я туда с начала лета, с перерывами на путешествия, о чем дальше. Мой последний рекорд это 105 кг становой тяги на 3-5 подхода. Прям рекорд-рекорд! Думаю, смогу разок больше поднять, не пробовал. Сам же вешу 90-95кг. Похудение дается сложно. Любовь покушать всякого дерьма не ушла, пробовал бросить неоднократно за этот год. Лучший забег –  это месяца 2-3 на кейтеринге. Расстроил он меня тогда отсутствием результата, а это ведь вместе с тренировками! Изменения отслеживал на InBody (+1 повод ходить в зал, они обычно там есть). Относительный топ среди bioelectrical impedance analysis (BIA), который разложит ваш состав тела на компоненты (процент жира, мышц, костей и т.д.). Продолжаю работать с эндокринологом, хотя тут надо работать с головой.

Новые гаджеты

По-прежнему считаю, что Apple Watch самый технологичный гаджет 21 века. Моя любовь к ним просто безгранична. Количество датчиков и алгоритмов восхищает. Принятые решение, например, использование датчика освещенности для отслеживания проведенного времени на улице (WatchOS 10), гениальны.

Oura Ring

Да, дорого! Да, подписочная модель уже после покупки! НО:

  1. Хотел маленький аксессуар на вторую руку, носить обычное кольцо не в моём стиле.
  2. Второй источник данных в дополнение к часам, чтобы они друг друга перепроверяли.
  3. Дорос до дней, когда могу себе позволить, не моргая глазом.

Лучше ли часов? Однозначно, нет! Удобнее ли часов? Однозначно, да! Хороший компромисс для тех, кто не готов носить умные часы, но хочет какой-нибудь трекер. Держит батарейку дней 5. Опыт крайне положительный. Всё, что мне от него надо – это выгрузка данных в Apple Health. Частично это встроенно, для других метрик я использую shortcut с iOS автоматизацией на закрытие приложения Oura. Который ходит на API и импортирует данные в приложение “Здоровье”. Вот сами shortcuts на GitHub.

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

Apple Watch Ultra 2

Я просто хотел почувствовать новизны. Когда ты уже обмазался техникой Apple, новый iPhone не доставляет тебе такой радости, как первый. Продолжаю оставаться на 13ом. Переход с обычных Apple Watch на Ultra, продажи которых уже приостановлены в США – это та самая первая радость, которую я ещё совместил с самым большим обновлением WatchOS за всю историю. Double tap – дичайшая дичь, но то, что часы стильные, более мужские, держат 3 дня в активном использовании – это то, ради чего стоит купить. Наличие модуля связь – вещь интересная. Особенно, когда номер между телефоном и часами единый. Теперь телефон брать с собой на прогулку вовсе не обязательно. Наушники подключаешь к часам, сам через приложение Spotify слушаешь музыку и остаешься на связи. Звонки, уведомления, всё при тебе.  Более подробно обсосал эту тему в своём голосовом сообщение на Яндекс.Музыка, Apple Podcasts, Spotify.

Зрение

Я не молодею, а количество часов за экраном остаётся, как в школьные годы. Зрение стремительно падает после 20 лет. Вскрываются новые приколы, например, астигматизм. В 2023 году я решил приобрести очки. Стильно, максимально современно, самый жир жира доступный на рынке линз. Тут тебе и супер тонкие линзы, и затемнение на солнце, и защита от синего света, и объединения рецептов для дали и близи в одних очках без необходимости иметь две пары. Индустрия приятно удивила своим индивидуальным подходом к изготовлению линз. Буквально, не ожидал такого количество измерений, взятых с меня помимо просто выбора конфигурации… Подробнее на Яндекс.Музыка, Apple Podcasts, Spotify xd вы же не думали, что я готовый аудиоматериал буду перепечатывать в итогах года.

Зубы

Просто добавил, чтоб погеройствовать! Залечил огромное количество, рот буквально уже из пломб весь. Ходил чуть ли не через день туда, без шуток. Пересел на хорошую пасту и теперь пользуюсь только ей. Не сделаю открытие, если скажу, что это Сuraprox. А вот ирригатор, к сожалению, не прижился. Быть может попробую еще раз в 2024.

Реминерализирующий гель тоже. Забил на изготовление капы, надо будет продолжить начатое в следующем году. По-дружески советую следить за зубками. Нам с этим атасом жить еще ни один десяток лет, задумайтесь уже сейчас. Чем дольше откладываете, тем больше заплатите. Импланты ого-го стоят. Уж лучше композитную пломбочку впендюрить. 

Состояние кожи

Вот просто, еще одна детская мечта – посетить дерматолога. Без проблем осуществлена, занимаемся лечением. Какие-то гели, какие-то витаминки. Пока без тяжелой артиллерии (ретиноиды). Будем посмотреть.

Путешествия

Балдежно собранный в прошлом carry-on bag работает на славу! Ничего не докупив, стараюсь эксплуатировать его как можно чаще. Этот год стал рекордным по перелетам и посещению стран. Я побывал в Сербии, Греции, Грузии, Испании, а прямо сейчас дописываю статью из Нидерландов! Повидал много! Эмоций получил целый вагон! Впечатлился красотами стран и ещё никогда так не был рад вернуться в Варшаву! Home Sweet Home! Провёл в небесах больше 23 часов, пролетев больше 13 тысяч км. Вот тебе паспорт полётов!

В заключении

Это был год исполнения мечт! Лежащих годами в моей голове. Одни – с выдержкой в 10 лет, другие – всего в 2. В итогах ещё много чего накидать можно было: и про то, как я пощупал Go, и про небольшой переезд в Discord, и более подробно про автошколу в Европе, решение LeetCod’a и изучение алгосиков (в очередной раз), и mirroring всего своего GitHub’a на Gitea, но, let’s keep it simple. Не открыл ничего нового для подписчиков live канала, которые читают мой каждый бредовый пост, буквально поток событий жизни, люблю их :*

Сделайте свой следующий год ЛУЧШЕ, ЧЕМ ЭТОТ!!! ✨

Итоги прошлых лет: 2022202120202019

Недавние посты


© marshal.by 2023

Исходный код

Сайт работает на Gatsby + prismic и опубликован на GitHub.