Search Results: "ana"

19 April 2006

Wouter Verhelst: Pbbuttonsd

PMU-based laptops can use either pmud (which works, but doesn't have a lot of features—and which, occasionally, is maintained by fellow m68k porter Michael Schmitz) or pbbuttonsd, (which is a lot better) for their power management. Pbbuttonsd also has support for doing stuff with the hotkeys on the apple keyboard, like changing the screen brightness, the sound volume, or going to sleep (if your laptop supports it) after one uses the power button. In addition, pbbuttonsd will reduce the screen brightness if the laptop is running on battery power and hasn't been used for a while. This is cool. Unfortunately, it also does it if I'm using an external USB mouse to browse the web and don't touch my keyboard or touchpad for a while. This is not so cool.

Steve Kemp: You ve got to manage

Large Scale Automation I’ve been revisiting CFEngine recently in anticipation of installing it on around 50 notes. Matthew Palmer has given me a lot to think about, suggesting that maybe CFengine isn’t the right tool for the job and suggesting I look at Puppet. It seems very new, and I’m not overly fond of the Rubyness - but otherwise it looks good. There are some things that CFEngine gets right, and some things it gets wrong. One of the biggest “right” things is the split of the code: That strikes me as being a perfect split. The “script” file which is executed cfagent.conf is really a ruleset which is executed once on each host. The rest of the CFEngine setup is mostly concerned with distributing this file, handling updates, logging, security etc. If I were to code a similar system that is exactly how I’d seperate it. Now we come to the rules themselves. What do we do inside them? Well in my use of it to date I’m mostly doing a small number of things: So those are my primitives. They can actually be reduced further. Assume that the central server runs a HTTP server - then “copying a file” becomes “execute a command (wget/curl)”. None of these jobs is complex. None of them are things that couldn’t be written with a simple scripting language such as perl, lua, etc. It is almost tempting to write a simple rule-file-intepretter/parser. But down that path lies madness. I’m going to install Puppet tonight and play with it. Gotta love Xen :) If that works out nicely I might switch to using it, despite my concerns that it isn’t mature and is Ruby based. If it doesn’t it becomes a choice of writing a simple intepretter + deamon which accepts SSL connections with client certificates, or living with CFEngine.

Alexis Sukrieh: Amazon S3 uploads within Backup Manager

Brad Dixon is working on a patch for backup-manager in order to support the Amazon S3 Web Service as a new upload method. His work is almost finished in the current SVN source tree and will be available in the next development release: 0.7.3. The Amazon Web Service Blog speaks about his work. Well done Brad and welcome aboard!

Jeff Bailey: Give us the election, Stephen!

In A recent CBC article, Stephen Harper is quoted as saying that his plan for the national child care program is simply a part of the budget. Failure to pass a budget is seen as a failure of confidence, and triggers an election.

This puts the opposition parties in a tight place. Specifically, the Liberals aren't ready to head to the polls yet. Paul Martin hasn't been officially replaced, with a successor not expected to be chosen until October or so. An election in May would go very poorly for them.

Since getting elected, Prime Minister Harper has managed to trigger an ethics inquiry into his government, and is already taking a hard line that risks bringing it down or screwing the opposition party. He told us that he would bring new things to our government, and certainly he has. This type of maneuvering can only be described as "incredible" for what, the second week of parliament?

Don't let the door hit you in the ass on the way out, Stevey-baby.

18 April 2006

Andreas Barth: Sarge r2: Done

The point release of sarge is done. Wow. Thanks to all the people who helped much to make the transition from Joey Schulze to Martin and me easier, and thanks to Joey for his long service as Stable Release Manager. An official announcement about the point release will follow.

Matt Brown: Desktop with Dual-DVI

I recently aquired a new desktop for work which came with a 17″ Philips LCD screen. Given that I work from home and I already owned a 17″ LCD the scene was set for a nice dual-head setup, or so I thought. Having two LCD monitors side by side, I wanted them both to be running on DVI. This was not to prove an easy task. The first hurdle was finding a video card with Dual-DVI output for a reasonable price. This was made even harder by the fact that I was originally looking for a AGP card to avoid having to upgrade the entire motherboard. Eventually we gave up on this option and I ended up getting an HP dc7600 mini tower with a PCI-e slot to use for my desktop. We also ordered a Power Color card based on the Radeon X1300 chipset to satisfy the Dual-DVI requirement. Unfortunately when the machine arrived (around the end of March) I discovered that the X1300 was not yet supported by the open source X.org drivers and, even worse, there was no support for it in the latest fglrx release from ATI either! This was sloppy checking on my part really. I’ve become so used to hardware “just working” thanks to Ubuntu that I didn’t even consider that the card might not be supported. I filed a support request with ATI asking when support for the X1300 was expected and received the standard “Linux isn’t supported, not aware of any upcoming revisions, we’ll support it when we get around to it” style response. Eventually we found an Radeon X850 based Dual-DVI PCI-e card for around twice the price of the X1300 and ordered that. I limped along with a single screen using the VESA driver until the card arrived. Initial impressions with the X850 card were not promising. Although it is supported by the radeon driver in X.org 7.0 there seems to be a bug that prevents it from working correctly in Dual-head mode. There are numerous tickets in the X.org bugzilla and the problem appears to be solved if you use DVI+VGA, but its still broken for DVI+DVI unfortunately. Next step was to try the fglrx drivers to see if I could get Dual-head working with them. More problems! fglrx doesn’t play nicely with Xen (I run my desktop in a Xen dom0 with other testing domains (for sid, etc) in domU’s). After reverting back to the standard Ubuntu kernel (eg. no Xen) I’ve managed to get a nice Dual-DVI Dual-Head setup working with the X850. However, in the process of installing the fglrx drivers I discovered that there had been a new release made on the 12th of April that among other changes added support for the X1300 chipset!!! Needless to say I’m not particularly impressed with the response from ATI’s helpdesk, given that only one week prior, they had disclaimed any knowledge of when support for the X1300 chipset would be available. As it turns out, its a bit of a non-issue anyway as I couldn’t make the X1300 work properly in a Dual-DVI setup. The secondary screen suffered all sorts of corruption and ghosting that I couldn’t work out how to remove. Running the second screen in VGA mode (via a DVI-VGA adaptor) was fine, but with a drop in quality due to the VGA connection. So after several months of waiting, almost a day of configuration twiddling and the loss of Xen. I finally have a Dual-head, DVI based desktop setup. Its very nice, but the cost is certainly high. I can’t believe that Dual-DVI doesn’t seem to be widely used, am I really that fussy about my monitors? Now that I’ve had to give up Xen, I’m trying to get VMware setup to do the job, but I’m already running in to problems there. VMware refuses to use LVM devices for raw disk access and the LD_PRELOAD solution provided by vmware-bdwrapper is not playing nicely with dapper’s multiarch setup at the moment. Hopefully with another days worth of twiddling I can get it working!

17 April 2006

Martin F. Krafft: "What goes up must come down"

After three days of intensive city soaking, it was little surprise that Saturday and Sunday nights brought cats and dogs down from the sky, almost as if St. Peter up there also wanted to play along at the Songkhran festival, but came late. Preceeded by strong winds, the rain on Saturday caused everyone to hurredly pack up their booths, leaving the wonderful markets deserted that night. Fortunately, Sunday's rain wasn't so strong, and the famous Sunday night market in Chiang Mai did take place after all -- when the first showers had settled, almost all merchants came back out onto the road and the shopping could continue. I witnessed a funny moment on the market in the afternoon: the speakers, which are installed on almost all lamp post and sometimes blast horrid music onto the streets, started playing the national anthem. In response, everyone stood up and still for its duration, almost as if time had been frozen. When the last chord stroke, the the people continued at what they were doing and the familiar buzz was quickly restored. We spent yesterday in cooking school, the same one I had been to a year before: the "Thai Chocolate Cookery Centre", which I can recommend to anyone. I chose this place again because I did not want to run the risk of ending up at one of the tourist ripoff places, but next time I shall try a different one; apparently there's a cooking school outside the city on a farm, where yuo get to harvest all herbs and fruits yourself prior to the cooking, instead of the market tour commonly done in the beginning of the day. On our way home, stuffed after 8 dishes of Thai food spread throughout the whole day, we stoped by our guesthouse from last year: the "Chiang Mai Garden Guesthouse", to say hello to the owner, Pissamorn. I was happy to find her remembering me, and all the more happy when she honestly advised us not to try "just any bamboo rafting" -- I had been spoiled by the trek she organised for us last year, which involved a morning of bamboo rafting down a river from the middle of the jungle, which you cannot reach by car. I have no problem believing her that the other travel agencies which organise rafting trips dump you just somewhere along a road on slower rivers with a far less beautiful scenery. Unfortunately, neither time nor the heat really allow us to go on the three day trip through the jungle, so we postponed the rafting to our next trip. Nevertheless, I feel very good about having Pissamorn as a reliable contact in Chiang Mai, for future trips, and in case of any problems! She also referred us to a Thai silk factory and told the owner to treat us with respect, so today (Monday), we let them pick us up and placed an order for a bunch of comfy trousers, and some silk button-down shirts; Aline got herself a nice blouse and a wonderful dress. We now have two and a half days left in Chiang Mai and have no real plans. A 1-2 day trip to Pai still seems like an option, but it's supposed to be unbearably hot up there. We'll see. A keep having recurring thoughts about my dream to move to Southeast Asia (Hanoi, to be exact) to start a computer school, and even though there are no concrete plans yet, I feel like my motivation to finish the Ph.D. rather sooner than later is on a steep incline. I could imagine tearing down my "tents" in Switzerland and to go to Vietnam for half a year or a year of language school, then see whether I manage to meet the right people to allow me to set up an existence. Alongside the computer school, my dream includes visions of a nice and comfy guesthouse where you get what you pay for, concentrating on quality rather than quantity, which by the way is what the Chiang Mai Garden Guesthouse seems to be doing. For me, that's the only way to go about anything if you want success and satisfaction, be it consulting, teaching, or a guesthouse in Asia. Again, thanks for reading along.

16 April 2006

Clint Adams: Old man sitting on the white sand

Up in the Catskills, the sun sometimes shines on a cairn. Sometimes it shines on people near that cairn. Sometimes people roll cigarettes while eying that cairn suspiciously, and sometimes one of those people has two eyes whose colors differ. This person may like David Bowie, and he may be from eastern Massachusetts, and he may like to regale his ex-girlfriend with stories of the Japanese girls he conquers in Canada. All that happens in the shadow plane, with the pale shapes, and time will not be what it seemed. Yet closer to the center of the Earth runs a stream, the centerpiece for a suffusion of lush, vegetative growth. That place in the forest, devoid of signs of vertebrate life, transcends time in a much different way. There are other places like it, but they lack one important factor. For if I am to ask the question to bring it full-circle, who is left to answer me but the dead?

Steve Kemp: I ll be with my sisters, doing it for ourselves

I’ve spent the night watching Red Dwarf and setting up a test CFEngine installation to remotely manage a number of identical hosts. Honestly I’m not sure which I enjoyed doing the most … CFEngine rocks: And much much more!

Norbert Tretkowski: Shut up

I just stumbled across some running processes on my workstation at home, namely dbus-daemon-1 and dbus-launch. According to the D-BUS website, D-BUS is a message bus system, a simple way for applications to talk to one another. Why the hell do applications need to talk to one another? Ah, I know! Finally the webcam software can tell the window manager about the weather outside...

Clint Adams: Fox mozzarella, anyone?

Ride the apologue beam .

14 April 2006

Uwe Hermann: Debian Lessons

I've stumbled over Lars Wirzenius' article Debian Lessons (Subtitle: Project management lessons from the Debian project) today. The article is from 2000 (updated 2004), but is still very, very relevant nowadays. Here's the table of contents (reading this alone would already help many projects out there, I think): Make sure to read the whole article. This compilation of tips should prove useful for many community-driven Free Software project out there.

Martin F. Krafft: Wet in Chiang Mai

We got up early this morning to catch our flight to Chiang Mai from Sukhothai Airport, the most beautiful airport I have ever seen: it's not a cement brick with squared floors, but rather a group of traditional Thai hut houses, one for ticketing and checking, one for departure, and one for arrival, and all set in a beautiful surrounding -- no wonder this airport won the Thai environmental award every year since it was first given. If you ever consider visiting Sukhothai from Chiang Mai, fly there! I can imagine arriving at that airport to be a very special experience! Following the touchdown few minutes after takeoff, we sought out a couple of guest houses and finally settled at the Awana Guesthouse, which also offered a pool, although on seeing it, it's more like a bath tub for 5 people. Whatever... I used the morning hours, during which the Thai appeared to be still sleeping to run two most important errands: first, getting my ear unclogged, and second, picking up the bag with clothing from the train station. Our guesthouse referred me to the Chiang Mai Ram hospital, a privately run clinic, and once I got there (still dry), I didn't get to read as much as a single page in my new book (The Crying of Lot 49 by Thomas Pynchon) until I was lying flat and had an English-speaking doctor examine me. He told me that the Thai put some sort of stuff (I did not understand the name of the substance) into their pools, which causes European ears to clog up frequently, and after 15 minutes of routine, I was able to hear again on my left ear. I paid just short of 20 EUR for the cure and felt so good about it and the hospital that I talked my way up to the management to make a donation -- in the amount of the estimated difference between those 20 EUR and the amount I would have had to pay in Switzerland. They said that I was the first person to ever make a donation to the clinic, the other foreigners usually only complain about the high prices. Go figure about the kind of tourist who frequents Chiang Mai. Speaking of tourists, unfortunately, this place is crowded with Europeans, and not just any of them, but the worst kind. For me, dress code means a lot, and when I see Europeans without shirts, or women in bikinis in a Bhuddist city, I sometimes wonder why these people don't simply stay home. Of course, tourism is the number one source of income for about 70% of the Thai, so it's just as well that they come, but then they should not be complaining about medical care for 20 EUR, or bargain to the minimum price for handicrafts, or annoy themselves that the tuk tuk driver just "ripped them off" by charging 60 instead of 40 Bhat (again, around 1 EUR). Cured, I made my way for the station and almost made it there dry, if it hadn't been for that damned pickup van closing in from behind and hunting my taxi for several hundred metres, just to get a shot. At the station, I took some detours to find the cargo terminal, but was then surprised at how easy it was to claim the bag, even without the receipt (which, if you will remember, was in the wallet I had lost a couple of days ago). I am really relieved, once for the clothing, and second because the bag itself was lent to me by a friend (forgive me, HP). By the time I left the station it was about noon, and there was water everywhere, but I made it to the hotel almost dry. The Thai duly respect if you have a bag, smoke a cigarette, hold a cellphone, or simply wave your hand. It goes without saying that the two massive splashed I received nevertheless were from tourists, who must have reached some sort of overpowering state of joy and didn't care about what they sprayed. When I saw some tourists splash buckets onto a couple of old people (which is a no-do), I was really ashamed. The New Year festival in Chiang Mai is said to be the biggest and most lively all over Thailand. I met Aline back at the hotel and we headed out into the centre city for yet another day of soaked clothing, and we can probably agree that the "festivities" here are second to none. This time, following the bad experience of the inferior position of a water gun on a motorcycle, we bought two puckets and got up on one of the pickups with some Thais and Burmese people speaking excellent English, and had excellent fun for an hour or two -- gettting no further than 200 metres along one of the rivers or so -- there was no driving on the roads which were filled with people and vehicles, just not touching each other, and there was water everywhere with people getting fresh canisters from the rivers all the time. We then remembered that we were wearing our last set of clothing, the other stuff being laundered and ready for pickup tomorrow, so we disembarked the truck and headed out of the city to the market in hope to find some trousers to wear, but short of a Sarong for Aline, there was nothing striking our fancy (which, mind you, isn't high. I just don't want to be wearing thick jeans in this weather). Anyway, the trousers we were wearing had dried in the mean time, and now the challenge was to make it back to the guesthouse without being splashed again -- and quite a difficult endeavour it was, but we almost succeeded, only soaking up another litre each, which, believe me, was peanuts by then. Sorry for this somewhat unexciting entry. Starting tomorrow, we'll break with the festival as we've had enough of water for the time being. On our list are a day of cooking school, the zoo, a 1-2 day treck in the hills, a seminar with monks, and, of course, a bunch of the temples of the city. Thanks again for reading along.

Jordi Mallach: 75 years of the Spanish dream

Recently Spain remembered the 65th anniversary of our tragic Civil War, an episode which broke the state in two halves which still today haven't been glued together at all. The origin of that nightmare is the dream of many Spanish people of the early 20th Century. In the morning of the 14th of April, 1931, the Second Spanish Republic was proclaimed in Madrid, after two days before, a majority of republican and leftist parties won the local elections; many people celebrated throughout the Spanish territory, and the tricolour flag was shown in many town hall buildings. With the king in exile after these quick happenings, Spain was again a Republic, as decided by the election results. The Republic brought many social measures to Spain: women suffrage, eight-hour day and many other labour related improvements. The nobility titles were abolished, and those properties were confiscated by the government. And this was just the provisional government. All of this is regarded like a big social and cultural revolution, which was just starting. Not everyone was happy about this, of course. The newly approved Constitution of December 9 gave the government power to confiscate many of the Church's properties, and limit their great power in political matters. Soon, the episcopacy came with a strategy to defeat the Republic in any possible way. The Royalists were also not happy. There were a series of revolts in the South, and an attempt of coup d'etat by General Sanjurjo. These attacks were repealed; the Republic was still strong. In 1933, the Anarchists started to be seriously unhappy about the moderate path the government was leading and started striking, which led to violent repression by the Government. The General elections of November brought a victory of the right and extreme-right, and many social and anti-church measures were repealed. Riots and strikes spread throughout the territory. The Martial Law proclaimed by the right wing government resulted in thousands beings imprisoned. Things went even worse when three ministers of the fascist CEDA entered the Republican Government. A big worker uprise started the 1st of October in Asturies, and Catalunya proclaimed the Catalan Republic. The revolts were supressed by General Franco, who would be well known in the world just a few years later. Thousands were killed and injuried during the few weeks of revolt, and the Socialist Party was dissolved, leaving the Spanish Courts with barely no left representation. The next years saw a very unstable government from the right due to internal disputes within the parties that formed it. New elections were called in 1936, and the left united under the Popular Front, which won by a slight margin; Manuel Aza a was the new president. The right, the church and the army continued to undermine the Republic in any possible way. In an attempt to make the military heads more loyal to the established government, the fascist Falange Espa ola was dissolved. The 2nd Spanish Republic received a massive blow on the 17th of July, 1936 when Franco and other generals attempted a new coup d'etat in the Northern African territories. The Republic started to die as people started fighting the coup back, and the Spanish Civil War started throughout the territory. With the aid of Fascist Germany and Italy, Franco managed to seize control of more and more areas of Spain during the nearly three years of war, and the Government of the Republic had to move a number of times, to Val ncia and Barcelona. In January 1939, most of Spain was in Franco's hands, and Catalunya soon fell. Two months later, the fascist troops entered Madrid, and hours later, Val ncia surrended. Still today, people talk about dos Espa as , the victorious and the defeated. Still today, the is much difficulty in having official recognition for the thousands who died while defending what a majority of people had voted for in a democratic way. Still today, one of the major political parties in Spain refuses to acknowledge what the forty years of Franco meant for the disidents, for the exiled, and for the dead. They are the legacy of Franco. Today Spain celebrates the 75th anniversary of our Second Republic, with many events in many cities, which will be ongoing for a few weeks. Izquierda Republicana has a good list of events.

13 April 2006

Matt Brown: 2.6 Suckiness

Has anyone else noticed a sharp decline in the quality and stability of the 2.6 kernels recently? I know that they’ve supposedly done away with “stable” releases and changes are being merged from the development trees straight into the 2.6 mainline, but surely we can still expect some level of stability. I’ve run into some fairly major problems lately. In early December I tried to upgrade our Biscuit PC distributions kernel package from 2.6.13.1 to 2.6.14 but was stymied by the fact that 2.6.14 seems to have completely removed support for building out of kernel modules against the kernel headers only, the full kernel source is now required to be present. This does not play nicely with Debian kernel packages. I haven’t had time to try 2.6.15 yet to see if this change has been reverted, but its a fairly major thing to drop support for and completely removes the ability for me to build packages for external drivers like madwifi. Today I was upgrading a machine with software raid from Woody -> Sarge and proceeded to upgrade the kernel too. I pulled down a copy of 2.6.15.4, ran make oldconfig and then verified that all the crucial options were still selected (raid, promise controller, e100, etc). make-kpkg, dpkg -i, reboot. BANG.

VFS: Cannot open root device "md0" or unknown-block(9,0)
Please append a correct "root=" boot option
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(9,0)

A quick investigation revealed the promise controller as the source of the problem

PDC20267: IDE controller at PCI slot 0000:02:0e.0
PDC20267: chipset revision 2
PDC20267: ROM enabled at 0xf4640000
PDC20267: 100% native mode on irq 22
PDC20267: neither IDE port enabled (BIOS)

Now, the Promise controllor is certainly not disabled in BIOS, and 2.4.21 manages to boot off it just fine so what is wrong with 2.6.15!? Google suggested that I needed to enable the PDC202xx_FORCE option, (which was enabled in 2.4.21 but in 2.6.15 is only available if you happen to select the completely unrelated driver for the next model up promise card to what I have - a bug that has apparently been acknowledged since 2.6.9 but still not fixed!!), however that made no difference whatsoever. After a couple of hours of fiddling around with various kernel settings and boot options (did I mention this machine is 200km away from me…) I gave up and started trying early kernel versions starting with the existing 2.6.13 kernel I was using for the Biscuit PC distribution, which worked first time. So far I’ve not been able to find any other reports of problems with 2.6.15 and the Promise drivers, but from what I saw today they are completely non functional. The common argument I seem to hear when I usually mention this subject (2.6 suckiness) is “but you should just use your distributions kernel”, to which my reply is “but I do…”, for my desktop. The standard Ubuntu kernels work great and I have had no reason to meddle with them. However my desktop needs are a far cry from what I need to be able to do for the servers I maintain at work, or the kernel packages that I need to build for our BiscuitPC distribution. I’m certainly not one of those gentoo type people that need the latest and greatest the instant that it comes out, and I don’t try and run the latest kernel just for the sake of it. But the fact is, new kernels bring new features (not to mention bugfixes and security patches) that are frequently needed, especially in the networking and wireless areas. When I have to spend several days debugging and testing every time we need a new kernel only to find some critical flaw that prevents us from using it I have to stop and wonder whether the current kernel development process is working. Have others had similar experiences with 2.6 kernels recently, is the fact that the latest kernel-image I can find in sid is 2.6.8 confirmation that it’s not just me, or am I really just overly angry due to the hours I’ve spent battling 2.6 lately? Update: Several people have pointed out that I failed to look for linux-image instead of kernel-image and that 2.6.15 is already in sid. My mistake. And yes, I do plan to file bugs, not just rant, but sometimes you need to vent first :)

12 April 2006

David Welton: Ruby vs Tcl, round 2

Ding ding. (Round 1 - for those who missed it) Kidding aside, remember that I like and respect both of them. Libraries In the first article, I mentioned that Ruby has a lot of momentum, which is a pleasant change from Tcl's relative 'uncoolness' amongst the Web 2.0/O'Reilly/"next big thing" crowd. That said, there are still places where that momentum hasn't taken it. I set about writing some code that I'd wanted to play with that involves sending some email. Something that's very easy in Tcl: http://tcllib.sourceforge.net/doc/smtp.html (towards the end of thepage). Python seems to have a pretty complete email system too, for that matter: http://docs.python.org/lib/module-email.html. So it appears that, based on a sample of one attempted task (how's that for statistics?), that Ruby is still lacking a few things in its standard distribution. Note that this functionality is available elsewhere (TMail, to cite one), but email is ubiquitous enough that it ought to be in the standard library. Command line swiss-army knife While Ruby's OO system gives it a head start when you need to create a larger system with distinct parts, it can still be used as a quick'n'dirty scripting language for quick one-off jobs. From the man page:
% cat /tmp/junk
matz
% ruby -p -i.bak -e  $_.upcase!  /tmp/junk
% cat /tmp/junk
MATZ
Very handy. Tcl's command-based syntax just isn't quite as quick for those sorts of operations, so Ruby wins hands down here. I've suggested that the Tcl folks distribute a second program that takes a lot of the Perl-style command line arguments for this sort of work, but the idea doesn't seem to be of much interest. C API's On another tack completely, one of the things that originally drew me to Tcl was its very, very nice C API. It's documentation is clear, and thorough, and the API itself lets you get involved in pretty much any aspect of the language that you want. This makes sense, because when Tcl was originally created by Dr. Ousterhout in the late '80ies, the idea was to create a scripting language as a C library that would be loaded into other programs. The language has always been faithful to its heritage, and to this day I find it lots of fun to merge Tcl with C code. I have to admit that I don't know the Ruby API all that well, but what I have looked up looks pretty nice. To a certain degree, it's comparing apples and oranges, because Ruby requires you to deal with the very object oriented nature of the language, whereas Tcl is a lot more direct. The Programming Ruby book's coverage of the subject also leads me to believe that Tcl really gives you access to more stuff (interpreters, channels, events, and many other parts of the system). Ruby seems to take an approach that might best be described as letting you write Ruby in C - meaning that you create Ruby objects, use their methods, get their values, and so on, but you're still really dealing with Ruby. This has a certain elegance, but sometimes it's necessary to muck about with things at a lower level. I don't know how it works out in practice, but Ruby has a bit more infrastructure in place for actually building extensions once you've created them. Tcl has "tea", which is a set of m4 macros, but anyone can tell you that the auto tools are not much fun to work with (going to the dentist is more fun) - anything that keeps me away from them is welcome. Garbage collection One of the more interesting aspects of the different approaches to C interoperability is the fact that Tcl uses a simple, robust, straightforward reference counting system to keep track of, and throw away resources that are no longer used. Ruby has a mark and sweep garbage collector, which is probably more sophisticated, but also more complicated, and requires a bit more support from the programmer initially. The benefit is that once things are set up, they require less keeping track of, because you hand off memory management to the computer. From the end user's point of view, Ruby wins here, but if you happen to be writing a C extension, I could see it being more difficult to write and debug to this API, although Tcl has its own warts, one of the worst of which is the fact that Tcl values must be convertible back and forth to strings, so that for things like a file handle that can't really survive the round trip, because it's just a pointer, you use a hash table and some sort of string to hold onto the object:
 "file1" -> int fd1
 "file2" -> int fd2
which makes it impossible to GC these values. I suspect that both approaches have their merits - Ruby's is more elegant, but Tcl's is simple and rugged. Licensing Bouncing back to something completely non-technical, Ruby's licensing is either the GPL, or their own license. If I understand things correctly, you can get around the GPL's "viral nature" by simply renaming things, if you have a need to include Ruby in a proprietary product:
  1. You may distribute the software in object code or executable form, provided that you do at least ONE of the following: a) distribute the executables and library files of the software, together with instructions (in the manual page or equivalent) on where to get the original distribution. b) accompany the distribution with the machine-readable source of the software. c) give non-standard executables non-standard names, with instructions on where to get the original software distribution. d) make other distribution arrangements with the author.
So it seems that you're ok if you just call it something else. However, the license goes on to talk about several other files in the core distribution:
  1. You may modify and include the part of the software into any other software (possibly commercial). But some files in the distribution are not written by the author, so that they are not under this terms. They are gc.c(partly), utils.c(partly), regex.[ch], fnmatch.[ch], glob.c, st.[ch] and some files under the ./missing directory. See each file for the copying condition.
Looking through the LEGAL file in the distribution shows that there are files distributed under other terms. Of course, they're all free software, but some are LGPL, some BSD, and a few others for good measure. Tcl's licensing, on the contrary, requires very little understanding. The language was developed at the University of California, Berkeley, and the license remains BSD. This goes for many of the libraries and extensions as well. If you need to embed a language in your proprietary system, Tcl and its libraries present no problems whatsoever. Of course, I prefer to work with open source code and communities, but that's not possible 100% of the time, so it's always nice to know things are free and clear, should that need arise. Internationalization This is something the Ruby folks know they need to fix, and are working on, so it's not worth dwelling on it much, but it is a proud point for the Tcl community. Tcl has had very nice i18n setup for many years, at this point - since the 8.0 release. It's built into the language, so that everything works with it. You have commands to set encodings of IO channels, and even munge strings. Tcl wins here - no contest. As I continue exploring Ruby, I think I'll find more stuff to compare with Tcl, so we won't ring the final bell just yet.

John Goerzen: Tuttle: Neither Gone Nor Forgotten

So just when I thought the whole Tuttle story had wound down, more starts appearing.

The Register has a new article: Only "freaks" waste their time with Linux in Oklahoma. In it, they posted a video clip from an Oklahoma TV station that called Tuttle "an international laughing stock." Quite a funny little piece. The Register also mentioned that the Tuttle city manager left work when he heard a TV crew would be there to interview him. Favorite quote:

Instead of a website, Taylor discovered an Apache server configuration page that mentioned CentOS. He's an Oklahoma man, and the Apache feather must have proved frightening.


Today's next little piece of fun is this page at the Tuttle Times. Look on the right, under Links. See the link that reads "Example of CentOS test page"? Notice where it points to. Yes, that's right, www.tuttlechamber.org. Click on it, and sure enough, up comes the infamous test page. So the Tuttle Chamber of Commerce apparently is getting ready for round two...

And while we're speaking of the Tuttle Times: they have published a letter to the editor from Johnny Hughes, the CentOS lead developer that was on the other end of those exchanges with Tuttle. I think Johnny wrote an excellent little piece there.

And finally, another funny headline from the Tuttle Times homepage: "Prosecution attorney presents complete case." I am glad to hear that at long last this terrible scourge of incomplete cases has been brought to an end. But beware, this shocking story is not over yet! The next article is "defense raises compelling questions." Another first for Tuttle?

Aigars Mahinovs: Berlin Schoenefeld airport rant rap

Berlin Schoenefeld airport first impressions - chaotic, lots of long walkable corridors and staircases without elevators, outdoor walking stretches, anal security with super extra checks announced on loudspeaker, (luckily) lacky computer system, Huge gaps between connections, terrible tax free zone where CCs are not accepted, no power in sockets, no free wifi, existing wifi doesn't work, mini mirrors in pissoirs, 1 monitor per 200+ meters, usually not visible from sitting places, some monitors do not show all info, impossible to find out where the flight will be until it is open, no healthy food in tax free zone at all, delays are announced in German but do not show up on monitors, no seats near gates. I'll expand this article with more details when I have more time (yeh, like that's going to happen :P).

MJ Ray: Reforming the NM Process

Suggestion: Ask advocates to take on the formative/ educational part of the current AM role and prepare a summary in a given format about the applicant. The summary could then be used as the basis for simpler summative testing by an AM, with swift referral back to advocate and applicant with direction, if the AM or FD is not satisfied. [link to mailing list post with more explanation and references]

Matt Brown: Loading GPG / SSH Keys from a USB Key, Round 2

Back in January I talked about setting up some scripts to automatically load ssh/gpg keys into the appropriate agents when you plugged in a UBS key. I had quite a number of people ask me for my scripts, but they just weren’t quite ready. I’m still not entirely happy with the solution that I’ve come up with, but I figure its working well enough to get some feedback now. It’s based very heavily on the usb-storage script originally written by Sean Finney, so I think that means I owe him Pizza now. However while its based on the usb-storage script it has changed in a few major ways: The mounting of the partition is the key change and I’m still tossing up whether the way I’m doing it is best or whether I should return to having it handled by the script. The primary reason for changing it was to allow the partition to be mounted in a stable location (as opposed to a random directory under /var/tmp) so that I could symlink from appropriate places in my home directory to the partition on the key. The symlinking is needed to keep GPG happy as the gpg-agent seems to store only the passphrase and requires access to the private key whenever you need to sign/encrypt something. The way ssh-agent works is much nicer in this respect, in that once you’ve loaded a key into the agent it doesn’t need to refer to it on disk again. Currently I’m using autofs to mount the partition as needed and this seems to be working well. It’s probably possible to go back to mounting the partition at a stable location from within the script without too much hassle. You can grab the script from http://www.mattb.net.nz/debian/misc/manage-keys The remaining details for my configuration are below: First, setup udev to rename the key partitions to a static name and then fire the script at the appropriate times
/etc/udev/rules.d/usbkey.rules

ACTION=="add", KERNEL=="sd?2", SYSFS serial ="A0494386139B005B", NAME="%k", SYMLINK="usbkeys", RUN+="/usr/local/bin/manage-keys"
ACTION=="remove", KERNEL=="sd?2", RUN+="/usr/local/bin/manage-keys"
Then setup autofs to mount the partition on demand
/etc/auto.master

/media/usb /etc/auto.usbkey --timeout=10

/etc/auto.usbkey

keys -fstype=ext3,ro,noatime,nosuid,nodev :/dev/usbkeys
I keep only id_dsa and secring.gpg on the key and symlink from the appropriate places in my homedir to /media/usb/keys/

matt@argon:~$ ls -l .ssh/
total 76
-rw------- 1 matt matt 612 2006-04-12 22:45 authorized_keys
-rw-r--r-- 1 matt matt 2694 2006-04-12 22:46 config
lrwxrwxrwx 1 matt matt 22 2006-04-13 01:08 id_dsa -> /media/usb/keys/id_dsa
-rw-r--r-- 1 matt matt 612 2006-04-12 22:46 id_dsa.pub
-rw-r--r-- 1 matt matt 58851 2006-04-12 23:10 known_hosts
matt@argon:~$ ls -l .gnupg/
total 2336
-rw-r--r-- 1 matt matt 126 2006-04-12 22:56 gpg.conf
drwx------ 2 matt matt 4096 2006-04-12 23:07 private-keys-v1.d
-rw------- 1 matt matt 1175737 2006-04-12 23:29 pubring.gpg
-rw------- 1 matt matt 600 2006-04-13 01:51 random_seed
lrwxrwxrwx 1 matt matt 27 2006-04-13 01:08 secring.gpg -> /media/usb/keys/secring.gpg
-rw------- 1 matt matt 10560 2006-04-12 23:27 trustdb.gpg
And that’s basically it. The script takes care of the rest. The main problem I’m having with the script at the moment is that it doesn’t autolock the screen when you remove the key because gnome-screensaver-command is lacking the necessary environment variables to find the DBUS socket it needs to talk to its backend. Need to read up on DBUS/gnome-screensaver and sort out how to fix that tommorrow. Update: Updated example udev config so it doesn’t run a script out of /home

Next.

Previous.