Category Archives: Free Software

Server almost Ajaxianized

Ole, friend and collegue from iola, released flot today. Flot is a Javascript plot library for jQuery released under the MIT license. The release got mentioned on Ajaxian and brought the server this blog is also hosted on to its knees. Several hours later, out server is now up and running again with lighthttp as a proxy shield in front of the dear apache server that could handle the load 🙂

Check it out if you need some client side web plotting. The graphs are quite nice since they are antialised and with shadows 🙂

Finally skip-free audio playback in Linux

Stumpled upon this story the other day. Finally a tool where you can actually decide which things get prioritized instead of the kernel relying on heuristiscs. I did a test with alsaplayer playing back using through jackd (very sensitive to not getting enough time slices). To stress the system I did a emerge sync together with a fetchmail process sucking down the days mail. I don’t really care if it takes 5 seconds longer to fetch my mail or if it takes 2 minutes long to emerge sync as long as I can be sure that my music doesn’t skip. And guess what? With DeskOpt you can 🙂

Even your daemons can have usability problems

Today I decided to change nic in my server because the onboard NIC wasn’t working properly. And so again I hit the problem that udev can assigns a NIC a different ethX name than what the kernel is printing in dmesg. So one modprobes the module and gets the following output:

e100: Intel(R) PRO/100 Network Driver, 3.5.17-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
ACPI: PCI Interrupt 0000:01:07.0[A] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10
e100: eth1: e100_probe: addr 0xdcfff000, irq 10, MAC addr 00:A0:C9:E6:3E:75

Tries to start the NIC using /etc/init.d/net.eth1 start only to find that the device is not found! Luckily I had this problem before so I knew that I needed to clean up the file /etc/udev/rules.d/70-persistent-net.rules. I seriously doubt that this “feature” of remembering the ethernet binding of old NICs brings more “joy” that headaches.

Creating nice and clean patches

I was creating some patches for tracker today from a rather large amount of local changes which was nicely filtered together. Some source files had several independent changes that I wanted to extract and submit as a single patches instead of one big megapatch. So I looked around and found out that the OO guys have created a script to do exactly that. It takes as input a regular expression (the script is created in perl so one gets the nice regular expressions from perl) and a diff and spits out a clean diff + the rest of the changes.

Bzr kicks gits ass

So I’ve been known to rant about bzr before. I got a new machine recently and it came to my attention that it quite a pain to keep two local bazaar branches in sync. So I thought I would have a look at the new breed of revision control systems: git and bzr.

My first preference was git, mainly because of what I said in my rant post. So I installed it and got my arch repository imported. I then tried to see how it handled merging of two branches. To be fair the branches have diverted quite a lot but the change was extremely simple: two identical po files where one of them has been updated. It completely fall flat on its face and I had to manually merge the changes. It also failed to find a merge point between the two revisions so I had to cherry pick changes by hand. After some more testing I tried to merge my local repo to the mms mirror using ftp. Sadly ftp is not supported so that was kind of the last drop that made me think twice about trying out bzr.

So I installed bzr, made it import my two branches and went to sleep (it takes a long time since it takes all my 1000+ changes). After I woke up I played around with the different commands. It’s really a pleasure to work with the system. I guess the clean start was a very good thing. Every command just work like you think they do, you don’t have to use a lot of time learning the system. E.g. when you want to mirror an archive you just do bzr push sftp://somewhere. It will automatically remember that location and just use that path the next time you push. So far it has been working great and I even put all of my cxfe patches into a repo since it’s just so damn easy. It handled the arch import with grace and I have been able to pick of where I left in baz. It can merge the two branches without and problem. The only small bug I have hit so far has been that it won’t work if your ftp server doesn’t support renaming (sunsite doesn’t) but at least it has been confirmed and added to their bug db so there is hope that it will get fixed.