Older blog entries for judge (starting at number 11)

Life
My brain feels much better lately. I guess I finally got a good mix of gym, socializing, love, sleep, food and god knows what. It feels nice to be in working condition.

iRATE
Well, as a result of the recent spike in life energy, much has been done on irate. I added http resume and the prev button. Some protocol optimizations are being worked on.

Kaffe
robilad Great news! iRATE finally works in kaffe cvs. I tried kaffe a few weeks ago and it had serious issues with jthreads. Switching to pthreads prevented irate from deadlocking, but javasound would die after 2min or so.
I tried pthread kaffe cvs today and everything worked! Wonderful. ant worked too!
11 Sep 2003 (updated 11 Sep 2003 at 06:16 UTC) »
iRATE
Hey diablod3. Current iRATE cvs versions have a different download strategy from 0.2. It now downloads based on a confugurable number of unrated tracks. For example my irate autodownloads if I have less than 3 unrated tracks.
There are no coding problems with doing a pure java mp3 player. In fact we have one already. The problem is that the pure java player requires a fairly advanced java vm. We try to make iRATE available as a free binary, produced by free tools. However, as of right now there are no free java vms that have adequate support for javasound api. The other issue is that pure-java anything requires a serious amount of CPU and I don't appreciate my laptop burning my lap because java needs a constant 30-50% of my cpu.
Regarding bittorment: we can't legally provide that right now. Problem is that we need explicit permission from artists before we can distribute their musi. Eventually we will mark freely-redistributable tracks and provide fancy ways of downloading those.
Resuming downloads. That one has been on my todo list for quite a while. Luckily cable makes it an optional feature :). Guess I'll implement it next time I have a chance to do some serious coding.
I'll chuck mp3-validation into if-there-is-absolutely-nothing-else-i-can-think-of-to-code pile. As of right now it's more work than it's worth.
By the way: help wanted. We need somebody to look after lots and lots of minor(or if the person chooses not-so-minor) coding issues.

Digital Music
jclement: I completely agree with you on the distribution problems with CDs. However there is yet another point that RIAA & friends are missing.
The hassle of buying CDs doesn't end at the store. There is still the problem of the CD getting boring and the effort needed to eventually admit that you've had enough of that cd and want to put another one in. There is also the effort of deciding what else you'd be willing to listen to. Then you have to figure out where you keep that replacement cd. Oh, CDs get damanged over time too!
Basicly, keeping music on CDs is a nightmare. I end up ripping all of the CDs that I buy. It's much more convenient to listen to playlists of hundreds of songs instead of 9. Of course once the CD is bought & ripped I've spent much more effort and money on obtaining it than I would've if I downloaded it off a p2p network.
Furthermore, after I've discovered iRATE, I'm having a real hard time even using a conventional mp3 player. I've grown used to having the computer figure out my taste, fetch me more music I like and filter out the crap. I believe that the future of music lies in such software.
From what I've read, iTunes deals with a lot of these issues too, but that product is much more conventional and is merely a slow evolution of the existing concept without anyof the innovative ideas that iRATE provides.
Obviously I am lazy and I am biased towards iRATE, but I'm sure there are people out there with similar frustrations to mine.

Digital Music
jclement: I completely agree with you on the distribution problems with CDs. However there is yet another point that RIAA & friends are missing.
The hassle of buying CDs doesn't end at the store. There is still the problem of the CD getting boring and the effort needed to eventually admit that you've had enough of that cd and want to put another one in. There is also the effort of deciding what else you'd be willing to listen to. Then you have to figure out where you keep that replacement cd. Oh, CDs get damanged over time too!
Basicly, keeping music on CDs is a nightmare. I end up ripping all of the CDs that I buy. It's much more convenient to listen to playlists of hundreds of songs instead of 9. Of course once the CD is bought & ripped I've spent much more effort and money on obtaining it than I would've if I downloaded it off a p2p network.
Furthermore, after I've discovered iRATE, I'm having a real hard time even using a conventional mp3 player. I've grown used to having the computer figure out my taste, fetch me more music I like and filter out the crap. I believe that the future of music lies in such software.
From what I've read, iTunes deals with a lot of these issues too, but that product is much more conventional and is merely a slow evolution of the existing concept without anyof the innovative ideas that iRATE provides.
Obviously I am lazy and I am biased towards iRATE, but I'm sure there are people out there with similar frustrations to mine.
10 Sep 2003 (updated 10 Sep 2003 at 06:25 UTC) »
iRATE
It certainly is cool. That's why we work on it.
diablod3: currently we are swamped with work. As of now people just post links on the mailing list and Tony writes spiders to find mp3s.
I recommend that people try recent iRATE cvs(or unstable snapshots). We've done a few nice fixes and improvements. I'm sure that our next release will be yet another big step towards world domination.

JavaScript
nymia: I have no idea why more people don't embrace javascript. It's an absolutely rocking c-like scripting language. We used the mozilla js engine in j-alice.org stuff and it was just amazing. It's very portable, very easy to embed and makes the application much more flexible. In our case embedding javascript in the data made it possible to provide simple logic without having to recompiling the core. That's convenient to both developers and users.
I learned js in the early days of html and it was nice to reuse that knowledge and apply it to a real application.
It's too bad that most javascript users are clueless web monkeys who just use premade scripts that they found on script-collection websites.

MichaelCrawford, I clicked on the webstart file and for some reason my mozilla immediately located javaws(i couldn't even get webstart going from commandline) and launched irate.
For some reason sun refuses to make webstart add kde(and gnome?) menu entries for the programs that it downloads. As far as I know there is a common format for those in kde3/gnome2.

Life
I haven't had any life. My life has been dedicated to home[room] improvement. After weeks of sweat & dust & worn out fingers my room looks like it's made for royalty. Yay, tommorrow I should move my stuff back into it and regain my right to live. Nice timing too, since my classes start on Tuesday. This project has nicely taken over my entire break from school.
On the positive note, next time someone complains about lack of undo in some program I'll just point them to real world(tm).

GNU Make
I somehow got make to hate me and reverse dependencies on me. For some reason it took a "%.properties.o: %.properties" rule and decided to make .properties files out of .properties.o ones. This really sucks since it basicly ends up wiping out my original .propertiesf files. If anyone know how or why it would do such horrible things let me know. Changing .properties.o to .res(ie no appended suffix) made the problem go away, but I'd really like to do it with appending a .o suffix.

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!).

iRATE
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.

J-Alice
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.

iRATE
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.

Servlets
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) »
Advogato.org
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.

iRATE
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-gtk2
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?)

Eclipse-gcj
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!).

Studying
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...

iRATE
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!

2 older entries...

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!