This page is (still) organized to present my projects in chronological order by the institution with which I was affiliated while working on them and then by the platform they're intended to work on:
Spiru Haret, INCERC, AUBG, NBU. Work I currently do at Carleton is on my current projects page.
I never had a great relationship with my Dad, with him being away most of the time and all, but he did teach me two very important rules of life:
- never say "I can't do it" before you try your darn best at it and
- always use the right tool for the right job.
He was talking about bicycles, but I found out these rules of thumb cover pretty much all of life -- as I know it: social, cognitive, artistic.
But how do you deal with the immensity of knowledge necessary to be even a passable programmer? Currently, I tried databases and knowledge bases, and expert systems, I even designed my very own cognitive architecture (all listed below), and I'm still miles away from real computer-human interfacing. Something that would allow me to use the right tool for the right job without having to depend on thousand-dollars worth of software.
Here you can find mostly software projects which I either finished or abandoned. For projects still on the drawing board, please see my list of current ones. My other portfolios available now are: Generic and Cognitive Science. Or you may want to see why I consider programming a worthwhile pastime.
I'm trying to make this list comprehensive, so don't laugh if you see some little feat presented here. I'll also be bringing some of these on-line as archives or more
detailed descriptions, as time allows; If you want to see (or get) any of them, please see this page.
If you want me to modify one of these for your use or develop something new, see this page.
Spiru Haret High
using Texas Instruments 9000
- "Cat and mouse" game: Keyboard wrecking chase in several mazes, for two players;
- unnamed math/graphics: small program to allow displaying the graph of a 1-variable function given by the user; it had zoom on both axes and was handling some cases of infinity ;
using Sinclair ZXSpectrum+ and compatibles
Work at INCERC
using Sinclair ZXSpectrum+ and compatibles
"Deviz" database: for the use of our Dept.; it was calculating the
internal cost of a project starting from materials, man-hours required, and other
parameters, or the other way around, from a given cost, computing man-hours necessary;
During the weekends I was translating cartoons from English and French for the
So, working on other peoples' projects, I left mine on the waiting list in
their folders. But I had enough to do. I'll list two of the small tricks I put
together to ease my work; they were sort of a user-interface creation system on an enhanced (DIGITAL) PDP11 clone, the Romanian CORAL4020 (multitasking, tapes, text terminals, ay-ay! ):
"Draw" design: small routine for VDT52 graphic terminals; I was
using the escape sequences to combine text and graphics in 'help' screens for
VMS task automation - a series of shell routines which would run a series
of programs in the order decided by the user, while passing the results from
one task to the other;
using IBM-PC compatibles
Then, when the Dept. got a couple of PCs, I zoomed back to the PC World which I had met briefly in highschool.
There I was hacking translations into Romanian of existing programs with PCTools' disk editor, on a poor clone of IBM XT, and also learning a third implementation of Basic.
"BacList" database: Limited GWBasic database system for my ex-
high school; it computed, sorted and enlisted the bacalaureat grades; first
time I had to learn a printer 'language'
While working at INCERC, I started learning AutoCAD from computer magazines; then used it
for precision drawings, for digitizing and cataloging existing drawings and
building plans; made custom menus and a small and handy blocks library... etc; wrote a
small LISP program to export digitized seismic data;
I had to learn, teach others and fix the problems that appeared in
different versions of: SAP, CASE, WordPerfect, WordStar, Windows, Excel, Word, MathCAD,
well, I won't list all of them...
As I mentioned, we were using an accurate Digitizer for many of our
tasks; the most important task was digitizing seismic data; before I found AutoCad, I
had to use some Assembly, FORTRAN and Pascal for programming the digitizer through the
serial port of the PC;
There was a chain of mathematic functions to be applied to the digitized
data, selected and ordered differently, depending on what results the researchers
expected; since 'I' was reading the data from the digitizer, I had to do the low level of
the program chain; I left for AUBG before finishing a user interface for that
From here on, my 'career' moved together with me at the American University
in Bulgaria (AUBG).
Work at AUBG
"MonEd" editor: full-screen text editor, parts ©Ronald Salley (my professor, who furnished a handy unit; my first COS Project @AUBG; in Pascal;
"Books" and "Things" databases: I keep improving these, to help myself, Mom and hopefully my wife to keep track of household... er... things... and my many collections; developed first in Approach, then ported to FileMaker;
"Poll?" database: VERY simple database (in Pascal) which I wrote to help me sort through the (80 x 50 = 4000) answers to a SOCiology poll;
"JMC Stat" database: the most complex database I worked with until
Z Big Dig Database (see below); for statistical analysis of four daily newspapers, two weekly magazines, radio and TV during four weeks, every entry cross-referenced by three students; collects the data, in coded form and exports it in 'chunks' manageable by Excel∧co; still in Pascal;
"Mince'Em" courseware: From MINority SIMulation. Expert system shell, applied to
monitoring the evolution of a model of society; first in Pascal, then in Arity Prolog;
"Battled Ships" game: Adaptation for SCO Unix' cshell of the age-old
'sink-the-ship' game, for player vs. computer or player vs. player; funny, on every operating system I worked, I started with a game implementation ;
"PresentaTHOR" authorware: Three-part project: 3D object editor, 3D object browser and presentation manager; in Pascal; waiting for a port to BC++ (or better);
"Hi!" graphical file manager: for computers with VGA (mode 19);
in 8086 Assembly; was supposed to implement animated windows and document-oriented file handling. We (the team involved) never finished it;
Switch: a small trains-routing system featuring Windows OOP and a graph-traversal algorythm (my version of traveling salesman's path - I foolishly thought I could improve it ; MFC on Watcom C++ -- eeew, gross!
"MonADA" PL: dropped; was supposed to be an interpreter for ADA 9X; for
Windows; in BC++.
MonDis: BNF semantics interpreter to automate complex recursive descriptions of syntax and actions (one of the predecessors of MneMonic, HYMNS and the planned Na2FoLa - see current projects)
MneMonic experiment: my Senior Project, an experiment in a
semiotic application of a neural net... still in the making - see current projects
About these three "still in the making" projects: I was planning to finish
them before leaving AUBG, but the schedule I got into for that summer made that
prospect impossible... I'll need to take a couple of months off to do them -- If
I'll have the oportunity. For now the two of them I'm interested in are on my
current projects page.
I paid with lots of 'what-ifs' (including crapping my BA in Computer Science and a large 'chunk of freedom') for some access to hardware from the US, for learning the MacOS from System 5 to MacOS 8 and developing the projects listed here, but I've also been payed for my time, so these projects are (c)1993-1999 SESC@AUBG and will not be available here for download. If you're interested in any of them, contact Mark Stefanovich. And I also learned that friendship can be misused as a manipulating device: making people happy to do someone else's work.
"In the Memory of J.H.Gaul" DTP: (this is not quite
'programming project', but with all the applications I worked with -- and now I
know these applications inside and out -- it's worth to be listed here) the
layout of a collection of articles on Balkan Archaeology; including handling images
(grayscale, retouched, manually streamlined, drawn from scratch, etc, etc),
cross-platform document de-Babilonizing (job for which I got paid and mentioned somewhere deep in the interestingly-spelled Foreword);
Chuka Pres MMPresentation: a (lenghty) presentation of the
different facets of the archaeological excavation at which I spent all my AUBG summers;
WebDesign lists my web-oriented work;
an FTP client and a WWW server (really, there are better tools around for these tasks; I had in mind some other projects for the course in Networking, but the professors disagreed, so I did my least.);
A couple of perl CGI utils for automating data entry for an utopic Information System for the AUBG: homePage maker and CV maker;
Work at the NBU COGS Department
I was a technical/research assistant in the NBU COGS Research Lab and now I moderate its discussion group.
Conv-X (the starting point for MoStaCon): a suite of perl data filters for the following experiments:
MoStaCon: an interface to experiment design, data formatting and statistics - the implementation of the current topic of my Master's Thesis; version alpha 0.20 is the current version, and its engine, MonDoc is about to be completely rewritten. That means still usable only in view mode
Mail2Txt: small hack-of-a-script to convert HTML form output to readable email messages;
Word Frequency: small tool for calculating objective word frequency in given (text) files;
- Context Effects on Choice in Decision-Making and Context Effects on Evaluation (both supervised by Assist. Prof. Boicho Kokinov),
- Effects of Gender Agreement on Picture Naming (supervised by Assist. Prof. Elena Andonova),
- Norming of Picture Naming (international effort led by Elizabeth Bates of UCSD),
- Lexical Access of Nouns and Lexical Access of Verbs and Adjectives, (both part of a study supervised by Assist. Prof. Elena Andonova),
- Imagery Use in Understanding Idioms Cross-Culturally (leading to the defense of the Master's thesis of Armina Djanian),
- The Role of Gender and Number Markers on Language Processing in Romanian and Bulgarian Monolinguals and Bilinguals (leading to the defense of the Master's thesis of Mugur Badarau),
- Saturation Effects on Lexical Access (supervised by Armina Djanian)