Мы в эфире!

1 августа 2024 г.

Я собирался сделать себе личную страницу уже последние два года. Это отличная идея на бумаге: способ представлять и рекламировать себя окружающим, который может перерасти в полноценное портфолио со временем — словом, кому-то вроде меня заиметь личный сайт всегда будет актуально.

Самая ранняя версия этого сайта датируется сентябрем 2023 года. Текст был написан с чуть большим энтузиазмом и выражением и сегодня отдавал бы ChatGPT — поэтому он был переписан — а сайт был написан на ванильном HTML и JS. Планировалось использовать Firebase как хост и как базу данных для хранения записей в блоге. Позже я забросил ту версию, не зная, что с ней делать и как ее довести до ума — у меня не было четкого плана в голове и я работал только когда мне хотелось.

Скриншот старой версии сайта

Со временем стало понятно, однако, что откладывать сайт было нельзя, потому что я приближался к обучению в университете и мне неизбежно в какой-то момент потребовалось бы портфолио, которое могло бы говорить за меня. Тогда я решил начать с чистого листа — хотя из-за идентичного дизайна так не выглядит. Это довольно немаленький проект сам по себе для кого-то, кто не работает в команде, и время еще только покажет, насколько затратно его развивать содержать.

Самым большим новшеством стало использование SvelteKit. Я как-то всегда скептически относился к использованию JS фреймворков в маленьких проектах; я был тем, кто либо пытался бы написать все с нуля самостоятельно, либо — еще хуже — сделать собственный фреймворк. Но SvelteKit удивил и покорил меня своей простотой и теперь обещает долго оставаться моим предпочитаемым фреймворком.

<!-- из src/routes/navbar.svelte -->

<div>
    <a href='/'>Главная</a>
    <a href='/projects'>Работы</a>
    <a href='/blog'>Блог</a>
    <a href='https://github.com/st-U00F6-pa'>Github</a>
</div>

Это исходный код для навбара без стилей на момент написания статьи. Разве не здорово? Просто вписывай <Navbar/> в +layout.svelte и он на каждой странице. Как-то хочется теперь еще сайтов написать...

Кстати, если Вы читаете это на чем-то кроме экрана компьютера — дайте мне знать, как сайт отображается у Вас. Текст читаем? Верстка в норме? Напишите мне на почту если что-то не так.

Я думаю, я проделал неплохую работу. К примеру, статья, которую Вы сейчас читаете, хранится в Markdown файле по имени were_online.md. Метаданные статьи хранятся рядышком, в JSON файле по имени were_online.json. Все записи в блоге в одной директории, все страницы проектов в другой, оба прослушиваются через Chokidar и обновляются каждый раз, когда что-то меняются. Я думаю, это неплохой компромисс между написанием каждой записи как .html документа и созданием полноценной панели управления с редактором.

Я несколько раз упоминал так называемые "проекты". Я думаю, не было бы смысла иметь вкладку "Работы" без хотя бы одной опубликованной, и я решил начать с чего-то простого, но достаточно интересного для реализации.
Я представляю Вам... ASCII-Часы!

Анимация ASCII-Часов

Они отображаются в терминале. Как я говорил, я трепетно отношусь к псевдографике, к CPU рендерерам и особенно к CPU-отрендеренной псевдографике, поэтому я соединил в маленькую программу два простых алгоритма растеризации — для прямых линий и для окружностей — и получил часы. Про них можно подробнее почитать тут. В какой-то момент я наверняка перепишу и верстак с заглавной странцы, для чего мне придется писать OpenGL-подобную графическую библиотеку. Я думаю, будет интересно.

Давно я, кстати, не играл в Minecraft ...

(этот сайт написал человек; код написал человек; текст написал тоже человек)