2023 год

Всё то же самое, только ещё один год. Новые проекты во всех областях. В вузе стало больше технических предметов и некоторые проекты оттуда я начал брать как свои и доводить до идеала. В этом же году познакомился с Obsidian.

Keyboard

Решил улучшить летающую клавиатуру из проекта StageNumber. Переписал и расширил код, улучшил анимации. Для отображения клавиатуры нарисовал ASCII арт рисунок. Отображённая на сайте клавиатура срисована с раскладки моего первого ноутбука.

Keyboard - Летающая клавиатура

Страница летающей клавиатуры доступна.

TauCeti

После создания предыдущего проекта, решил вокруг него выстроить стартовую страницу для сервера. Поскольку проектов скопилось уже не мало, появилась необходимость создать центральную страницу, с которой можно было бы перейти к просмотру других проектов. Так появилась TauCeti.

TauCeti - Клавиатура с ссылками TauCeti - Млечный путь

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

Experiment v3

Experiment v3 является улучшенной версией Experiment v2 и расширяет его возможности. В дополнение к скриптам для отображения данных за небольшие промежутки времени, были добавлены генераторы накопительных и общих графиков. Я же стал вести трекер непрерывно в течение всего года и помимо отслеживания этапов жизни, стал наблюдать за игровыми сессиями.

Experiment v3 - Карта 2023 игрового года

На графике выше отображены все игровые сессии за 2023 год. На графике ниже отображена плотность, которую занимали эти игры по неделям.

Experiment v3 - Плотность 2023 игрового года

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

Experiment v3 - Два с половиной года учёта

На рисунке выше изображён кружок времени за два с половиной года учёта данных. Исходный код проекта открыт. Каждый скрипт обладает параметрами запуска для настройки.

WebTermux

Небольшое руководство по установке веб сервера Apache и настройке базы данных MariaDB на Android телефон с помощью приложения Termux. Для удобства работы с базой данных ещё устанавливается phpMyAdmin.

WebTermux - phpMyAdmin

Руководство доступно в текстовом формате, а так же в формате видео. Все действия по установке очень подробно расписаны, для редактирования файлов используется Vim.

cTetris

Решил принять участие в StoneJam. Переписал код учебного проекта тетриса с C++ на Stonescript. Получилась неплохая игра. Проект собрал много отзывов на событии и позже standardcombo - главный разработчик Stone Story RPG - добавил мою миниигру в сам проект. Так что теперь каждый человек может поиграть в тетрис. Для этого надо только импортировать игру и зайти на локацию водопада.

cTetris - Тот самый момент

Приложение очень легко настраивается: в шапке скрипта указаны переменные, которые могут задавать размер игрового поля и цвета падающих фигур. Исходный код игры так же доступен и находится внутри проекта cAutomation на GitHub в директории игр.

ObsiDemos

После OneNote начал использовать программу Obsidian. Решил разработать новую систему для организации своего блокнота. Для лучшей раскладки создал крохотный проект, который мог генерировать различные тестовые хранилища для приложения.

ObsiDemos - Граф связей за два года

В результате нашёл хорошую систему заметок, в равной мере балансирующую использование папок, тегов и различных типов записей. На изображении выше показан текущий граф связей моего блокнота, структура которого была разработана с помощью ObsiDemos.

ThousandYears

Прототип консольной игры, созданной с помощью библиотеки Textual. Проект вышел неудачным и был сначала заморожен, а потом закрыт. Планировалось создать idle игру с сюжетом и упором на выполнение различных миссий и различных товарных обменов.

ThousandYears - Оффлайн прогресс ThousandYears - Улучшения

Во время разработки понял, что Textual не очень подходит для создания приложений, требующих большой частоты обновления экрана.

Planets

В качестве курсового проекта по дисциплине разработки клиентских частей интернет ресурсов взял тему на создание набора страниц о планетах Солнечной системы. Помимо выполнения самой курсовой работы, очень хотел отобразить все планеты в их пропорциональном масштабе.

Planets - Главная 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))