diff --git a/_posts/ru/year-resume-2023.md b/_posts/ru/year-resume-2023.md
new file mode 100644
index 000000000..e504d70c7
--- /dev/null
+++ b/_posts/ru/year-resume-2023.md
@@ -0,0 +1,170 @@
+---
+title: 'Итоги 2023 от CSSSR. Хлеб. Соль. Интернет.'
+coverImageAlt: 'Хлеб. Соль. Интернет.'
+author: 'Максим Вислогуров'
+date: '2023-12-29T00:00:00.000Z'
+tag: 'web-development'
+---
+
+---
+
+
+**И**сторию эту мне рассказал [Александр Покахонтов.](https://blog.csssr.com/ru/article/year-resume-2021/) В прошлом машинист поезда, нынче – фронтенд разработчик. Составляет хайлайты с 2021 года. Далее записано с его слов.
+
+**29 декабря 2023 года.**
+
+Сколько можно мёржить, - говорит, уперся в свой экран, - говорит, - сходи на улицу. Да, кстати, что там на улице, что может мне предложить улица, против вымышленного придуманного программистами мира?
+
+Очнувшись от этого фантастического буйства релизов перед Новым Годом, я обнаруживаю себя где-то в переулке на Пятницкой. Перед баром.
+
+
+*У каждого посетителя тут свои истории, кто-то о своей жизни рассказывает. Есть и совсем маргинальные личности на которых не обращают внимания и поколотят после уютного вечера за углом. Звон пивных кружек, рюмок, сигаретный дым и добрый смех*
+
+## Тайпогейт
+
+Я только открыл дверь, а под мне уже выбросили какого-то бедолагу.
+
+
+
+
+
+Не таким пинком, но всё равно резко и внезапно в этом году сразу [три крупных вендора](https://t.me/melikhov_dev/245) отказались от TypeScript. Оговорюсь, что отказались в системном коде.
+
+Тренд прослеживается — не хотят люди писать системный код на ts, уж слишком накладно. Много кода пишется чисто ради удовлетворения Typescript-божества. Плюс дополнительный этап транспиляции, плюс опять как-то конфиги хитро описывать, если в одном проекте и ts и js-файлы. Не на bun’е пишем же...
+
+## 10 лет реакту
+
+Я прохожу дальше в зал и спотыкаюсь о лежащего “мордой в салат” человека. Рядом с ним пара костылей и велосипед. Из его головы растёт дерево, а под столом лежит его копия. Но будто бы ненастоящая.
+
+— Осторожней с юбиляром!
+
+
+
+[Поздравляли много](https://t.me/artalog/985), записал некоторые моменты:
+
+- Маркетологи реакта — сила
+- Производительность — низкая
+- Будущее — за Vue
+- Жить нам с этим — всю жизнь. Легаси уже написано столько и оно обросло таким количеством надстроек, что лучше уж шарить в реакте, чем не шарить. (этот тост мой **©** А. Покахонтов)
+
+## Bun
+
+Ближе к барной стойке у меня началось [дежавю](https://habr.com/ru/articles/476972/)
+
+
+
+Кроме жирной json-овой диеты новый рантайм для js успел [отметиться](https://www.youtube.com/watch?v=BsnCpESUEqM):
+
+- одинаково хорошо понимает и `cjs` и `mjs`
+- fs.read/write быстрее, чем у ноды
+- может держать в 4 раза больший RPS, чем Нода
+- тесты на jest гоняются в десятки раз быстрее
+- нативная поддержка rust-импортов
+
+Но в чём-то и человек похожий на [Уилла Смита](https://dev.to/thejaredwilcurt/bun-hype-how-we-learned-nothing-from-yarn-2n3j) прав:
+
+- зависимость от сборки от bun-макросов
+- собственное bun API. Оно отличается от нодового и прилэтся писать свои полифилы, дабы не сломать совместимость.
+
+В Новый Год с новым рантаймом! Но помним о [нюансах](https://t.me/melikhov_dev/253).
+
+## [Утечка памяти года](https://t.me/melikhov_dev/172)
+
+Ну `undefined` и `undefined`, сколько их там в девтулзах видно? Сотни. Чего бухтеть-то?
+
+А бухтеть может быть и стоило.
+Тут без ста грамм не разобраться, сейчас 150 из гранёного хлопнем и посчитаем.
+Давайте, я прямо за стойкой тут на салфетке прикину
+
+
+
+Каждые 8 запросов утекает 1кБ, то есть 100 Мб утечет примерно за ~820k запросов. Предположим, что у среднего сервиса хотя бы 10 rps.
+
+Отдает он порядка 300к ответов в сутки…**с вас 100мб оперативы в сутки.**
+
+## .zip
+
+
+
+***Тем временем у чёрного хода в бар…***
+
+Для тех, кто в теме: с этого входа можно зайти и бухать бесплатно. Или кошелёк умыкнуть. Хотя кошелёк вы отдадите сами, как и сами установите майнер вместе с keylogger’ом.
+Всё потому, что гугл в этом году представил домен первого уровня `.zip`, чем усложил жизнь всем безопасникам на свете.
+
+*[`https://github.com∕kubernetes∕kubernetes∕archive∕refs∕tags∕@v1271.zip`](https://github.com%E2%88%95kubernetes%E2%88%95kubernetes%E2%88%95archive%E2%88%95refs%E2%88%95tags%E2%88%95@v1271.zip/)*
+
+*[`https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.27.1.zip`](https://github.com/kubernetes/kubernetes/archive/refs/tags/v1.27.1.zip)*
+
+“— Видишь, где малварь?
+
+— Нет, не вижу.
+
+— А она есть.”
+
+Вот это мы живём и не знаем, какие законы принимаются.
+
+## [Братство Rust’а](https://t.me/melikhov_dev/239)
+
+…и тут в бар входит мексиканец…или нуменорец? Ну неважно, огромного такого роста, ты не поверишь. Идет себе эдаким хозяином. Никто не знал, откуда он и чего он хочет. А он словно никого не замечает, он тоже был темный. Не хочу сказать темнокожий. Нет. Дело было в другом. Словно он всегда был в тени. Он делал шаг к свету - тут его лицо должно было появиться, но его не было видно, как будто свет тускнел перед ним.
+
+
+
+Казалось бы, уже 3 года Rust сидит в такой же тени, как и нуменорец. Языку уже зачитывали эпитафии после исхода разработчиков в 2020 году, а он живее всех живых! Каждый год кто-то планомерно да переписывает свой тулинг на Rust.
+
+Воистину “наследник Гондора”.
+
+***Судя по звукам, на втором этаже бара шло какое-то побоище…Гуляют сразу два зала, каждый со своими “зависимостями”.***
+
+## Гонконгская история*
+
+*-гонконгская, потому что всё мельтешит и летает, как в гонконгском боевике.
+
+### В ESM. Туда и обратно.
+
+
+
+Ну ничего не меняется вообще!
+
+Марк Эрикосн, мейнтенйнер Redux, в конце прошлого года поставил задачу: [переехать с CommonJS на ESM](https://blog.isquaredsoftware.com/2023/08/esm-modernization-lessons/). Задача оказалась нетривиальной… А потому что до сих пор нет гайда, как перейти от одной модульной системы к другой.
+
+Хотя, казалось бы, что тут переходить то? Пиши `type:module` и всё тут. Так, да не так. По пути может отвалиться Jest, и придётся переходить на `vitest`, а `nodenext` не может вытащить типы. А ещё нода не может работать `.js` расширениями, если пакет переключен на ESM и нужно выбирать между тремя расширениями `js/mjs/cjs` в зависимоcти от того есть `type: module` или нет...А ещё пришлось перебрать аж 4 бандлера, чтобы собрать 20-ти строчный исходник. А ещё выясняется, что Webpack 4 до сих пор популярнее Webpack 5. Но Webpack 4 не понимает optonal chaining...
+
+**Происходит настоящая бойня с зависимостями и системами модулей!**
+
+В общем к августу 2023 года работа по переезду так и не была закочена. Пока Марк не смог отбиться от фронтенд-зоопарка 2023. А ещё вышел `Next 13.4`. который сломал React Server Components. Значит при переезде на ESM нужно поддержать совместимость.
+
+Конца и края этому нет! Ей-богу будто кто-то открыл портал в во фронтенд-зоопарк 2014 года, когда все впервые переезжали с bower на npm.
+
+**P.S** Говорили, будто бы Марка видели в чебуречной на Белорусском вокзале и слышали, как он клялся стать бекендером.
+
+*Но разве в бэке нет зоопарка? Ооо, конечно же есть. Вот, как раз в соседнем зале.*
+
+### В облако. Туда и обратно.
+
+
+
+Эту гонконгскую разборку могу описать в двух словах.
+Если коротко, то разработчики “рельс” ушли от облачных решений к себе в дата-центры.
+
+Голые ванильные k8s или k3s хороши, но за пределами вашей домашней лаборатории они мало что дадут. Если вы хотите, чтобы k8s работал в облаке, нужно подумать о:
+
+- балансировке нагрузки и входном контроллере
+- хранилище
+- сети, ingress
+- логировании и мониторинге
+- реестре зависимостей
+- ci/cd
+- gitops’е
+
+У каждого облачного провайдера этот список каждый раз новый и технологии подбираются заново. Откажет AWS/GKE — собирай весь сетап заново.
+
+В итоге DHH и команда [придумали свои способы](https://dev.37signals.com/bringing-our-apps-back-home/).
+
+У них огромный список опробованных инструментов и интеграций с сумасшедшими названиями; `Capistrano`, `Chef`, `mrsk`, `Filebeat`, `traefik`... По сложности это кажется вполне сравнимым с полным развертыванием K8 со всеми наворотами (ведение журнала, мониторинг, сеть и т. д.).
+
+*Примерно могу почувстововать, что где-то ещё должен задаваться тренд на “подальше от облака, ближе к себе, ближе к “металлу.”*
+
+## Эпилог
+
+Кажется мы засиделись. Так же незаметно, как опустел бар, так же наступал 2024 год.
+
\ No newline at end of file
diff --git a/public/images/dont-resize/ru/year-resume-2023/arag/all.png b/public/images/dont-resize/ru/year-resume-2023/arag/all.png
new file mode 100644
index 000000000..c5fabe2f2
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/arag/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/boy/all.png b/public/images/dont-resize/ru/year-resume-2023/boy/all.png
new file mode 100644
index 000000000..cc5e92058
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/boy/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/chad/all.png b/public/images/dont-resize/ru/year-resume-2023/chad/all.png
new file mode 100644
index 000000000..8293c5ede
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/chad/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/end/all.png b/public/images/dont-resize/ru/year-resume-2023/end/all.png
new file mode 100644
index 000000000..e69bf6f97
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/end/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/hs/all.jpg b/public/images/dont-resize/ru/year-resume-2023/hs/all.jpg
new file mode 100644
index 000000000..b7b0ab337
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/hs/all.jpg differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/kube/all.png b/public/images/dont-resize/ru/year-resume-2023/kube/all.png
new file mode 100644
index 000000000..35b58f276
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/kube/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/nodebun/all.png b/public/images/dont-resize/ru/year-resume-2023/nodebun/all.png
new file mode 100644
index 000000000..3bb6823dc
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/nodebun/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/pdzh/all.png b/public/images/dont-resize/ru/year-resume-2023/pdzh/all.png
new file mode 100644
index 000000000..0d9f55b79
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/pdzh/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/r10/all.png b/public/images/dont-resize/ru/year-resume-2023/r10/all.png
new file mode 100644
index 000000000..af1261eb2
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/r10/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/wrong/all.png b/public/images/dont-resize/ru/year-resume-2023/wrong/all.png
new file mode 100644
index 000000000..eb1493054
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/wrong/all.png differ
diff --git a/public/images/dont-resize/ru/year-resume-2023/zip/all.png b/public/images/dont-resize/ru/year-resume-2023/zip/all.png
new file mode 100644
index 000000000..f02cf7028
Binary files /dev/null and b/public/images/dont-resize/ru/year-resume-2023/zip/all.png differ
diff --git a/public/images/resize/ru/year-resume-2023/postCover/desktop.all.png b/public/images/resize/ru/year-resume-2023/postCover/desktop.all.png
new file mode 100644
index 000000000..20d88930e
Binary files /dev/null and b/public/images/resize/ru/year-resume-2023/postCover/desktop.all.png differ
diff --git a/public/images/resize/ru/year-resume-2023/postCover/mobile.all.png b/public/images/resize/ru/year-resume-2023/postCover/mobile.all.png
new file mode 100644
index 000000000..8cd907411
Binary files /dev/null and b/public/images/resize/ru/year-resume-2023/postCover/mobile.all.png differ
diff --git a/public/images/resize/ru/year-resume-2023/postCover/tablet.all.png b/public/images/resize/ru/year-resume-2023/postCover/tablet.all.png
new file mode 100644
index 000000000..20d88930e
Binary files /dev/null and b/public/images/resize/ru/year-resume-2023/postCover/tablet.all.png differ