Here are some links to public source code for which George Carrette
is the exclusive or predominant author, or where it can be revealed
as obvious what modules I created, along with some commentary
on why it might be interesting.
This dual criteria of open source and predominant authorship is
somewhat limiting, and tends to eliminate large scale engineering
efforts that tend to have a very different style.
- A solver for one of the
ITASOFTWARE hiring puzzles can be downloaded
from strawberry fields puzzle solver. I wish I had time to augment this with
a discussion of the hiring puzzle notion, but the code
itself is representative of an out-of-box solution to a problem.
The detailed discussions of the problem and various
solution spaces representations illustrate my style of
analysis. The source code is in both C# and Common Lisp
(with a bit of Scheme in the analysis phase). This actually
provides two solvers, one in C# and one in Common Lisp.
The algorithms are close but not the same, but I do plan
on making the algorithms
and output capabilities identical some day, and include a java
implementation for comparison. I have been using this
as a benchmark for the Mono implementation of C# verses
the Microsoft implementation. It is not particularly good
source code,
not an example of elegant object oriented programming style,
nor of any particular pattern besides the obscure
REPL (Read Eval Print) and GITR done.
- The mpower1.txt
is an example of course code in a domain specific
language for industrial process control that I created for
a commercial product.
- Using HTML templates in Web Applications: CHTML
. This illustrates the creation of a quick-and-dirty domain
specific language for the purpose of getting some early web
applications to market quickly. Notice the incorrect prediction
that SGML ISO Standard 8879:1986 and DSSSL ISO/DIS 10179.2
would become important. I really couldn't imagine in 1995 the
kind of reinvention of wheel that XML and XSLT and CSS would
come to represent.
- Scheme in One Day is the opposite
of a domain specific language, it is a general purpose
extension or scripting language. The good
impedance match between the system-programming language
C and the interpreter and scripting language was
at the time a rare thing, and the garbage collector technique
was important enough to be copied by the GNU GUILE extension
language. This also illustrates a cute windows installer and
a pseudo compiler, and a very early web proxy server designed
for debugging web applications. It predates the network
module of Firebug by about a decade. There is a bit of SQL
support here too.
- The classiccrashme
distribution and a windows
installer version. There are dozens of references
to this program and its effects on the internet, but
suffice it to say it is a simple but out-of-the-box technique
to find bugs in the specification and implementation of
computer hardware and software used to emulate computer hardware.
- If you download the Aras Innovator product,
you can observe that it contains a non-trivial amount
of open source, mostly hidden in plain sight in the database.
Some of the SQL modules and other modules have my name on them,
these being the only examples of my SQL programming
available in the open source. You will probably have to
do too much work to dig into this so it is not for the casual
reader.
More pointers are available starting at
http://alum.mit.edu/www/gjc/.