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