Root Last modified: March 05, 2006

Doug Johnson's Page

Hello. Welcome. Sit Down.

Welcome to my lair. I hope you find your seat comfortable. It is equiped with an escape hatch if get bored. Let's talk.

Quick bio: I'm a 21B in the US Army, currently deployed to Mosul, Iraq. I graduated from Cornell College in 2004, double majoring in Computer Science and Russian. I am the Supreme Ruler of the World and an alumni of Merlo Station High School, Natural Resources Science and Technology, or NRST (Now known as the School of Science and Technology, or SST),

I advocate OCaml because it is functional, fast, documented and has library support for all the necessities of life. Linux is cool because it makes life easier for programmers. Most of the time. E is cool because you can do concurrent programming without threads (event programming). And you can use the 'implementation hiding' principles of object oriented design to protect your code from partially trusted users (Object Capabilities). Clients over the internet are an example of partially trusted users. New code that you don't want to crash the rest of your program is another example. But E is way too slow. Patience is a virtue, and combined with hard work will always get you what you want. Chocolate tastes good.

I am a software developer. Here is some of my stuff, in varying degrees of stability
FatCaml is a 3d graphics library for Objective Caml. It requires SDL (OcamlSDL) and OpenGL (LablGL). I am writing this code to make my life easier when working in 3d. Support is included for:
  • Loading opengl textures from image files
  • Rending a scene graph
  • Rending truetype fonts
  • jitter antialiasing
  • Low-level gui code, like writing a mouse motion handler
  • High-level gui code, like connect mouse wheel to the rotation of a cube
  • First-person-shooter behavior for cameras or scene entities
  • Geometric primitives
  • Mapping world cordinates to pixel coordinates, for 2d graphics
I'm working on code for terrain rendering using the ROAM algorithm. In the future I intend to provide example code for doing a console over a 3d scene. Also, an overview tutorial would be useful. You may use FatCaml under the Mozilla Public License or the LGPL or GPL.
ffleet is a top-scrolling shoot-the-aliens-with-your-spaceship game. This is by far the largest project I've ever worked on as an individual, about 12,000 lines according to SLOCCount. The design is object oriented and modular. I intended for any programmer to be able to add to the game with the smallest learning curve possible. I updated the code to compile under gcc 3.0 recently, but besides that I haven't touched this in a couple years. You may use ffleet under the GNU Public License.

Here's some older stuff that's gathering dust in the corner.
I have a list of obscure errors I've received from some programs, and what I eventually decided they mean.
Ok, here's a tutorial for working with cyrillic documents with lyx.
Pentangle lyrics! has been hosted by for a couple years now, I've been quite satisfied with the service.
This site uses HTML extensively.  We recommend you install a web browser.
Site design and original content (c)2000-2004 Doug Johnson, Webmaster.
All other stuff copyright its respective owner.
Validate XHTML 1.0 with W3