Search Results: "spa"

27 October 2006

Erich Schubert: Harddrive encryption

For my new laptop, I decided to use harddrive encryption. The new Debian installer (to be released with etch) can handle this setup, and it works pretty well. The passphrase prompt isn't pretty, but who cares. But where I'm currently stuck is getting it to work with uswsusp. I used to be a Suspend 2 user, but I'm tired of compiling my own kernels; it takes a lot of diskspace and my new laptop has a much smaller harddisk (I bought a used laptop, so I didn't have a choice; the old laptop is PATA, the new is SATA, so I can't just move the HD over either). So I wanted to try new "userspace software suspend". s2ram works just fine on the laptop (with --force, but from some Google results I figured it's already reported to work, so it will probably be in the next versions whitelist), where it's becoming difficult is the suspend to disk with an encrypted swap device. From what I can tell, s2disk expects the resume device to be a swap device; so I'd need to pass it /dev/mapper/cswap. However this is encrypted using a random key, so it can't be decrypted after resume. Also it appears to be configured after the resume script at boot, which says it can't stat my resume device. Dear Lazyweb, anyone who could write some Howto for uswsusp and HD encryption? Do I need to encrypt swap with a static key (which would reside on an encrypted partition, after all)? And what about the boot sequence? [Update: one of the cryptomount maintainers told me he's working on fixing #394136 and #382280 this weekend, and that this will help me as well. (Basically it will allow the cryptomount initramfs things to setup more than one encrypted device, from what I figured).]

26 October 2006

Mike Hommey: Facts about Debian, Mozilla Firefox and Ubuntu

or How Mozilla Corporation is FUDing on Debian. Again. This time, Christopher Beard, Mr Mozilla Marketing is talking about Firefox in Ubuntu, that it’s great, Ubuntu is a good boy, that it cooperates with Mozilla , and that by cooperating, it can use the great Firefox name and logo. To be honest, I don’t care that Ubuntu calls Firefox Firefox instead of Iceweasel or whatever. I don’t care that Ubuntu doesn’t care about freedom as much as Debian does. I could not care less. But, indeed, I do care about (yet other) false claims about Firefox in Debian. Let’s see what Christopher has to say about it:
I understand that Ubuntu is based upon Debian. Is that the same or different than the IceWeasel browser that Debian is shipping with their latest release?
It’s different. The patches that Debian applied to the Mozilla source code (which then resulted in their IceWeasel product) are more significant in scope than those in what Ubuntu is shipping (and branding as an official Mozilla Firefox release). Firefox in Ubuntu represents a somewhat more modest set of divergences from original Mozilla source code.
Let’s check out what it is about. And as I don’t want people to doubt my words, I’ll give you, readers, the ability to check for yourself what it is all about. First, please download the latest currently available patch for Firefox 2.0 beta 2 in Debian. It has been in experimental for some weeks now. It is a bit different from the patch I described earlier, so I’ll also tell you what has been changed since this 2.0b2 patch: (Also note that another change has been done since then, which is actually reverting a previous patch on gfx/src/gtk/mozilla-decoder.cpp, that was adding code that became dead code when we changed the way to fix the bug.) Next, please download the official and supported Firefox diff from Ubuntu. Uncompress both these diff files, and create two directories (let’s call them ubuntudiff and debdiff) which will contain the individual patches for each file. To fill these directories, please use the following commands:

$ filterdiff --strip=1 firefox_2.0+0dfsg-0ubuntu3.diff > ubuntu.diff
$ filterdiff --strip=1 firefox_1.99+2.0b2+dfsg-1.diff > deb.diff
$ cd ubuntudiff
$ splitdiff -d -a ../ubuntu.diff
$ cd ../debdiff
$ splitdiff -d -a ../deb.diff
If you don’t have the splitdiff and filterdiff utilities, you can get them from the patchutils tools (you will also need another of these tools later). Now, let’s have fun with these split patches… Files that are only patched in Debian: (excluding any file that would be in the debian subdirectory, that contains maintainer scripts for build and installation)

$ LANG=C diff -ru debdiff/ ubuntudiff/ grep "^Only in deb" grep -v debian wc -l
6
So, that’s 6 files that Debian patches that Ubuntu doesn’t. Let’s check what they are:

$ LANG=C diff -ru debdiff/ ubuntudiff/ grep "^Only in deb" grep -v debian

(reordering result for convenience)

Only in debdiff/: browser_base_content_aboutDialog.xul

Adds rows=5 to the user agent textbox so as to display the user agent string uncut by default

Only in debdiff/: content_html_content_src_nsGenericHTMLElement.cpp
Only in debdiff/: content_html_content_src_nsHTMLInputElement.cpp
Only in debdiff/: dom_src_base_nsGlobalWindow.cpp

It’s a patch I submitted in bugzilla #343953 and that got applied in Firefox 2.0. No surprise the patch is not applied on Ubuntu.

Only in debdiff/: extensions_reporter_Makefile.in

Patch I submitted in bugzilla #354413 and that got applied in Firefox 2.0.

Only in debdiff/: security_coreconf_rules.mk

Patch from bugzilla #325148 that got applied in Firefox 2.0 (see above), and a small patch to build the NSS library with debugging symbols (put -g in CFLAGS). That leaves only 2 small patches : CFLAGS = -g added to security/coreconf/rules.mk and rows=5 to browser/base/content/aboutDialog.xul Files that are only patched in Ubuntu: (same exceptions as for Debian)

$ LANG=C diff -ru debdiff/ ubuntudiff/ grep "^Only in ubuntu" grep -v debian wc -l
45
Yes, that’s right, that’s 45 files that Ubuntu patches that Debian doesn’t. Most are windows sizes and similar things that upstream can’t get right because they are values adapted to Windows, but that also includes some changes to the code and some other things. Let’s now check differences in files that are patched in both. It’s a bit of shell black magic, but you can check by hand that it does nothing wrong :

$ LANG=C diff -ru debdiff/ ubuntudiff/ filterdiff -p1 -x configure -x debian"*" lsdiff --strip=1 while read f; do diff -u debdiff/$f ubuntudiff/ awk "! /^--- ^\+\+\+ ^ ^[-+]*\@\@/ print \"$f\"; exit "; done

That gives a list of patch files that have more differences than line numbers changes, and that do not apply to the debian directory or the configure script (which is generated from configure.in), which is what we really want to compare here. You can take this list and run interdiff between these files from the ubuntudiff and debdiff directories. I’ll explain for you what these differences are: Overall, Ubuntu applies the same set of patches as Debian, plus some more. A somewhat more modest set of divergences, huh ?!? For what it’s worth, Ubuntu, like Debian, builds its Firefox with flat chrome and pango enabled.
What’s different in the shipping Ubuntu version of Firefox than the proposed Debian version of Firefox (that didn’t ultimately ship)?
Technically, changes include fixes to the User Agent string and the feed preview, a well as addressing issues of coherent branding. More significant than any specific difference in code, however, is Ubuntu’s commitment to work together with Mozilla and our community on releases going forward to insure product quality and integrity.
Why are you working with Ubuntu when you wouldn’t work with Debian?
We did try to work with Debian and would prefer a situation in which we work together. Ultimately, Debian took a position that was consistent with their own policies, and not compatible with some of the exceptions to Mozilla trademark policies that we offered. While we understand and respect their decision not to work with us under our branding guidelines, Mozilla believes that brands like Firefox are important for consumer protection. In any event, Ubuntu developers are working closely with Mozilla developers to insure product quality and features that are what users expect when they use Mozilla Firefox, which means that they’ll ship (and will continue to ship) a fully branded version.
Reading between the lines, that means Debian is not working with Mozilla. It’s not like we’re submitting patches. No. Never. Ever. I’m also glad to hear from Asa Dotzler, in comments to Mr Beard’s article, that this great collaboration with Ubuntu will lead to patches applied to Firefox (I guess the paid Canonical employees having more time to deal with Mozilla than the volunteer Debian maintainers may have helped, especially considering they didn’t have to do all what we already prepared). Anyways, it’s not like some of the patches we sent got applied. So, while I’m at it, here is an exhaustive list of the bugs where we took or sent the patches that are applied to Iceweasel: #51429, #161826, #252033, #258429, #273524, #287150, #289394, #294879, #307168, #307418, #314927, #319012, #322806, #323114, #325148, #326245, #330628, #331781, #331785, #331818, #333289, #333308, #343953, #345077, #345079, #345080, #345413. These don’t cover the following patches (see the rationale for these in my previous article): It’s so great to spend a great amount of time on a package, send patches, try to understand how things work to get patches applied, and yet, see such denial and false claims about our work. So please, Christopher, Asa, and the others, just stop talking about Debian, it will be better for everyone. PS for Rob in comments out there: No, ColorZilla won’t work on Ubuntu, because of the ABI incompatibility I explained in my previous entry, that Mozilla doesn’t seem to care much about.

Wouter Verhelst: US$ 6000

There's a bit of commotion around the amount of 6000 US dollars that's being paid to the RMs for a month of work; some people seem to think that this is a lot of money for one month of work. My guess is that these people have never had to run a business. Steve does run one; I don't know about aba. But let's just make some calculations here, shall we? I'd make them with the US system in mind, but as I have a business in Belgium, that's kinda hard to do. So I'll make them with the Belgian system in mind instead. And now if you want to pay yourself, you get to do the above dance all over again. You get to pay income taxes, insurance, rent or mortgage, Internet, phone, water, and whatnot. Plus food. In addition to all of the above, I don't know how much Steve has to drive around to talk to his customers, but if that's "quite a bit", then he may be leasing a car. I don't know whether he's got an ad running somewhere to attract more customers for the months after his paid Debian work, but if he is, he may have to pay a considerable amount of money to do so. And there can be any number of things that I've forgotten to include, but for which you still need to pay. In addition, if you want to run a business in a sane way, you need to ask a bit more than what your costs are, because there'll always be a few days that are not billable, and on which you need to live and pay expenses, too; but I could imagine that these were dropped for this particular month. Obviously the above numbers all involve some guesswork. I've been running a business for quite a while now, but it's only recently become profitable; many of these numbers will go up when your business is profitable for a long time. 6000 is nothing. I've had customers tell me you're cheap five seconds after I asked nearly twice as much. Trust me, that's no fun. It's one of the things I've had to learn while running a business: some amounts of money that seem hugely expensive in a private capacity are next to nothing in the business world. That's just the way it works... Finally, let me note that this is not meant to take any position one way or another in the matter. I did feel that experimenting with paying fellow developers was a good idea, but not at all costs; and certainly, I don't feel that going ahead with this by setting up something of the likes of dunc-tank is a very bright idea. I just thought it good to put some numbers into perspective. Update: Set the numbers straight. 6000 - 1200 is 4800, not 5800. Whoops. Yes, usually I do use a calculator :)

Benjamin Mako Hill: MVS

About a 6 weeks ago, I uploaded a great piece of software into Debian. The package is libwww-mediawiki-client-perl but you can also get it by installing the package mvs. The software seems to be a couple years old -- but it's new to me and I'm been thrilled with it so I thought I would share. The package is a library but its usefulness to me centers around a cute little command-line wrapper to the library called mvs. mvs essentially provides a simple CVS-like interface to an instance of Mediawiki that facilitates offline editing of Mediawiki pages and much more. Here's a quick little walk-through that I wrote for the README.Debian file that might give someone a pretty good description of how the software works:
Step 1: make a directory to store pages from this Mediawiki instance:
mkdir en-wp
cd en-wp
Step 2: log in to the host with your username/password:
mvs login -d wikipedia.org -l en -u 'Benjamin Mako Hill' -p password
Step 3: download a page that you want to edit by adding ".wiki" to the end:
mvs update Granrojo.wiki
Step 4: edit the file to make changes:
vim Granrojo.wiki
Step 5: preview your changes:
mvs preview Granrojo.wiki
Step 6: commit your changes into the wiki:
mvs commit --minor yes -m 'made spelling fix' Granrojo.wiki
And that's all there is to it! It brings a whole series of things that were almost prohibitively difficult through the web interface into reach (e.g., diffing two different pages to see if they've diverged) and its changed the way that I interact with Wikipedia in some exciting ways. Thanks to Mark Jaroski for writing and maintaining the software!

Eric Dorland: Bright Lights, Beef Jerky

So since [info]mricon already spilled the beans, I'm moving to New York City at the end of November. Having never really been to NYC (I drove through it once), this is more than a little crazy. But it's a great opportunity and I've never lived anywhere but Montr al, so it should be a bit of an adventure. Pretty scary too.

I'm hoping my new job won't completely kill my free time and my ability to work on Debian, but I'm guessing it will for a couple of months. Apologies to everyone for not having gotten Iceweasel packages together yet, but between wisdom teeth being pulled and "real life" and my co-maintainer taking a sabbatical, it's been tough to make progress.

I'm also looking for replacements for me here in Montr al, both at work and at home. If you're in the city and have some good Linux SysAdmin experience or want to share a nice apartment with a couple of LJers drop me a line.

Steve Langasek: You owe the Oracle a beware of dog sign

Dear lazyweb, As admin for a few mailing lists run using mailman, I try to keep as much spam from reaching my subscribers. But due to a variety of factors, such as this bug, this leaves me with the tedious task of hand-approving some legitimate mail (such as Debian BTS mail) to lists. Does anyone know of a helper for mutt that I could use to approve/deny moderated mailman posts with a single keystroke, instead of manually drilling down into the mail myself? The closest I've found is http://veggiechinese.net/mutt_mailman_approve.txt, but that's still three keystrokes instead of one, and if I'm going to be lazy I ought to do it right, no? So are there any grand masters of mutt config about who can suggest a solution?

Ben Armstrong: Tuxpaint GUI testing with xautomation

Tuxpaint could be a poster child for l10n. It has translations now for 68 different locales. The large number of locales poses somewhat of a problem for testing1. Tuxpaint 0.9.16 just released. During the release preparation, the manual testing of all of these locales drove me nearly insane. So to help out next time, I created the following bash script using xautomation2, imagemagick and xprop (from xbase-clients):

#!/bin/bash
testname="tuxpaint" 
root_geometry= xprop -root _NET_DESKTOP_GEOMETRY  cut -d= -f2 
root_x= echo $root_geometry  cut -d, -f1 
root_y= echo $root_geometry  cut -d, -f2 
xc=$((root_x/2-1))
yc=$((root_y/2-1))
capture_tuxpaint ()  
   tuxpaint --startblank --nolockfile --lang $1 --640x480 --windowed --nosound &
   sleep 1
   xte "mousemove $xc $yc" 
   xte "mouseclick 1" 
   sleep 1
   xte "key Escape" 
   sleep 2
   import -silent -window "Tux Paint" $testname-$1.png
   xte "mousermove -120 -40" 
   xte "mouseclick 1" 
 
for lang in  tuxpaint --lang help  awk '$1~/^[[:lower:]]/  print $1 ' ; do
   capture_tuxpaint $lang
done

I’m not entirely happy with it, but it’s at least a starting point. Ideally, I’d make .pat files to use with visgrep to find coordinates for the button images instead of hardwiring the approximate button positions. Also, the script needs a companion script to configure the system for testing (i.e. perform the locales configuration and install all fonts). Here are the resulting screenshots which show up a few problems with the translations. It looks like the quit dialog strings have been updated since they were first translated, so now we need retranslation for several languages. Also, there are some languages, like Swahili and Klingon, for which there are no locales in glibc in Debian. I’ll have to talk to the glibc maintainers about that. And for that matter, I don’t even know if a DFSG-free Klingon font exists. In any event, I’m delighted with the results, and look forward to using xautomation more for GUI testing.

1 For one thing, several languages require special fonts. For another, there is no way to get tuxpaint to tell you what locales it supports. Granted, there is --lang help, but this is a crude approximation, as the mapping between language and locale is arbitrarily hardwired (which hmh on #debian-devel irc pointed out to me is just plain wrong). It doesn’t help me at all in the arduous task of configuring glibc locales so I can test them. For that, I need to look at i18n.c.

2 I tried using xmacro at first, but xmacrorec just made my pointer jiggle back and forth. It seemed like it was updating the position for a short distance, and then X was resetting it back to the former position of the pointer. Some strange interaction with my window manager, perhaps? But ultimately I am happier with the xautomation approach anyway.

25 October 2006

Evan Prodromou: 3 Brumaire CCXV

I&aposve been dawdling and delaying writing about our trip to wt:Halifax (Nova Scotia) two weeks ago for some reason, but I&aposm bound and determined to get some info down on, uh, electrons about it right now.

Hella facts about Halifax We flew out of Trudeau airport eeeeearly on a Friday morning; I&aposd shopped a bit on the Air Canada site and got $99 each-way tickets from Montreal on their wp:Air Canada Tango program, but they required that we be on the 7:50AM flight. Air Canada used to be one of my favorite airlines, but they have been getting continuously disproportionately high prices and conversely worse amenities (pillows and blankets now cost extra, thank you very much). Discount flights in Canada are pretty sparse these days, with the collapse of Jetsgo in 2005 and the recent repositioning of CanJet for charters only. So, you just have to take what you can get. The flight to Halifax was quick and painless; Amita June slept most of the way there. The airport there is pretty small (yay small airports), so we buzzed through baggage claim. Cabs into town were a pricey flat-fee of $52, which got our hackles up, so instead we waited half an hour and took the Airporter shuttle ($16/person) into Halifax proper. We got to see a lot of the Nova Scotia countryside from the shuttle -- lots of leaves turning and conifer forests. We had reservations at the pretty and historic Lord Nelson Hotel, well away from the waterfront, but still in the downtown area, near Dalhousie University. The Lord Nelson is in the "Splurge" section of Halifax hotels on Wikitravel, but since this trip was for my birthday and our 2nd wedding anniversary I thought it&aposd be nice to stay there for one of the 4 nights we were in town. But when I called to make a reservation, I was able to get a very competitive rate, mostly due to a healthy 40% CAA discount, and I booked us for all 4 nights. I&aposd asked for early check-in, but our room wasn&apost ready at noon, so we tried the Lord Nelson Pub for lunch and a beer. The food was tasty and the atmosphere was, uh, pubby. We pawed through the stack of tourist-info documentation that we&aposd picked up at the info desk at the airport, then went up to our big and well-lit room for a mid-afternoon nap. Yes, all three of us. When we woke up, Maj and Amita June went for a walk across the street to the pretty wp:Halifax Public Gardens. It&aposs a very nice Victorian-era public park with disturbingly large geese roaming about. When they got back, the three of us headed down to the waterfront for an early dinner. Halifax&aposs streets are very steep -- they virtually plummet into the water. But we walked straight down to Water Street then meandered along looking at the sights. Our intention was to eat at the Privateer&aposs Warehouse, a building with a bar and two restaurants stacked on top of each other. It&aposs part of the Historic Properties on Upper Water Street, a collection of restored buildings with shopping and food. But the Warehouse turned out to be too rambunctious for us on a Friday night, so we instead went around the corner to Salty&aposs for a slightly more sedate meal on the water. We had good food; Maj had some very nice crab cakes and I took on a large seafood salad. Amita June chomped on really tasty fish and chips. The walk back up the hill was a bit tough, so we stopped in the Rogue&aposs Roost brewpub on the way home for a little strengthener. Unfortunately, as it was after 8:30PM, the baby wasn&apost allowed into the pub. So, we had to leave her tied to a parking meter while we had a... just kidding. We retired to bed after a long day, all three. tags:

California Dreamin&apos All the leaves are brown, red, orange, chartreuse and saffron here in Montreal, yet we&aposre off to wt:San Francisco tomorrow morning (early) to visit friends and family. I love going to see my parents and brothers and sister-in-law and nieces, but I also like going back to see the wt:Bay Area (California). It hasn&apost always been like this. It used to be that when I went back, it felt like I&aposd never left, and that the life that we&aposve made here in Quebec was just a story I told myself. San Francisco seemed real; Montreal seemed distant. San Francisco was where I was supposed to be; Montreal was where I stubbornly and irrationally insisted on staying. (The fact that I stayed in a room in my parents&apos house didn&apost help with the stepping-backwards feeling.) But it&aposs been a few years, and Maj and I have been married here, had a baby, and made a business for ourselves. Even though we don&apost own a house (yet), we&aposre putting down roots. Now when I return to California, it feels like a visit -- like traveling to just another destination. And you know what? California is a fabulous place to visit. Northern California even more so. San Francisco is a spectacular place on the edge of the ocean with music, art, redwood trees, organic food, and a sense of humor about itself that no other town quite has. It will be good to get back to SF for a while. It will be nice to take the baby around to see people and things that she hasn&apost ever seen before. We&aposll be in wt:Palo Alto to stay with my folks, visit my brothers in wt:San Francisco, up to wt:Petaluma and wt:Oakland to visit friends, and maybe even down to wt:Big Sur for a campout next weekend. I&aposve got the Web 2.0 Conference that I&aposm covering for LinuxWorld. And I&aposm sure there&aposll be more in there; we need ot dip the baby&aposs toes in the Pacific sometime soon. tags:

Joachim Breitner: Giving up at SOSHGIC

Some of you might have followed my volounteer work at the SOS Hermann Gmeiner International College in Tema, Ghana, where I was invited to introduce Linux at the school. Being a free software advocate, I thought this a great opportunity to spread Free Software where it can make the most difference and helps bridging the Digital Divide: In a developing country.Judging from the offer (which was very nice, it included housing, flights, freight, money), I expected the school to be very eager to learn about Linux. I was expecting that I only had to guide existing momentum. What I found instead was that there was zero interest from the people who matter in this case. I got all freedoms to implement what I want (as long as I didn t break anything), and I created some things I think are quite nice: Automatic installations that keep the installed windows intact, neat integration in the Active Directory setup, network monitoring with nagios, a transparent firewall that let s the teachers turn the internet for the class room off and on. But it felt like working for nothing, and I can t push people to use Free Software who are unwilling.So today I drew the concequences and quit with effect to the end of December. The principal, who s project it was in the first place, was sorry, but understanding of my issues, and accepted my resignation. I will be on a trip to the Volta lake and other parts of Ghana with friends from Accra for the next 10 days anywasy, so she will take the time to think and discuss how the school can make the best out of the remaining two months.I have not giving up on spreading Free Software here completely. If I find another project where I can be of more use afterwards, I will consider that. But this time I m going to be very picky where I go, and only take a shorter, better defined project. If I can t find something, then that s it and I ll go back to Germany to continue my studies.

Dirk Eddelbuettel: Boston bound

This just in this morning:
111th Boston MarathonDear Dirk Eddelbuettel,

This is to notify you that your entry into the 111th Boston Marathon on Monday, April 16, 2007 has been accepted, provided that the information you submitted is accurate.

[...]
Yay! This was using the time from Sunburst in June but given Sunday's time I even get to run in 2008 too.

Russell Coker: peak oil

This PDF (700K) gives a useful summary of the Peak Oil issues. It's on the Defence in the National Interest (DNI) web site, an interesting site of US conservative political information. Note that this is Conservative, not Neo-Con.

Ben Armstrong: Adequate mobile text editing device

Ideal mobile text editing device redux As I read the responses1 to my search for the ideal mobile text editing device, reality began to set in. The heating season is now upon us, and even used technology meeting my criteria would likely exceed my stated budget. Furthermore, I’d risk replacing my current issues with a whole new set of issues and end up with a less-than-ideal mobile text editing device. So I have rethought the problem and have decided it would be best to work on with what I have now while I wait for this ideal device to arrive on the market. Keyboard While I can’t change the keyboard of the ZR-5000, with a practiced lighter touch on the keys I can, in fact, touch-type passably well. It has served me well enough to draft several blog articles so far. Software Although not up to the high standard set by Vim, for quick note-taking, I don’t really need a fancy editor. My thoughts flow directly through my fingers into the device with only light editing. Cut-and-paste, motion keys and delete are the bare essentials. Anything more is a frill. Synchronization I do have an ACTiSYS IR-200L infrared dongle for my PC. The trouble is, although this is supported in Linux using IrDA, the ZR-5000 insists on speaking ASK-IR which is not supported. There is a Windows-only program, ZRLink, which might work. I’ll try it either on an XP system at work, (... mixed reviews out there as to whether it will work on recent Windows,) or under Wine. I can get the dialogs to display properly on Wine, but I have my doubts about whether serial emulation works. My initial tests at home under Wine indicate it doesn’t. (Could #277618 have something to do with this?) There is a 15-pin serial connector on the device, but I have no cable for it. And there’s a PCMCIA slot, but compatible devices are likely limited to older, harder-to-find components: either a 2M CF card or a modem card. While I have the latter, it exceeds the power available from batteries and I have no DC adaptor for the unit. Perhaps I overrate synchronization anyway. My best articles are rewritten from scratch more than once. Summary Living in an embarrassingly technology-rich country, it is too easy for a geek like me to convince himself that his gadget cravings are needs whereas, in fact, there is still plenty of life left in the devices he already has. After all, my venerable ZR-5000 was given to me by a fellow who figured if any one of his friends would still be able to use it for something, it would be me. Well, I won’t let him down. I’ll stick with it and make it work. There is one virtue of this device I doubt if any modern device of the same form factor can match. After a week of daily use, I still haven’t had to change the 2 ordinary AA NiMH batteries. Top that.

1 Thanks, everyone, for your responses. Although there were the inevitable few that mentioned modern devices way over my budget, and I’ve decided now to stick with the ZR-5000, your suggestions did help me bring the real issues into focus.

Benjamin Mako Hill: PyBlosxom Hacks Page

Since my weblog catastrophe a few months ago, I've been spending a little more time getting my PyBlosxom setup on copyrighteous into shape. Initially, my efforts were focused on a series of patches to PyBlosxom and to several important plugins. As I became a little more familiar with the code base, I realized that in an evening or a little bit of downtime, I can pretty easily create my own plugins. I've already managed to accumulate a few of them. I've created a page on my website to hosts these and have put what I've got publishable so far up there. I've got two more that I'm still in the process of vetting on the PyBlosxom mailing list but that I'll post there (and announce on this blog) soon. The first plugin that I've published there is a very simple plugin I wrote to display ads (I am experimenting with Google ads but it should work with other ad providers or even for non-ads) but only to those who get to my old blog entries by searching for them. My thinking was inspired by an old post by my friend Evan where he described setting up Google advertisements in a way that would not affect his core readership but might allow him to use blogging to make his activism financially sustainable. While I suspect (and hope!) that most my own readership's Internet experience is mediated by Adblock and Filterset.G, the plugin will spare even those that don't while showing ads to those I don't know yet.

24 October 2006

Russell Coker: blogging and self-promotion


Are blogs and conference speeches inherently about self promotion? If so is that a bad thing?

Recently I mentioned my Planet configuration on a mailing list where most people don't track new technology. Some people viewed blog entries for the first time as a result of this and then claimed that blogs appeared to be mostly about self-promotion.

It seems to me that people offer conference speeches to promote technology that they believe in (which often equates to self-promotion as such people are well known to be associated with the technology in question), for promoting themself or their own business, or to promote the company that employes them. Of these categories of talk the worst ones are those which are given to promote a company, it's especially bad when a talk starts with "the guy who was supposed to give this talk was called to a client so I'm doing it instead" - this indicates how much the company cares for the quality of the talk. Someone who is promoting themself will care about doing a reasonable job. Someone who promotes their favourite technology will usually give a great talk! But corporations rarely get the idea that a good quality talk which makes little mention of their products is the most effective advertisement. Of recent times Google seems to be the best example of a company which gets this idea, at many conferences there are Google employees giving talks about various technologies not directly related to Google operations without any direct sales pitch. Everyone who attends such talks gets the message - Google has hired many smart people and has them working on cool things.

It seems that blogs are often written with similar motivations to conference presentations but with no control over the topic and less quality control. The difference of course is that a blog doesn't get a forum the way a talk which is accepted by a conference will. So a corporate blog has to be really good to get readers.

PS I've added the day15 beard picture to this entry, it was taken on the 22nd of October, but I had only just got around to GIMPing it and uploading it.

Ben Armstrong: Apt verb

In the English language, it is so trivial to create new words. In no domain is this quite so evident as the world of computers. Thus, informally amongst Debian users, you’ll often hear “apt-get it” or simply “apt it” which has the virtue of being equally apt a term for using aptitude. Now, I have no problem with people using these verbs. They’re precise, if a bit geeky. But really, shouldn’t there be a more general verb to cover this activity? Back when apt was new, and nobody else was installing packages this way, the lack of a general term made sense. But these days, in certain user communities, you might hear “yum it” instead. How many variants does the English language need? One per apt-like installer? Compare this with the evolution of instant messaging. Back when ICQ dominated the field, “ICQ” was synonymous with instant messaging. These days, although you might occasionally still hear people say “ICQ me” or “Jabber me” (where the protocol is important, because both participants must have access to that specific service) we can more generally say “message me,” encompassing in one fell swoop all possible protocols. Or if you prefer, the awkwardly geeky but more precise term, “IM me” (though arguably slightly less useful than “message me” because it seems to exclude irc, the king of all chat systems). So, what’s the equivalent verb that means “conveniently installing software from one or more software repositories by merely asking for the package by name”? My mind draws a blank.

Anthony Towns: Todo Lists

A while ago I read Steve Yegge’s rant about Agile development, though I’ve forgotten who linked to it. The thing that struck me as interesting was the bit about “work queues”:
With a priority queue, you have a dumping-ground for any and all ideas (and bugs) that people suggest as the project unfolds. No engineer is ever idle, unless the queue is empty, which by definition means the project has launched. Tasks can be suspended and resumed simply by putting them back in the queue with appropriate notes or documentation. You always know how much work is left, and if you like, you can make time estimates based on the remaining tasks. You can examine closed work items to infer anything from bug regression rates to (if you like) individual productivity. You can see which tasks are often passed over, which can help you discover root causes of pain in the organization. A work queue is completely transparent, so there is minimal risk of accidental duplication of work.
Sadly, googling for “work queue” doesn’t come up with any sort of todo list stuff, but rather a multiprocessing scheduling tool which is cool, but not immediately relevant for me. As far as I can see, whatever was actually being talked about either isn’t public, or is more of a concept than an actual tool. The only Google Todo thing I could find was an applet thing for the personalised google homepage, which just lets you make todo items and set them as high/medium/low priority. And while that might be all that Steve Yegge was talking about, it doesn’t really feel terribly inspiring to me. I guess what I’d really like is to have todo items get assigned to a project (so that I can ignore all the todos for projects I don’t want to worry about atm), and also to be able to give them a deadline (so I can treat them with a bit more urgency when necessary) and a priority (so that I can easily spot things I’m willing to defer or ignore completely when I find I don’t have time to do everything I’d like). I suspect I’ll probably just stick with writing notes in vi to keep track of things, though, same as I have been for years.

Russell Coker: economics of nuclear power

It's interesting to note in this press release from the Australian Greens that Dr Ziggy Switkowski (head of the Prime Minister's nuclear taskforce) that nuclear power is not economically viable in Australia without a carbon tax. As the government has refused to consider such a carbon tax this seems to rule out nuclear power for Australia. I expect that other countries have similar economics.

I imagine that nuclear power would be viable for a country that lacks adequate wind for wind power, is not very sunny so solar power doesn't work, has few rivers so hydro-electric power can't be used, and which has no option of geo-thermal power. Is there such a country?

23 October 2006

Martin F. Krafft: Testing mdadm

The problem with being the mdadm maintainer is that it doesn't make any friends but potentially quite a lot of enemies. Even though it's actually very unlikely that a new mdadm version causes data loss (mdadm is only the remote control into the kernel), people seem to exhibit unexpected reactions when their 500Gb RAID5 array containing everything doesn't want to start anymore (Hi Lars!). In such a case, don't panic, don't do anything without understanding the implications, and consider asking for help. That said, I would appreciate if you guys helped me test the latest mdadm releases a bit more thoroughly before the package is frozen for good. I do extensive tests myself, but as Murphy would be able to predict, the problem only ever occur on other people's machines, and I'd much rather fix them before etch than after. The easiest way to help is by adding my package repository (i386/amd64) to your sources.list file, and configuring the APT pins appropriately:
# cat <<_eof >> /etc/apt/sources.list
deb http://debian.madduck.net/repo sid main
_eof
# cat <<_eof >> /etc/apt/preferences
Package: *
Pin: release a=sid, release o=madduck
Pin-Priority: 50
Package: mdadm
Pin: release a=sid, release o=madduck
Pin-Priority: 600
_eof
# apt-get update; apt-get upgrade
Alternatively, you can just download the package for i386 or amd64. If you're running sarge and are willing to test, that would be great! I've prepared backports, which you can use like so (note how you need backported debconf and lsb-base packages too, the latter of which is already on backports.org):
# cat <<_eof >> /etc/apt/sources.list
deb http://debian.madduck.net/repo sarge-backports main
## unless you have backports already enabled:
deb http://www.backports.org/debian sarge-backports main
_eof
# cat <<_eof >> /etc/apt/preferences
Package: *
Pin: release a=sarge-backports, release o=madduck
Pin-Priority: 50
Package: mdadm
Pin: release a=sarge-backports, release o=madduck
Pin-Priority: 600
Package: debconf
Pin: release a=sarge-backports, release o=madduck
Pin-Priority: 600
Package: lsb-base
Pin: release a=sarge-backports
Pin-Priority: 600
_eof
# apt-get update; apt-get upgrade
The mdadm backport can also be directly downloaded for i386 or amd64, the corresponding debconf package is here, and lsb-base is resides in the backports.org archive. Much appreciated! NP: Barclay James Harvest / Gone to Earth

John Goerzen: We need to follow the Amish example

Just a few weeks ago, the world heard the news of the tragic school shooting at an Amish school in rural Pennsylvania. A deranged man entered the schoolhouse, bound and gagged female hostages, brought along torture equipment, and shot 10 of them. 5 died, and the remaining 5 are believed to still be hospitalized.

Back in 1990, a deranged man committed a series of murders near the University of Florida campus in Gainesville. The story mentions 5 people that were killed.

Both were tragic situations. Both men killed people that had their whole lives in front of them. Both shook an entire community.

But look at how the communities responded. The Amish responded like this:

CNN reported a grandfather of one of the murdered Amish girls said of the killer on the day of the murder: "We must not think evil of this man."

Jack Meyer, a member of the Brethren community living near the Amish in Lancaster County, explained: "I don't think there's anybody here that wants to do anything but forgive and not only reach out to those who have suffered a loss in that way but to reach out to the family of the man who committed these acts," he told CNN.

The Amish have reached out to Roberts' family. Dwight Lefever, a Roberts family spokesman said an Amish neighbor comforted the Roberts family hours after the shooting and extended forgiveness to them.

An article in a Canadian newspaper the National Post stated that the Amish have set up a charitable fund for the family of the shooter. (Wikipedia)


In addition, the Amish invited the Roberts family to attend the funerals for the Amish girls he killed.

Gainesville reacted this way:

Dianna Hoyt, Christa Hoyt's stepmother, said Rolling's execution has been eagerly awaited by the victims' families. Some will be inside the prison to witness it. . .

Sadie Darnell, who was the police department's media spokeswoman at the time and developed enduring friendships with the victims' families, said Rolling's execution still matters, even if it also provides him more of the notoriety he sought.

"Retribution . . . is important because it represents that our society is holding that person accountable," said Darnell, now a candidate for Alachua County sheriff. (CNN)


We've all heard of murders that have taken place lately. Usually they are accompanied by calls by politicians, victim's family, and sometimes even clergy to kill the perpetrator. In the days after 9/11, there were reports of anybody that looked Middle Eastern being attacked in several different places around the country.

I have never understood this great desire for revenge. How does that help anyone?

What the Amish did was right religiously and morally. They truly followed the New Testament call to love your enemies and forgive. It is not easy to follow all of Jesus' teachings, and nobody said it would be. But they are doing it, and they have already begun healing. Reports are that the Roberts family has become friends with several of the Amish in the area, and they are working to help each other out after this horrible tragedy.

Even putting religion aside for a moment, the Amish actions are quite simply the right thing to do. By spreading love instead of hate, and friendship instead of revenge, they have succeeded in making sure that no cycle of violence starts there.

In contrast, 16 years later, the families of the victims in Florida still aren't healing. They are still angry and bitter. They are still seeking revenge. They hope that their lives will get back to normal after the murderer is killed. But after 16 years of stewing about it, will they really? And what about the family of the murderer, whose lives certainly must have been a mess for the past 16 years? They will now lose a family member. Does anyone care about them, or will they now turn angry at society and possibly spread the pain more?

Imagine what would happen if so many more people around the world took the Amish perspective -- to forgive those that wronged us. How long must it be before we can forgive? How far back do we spread our hate? Do we still hate those that were involved in 9/11, or can we forgive them? Do we still hate the Germans for what their ancestors did in World War II, or can we forgive them? Do we hate politicians with whom we strongly disagree, or think are liars? Do we still hate all those that have wronged us personally -- someone that stole something from us or the sadistic boss?

Knives, electric chairs, and bombs do not buy reconciliation. They can not "win over" the hearts of others. They do not make our lives easier. Hate brings more hate, and more resentment.

Forgiveness is not easy. We all hope that we will never be involved in such a tragedies as these. But let us follow the example the Amish have shown -- forgive for all things, big or small, important or not, painful or not.

Only then will we be at peace with ourselves, and only then will we have the chance to be at peace with our neighbors.

Wouter Verhelst: Rock migration finished

This weekend, I started modifying the way I use disk space on rock, my home desktop and server. rock used to be a PentiumIII running at 650Mhz, until I received an SMP box from Osamu Aoki when he moved back to Japan and couldn't take it with him. So rock is now a dual Celeron 433Mhz, and the machine that originally served as my desktop went on to replace pop, my parent's box. A little while later, rock's hard disk died, and I was left with a single 13G hard disk (or so I thought). At that point, I used the sarge installer to install rock on an LVM system, so that I could easily enlarge the volumes in the installation later on, without having to start copying files for no good reason. When I later on bought a second-hand 80G hard disk to add to the LVM system, I found that there were in fact two more hard disks inside rock, which simply hadn't been connected to the IDE controllers; one was 20G large, the other 40G. So I added them all, and enlarged all the volumes that could use some extra space. A while later, I started worrying. What if one of the disks would die? Reading the documentation, I found that I would lose all the LVM volumes that were on the dead disk, even if only partially. Obviously there's also an option to get LVM to mount partial volumes to get at the data that's still available, but it didn't sound too hopeful. In short, I became convinced that what I was doing wasn't all that sure for my data. Obviously I have backups of the important stuff, but avoiding failure is always preferable over having to use recovery procedures, even if they're good recovery procedures. So I decided that I would migrate to a setup that would use at least some redundancy; that way, I could stop worrying as much. And since I had four disks, there should've been a way to do that. I started partitioning, and found that I had overlooked a second 40G hard disk that rock was using; so rather than creating a RAID5 array on top of two 33G partitions (on the 40G and 80G disks) and one RAID0 array or something similar (combining the 13G and 20G disks), I decided to create a 40G RAID5 array composed of two 40G disks and one 40G partition on an 80G disk. All other disk space (the other 40G on the 80G disk, and the 20G and 13G disks) would be combined into an LVM volume group for less important data (such as the squid cache and other large parts of /var, swap space, and a bunch of digitized CD's of which I still have the originals). Also, the RAID5 array wouldn't just be one large volume or so; instead, I created another LVM volume group in the RAID array. Theoretically I could of course combine everything in one volume group and use pvmove and/or the right options on lvcreate to force important volumes on the RAID array, but then having separate volume groups for RAID/no RAID would force me to think carefully before managing volumes, which is never a bad idea. So on Friday I started moving data. This would involve running pvmove on a particular physical volume until all data would be removed from it; then run vgreduce -a <vgname> to remove the physical volume from it; use the just-freed drive to create new partitions on it to hold the live data; copy the live data over; and start doing pvmove again. Rinse, repeat, until all data is copied over and/or you've freed enough disks to create the RAID array. Luckily one can create a RAID array in degraded mode, or the procedure would've involved updating my backups, verifying them, wiping the hard disks, and reinstalling. As it is, I could get away with creating partitions that were just large enough to hold all data, and hoping people wouldn't try creating more data. I started working on this on Friday, and am just now, over 48 hours later, finishing up. It should've been possible to do all this in far less time; but rather than explaining what went wrong, let me just say, for the record, that I hate hardware. And that I should plan better. Anyway. The last stumbling block was the fact that the system simply wouldn't boot from the new root device. The reason was fairly obvious; the initrd was generated when mdadm was not installed yet, so had to be regenerated. But after calling yaird with the right options, it still wouldn't work. It took me a while to figure it out; but eventually, I found that yaird will read your /etc/fstab to find out about your root device; that it will see how it can get at that root device (where it's smart enough to know about md devices and LVM devices etc); and that it will then add the right software to the initrd based on that. Sure enough, my temporary root device that I had put outside of any LVM thing on /dev/hdb3 did have /dev/hdb3 as its root partition. So yaird didn't think mdadm was necessary. Heh. Quick edit fixed that. So now I have my important data on an LVM system on RAID5, and my less important data still on LVM. Me happy.

Next.

Previous.