StanleyKnutson.com

Navigation

Some of the programming projects I've done:

Most recent is at the bottom. I should make a page about other projects in market research and GUI design, I just mention them briefly here.

I started out programming in Fortan, and write my master's thesis in it - about 12,000 lines of code. It was a 'graphical user interface' even though "GUI" was not really a term until ten years later.

Then I spent 5 years working in assembler language [Z80, 8080, 8086, finally 80286] doing machine control, first at Butler Automatic then later at Digital Automation Corp. These were complex real-time programs, and quite hard to debug: you can't set breakpoints when controlling a machine!. Probably 100,000 lines of code including the macro pre-processor I had to write at DAC. The work at DAC was espeically interesting since it was a network of 4 computers (in 1983!) doing distributed machine control.

Next project was a C-based mechanical simulation system. 3 years and 50,000 lines of code later, it worked really well for doing the kinds of problems we were trying to solve at Digital Automation Corp (after we gave up on the original business concept).

Then I joined ICAD (now KTI) and learned Lisp. My perspective on programming changing. I was fortunate to have some excellent tutors at ICAD and they helped me learn a different of thinking about programming.. There are operations that are one line in lisp that take 15 lines in Java or 50 lines in C++. What an amazing difference. It was also my introduction to object oriented programming, higher-order thinking and functional programming.

One of the projects that happened while I was running the UI group at KTI was creation of a 2d sketcher. We wrote in in C++ since we needed to use a purchased C++ library for the actual equation solving. Dealing with Microsoft MFC was an issue, but the real problem was C++ itself. Multiple-inheritance is broken [i.e., too hard to use], and the problems with memory leaks etc. are really tedious. The job was eventually finished -- I wrote about 80% of the 70,000 lines or so of C++ code (even though I was also trying to manage the group doing other other projects at the same time).

Along the way I studied a lot about UML and software management. For a couple of years I managed the user interface group at ICAD, with about 6 developers reporting to me, as well as coaching some of the other junior developers. When management changed (and we had a layout), I transitioned to chief engineer to reduce my management burdern so I could focus on system architecture and customer requirements for the entire product. During this time, I was providing mentoring and technical guidance to the department, about 30 people total.

When KTI needed a Java user interface to allow customers to build real client-server applications. I wrote the whole thing, about 60,000 lines of Java code using the Java Swing library, JNI (for access to a 3D graphics library). I designed and built all of the CORBA code to connect the 'fat client' to the Lisp server runing the ICAD product.

I've also managed the KTI internal R&D web server and CVS server. In the process, I've written a lot of Perl programs as well as installing and running Apache on several systems. I worked closely with some developers to automate the build process, as well as other CMM-related activities related to marketing and project management. We were using the TWiki.org tool internally as well, as part of my push to get some aspects of extreme programming adopted.

My most recent work was a Java-based web application for Active Decisions. It was written using Java Server Pages (JSP) with servlets, and the Apache Struts library, with Oracle database. The application was delievered using Apache Tomcat as well as on IBM Websphere. I wrote 90% of the 90,000+ lines of java code.