Under construction

Projects

Description of the past projects below.

Windows Applications

A customizable calendar with extended features for defining and viewing events.

Idea and development: April 2004.

Features

  • built-in scripting language to define events;
  • customizable calendar layout;
  • tab structure for multiple calendars views;
  • verious ways for highlighting events;
  • date calculator (date difference, event list, date operations).

Main screen

Event script

The event scripting is used to highlight events on the calendar. The expressions can contain OR/AND (semicolon ; for OR / comma , for AND plus brackets for grouping expressions). Logical NOT is also supported (exclamation mark !).

Today(+-) Highlight today's day or a day offset +- days from today.
Day(+-) <=> {1..31} Day of month
Month(+-) <=> {1..12} Month number
Year(+-) <=> {1..9999} Year
Even(+-) Even day number
DayDiff({date,[]today}) <=> {number} Difference in days between a specified date and today's date
InSeq({date(dd.mm.yyyy)}/{gap}/{length}) Check if a date is within a sequence. Suitable to highlight cyclic events
DayOfWeek(+-) <=> {1..7} Day of week 1(Monday)..7(Sunday)
DayOfYear(+-) <=> {1..366} Day number in a year
WeekOfYear(+-) <=> {1..53} Day of week in a year
DayOfWeek({1..5,L}/{1..7}) Day of week in a month, e.g. second Monday or last Tuesday
EasterCath(+-) Catholic Easter
EasterOrth(+-) Orthodox Easter
MoonAge() <=> {0..29} Moon age
DateY(+-) <=> {date(dd.mm.YYYY),Today} Exact date
DateY(+-) <=> {date(dd.mm)} Date ignoring year
Event(+-) = E_{EVENT_CODE} Events
Type(+-) = T_{EVENT_TYPE_CODE} Types
Examples
Tomorrow Today(+1)
The day before yesterday Today(-2)
Highlight today's and yesterday's date.
Note: semicolon is used as logical OR.
Today;Today(-1)
Last day of week.
Note: tomorrow's day number is 1.
Day(1) = 1
Month number examples Month = 1
Month() >= 10
Month(20) <= 11
Day number examples Day() = 31
Day(100) = 5
Day < 4
Day() >= 29
Day(-5) <= 5
Weekends DayOfWeek > 5
Day difference DayDiff(13.10.2009) > 10
DayDiff() <= 5
Highlight single days between holidays and days off (Type(-1) = T_{HOLIDAY_EVENT_TYPE_CODE}, DayOfWeek = 5);
(Type(1) = T_{HOLIDAY_EVENT_TYPE_CODE}, DayOfWeek = 1)
Radonitsa (a holiday in the Eastern Orthodox Church).
Note: observed on the 2nd Tuesday from Easter Sunday (9 days)
EasterOrth(-9)
Pentecost.
Note: observed on the 49th day of Easter Sunday.
EasterCath(-49)
Range of dates DateY > 02.02, DateY < 09.02
List of dates DateY = 02.02; DateY = 05.02; DateY = 07.02
Working days.
Note: excluding weekends, holidays, last days of month
DayOfWeek < 6, !Type = T_{HOLIDAY_EVENT_TYPE_CODE}, !Day(1) = 1
Kaliningrad — Saint-Petersburg train timetable (!Even, !(Day=1, !Even(-1)),
(DateY <= 05.06;
DateY >= 04.09));
(DateY >= 05.06, DateY <= 04.09)

A variation of Scrabble in Russian.

Development: 1999, 2007.

Features

  • up to 5 players, human or computer opponents;
  • 10 difficulty levels against a computer player;
  • game autosave;
  • built-in vocabulary with editor.

Main screen

A dice game for one or two players with highscores.

Development: 1998, 2003

Web

Custom error page. No script CSS only TV static noise, created on mouse hover.

Demo

CSS Calculator

No script, css only hover calculator. Going left to right: select value range and precise value (0-99), operator (+, -, *, /) and second value (0-99).

Demo
Other

Railroad map based on historic maps. Created in 2007.