JavaTM Experience


by Bill Rossi
I started programming in Java around Christmas 1996. Business was slow for a couple of weeks, so I decided to teach myself the language. So I went and got a book, and downloaded the 1.02 JDK for OS/2 from IBM.

I started by writing some simple programs that just drew some boxes in a window and rotated them, not much but it was a start. Then I looked at the digital clock program I wrote some months earlier in C++ and decided to port it to Java. To see this clock, click here

After a couple of days, I had the clock running. It was a nice multithreaded Java application, ran great except for one thing -- it didn't keep time. I quickly isolated the problem to a bug in the OS/2 implementation of the Java Virtual Machine. Turns out, the applet keeps time just fine on Win 95 and Solaris.

Since I have a few OS/2 machines here, and so do many of my friends, it was important to me to have this working on OS/2. So I set out to find a work around, that would be portable (of course).

So what I did was have the clock periodically syncronize to an external time server. I chose to use the daytime protocol (RFC867) because it was easy to use. I realize that it was perhaps not the best choice as that there are better protocols, but it suited the needs of this application. The only other difficulty was that because of Java applet security, it could only synchonize to the server that served it. In this case, this would mean an OS/2 server, but there was no daytime server available for OS/2 -- I would have to write one. So I did.

One of the problems with OS/2 is that running TELNETD is not a very good idea since it uses a single system wide password. This makes the system very vunerable to attack, but I needed to be able to telnet into my system occasionally. To fix this, I modified the OS/2 TELNETD to use a one-time password scheme. The problem with this was that I had to carry around the program that generated the password, and had to port it to many systems. This was getting old fast, and I decided that Java was the answer.

So I ported that program to Java, but since it depended on the RSA MD5 algorithm, I would have to port that too. Turns out that the MD5 algorithm comes built into Java 1.1, but I only had Java 1.02 at the time.

By June 97, I was writing Java programs for hire. My first customer was Invincible Technologies. They needed an applet to do some administarative functions on their file server.

Meanwhile, back here at rossi.com, our POP3 mail server was failing. This was a piece of software that I had purchased a few months back, and now it wasn't able to handle the load. This was a native OS/2 program (presumably) developed in C. This was very frustrating, so I decided to write one in Java.
This worked out so well, I decided to sell it. This was the beginnings of the J-POP Server product..

J-POP Server was then rated by JARS, and received the top 25% award.

After the release of the J-POP server, I began working on a Domain Name Server product written in Java. This is still under development, but if you are reading this page from my site, then you have already used this product to get here!

A short time later, I went and took the Sun Java Certified Program exam, and passed it. I scored 84 percent on this exam. Mike Bridwell at Sun (he runs the certification program) tells me this is an excellent score.
Then I took my good old clock applet and submitted it to JARS as well. It also received the top 25% award. After having a couple of applets rated by JARS, I decided to inquire about becoming a judge for JARS, and now I am now a JARS judge.

I have also sumbitted a set of chart applets to JARS, and they received the top 5% award! With that they let me use the "Javaholics Master Ceritified Developer" award logo..