Search Results: "will"

13 April 2008

Patrick Winnertz: Spam Contest Update

Some weeks ago I post about a spam contest where I participate. This contest is now running for several weeks. (It will be finished after 5 weeks). The aim is to get as most as possible spam to the emailadress . (My is winnie@qsc218.credativ.com). Atm I'm the second... I've ~140 spam mails and only 1 virus in my mailbox Noel, who is on the first has ~150 spam mails and ~10 viruses in his mailbox :-S The winner of this contest will get a free t-shirt (with a cool text on it). Yeah... it would rock if you can distribute this emailadress a bit more, so that I recieves more spam ;-) Thanks!!

Pablo Lorenzzoni: e-fisl

I ve been involved in TVSL (Free Software TV a streaming infrastructure for the fisl) since its beginning This time, while searching a way to embed IRC into a webpage for a internal project, I discovered mibbit an interesting IRC widget. Then I thought, It would be interesting to have that for fisl ... this is how I put together e-fisl. e-fisl is just a webpage with an embedded cortado player (via the beautiful MetaVid library ) and mibbit widget. I put it together just a few minutes ago, but I suspect it is going to be interesting to watch how people use it (the mount-points for the rooms are still not available as you ll notice). I am planning to have a bot in the #fisl channel to collect questions from the remote attendees ... I just have to check with the rest of the organizing committee if it will be possible to read these questions for the speaker during the session. It would be great

Gunnar Wolf: Silent soundtracks

Vicm3, you know I'd probably ignore this, as following internet memes goes against my principles. But what are the principles there, if not to break them?
Ok, so what you request is, basically, to get a list of sounds to build my life's soundtrack. Following the list you mentioned, it is quite exhaustive, creative and long.
In my case, some other time, I'd probably jump over some über-sarcastic Leo Masliah and the like. Particularly, I would not ever talk about my life without his Todo as .
But not today.
Today, I'd love my life's movie to be an old-fashioned, mute movie. Yes, quite in line with the nice grey life theme I've had on my blog for several months... I'd love having a nice, quiet, mute movie, just letting me live along, think a bit, work a bit... Settle down on too many things, lead to some peace.
No, this message bears no dedication to any character or person I have or will meet. Just inner my mood and needs.

John Goerzen: Backup Software

I think most people reading my blog would agree that backups are extremely important. So much important data is on computers these days: family photos, emails, financial records. So I take backups seriously.
A little while back, I purchased two identical 400GB external hard disks. One is kept at home, and the other at a safe deposit box in a bank in a different town. Every week or two, I swap drives, so that neither one ever becomes too dated. This process is relatively inexpensive (safe deposit boxes big enough to hold the drive go for $25/year), and works well.
I have been using rdiff-backup to make these backups for several years now. (Since at least 2004, when I submitted a patch to make it record all metadata on MacOS X). rdiff-backup is quite nice. It is designed for storage to a hard disk. It stores on the disk a current filesystem mirror along with some metadata files that include permissions information. History is achieved by storing compressed rdiff (rsync) deltas going backwards in time. So restoring "most recent" files is a simple copy plus application of metadata, and restoring older files means reversing history. rdiff-backup does both automatically.
This is a nice system and has served me well for quite some time. But it has its drawbacks. One is that you always have to have the current image, uncompressed, which uses up lots of space. Another is that you can't encrypt these backups with something like gpg for storage on a potentially untrusted hosting service (say, rsync.net). Also, when your backup disk fills up, it takes forever to figure out what to delete, since rdiff-backup --list-increment-sizes must stat tens of thousands of files. So I went looking for alternatives.
The author of rdiff-backup actually wrote one, called duplicity. Duplicity works by, essentially, storing a tarball full backup with its rdiff signature, then storing tarballs of rdiff deltas going forward in time. The reason rdiff-backup must have the full mirror is that it must generate rdiff deltas "backwards", which requires the full prior file available. Duplicity works around this.
However, the problem with duplicity is that if the full backup gets lost or corrupted, nothing newer than it can be restored. You must make new full backups periodically so that you can remove the old history. The other big problem with duplicity is that it doesn't grok hard links at all. That makes it unsuitable for backing up /sbin, /bin, /usr, and my /home, in which I frequently use hard links for preparing CD images, linking DVCS branches, etc.
So I went off searching out other projects and thinking about the problem myself.
One potential solution is to simply store tarballs and rdiff deltas going forward. That would require performing an entire full backup every day, which probably isn't a problem for me now, but I worry about the load that will place on my hard disks and the additional power it would consume to process all that data.
So what other projects are out there? Two caught my attention. The first is Box Backup. It is similar in concept to rdiff-backup. It has its own archive format, and otherwise operates on a similar principle to rdiff-backup. It stores the most recent data in its archive format, compressed, along with the signatures for it. Then it generates reverse deltas similar to rdiff-backup. It supports encryption out of the box, too. It sounded like a perfect solution. Then I realized it doesn't store hard links, device entries, etc., and has a design flaw that causes it to miss some changes to config files in /etc on Gentoo. That's a real bummer, because it sounded so nice otherwise. But I just can't trust my system to a program where I have to be careful not to use certain OS features because they won't be backed up right.
The other interesting one is dar, the Disk ARchive tool, described by its author as the great grandson of tar -- and a pretty legitimate claim at that. Traditionally, if you are going to back up a Unix box, you have to choose between two not-quite-perfect options. You could use something like tar, which backs up all your permissions, special files, hard links, etc, but doesn't support random access. So to extract just one file, tar will read through the 5GB before it in the archive. Or you could use zip, which doesn't handle all the special stuff, but does support random access. Over the years, many backup systems have improved upon this in various ways. Bacula, for instance, is incredibly fast for tapes as it creates new tape "files" every so often and stores the precise tape location of each file in its database.
But none seem quite as nice as dar for disk backups. In addition to supporting all the special stuff out there, dar sports built-in compression and encryption. Unlike tar, compression is applied per-file, and encryption is applied per 10K block, which is really slick. This allows you to extract one file without having to decrypt and decompress the entire archive. dar also maintains a catalog which permits random access, has built-in support for splitting archives across removable media like CD-Rs, has a nice incremental backup feature, and sports a host of tools for tweaking archives -- removing files from them, changing compression schemes, etc.
But dar does not use binary deltas. I thought this would be quite space-inefficient, so I decided I would put it to the test, against a real-world scenario that would probably be pretty much a worst case scenario for it and a best case for rdiff-backup.
I track Debian sid and haven't updated my home box in quite some time. I have over 1GB of .debs downloaded which represent updates. Many of these updates are going to touch tons of files in /usr, though often making small changes, or even none at all. Sounds like rdiff-backup heaven, right?
I ran rdiff-backup to a clean area before applying any updates, and used dar to create a full backup file of the same data. Then I ran apt-get upgrade, and made incrementals with both rdiff-backup and dar. Finally I ran apt-get dist-upgrade, and did the same thing. So I have three backups with each system.
Let's look at how rdiff-backup did first.
According to rdiff-backup --list-increment-sizes, my /usr backup looks like this:
        Time                       Size        Cumulative size
-----------------------------------------------------------------------------
Sun Apr 13 18:37:56 2008         5.15 GB           5.15 GB   (current mirror)
Sun Apr 13 08:51:30 2008          405 MB           5.54 GB
Sun Apr 13 03:08:07 2008          471 MB           6.00 GB

So what we see here is that we're using 5.15GB for the mirror of the current state of /usr. The delta between the old state of /usr and the state after apt-get upgrade was 471MB, and the delta representing dist-upgrade was 405MB, for total disk consumption of 6GB.
But if I run du -s over the /usr storage area in rdiff, it says that 7.0GB was used. du -s --apparent-size shows 6.1GB. The difference is that all the tens of thousands of files each waste some space at the end of their blocks, and that adds up to an entire gigabyte. rdiff-backup effectively consumed 7.0GB of space.
Now, for dar:
-rw-r--r-- 1 root root 2.3G Apr 12 22:47 usr-l00.1.dar
-rw-r--r-- 1 root root 826M Apr 13 11:34 usr-l01.1.dar
-rw-r--r-- 1 root root 411M Apr 13 19:05 usr-l02.1.dar

This was using bzip2 compression, and backed up the exact same files and data that rdiff-backup did. The initial mirror was 2.3GB, much smaller than the 5.1GB that rdiff-backup consumes. The apt-get upgrade differential was 826MB compared to the 471MB in rdiff-backup -- not really a surprise. But the dist-upgrade differential -- still a pathologically bad case for dar, but less so -- was only 6MB larger than the 405MB rdiff-backup case. And the total actual disk consumption of dar was only 3.5GB -- half the 7.0GB rdiff-backup claimed!
I still expect that, over an extended time, rdiff-backup could chip away at dar's lead... or maybe not, if lots of small files change.
But this was a completely unexpected result. I am definitely going to give dar a closer look.
Also, before I started all this, I converted my external hard disk from ext3 to XFS because of ext3's terrible performance with rdiff-backup.

Joey Hess: secret code

I'm still following The Lost Ring, but it got a little too intense today when someone who was not very familiar with what was going on was recruited to pick up an envolope hidden in an umbrella stand at a gallery in Hong Kong became disturbed by the contents and destroyed it. All we're left with is some fuzzy pictures. blur This fragment contains a code. If we can figure out enough of the code, it can be used to download a digital copy of the paper that got torn up. It's a kind of checksum, was written with a typewriter (that writes capital letters a bit higher than the rest of the line, and tends to fade bottoms of numbers), and will look something like "SS71/124P/84JH/HFGS/CEAS". After playing with the gimp, I'm fairly sure that the code starts out "C??L/T4GA/L". enhanced In the movies, this is easy, you just zoom in on the blurry picture until you can see fingerprints. In the "real" world, it's gonna be tricky.

Axel Beckert: New mobile phone and what the Nokia 6310i did better than the E51

Habits control our choice sometimes more than we would like to admit… New mobile phone Since about two weeks ago I’ve a new mobile phone. The Nokia E51 will replace my slowly dying Nokia 6130i. I knew I needed a new mobile phone when my 6310i started to turn off itself shortly after I turned it on. I needed up to about ten times switching it on to make it stay on. Sometimes it already switched itself off before I could enter the PIN. Looks like a loose contact, but I never figured out where it is. Although I know about Nokia’s behaviour in Germany, I still had to buy a Nokia, because after using a 6130 (the GSM 1800 only clone of 6110 and 6150), a 6210i and the already mentioned 6130i over the last decade, I got so used to how Nokia mobile phones are navigated and how you type with Nokia phones (blank on 0, point and comma on 1, case changing on #), everything else (especially those with blank on 0 and case changing on *) would be worse than the half-dead mobile phone, I’m currently using. Spoilt for choice So which Nokia? For a long time I refused to buy a mobile phone with a camera or radio in it. But since the E70 was no more available (and is said to have quite buggy software) and the E61 has been replaced with the E61i, there are no more smartphones without a camera, at least not from Nokia. But I also found some useful uses of camera phones. After a while I could track down the number of choices to four: Communicator E90, E61i, E65 or E51:
Sizeasy Size Comparison: Nokia E90 vs Nokia 6310i vs Nokia E61i vs Nokia E51 vs Nokia E65
The picture above shows that the main differences of those models is size: Although having a QWERTY keyboard on the phone would be nice (for ssh, Jabber, the web, etc.) and the E90 being only slightly bigger than the 6310i on the paper, the size difference to the 6130i is more than only noticeable since the 6310i tapers off at the top. Besides, for the price of an E90, I get an E51 and an EeePC together… (Thanks to maol in whose blog I read about Sizeasy.) The E61i also has a (very small) QWERTY keyboard and is primarily only much wider than any of the other phones. It even has no bigger screen resolution than the E51 or E65. (Only the no more available E60 – a normal monoblock smart phone like the E51 – had a better resolution: 352x416 pixel instead of 240x320 pixels.) And since I usually carry my mobile phone in my trouser pockets, width matters most. So I had the choice to either get a phone which is too big for my trouser pockets or one without a QWERTY keyboard. The I remembered those foldable external keyboards for PDAs. There are at least three different makers of foldable bluetooth keyboards said to be working with Nokia Symbian S60 3rd Edition phones, so a QWERTY keyboard on the phone itself was no more important. (Only passwords will need to be entered over the number keypad since I don’t want to broadcast them… ;-) The choice between E65 and E51 was made easier by their reviews (E65, E51) at Xonio: The E65 seems to have not that good standby and phoning times while the E51 seems to be quite good regarding endurance. I looked through the usual shops around Z¨rich HB: Swisscom Shop, MobileZone, Phonehouse: All had the same prices (about CHF 250 for a two years contract at CHF 25 per month), except that Phonehouse had no E51 available in the shop. Interestingly digitec had a much lower price (CHF 100 for the same contract) and the choice of color (the shops always only offered one color), so I ordered a black one there. Converting a prepaid card to a postpaid contract isn’t that easy I wanted to change from a prepaid card to a postpaid contract, both at Swisscom, so I already own a SIM card. But digitec only offers new contracts including a SIM card or contract renewals, but no switching to a contract with keeping the number. And a new SIM card costs CHF 40 extra in their online shop. So I called their hotline and asked. The answer was: I need a new SIM card since prepaid SIM cards can’t be converted to postpaid SIM cards (but can be used with different providers). When I came to the shop, the employee needed three tries to fill out the Swisscom form for the number migration and still did it wrong somehow. No postpaid contract acknowledgement from Swisscom after two workdays. So I called their hotline. They told me, the wrong SIM card number has been entered and I need to make digitec to enter the correct one. A few days later back at the shop they were overextended. After a while an internal e-mail was on the employee’s screen which clearly stated that in case of prepaid to postpaid conversions (and a few other cases) no new SIM card must be given out and if this happens too often for the same employee he will be charged the CHF 30 a new SIM card costs digitec… (So they have a 25% margin of every sold SIM card…) About one hour after they closed their doors (I was there about ten minutes before shop closing time) Swisscom had accepted the contract changes and I had a credit note of CHF 40 for the erroneously sold SIM card. And the mobile phone became even cheaper than in all the other shops. :-) New gadget, new features So after a week, I can say that in general I’m quite happy with the new phone. It has a nice web browser, an IMAP over SSL capable mail reader and a feed reader, it can connect to the internet via WLAN and the 240x320 resolution isn’t as bad as I expected. I already have a Symbian port of PuTTY on it and sshing into my workstation works fine, even if I currently only have the phone keyboard and T9 as input device and helper. I also have Opera and Opera Mini installed, but to my own surprise the included web browser from Nokia (said to be based on Apple’s HTML rendering engine WebKit which itself is based on KDE’s HTML rendering engine KHTML) is way better, especially in navigation, even although Opera Mini 4.1 caught up a little bit in comparison to Opera Mini 4.0. (Hey, and you hear that from a web browser fetishist and Opera fan!) The only thing which currently really bugs me on the builtin web browser is that even an enforced updating of my feeds sometimes just results in nothing. Maybe a firmware upgrade can help… As barcode reader, I have installed the i-nigma Reader. (The Quickmark QR Code Reader download just showed the content of something which seems to be a Windows DLL instead of downloading it. *plonk*) It’s amazing how fast the i-nigma Reader recognizes a 2D barcode from Semapedia on my laptop screen. Of course I also have ScummVM on my new Symbian phone. I will also play around with Amora which turns your Symbian S60 mobile phone into a remote control for your presentations on Linux (or any other unixoid operating system) running laptop as soon as I managed to get an amd64 Debian package of it. (Currently there seems only i386 packages and no source packages available, but this may be due to the “Show all downloads” link gives a server error…) Oh, and many thanks to foosel since I found Amora in her blog. BTW: Any recommendations for a free (preferably free as in DFSG) Jabber and/or IRC client for Symbian S60 3rd Edition? I already downloaded and installed Gizmo5, but somehow it refuses to work each time I try to create an Gizmo account. Accessories Since the E51 has no QWERTY keyboard, I ordered a Nokia SU-8W Foldable Bluetooth Keyboard at Brack. It was a little bit bigger and thicker than expected, but OTOH the metal case seems to be very stable and robust. Since this keyboard is designed to fit on Nokia mobile phones it also has the two Nokia typical soft keys and the middle select key. So nearly all phone functions can be used with the external keyboard, even turning off the phone’s key lock. Only locking the phone’s keys again doesn’t work via the external keyboard. Additionally I equipped my E51 with a 2GB microSD card. Probably a bluetooth headset for driving will come once, too. What the Nokia 6310i did better than the E51 There are a few things which are annoying regarding Nokia’s UI consistency over the years. That the backspace key is no more the right soft-key is ok. It took me only five tries to get my e-mail account setup without hitting the abort key (no “Do you really want to abort?” questions ;-) instead of backspace key. But what’s really annoying is that the menu navigation via number keys only works for the first level and no more for all levels. So no more “menu 4 4 4” to switch to manual network selection. It’s also annoying that you (or at least I ;-) can’t enter phone numbers as the recipient of SMS directly anymore, at least those SMS never reach their receipient neither do I get an error message. Same counts for the missing acoustic acknowledgment of locking the keypad. You only hear pressing the first key but not even the second key anymore. And if you press the volume keys on the side of the phone, you also have neither acoustic nor visual feedback if you pressed them hard enough so that the volume changed. The 6310i had visual and acoustic feedback. The alarm clock in the E51 seems to be artifically castrated: After having pressed the snooze button two or three times there is no more snooze button on the right the soft key anymore. With the 6310i you could press snooze as often as you want. Only disadvantage with the 6310i in regards of the alarm clock: the snooze time was much too long (10 minutes)… Oh, and what’s also annoying is that I can’t move over the whole addressbook of my 6310i in one piece but have to send each contact via bluetooth or infrared and then the E51 even get’s the contact names mixed up: ‘Beckert, Axel’ becomes ‘Firstname: “Beckert,” Lastname: “Axel”’… Great! I have to edit nearly all contacts manually… The cut and paste feature helps here, but it takes about one to two dozens of key clicks to copy the whole content of a filed into the clipboard… The E51 can run several applications at the same time and that you can switch between them any time. While that’s generally a nice feature I started using quite soon, it’s sometimes annoying that you have to wait up to a second or so after you’ve chosen some menu entry until you can do anything further. Also the screen often flickers while loading applications, showing them, then showing only the background, showing them again, etc. … but finally I already got used to the new mobile phone so much that I already have the feeling that my old 6310i became more thick since I have the E51. (Won’t think about how thick the about ten years old 6130 feels now compared to the slim E51… :-)

Wouter Verhelst: Film: the story of the weeping camel

Just now, a movie was on TV. This was a non-fiction film, but it was still a story, rather than just a simple documentary or something; it only wasn't scripted or anything similar. The film is about a group of shepherds in Mongolia, who not only own sheep, but also camels, for transport. One of these camels gave birth to a rare white camel; however, the mother does not accept the young for some reason, despite the shepherds' best efforts. Eventually, however, they did succeed in calming the mother, and persuading her to accept the young. What really blew me away, however, is how they did that: By using music. Incredible. So, next time you need to calm down a camel, here is the procedure:
  1. Go by camel to the nearest town, and fetch a violinist.
  2. By way of a blue piece of cloth, attach the violin to the camel's side, and allow the wind to blow against the snares, so that it makes sound. The camel will start to make sound too, the tone of which will sound suspiciously close to the tone produced by the violin.
  3. Get a soprano to sing, while having her gently touch the camel's side. Preferably one who can sing incredibly beautiful. No, really.
  4. After half a minute or so, have the violinist join in.
  5. After yet a few more minutes, slowly and gently bring the young to the mother. Have the young drink some of the milk.
  6. The mother will now accept the young, while she was aggressive if you even brought the young anywhere near her.
Words cannot express how incredible this is. I mean, sure, music can have an effect on one's emotions; and if this is true for human beings, I'm sure the same can be said for animals. But this? Whoa.

Russell Coker: Debian Work and Upstream

Steve Kemp writes about security issues with C programs [1]. It seems obvious that if you are going to do something that is overly tricky (such as anything related to setuid programs) then you should have a good knowledge of what you are doing. Steve goes a little further and suggests that anyone who doesn’t know C should not package a C program. Andrew Pollock is a Debian developer who doesn’t program in C and yet packages some C programs, he explains why he thinks that it’s correct to forward C coding bugs upstream [2]. In this debate I have more sympathy for Steve’s position. Security is one of the most important things in software that we develop, if you can’t develop secure software then IMHO you shouldn’t distribute any software. Although it should be noted that the two posts in question don’t directly conflict. Steve’s main point (your should know the code well to do something relevant to security) does not directly conflict with Andrew’s main point that a non-C coder can maintain the Debian packaging files and forward bug reports related to C code upstream. In the more general case it’s often impossible to know all languages used in a project. It’s not uncommon for a single project to have core code written in C, a configuration file format (which is a programming language), a Makefile (GNU Make is a fairly complex interpreter), Autoconf/Automake (even more complex tools for creating complex Makefiles, and then some Perl or Python to manipulate input or output data. The SE Linux project has code in all those languages plus the M4 macro language. It seems obvious that in a large project the number of people who are capable of understanding all languages which are used is going to be a small sub-set of all Debian Developers. It also seems likely that someone who knows some of the languages really well may be capable of doing a better job than someone who has a passable knowledge of all of them. For the vast majority of my work in Debian I have been a member of the upstream project in question (for Bonnie++, Postal, Portslave, Maildir-bulletin, and logtools I’m the sole upstream developer). Often I start maintaining a package with the intent of doing the minimum needed to keep it maintained in Debian but then end up doing upstream work, for example I briefly had write access to the CVS repository for pppd when I was maintaining it and I had write access to the KDE CVS repository when I was working on KDE packages (which incidentally was before I became an official DD). When I first started working on the SE Linux project I aimed to merely package the code in question for Debian. I was not planning on spending seven years doing upstream work! When I’m working on a project I spend my time working on the things that most need attention. That often means that I get diverted from Debian packaging bugs (which are often minor issues) to work on upstream bugs. In many ways my work practices make me a Debian user and upstream developer who also does Debian packaging rather than a dedicated DD. This of course does have a detrimental affect on the quality of my Debian packaging work - but overall I believe that it’s best for the users! As an upstream developer who is focussed on Debian there are significant advantages in being a DD. I can immediately upload a new package to Unstable without any delay, and there is the potential to take over a related package (either be given the package or NMU) if it’s the best way to get around a roadblock. Another benefit is that in certain limited situations I can speak on behalf of Debian (in terms of packages I “own”). When it comes to upstream development of SE Linux I can make decisions about how things will be done in Debian and work with other upstream developers to ensure that cross-distribution compatibility works reasonably well. It seems to me that a fairly ideal process for managing Debian development would have the people who are capable of the hard coding doing so and some people who haven’t got specific coding skills working on the packaging. I would be very interested in receiving patches related to the Debian packaging of the packages I “own” (in Debian it’s widely regarded that a man’s package is his castle) so that I can spend more of my time on the C coding. I’m not bothered about NMUs (a Non-Maintainer Upload - is when someone else uploads a new version of one of my packages to fix a bug). If anyone would like to NMU one of my packages they are welcome to do so as long as there is a suitable combination of bug urgency, simplicity of the fix, and lack of response from me. If someone wants to start NMUing my packages to fix bugs reported by the latest version of Lintian in Unstable (Lintian is the Debian tool to automatically check for packaging bugs) then that’s OK. Of course there are a variety of other situations that DDs sometimes find themselves in. There have been situations of overtly hostile upstream developers. I try and avoid associating with people who have certain difficulties in interacting with others. If someone is going to change their license and try to back-date the change or create a license that makes it difficult to distribute modified versions of the code then I’m inclined to avoid even using the software, let alone being involved in developing it. This means that the software that I use in any serious way has reasonable people doing upstream development who welcome new people to join their work.

Clint Adams: The Legend of Bagger Baggs

One day the Stranger arrived. He was a tall and lanky teen, his face peppered with acne and sparse pubescent hair. He wore a wide-brimmed hat, a long coat, a scarf, and he was Strange. Some newcomers prefer to observe, to gauge the breadth and nuance of Social Custom, and to keep low profiles until they are comfortable enough to risk a misstep. This newcomer preferred to wield a bean bag, and to go door to door, knocking, introducing himself, and asking if there might be any nice conversation lurking inside in which he might join. Predictably, most people were horrified, frightened, and offended. They responded in a hostile fashion, and branded him Bean Bag Boy, or Bag Boy for short. A few others viewed him instead as a free spirit, a visionary, a unique character, and a Cool Guy. Perhaps they bought into the crap that society spews forth as part of its Campaign for Cognitive Dissonance. Perhaps they were just confused. Those that admired him branded him Doctor Who, a moniker of affection and respect. I will never understand this, even though I know which drugs they were on (Prozac, Zoloft, LSD, THC, psylocybin, and PCP, respectively). Bag Boy learned to keep mostly to those who appreciated his insane ramblings. Had he been motivated and competent, he probably could have been a minor cult leader. Instead, he fell out of public view for a while. When he returned, he had two younger companions: a boy and a girl. It became immediately obvious what to call them. The female, whose name, eerily enough, was Baggs, would be Bag Girl. Since Bag Boy already possessed that name, the male would have to be Little Bag. Little Bag was an enigma unto himself, and went on to have many adventures of his own. Once he called me a Zenmaster, so I will refrain from mentioning him for a long time. Bag Girl was no less a character. She detested being called by either her given name or her surname, and instead preferred to brandish an agglutinative designation of her own choosing: one part temporal adjective, one part finite act of performance. This contrasted delightfully with her appearance, which was not dissimilar to a three-foot-tall chinchilla. Most were content to call her by her chosen appellation, though some would add her real surname (to which she fumed bitterly), and one insisted on calling her by her given name, as a hostile act of hatred. Bag Girl's main hobby was a menagerie of characters that she explained were her multiple personalities. Unlike persons suffering from dissociative identity disorder, Bag Girl had full knowledge of her personalities and their doings. One of these personalities was a 90-year-old elf named Galiganda Dulin. Another was a man named Sayjon, who bore a suspicious resemblance to Pink Floyd's fascist alter ego from The Wall. In fact, Bag Girl had been profoundly affected by The Wall, although she had watched it while on LSD, so interpolation based on these data may be tainted.

Clint Adams: Mojado en ti

You sweep your toes across the sand as you stare at the ebb tide. Your gaze is focused but your mind is elsewhere. To be more precise, your mind is hopping somewhat rapidly between several different elsewheres. Your companion is standing nearby, blissfully oblivious. You muse that he is in the and you are in the . It is clear that you have been pretentious since you were young. You would prefer to call it precocious, but that term is no longer applicable. Your friends think that you have a sweet deal and would be a fool to throw it away. He treats you well, mostly. At least he spends lots of money on you and lavishes you with attention. Of course he does get a bit possessive. He thinks that with all the effort he puts into wooing you, he has earned some high status. Maybe he has. Of course, you hate him a little for putting you on a pedestal. Is it really you whom he sees, or some imaginary creature of his fantasies, some ideal to which you can never approach? Your ex treated you quite poorly by comparison. He was a liar, but in some ways he, if not his words, was more honest with you. There was something else that drew you to him, some reason you kept having affairs with him even though it upset your other boyfriends. The guy who treats you the worst, though, is the one you have been in love with for ten years. You are unaware of what has caused him to lash out at you, what unleashes his venom every time you sneak away to make yourself vulnerable to him. He acts like it is obvious, but your reasoning cannot produce a reasonable hypothesis. At last your consciousness lands on the man you secretly crave the most, so much that you never tell your friends about him. You think you would give up everything if he only asked, but he never asks. You have never been involved with him, and you fear that he would reject you cruelly if you let him know you were interested. You think that that would destroy you. You are perhaps a bit prone to melodrama. At any rate, you need to make the smart choices, and do the things that you would do if you were normal. So when your beau leans in for a moonlight kiss, you tell him how happy you are. Maybe someday you will be.

Clint Adams: Write-in campaign

Since Ari was too incompetent to successfully complete a self-nomination this year, I have taken the liberty of writing his platform for him against his will.
Ari's Platform What follows is a grassroots movement for positive social change through fostering and giving voice to initiatives and local activism, civic engagement, volunteerism, taking trendy Whole Foods tote bags to supermarkets that are not Whole Foods, and the broader motif of green, eco-friendly, environmentally-sound, community-based, issue-driven, civic-minded focus on saving the environment through awareness of energy and power. Even though recycling consumes lots of energy and pollutes the ground and water, do it anyway. You can make up for it by buying carbon offsets. You don't need to buy carbon offsets for aluminum can recycling, since that is actually good for the environment on a long-term basis, but you should, since it's Fun. Always recycle!
The worst team dynamics can be found in appointed teams. The best team dynamics can be found in self-selecting teams.
Give some thought to the teams (Small or otherwise) you observe. The self-selecting teams are well-oiled machines, competent and effective in every way. In stark contrast, the appointed teams are vulnerable to cronyism, acceptance of bribes, poor communication, pettiness, abuse of power, tunnel vision, xenophobia, and egomania. Who is appointing these teams? It should be stopped, and all teams should be self-selecting to avoid these problems. Face-to-face meetings and events are very important, but we are being terribly irresponsible by using planes, trains, and automobiles. We need to reduce our carbon footprint, so bicycles should be the preferred tool of transportation, and therefore travel sponsorship should be allocated according to these categories: Spandex, Chamois, and Mudflap.
  • Self-nomination
Currently, too many people nominate others for tasks. This leads to an unfortunate mix of egoists and people that no one believes can do the job. Even the nominators have no faith; the only reason they are nominating others is that they know it would be necessary to nominate themselves otherwise. Instead, everyone should take it upon themselves to self-nominate for any position they can, whether they are qualified or not, as it will look good on college transcripts. Only this can ensure that we get the most qualified applicants. Remember, if you do not claim to know better than everyone else, no one can trust you. Relations with SPI have been strained for quite some time, probably because their routine operations resemble a bad episode of The Simpsons. This can be fixed by delegating five hundred people to show up to each month's meeting and bikeshed about American politics and modern fashions.
  • Conservation of power and hats
There have been many attempts to defang concentrations of power and influence and all this does is prevent things from getting done. The proper solution is to give as many hats as possible to the people who get things done. They have already demonstrated that they are trustworthy by getting things done and by having hats, so there is no problem with giving them more hats. Ideally the hats would be fashionable. In order to prevent territorialism and cabals, each person with a hat should be able to give hats to anyone else, but only if the recipient already has a hat. If anyone collects 15 or more hats, he may crown himself High Milliner and proceed to award himself additional hats. Since women do not, as a rule, wear hats, they cannot participate in the hat exchange.
I do not agree with Ari's platform; therefore I will not be writing him into my ballot.

Clint Adams: They will hear me say as the pavement whirls

It was just like Christmas. I finished urinating on the Mother Church, then we headed over to Fenway for to do some trespassing. Snowflakes fell and swirled in the breeze, their eddies making that ugly fluorescent light seem pretty, so pretty. The crash of duckpins resounded through the night, and hipsters flashed jazz hands at one another. It was just like Christmas. Not one insalata 3ndy could be found.

Clint Adams: The dysthm of the night

I was walking under Union Square, listening to Hank Williams, when suddenly Hank was completely drowned out by the blaring of Hypnotic Brass Ensemble. You have no idea how sad I am that I can identify Chicago street musicians.

Uwe Hermann: Building custom Debian live CDs with live-helper / live-magic

live-magic settings
live-magic building an ISO If you want to generate a custom Debian live CD, including only the tools you want (and maybe additional tools you don't find in other live CDs) there's a really simple solution: live-helper. Creating a basic bootable Debian live CD ISO image in the current directory is as simple as:
  $ lh_config
  $ lh_build
That's it. The result will be a file called binary.iso, which you can either burn on a CD-ROM via
  $ wodim binary.iso
or test in QEMU using a command line like this:
  $ qemu -boot d -cdrom binary.iso
Of course there are many possibilities to customize the generated image to your likings, see the documentation in the Debian wiki, or the lh_config/lh_build manpages. Please note that live-helper can not only generate CD ISOs, but also bootable DVDs, images for USB thumb drives, or netboot images. There's also a nice GUI called live-magic which will make the process a bit easier if you don't like doing things on the command line.

Gunnar Wolf: Some Rails plugins: acts_as_magic_model

This is the third plugin I have been working on for Rails - It's the one that still needs most work to be fully usable (for what I originally envisioned it), but is almost there - I have not touched it (nor the other two I recently presented here, acts_as_catalog and Real FK because real-life has demanded my time on various other fronts.
Anyway, this is IMHO the most interesting of the three plugins I've written so far.
So, following what I did with the other plugins: You can go to acts_as_magic_model's main page, or jump straight to its SVN repo. And the basic description follows:
Rails plugin to allow for extensible models, where inter-model relations are inferred from the database's structure, and not necessarily from explicit declarations in the models.
This means, when one of your models acts_as_magic_model, this plugin will try to infer all the basic relations (has_many, belongs_to and has_and_belongs_to_many) its base table has with other tables in the database, adapting the model correspondingly. Using the plugin In order to use this plugin, you only have to declare it in your model. As an example, say you have the proverbial project-management system, where you have projects (each of which can be of several different types) and people, and a HABTM relation between people and projects. So, you have the following tables (expressed as migrations here):
    create_table :people, :force => true do  t 
      t.column :name, :string
    end
    create_table :project_types, :force => true do  t 
      t.column :name, :string
    end
    create_table :projects, :force => true do  t 
      t.column :name, :string
      t.column :project_type_id, :integer
    end
    create_table :people_projects, :force => true, :id => false do  t 
      t.column :person_id, :integer
      t.column :project_id, :integer
    end
Using acts_as_magic_model, you can skip declaring the relations in your models, like this: (of course, each of the classes still has to be declared in its own file)
    class Person < ActiveRecord::Base
      acts_as_magic_model
    end
    class Project < ActiveRecord::Base
      acts_as_magic_model
    end
    class ProjectType < ActiveRecord::Base
      acts_as_magic_model
    end
And the gaps will be filled in for you - that is, you can go on and ask for Project.find(:first).people, ProjectType.find(:first).projects.size, Person.find(:first).projects.map pr pr.project_type , and whatever you fancy.
In future versions of the plugin, I expect even to get rid to explicitly declare the class declarations.
Of course, you should be warned: Initializing a model using this plugin is quite database-intensive. It will clutter your logs, and it might be unbearable if you use it in development mode. Still, its convenience is very often worth it.
Its main uses should be when prototyping and when designing a system that needs to be flexible to the data models themselves - If you don't expect your system's data structures to be highly malleable, you should probably use acts_as_magic_model only as a prototyping aid.

Julien Blache: Getting things done on SANE again

There have been a number of discussions on sane-devel in the past months revolving around the SANE2 standard (still in development) and/or extensions to the current SANE1 standard. SANE2 is an effort that has been “ongoing” (on and off, mostly off, unfortunately) for a number of years already. This led to a number of questions being raised, most notably this one: do we need SANE2, or can we get away only with extensions to SANE1? Or should we just redesign the whole stack from the ground up?
This matter is undecided as of yet, but extensions to SANE1 are planned, being discussed or in the making for some of them. During the discussions, a fork of SANE has been announced, dubbed “SANE Evolution”. No idea where that is going, but it’ll probably end up being merged back into SANE in the end. So, in a nutshell, things are moving again (albeit slowly), which is good news considering the project was mostly asleep in recent times. To celebrate that (and because I now have total control over my free time again), I’ve been working on the network side of SANE again. In 2 weeks (3 week-ends, roughly): Turning saned into a regular daemon made it possible to clean up a good chunk of the code duplication that was introduced by my previous AF-indep/IPv6 work; the startup code is readable again. The Avahi support is (I hope) a very nice thing as, when enabled, configuration of the net backend on the client side is no longer needed. This is an experimental feature still and as such it’s disabled by default at build time. I have a couple of ideas to improve that feature, but this means saned will have to evolve even more so it’ll take some time. The WireShark dissector is a tool for working on enhancing the network protocol. It proved useful already with the information leak I spotted with it (though it’s minor). It’ll be a long work to extend the network protocol and implement that into saned and the net backend in a backward-compatible manner.

Pablo Lorenzzoni: Finally, I am back

I can t possibly summarize all that has happened to me since my last post. The short explanation is that I had to serve in Brazilian army for a year, and that kind of disorganized my life. While I was in the army, I was forbidden to blog, and when that year ended, my life was too messy to keep up and I ve been procrastinating my come back! Now, finally, I am back. Just in time, I would say. fisl9.0 is about to begin. For this come back, somethings changed: my blog engine (from Rodin to Mephisto), my Gallery (it s gone sorry!), my domain (I ve moved from my company s webserver to my own), I will be publishing some entries in portuguese (in a separate section)... Hope you all enjoy. Happy hacking.

Russell Coker: Car Sharing in Melbourne

Recently I noticed that some parking spots in the city area are reserved for car sharing. There seems to be two car sharing companies operating. Flexicar [1] costs $50 to join, has a $10 per month membership fee (which includes one hour of driving at a value of $12), and costs $12 per hour or $80 per day to drive a car plus $0.15 per Km if you drive more than 100Km in a day. They also have pre-paid plans which bring all the guesswork and complexity of mobile phone bills to car rental. Also they give discounts to members of the City Rewards [2] program which are greater than the membership cost, so anyone who plans to join them should join City Rewards first. To use a car you phone up or use their web site to make a reservation. Then you find the car you reserved at it’s designated location and swipe your card across the windscreen to unlock the doors (presumably it’s an RFID card). The glovebox has the key for the ignition as well as fuel cards for any fuel you use a BP, Shell, and Caltex petrol stations (presumably if you run low on petrol when not near those ones you end up paying). All you pay is the rental rate and any tolls for toll roads you use. When someone doesn’t return the vehicle to it’s designated spot on time there are penalty rates, which may include the cost of a taxi fare for the next person who had booked it. It seems like a really good idea that can save significant amounts of money for people who live in the central areas (the costs of maintaining and insuring a car are significant, as is the depreciation on a new car as an asset). The competitor is Charterdrive [3] which costs $25 to join (less than Flexicar but the same once you consider the discount), the same $10 per hour for 8:30AM to 5:30PM hours, and then cheaper rates for evenings and weekends. $25 for a night (5:30PM to 8:30AM the next morning) is good value if you want to drive home from work and then return the next day (if you work late then you might expect to pay $30 or more for a single taxi ride to get home). The weekend rate of $90 for 5:30 Friday to 8:30 Monday is also quite competitive, I expect that there are many people who only use a car on the weekend who could benefit a lot from this. $90 per weekend for 40 weekends a year (some weekends you would stay home or just use public transport) is $3600, insurance, registration, and basic maintenance of a car that you would want to own would cover most of that. Charterdrive does charge $0.20 per Km though for all journeys (with a discount rate of $0.15 per Km for long journeys on some plans), as opposed to Flexicar only charging $0.15 per Km for distances in excess of 100Km per day. Charterdrive seems to be a newer company and has a far smaller presence. But it’s business model seems a little different and the focus on renting cars for people to drive home means that some people might benefit from being members of both companies. The $0.20 per Km makes Charterdrive more expensive more expensive for most city use, and the discounts offered for Flexicar seem to make it cheaper for use during business hours. Charterdrive states that they have a deal with Red Spot Car Rentals [4]. It is not stated on their web site if you want to use one of their cars and they are all in use, I wonder whether a Red Spot car would be provided for the same price. Flexicar however claims that they aim to have a ratio of cars to members sufficient to make such things unlikely. Maybe it would be prudent to join both organisations so that if one had no vehicles available then you could use the other? In one city car park that I often pass the Flexicar and Charterdrive parking spots are adjacent so there would be no difference in convenience in terms of which one you use. I wonder whether they will continue getting adjacent spots. If many people join both organisations then it would be more effective if they don’t get adjacent spots to get better aggregate coverage. I think that at the moment the main challenge for both companies is to grow the popularity of the car-sharing business. I expect that the real competition for who gets the biggest slice of that business will happen in a few years time. Update: There is another Australian car-share company in operation named GoGet [5], interestingly I discovered their existence when I reviewed the Google advertising on this post… GoGet has a significant presence in Sydney, a small presence in Melbourne, and is only making a start in Queensland. Their hourly rates are significantly lower than the others (as little as $4.40 per hour) but distance rates are as high as $0.35 per Km. One significant benefit is that they have plans for two or three drivers which could allow an entire family to sign up on one account. If you drive less than 20Km in an hour (which would not be uncommon in city driving) then GoGet would be cheapest.

Neil Williams: Maintaining packages in an unfamiliar language

First of all, congratulations Steve!
Debian Project Leader Election 2008 Results
The winner of the election is Steve McIntyre.
:-)
Security and languages
Meanwhile, Steve Kemp confirms my preference (prejudice?) that Debian maintainers and sponsors must have an understanding of the language used for their packages. (I do not maintain or sponsor KDE, Python or Mono packages for this reason - my C++ knowledge is too patchy to do more than a few queries of the apt C++ interface and I wouldn't understand a single line of python or mono source code.)
Andrew Pollock thinks that all C bugs are upstream bugs.
"Any bug in the software packaged is inherently an upstream bug, and the problem of the upstream author" - noting that he also has a good relationship with upstream and feels competent to apply and refit patches. I must say, I feel that this not something I could consider doing myself or recommending to anyone as sponsor.
Steve Kemp is naturally taking the security point of view and I fully agree that understanding the infamous Smashing The Stack For Fun And Profit (the code itself may need a few updates to work but it still explains the issues) is part of the job of any maintainer or sponsor handling a package that contains a setuid or setgid binary.
I'm upstream for some of my Debian packages and one, in particular, has known issues with static buffers which I inherited from the old upstream. Most of those have been removed but some are embedded a little too deeply into the codebase and it will take time to remove them all. (The ones I know about are tagged in the doxygen output of the source code.) My other programs use GLib dynamic string allocation / parsing instead of calling strcpy and friends directly.
I don't think it is fair or reasonable to maintain a package in a state that would require a new upstream release to fix a critical security bug. Equally, not being able to fix such a bug by creating the patch yourself (e.g. when upstream is not contactable) is also, IMHO, sub-optimal. (The security team are busy enough as it is without being required to write the patches as well.) As I've found with one of my own upstream packages, removing or protecting static buffers is not necessarily trivial and just extending the buffer is usually insufficient. Poor code design or code that is simply very old and stale can be hard to update. (Removing one static buffer required a patch/RCS commit changing some 300 lines in 6 source files during the development of one of my packages.) Changing the buffer behaviour can also cause mysterious bugs elsewhere - in the case of the package referred to above, inability to read or write its own data files and likely corruption of existing files. Thankfully, that application is never going to be one that needs setuid or setgid and is already in a much better state than it was in the Etch release so I'm working on fixing the other buffer issues but without the urgency that would otherwise be necessary.
I'm still learning about improving the security implications of my own code - I would certainly not be happy maintaining a package that uses a root process or a daemon that was written in a language that I simply don't understand, no matter how good my relationship with upstream. IMHO, the problem with security bugs is that the person writing the patch often has to understand the language and the package at a fairly deep level if the fix is not to cause bugs elsewhere in the application. Fixing a static buffer by breaking the application isn't good but then neither is leaving a Debian security bug open whilst waiting for upstream to create a suitable patch for your own Debian package. The problem gets worse if the security bug is architecture-specific or the fix causes bugs that only appear on certain architectures. There are some things that matter in Debian that simply do not matter as much upstream - if a security bug lands in that gap, the Debian maintainer must be able to solve the problem in Debian - at least, that is how I see it.

Jeff Bailey: Update of the moment

So here's the latest update on how I'm doing:

* Got the stomach flu this week. After 3 days of being ill, went to the doctors and got anti-nausea, anti-diarrhea medication, and 400ccs of Saline by IV for the dehydration. Joy. I'm going to try to go off the anti-nausea drugs tomorrow to see if I'm keeping things down now.

* Leif swam for the first time. I didn't get video, but opted for some nice stills. I *will* actually upload the last 5 months of pictures sometime soon. Really.

* Found an accountant who knows what to do for Canadians who just moved here. Yay! US Taxes will get done!

* The incision has no redness around it at all anymore, which is way cool. On Tuesday, I go in for my 6-week checkup. I asked at the 4-week mark whether I could go in the hottub, and was told that they'd probably OK it at the 6-week mark. I start 6 weeks of physiotherapy the day after that.

* My stamina for walking seems largely back. I can walk to Safeway at a decent pace (I still have to rest when I'm there). I can get to the mailbox and back without a break now. The part that causes me grief still is the muscles on my left shoulders. I'll ask Angie which one it is. It's been more sore than the others since the beginning, but hopefully it's something the physio can help me sort out. If it weren't for that, I'd be cutting back the pain killers already. I still might do that when I know I have a 6-hour stretch of low activity.

* For lack of anything better to do, I've been playing with Eclipse. I rediscovered eclipse a year ago when I was working on the ConnectUU site. The PHP mode was surprisingly good and helpful, and I was quite productive in it. I tried shortly after that to use PyDev, and it did horrible things to eclipse. I've tried it again, and I'm enjoying doing a bit of Java coding (homework), and Python coding in it now. I may finally have found an environment in which I can be more productive than I was in vi.

* Ernie (Angie's dad) and Janet (his wife / one of Leif's Grandmothers) have been here for the weekend helping us clean up. Janet is an absolute whiz at organising things, and the kitchen is way more usable then it has been since we got here in November. I need to make sure that I send out thank-you cards to everyone who's come and helped us. Kit was here a couple of weekends ago. Heather was here last weekend. Leslie, Grant, Jim/Sarah, and Andrew/Sarah have each brought us food. Jamu and Sandy each came for longer periods right after the surgery. Having people come and help has made a huge difference to us keeping things together. Without outside help, I don't know how we would've managed.

I'm a day and a bit off of 6-weeks post-surgery. I'm feeling good.

Next.

Previous.