Search Results: "ema"

17 August 2006

David Nusinow: If You Liked Sonic Hedgehog...

You'll adore tequila. Such things make me proud.

As of tomorrow's dinstall, Xorg 7.1 should be fully staged in experimental. Once it's approved by the release team, I'll be putting it in unstable. The only non-bugfix goal left for the release is to have compiz available. Now it's time to go pack.

16 August 2006

Manoj Srivastava: Burninating spam

It is funny that people say that no one has written software that does Beysian filtering in order to reject Spam at the SMTP level, just when I felt like writing up my mimedefang setup. I am of the school of thought that the only acceptable method of dealing with spam is to reject it at the SMTP protocol level. To accomplish this, I run crm114 and spamassassin from my mimedefang-filter, which runs as a milter while my sendmail is processing mail. I also do conditional grey listing, more on that below. The reason for running two different Spam detection mechanisms is that while one or the other is often fooled and mis-categorizes mail, the score or confidence level of such mis-categorization is low, and the mechanism that is not fooled enables the combined system to do the right thing in most cases. I tend to quarantine and keep even the messages I reject for about a month, and do spot checks, so out of roughly a 800 mails a day volume, I get about one or two spam messages a day, and did not ever reject a mail I manually would classify as ham in the 6 months n which I double checked every decision taken by my system, and in the spot checks I continue to perform. While this is not as good a record as the author of crm114 reports, it is good enough for me. The grey listing: since I try to be conservative, and opt to lean towards not discarding any email that is legitimate at the expense of not trapping all spam, and since I do not discard any mail I accept unread based on an automated decision, I was getting more Spam than I cared for still. So, I added the grey listing layer – but only for mail that were not ambiguously spam or viruses (which are rejected), or ham, which are accepted for delivery. Most of the Spam that was slipping through came from the grey area. So, I implemented grey listing only for these mails. Grey listing happens on a triplet of the class C domain of the senders IP, the sender, and recipient. A grey listed email encounters processing problems, and is temporarily rejected with a 503 for 30 minutes, and then retries are allowed through for 4 hours, in which case the triplet is white-listed for 35 days (catches monthly announcement messages). Known Spam resets the white-listing, and retrying past the window does too. Doing it this way, known good correspondents suffer no delay, unambiguous mail from strangers flows right through, and I improve my filters based on the results all the time, so my discriminator improves. My filter is available for examination. See also the older posting, like the time honoured tradition of /., this posting is a duplicate.

Daniel Stone: google spam strikes back

Credit where credit's due:
Hello Daniel,

Thank you for writing in. My personal apologies for what happened, this is
not allowed behavior here at Google and this email was mistakenly sent to
you. Mistakes happen but we're sorry that this particular mistake
happened, unsolicited email is not acceptable. If you have any further
questions, please do not hesitate to email us.

Sincerely,

Sam

The Google Base Team

If this means that Google are stopping Google Base spam completely now, more power to them.

15 August 2006

Mario Iseli: OpenLDAP, LUG-Seeland, School

Today was a strange christian day here in Kanton Solothurn and I didn’t have to work, so I had a lot of time to prepare my presentation for next Friday about OpenLDAP. First of all I prepared the stuff for the school which begins tomorrow, so my holidays are now definitely past :-( . I was excited that I didn’t receive my timetable by snailmail so I had to google and found it finally. Poorwise i have now to stand up very early in the morning, my train goes at 07.07 in the morning. Now to OpenLDAP, fortunately Mathias Weyland, the president from the LUGS, gave me a book about OpenLDAP from O’reilly, I really like it: It’s quite informative and sometimes the author is making some jokes. Priska Rubischon already bothered that i have to tell something about netgroups and autofs, this was completely new because I newer worked with NIS (and netgroups etc.) and neither with autofs (in most cases I use samba and libpam-mount). It’s not so difficult as i thaught. OpenLDAP in Debian comes with nice schemas which help to migrate from NIS to LDAP, so I had a look at those schemes and the chapter about netgroups in the book. Also autofs is not complicated, for example, if you want to share /home to the clients you have to prepare a NFS-Server which shares this directory and configure /etc/auto.master and /etc/auto.home on the clients. These two files can lookup where and how it can mount /home. On my testing-infrastructure I just used netgroups for the NFS-exports, so I have now an example what they’re for. After all I realized that my speech will also be about “How do I plan a network in a company”, so I realized that the security of LDAP is also very important. Fortunately OpenLDAP can be secured quite hard, it supports SASL and KERBEROS_V4 authentication mechanisms! When I would realize now a network i would do the following: I still ask me how i can protect my netgroups so that nobody can plug computer “x” out and plug in his computer, take the IP of “x” and mount the NFS-shares. Kerberos as user authentication would be a solution, but I don’t really like it. As I already told I prefer libpam-mount, with it’s help it would be possible that every user gets his share mounted maybe over smb. Now I will search for a solution how i can properly secure NFS, so it does only allow connections from users@boxes authenticated with LDAP and not user@host-which-can-be-faked. If you have an idea feel free to write it down here in my blog! In the evening I went to “Biel” by train to join the LUG-Seeland meeting. Beat Fasel explained me a lot about genetical biology, his work and the evolution, this was very interesting. Later we talked about the future of our community, I will prepare bylaws for the next meeting which we will sign. Other ideas were about preparing an install event and a mailinglist because we don’t have communication over the internet and this is quite complicated if we want to organise something in teamwork.

Lars Wirzenius: Review: Debugging by David J. Agans

I hate debugging. I strongly prefer writing code that works to finding problems in code later. Because I hate it, I've never been good at it. I've never spent the effort to figure out a good, systematic way to find a bug. Instead, I've developed ways of avoiding them. In the long run, this isn't the smartest strategy: every now and then a bug slips through, and then I'm screwed. Worse, sometimes I need to debug other people's code. David J. Agans's book Debugging is a gem. It crystallizes an approach to debugging that feels very good to me. In summary: None of these should come as a surprise to anyone experienced in programming, of course, but I've never seen them presented together, or so well. Agans's genius is not that he's come up with a new debugging method, but in presenting the obvious aspects of the debugging process in a clear, logical manner. Also, he has funny war stories. The book is written in a fairly chatty manner, with many jokes. The style, or the jokes, don't get in the way, and they may help remember particular points better. It's a fairly short book, at about 170 pages. I like that: I dislike the modern tendency of making computer books so thick and heavy that future civilizations will assume we used them for bricks. It's only been a few days since I read the book. It's already made me a better programmer. Highly recommended.

Thom May: Apache 2.2 finally hits debian

Yup, the long wait is finally over and thanks to a cast of thousands 2.2.3 is now in experimental. I’d like to extend thanks to Mark and Canonical for sponsoring much of the original work, and also the sprint at the start of this year that got most of the remaining work done. What we really need now is lots of upgrade reports so we can figure out how much automated help a 2.0->2.2 upgrade can reliably provide, and also where. I’ve been running these packages in production for some time so I’m not that concerned about overall stability, but I’ve not been using some of the weirder modules. We also need to get third-party module packages to stage updated packages into experimental built against 2.2

Gunnar Wolf: FUSE vs. GnomeVFS?

Aigars: I agree with Womble's comment in your blog. Maybe GnomeVFS is just way too much? Maybe it could be substituted by an on-demand FUSE-based mounter and unmounter? It seems to me it'd be saner to get all the relevant file manager GUIs (or plainly UIs, maybe even some overpowered shells) to be able to interpret an URL request as just a call to said script and a local filesystem operation? Mounting via FUSE in a protected, per-user area, and then just unmounting after a given inactivity timeout.
Yes, I know GnomeVFS is able to do all that and more. But as it's always the case with Gnome and me: I doubt most of the times you need all the "all that". And probably there are saner ways to implement it than via yet-another-layer-for-yet-another-already-solved-thing.

Andrew Pollock: [tech] How to mount ATA over Ethernet volumes with a minimum of grossness

Yesterday I discovered some inadequacies in the stock Debian Etch initscripts when it came to filesystems on ATA over Ethernet block devices. Overnight I got a few emails, but it was a one Joshua J. Kugler who brought my attention to the _netdev mount option. The mount(8) manpage really is a treasure-trove of information that should be read often. So, in a nutshell, here's what I'm doing: Finally, I found I had to either load the aoe kernel module as a post-up operation for the Ethernet interface in /etc/network/interfaces or load it in /etc/modules and call /usr/sbin/aoe-discover as a post-up operation in /etc/network/interfaces, because just loading it from /etc/modules resulted in the driver being loaded a fair while before the network came up, and once the network had come up, it took the driver longer than the time for /etc/init.d/mountnfs.sh to be run to realise there were ATA over Ethernet devices on the LAN and arrange for the relevant entries to appear in /dev/etherd. I've currently opted for running aoe-discover from /etc/network/interfaces. So I'm now very happy. I can reboot my MythTV server and everything comes back without any intervention whatsoever. Sweet. It'd be nice if these fixes can make it into Etch, as all of the other components will be there for ATA over Ethernet support. The kernel is new enough to have the driver as standard, and vblade is in Etch. Just the support to mount it all properly isn't there. Oh, and nothing I've done (with the exception of the post-up stuff in /etc/network/interfaces) is ATAoE-specific. It'll work equally well for NBD for example, and presumably other SAN-like stuff. I certainly find this approach far less gross than what Coraid suggests, and it'd also be cool if Debian were the first distro to do it the right way. I wonder if Red Hat/Fedora are already? I suppose I could fire up Xen or VMware and find out if I get curious enough.

14 August 2006

Erich Schubert: SELinux for sarge updated

My experimental SELinux for Debian sarge backports have been updated. The core libraries and utilities are updated to the versions just uploaded to unstable. Therefore, they may of course contain the same bugs as the unstable versions and since I redid the packaging of libselinux and libsemanage - I didn't understand Manojs packaging system, and these packages needed larger modifications for sarge python support - they may also contain extra bugs. But even users of unstable might be interested in grabbing the "refpolicy" packages from this repository. These packages are now a modular policy. This is possible since the just uploaded toolchain finally has working policy module linking and results in a significantly smaller policy, since you don't have to add rules for software not installed. To support this, I've written a tool to resolve inter-module dependencies and to automatically install modules matching the software packages you have installed. Expect to see this in the unstable refpolicy packages sometime, too. Maybe someone else will contribute a ncurses frontend to select policy modules. Please note that bug reports should be directed to the Debian SELinux Mailing Lists. Please use the mailing lists, instead of just contacting me directly. On a side note, I don't know if I'll be continuing these efforts.

Jaldhar Vyas: Debian Linux Adopts SeaMonkey

Well it's in NEW anyway. It should arrive in unstable in a few days once the ftpmasters process it. For those who don't know SeaMonkey is the latest incarnation of the erstwhile Mozilla Internet suite. Apart from a web browser, it includes an email and Usenet reader, an HTML editor, and IRC client. It's a big complex piece of software and I would like to get a packaging team going to look after it. My current work is available in SVN. There are a huge number of lintian errors most of which are probably bogus but still need to to be looked at. I'm sure there are other improvements that could be made too. If you would like to help, please contact me In light of some of the FUD that's going around I should mention that this package was made possible by support from the good people of Linspire Update: Ow the package was rejected. Apparently you're supposed to fix the huge list of packaging bugs before it gets distributed to millions of people. Back to the drawing board. Update 2: SeaMonkey SeaMonkey SeaMonkey

13 August 2006

Biella Coleman: STS Wiki, again

Bryan Pfaffenberger initiated and helps to maintain what has become the number one wiki and, thus, source on the academic field of Science, Technology, and Society. Since he first put the wiki up, it has balloned nicely but there is of course more room for expansion and development. He recently sent out a nice letter to the STS-grad list remidning folks to participate. And indeed, if there is something to put up, please do!

Andrew Pollock: [tech] MythTV in under 24 hours

Last night, the final component of my MythTV setup arrived - the TV tuner card, a Hauppauge WinTV-PVR-350. I'd had the other bits and pieces for about a week, indeed I'd already had MythTV installed and "operational", but there's really only so much you can do without a TV signal in the mix as well. So I had a bit of a late night last night bashing on things and getting it all going. It was actually surprisingly trouble-free. For some reason, I naively thought that the more contemporary 2.6 kernels had all the support required for the PVR-350. Not true. You need to grab the ivtv driver and build it separately. If I was less impatient, I would have worked with module-assistant to get it packaged, but I just threw it on. I have to run 2.6.17 to get the sound working, so I needed the 0.7.0 version of the driver. This built and installed fine, and I could run mplayer against /dev/video0 and see (and hear) TV fine. With a bit of tweaking of MythTV, it was happily using the card. Getting the remote control to work was slightly more problematic. It turned out that I needed to get the latest greatest lirc from CVS in order to get everything to build correctly, and get a /dev/lirc that I could actually read from. After that, everything else just fell into place. The last thing I spent a bit of time battling with today was guide data and channel tuning. It seems for some reason that channels greater than or equal to 14 didn't have their frequency set correctly, so I had to manually edit each channel and put in the frequency in kilohertz that ivtv-tune --list-channels provided. The Zap2it chaps also provide two different sets of guide data for Mountain View, and depending on which one you pick, you get a totally screwed up idea of the actual channels available. I also discovered the hard way that changing from one set of channels to the other without cleaning out the channels first leads to a complete mish-mash of channel data that correlates even less with reality than choosing one or the other by itself. But within 24 hours of receiving the tuner card, I have everything up and running. The ATA over Ethernet disk array (that Myth tells me is good for over 600 hours of recording) seems to be holding up to the task alright. The current bandwidth utilisation for a few test recordings is interesting: Graph of bandwidth utilisation for disks attached to the MythTV server
via ATA over Ethernet So it seems that a TV show is a nice steady 5 mbits/sec, which everything seems to keep up with okay. The post-processing to flag commercials seems a bit more bandwidth-intensive. It seems to take about 40 minutes to flag the commercials for a 60 minute block of recording. It's early days yet, but I'm fairly happy with how everything's operating so far. I can certainly leave things as they are for a while without needing to fiddle with things any further. The one thing I do want to mention is the guide data. The fact that it's totally free, and designed to be used by the likes of MythTV is awesome. PVRs really live and die by the guide data, and it's so cool that Zap2it offer it complete gratis. Mad props to them. Oh, and while I'm dishing out praise, I really must also thank Christian Marillat for http://www.debian-multimedia.org/ and for packaging up MythTV for Debian. If I had to build all of this myself, I'm sure it wouldn't have been so trouble free.

12 August 2006

Aigars Mahinovs: Simple day

I spent the whole day today investigating and fixing SBackup bugs and adding new features. The 0.10 release will be da bomb! My current plan is to spend 10 more hours on this tomorrow and after that I will declare a feature and string freeze for 0.10 and will give the translators a day or two to make/update their translations. And at the same time I will be figuring out a good systematic way to test a SBackup release. It is an important package, but it has no automatic or even manual tests, which is not nice at all. So while translators will be translatig, I will be testing. Ah, and this blaze of activity is thanks to both Jonh who contributed i18n code and some fixed to SBackup a few days ago (I hope he will continue contributing in the long term) and a brakedown of my primary laptop which makes it hard for me to do my university work. (I had no backups configured there yet :P )

Daniel Burrows: We aren't ATI's market.

Erich Schubert noted that ATI is holding onto their closed drivers. While it's unfortunate, I don't think this should be surprising to anyone. NVIDIA and ATI make their money by selling cards for gamer types, who make an art out of trying to get the latest super hardware to play the newest snazzy games on. They don't give a hoot about source code access -- after all, they're probably running proprietary games on a proprietary operating system anyway.

Free software enthusiasts, on the other hand, spend their free time hacking code and so don't have time to play the massive productions the game industry puts out nowadays; frozen-bubble or Wesnoth are about as much gaming as we have time for. As a result, we can do just fine with a video card capable of displaying Emacs, a couple xterms, and maybe a graphical Web browser -- and the built-in graphics card (usually Intel) on the motherboard is just fine for that. We also tend not to run Windows or OSX, where 99% or so of graphically intensive games come out, so even if we HAD free time for gaming we wouldn't be able to do it on a free system.

As a result, while I'd certainly like to have free ATI drivers, I think it's unrealistic to expect them anytime soon. ATI is a company, not a charity, and they will not provide source code or specs until it will clearly benefit them more than it hurts. If you don't believe me, try walking into your manager's office and saying "hey, I have a great idea! Let's give away all our secrets without any clear way to make money off it!" and see how he reacts. (note that this experiment may not apply to the 1-5% [0] of readers lucky enough to work in academia)

[0] this statistic determined by the HIGHLY SCIENTIFIC method of picking a small number at random.

Martin F. Krafft: The relation between cipher blocks and physical blocks

Many people have responded to my post on encrypted filesystems and power losses; thank you! To clear up the confusion, I decided to write a new entry rather than updating the previous one... I learnt two important things about encrypted block devices, which make me conclude that the addition of encryption does not put your filesystem at jeopardy any more than if it lived directly on the medium. First of all, AES works on blocks of size 128 bits, not 64 bytes, but that's mostly a cosmetic issue with respect to the original blog post. What's more important is that a power loss while writing out a cipher block effectively is the same as a power loss while writing out a physical block to the storage medium: the cipher block is usually smaller than the disk block, and an incompletely written disk block is considered to be invalid. So any incomplete cipher block results in an incomplete disk block, which in turn causes the filesystem to consider the block invalid and try to recover from the journal. What confused me for a long time was the use of chaining block ciphers (see the excellent Wikipedia article for more info). Essentially, block chaining adds security to encryption by making each (cipher) block depend on its predecessor. Great, I thought, so if the first block on disk is corrupted, it'll percolate all the way through the disk and render it all unusable... Well, fortunately, this is not the case... by that logic, a write to the first block would require all remaining blocks on the disk to be recalculated. It is true that cipher blocks are chained, but only within a physical block. This means that a read error on the medium may corrupt a cipher block, which then renders all following cipher blocks contained in the physical block unusable (for they cannot be decrypted anymore). But since the filesystem would already consider the entire block invalid, this does not add to problem. PS: Thanks to Peter Samuelson for (passively) leading me to the light.

Steve Kemp: Same old me again today

If you can see this I’ve not screwed up DNS too badly. Tomorrow I have to move SMTP. Joy. On the plus side moving SMTP should be trivial since all DNS hosts I manage use the same STMP server and there is just a single alias mail.steve.org.uk. I should be able to just setup the mailserver, update that record, then use rinetd, or similar, to proxy connections from the old IP to the new one until the DNS switch propogates. Complications include hosting mailing lists, and having mailing list archives be written to a new machine… Bed now. Beer first.
PS for those people that like to argue with Joerg Schilling please stop. It is beyond obvious now that arguing semantics is getting nobody anywhere, for the Nth time. I’ve come to the conclusion that when arguing discussing things with Joerg he will either wilfully ignore your point(s) or deliberately misintepret the evidence to support his stance. The chance of persuading him to change his mind? 0%. Give it up already. Think of the DVD-media children!! It really is time to either drop the cdrecord or fork it. Please. Somebody. Do it.

11 August 2006

Evan Prodromou: 24 Thermidor CCXIV

I said a few days ago that Ross Mayfield had one of the best blogs about wikis and the wiki business. But Eugene Eric Kim gives him a run for his money. EEK Speaks covers in detail a lot of the public and private aspects of wiki going on right now. Of course, I wouldn't paint EEK and Ross as rivals; after all, they won the Web 1.0 pitch contest at Wikimania together. tags:

Victory is mine (I think) For the last few weeks, some of the more advanced features of this wiki have been blowing up with a 500 Internal Server Error, to my great chagrin. I had switched from using CGI to FastCGI for WiLiKi and I'd seen a real improvement in the responsiveness of the site, but these occasional errors were becoming more frequent. I finally hunkered down to figure out the problem. Annoyingly, there was no error output in the Apache error logs, so I guessed that the problem was sooooo bad that the process didn't even get a chance to scream on stderr before dying. I had all kinds of theories about this. Most of the problems had to do with full-text searches of the database, so I guessed that the underlying cause had to do with I/O and concurrency. Gauche has a nice logging facility, so I threw in a lot of logging printf statements (or their equivalent) and isolated the problem to a few calls into Gauche's dbm libraries. Aha! The problem had to be concurrent DB access. I layered on a big slathery scoop of mutexes and locking and other such good concurrency stuff and... the problem was still there. D'oh! So much for my diagnostic skills. I decided to take a step back. After ascertaining for myself that any writes to stderr from within a FastCGI program should indeed show up in the error log -- by reading and by writing a couple of sample programs -- I turned to the debugging tool of last resort: strace. strace logs all system calls by a program, which can be a lot of information. I couldn't, of course, just start my FastCGI program, so I had to strace the entire Apache process, with lots of command-line flags to divvy up the output on a per-process level. Once I had that going, I could kind of see what was going on. My full-text searches were starting up fine, but about halfway through the search they'd get a SIGTERM and terminate. Holy moly! That wasn't an error in my program -- someone was murdering my poor little FastCGI processes. At first I suspected fratricide -- that the processes were terminating each other when they needed the database resource -- but I realized right away how dumb that was. That only left one suspect -- the parent! I dug a little bit into the fcgid documentation, and sure enough, if a process went too long without giving any output, fcgid would terminate it. I upped the time limit for this wait, and now all my search processes are working fine. I'm going to need to start doing something smarter with these full-text searches. I think doing some indexing at write time is the best bet -- that should probably speed stuff up quite well. But for the time being the processes will run, if slowly. The only bummer is now I have to go dig out all the mutex-y lock-y stuff I wrote earlier. tags:

Aigars Mahinovs: Next day means next week?

The Dell saga goes into second stage. Despite me having a priority XPS next day on-site warranty it took three days, one click-trough of on-line wizard, two emails and three phone calls to get the collection of my broken laptop going. And now it will only be collected on Monday. Doh! I wonder how much it will actually take from the first problem report until I get my system back into a fully functional state. I was counting on being up and running by the end of the week, but apparently that is not happening.

10 August 2006

Martin F. Krafft: Through with XFS

I am through with XFS, once and for all. Well, at least for laptops. I still think it's a good filesystem when you can ensure that the power never goes, and your hardware is reliable, but it's just not adequate for laptops or even desktops. I ran into some serious problems a while ago, but managed to recover. Two nights ago, however, three XFS filesystems on my laptop decided to blow up and left my system thoroughly broken. I guess as the hibernate maintainer, I should really start doing my tests somewhere else than my main system... It all started out with a dist-upgrade and this output:
dpkg: error processing /var/cache/apt/archives/dpkg_1.13.22_i386.deb
(--unpack): unable to make backup link of
'./usr/share/man/man1/dpkg-deb.1.gz' before installing new version: Unknown
error 990
Looking at /usr/share/man/man1, I started to anticipate the apocalypse:
# ls -l /usr/share/man/man1
total 7956
?????????? ? ? ?    ? ? ? 7zr.1.gz
?????????? ? ? ?    ? ? ? 822-date.1.gz
?????????? ? ? ?    ? ? ? CA.pl.1ssl.gz
?????????? ? ? ?    ? ? ? Defoma::Common.1.gz
So I look at the log, and amidst kernel oops notices, there's this lovely cookie:
Filesystem "hda6": Corruption of in-memory data detected.  Shutting down
filesystem: hda6
Filesystem hda6 is /usr, so at that time I figured "it could have been worse", booted to single user, and remade the filesystem with the intention to simply reinstall all packages... when I found /var/lib/dpkg/info to be in similar condition. The rest of /var seemed fine, but I resolved then that there was no hope in reviving this system. Fortunately I brought an external drive that had just enough free space to hold my /home and some other stuff, but since USB is really slow when it comes to shifting large amounts of data, I decided to do something productive in the mean time and to answer some outstanding mails. It wasn't difficult to get SSH back up, so I started to work on a remote machine and used the time efficiently. Some time later, though, I got confused in the mist of screen sessions and was browsing my home directory on the laptop, thinking I was elsewhere (my home directories are mostly synchronised), when I noticed a directory in similar condition as the above. Oh shit. Imagine my pain and fear as I first thought my remote machine was also dying, imagine the sigh when I found out I was on the local filesystem, and imagine the shock when I realised that /home was also affected by the XFS breakage... A glance around /var confirmed that the XFS breakage was actually spreading and had now affected three filesystems on this machine. Fortunately, by that time, I had copied everything to the external drive, and decided to put my laptop and myself to sleep. I woke the next morning to the task of reinstalling the thing and decided to be optimistic about it. After all, a reinstall would mean I could finally try partman-crypto and encrypt my laptop's data to protect against leaking sensitive stuff in the case of loss or theft of my laptop. The installation was not as painless as I had hoped, but that was mainly because I ran into a known problem with the graphical installer and partman-crypto, which does not allow to set up volumes with random encryption keys (e.g. swap; see the forthcoming announcement for the beta3 release of the installer), and a bunch of smaller bugs. I had to restart the installation with the traditional frontend to get what I wanted, but other than that, I was very impressed with what our installer development team has accomplished! And a special round of gratitude to Frans Pop for not losing his patience while helping me on several occasions throughout the process. Now, 24 hours after the incident, I am back to normal with a fresh laptop and no data lost (except for one directory which I pulled from a mirrored remote machine; it had no local modifications (so why did XFS screw it up anyway?)). The fonts are all jaggy, so there's something I have to figure out. All things considered, I am sad to have lost 24 hours, but I can also relax more now, without fear of further XFS breakage or loss of private data. Update: Oh, and despite this, I did choose ext3 for all my laptop's filesystems. JFS was really cumbersome and slow last time I tried it, and I surely would not touch RazorFS after experiencing serious data loss on numerous occasions. Update: Two responses so far. Full ack for Julien (except for him laughing at me), Ingo's post warrants a reply though. First, ext3 is also journaled, and if you're about to say "yeah, but it's a hack on top of ext2, well... ext2 is damn mature, and journaling isn't really rocket science, so that "hack" isn't going to be too complicated. In fact, I like the idea of journaling being an option rather than a built-in feature. Second, of course you're supposed to keep backups. But since you keep backups, my top requirement of a filesystem is not "how to get the data back", but "how to ensure it does not break. If it breaks, I can reinstall and restore from backup, but that's a certain amount of time lost. If it doesn't break, well, that's like stealing a little something back from death then, isn't it? Third, I do follow the linux-xfs mailing list, but so what? I did not have write cache enabled, and I was running the 2.6.17.7 kernel at the time of the mishap. Lastly, you point to "excellent tools" to recover the filesystem. I am not sure how excellent xfs_repair really is when it reports "bad magic number 0x0 on dir inode 4696727" during the run, claims to have fixed it, I mount the filesystem, unmount it, run xfs_repair again and get the same message. No filesystem is perfect, and as we know from Biella's problems (among many others, ext3 is no exception. But we did get her data off! So then it's really an open field again, crap filesystem against crap filesystem. I guess at this point it helps to know that ext3 actually follows VFS semantics, while on XFS, a completed sync() syscall does not actually mean it has written the data to disk (see e.g. #317479). And then there are bugs like #239111... ext3 it is for now. If that let's me down, I'll try JFS. If that fails and noone has actually implemented a proper filesystem, I might have a go myself. Haha. Update: Alceste Scalas adds:
Ingo is right when he says that every filesystem has bugs --- but bugs apart, the design of Ext3 (i.e. its physical-block journaling) makes it a far more reliable choice for desktop and laptop PCs, expecially for people without an UPS. An Ext3 filesystem could only crash because of a bug or an hardware failure, while an XFS filesystem can be trashed even without bugs or hardware failures, due to the unavoidable consequences of a power loss on PC-class hardware.
He also alerted me to this mailing list post, which compares data=ordered journaling of ext3 (which almost noone does for performance reasons) with XFS and RazorFS. Update: You may also be interested in this post. Update: Otavio Salvador points me to this FAQ entry, which SGI must have added very lately. It explains how to deal with the directory corruption that was part of my problem. I guess I would have liked to know earlier, but I consider the outcome with dm-crypt + ext3 a win anyhow.

Bernhard R. Link: Graphic Libraries

Wouter Verhelst asked why simple games are so slow nowadays.

I think the problems are in the libs. All this modern stuff tries to become more and more modern, and get more and more stuff out of all those new render extensions, direct graphics and hardware accelerations. There simply is no way to decide which way is faster, so libraries have to guess. So it is no suprise things go wrong. And the place they go wrong are of course not the fast computers, but the older stuff, that does not has those nifty accelerations and no fast CPU to cancel it out.

Another disadvantage are all those "portable" libaries. SDL for example needs three connections to the X server before it does anything. Three times etablishing a connection, checking of security cookies, and so on. Its API looks like living with windows, or never intended to be use for anything other than full-screen mode. (You want to find out how large the window is? Why should you be able to when you said the window cannot be resized?)

QT likes to use extensions, too. I don't know if it is its fault or newer X servers, but the newer your installation gets, the slower 2D games using QT can become. (Note the can, if you have the right graphics card, lucky you, if you have the wrong one, bad luck). To be fair QT is not supposed or designed for 2D games. On the other hand I don't know what it is supposed to do other than being a C++ compiler benchmark measured in hours.

GTK was such a promising design. Object orientated (widget classes are one of those very few things were object orientated can be used with more advantages than disadvantages) but still plain C, small and looking like designed for X. To be fair, I do not even know how well it performs, as the ever increasing library cancer drives me away. From the "users should not be able to change their homedir, that would be far too much the Unix way" glib, over all this miriad of differt little libraries, all moving all the time, spewing their headers in so many different directories a compiler invocation folds three time around your terminal.

Well, enough ranted. My next graphical program will use Athena Widgets. I only have to hope all this reanimated X development in the last time will not pull xlib away from under out feets in the future...

Next.

Previous.