Showing posts from June, 2007

Thoughts on (Un)checked Exceptions

Brian Goetz shares his thoughts on the (recurring) idea of removing checked exceptions from the Java language in a future version, because they tend to make code too ugly to read or are just considered a "failed experiment". I personally count myself to the faction of people in favor of checked exceptions, because I believe they can certainly make people think more about error handling than they usually tend to. It may be harsh to say that, but in my opinion people - developers maybe even more - somethimes need to be forced to do unpleasant things. Of course checked exceptions can be a pain in the neck when you need to create e. g. Runnables, however in those cases you can still resort to throw an unchecked one . While this is a somewhat ugly technique you nevertheless are forced to think about error handling. I suggest reading his proposals on what could be done to ease the symptoms. I mostly agree with the 2nd group of people and like the idea of having closures to better

Download Youtube Videos (and Google video)

Maybe this is obvious, but it was new to me. :) Today I skimmed through the homepage and found an article on Valerio Schiavoni's blog about revision control systems. He embedded a link to a video on YouTube showing Linus Torvalds giving a speech at Google about git and why he thinks it's better than other revision/software control systems. When I started to watch I realized I would not have time to watch it to the end. So I wanted to save it locally and watch it later, without having to be online again. So I googled for "download youtube videos" and the first three matches all pointed to one sort or other of special download tools. Turns out you do not really need anything like that. By chance I found the completely downloaded video file in the /tmp directory named something like FlashRItWZO. I tried some video on Google video, too, works fine as well. The files all start with "Flash" and are then followed by some random part. You just hav

MySQL server_errno=1236 when disk full

Yesterday I was asked for help concerning a replication problem with one of our test systems. My colleague had already installed a fresh dump he had created with mysqldump ... --master-data . The dump looked ok and contained a master configuration statement: ... CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000127',MASTER_LOG_POS=4462223; ... The slave was provided with the correct user, password and host name for this master. Nevertheless issuing a START SLAVE did not work. In the slave .err file we found this: ... 050327 20:54:51 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position (server_errno=1236) 050327 20:54:51 [ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log ... After some fiddling around and searching the net for solutions we had a look at the server as well. SHOW MASTER STATUS revealed seemingly

Visualize hard disk temperature with gnuplot

When the kernel issue I blogged about hit me I first suspected a(nother) defective hard disk. I opened the case to find my 250GB Samsung Spinpoint SP2504C so hot that I could barely touch it without burning my fingers. Mentally preparing to reinstall Ubuntu on a disk yet to be bought I remembered that this disk was not needed to boot at all, because it just contains data files. (Anyone else losing track of what is stored where with the disk sizes these days?) So I decided to just let everything cool down and then start again - in the meantime I had noticed that the latest kernel update had caused the effect and that starting with 2.6.20-15-386 would work. Once I was back to my desktop I installed some packages for hardware monitoring: ds@yavin:~$ sudo apt-get install hddtemp sensors-applet lmsensors Once they (and their dependencies) had all been installed I first started toying with hddtemp : ds@yavin:~$ sudo hddtemp /dev/sd[abc] /dev/sda: IC35L080AVVA07-0

Beware of Ubuntu Kernel 2.6.20-16!

Anyone using Ubuntu Feisty Fawn should not install the kernel update to 2.6.20-16! It comes as a security update, but it includes some nasty trickery with the ATA/SATA drivers. After I installed it I could not boot anymore, because for some reason the drive names had changed! All the SATA drives that had /dev/sdXX names before were now called /dev/hdXX . Even though my /etc/fstab only contains "by-uuid" entries, all but the PATA boot drive could not be accessed. I already suspected a hardware defect, because booting without the splash screen showed "lost interrupt" errors. I only got skeptical when I read it was on drive /dev/sdg which I just plain do not have! Unplugging both SATA drives at least let me boot into the system again. From what I read in Launchpad Bug #116996 booting with the previous version 2.6.20-15 should work in the meantime. I have to admit I am pretty pissed off by Ubuntu at the moment. I really love the work they do, however sometimes