Search Results: "cas"

2 August 2007

Meike Reichle: Some more positive things and Dear launchpad.net Part 2

More happy people: following up on my last post on nice free software experiences Chris Ball has responded by posting one of his. Are there any more? Also talking about free software nuisances I remembered my recent grudge with launchpad.net. At that time I was contacted by someone from Canonical shortly after that first post. He said he'd pass my comment on, but in the next days nothing happened so I turned to other things and only occasionally checked back on the site. A few days ago I've again checked back and guess what, the objectionable title has been replaced, both for people using launchpad and for those who don't. The page's title for peple who do not actually use launchpad now reads "X does not use launchpad" and "X in launchpad" for those who do. Much better! Well done launchpad.net!

Benjamin Mako Hill: Wikimania 2007

I'm in Taipei this week whole week for Wikimania 2007. I'm here for two days for a retreat of the Wikimedia Foundation board of directors and advisory board. I'm also going to be giving two and a half talks in the conference itself, attending a Debian birthday party, and perhaps giving a talk on Ubuntu at ITRI. Here are the overviews of my talks at Wikimania: Details on Debian's birthday party are online too which will have talks, food, beer, and more. As always, get in contact if you want to meet up or just find me at the conference.

1 August 2007

Russell Coker: Advogato and Hateful/Divisive Posts

Firstly for the benefit of people who haven’t heard of it, the Advogato FAQ and the Wikipedia Page describe what Advogato does. Pete Zaitcev posted a strange article about me to Advogato. In it he accused me of “pumping hateful leftist propaganda into Advogato“, said propaganda being my regular blog posts. In an addendum he accused me of insanity, and said that my “attacks” were “divisive“. I considered writing an Advogato post in response but first read the Posting Guidelines which say: Both of those criteria rule out Pete’s post and any response that I might make would risk being in breach of such conditions - so I will use my blog as the Advogato admins recommend. Pete’s ad-hominem attack on me claiming that my posts are hateful is bizarre. Pete, for the benefit of all the interested onlookers could you please inform us which of my posts you consider hateful and why you have such an opinion? As a general rule you should always cite articles that you reference. When you make accusations without any evidence to back them up it makes you look bad and prevents any positive discussion of the acts in question. As for the accusation of being divisive, that only happens when people are forced to choose sides. For example when you encourage other people to rate me down on Advogato because of my political opinions that can divide the community (in a small way, neither you, nor me, nor Advogato is important enough to cause a serious problem in this regard). The idea that I was intentionally pumping anything into Advogato was also strange to me. When I entered the URL for my blog into the Advogato settings page I didn’t even realise that it was being syndicated until I reviewed my web logs some time later. It seems that Advogato only has a small number of readers, a recent post about strange ZCAV performance included a graph and judging by the referrer tags it seems that 412 people read the post from Advogato out of 10468 total (so Advogato gets less than 4% of my readers). Planet Debian seems to get more than 15x the number of readers of Advogato. Incidentally if you don’t currently include images in your blog the reader tracking ability is one reason for including an image in an occasional post. Another strange ad-hominem attack was the reference to “college indoctrination“. When I was in university I supported the Liberal party (the Australian equivalent of the Republican party in the US). The influence of Linux programmers (including some of Pete’s colleagues at Red Hat) had much more of an effect on my political opinions than that of my university experience. I am not criticising Pete for disagreeing with me in regard to politics (I don’t even know what he disagrees with). Here are my specific criticisms of Pete’s behaviour:
  1. Ad-hominem attacks

  2. Encouraging mis-use of Advogato trust metrics for political reasons (this one may not have been deliberate)

  3. Non-specific accusations which do not allow me to either defend myself against the accusations or change my actions if he turns out to have any reasonable points

  4. Hypocrisy - he breaks two of the posting guidelines for the purpose of criticising my blog posts which supposedly break some unwritten rule

  5. Not reading the Advogato FAQ - it has a specific section about political disagreements
But I’m not going to advocate voting him down on Advogato. He does write some interesting things on occasion. Check out his page on guns for example.

Lars Wirzenius: Obnam: Generating backup data sets

Sometimes in programming one gets to concentrate for a bit on a single, simple, pure program. A command line utility which is completely in batch mode, does not handle any kind of complicated data, does not need to deal with other programs, or the network, or anything nasty like that. Something where one can just look at the one or two interesting parts and not have to worry about anything else. This is the story of one such program. I need a program to generate test data sets for backup performance testing. The program needs to be reasonably efficient, since the simulated backups may be rather large. My first attempt was not fast enough. There were two reasons for this: the way I was generating random binary data, and the way I was generating filenames. The program generates random binary data to simulate large files, such as image, audio, or video files, and thus it needs to be uncompressible with the usual compression algorithms. My first attempt was to generate each output byte with the Python pseudo-random number generator (random.randint). This only results in about 0.1 megabyte/s (on my laptop), so I needed to improve it. After some iteration and advice, I landed on the following: I generate random bytes with the Python PRNG (random.getrandbits), and feed these to an MD5 checksum. After each byte, I get the current digest and append it to the output. This way, for each random byte, I get 16 bytes of output. It isn't completely random, but it satisfies the uncompressibility requirement. This resulted in about 2.5 MB/s. I then tweaked the code a bit, doing things like avoiding unnecessary arithmetic. I further decided to only feed the first few dozen bytes from the PRNG, and the rest as the same constant byte. The initial run of randomness is enough to make sure the output is unique for different files, so that compression doesn't find lots of duplicates of the big files. This resulted in a speed of about 6.6 MB/s on my laptop and about 13 MB/s on my server. This still didn't make the program fast enough, but the remaining problem was not that writing the contents of one file was too slow, but operations on directories were very, very slow. After benchmarking with zero-byte files, turns out that at the slowest, with file counts in the millions, it would create only a few tens of files per second. That's empty files, so only requiring an update of indoes and the creation of a new directory entry. Obviously, the problem was that I was putting too many files in directories, causing the filesystem to spend a lot time scanning them. I was creating up to 250 files per sub-directory, and then creating a new sub-directory. All of these sub-directories were going directly under the user's chosen output directory. To measure what the optimal size of a directory was, and whether to create two levels of sub-directories, I wrote a little benchmark program.
Graph, 0-byte files Graph, 4096-byte files Graph, 8196-byte files Graph, 16384-byte files Some graphs from the benchamrks: for 0, 4, 8, and 16 KiB files, for up to one million files of each size. onedir puts all files in the same directory, subdirsofN puts N files per directory, and subsubdirsofN has two levels of directories, the leaf directories getting N files each.
From the graphs I deduced that overall, having two levels of directories and up to 1000 files per sub-directory was the best option of those tested. On the other hand, the bigger the files, the less it mattered what the directory structure was. Perhaps the obvious reason for the slowness wasn't that, after all. Then I realized my code was slow because I was doing an os.listdir (listing all files in a directory) for every directory every time I creted a file. Fixing that idiocy made the code so fast that any overhead from the directory operations was no longer relevant. But at least I had some nice graphs. On the server I will be generating my test data the program is now happily generating just over 11 MB/s of test data. I wouldn't mind having it be a lot faster, but it's fast enough. It will take hours to generate hundreds of gigabytes, but I hopefully won't need to do that very often. Thus, further optimization isn't worth my time, right now. The program is genbackupdata, in case anyone else cares about it.

31 July 2007

Neil Williams: pilot-qof and gpe-expenses new releases

Minor bug fix and translation update release for pilot-qof and what was originally going to be a similar upload for gpe-expenses - until I decided that the PO files should really be split because apps using the expenses object library didn't need translated strings from the gpe-expenses application.
So what I learnt on gpe-cash has been put into place for gpe-expenses. A few consequences:

Neil Williams: More on multiple po directories

Further to problems with
gettext and split po files, glib_gettextize turns out not to be usable with more than one po/ directory. I've just converted gpe-expenses to multiple POT files (for the same reasons as gpe-cash) and I'm due to make the upstream release and upload later. glib_gettextize needs to be replaced by gettextize but this is not problem free. gettextize is noisy and keeps tampering with my build, putting in things like config.rpath and forcing -I m4 additions when that is already included elsewhere. So ./autogen.sh now supports gettextize but stops it running twice. I'm storing the gettextize support files in CVS just to allow the post-gettextize environment to be retained without needing to deal with the aftermath of gettextize --force.
Also, one tweak is needed to the Makevars file in the new directory - change the subdir po location to po-lib or whatever you use.
The changes will show up in gpe-expenses CVS later.

Gunnar Wolf: Hot water and long pipes

Every now and then, I see somebody who -just as Russell did today- talks about the advantages of water heating systems not being tank-based, but tankless! Sounds kewl, hah? Shiny, new?
Well... I live at a house that is slowly but steadily started to show its age. Built in 1955 and owned for almost two decades by the very renowned phycisist (of course, my father's mentor and teacher) Marcos Moshinsky, my parents bought it in 1974, and it has been my home since 1976. And, at least since 1980 (I cannot be sure about earlier events for reasons that might be obvious to the casual reader), we have always had an Calentador Ascot de paso. Ascot (and further companies that have bought their name) have manufacutred this kind of water heaters for at least 60 years in Mexico. Yes, they are gas-based and not electricals like the ones Rusell links to, but that might just be because in Mexico gas has always been incredibly cheaper than electricity. And yes, the heater is godsent for ecolocigally conscious people - No more storing 20 to 40 lt (the sizes of the usual storage-based tanks around here) of hot water all day around just because you might want to take a shower, no more waiting for 20 minutes after you turn it on until you start having your morning shower (and more important, no more taking your morning shower ice-cold just because you overslept!)
Yes, it seems like life is perfect with our tankless (de paso) system... Almost.
As I said, our house was built over 50 years ago. It was built on what intended by then to be a middle-upper class suburb, on a very modern house with fancy stuff and all. And of course, the heater was not planned for the most visible or hearable areas of the house - specifically, nowhere close the living room - or the bedrooms. Silly details, the bathrooms are close to those areas. So, what's the answer? Want to take a shower? Ok, open the water...
And wait.
For around 3-5 minutes, until the hot water finishes the looong ride from the opposite corner of the house.
Of course, it takes a path that's not easy to intercept in order to move the heater to a saner place: The hot water pipe goes right under the middle of the living room, yay.
So we use our fancy de paso system whenever we are too lazy. Nadezhda and I prefer to fill one hot water bucket (~20lt) for each in the washing room, just by the kitchen (and the heater, of course!) and throw hot water over us to get a nice bath. Or, in case we are too lazy for that, collect as much as possible from the otherwise-wasted hot water in another bucket (we usually get ~10lt - but I fear another such amount just falls around it) and use it later for our various household duties.

30 July 2007

Russell Coker: Hot Water

A response to a post I wrote about things to do for the environment suggested that there would be a health risk to lowering the temperature of a home hot-water system to save power. I have just been reading about so-called tankless hot-water systems. The concept is that instead of keeping a tank of water hot (which means that you lose some energy due to the insulation not being perfect) you heat water when you need it. The down-side to this is that you need a moderate amount of power to heat water as rapidly as it’s used. The GoTankless.com products use between 11KW and 27KW of electricity. The early implementations of this idea used gas - the occasional carbon-monoxide problem with gas appliances makes me inclined to avoid them so it’s good that there’s an electric option. One of the benefits of the tankless system is that it runs the water at a lower temperature than a regular hot water system. For a tank storing hot water you have to run it at a temperature that kills bacteria (or at least dramatically inhibits their growth) - which means greater than 50C, but for on-demand water it’s safer to have it run at something close to the desired temperature (probably not much above 40C) and not use the cold tap. Lower temperature water avoids the risk of scalding for children and the elderly and if the “hot tap” is running at a good temperature for a shower then you can just turn it on, wait 30 seconds for the pipes to warm up, and jump in! Incidentally it really sucks the way most showers have the taps under or behind the flow of water, so if the water becomes too hot before you get in then you end up getting minor burns in the process of turning on the cold tap. I still think that solar hot water is the way to go. It apparently combines something like a tankless system on water that comes out of a tank heated by the sun. So during winter it operates like a tankless system but in summer you get more hot water than you can use. This web site about Solar hot water systems indicates that they have a similar technology to “boost” solar hot water, so if the Sun doesn’t make the water hot enough then it can use electric or gas systems to further heat the water. It’s also interesting to note that they offer Heat Pump hot-water systems, it’s a pity that they apparently don’t support combining this with solar heating. Another interesting feature is what they call the Water Guardian that pumps cold water from the pipes back into the water tank and avoids wasting the water that you might otherwise run down the sink while waiting for it to get hot.

Michal Čihař: Testing gammu

I finally managed to learn CTest enough to be able to add some test cases to add some automatic testing to Gammu. Well there is not much to test until we have some fake driver for phones which can be used to feed custom data, but at least some parsers can receive testing. First thing I try to focus on is vCard parsing. I know this is currently tricky and I'm trying to collect as many problematic vCards as possible. For now I have collected some from issues in bug tracker and my emails when people reported some problems. So if you have some vCard which Gammu parses wrongly, please send then to me. For now 3 of 5 vCard tests fail, but I hope to resolve those problems until release will happen :-).

Raphaël Hertzog: DM and internal politics

If you don’t follow debian-vote, you have missed this. It’s really worth a read before casting your final vote on this issue. As I explained in my reply to Russ, this vote is not about details but whether we want to have an intermediate level between DD and nothing, or not. If you don’t give an initial policy, then people against DM will use that “hole” to block it because “it’s not how DM must be done” (and then you’ll need another GR to define a correct implementation and overrule those who are blocking). Yet people keep mixing issues when discussing DM. For some, DM is okay if we had a working NM system. For some, DM would be okay if the responsibility to give upload rights didn’t rely on DD but on a sort of QA committee. For some, DM would be okay if it were integrated in NM. There are also people who are opposed to this second class of contributors but I don’t think they are a majority. Still we might loose a nice opportunity because people want to solve too many things at once instead of doing a first step in a new direction.

29 July 2007

Steve McIntyre: Life...

I've been busy doing various things, so I've not had a chance to blog much lately. Time for a quick catch-up... We've had a bit of a development panic at work, so I've been working longer hours than normal. The scary thing is (and I've noticed this in the past too), I seem to enjoy the job more when there's real pressure involved. That's not to say I want it to always be stressful, but we've had more fun with a small group of us really concentrating on a single project, working well together. Outside of work, I've been really quite relieved to take a bit of a break from Debian stuff since Debconf has finished. Debconf (as always) was a really good way to be re-enthused about working on Debian, but it has taken me several weeks to get over it physically. I've finally finished upgrading all of my machines at home to Etch. In most cases it was easy, but the final one left was lump, the firewall/mail/web/foo server. I'd chickened out of upgrading it for quite a while due to the sheer number of services it hosts, and also the substantial amount of local config it therefore holds. In the end, things were thankfully mostly painless. The nice thing about doing the upgrade was that finally lots of new software has suddenly become readily available. Amongst other things, I've added iodine and openvpn, and now I'm looking into playing with voice over IP (probably Asterisk). My Nokia E70 has a VOIP client and wifi, so in theory I should be able to use my regular mobile phone as a voip handset on my wireless network at home and just get cheaper outbound calls. Yay! I visited my friend Matthew a couple of weeks ago, and also helped him upgrade/install his network of Debian machines. Unfortunately, his main workstation (dual AMD64 goodness) is still left just running Windows. BIOS/SATA RAID - just say NO! No matter what we did on that machine, we could not make it dual-boot XP and Debian without forcing him to reinstall it all from scratch. :-( The SPI board elections have just finished. Congratulations to the new mugs^H^H^H^Hmembers of the board, and best of luck in doing a good job. And comiserations to the people who lost - I'm sure most of you would have been good, useful board members too. We're having a final Debconf 7 wrapup meeting next weekend in York, where we're hoping to get the final conference report finished. There are a few more T-shirts to get finished and delivered to people and the sponsorship bags to go out, then it's all done for this year. It'll be good to meet up with people again anyway. Oh, and not long now until the big BBQ at my place. I've started getting some supplies in already, and I'm looking forwards to a bunch of geeks coming round to wreck my house again. Or something... *grin* Last but not least - I'm changing ISPs shortly. Noodles and Huggie have provided excellent service for nearly 3 years, but are exiting the business and moving on to other things. So I'll be moving my home ADSL back to UKFSN shortly. Hopefully the disruption will be minimal.

Russell Coker: Blogs and Conversation (or Lack Therof)

I recently received an email from RSA inviting me to read their blog (after having requested an evaluation copy of one of their products). They invited me to “join the conversation“. Often blogs are described as a “conversation” and I’ve been considering whether that analogy is appropriate. The Collaborative International Dictionary of English v.0.48 has the following definition: Usage: Conversation , Talk . There is a looser sense of these words, in which they are synonymous; there is a stricter sense, in which they differ. Talk is usually broken, familiar, and versatile. Conversation is more continuous and sustained, and turns ordinarily upon topics or higher interest. Children talk to their parents or to their companions; men converse together in mixed assemblies. There are instances of blogging that can approximate conversation when bloggers cite each other’s articles in turn and leave comments on each other’s blogs. But it’s usually not that continuous and sustained. An occasional patterin is that blogger A writes a post, blogger B writes a post disagreeing with it, blogger A comments on blogger B’s post, and that’s usually the end of it. Usually it’s just a case of multiple bloggers writing posts representing their own opinions with occasional references to other blogs and no sustained interaction. The blogging interaction seems to more closely resemble academics presenting papers with alternate solutions to a problem than a conversation. One factor that I believe defines conversation but which isn’t mentioned in the dictionary is that the parties involved have an equal standing. The comments section of a blog is not such a forum, the blogger has a significantly more powerful voice (at least in connection with their own blog) than the people who comment. Someone who posts a comment may have it deleted, and it if is left then a rebuttal in another post will be seen by a significantly larger number of people (the number of people who read comments on a post is a tiny minority of the people who read the post). This doesn’t preclude conversation between bloggers who are of equal popularity in a community, for example most readers of my blog come from Planet Linux Australia and Planet Debian so any blogger who is also syndicated on those sites has an equal voice to me. Another factor in conversation is whether responses are even read. Many blogs don’t accept comments and it’s never certain that a blogger will see a track-back from a blog that references one of their posts. When one party ignores the other (or appears to do so) then there is no conversation. I’m not aware of whether a conversation with RSA people would be possible. While their blog refuses to send content to my Planet installation I guess I’m not going to find out… Is the lack of conversation a bad thing? One problem with conversation is that it often degenerates into what GCIDE defines as talk, while that is good for a friendly mailing list (EG your local LUG) it isn’t so good for the exchange of technical information. A compounding problem for mailing lists is the number of posts that can not be interpreted without the context of a thread of discussion. This often makes mailing lists unreasonably difficult to use in the search for answers to technical problems. When reading google search results I will usually read blog URLs before mailing list posts as a blog post will usually stand alone and either give me an answer or be obviously not related to my problem - sometimes I have to read a dozen messages in a list discussion to determine that it’s not going to help me! To improve things in this regard I plan to increase the number of posts I write with solutions to random technical problems that I encounter with the aim of providing a resource for google searches and to randomly inform people who read my blog. I find such posts by other people quite useful, I often get inspired to implement a technology after reading a blog post about it - there are many things that have a low priority in my todo list because they seem difficult, a blog post that reveals them to be easier than expected and advises how to avoid common problems can really make a difference!

Neil Williams: Multiple po directories in a single upstream package

I've been struggling with gettext most of the day but I've finally got the solution! gpe-cash builds an application and a shared library (with API, -dev, -dbg and -doc). Source files for the application contain translatable strings, as do source files for the shared library. Unable to find documentation for how this should work with gettext, I got no end of path related errors.
Here's the clue: Keep ./po/ for the $PACKAGE.pot file, add ./po-foo/ for the second POT file. My mistake was to try to use po/ and src/po or src/po and src/foo/po.
Then, remove the symlinked Makefile.in.in from po-foo/ and copy the file from po/ so that the po-foo/Makefile.in.in can be edited to change the value of GETTEXT_PACKAGE to the alternate file.
Then, add the LINGUAS file to each po directory.
Add po-foo/ to the configure.ac output.
I also switched from glib_gettextize to gettextize (switching the configure.ac macros at the same time). I'm not sure if this is strictly necessary (and it added quite a lot of stuff to both po/ directories) but I'm not keen on breaking what I've just spent all day fixing!

Committed to cashutil SVN: r619.

Ross Burton: GUADEC Roundup

This is probably the last GUADEC roundup to hit the Planets, considering that it finished a week ago. But, hey, I've been busy. GUADEC was, as usual, a blast. Less sun, sea, and beach parties than last year; more rain, clouds, and parties in fake-Australian bars with too-loud music. If the weather was better we could have hijacked the landlocked beach, which would have been fun. As an educational conference I totally failed at GUADEC, out of an entire week of talks I managed to attend a grand total of seven talks. Between the GNOME Mobile meeting sprawling across two afternoons, a few meetings with clients, occasional attending our stand and having to leave Thursday afternoon meant that there just wasn't enough time. As a photographic experience I mostly failed. I took more photos at Matthew's excellent Clutter Foo talk than the rest of GUADEC itself, and more photos at the ping pong tournament than the others combined. From playing with my camera at the tournament I now know that the Sigma 17-70 lens is no way up to the challenge of sports photography: too slow and too short. My next lens however will be Sigma's new 30mm f/1.4, I've been eyeing it for a while now and Daf had given in to temptation so I could have a play with it. Sports photography will have to wait. As a member of the organising team however, I don't think I totally failed. There were a few last minute snafus in the schedule but on the whole it appeared to hold together, the main problem being there being just too many good talks on at the same time. Congratulations of course are due to Paul, Thomas, Bastien and Rob, who kept the conference running on track all week. Next year, Istanbul. That will be interesting. NP: F♯ A♯ ∞, Godspeed You! Black Emperor

28 July 2007

Martin-Éric Racine: Localisation beyond language packs

In my previous post, I briefly mentioned my K750i Sony-Ericsson mobile phone. I received it as a birthday gift this year, to replace my aging but trustworthy Nokia 3210 and, as with any multifunctional digital device, there was a learning curve during the adoption period. While some features were gladly and swiftly taken into use, some of the handset's usability issues became my pet peeve and, among them, the localization pack wins the jackpot. First, let's make one thing clear: I fully understand that memory constraints prevent manufacturers from including support for every language known to man, so a handset can only be loaded with a limited set of languages for the User Interface and for T9 predictive text input dictionaries. My issue is with the concept of grouping languages by linguistic families or continental areas, when compiling the localization packs for those handsets. In this particular case, I had a choice between the Baltic or Nordic packs. The former has UI language support for Estonian, Latvian, Lithuanian, Polish, Russian and Ukrainian, while the later has support for Finnish and the Scandinavian languages; English is also included in both cases. T9 support is a strangely mixed bag: the Baltic pack only includes predictive input for the Slavic languages, while the Nordic pack supports all the languages of its UI. What's my problem with the above language combinations? For starters, I'm in Finland. We don't interact with Danes or Icelanders outside very occasional pan-Nordic meetings and that mostly concerns politicians. Meanwhile, average Finns travel for work and play to Estonia and Russia on a fairly regular basis, which makes sense, since they are neighboring countries. However, available language packs don't take this into account. How should this be resolved? Either language packs are produced with specific countries in mind, rather than generic geographic areas, or the users should be allowed to freely mix and match among all available languages and get the result flashed into their handset at purchase time. The K750i language pack for Finland should therefore include: Finnish, Swedish, Estonian, Russian, English and Norwegian (essentially the current Nordic language pack, but with Danish and Icelandic replaced with Estonian and Russian). Then again, this only covers official state languages. Sam dialects, anyone? I guess not, because we'd soon be exceeding the handset's capacity. Hmm... Thus, the only real solution is to allow people to freely mix and match UI and T9 languages of their choice at purchase time. As a bonus, this would allow me to drop Norwegian and replace it with Joual... ... c lisse, French and finally have a language pack that I can truly find useful. I can easily picture a Transylvanian engineer working in Finland wanting to get Romanian support or a Kurdish immigrant preferring Turkish support instead. Sony-Ericsson, how about it?

27 July 2007

Michael Prokop: Use root=UUID on NSLU2

As I wrote a few monce ago I’m owner of a NSLU2 device powered by Debian. Now I had to install another device (using di-nslu2-etch-4.0r0.bin - md5: db8e8ec3571aff8fb2132479f860f16b this time) and I wanted to change the setup from using /dev/sda2 to a UUID based one - to get a stable root device. Nothing really tricky (thanks to the existing documentation) but just as a reference (for myself and other users considering the switch as well) the relevant steps… First of all identify the root-device (/dev/sda2 in my case) and get its UUID:
# /lib/udev/vol_id -u /dev/sda2
a98ebb0f-84ae-4f7a-a070-b94ecee3f94a
Make sure initramfs-tools use the given UUID as ROOT-option:
# echo "ROOT=/dev/disk/by-uuid/a98ebb0f-84ae-4f7a-a070-b94ecee3f94a" > \
/etc/initramfs-tools/conf.d/root-device-hack
# update-initramfs -k all -u
Replace the /dev/sda2 line in your /etc/fstab with:
/dev/disk/by-uuid/a98ebb0f-84ae-4f7a-a070-b94ecee3f94a /               ext3    defaults,errors=remount-ro 0       1
Make a backup of the original mtdblock2 and install the one Martin Michlmayr thankfully provides:
# cat /dev/mtdblock* > mtdblock.backup
# cat /dev/mtdblock2 > mtdblock2.original
# wget http://www.cyrius.com/debian/nslu2/files/etch-modified-mtdblock2.bin
# md5sum etch-modified-mtdblock2.bin
e5154ceed8ad7de5bca83cc98fbb4d79  etch-modified-mtdblock2.bin
# cat etch-modified-mtdblock2.bin > /dev/mtdblock2
# apex-env printenv
... compare output with http://www.nslu2-linux.org/wiki/Debian/ChangeKernelCommandLine
Finally set the new kernel commandline:
apex-env setenv cmdline 'console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebug rootdelay=10 root=UUID=a98ebb0f-84ae-4f7a-a070-b94ecee3f94a'
That’s it. Now after rebooting your system should use the UUID-approach instead of /dev/sd*. Check via:
# cat /proc/cmdline
console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebug rootdelay=10 \
root=UUID=a98ebb0f-84ae-4f7a-a070-b94ecee3f94a
Ressources:

Raphaël Hertzog: Is forking NM good?

In a discussion with Bdale, he suggested that DM is seen as forking NM. And some people do not like forks. They are not opposed to DM in principle but do not want it outside of the current NM team. Obviously DM tries to respond to cases that NM is not prepared to handle. Furthermore, the DM discussion has been active for quite some time and the various members of the NM team (Frontdesk, DAM) have not participated much in the public discussion. Only when it comes to a vote do we hear some more (negative) opinions. I don’t see that as a sign of willingness to integrate DM or something similar in the current NM structure. So people who are requesting DM to be integrated in NM, please take it up with the frontdesk/DAM… and don’t oppose the principle just because of organizational matters. Internal organization always change and adapt themselves to the situation. Joey is right when he compares this to the introduction of the sponsorship process. I was one of the main actor in that process. I introduced the concept without the consent of the NM team (James Troup, Martin “Joey” Schulze) at that time. It was a fork, a new way to proceed and it became mainstream with the creation of the current NM process. It’s the natural way of doing things in a free software project. That said, I’m not opposed to improving our NM process. It really needs to be reworked in a “Membership Process” and be open to various kinds of contributors. That’s why I created a dedicated wiki page: http://wiki.debian.org/Projects/ReformedMembershipProcess Let’s see if we’re ready to really fix that! I hope to have comments from all the people who look to be so eager to fix the NM process. :-)

MJ Ray: Debian Maintainers

I've voted in favour of the Debian Maintainers GR because, despite flaws like micro-managing the initial situation [Sven Mueller], I believe it is a useful step towards reforming the New Maintainer process. Those of you with long memories may recall that I think NM should be a modern portfolio-based qualification [-project, April 2006, but probably not the first time I explained it] instead of the current, inconsistent AM-dependent one which sees good people applying too early and sometimes being turned away, sometimes being accepted too quickly, but most often sitting in DAMnation. Despite some claims to be interested in fixing NM [Raphael Hertzog], it seems the current NM team requires throwing more people at the buggy system [Raphael Hertzog] before even considering fixing the damn bugs. Of course, I suspect any suggestion would be met with a claim that NM then wasn't performing too badly, now that it had more people. I think that's damage, so I hope the DM GR can be a first stepping stone in a new path to becoming a DD which routes around the damage.

Russell Coker: Childhood

Recently there has been some discussion and controversy about a 15yo boy being allowed to perform a Caesarian operation on a woman (without her consent). Don Marti seems to think it’s OK and gives some examples of what 15 year old people used to do in past times. However he misses a couple of significant points, one is that the knowledge of surgery was much lower a few hundred years ago and the expectations of the patient were a lot lower, the other is that the patient in this case did not consent to being operated on by a 15yo. If the boy’s mother thought that he was capable of doing the job correctly then she could have allowed him to deliver a younger sibling… Given a choice I would rather have someone like Doogie Howser operate on me than a random surgeon - but I would be extremely unhappy to discover after an operation that it had been performed by a different surgeon than planned who didn’t have a medical license and who’s motivation was to invade my privacy by making a movie of the event! Don cites the interesting essay Against School by John Taylor Gatto which makes some really good points about the state of the education system in most first-world countries. An interesting point that John Gatto doesn’t mention is that in Japan school-boys wear uniforms that are based on Prussian military uniforms. From all the evidence that I have seen the Japanese school system is more Prussian (IE worse by many objective measures) than most countries. The Sydney Morning Herald has an interesting article comparing education systems which claims that a major cause in lack of academic performance is unjustified praise. I first became aware of the extent of this problem when discussing education with a misguided university lecturer. He told me that he felt that his purpose was to make the students believe that they had achieved something and that this was much more important than actually teaching them. My response was to point out that heroin and cocaine are both good options for people who would rather feel successful than succeed and to enquire as to whether he thought that they should be advocated for children. The conversation ended soon after that and he requested that I not name him or his university when blogging about it. I take this as an admission of guilt, if you act decently in public then you should not be afraid of appearing on a blog - decent actions will either be too boring for a blog entry or things that you are proud of.

Uwe Hermann: Testing stuff with QEMU - Part 3: Debian GNU/kFreeBSD

Debian GNU/kFreeBSD screenshot 1
Note: This article is part of my Testing stuff with QEMU series.
From the Debian GNU/kFreeBSD port page:
Debian GNU/kFreeBSD is a port that consists of GNU userland using the GNU C library on top of FreeBSD's kernel, coupled with the regular Debian package set.
Q: Why would anybody want to do that?
A: Why not? [1] So, after we have talked about that, let's start:
  1. Install QEMU:
    apt-get install qemu
  2. Download the latest Debian GNU/kFreeBSD installer ISO image (either for i386 or amd64):
    wget http://glibc-bsd.alioth.debian.org/install-cd/kfreebsd-i386/20070313/debian-20070313-kfreebsd-i386-install.iso
  3. Create a QEMU image which will hold the Debian GNU/kFreeBSD (i386) installation:
    qemu-img create -f qcow2 qemu_kfreebsd_i386.img 5G
  4. Boot directly from the ISO image and install Debian into the QEMU image:
    qemu -boot d -cdrom debian-20070313-kfreebsd-i386-install.iso -hda qemu_kfreebsd_i386.img
  5. The FreeBSD installer will now start. For more detailed instructions see the Installing Debian GNU/kFreeBSD manual.
    First you can choose between an "Express" or "Custom" install (I used "Express").
  6. Next you end up in the partitioning tool. Type "a" to use the entire (QEMU) disk for the installation (the disk is called "ad0", not "hda" as on Linux). Type "q" to quit the partitioning tool.
  7. You are now asked which boot manager to use. For QEMU you should use "BootMgr", the default FreeBSD boot manager. If you install on real hardware you can also use GRUB; in that case choose "None" here (see the manual for more information), but note that the installer does not install or configure GRUB for you! You should do that beforehand!
  8. Next up: The disklabel editor. Here you'll create a partition ("slice" in FreeBSD-speak) for the root filesystem and a swap partition.
    Press "c" to create a new slice (will be called "ad0s1"), enter "4GB", choose "FS" (filesystem), and enter "/" for the root filesystem. Per default the UFS2 file system will be used. To create the swap partition, press "c" again, enter "1023MB", and select "swap". The new slice is called "ad0s1b". Press "q" to quit.
  9. Choose "minimal" when asked which distribution to install.
  10. Installation media dialog: select "CD/DVD" and "acd0" (for QEMU's ATAPI/IDE CD-ROM drive).
  11. The installation will now begin, and after a while you're asked to switch to console 3 using ALT-F3. Do it.
  12. You'll have to answer a bunch of questions: geographic area + city you're in (for timezone), whether you want to participate in the Debian popularity contest, whether module-init-tools should load additional drivers (no, so press ENTER three times). The installation will soon be finished.
At the end you must select "No" as you're told to do, then reboot via "Exit Install". You can then shutdown QEMU.
  1. Restart QEMU with the newly installed Debian GNU/kFreeBSD:
    qemu -hda qemu_kfreebsd_i386.img
    Debian GNU/kFreeBSD screenshot 2
  2. Press enter at the FreeBSD boot manager prompt, then login as root (there's no password).
  3. First things first: Set up a root password:
    passwd
  4. Now let's fix networking, update the system and install a bunch of packages:
    nano /etc/network/interfaces
    Yes, there's no vi, not even a symlink to nano! Uncomment the two "ed0" lines ("ed0" is the equivalent to "eth0" on Linux, I guess).
    /etc/init.d/networking restart
    apt-get update && apt-get dist-upgrade
    apt-get install vim xorg icewm xterm
  5. You can fix your console keymap using the kbdcontrol package (just select your keymap from the menu):
    apt-get install kbdcontrol
  6. Finally, let's fix X11 and start it. But first we create a new user, as we don't want to run X11 as root:
    adduser uwe
    vi /etc/X11/xorg.conf
    The mouse device is "/dev/psm0", the protocol "PS/2", and the graphics driver should be "vesa":
  Section "InputDevice"
      Option "Device" "/dev/psm0"
      Option "Protocol" "PS/2"
  [...]
  Section "Device"
      Driver "vesa"
    
  • That's about it. Login as "uwe" (or whatever your username is) and start X11:
    startx
  • Wasn't all that hard, eh? Now, if you've got some spare time, head over to the Debian GNU/kFreeBSD wiki page and help improving this port ;-) You should probably start with reading the PORTING guide. Both kfrebsd-i386 and kfreebsd-amd64 seem to be reasonably stable already (and more than 70% of the whole Debian archive builds fine on these architectures, see kfreebsd-i386_stats and kfreebsd-amd64_stats). I'll quite likely install kfreebsd-amd64 on one of my boxes soonish and start using it, maybe I'll even find some time to fix/patch/port some packages... [1] More elaborate answer(s) and reasons are available in the Debian wiki.

    Next.

    Previous.