Про сайт
Этот сайт изначально делался как некий тест технологий, которые я то и дело изучаю. Начал я его себе делать очень давно, около 14−15 лет назад (или еще раньше), тогда это был PHP, MySQL и какое-то чудовище из нативного джаваскрипта, смешанного с ExtJS. И конечно же «кроссбраузерная» верстка для IE6+ и всего остального (Firefox, жуткий на то время Safari еще до WebKit, Opera, которая вообще непонятно зачем). И эти еще помню страшные JS-махинации, чтобы фон у PNG в IE младше 7 стал прозрачным. Мрак, в общем, но мне так сильно нравилось постоянно что-то в этом сайте улучшать и доделывать, что он так и не был выпущен, потому что было не за чем, да и процесс никак не останавливался, чтобы хоть какой-то MVP зафиксировать (потому что без ТЗ, да). И еще потому что «он» «не был готов».
Еще помню всякие игры в форумные движки, но это по понятным причинам опустим — у всех есть скелеты в шкафу.
В процессе активно начали появляться всякие Ruby on Rails (и Jekyll, который был настолько удобен, что я, конечно, его сразу выбросил, потому что хочу писать сам), там же сразу вылезли всякие AngularJS, потом React, но я уже занимался управлением большим ИТ и мне было некогда. Да и не хотелось, потому что я уже запутался и не видел между ними разницы.
Короче, шли годы, технологии все продолжали появляться, jQuery стал историей (до сих пор не стал), а я все никак не мог вернуться к разработке, потому что постоянно мотался по командировкам, да и, опять же, не было особого желания. Стал забывать, короче.
В 2023 наткнулся на NextJS и как-то мне стало интересно, что оно такое и зачем его такого сделали. И NuxtJS еще, потому что React и VueJS, конечно, «очень разные», «React — это библиотека, а не фреймворк» — да, ок, понятно. Это еще иногда в стиле «я веган» с известного мема подается. Фанаты, duh. Zero fucks given, в общем, на том и закончим. Тайпскрипт, да.
Короче, написал я себе сайт на NextJS за недельку, когда вдруг время нашлось и желание появилось — удивительное совпадение. Уйма кода, десятки компонент, SSR-SSG-WTF — увлекательно было, в общем, но на том интерес и пропал. Удобно, SPA, SEO-friendly, все побито на чанки, закешировано, CDN — круто, нравится, Prisma тоже весьма, но не цепляет почему-то. Громоздко как-то — не мое. Я люблю минимализм, чтобы ничего лишнего вообще не было — максимальная чистота. Грузим только то, что нужно грузить, не таскаем с собой 5 мегабайт пусть даже закешированного JS. Или, как в случае с jQuery, ради удобных селекторов в паре строк с $("#element").toggle()
— ну, понятно. Я вот, в отличие от некоторых, не вижу греха в использовании нативного джаваскрипта, если его совсем мало и всего на паре страниц. И вообще, ну кто в 2025 смотрит у кого там на чем сайт написан (актуально с 2015±). А еще нативный JS теплый и ламповый, особенно эти вот «гет элемент бай айди» — ну прелесть же!
Ну, так вот, этот сайт вообще весь на Flask, потому что как-то полюбился мне Python. Простейший, удобный, быстрый — нравится. За пару дней буквально накидал блог (я всегда пишу блог, когда что-то новое изучаю — привык уже), статичные странички, большую операторскую часть, где все игры и происходят, и балуюсь периодически, добавляя что-то новое. Понятно, что postgresql, понятно, что nginx, gunicorn, systemd. И SQLAlchemy, конечно, — обычный набор юного техника. В общем, я уже пару недель играюсь с Flask, мне пока нравится, пока даже не хочется взять и все в корне переписать на PHP+mongodb (шутка, конечно, — я покинул секту).
Я, кстати, перфекционист каких поискать — могу пиксели сидеть подгонять часами вместо того, чтобы о безопасности позаботиться, роуты нормально настроить и какой-никакой автодеплой, чтобы не руками это все. Но вот зато у меня в операторской у каждого пункта меню своя svg иконка с разным поведением при :hover
. Не даром же я фронтом так много лет занимался. Для сетки, кстати, использую Raster, он супер простой и позволяет строить сетку через HTML вместо CSS, что, конечно, удобно. Шрифт здесь — мой любимый Inter с небольшими настройками font-variation-settings
(в Google fonts версия без их поддержки, пришлось скачать и подключить 150 килобайт!) — и все, в остальном под капотом все предельно просто.
В операторской живут typograf, tinyMCE (вместо markdown, потому что ну камон), всякие асинхронные запросы к небольшим собственным API-методам, отдельный блокнот, куда я пишу всякое, что то и дело приходит в голову (там autosave и версионность — изобрел колесо, да, знаю), сборка RSS потоков, новостей, которые меня заботят и т. д. — много мелочей, которые позволяют поставить себе PWA на Андроид и пользоваться всем-в-одном для себя самого. Конечно, оно там под паролем все лежит в яйце зайца, который в утке.
А еще мне сегодня исполнилось 40 лет, делаю миру подарок этой записью.