*
  Мысли   Галерея   Проекты   Тексты  
  Мысли   Галерея   Проекты   Тексты  
NeCMS2

Фреймворк для разработки чего угодно на языке PHP, в теории существенно упрощает жизнь, далек от готового состояния, но уже сейчас вполне работоспособен. Объектная модель помогает максимальное эффективно использовать ранее написанный код. В большинстве случаев вообще не требуется открывать исходники — . Содержит также и некоторые клиентские удобности на JavaScript. Данный сайт работает именно на NeCMS. Благодаря продвинутым шаблонам, шапка сайта описана так:

{@mirror}{%size=1}{%offset=1}{$menu}{/@mirror}

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

Боевое крещение NeCMS прошла при создании сайта Мелитопольского профессионального аграрного лицея. Показала себя хорошим инструментом.

Rain

Графическая оболочка и рабочее окружение в одном флаконе. Был переписан с нуля четыре раза, и планируется перепись снова:

  1. Лето 2003. DOS, MS QBasic. Первая задумка на написание чего-то грандиозного, писал не представляя как оно устроено у нормальных людей, но море фана, всё свалено в один файл,
  2. Конец 2003 - 2004. DOS, MS QBasic. Упорядочил в голове опыт полученный с первого раза, попытка разнести на подпрограммы, вызываемые через GOTO, а позднее и GOSUB, так же написана система сборки проекта на Batch, нарисован простой шрифт, свой формат изображений и разделение на "сервер" и "клиент".
  3. 2004 - 2005. DOS, MS QuickBasic. Возможностей урезанного QBasic стало не хватать, перешел на его полный аналог, появилась объектная система, хотя что такое ООП я не знал, была реализована поддержка мышки и начата реализация VESA, но вовремя остановился и перешел на следующий левел.
  4. 2005 - 2007. Linux, C, svgalib, libgd. На скриншоте именно эта версия, Придуманна система буферов, сменные виджеты, поддержка различных форматов графики и TTF шрифтов через libgd. Процедуры отрисовки были достаточно неоптимально, но всё же на этом тулките уже можно было что-то написать, хотя я этого не сделал, не считая демонстрашки возможностей
  5. 2007 - ... Linux, C, svgalib, libpng, libjpg, freetype, pthread. Отказ от libgd в пользу более низкоуровневых библиотек, разобрался с тредами, доступу к видеопамяти напрямую, а так же написаны функции отрисовки примитивов в ней. Система буферов легла в основу графики, реализованы функции по манипуляцию с ней включая загрузку из графический форматов и построение строки, отрисвоку градиентов. Несколько функций достаточно красивых виджетов. Но до объектной модели руки так и не дошли, проект был заморожен. Хотя часи кода из него беру в иные проеткы на C и по сей день
  6. Конец 2008 - ... Linux/Minix, Java/Scheme, VGA/svgalib/X11R6. Планируемая разработка. Сначала намеревался написать компилятор Java в исполняемый код процессора, но постепенно склоняюсь в сторону Scheme. И если сначала видел его лишь как системный скриптовый язык, то теперь вижу и как основной. Проект сущствует лишь в набросках и надумках.

Что интересно, с каждой версией внимание реализации чего-либо на полученном фреймворке уделялось всё меньше, а система становилась всё мощнее и функциональнее. Самый презентабельный вариант — пункт номер два. Но пункт номер пять вошел в дистрибутив ShadowFly версии 2.0.0, и был удален в версии 2.2.0-rc5. При желании его можно протестировать именно там.

Mini Windoze 3.12

Дискетная Виндоус. Особой практической пользы не несет, но для любителей старины и изврата думаю будет интересно. Так же может выступать платформой для запуска других программ, принесенных на второй дискете, например Visual Basic. Собрана из кусков Windows 3.11, 95, XP и самописной оболочки на VisualBasic 3.0.

Жаль, не удалось найти последнюю сборку, эта достаточно старая, но функционирует успешно как на реальном железе (386, 4мб RAM, VGA) так и в qemu.

Tetrjs

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

Написан на Java, 15 килобайт исходных кодов, написан для сдачи по вычислительной практике. Иллюстрирует DoubleBuffering и обработку событий. Исходные кодами могу поделиться по требованию.

Чтобы запускать без лишних телодвижений разобрался с Java Web Start, Так что для начала игры потребуется всего один щелчок мышкой.

Majl.ru

Небольшой клинет сетей Mail.ru на Java. Описание протокола полностью отделено от его реализации и от графического интерфейса пользователя, поэтому написание поддержки нового протокола займет немного времени, и сразу впишется в систему, например реализация IRC протокола заняла всего несколько часов. Объектная модель позволяет просто писать различных ботов или шлюзы.

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

Клиент далек от готовности, но вполне рабочий, и можно использовать на любой машине, где есть Java для получения быстрого доступа к сетям Mail.ru.

xputs

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

На данный момент эмулируются любые печатные символы, клавиша контрол, а так же F1-F9 и ENTER. Для эмуляции других клавиш есть возможность передачи скенкода клавиши, который можно узнать у xev.

Также в комплекте парочка скриптов для эмуляции набора текущей песни из mpd (с использованием mpc и прямым доступом к mpd через nc) и вставки текущей даты/времени.

История версий

  • 0.4 (2010-05-24)
    • Исправлены некоторые русские буквы (х, ъ, ж, э).
  • 0.3 (2009-09-25)
    • Работа в системах с UTF8 локалью. (другие могобайтные не тестировались, но так же должны работать)
    • Исправлен досадный SegFault при отсуствии переменной окружения LC_ALL
  • 0.2 (2009-08-04)
    • Передача нескольких параметров.
    • Эмуляция клавишь F1-F10, Ctrl и Enter.
    • Работа в системах с любой однобайтной кодировкой (опционально, требуется libiconv)
  • 0.1 (2009-08-03)

    Proof-of-Concept. Работает вставка единственного параметра в кодировке KOI8-R.

KeyTra

Тренажер клавиатуры на Java. Доступно несколько игр, управление которыми сводится к нажатию нужной буквы (или цифры) в нужный момент. Java обеспечивает полную переносимость, а симпатичная графика сделает процесс повышения уровня наборо увлекательнее.

Специально для игры разработан механизм дерева динамических диспетчеров. В корне дерева генерирутся событие, далее оно идет по узлам дерева модифицируясь и диспетчиризируясь на те узлы, которые должны его получить. Дерево живое, каждый узел может произвести ребенка перед или после себя. Так же он может покинуть дерево по своему желанию. То есть возможно конструкции вида this = new ChildNode(this), и this = children.get(0); На такой моделе очень удобно создавать динамические приложения, например -- игры.

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

На следующую версию запланировано:

  • Реализация новых режимов игр: Для левой/правой руки, Emacs-mode, полная клавиатура, знаки препинания.
  • Более интенсивное использование дерева диспетчеров; так как произросло оно ближе к концу написания кода игры во многих местах то, что реализуется с помощью нескольких строк на дереве реализовано вручную большим количеством кода.
  • Сетевая игра.
  • По возможности замена чужеродной, рисованной графикой на собственный пре-рендер.