Welcome to my site!Stories by T. Gene DavisPoetry by T. Gene DavisMagazine of fiction and poetry by T. Gene DavisAbout T. Gene Davis

Gene's Tutorials

I write or find tutorials now and then that I feel are worth displaying. I note the ones that I didn't write so as to avoid confusion. Also check my site, Gene Davis Software for previews of computer books I've written.


My Clojure links - I have been getting into AI creation for my shogi program. I realized pretty quickly, I needed to learn Lisp or a Lisp like language, if for no other reason, all the documentation on AIs assumes you have a Lisp like language to code in.

Anyone who has taken the time to learn a few computer languages realizes, it is not a good use of time to keep up on too many languages. You can take my word on that. I have used most of the better known languages, and it just isn't practical to keep current on all of them. Life is way to short for that.

I happen to be a big Java/JVM fan, so I started looking for a Lisp that was ported to the JVM, so that I could use the Java libraries and so that I could integrate with my shogi app.

Enter Clojure. This is not Lisp, but a Lisp like language written specifically to take advantage of the JVM. Writing for the JVM is not the same as writing for a target OS or target CPU, so this is better than a simple language port to the JVM.

Off Screen Eclipse Fix - Here's an Eclipse tip I picked up from a blogger. If the Eclipse window opens off screen (usually because you are opening a project on a second computer or without a second monitor), delete workbench.xml (./workspace/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml) and then reopen eclipse for eclipse to reset it's UI configuration.

Pico Container - If you've written many applications, you've probably noticed that starting up a program of any size can become a mass of spagetti very quickly. I use Pico Container (Dependancy Injection) to fix this. This site contains several tutorials (none by me) that I recommend to any Java programmer.

UML Class Diagraming for Java Quick Reference - I've found it would be useful to have a one page Quick Reference for making UML Class Diagrams for Java, so I've whipped this one up. It is in PDF format.

Simple Java XML DOM Creation - shows the creation of a DOM XML tree and retrieving the XML from it as a string.

Java Printing - Java printing API's stink. Yes, strong language. *tsk* *tsk* After a short rant, I try addressing the issue with some code to help newbies to Java printing.

Beginner Assembly Language for PPC Darwin (oh, and Mac OS X too ;-):
chapter 1 - Real geeks assemble™.
chapter 2 - Hello World.

Objective C Tutorial: chapter 1 - this is very much a work in progress.

Cocoa and OpenGL - here is an intro to OpenGL and GLUT on Mac OS X Cocoa.

Apache 2.0 Hello World Mod - This is a bare bones intro to writing apache 2.0 mods. It was the first accurate one I'm aware of. (Having said that they'll now change the api ;)

Gene's Utilities

Here is my collection of command line utilities I've written. Right now the pickings are thin, but that may change with time. Where possible I provide the source as well as a Win32 and OS X executable. This of course depends on how much time I have available, and whether I want the source made public.


hex2dec - takes a hexadecimal argument and converts it to a decimal representation.

dec2hex - takes a decimal argument and converts it to a hexadecimal representation.

Gene's Java APIs

Over the years I've made ALOT of API's that I intended to use over and over, then the computer I was using failed, or I misplaced them. So now I'm putting them here as freeware for anyone that would like to use them. It would be nice if you gave me credit for them, but that is not a requirement for their use.


com.genedavis.view.ViewUtil - center your Windows or JFrames on the screen it opens in with this utility. It's small, but not obvious to all coders, so makes a nice reference.

com.genedavis.io.SystemInputReader - returns standard input, line by line, one String at a time.

com.genedavis.util.GDBytes - for converting between signed bytes and unsigned bytes.

com.genedavis.util.ClassLoaders - for loading classes, not in the classpath, dynamically. (This is pretty old, there are better ways to do this now.)