Older blog entries for judge (starting at number 5)

Need a name for my little project
I'm making some progress on my gcj-servlet-container-to-make-servlets-run-as-cgis stuff. Could someone suggest a name for it? Right now I called it gcjservlet, but that's kind of ugly and non-creative.
Today I changed stuff around so now all one has to do is link their servlet against my lib, specify, it's name with a -Dservlet= and it magicly turns into a standalone executable. No code modifications needed :)
I've never written a single servlet, other than the braindead ones for testing my servlet container. Such fun
I'll post a link to the code once I get some better than hello-world servlets going(or even try to run the cgis though a webserver!).

I think I finally got download timeouts to work. Basicly, I reverted to what was my first & most naive attempt at the problem + made it shorter. Turns out that as soon as I tried to use any serious threading stuff, gcj wouldn't support it on win32.
In any case, MichaelCrawford immediately stumbled upon another grave win32 bug(which we just added this week!). Bugs seem to like him.

I got rid of the silly xrc(wxwindows api) xml parser and replaced it with a libxml2 one. This didn't change our loading perfomance much. So then I replaced the wx hashmap with an stl map and suddenly our memory usage + cpu loading became 6x faster. Next our todo list is to revert to using stl strings & data structures.
btw, does anyone know of a good threading/socket library that is portable & lgpl/bsd/mit licensed? wxwindows(wxbase too!) seems to have more bugs than features. Ideally the library would be in c++, but we can deal with C ones too. So far we(me and s-a-t-a-n) haven't found anything that is usable. If this goes on, we'll have to revert to the custom coded Socket classes(our serversocket didn't work on win95..and had strange bugs on other platforms..silly mixing winsock + bsd sockets) and write some threading ones.

infoanarchy has an iRATE review posted. I wish people wouldn't complain so much about prerelease software. I put a lot of work into the 0.2 pre-release and it's disappointing to see somebody brushing it off due to non-programming issues.
This fella happened to use it on a system with freetif(swt loves openmotif..one can get gtk2 to work too). Freetif bugs made iRATE 0.2 draw buggily, so instead of figuring out what's wrong, he complains about bugs in 0.2. If he bothered to look though the mailing list archives, mailing us or tried my tarballs, this wouldn't be an issue. Oh well.

I've been working with clientside java since java 1.0. I was never a big fan of the java vm for user apps. Java VMs are huge and take quite a while to initialize. For example on my computer ant takes longer to startup than to compile iRATE.
Some people say that java is better on the serverside. Well, I tried tomcat/jetty and it hurts to watch JSP pages compile. I can now see why people hate search crawlers on sites full of java/asp.net stuff.
It seems that once the jsp/server compiles/JITs the perfomance is acceptible.
I generally like to quickly test my programs every time I change some code. With these compilation delays, life is painful on my laptop 700mhz/128ram vaio.
As a workaround, I've been working on a gcj/cgi-bin servlet container. Eventually I might even turn it into an apache module for perfomance reasons. With gcj compilation is fast and hitting the servlet doesn't make make my laptop cry. The other advantage of this implementation is the coolness factor. It's much cooler to compile & run java as standalone programs as opposed to processing them with a vm :)
Thanks gcj people :)
Anyways, as of right now my proof-of-concept servlet runs and I plan to turn this into a proof-of-concept cgi iRATE http server.

3 Aug 2003 (updated 3 Aug 2003 at 22:07 UTC) »
Hmm, I guess people who rated me don't belive that I'm a Master. Well I do, and I'll wait till everybody else agrees :)
Thanks to everyone who certified me, thanks to them I was able to add self as a Developer on iRATE.
Please, excuse me the long post and probable grammar/spelling errors.

Turns out win32 gcj(actually libjava) doesn't have some of the fancier threading features like Thread.interupt or Thread.destroy.
MichaelCrawford: I ended up rewriting the download timing mechanism in less efficient way. Hopefully it works.
I also turned on the irate-commits mailing list today for everybody's cvs following needs.

Sun's java idiocy

So a few ago days I started working on a cgi-bin gcj servlet wrapper(written little or no code yet) and ran into 2 not-so-amusing java deprecation issues.

  • Using environment variables is deprecated in java!?! System.getenv() is deprecated since java 1.1. According to sun it's cos not all java host platforms(MacOS9) support env variables. It's just sort of amusing that as of right now every sun-jdk supported platform have env variables now(even MacOS). Oh well, their sys env api sucked anyways, there was no way to get a list of all environment variables. btw: the official workaround is to pass variables like java -Dmy.shell.var=$MY_SHELL_VAR and then accessing them using System.getProperty("my.shell.var")
  • Here is a question for the java-enlightened. How the hell do you implement an interface(HttpServletRequest) that has a deprecated method or two? If I don't put them in, the class wont compile. If I do put them in, javac complains about overriding deprecated methods. Either way one is stuck. Obviously right now I'm just overriding them, but is there a proper way to handle this?

Eclipse rocks. However right now it's hard to use on linux due to serious swt-gtk2 speed issues. A few days I tried the experimental FOX SWT port. It makes eclipse FAST :)
btw, am I the only one to notice how horridly awful gtk2 speed is? Even if one doesn't use AA, the drawing perfomance is a joke. Using some of the bigger gtk2 apps on my 700mhz laptop makes me feel like the laptop is long obsolete. On the other hand all other toolkits(even the lovely bloated XUL) perform decently(no I refuse to use a gtk2 build of moz since moz doesn't make use of any useful gtk2 features and only seems to use gtk to slow self down...why didn't xlib moz became default moz?)

Some bright redhat people made gcj bright enought o run eclipse. That's very wonderful. Now, can anyone repackage their stuff as mdk9.1 binaries? :)
The new RHAS looks like a kickass distro. Even though I'm not generally a redhat fan, congrads to Redhat for making linux much more workstation-grade(and including + working on eclipse!).

Well, I'm supposed to be studying for my CSC355(Digital Logic Design) and ECON103(Macroeconomics) finals. Turns out I'm not quite as clueless in CSC355 as I thought. I might even get a reasonable mark in that course. Back to studying I go...

I got a day off school today so I finally had sometime to work on my autobuild system for irate.
Today Mohan from thisiscool.org put up working scripts needed to build gcj. That + a lot of Makefile improvements for irate made cvs snapshots a reality. Now I no longer have to mess around with mingw/winxp to get the windows builds and better yet..I can automate them!
29 Jul 2003 (updated 29 Jul 2003 at 07:54 UTC) »
softkid iRATE is in the hands of 2 linux guys. Neither of us own a mac or even have access to one. We've been trying to get an osx version out, but it's really hard to guide java newbies though the process.
There is 2 guis for irate right now. We have the original swing gui that appeared in irate 0.1. That one was succeded by a much lighter & faster swt gui. SWT and nanoxml + some code recrafting allowed us to switch to a completely free java platform.
So to make a 0.2 release for OSX we either need to updated the old swing gui with a few menu entries and provide an OSX installation package for it or have some java-savvy hacker help us out with packaging an swt version of irate for OSX.
In other words, help wanted for proper OSX support.
If nobody volunteers to do an osx release and I get some time off school I plan on borrowing an ibook from someone and getting irate going.

Excuse me if there are any grammar errors, but it's late and I can't sleep.

Ok, I'm certified now, but I still can't get myself listed as developer on irate. Guess I'm not sertified enough.

29 Jul 2003 (updated 29 Jul 2003 at 04:17 UTC) »
Why am I blogging?
Hi, I've decided to give into this blogging thing. I think this is the only way I'll ever let my programming ideas out of my head. Mailing lists just don't cut it for me.

I have school to deal with, but when I need to relax I code. Lately iRATE has become my favourite project. It's just soo cool :)
So this past weekend I relazed by relief by doing non-coding irate work. Here is what I got done.

  • Typed up some of my thoughts on the new irate server stuff
  • Setup cvs commit emails
  • Got gcj people excited about using irate as one of the gcj/swt demonstration programs :)
  • Got gcj people excited about figuring out a serious perfomance problem with the irate server when run with gcj
  • Had email discussion with several people about getting them to deal with swt packages so irate doesn't have to bother with them. Candidate 1 and Candidate 2
  • Pondered about how my new server protocol should be more xmlish(ie more extendable) and less hackish. Any suggestions?
  • Spent many hours trying to get a mingw win32 crosscompiler to work so I could finally setup an autobuild(tinderbox) system that would produce windows installer and linux packages upon every email notification of a cvs commit.
  • Failed to get a working gcj crosscompiler :). Aparently Mohan from thisiscool.com is gonna work on producing scripts that can do that for me.

I think I need to be certified before I can setup myself as a developer on iRATE.

I can't wait to go back to my regular swt coding on irate. I don't generally like programming gui stuff, but iRATE is has such a simple UI that it keeps the gui code to a minimum.

I guess on the weekend I'll be adding the search box, rating popup menu and making a gcj servlet prototype to base the server on

Michael Crawford rocks. I thought I was going to go through the pain of promoting iRATE, but instead I just emailed him and he gladly took the opportunity to quadriple or maybe 2^ize the number of irate users. As a result I can concentrate on coding AND since there is more irate users, I get lots of cool heavy metal to listen to.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!