Freeware, source code, research

Here is some of the software I have developed over the years (when I wasn't working for corporations and so to which I didn't give up rights). I plan to start with photos and eventually put up the executables as freeware and, most importantly, the source code. If there is something here that you would like the source code to, let me know!

Visualization: invariants in sorting algorithms (cross-platform)

Visual Invariants Applet [java source code]

Agent-based modeling (cross-platform)

tft.nlogo - my NetLogo implementation of a Spatialiazed Prisoner's Dilemma
ptft.nlogo - same plus Prejudiced Tit-for-Tat

Prejudice Reduction in Artificial Societies [java source code]
Evolution of Norms and "Leviathan"

To run NetLogo code, you'll need to install NetLogo. It's free. I recommend installing it and playing around with it. NetLogo is the easiest programming environment for agent-based modeling out there. When running NetLogo programs, always remember to press the "setup" button first, before you press "go".


From "Philosophical Software" (Windoze)

Spatialized Games
Prisoner's Dilemma
The World of Classical Logic
The Realm of Fuzzy Logic

Won't work without glut32.dll

Birthday Reminder (Windoze)

Birthday Vigilante [VS 6.0 workspace]

Reminds you of birthdays when
you start your computer.

MFC classes for Windows controls (Windoze)

CColorStatic [ColorStatic.h, ColorStatic.cpp]
CColorComboBox [ColorComboBox.h, ColorComboBox.cpp]
CEditFuzzyValue [EditFuzzyValue.h, EditFuzzyValue.cpp]

.emacs and redo.el

redo.el (Kyle Jones's redo/undo Emacs lisp library)
Here's my .emacs file with these colors.


Javu Player (yup, Windoze)

Javu Player [release package; includes help file]
Javu Player [complete source; need Visual C++ 6.0 or later to compile]
CJavuPlayerCtrl [JavuPlayerCtrl.cpp, JavuPlayerCtrl.h]
JavuPlayerUtil [JavuPlayerUtil.cpp, JavuPlayerUtil.h]

Written in 2001, this is oudated now and I think only useful as sample code for how to work with DirectX (and in particular with DirectVideo). The player is frame-accurate and lets the user navigate not merely to the right second, but to the right frame in that second, and allows to do some client-side video editing (cutting video clips and then creating a new video clip from the cut pieces). We were starting to work on client-side editing and downsizing within the compressed domain (which was MPEG-2 at the time), but this player does not do that.

Intellectual property rights. Even though the help file says "Not Shareware nor Freeware!" don't worry: the intellectual property rights to Javu Player have long expired and to the best of my knowledge, Javu Player has been in the public domain since at least 2004, which is two years after Javu Technologies closed its doors in the wake of 9-11. Javu Technologies was an R&D startup, founded in 1998, headquartered in New York City that focused on digital video. Here is a description from the help file of what Javu Player is:

Description. "The Javu Player control is an ActiveX component that provides a bouquet of functionality for viewing and navigating around media files, as well as timelines composed of multiple clips, with effects and transitions preview capability. Functionality includes shuttling at accelerated speeds forward and in reverse, slow motion playback, and frame stepping, as well as "hh:mm:ss:ff" timecode positioning. Timeline preview is just as easy as working with one media file only; the player's behavior is identical to that of single source file preview and the slider control, as well as positioning functionality, represents the entire timeline as if it were one media file!"

Bug. There was one bug that I know of that I did not get a chance to work on. The player was very finicky with screen refresh issues and would require the file to be reloaded if the player's screen went blank.


More random stuff: my linux notes and a graph in C++

Software and source code