Всё то же самое, только ещё один год. Новые проекты во всех областях. В вузе стало больше технических предметов и некоторые проекты оттуда я начал брать как свои и доводить до идеала. В этом же году познакомился с Obsidian.
Keyboard
Решил улучшить летающую клавиатуру из проекта StageNumber. Переписал и расширил код, улучшил анимации. Для отображения клавиатуры нарисовал ASCII арт рисунок. Отображённая на сайте клавиатура срисована с раскладки моего первого ноутбука.
Страница летающей клавиатуры доступна.
TauCeti
После создания предыдущего проекта, решил вокруг него выстроить стартовую страницу для сервера. Поскольку проектов скопилось уже не мало, появилась необходимость создать центральную страницу, с которой можно было бы перейти к просмотру других проектов. Так появилась TauCeti.
![]() |
![]() |
---|
При просмотре с компьютера, в центре экрана отображается большая клавиатура, при наведении на клавиши которой появляются списки ссылок на другие проекты. Если же открывать сайт с телефона, то вместо клавиатуры появляется вращающийся млечный путь. Переключать отображаемую заставку можно путём нажатия на слово TauCeti. Сайт работает.
Experiment v3
Experiment v3 является улучшенной версией Experiment v2 и расширяет его возможности. В дополнение к скриптам для отображения данных за небольшие промежутки времени, были добавлены генераторы накопительных и общих графиков. Я же стал вести трекер непрерывно в течение всего года и помимо отслеживания этапов жизни, стал наблюдать за игровыми сессиями.
На графике выше отображены все игровые сессии за 2023 год. На графике ниже отображена плотность, которую занимали эти игры по неделям.
Помимо сугубо аналитических данных, Ev3 может отображать кружок времени - характерную сводку по всему файлу сохранения. На рисунке ниже показан кружок времени за два года учёта данных. Круг представляет собою 24-х часовой циферблат. Вверху полночь. Новые этапы идут по спирали и всё дальше отходят от центра.
На рисунке выше изображён кружок времени за два с половиной года учёта данных. Исходный код проекта открыт. Каждый скрипт обладает параметрами запуска для настройки.
WebTermux
Небольшое руководство по установке веб сервера Apache и настройке базы данных MariaDB на Android телефон с помощью приложения Termux. Для удобства работы с базой данных ещё устанавливается phpMyAdmin.
Руководство доступно в текстовом формате, а так же в формате видео. Все действия по установке очень подробно расписаны, для редактирования файлов используется Vim.
cTetris
Решил принять участие в StoneJam. Переписал код учебного проекта тетриса с C++ на Stonescript. Получилась неплохая игра. Проект собрал много отзывов на событии и позже standardcombo - главный разработчик Stone Story RPG - добавил мою миниигру в сам проект. Так что теперь каждый человек может поиграть в тетрис. Для этого надо только импортировать игру и зайти на локацию водопада.
Приложение очень легко настраивается: в шапке скрипта указаны переменные, которые могут задавать размер игрового поля и цвета падающих фигур. Исходный код игры так же доступен и находится внутри проекта cAutomation на GitHub в директории игр.
ObsiDemos
После OneNote начал использовать программу Obsidian. Решил разработать новую систему для организации своего блокнота. Для лучшей раскладки создал крохотный проект, который мог генерировать различные тестовые хранилища для приложения.
В результате нашёл хорошую систему заметок, в равной мере балансирующую использование папок, тегов и различных типов записей. На изображении выше показан текущий граф связей моего блокнота, структура которого была разработана с помощью ObsiDemos.
ThousandYears
Прототип консольной игры, созданной с помощью библиотеки Textual. Проект вышел неудачным и был сначала заморожен, а потом закрыт. Планировалось создать idle игру с сюжетом и упором на выполнение различных миссий и различных товарных обменов.
![]() |
![]() |
---|
Во время разработки понял, что Textual не очень подходит для создания приложений, требующих большой частоты обновления экрана.
Planets
В качестве курсового проекта по дисциплине разработки клиентских частей интернет ресурсов взял тему на создание набора страниц о планетах Солнечной системы. Помимо выполнения самой курсовой работы, очень хотел отобразить все планеты в их пропорциональном масштабе.
![]() |
![]() |
---|
В результате получился не только сайт с информацией, но и наглядная визуализация пропорций планет Солнечной системы. Единственное, что упущено на страницах - так это расстояние между телами, ведь если его учитывать, то листать туда-сюда придётся слишком долго. Сайт сейчас доступен.
CatLang
По другой дисциплине - конфигурационному управлению - всегда были очень сложные задания. Одним из таких было создание своего простого языка программирования, похожего на Lisp.
% Output text to console
(out "Hello, world!" . "from CatLang")
% Classic example
(if (!= (+ 0.1 0.2) 0.3) (
(out
"Wait... what? " .
"(" (+ 0.1 0.2) ")"
)
))
Создал свой язык с помощью Python библиотеки SLY. Мой язык поддерживает переменные, базовые операции, условия и циклы, объявление функций. Язык был назван CatLang и выложен в открытый доступ.
% The only one *right* way to make factorial
(def fact (n) (
(= f 1)
(while (> n 1) (
(*= f n)
(-= n 1)
))
(ret f) % Return f
))
% 5! = 1 * 2 * 3 * 4 * 5
(out "5! = " (fact 5))