Posted by Jim at April 20th, 2004

The semester’s over for me as of yesterday. If anyone’s still reading this blog, they’ve doubtless noticed that the number of updates last week could be counted on one finger.

The reason for that goes as follows: A distinct need to finish a project that constitutes 60% of my grade.

Granted, the project wasn’t all programming. It also included a number of papers describing what the project was, what the architecture was, and what we were going to do about issues such as security and so on.

I finished the project half an hour before it was due. It was a group project and my partner had put most of the infrastructure in place and I was to finish the gui. I did this–mostly.

I had written the code necessary to make the gui work when I suddenly realized that it still wasn’t working.

The project was a file sharing program, but when I pressed the button that allowed me to download a file, I just got errors. The first was a casting error (when you program in Java, you find yourself casting a lot). The next one was more insidious.

The program only allowed you to download files that had been created by Java’s ObjectOutputStream–not mp3’s, text, or anything you might actually want.

So, rather than doing touch up work on the gui, I ended up spending most of Monday trying to figure out what was wrong i.e. what would give you an “invalid stream header” error.

Eventually I ended up turning the contents of files into one gigantic array of bytes, attaching them to a serialized packet and sending that across the net.

Thus, despite the fact that the gui still sucks, the project at least works. Bearing in mind that this wasn’t a class in gui design and it was a class in distributed programming, I imagine that I did something more important for the project.

That being said, the gui still has very big and very ugly buttons that you must see to believe.