Search Results: "ana"

6 July 2008

John Goerzen: Look out Nebraska, Here Comes Jacob!

img_5195.jpg

This weekend, the three of us got in the car and drove up to Tekamah, NE for Blogstock 08 at Cliff's. That's Jacob when we were stopped at a park halfway there. Sure looks like he's about to do something ornery, doesn't it? I think he looks even more ornery than the photo of Cliff. That's saying something.

We all really enjoyed Blogstock. Ralph, Cliff, and the rest of the Morrows sure know how to have an event. Ralph said that Cliff's BBQ smoked chicken is the best we'll ever have, and he may just have been right.

I'm going to include a few of my photos in this post; you can see all of my 200+ Blogstock photos on Flickr. (In case anyone else uploads Blogstock photos, you might tag them blogstock08).

Jacob had a blast, and I think he took special pleasure in keeping Terah and me busy. I recall saying something like this, all strung together:

"Jacob, please stop throwing dirt at the cat. That cat doesn't like to have dirt thrown on it. Jacob, stop throwing grass on the cat. Jacob, stop hitting the cat. The cat doesn't like to be hit. Can you pet the cat gently like this? Good job! Jacob, stop sitting on the cat. That hurts the cat. Stop throwing dirt at the cat. Would you like to go play in the corn?"

The Morrow cat was the most tolerant cat I've ever seen, and didn't really seem to mind having a toddler sit on its head. However, we noticed this morning that Jacob's legs mysteriously have some scratches that look very much like cat scratches. We didn't see anything happen, and Jacob didn't come crying to us or anything. I suspect the cat found a way to communicate that it doesn't very much like to have someone sit on it. I also suspect that Jacob understood the message.

img_4996.jpg

As for corn -- Jacob loves corn. He first noticed it within the past week or two, and always gets excited when we drove past some. He calls it "koh!", and particularly tall corn is "koh-koh" or "ah-koh". Cliff has tall corn, and when I first asked Jacob if he wanted to see it, he immediately stopped pestering the cat, yelled "KOOHHHHH!!! KOH KOH KOH KOH!!!" and started running towards it. He started by carefully inspecting the corn from the edge of the field. (I can't help but thinking he looks a bit like is great-grandpa Yoder in this picture.) I can almost hear him saying "yep, this corn looks pretty good" in a couple of years.

img_5051.jpg

The real fun begins when you get into the corn, apparently. With a little bit of holding my hand to balance while walking over the rows of dirt, he'd get between the rows of corn and have a blast. That means mainly picking up a full handful of dirt, running to another random corn plant somewhere, throwing the dirt in the general direction of the corn, and cackling like this was the best thing ever. I had to watch out with the camera, because I didn't really care for it to be hit by dirt, and well, I was in the general direction of corn, too.

img_5062.jpg

And, in case you didn't know, having fun in the corn is serious business.

Now, what can a toddler possibly do after playing in the corn, eating some cherries off a tree, and smearing some dirt on his face with cherry juice?

img_5088.jpg

Well, plan his next activity, of course! From the look on his face, it will be another one to keep Terah and me busy.

Jacob seemed to get along really well with everyone. But Ralph said that everytime he came close, Jacob would give him a nasty glare. Here's Ralph holding Jacob. Was this the look, Ralph?

img_5078.jpg

Or maybe it was this:

img_5116.jpg

Friday evening, Cliff and Ralph made up some great hamburgers, hot dogs, and sausages. We all ate under the big tent, and had a nice time visiting. It was sort of an unusual thing -- meeting people you already know for the first time -- but very nice. We left somewhere around 8. Jacob enjoyed the hotel room, too.

img_5027r.jpg

That's Jacob talking on the telephone. Well, I would normally use it as a TV remote, but to Jacob it looks like a phone, so a phone it is. (I can see his point.) This is Jacob answering the phone by saying Hi! Jacob's word for a phone, by the way, is "hi." He'll find a remote by the TV in the room, point to it, and yell "hi!"

Jacob's usual bedtime is 6:30PM. He normally falls asleep fairly easily and sleeps soundly until 6:30AM. Well, we got him in bed well after 6:30PM. Then he made the discovery that the hotel crib/playpen has a mattress that is not attached to the bottom like our mattresses at home are. This was good for at least an hour of excited playing. As Terah and I were trying to sleep, we'd hear these cackles from Jacob's crib, and the noises of a very active boy. I'd peek around and see him using the mattress as a tent, as a peek-a-boo toy, or just as something to throw. I think he fell asleep at about 11.

And woke up promptly at 6:30 on Saturday, just like clockwork, ready to make some phone calls and start the day.

Now, just a tidbit for anyone that doesn't have kids: a toddler, low on sleep, and endless excitement all combine to make for busy parents. Jacob did pretty well, and got in a good long nap in the afternoon. We did take several trips to the corn field.

For most of us, Saturday was a day for brunch, for sitting around and visiting under the tent, for horse rides, and maybe a massage for those that wanted it. Terah got to ride a horse, and Jacob got to ride a pony, too.

For Jacob, it was a day to make new friends, too.

img_5095.jpg

I took this picture just a second after she had given him a hug. I was just a little too slow whipping out the camera.

But when it comes to cherry picking, it's all serious business once again.

img_5098.jpg

Jacob loved eating these sour cherries. At first, he would pick one cherry off the tree, run over to the tent, give it to Terah for her to get the pit out, eat it, then go back to the tree for another one. He must have decided this was inefficient not long after I did. After a few roundtrips, he started trying to get the closest adult, whoever that might be, to pit the cherry for him. When he found one that would do it, he'd keep bringing cherries back to that person.

And then he was under the tree for a long time. Terah and I noticed, and had a conversation about just how many cherry pits it's OK to swallow. But when I checked it out, I found out that Jacob had figured out how to pit cherries himself. He did lose about half a cherry each time he did it, but I guess that was more efficient than pestering adults to do it for him. Though it may have also worked to carry two cherries to the tent at a time.

img_5123.jpg

Late in the afternoon, Cliff started up the smoker for the chicken. He had rented a big smoker for the occasion, but it wasn't working, so he made do with his regular smoker, ovens for the corn, and an array of dutch ovens or side grills for everything else. I couldn't keep track of it all, and I was just watching, but somehow it all turned out perfect.

img_5140.jpg

While the chicken was cooking, Ralph and son-of-Ralph (SOR) were having a conversation and patting their bellies. I couldn't hear, and didn't ask questions, so I'm choosing to believe that they were discussing how many pieces of chicken they could eat. When they heard my camera click, Ralph said, "He didn't just take a photo, did he?" Thereby guaranteeing a spot on my blog.

I had the distinction, I think, of being the least-read blogger at Blogstock. I can't quite remember how many times I'd meet someone, and they'd say, "Oh, you're the computer guy, right? I tried reading your blog, but I didn't understand it, sorry!" Completely understandable, I assure you!

After dinner Saturday, we talked about how we got started blogging (hi, Marty and Andy if you're reading), why we were there. Cliff said some very kind things about Terah and me, which really meant a lot.

Later, Cliff told me how Terah showed up in the kitchen with her tray of deviled eggs. Cliff saw them, and said, "Terah, I love you." Later, Cliff said "I love you" to someone else. From the next room, Terah piped up, "What food did she bring?"

Saturday evening, Terah took her horse ride. Jacob was quite tired by that point, and threw a tantrum about not being able to go with mom and ride a horse, too. We were talking about it when Rachel came over. Jacob asked her to pick him up, she did, and he instantly stopped fussing. Maybe it was a "so there" to me, since I had been holding him a minute before, and he took the opportunity to scream in my ear. But in any case, Jacob loved Rachel. She let him sit on a pony, carried him all around the yard, and he managed to hold it together until Terah came back at 9:30.

Saturday evening it was time for goodbyes. We all had a blast and I'm sure we'll do this again. If you weren't there, here's what Blogstock looks like:

img_4991.jpg

A bunch of friends sitting around chatting under a tent pretty well sums it up.

(There was a full tent of people; some were just elsewhere when this particular photo was taken.)

Jacob shared his thoughts on the whole trip on the way home, too. Well put, Jacob.

img_5202.jpg

Clint Adams: Never thought love had a rainbow on it see the girl dance

A sound caught my ear, tickling my consciousness until I was impelled to locate its source. It was not that I wanted any ice cream from the ice cream truck I was sure was the culprit; it was because it sounded suspiciously like it was playing Come Dancing by the Kinks. When I saw that it was a large garbage truck, I was still more bothered by the calliope-like riffs coming from it than the fact that the garbage truck was playing a song. Naturally, I whirled around and goosestepped away. After having dinner with what was probably a contracted companion, I was escorted to a massage parlor. While I was being serviced, I stared at the TV while a news program started. Its theme song was a muzak version of Yanni. Shortly thereafter I made the mistake of getting into a conversation about lavender: the flower, not the color. The musical accompaniment was Elvis Costello. This is not notable. Then, before I was fondled unpleasantly by an 8-year-old with Down's Syndrome, whose mother was entirely unsympathetic to my plight, I encountered a much smaller garbage truck. It was playing F r Elise. What a contrast! I only want to encounter garbage trucks playing classic rock from now on. Come dancing; it's only natural, unless you get molested by a mongoloid.

4 July 2008

Russell Coker: New Dell Server

My Dell PowerEdge T105 server (as referenced in my previous post [1]) is now working. It has new memory (why replace just the broken DIMM when you can replace both) and a new BIOS (Dell released an “Urgent” update yesterday that fixes a problem with memory timing and Opteron CPUs). The BIOS update can be installed from a DOS executable (traditionally done from a floppy disk) or an i386 Linux executable. As I didn’t have a floppy drive in my new server I had to use Linux (not that I object to using Linux, but I’d rather have had the technician do it all for me). I used rescue mode from a Fedora 9 CD that was convenient, mounted a USB stick that I had used to store the BIOS update, and then ran it. The Dell service was quite good, on-site service and the problem was fixed approximately 27 hours after I called them. Replacing a couple of DIMMs is hardly a test of skill for the repair-man (unlike the time in Amsterdam when a Dell repair-man swapped a motherboard in a server with only 20 minutes of down-time). So I haven’t seen evidence of them doing anything really great, but getting someone on-site close to 24 hours after the report is quite decent, especially considering that I paid for the cheapest support that they offer. When I got it working I was a little surprised by the memory speed, I had hoped that a new 2GHz Opteron would perform similarly to an Intel E2160 and better than an old Pentium-D (see the results here [2]). Also the memtest86+ run took ages on the step of writing random numbers (I don’t recall ever seeing that step on previous runs, let alone having a system spend half an hour doing it). It seems that the CPU (Opteron 1212) doesn’t perform well for random number generation. In terms of actual operation all I’ve done so far is to install Debian. The process of installing Debian packages was quite fast (even with a RAID-1 reconstruction occurring at the same time) and the boot time is also very quick. The hard drive “rails” seemed a little flimsy. The way they attach to the drive is that they have screws that end in pins, so you screw them into plastic and the pins just sit in the holes in the drive where screws normally attach. I think that it would make more sense to have them not screw onto the plastic and instead screw onto the disk. Then if the plastic part that connects the two sides was to break it would still be usable. In fact they could just make the “rails” be separate rails as most other manufacturers do. One thing that surprised me was the lack of PS/2 keyboard and mouse ports. I had expected that such ports would last longer than serial ports and floppy drives. However my Dell has a power connector for a floppy drive and has a built-in serial port (with some BIOS support for management via a serial port - I have not investigated this because I always plan to use a keyboard and monitor). Of course I expect that most other machines will start shipping without PS/2 ports now and I will have to dispose of my stockpile of PS/2 keyboards and mouses. I generally like to keep a few on hand so that I can give friends and relatives a chance to try a selection and discover which type suits them the best. But I probably don’t need a dozen of them for that purpose. While a comment on my previous post noted that the floppy drive bay can be used for another disk, it seems that a disk is not going to fit in there easily. It looks like I might be able to install a disk there from the front if I unscrew the face-plate - but that’s more effort than I’m prepared to exert for testing the system (for production I will only have two disks). In terms of noise, the Dell seems considerably better than a NEC machine which was designed for desktop use. Of course it’s difficult to be certain as part of the noise is from hard disks and one of the disks I’ve installed in the Dell is a WD “Green” disk and the other may have newer technology to minimise noise. Also the mounting brackets for disks in a server may be better at damping vibrations than screwing a disk to the chassis of a desktop machine. Finally the NEC machine does seem to make more noise now than it used to, so maybe it would be best to compare after a few months use to allow for minor wear on the moving parts. I was initially going to run Debian/Etch on the machine. But as Debian didn’t recognise the built-in Ethernet card and the Xen kernel crashed when doing intensive disk IO I was forced to use CentOS. CentOS 5.1 didn’t start my DomU’s for some reason (which I never diagnosed) but CentOS 5.2 worked perfectly. Finally I was shocked when I realised that the Dell has no sound hardware! When the CentOS post-install program said that it couldn’t find a sound device I thought that meant that it didn’t support the hardware (it’s the sort of thing that sometimes happens when you get a new machine). But it actually has no sound support! It seems really strange that Dell design a desk-side server (which is quiet) and don’t include sound support. If nothing else then using something like randomsound to take input from the microphone line as a source of entropy is going to be useful on servers. While the seven USB ports initially seemed like a lot, being forced to use them for keyboard, mouse, and sound (if I end up using it on a desktop) means that there would only be four left.

Daniel Burrows: CWidget tutoral 1: 'Hello, world!'

Late last year, I spent some time disentangling aptitude's internal UI library and packaging it as a separate library, which I named cwidget. This article is the first in what will hopefully become a series describing the basic concepts and APIs of cwidget. It applies to the versions of cwidget currently available in Debian sid and lenny, 0.5.11-1 and 0.5.12-1. Autogenerated documentation of cwidget can be found here (but beware that as of this writing it is somewhat incomplete).
In this tutorial, I will walk through a simple program (hello.cc) that initializes cwidget, displays a simple message box, and then terminates the program when the user confirms the message. I assume a basic familiarity with C++. Screenshot of the 'Hello, World' program The first thing to do is to include the portions of cwidget that our program will use. Most importantly, we need the top level cwidget routines. These are the global routines that initialize cwidget, shut it down, and control its main loop (among other things).
#include <cwidget/toplevel.h>
cwidget comes with a collection of stock dialog boxes for things like displaying messages to the user. To access the routines that build these dialogs, we write:
#include <cwidget/dialogs.h>
All the symbols provided by the cwidget library are in the cwidget namespace. Using the full library name means that there's a reasonable chance that its names will not conflict with the names provided by other libraries; however, it's a real pain to type cwidget over and over. Since this is the only namespaced library we are using in this program, it's handy to define cw as an alias for cwidget:
namespace cw = cwidget;
Now we're ready to write the main routine. The first interaction of client code with the cwidget library is to initialize it. This will initialize the ncurses library and put the terminal into a mode suitable for a full-screen curses program.
cw::toplevel::init();
Next, we create a dialog box that will be displayed to the user. There are two things to note about this code:
  1. cwidget is Unicode-aware and the ok() routine expects the message string to be a wide-character string. In this case, that means that we need to pass in a wide-character string (indicated by typing L in front of the string).
  2. The second argument tells cwidget what to do when the ok button is pressed. The expression
      sigc::ptr_fun(cw::toplevel::exitmain);
    
    creates a slot using libsigc++. Briefly, a slot is a reference to a function or to a method of a class instance. When invoked, this particular slot will call cwidget::toplevel::exitmain(), which causes the main cwidget loop to exit. The slot is wrapped in cwidget::util::arg, a utility function that handles passing slots as optional arguments.
cw::widgets::widget_ref dialog =
    cw::dialogs::ok(L"Hello, world!",
                    cw::util::arg(sigc::ptr_fun(cw::toplevel::exitmain)));
Now that we have a widget, the next step is to arrange for it to appear on the terminal. In cwidget, control of the terminal is assigned to a single top-level widget: whatever it displays is what gets displayed on the terminal, and all user input is passed directly to it. In a real program this widget will typically manage a collection of sub-widgets and assign each one a screen region, but for now let's just display the dialog box we created:
cw::toplevel::settoplevel(dialog);
With everything initialized, we're ready to start the main loop. mainloop() will keep the display up-to-date and dispatch incoming events (for instance, keystrokes and mouse presses) until exitmain() is invoked.
cw::toplevel::mainloop();
When the user presses Enter or clicks on the Ok button in the dialog, exitmain() will be invoked by the binding that we set up earlier. Once this happens, we need to shut down cwidget in order to restore the terminal to its original state. If you skip this step, the terminal will be garbled and will not work properly when your program exits.
cw::toplevel::shutdown();
And that's it! To compile the program, change to the directory containing hello.cc and run:
$ g++ -o hello hello.cc $(pkg-config --cflags --libs cwidget)
Of course, you'll need to have the g++ and libcwidget-dev packages installed for this to work!

Robert Collins: 4 Jul 2008

Well, the gauntlet is down (BTW - desktop power integration. Cool!). The use case Ted talks about is actually quite interesting - we were at UDS last month, waiting on a SVN server that was apparently so slow we could have walked to it and copied stuff onto harddisk more quickly. (Really. No kidding). bzr was idling and blocked on network IO the whole time... kudos for the plugin Ted! For my response, may I present a new index format, (branch url) 70% smaller than bzr's current default, equally fast at most workloads, up to 20 times faster at others. I started this this week, and John jumped in in overlapping time periods, but I think it counts! Note that the perfromance wins are a component improvement - other things we haven't addressed yet can make the index improvements less visible. But several early adopters have told me that they see a 25-30% reduction in 'time bzr log > /dev/null' or other commands. To install: bzr branch http://bazaar.launchpad.net/~lifeless/+junk/bzr-index2 ~/.bazaar/plugins/index2 bzr branch https://bazaar.launchpad.net/~jameinel/+junk/pybloom ~/.bazaar/plugins/pybloom To use: cd <repository you want to experiment on> bzr upgrade --btree-plain (or --btree-rich-root for bzr-svn users). A version of this will be going to trunk soon, and it will be able to upgrade from any repository that you have that uses the plugin as long as you keep the plugin installed.

Alexis Sukrieh: One week of holydays

It’s been a looong time since I blogged here. Perhaps I should write more frequently so you won’t start thinking I died silently ;). I’m not dead. It’s just that I’ve started a company a couple of months ago and that does take a lot of my time. It’s pretty exciting, - as you can imagine - we’re using Debian everywhere and the team is great. I’ll write another blog-entry about that later. In the meanwhile, I’m on holydays for a week, and I plan to squash my TODO list:

Andrew Pollock: [life] It's official: I am married to the crazy cat lady

We currently have fifteen cats in the house. Only three of them are ours. When Sarah was contracting at Google, she started an informal, but company-endorsed trap/neuter/release program, because the basement of buildings 40-43 had a bit of a stray/feral cat infestation. Since she left Google, she's continued doing trappings on an on and off basis. She got a call a couple of days ago about a litter of kittens behind one of the other buildings, so she headed off last night with one of her crazy cat lady friends, and they proceeded to catch one of the kittens. She brought that home, and I went back with her, and the mother, which seems fairly feral, had been caught in a trap. The rest of the kittens seemed to have managed to secrete themselves away inside a generator behind the building. This morning, with some help from various facilities types, she managed to extract the other four kittens from the generator. So that put the mother plus five kittens in the spare room (in a large cage). At more or less the same time, Sarah got news of a litter of six kittens that need rescuing from down Gilroy way (some woman in a trailer park didn't seem to realise that boy cat + girl cat = kittens), so after grabbing the other four kittens this morning, she headed off to Gilroy to grab them. So the current plan is to get the mother cat of what we'll call the Google litter desexed on Tuesday and then release her back where she came from. Her five kittens are young enough (~8 weeks) that they can be socialised and won't be feral. The six Gilroy kittens are from non-feral parents, and are about 11 weeks old. All of the kittens are old enough to be desexed as well, but Sarah can't get them into Palo Alto Animal Services for desexing for a couple of weeks, so I suspect we're stuck with them in the interim, unless Sarah can find foster homes for them. To cap it off, we're going to Sacramento for the weekend, so we have to get one of our friends in the complex to take care of them all. The sad thing is the Gilroy Six seem to be in worse condition than the Google Five. They've got pretty poor coats, and seem to have some diarrhoea. Hopefully with a better diet they'll pick up. They're all very cute. The first one of the Google Five that Sarah caught last night is particularly cute. I expect Sarah will get some photos of them all up soon. If anyone is in the Bay Area is interested in a kitten, we've got them by the near-dozen.

3 July 2008

Russell Coker: New Dell Server

My Dell PowerEdge T105 server (as referenced in my previous post [1]) is now working. It has new memory (why replace just the broken DIMM when you can replace both) and a new BIOS (Dell released an “Urgent” update yesterday that fixes a problem with memory timing and Opteron CPUs). The BIOS update can be installed from a DOS executable (traditionally done from a floppy disk) or an i386 Linux executable. As I didn’t have a floppy drive in my new server I had to use Linux (not that I object to using Linux, but I’d rather have had the technician do it all for me). I used rescue mode from a Fedora 9 CD that was convenient, mounted a USB stick that I had used to store the BIOS update, and then ran it. The Dell service was quite good, on-site service and the problem was fixed approximately 27 hours after I called them. Replacing a couple of DIMMs is hardly a test of skill for the repair-man (unlike the time in Amsterdam when a Dell repair-man swapped a motherboard in a server with only 20 minutes of down-time). So I haven’t seen evidence of them doing anything really great, but getting someone on-site close to 24 hours after the report is quite decent, especially considering that I paid for the cheapest support that they offer. When I got it working I was a little surprised by the memory speed, I had hoped that a new 2GHz Opteron would perform similarly to an Intel E2160 and better than an old Pentium-D (see the results here [2]). Also the memtest86+ run took ages on the step of writing random numbers (I don’t recall ever seeing that step on previous runs, let alone having a system spend half an hour doing it). It seems that the CPU (Opteron 1212) doesn’t perform well for random number generation. In terms of actual operation all I’ve done so far is to install Debian. The process of installing Debian packages was quite fast (even with a RAID-1 reconstruction occurring at the same time) and the boot time is also very quick. The hard drive “rails” seemed a little flimsy. The way they attach to the drive is that they have screws that end in pins, so you screw them into plastic and the pins just sit in the holes in the drive where screws normally attach. I think that it would make more sense to have them not screw onto the plastic and instead screw onto the disk. Then if the plastic part that connects the two sides was to break it would still be usable. In fact they could just make the “rails” be separate rails as most other manufacturers do. One thing that surprised me was the lack of PS/2 keyboard and mouse ports. I had expected that such ports would last longer than serial ports and floppy drives. However my Dell has a power connector for a floppy drive and has a built-in serial port (with some BIOS support for management via a serial port - I have not investigated this because I always plan to use a keyboard and monitor). Of course I expect that most other machines will start shipping without PS/2 ports now and I will have to dispose of my stockpile of PS/2 keyboards and mouses. I generally like to keep a few on hand so that I can give friends and relatives a chance to try a selection and discover which type suits them the best. But I probably don’t need a dozen of them for that purpose. While a comment on my previous post noted that the floppy drive bay can be used for another disk, it seems that a disk is not going to fit in there easily. It looks like I might be able to install a disk there from the front if I unscrew the face-plate - but that’s more effort than I’m prepared to exert for testing the system (for production I will only have two disks). In terms of noise, the Dell seems considerably better than a NEC machine which was designed for desktop use. Of course it’s difficult to be certain as part of the noise is from hard disks and one of the disks I’ve installed in the Dell is a WD “Green” disk and the other may have newer technology to minimise noise. Also the mounting brackets for disks in a server may be better at damping vibrations than screwing a disk to the chassis of a desktop machine. Finally the NEC machine does seem to make more noise now than it used to, so maybe it would be best to compare after a few months use to allow for minor wear on the moving parts. One interesting feature is the Broadcom Gig-E port on the motherboard, it supports iSCSI as a boot protocol which is an interesting alternative to PXE, so if you have a server attached to a SAN via iSCSI you can use the same protocol for booting. There is a USB port inside the case (for permanently attached USB devices), however the USB boot option states that it is offering the option to boot from front USB ports - and it claims that no operating system is found on the USB stick that I use to boot my Thinkpad. The down-side is that the bnx2 module in the Debian/Etch kernel doesn’t seem to work with it. I want the machine to have three Ethernet ports, I have a two-port PCI card and if I can get the port on the motherboard to work then I’ll have enough. Otherwise I need to buy a PCIe Ethernet card (the machine only has one PCI slot). I ended up installing CentOS on the machine after the Debian/Etch Xen kernel started falling over on disk IO load (a problem I had seen on another Debian/Etch 64bit Xen machine). CentOS 5.1 supports the built-in Ethernet device, but didn’t work correctly with Xen (my DomU’s would just hang or abort). CentOS 5.2 is now working correctly.

Antti-Juhani Kaijanaho: SF encyclopedic wiki?

I sometime wish I had access to an encyclopedia, written in wiki style so that it could be updated by anybody, that had an article about every SF story and novel ever written, and every fictional concept (like ansible, hyperspace etc) ever used in an SF story, and which crosslinked these in a useful manner. Often, once I’ve had a worldbuilding idea, I want to go read some of the key stories that use the same or a similar idea, so that I could see what others have already done with the idea. Only it turns out there are no indexes that tell me “antigravity has been used in these ways in SF stories, and it is a central concept in these stories” etc. Anybody know of something like this?

Sami Haahtinen: Overcommit, your personal friendly salesperson

I just have to say it, memory management is utterly broken in Linux. Luckily it's not as broken as it used to be. Without going in to too much detail, there is a feature called overcommit in Linux. What this means is that it will over allocate memory to applications. At first thought it sounds insane. Why would one want to over allocate memory. It's like eating a cake and having it too. Well, there is a reason why this is done. If you think about resource allocation in general, there are a lot of places where this is being done successfully. For example ISPs always over sell their capacity because most of the users use a fraction of the resources allocated to them. That is why guaranteed capacity is so much more expensive, they literally allocate it for you (most of the times). So in a way memory management is like your friendly sales person from Linux corp. who is happy to sell what over you want because he needs the deal for his own bonus. So it is in fact reasonable to overcommit memory? Bzzt! Wrong! There are always problems with over allocating. ISPs, for example, monitor the usage of their resources and when certain limit is reached they get more resources. With memory it's not so easy, you have a finite amount of memory in your computer. Swap comes to the rescue to a certain degree, but it is critical for the applications to know their limits. If you have 1 MB of RAM available for the application let the application know. In most of the cases the application will crash because it doesn't know how to deal with the out of memory situation, but this is a side effect of the overcommit. Programmers don't run in to this kind of problems and they don't have to deal with them. So what happens when you hit the limit? In Linux there is this thing called oom-killer. oom-killer has just one purpose, to kill processes. While oom-killer has some clever heuristics built in to it, it will most likely end up killing the wrong program. So it's like a big game of core wars on your computer.
Generating locales...
  en_AU.UTF-8... done
  en_BW.UTF-8... done
  en_CA.UTF-8... done
  en_DK.UTF-8... /usr/sbin/locale-gen: line 238:  1971 Killed                  localedef $no_archive --magic=$GLIBC_MAGIC -i $input -c -f $charset $locale_alias $locale
failed
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  ...
This is what happens on one of my hosts, there are not that many services running on this host and for some reason the right process gets killed. After turning overcommit off:
Generating locales...
  en_AU.UTF-8... up-to-date
  en_BW.UTF-8... up-to-date
  en_CA.UTF-8... up-to-date
  en_DK.UTF-8... done
  en_GB.UTF-8... done
  en_HK.UTF-8... done
  ...
Apparently locale generation is one of the things that is capable handling memory as it's supposed to be handled. So how do you turn off overcommit? Sysctl is the way! Easiest way is to add the following to /etc/sysctl.conf and running "/etc/init.d/procps.sh force-reload":
vm.overcommit_ratio = 100
vm.overcommit_memory = 2
The second line is the magic line which turns off overcommit. Insanely enough the other options are 0 (Default) and 1 (Always overcommit), which just doesn't make any sense. If the default is to do overcommit why would I want to set it to always overcommit. The first line defines the maximum amount of memory a program can allocate. This is explained better on a post on fedora-devel. Even with these changes, overcommit isn't completely disabled, but things are a lot better. While overcommit is built because it makes sense, it doesn't work. Lets hope things get even better in the future. Update: Arthur de Jong pointed out that in certain situations overcommit is needed, like when there is a large application running on a server that prevents further memory allocations (thus disabling remote access and so on). That is true, I'm not trying to say that overcommit isn't useful in some cases. I'm just saying that it's just a disaster waiting to happen, unless you have finetuned the environment just right.

Reinhard Tartler: ffmpeg-uploaded

Finally ffmpeg version 0.svn20080206-9 was uploaded to unstable and is currently waiting to get out of NEW . Special thanks go out to Fabian Greffrath, for testing, reviewing and pushing me, to L oc Minier, for his thoughts on the package renaming and handling of potential unstripped replacement packages and Darren Salt for his work on the debian/rules file. This upload is targeted lenny. Highlights of that upload include:
  • introduction of ffmpeg-doc 438369
  • build flavors (read more below)
  • renaming of the source package to ffmpeg-debian
  • DEB_BUILD_OPTIONS=noopt now compiles the package with -O0 (and works!)
  • ffmpeg-config has been removed. please port your packages to use pkg-config instead, cf. 487917 and 487922.
As for the build flavors: The debian/rules file was refactored so that flavors can easily be added. The flavors are architecture specific. All architectures support a static and a dynamic flavor. The following architectures support the following flavors:
  • i386: cmov (an i686 optimized flavor using the cmov instruction)
  • powerpc: altivec (requires G4 or better)
  • sparc: vis (uses v9 instructions)
If you are interested how we manage these build flavors, have a look at our debian/rules file. I remember that this was recently discussed on debian-devel at some point. Anyway, if you need/want additional flavors, please file wishlist bugs.

2 July 2008

Jon Dowland: My site is (slowly) moving

I've decided to give my website a spring-clean. One of the things that is overdue a change is my domain name. You can find out more about the history of the "alcopop" name at /about/ if you are so inclined. I've been using it for a long time and haven't really thought about what people might presume about me from the name. Over the next few months, the site will be moving to the more neutral jmtd.net (my initials). From this point forward, any new content will go there only. This log will probably stay where it is for a while, however. I'm taking this opportunity to migrate to ikiwiki which is a really useful bit of software and has managed to scratch an itch that I thought nothing would quite manage.

Antti-Juhani Kaijanaho: A reader s meme

From Tuesday thingers, via Jules Jones:
Here is the Top 100 Most Popular Books on LibraryThing. Bold what you own, italicize what you’ve read. Star what you liked. Star multiple times what you loved!
(more…)

Andrew Pollock: [tech] On microblogging

Now that Tim Connors has taken the lid off it, I feel I should opine on the matter. Microblogging is just not terribly exciting for the reader. I don't see the point in aggregating it. I don't particularly find Mikal's blatherings terribly exciting reading. I don't find Stewart's twitterings much fun either. I think Facebook's status updates are a better way to poll such things, myself, and it's where I confine my "microblogging" to. I think one of the things that used to make reading blogs more worthwhile than reading mailing lists was the high signal-to-noise ratio. Back in the day, there was a bit of a "cost" or barrier to entry for writing a blog post. For most blogs, it wasn't as easy as writing an email. I still hand-craft my blog posts in HTML, so for me to write something, I have to have enough inclination to fire up an editor and write the words. Often I run out of motivation half way through a blog post, and just end up scrapping it. I'm sitting on a few more lengthy posts that I haven't managed to summon up the energy to write at all yet. I think some of the "push-button publishing" out there is rapidly commoditising blogging, to the point where it becomes as easy or easier than writing an email. And we all know what happened to email... Blogging for me is essentially a journal. I like to use it to refer back to. To share what I'm doing with others. Occasionally it can be cathartic. Often it's a substitute for going to work and telling my co-workers about what crazy geeky thing I've done in my spare time. Mostly it's for me. The fact that I choose to share it with the world is not really a primary motivating factor for me, it just makes it more accessible for me, and sometimes helpful for others.

Clint Adams: Meiosis

Word on the street is that there will be a Mini Purse in about seven months. That could mean Procter & Gamble stock is undervalued. Contact Manish for more details.

Jon Dowland: Introducing debgtd

screenshot ofdebgtd in action
Recently the number of open bugs that I had submitted hit 100. I had completely lost track of which bugs I was interested in, which ones needed my attention, etc. so I started developing a prototype tool to try and help me keep track of it all. I've called it "debgtd", after getting things done, the self-improvement method which has proven very popular in IT culture. The current prototype will import the list of bugs that you have submitted from the BTS and let you display them sorted either by severity or package name. You can "sleep" a bug if it does not require your attention at present (e.g. awaiting maintainer feedback), or "ignore" it if you no longer want to keep track of it (e.g. you've stopped using the package in question). Double-clicking a row invokes your system's default X web browser on the bug page. This is enough at the moment to help me work through my backlog, although once I've done that I have ambitious plans for encoding more workflow into it (such as waking sleeping bugs up on events etc.). Try it out and see what you think: : code and a more rambling explanation of plans for the tool are available here. It's written in python and uses pygtk for the UI.

Paul van Tilburg: Preparing for GUADEC

I am in the process of packing my stuff for my holidays. Tomorrow, I will fly to Istanbul to attend GUADEC 2008. Because GUADEC does not start before the 7th, it will give me some time to roam around Istanbul itself and do some sightseeing, probably with some of the Collabora guys. I’m flying on July 3 at 12:00 (+0200) from Schiphol with KLM (flight KL 1615) and arrive at Istanbul Atat rk International Airport at 16:20 (+0300). I’ll return on July 13 at 17:15 (+0300), again with KLM (flight KL 1616), and land on Schiphol at 19:55 (+0200). In Istanbul I will be staying in the Saint Sophia Hotel in Sultanahmet. I’m looking forward to it, although it doesn’t feel like holidays to me yet. I should have an Internet connection over there, and probably Jaiku via cell phone will work fine too. So I will keep you up-to-date. It is also clear that I will be skipping DebConf this year. This is unfortunate, because I wanted to work with the Debian/Ruby team to advance some of our goals. However, I’m happy to catch at least one free software conference.

30 June 2008

Russell Coker: The History of MS

Jeff Bailey writes about the last 26 years of Microsoft [1]. He gives Microsoft credit for “saving us from the TRS 80″, however CP/M-86 was also an option for the OS on the IBM PC [2]. If MS hadn’t produced MS-DOS for a lower price then CP/M would have been used (in those days CP/M and MS-DOS had the same features and essentially the same design). He notes the use of the Terminate and Stay Resident (TSR) [3] programs. As far as I recall the TSR operation was undocumented and was discovered by disassembling DOS (something that the modern MS EULAs forbid). Intel designed the 8086 and 80286 CPUs to permit code written for an 8086 to run unchanged in “protected mode” on an 80286 (as noted in the Wikipedia page about the 80286 [4]). Basically all that you needed to do to write a DOS program with the potential of being run directly in protected mode (or easily ported) was to allocate memory by requesting it from the OS (not just assuming that every address above your heap was available to write on) and by addressing memory only by the segment register returned from the OS when allocating memory (IE not assuming that incrementing a segment register is equivalent to adding 16 to the offset). There were some programs written in such a manner which could run on both DOS and text-mode OS/2 (both 1.x and 2.x), I believe that such programs were linked differently. The term Fat Binary [5] is often used to refer to an executable which has binary code for multiple CPUs (EG PPC and M68K CPUs on the Macintosh), I believe that a similar concept was used for DOS / OS/2 programs but the main code of the application was shared. Also compilers which produce object code which doesn’t do nasty things could have their object code linked to run in protected mode. Some people produced a set of libraries that allowed linking Borland Turbo Pascal code to run as OS/2 16bit text-mode applications. The fact that OS/2 (the protected-mode preemptively multi-tasking DOS) didn’t succeed in the market was largely due to MS. I never used Windows/386 (a version of Windows 2.x) but used Windows 3.0 a lot. Windows 3.0 ran in three modes, “Real Mode” (8086), “Standard Mode” (80286), and “Enhanced Mode” (80386). Real Mode was used for 8086 and 8088 CPUs, for 80286 systems if you needed to run one DOS program (there was no memory for running more than one), and for creating or adjusting the swap-file size for an 80386 system (if your 80386 system didn’t have enough swap you had to shut everything down, start Real Mode, adjust the swap file, and then start it again in Enhanced Mode). Standard Mode was the best mode for running Windows programs (apart from the badly written ones which only ran on Real Mode), but due to the bad practices implemented by almost everyone who wrote DOS programs MS didn’t even try to run DOS programs in 286 protected mode and thus Standard Mode didn’t support DOS programs. Enhanced Mode allowed multitasking DOS programs but as hardly anyone had an 80386 class system at that time it didn’t get much use. It was just before the release of Windows 3.1 that I decided to never again use Windows unless I was paid to do so. I was at a MS presentation about Windows 3.1 and after the marketing stuff they had a technical Q/A session. The questions were generally about how to work around bugs in MS software (mainly Windows 3.0) and the MS people had a very detailed list of work-arounds. Someone asked “why don’t you just fix those bugs” and we were told “it’s easier to teach you how to work around them than to fix them“. I left the presentation before it finished, went straight home and deleted Windows from my computer. I am not going to use software written by people with such a poor attitude if given a choice. After that I ran the DOS multi-tasker DesqView [6] until OS/2 2.0 was released. Desqview allowed multitasking well written DOS programs in real mode, Quarterdeck was the first company to discover that almost 64K of address space could be used above the 1MB boundary from real-mode on a 80286 (a significant benefit when you were limited to 640K of RAM), as well as multitasking less well behaved DOS programs with more memory use on an 80386 or better CPU. OS/2 [7] 2.x was described as “A Better DOS than DOS, a Better Windows than Windows”. That claim seemed accurate to me. I could run DOS VM86 sessions under OS/2 which could do things that even Desqview couldn’t manage (such as having a non-graphical DOS session with 716K of base memory in one window and a graphical DOS session in another). I could also run combinations of Windows programs that could not run under MS Windows (such as badly written windows programs that needed Real Mode as well as programs that needed the amount of memory that only Standard or Enhanced mode could provide). Back to Bill Gates, I recently read a blog post Eight Years of Wrongness [5] which described how Steve Ballmer has failed MS stockholders by his poor management. It seems that he paid more attention to fighting Linux, implementing Digital Restrictions Management (DRM), and generally trying to avoid compatibility with other software than to actually making money. While this could be seen as a tribute to Bill Gates (Steve Ballmer couldn’t do the job as well), I think that Bill would have made the same mistakes for the same reasons. MS has always had a history of treating it’s customers as the enemy. Jeff suggests that we should learn from MS that the freedom to tinker is important as is access to our data. These are good points but another important point is that we need to develop software that does what users want and acts primarily in the best interests of the users. Overall I think that free software is quite well written in regard to acting on behalf of the users. The issue we have is in determining who the “user” is, whether it’s a developer, sys-admin, or someone who wants to just play games and do some word-processing.

James Morrison: Overpopulated

I've always thought Canada was overpopulated. I finally have evidence to support that. Canada has a higher population density than Iceland (and Australia)!

29 June 2008

Sune Vuorela: What I done this weekend

Ana guessed slightly wrong when trying to guess next update of kde4.1 in debian, but her howto still works. Give it a bit for the autobuliders to catch up though. But I guess I should find a rich uncle to give me newer hardware - my computer was only idle a few hours since friday evening. I do hope that plasma people soon reaches a stable ABI. And by the way:
I\'m going to akademy
Thanks to frisoftware.dk

Next.

Previous.