Tue, 29 Nov 2005
Installed OS: Linux
We have ordered a new CPUs and mainboards for the IS MU application cluster. The mainboard is Tyan Tiger or something like that. I have checked all BIOS settings, and found the most interesting one:
It reads: "Installed O/S:" with the following choices: "Other", which is the default, and "Linux". I don't know whether this is a good sign of Linux being the mainstream OS, heavily supported by Tyan, or a bad sign of Linux having some incompatibility with this board.
The upgraded box also has the above monster cooler from ASUS, which looks like a beer barrel bitten by a blue-LED-equipped radioactive spider (image taken from the ASUS web site).
Mon, 28 Nov 2005
Bugs, Bugs, Bugs
In the last few days I have been hunting bugs in various programs:
The evince document viewer displays incorrectly some PDF documents, including the monthly bulletin of our univeristy. It is tracked (with screenshots) in the GNOME bugzilla as #322118, and in the fd.o bugzilla as #5149.
The kernel and upgrade at Odysseus caused something strange in the kswapd - sometimes when running a fulltext indexing of the mailing lists archives both kswap-daemons are eating too much CPU. It can be seen in the CPU usage graph:
... at the end of week 45 the new kernel and bigger memory has been installed. This is tracked in this message to linux-kernel list and the following thread.
I wrote about IP conntrack testing on our filtering router. Now it seems that the conntrack module leaks connections, because the number of connections tracked has been steadily increasing since then:
I have not reported this yet, though.
Fri, 25 Nov 2005
Music Player Daemon
For a long time, I wanted to replace XMMS (the Ogg/MP3/... audio player for UNIX/X) with something better. XMMS has some serious flaws:
- User interface. It displays its window without window manager decorations and tries to draw its own title bar, and buttons for "minimize", "menu", etc. This means that it cannot be managed as all other windows with keys and mouse events that window manager has been set up to use.
- ALSA[?] plug-in is not fully implemented. For example, it does not work with virtual sound cards that are be set up in the .asoundrc configuration file.
I had a wishlist (in Czech, sorry) of features for my new music player. I sent it to the local Linux mailing list, and someone pointed me to the Music Player Daemon. It is an excellent application - it runs as a daemon, which indexes the whole audio file repository on your computer, and plays the music on background. It can be controlled remotely over the TCP (even with authentication), and has various clients including a command-line client, GNOME client, and so on. When running a system-wide mpd, the music playing survives even your logging off and on. It is suitable even for my home dual-headed and dual-footed setup.
I have created MPD RPM packages for Fedora (the clients are available from Fedora Extras). Later I found out that even the daemon RPMs exist - they are in the rpm.livna.org repository (they cannot be in Extras because of the MP3 support).
Tue, 22 Nov 2005
Storing 2^256 bits
There was a thread about the implications of 128-bit indexing in Sun's ZFS in the linux-kernel mailing list. In particular, one post in that thread was very interesting: How big device would you need to store 2^128 bits (or even 2^256 bits) of data?
Fri, 18 Nov 2005
Uptime: 92 minutes
Last Saturday I have installed additional 4 GB of memory to Odysseus. I have also recompiled the new kernel and checked the BIOS settings. The kernel booted OK, but when I returned home in the evening, I got SMS that Odysseus has crashed.
I logged in and Odysseus was up, with uptime 1 minute or so. I have cofigured GRUB so that next time it would boot to the older kernel. During the night I received two or three more messages that Odysseus was down. I tried to limit the amount of memory used back to the original 4 GB. Even then Odysseus keeped crashing.
I connected the serial console through script(1) command in order to catch all messages from the possible system crash. Nothing appeared - the server just silently rebooted after some time. I thought about removing the new 4 GB of memory, but the memory has been thoroughly tested in other box for the last two weeks, so it definitely was not bad.
After some time I tried to look up the exact times of system crashes using last(1), and guess what - the server was rebooted after about 92 minutes each time. So including the time for BIOS startup, it seemed that it rebooted after 90 minutes of Linux uptime. I reverted some changes in BIOS setup (disabled ACPI HPET timer, disabled the ACPI 2.0 support, disabled ECC BG scrub and few other ECC settings), and the problem was fixed. I am not sure which settings was the cause of the problem, though, and I don't have time to play with it now.
Thu, 17 Nov 2005
Back to Sawfish
I have been using Sawfish as a window manager of choice on all my workstation except the main workstation at work, which is AMD64 dual-head, and I had problems running it on this setup.
On Monday we have discussed with Oozy the features of our desktop environments, and I have decided to give Sawfish another try. Sawfish is an extensible window manager partly written (and configured) in Lisp (yes, those fscking parentheses :-). Since Sawfish project did not make a release in two years or so, I have decided to compile the CVS version. The packages for Fedora 4 (SRPMs and AMD64 binary RPMs) are in my FTP directory.
It works except few minor glitches (sawfish-ui crashing), and now I can have Galeon fixed at workspace 1 of the second head (metacity did not support that or it did not work in it), Liferea on Workspace 4 of the second head, Mutt window without decorations, etc. The workspace switching works correctly (unlike metacity, which has this 2+ years old unfixed bug.
I have to add an usability rant: why there are so many window manager themes with the following flaw: the focus of the window is shown only by changing the title bar (default theme in Fedora, sawfish's microGUI theme, etc.). When the window is partly obscured, it cannot be seen whether it is active or not, or even which window is active (unless you use the brain-dead approach of "the focused window is always on top", of course).
Wed, 16 Nov 2005
IP conntrack testing
We have a filtering router running Linux, which has around 1400 iptables rules, and multiple gigabit interfaces. For a long time I wanted to explore newer features of Netfilter, such as IP connection tracking (and the raw table with NOTRACK target), ulogd, etc.
On Saturday I have booted the new kernel with ip_conntrack, and the whole set of other Netfilter bells and whistles. I have not played with it so far, but the connection tracking is on, and it seems it had no significant performance impact on the server itself:
The above graphs show values of packets per second routed, CPU usage (system time and user+system time), and number of connections. The new kernel with conntrack support is on since Saturday evening.
Tue, 15 Nov 2005
Power grid update
On Saturday there was a scheduled power grid outage in the Faculty building in order to replace a power-generator and UPSes. When such things are to be done, the electricians assure us that there will be no outage at all (or only a small one, like in this case), but the reality is usually different.
I came to work around 6am to reboot all servers and switch the most important ones to the temporary power supply. The outage itself was planned to start at 7am. We have gradually rebooted our servers and plugged them to two extension cords which the electricians have prepared and declared that they would be sufficient for an expected load.
When reconnecting the last server, about half of the servers crashed - the circuit was overloaded and we blew out the breaker. So we had to add another extension cord on a separate temporary circuit, and moved some servers to it. However, we have found that even the other cord of the original two cords was overloaded as well - the cable itself was warm, and the rest of it which was still on the reel was so hot that it was not possible to keep a hand on it. It is a pure luck it did not catch the fire.
Fortunately when we moved another three servers to the third power cord, it started to cool down, and it worked during the whole outage. However, it seems the electricians missed the estimation of the load their extension cords can handle by about 50%.
In the evening the main power grid was back, so we started to plug the servers back to the original cords. However, the electricians messed up something while switching on a breaker on a non-UPS circuit, and they blew up one of the power supplies on our SunFire V880. The new power supply costs about US$ 1000 (in the U.S., here in the Czech Republic it is probably even more).
Aside from that, around 9pm all the servers were back on the main power supply. The reconstruction will continue on next two Saturdays, this time hopefully without the outages.
Mon, 14 Nov 2005
Applications of the day
I've came across few interesting apps recently, hope you find them useful as well:
- grep --color=auto - did you know that old good grep(1) in coreutils supports colored output with searched string/regexp highlighted?
- F-Spot - a photo management software for GNOME (I've seen it in Jakub Steiner's blog as well as next two apps). Maybe I should try it instead of gthumb.
- xvidcap - a nice screen grabbing tool, which can be used for creating an instructional videos from the contents of the screen.
- Key Status Monitor - a small GTK+ app for monitoring the status of modifier and other keys - useful mainly together with xvidcap.
Hmm, when I get mad enough to explore the dark corners of e-learning, xvidcap and key-status can be useful...
Thu, 10 Nov 2005
Playing with Epson printer
We have an Epson Stylus Photo 2100 printer (7 inks, A3 width, roll-paper feed, paper cut-off, etc.), and I occasionally try to print a photo on it. The problem is that I usually forget which settings I've used before. This time I have decided to move this printer to my office in order to explore further its capabilities and create an informal how-to document for it.
Firstly my prints had shifted colors, as if the driver had wrong idea about which ink is in which slot (the printer has black, gray, cyan, light cyan, magenta, light magenta, and yellow inks). I have figured out that this happens in gimp-print when using 720x720 dpi resolution. When I changed my settings to 1440x1440 dpi, the problem disappeared.
Another problem was that when printing on a roll paper the printer leaves first 2cm of paper blank, which wastes this part of paper. And I was not able to make the paper cut-off working yet.
The next problem is the printer's user interface: I usually have problem to put the paper in - it probably depends on the printer driver settings, but it sometimes requires the paper to be fed to the printer through the hole for the roll paper, and the next time it demands the other input hole (for the stack of paper sheets) to be used. I have to test it further.
Anyway, here are few links for Epson 2100 software:
- Epson/Avasys download page - they have a native driver for Linux (even as RPM), but it probably contains some proprietary parts (it runs as a separate daemon and CUPS has to send the data through it). I was not able to compile it on AMD64 architecture because of data size mismatch.
- gimp-print - included in Fedora in version 4.2, but the new version - 5.0 beta - is said to be much better for 2100. It is not even in Fedora devel (rawhide). I will try to compile it tomorrow. They say that Epson 2100 is fully supported, and that the output is even better than the native drivers for The Other Operating System provide.
- Libinklevel - a library and an utility for querying the amount of ink remaining in the printer's cartridges. Works for 2100 as well, but has misnamed the cartridge colors. I have contacted the author of this package, and I will probably create RPMs for it.
I will do more tests tomorrow and hopefully I will get even the paper cut-off and other features working.
Wed, 09 Nov 2005
I occasionally spend few minutes here and there learning Japanese. I have managed to learn Hiragana and few basic rules of grammar so far. Here are links to the web pages/software which can be used to study Japanese:
- The Japanese Page - they have few basic facts, but what is the best is their Hiragana lesson with interactive exercises.
- KanjiStep an introduction, and some Kanji.
- Japanese is possible! - mainly gramar, somewhat anime-related. By an English-speaking person.
- Teach yourself Japanese - more detailed grammar, examples in Hiragana and Romaji. Written by a native Japanese.
- PAdict - Japanese dictionary for PalmOS, including the Kanji lookup and stroke order.
- Dokusha - a text reader, J-E dictionary, Kanji dictionary, and study system for PalmOS.
- Japanese for Nerds (part II) - an interesting pair of articles on K5 - author tries to explain the Japanese grammar as a stack-based language (such as Forth or Postscript).
Mon, 07 Nov 2005
On Friday night we took part in TMOU 7. It was an excellent competition, in my opinion even better than in the previous years. Interesting and innovative puzzles, nice landscapes, and we have even visited a former military rocket-launcher base. The city part of the game was not difficult for us, and we have finished this part on the second place.
The second part contained some difficult puzzles, though. I have speculated before, that we may fail to solve something easy enough, when we start to apply mathematics on it instead of using some simple method. This happened on stage 10. We have tried many difficult methods like XORing the nearby squares, shifting rows and columns, folding the paper, etc. However, we were finally able to abandon the previous wrong ideas, and use something new, which shockingly enough led to the correct solution: this puzzle is just a slightly obfuscated Morse code. We have arrived to the stage 10 at about 1:20am, and solved it four hours later.
The next stage took almost another four hours, but this time it was not a completely wasted time, because the solution itself was lengthy. We have lost between 6 to 8 hours at stages 10 and 11, and even though we have made a good progress in the rest of the game, we did not manage to finish the game in the time limit (which was Saturday noon).
We have left the game on Saturday at 12:15, when we have obtained the task of the stage 14 (out of 15). I guess this means we have finished somewhere between 6th and 10th place. Two teams have finished the whole game, one at 8:05am, and the second one around 11:15am. If you can read Czech, look at our report from the game.
Fri, 04 Nov 2005
Booting Fedora with vanilla kernel
While testing the XFS information leak I have written about yesterday, I had to compile my own kernel on the testing machine. I already knew what to do on most Fedora systems - there are some problems with vanilla kernels on Fedora:
- The vanilla kernel does not accept the symbolic root filesystem name as a boot option (so you have to use root=/dev/hda1 instead of root=LABEL=/ in your grub.conf.
- The initrd on Fedora kernels sets up basic device nodes using udev. When using vanilla kernels, it is necessary to create these nodes (/dev/null, /dev/console, and /dev/zero) on disk before the system is booted. More in the Fedora docs on udev, see the "Udev without initrd" section.
However, my test machine happened to be a plain default Fedora install, and Fedora installs itself on LVM(?). So the boot without initrd is not possible - the ramdisk is needed at least to set up LVM before the root filesystem can be mounted. This causes that another bunch of things have to be done before the vanilla kernel can be booted on Fedora on LVM:
- Obviously enough, support for initrd has to be compiled into the kernel.
- Fedora initrd image is a compressed cpio archive. I don't know whether it is supported by vanilla kernels, I have converted the image to the ext3 filesystem. However, on ext3 the image took more than 5 MB of data, while the default size of a ramdisk is 4 MB. So remember to bump up the appropriate compile-time parameter.
- Initrd on vanilla kernels start the script named /linuxrc, while Fedora's initrd stars /init. Just rename it to /linuxrc and it should work. And when you are at it, delete all calls to modprobe for drivers you have compiled into the kernel (as opposed to compiled as modules).
- The vanilla kernel does not accept the LV name as a root filesystem parameter. The major and minor numbers should be used instead (such as root=0xfe00 for major 254 and minor 0). However, the major number is registered dynamically, so the actual value depends on what drivers are compiled in and in which order they are loaded. For example, on a fresh Fedora system the LVM/DM has major number of 253, but on my own kernel it got 254 instead. This one took the most time to figure out.
I am not writing this to blame Fedora as unusable - I think their system is a step in right direction - to use new technologies "by default" instead of "on some special installation". I mean not only LVM here, but also udev, SELinux, etc. They should just document better what to do if somebody has to use a vanilla kernel on Fedora. I hope this text can help to fill up this gap.
Thu, 03 Nov 2005
XFS information leak
Today one of our servers crashed, and one user lost the file he has been editing. The file did not contain neither a new data nor an old data, just some random garbage (part of it even appeared to formerly belong to some shell script). This is quite dangerous from the security point of view, because it means that after the crash (like a power failure or a hard reset) the files which have been written to near the time of the crash may contain random data from previously-unused blocks.
I have even hacked up a small program that just creates or rewrites a set of files with some "known" contents. When you hard-reset the computer running this program on the XFS volume, after the reset some of the files contain "random" garbage.
The same problem would probably appear even on ext3 with data=writeback mode. But I don't know about anybody who runs ext3 in this mode. The data=ordered mode, which is the default, does not have this problem.
I should probably write an article about my long-term experience with various filesystems some day. It seems all articles which compare the filesystems just do some performance measurements on one particular hardware, which tells nothing about a SMP scalability, or a performance over the device which allows parallel operations (such as RAID or LVM). Or, like this case, about the behaviour in corner cases such as system crashes or bad blocks. I think it does not matter whether the filesystem is 5 or 10% slower - if your HW runs at 95% of the disk or CPU utilization, you are screwed anyway and you need to buy a better hardware - the next month you will be at 100% and you would need to buy it anyway. What does matter OTOH is, how reliable the filesystem is and how stable are the filesystem tools (resierfsck is obviously the bad one here).
Wed, 02 Nov 2005
Azumanga Daioh - a trip to Okinawa
Tue, 01 Nov 2005
The absurdity of the copyright law
On Saturday evening we wanted to watch some movie. There was second part of Harry Potter on TV, starting at 8pm. We have decided that we would like to see it. However, it is difficult for us to watch anything at that time, because Iva usually goes to bed at least half an hour later. Recording the show on the VCR was not an option, because it is not possible to start watching the recorded show from the beginning when the recording is still in progress.
I have decided to download the movie over the Net, and we watched it on a computer instead on a TV. However, this brings a lot of questions, which nicely show how absurd the current copyright system is:
While in our country it is perfectly legal for us to download a copyrighted material for a personal use, it is not probably legal to offer this material for downloading. So the person we have downloaded the movie from was apparently doing something illegal. However, how it is different from him recording the show for us and sending us a VCR tape or a DVD? Or even how it is different from him recording the show to our own tape on our own VCR? And what about the TV aerial system we share with our neighbours? It also stores the TV signal for a while (even though it is few microseconds) and then rebroadcasts it using a VHF amplifier and a coaxial cable - is it illegal to store and redistribute the copyrighted material in this form?
And what harm (if any) has been done to the owners of this copyrighted material? We have seen this particular movie in a cinema, so we have already paid for it. And we would not have watched it on TV anyway, given the above time constraints.
A side note: try to think about it not in terms "this or that is legal or illegal", but use instead terms like "this or that is moral or not" (and why it is so), and "this harm has/has not been done". The law is only an imperfect codified form of what the society considers moral and what it considers immoral. And I think the present copyright system is very far away from my understanding of what is moral (promoting new artists and new work, not recording/distribution companies), especially when it is applied to an "information" available and distributable in the electronic form at virtually no cost.