I feel bad that Monty has to put up with crap like that when it was my fault in the first place. It also irritates me when people start mouthing off about how crappy a program is when the effort required to fix the problem is trivial. Email me about the problem and I'll fix it! Don't go complaining like a helpless fool. That's what you do when you run software that is written by people who don't care (or aren't paid to care) about users (cough, cough, insert your most hated program here).
I guess this is part of the learning experience. I can hardly wait until I get my very own flames. :)
Update: Argh. I hate script kiddies. Some prick buffer overflowed our ftp server and installed a root-kit. Fortunately, the root-kit install deletes samba (why?) which is rather essential to the operation our server. So I noticed right away when I got back from lunch that something was wrong. Next, rpm -Va saved my butt and showed me what had been screwed with. Actually finding the root-kit took a while until I noticed that all of the files this kid created were owned by the ftp group. "find -group ftp" quickly turned up a "/lib/ " (yes, that's three spaces) directory. Bingo! The installation script and all of his goodies were left there. Additionally, the kid left his buffer overflow login in the log, so I had his IP on a DSL modem. A quick letter off to the abuse address of his ISP will hopefully take care of things.
My lesson for the day is read the RedHat Security Advisories. They had the wu-ftpd exploit up for a month already. (Smack!)
Odd. I feel a disturbance in the trust network. :) This morning I discovered that I had been certified by more people (thanks, whoever you people are), but that my overall trust level dropped back to Observer. I don't get it.
Update: Weird. I'm back at apprentice again. I don't get what happened.
In other news, we had a bomb threat in the building where I work. It's got a whole bunch of laboratories and offices. The police "inspected" the building and decided to let people back in. My boss and I wondered how the police are supposed to tell the difference between a bomb and a vacuum pump, or a lithium oven. Heck, any complex electronic device could be a bomb. I don't get it. Oh well, I've decided that people who make bomb threats are jerks.
I've decided that I don't like programming with a mouse. LabVIEW is a neat concept (graphical programming), but it is fairly cumbersome to do anything other than data-flow style programs. Loops are kludged in for completeness. I want source that is a text file, not a picture. I can't grep a picture.
nymia: IIRC, threads are processes in Linux. The kernel treats them almost the same. The threads just share more parts of the process structure. I wish I could find a reference for this.
In other news, I'm still waiting for Kenneth to integrate libao into the vorbis CVS. Maybe I have to pester him a little.
While I wait for word on that, I've been spending my time hacking on some old code of mine. I wrote some code to interface to those netshooter remote controls that plug into the serial port. I stopped after the basic decoding was working. Now I need to figure out how to parse a config file describing the actions that should be performed when I press a particular button on the remote.
Fortunately for the BSDs, Linux has become the lightning rod absorbing all of these people due to its exposure and growing ease of installation. The result is the BSD talent pool has not been diluted to the same extent the Linux talent pool. I still believe that there is as much good Linux code as BSD code, but good luck finding it through the daily announcements of KickASS-AIM-0.0.0.3: yet another messenger clone that just started from the [LM]AIM code base and added different colors. (Okay, I made that up, but you get the idea.)
Be wary, however. If BSD becomes the trendy OS of the week, you'll get to watch the last 3 years of Linux history happen all over again. I wish it weren't so, but someone's development community is going to overrun once the lemmings (and the media) get tired of Linux. The next OS to get hit will either be BeOS or BSD, it's too soon to tell which.
Not much else going on today. I'll probably do some history reading. The Vietnam War is really quite interesting. If computers and physics weren't so much fun, I think studying foreign policy would be neat. Well, maybe if it had math.
Yes, mathematical foreign policy would be cool. :)
In either case, I'm going to have to figure out some goofy way to sleep until the block is done playing. A poll loop is icky because I would have to hot spin and blow CPU time. I can do a callback, but I don't have a clue right now how I should go about sleeping until the callback wakes me up. I want to use something like signals I think. I sure as heck am not going to dive into Win32 threads and lose my mind. Bleah.
Wow, Slashdot sure is whacked out these days. I went back to try and read the comments, and I can't deal with it anymore. The demographic has changed so that I'm not that interested in the discussions that go on. Too bad. I kind of liked that place.
Good thing I found Advogato, or I might have actually become productive. :)
Finally figured out the ALSA problem. By default the driver operates in non-blocking mode. The program would decode the next block before the first one had finished playing and would overwrite the currently playing block with the next block. Hence the neat (though frustrating effect) of listening to Brickhouse at 33% faster speed. I fixed that and wrote some buffering code to pack the data coming in (which can be in chunks of whatever size) into 32k blocks and send the completed blocks to the ALSA driver. Sounds good.
I've decided to wait on submitting this code until Kenneth gets back. Monty mentioned a little while ago that he would no longer mess with that branch (after accidentally stepping on Kenneth during a commit frenzy). In the meantime, I'm going to see if I can scrounge up an IRIX account on some friend's box to test (at least the compilation of) libao on IRIX. Same goes for Solaris, though I don't know if our school's Solaris boxes have the sound header files. If neither of these seem feasible, I'll go figure out how to do Win32 code instead. :)
Also hacked on a patch I found to let ht://Dig work with SSL. The patch was for 3.1.4, but would not cleanly apply to 3.1.5. I've never hacked a diff directly, though I must say it is not as hard as it looks.
ralsina: Ack. Slashdot has cured me of my desire to participate (or watch) the license flamewars. I must say that the GPL == non-free debate is one of the stranger ones I've heard of. I guess my take is that every license except the public domain is "non-free" to a certain extent, just like anarchy is the only truly "free" form of government. Of course, being "free" isn't one's only motivation in such things, so the issue is how much freedom should be traded in for other things we want. That's the real debate in my mind, and the rest is just playing games with semantics.
jmg: Careful with the CD-RW. I've had problems reading them in most CD drives (unless they are also CD Burners). I imagine newer drives have no problems, but you may be stuck in front of an older box.
Finished my API rewrite for libao and tried to write the ALSA driver. Whoa boy, too much control. I have no idea which values are critical to set. I can finally get about 5 seconds of playback before the program goes silent. It keeps running, but I can't hear anything. Hmm..
Back in real life, I decided not to go to my Theoretical Computer Science class. I think my time was better spent reading the chapter for 20 min than sitting in class for 90 min. Why are these classes so boring?
Update:Argh! ALSA is making me very mad. I can't figure out how to get this thing to do anything but play "Brickhouse" (my test OGG file) at high speed. It seems to be chucking 25% of my buffer everytime I write. Ack. Tired.
Does this sound familiar? I should have looked at the standard UNIX open() and write() functions. Doh! Reminder to self: Never forget precedent. If UNIX programmers like it, it can't be that bad. :) (I'm sure someone in the audience will have issues with that one.)
Anyway, I've started installing ALSA onto a spare Linux box I have at work. Once I get the hang of it (and get it to work with my AWE32 card), I'll write an ALSA driver for libao. Still waiting for someone (Monty) to tell me how I should get this package into the vorbis tree. Maybe my last email was unclear. (Or maybe Monty is clairvoyant and knows that I needed to fix my code.)
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
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!