Search Results: "zed"

17 January 2009

David Moreno: Introducing Apache2::EmbedFLV Exposing FLVs with Flowplayer and a customized interface

Situation You have a bunch of Flash videos, FLV files. Every once in a while you dump new files on your publicly accessible Apache directory. You would like to give your users the ability to play those FLVs within a webpage you provide, instead of just serving them the files for a direct download. Maybe you want this for all FLVs, not only an specific directory. Solution Apache2::EmbedFLV!
<Files ~ "\.flv$">
  SetHandler modperl
  PerlResponseHandler Apache2::EmbedFLV
</Files>
So now, all your FLV files will be served through Apache2::EmbedFLV on mod_perl with a neat interface you can define yourself, and using the very nice and GPL ed Flowplayer. Apache2::EmbedFLV uses a default template, but you can define your own with:
<Files ~ "\.flv$">
  SetHandler modperl
  PerlSetVar template /path/to/your/template.tt
  PerlResponseHandler Apache2::EmbedFLV
</Files>
Also, Apache2::EmbedFLV expects to find Flowplayer (flowplayer.swf and flowplayer.controls.swf) on http://your.server.com/flowplayer.swf, the root of your server. So you can do something like this to make it work:
Alias /flowplayer.swf /home/web/flowplayer/flowplayer.swf
Alias /flowplayer.controls.swf /home/web/flowplayer/flowplayer.controls.swf
Or, you just define the flowplayer variable:
<Files ~ "\.flv$">
  SetHandler modperl
  # relative to the document root
  PerlSetVar flowplayer /swf/flowplayer.swf
  # or absolute:
  PerlSetVar flowplayer http://my.other.server/was/hacked/flowplayer.swf
  PerlResponseHandler Apache2::EmbedFLV
</Files>
Action! You can see it in action at http://axiombox.com/apache2-embedflv/flv. This Radiohead video is particularly cool :-) Getting it UPDATE: Oops! Fixed link to Flowplayer s website! flowplayer.org. Thanks to those who noticed and let me knew.

15 January 2009

Joey Hess: fakechroot warning label

fakechroot, or any similar tool that uses a facility such as LD_PRELOAD, is not suitable for use in a security context. Such tools are way cool, but can be trivially broken out of by the attacker. Kapil Paranjape suggests using fakechroot for locking down ssh authorized keys for unison. The idea being unison will run in a (fake)chroot, set up by a regular, non-root user, and will thus be limited to the files you want it to access. First problem is, any statically linked executable on the system (unison can be used to upload one too) is immune to the fakechroot.
joey@gnu:~>FAKECHROOT_EXCLUDE_PATH=/bin fakeroot fakechroot chroot /tmp/empty /bin/sh
sh-3.2# ls
sh-3.2# ls /
sh-3.2# cd ..
sh-3.2# ls
sh-3.2# sash
Stand-alone shell (version 3.7)
> cd ..
> ls
empty  gconfd-joey  gpg-XhukMB  keyring-ZxSuTB  orbit-joey
> cd ..
> ls
bin    etc         lib     opt   selinux  usr
Getting unison to run a static executable in a setup such as Kapil describes is left as an exercise for the more determined attacker than I. Here, though, is an easier way.
sh-3.2# ls /
sh-3.2# ls /bin/..
bin    etc         lib     opt   selinux  usr
To understand why this works, notice that I left /bin excluded when I ran fakechroot. (Still .. Is this a bug in fakechroot?) Or, you could use unison to upload a symlink:
joey@gnu:~>ln -s / /tmp/empty/root
joey@gnu:~>FAKECHROOT_EXCLUDE_PATH=/bin fakeroot fakechroot chroot /tmp/empty /bin/sh
sh-3.2# ls root
bin    etc         lib     opt   selinux  usr

Moral: Taking a program, be it fakechroot or unison, that was never designed with security in mind, and trying to use it as a security barrier, is an open invitation to pain.

Kapil Paranjape: Securing Synchronisation with unison (Mostly Wrong)

There are a number of documents about how to permit ssh access to run rsync or unison for remote synchronisation by an appropriate configuration of the authorized_keys file. Of these the best two are probably those by St phane Kattoor and Christian 'Greek0' Aichinger. Joey Hess also explains some of the pitfalls. The problem is the familiar one: to limit the file-system hierarchy accessible. The humble chroot is a natural way to implement such restrictions which is probably what led "Greek0" to suggest the use of dchroot. This is indeed a fine solution ... except, how does one implement it if one is not root on the server machine? WARNING: The rest of this entry is wrong as was pointed out by Joey Hess. See the update at the bottom. The package fakechroot by Piotr Roszatycki provides a way out. The problem I had was as follows: A recent enough version of fakechroot (version 2.8 worked) allows one to do make use of environment variables as follows:
LD_PRELOAD=libfakechroot.so
LD_LIBRARY_PATH=/usr/lib/fakechroot:/usr/lib64/fakechroot:/usr/lib32/fakechroot:/usr/lib:/lib
FAKECHROOT=true
FAKECHROOT_VERSION=2.8
FAKECHROOT_EXCLUDE_PATH=/bin:/lib:/usr
export LD_LIBRARY_PATH LD_PRELOAD
export FAKECHROOT_EXCLUDE_PATH FAKECHROOT FAKECHROOT_VERSION

After this setup one can run
HOME=/ chroot $HOME/some/dir /usr/bin/unison -server

and the unison server1 will only be able to view /bin, /lib, /usr and $HOME/some/dir; the latter will be mapped to /. (One needs to set the $HOME variable to something sensible for unison to function.) One should not be tempted to create subdirectories of $HOME/some/dir containing only the "relevant" portions of the system directories for unison. The reason is that those files will be created as me and so could be overwritten by unison. The creation of a suitable entry in authorized_keys to use this is an easy exercise! UPDATE: As Joey Hess has noted:
Taking a program, be it fakechroot or unison, that was never designed with security in mind, and trying to use it as a security barrier, is an open invitation to pain.
I had thought about the problem of uploading static-linked binaries and had imagined that it had been overcome. However, the basic facts in this case are:

  1. For those trying this out at $HOME with some terminal command like /bin/sh instead of /usr/bin/unison a suggestion is to add /dev to the FAKEROOT_EXCLUDE_PATH variable so that you have access to your terminal. Be aware that giving remote access to /dev may have unintended consequences!

14 January 2009

David Welton: Hosting, Commodities, and "The Cloud"

Anyone connected to the world of IT has been bludgeoned over the head with "cloud" news lately, to the point where the term has become vague and mostly a buzzword. There is, however, something behind the phenomenon, described in Nick Carr's book The Big Switch, with more computing power being centralized at large data centers where economies of scale come into play. I had an interesting chat with Marco D'Itri a while back, about hosting and commodities. It's clear that there is some commoditization going on, but he maintains that hosting is not a commodity. I've been thinking about it and the conclusion I've come to is that some parts of the business are certainly commodities: disk space, memory, bandwidth, and processor cycles. Those things, are, ultimately, what we want to buy when we buy 'hosting'. However, the bits and pieces between that, and people who build on top of those services (i.e. someone who runs a web site) are not really a commodity, yet. Customer service, for instance, might vary a great deal between providers. What will happen in that space, will we see a baseline price for the commodities, and hosting resellers built on top of that that offer different levels of service? I do think that the "mom and pop" hosting type of situations will gradually disappear in favor of larger data centers that can take advantage of economics of scale, though. Also, as I've written about in the past, in Web Hosting - A Market for Lemons, there are some serious information asymmetry issues - how do you know the people providing your service are serious? How do you know they're using good components that wont' break often, rather than cheap junk that will lead to frequent outages? If you have the resources, you can build a system like Google's, where it doesn't matter what fails, it just works around it, but the basic tools that most of us are working with right now aren't that high level. I was reminded of the information asymmetry issue by this article, written by the Dreamhost folks, Web Hosting's Dirty Laundry, which describes how they caught a 'review' site trying to get money from Dreamhost for positive reviews, which is interesting in light of the lemon problem. Wikipedia has some criteria for a lemon market here: http://en.wikipedia.org/wiki/The_Market_for_Lemons#Criteria, which include the following:
Deficiency of effective public quality assurances (by reputation or regulation and/or of effective guarantees / warranties
If it's difficult to get real, honest, impartial reviews of hosting services, that is a push in the direction of 'lemons'. Of course, it's not impossible to get this information, but it seems that a lot of us still go by "hearsay" - what others we know use and report to be ok. To compare it with another product, I'd probably ask around to friends prior to purchasing a new car, but whatever I get is likely to work ok, even if it's not the absolute best. On the other hand, the wrong hosting provider might be very much a "fly by night" operation that leads to a lot of downtime, so I'm far more likely to listen to what other people have to say, and be far more cautious about buying "any old thing". Opinions? Comments? Thoughts? Where do you see this industry going?

David Welton: Hosting, Commodities, and "The Cloud"

Anyone connected to the world of IT has been bludgeoned over the head with "cloud" news lately, to the point where the term has become vague and mostly a buzzword. There is, however, something behind the phenomenon, described in Nick Carr's book The Big Switch, with more computing power being centralized at large data centers where economies of scale come into play. I had an interesting chat with Marco D'Itri a while back, about hosting and commodities. It's clear that there is some commoditization going on, but he maintains that hosting is not a commodity. I've been thinking about it and the conclusion I've come to is that some parts of the business are certainly commodities: disk space, memory, bandwidth, and processor cycles. Those things, are, ultimately, what we want to buy when we buy 'hosting'. However, the bits and pieces between that, and people who build on top of those services (i.e. someone who runs a web site) are not really a commodity, yet. Customer service, for instance, might vary a great deal between providers. What will happen in that space, will we see a baseline price for the commodities, and hosting resellers built on top of that that offer different levels of service? I do think that the "mom and pop" hosting type of situations will gradually disappear in favor of larger data centers that can take advantage of economics of scale, though. Also, as I've written about in the past, in Web Hosting - A Market for Lemons, there are some serious information asymmetry issues - how do you know the people providing your service are serious? How do you know they're using good components that wont' break often, rather than cheap junk that will lead to frequent outages? If you have the resources, you can build a system like Google's, where it doesn't matter what fails, it just works around it, but the basic tools that most of us are working with right now aren't that high level. I was reminded of the information asymmetry issue by this article, written by the Dreamhost folks, Web Hosting's Dirty Laundry, which describes how they caught a 'review' site trying to get money from Dreamhost for positive reviews, which is interesting in light of the lemon problem. Wikipedia has some criteria for a lemon market here: http://en.wikipedia.org/wiki/The_Market_for_Lemons#Criteria, which include the following:
Deficiency of effective public quality assurances (by reputation or regulation and/or of effective guarantees / warranties
If it's difficult to get real, honest, impartial reviews of hosting services, that is a push in the direction of 'lemons'. Of course, it's not impossible to get this information, but it seems that a lot of us still go by "hearsay" - what others we know use and report to be ok. To compare it with another product, I'd probably ask around to friends prior to purchasing a new car, but whatever I get is likely to work ok, even if it's not the absolute best. On the other hand, the wrong hosting provider might be very much a "fly by night" operation that leads to a lot of downtime, so I'm far more likely to listen to what other people have to say, and be far more cautious about buying "any old thing". Opinions? Comments? Thoughts? Where do you see this industry going?

12 January 2009

Theodore Ts'o: Wanted: Incremental Backup Solutions that Use a Database

Dear Lazyweb, I m looking for recommendations for Open Source backup solutions which track incremental backups using a database, and which do not use hard link directories. Someone gave me a suggested OSS backup program at UDS, but it s slipped my memory; so I m fairly sure that at least one or more such OSS backup solutions exist, but don t know their names. Can some folks give me some suggestions? Thanks!

horizontal separator There are a number of very popular Open Source backup solutions that use a very clever hack of using hard link trees to maintain incremental backups. The advantage of such schemes is that they are very easy to code up, and it allows you to easily browse incremental backups by simply using cd and ls . The disadvantage of such schemes is that it creates very large number of directories blocks which must be validated by an fsck operation. As I ve discussed previously, this causes e2fsck to consume a vast amount of memory; sometimes more than can be supported by 32-bit systems. Another problem which has recently been brought home to me, is how much time it can take to fsck such file systems. This shouldn t have come as a surprise. Replicating the directory hierarchy for each incremental backup is perhaps the most inefficient way you could come up with for storing information for an incremental backup. The filenames are replicated in each directory hierarchy, and even if an entire subtree hasn t changed, the directories associated with that subtree must be replicated for each snapshot. As a result, each incremental snapshot results in a large number of additional directory blocks which must be tracked by the filesystem and checked by fsck. For example, in one very extreme case, a user reported to me that their backup filesystem contained 88 million inodes, of which 77 million of them were directories. Even if we assume that every directory was only a single block long, that still means that during e2fsck s pass 2 processing, 77 million times 4k, or 308 gigabytes, worth of directory blocks must be read into memory by e2fsck s pass 2. Worse yet, these 308 GB of directory blocks are scattered all across the filesystem, which means the time to simply read all of the directory blocks so they can be validated will take a very, very, long time indeed. The real right way to do implement tracking incremental backups is to use a database, since it can much more efficiently store and organize the information of what file is located where, for each incremental snapshot. If the user wants to browse an incremental snapshot via cd and ls , this could be done via a synthetic FUSE filesysem. There s a reason why all of the industrial-strength, enterprise-class backup systems use real databases; it s the same reason why enterprise class databases use their own data files, and not try to store relational tables in a filesystem, even if the filesystem supports b-tree directories and efficient storage of small files. Purpose written-and-opimzied solutions can be far more efficient than general purpose tools. So, can anyone recommend OSS backup solutions which track incremental backups using some kind of database? It doesn t really matter whether it s MySQL, Postgresql, SQLite, so long as it s not using/abusing a file systems hard links to create directory trees for each snapshot. For bonus points, there would be a way to browse a particular incremental snapshot via a FUSE interface. What suggestions can you give me, so I can pass it on to ext3/4 users who are running into problems with backup solutions such as Amanda, Backup-PC, dirvish, etc.? Update: A feature which a number of these hard-link tools do right is that they do de-duplication; that is, they will create hard links between multiple files that have the same contents, even if they are located in different directories with different names (or they have been renamed or their directory structure reorganized since they were originally backed up) and even if the two files are from different clients. This basically means the database needs to include a checksum of the file, and a way to look up to see if the contents of that file have already been backed up, perhaps with a different name. Unfortunately, it looks like many of the tape-based tools, such as Bacula, assume that tape is cheap, so they don t have these sorts of de-duplication features. Does anyone know of non-hard-link backup tools that do de-dup and which are also Open Source?

9 January 2009

James Morrison: Grand Canyon for new years

Sarah came up a great idea for us to do over the long, long weekend after New Years. She wanted to go to the Grand Canyon, and hike in it. I, also enjoying hiking trips, went along.

We organized the trip rather late, I think on the 27th of Dec from my parents house (I think my mom enjoys being around for trip planning since it reminds her of the trips she should plan). Given our late planning we could only get a reservation at Phantom Ranch for the night of the 1st. So the trip plan was get back to SF on 30 Dec 2008. Take bart from the airport, sleep/pack (in either order), then drive to Williams, AZ on the 31st. Take a bus the to Grand Canyon on the 1st, hike down to Phantom Ranch, sleep, hike back up to the top, see the Grand Canyon from the top. Take a bus back to Williams and drive somewhere near the Hoover Dam. Sleep. Drive, see the Hoover Dam, get to Las Vegas, and see the Cirque du Soleil show Ka. Sleep. Drive home.

So that was the plan, now for the execution. We got back to SF on time and picked up our bags from the baggage claim without any issue. The next morning we got up and moving. The optimistic hope was that we would be on the road by 8am to Williams, then stop in Fresno for gear and food. It turns out we weren't ready to go until 10, so we got hiking poles and fake crampons at the REI in SF. We also did our grocery shopping in SF. We were on the road to Williams by noon. We shared the driving Sarah took the parts with traffic, I took the 4 and two lane highways. The fortunate part about this is that I drove through the San Joaquin. One the way there, it was basically IFR conditions (I had no instruments), so I was driving through a cloud (some call it fog) and I couldn't see anything that wasn't on the road. It was really pretty but not the best for a road with lots of ups, downs and turns. I felt like a race car driver. The other interesting part (at least while I was driving) was going through the Mojave desert at sundown. I don't think Sarah has any pictures, but it was very pretty.

Finally we arrived in Williams, AZ and got to the Grand Canyon Railway Hotel, at 2345hrs, (for those counting that means we were on the road for 10h 45m). We checked in by 2358hrs on 31 Dec 2008. So we stood by the fire for two minutes, counted down, and kissed for New Years.

In the morning, things went as expected, we backed our bags to hike 10 miles, and put the rest of the stuff in the car. We got in a van that took us to the Grand Canyon. Our driver up to the Grand Canyon was very nice and showed us the sites along the way. We also met two Japanese exchange students on their way to see the Grand Canyon.

On the way was slow since we took a lot of pictures (Sarah has them all since I lots my 1GB SD card before it made its way into my camera). Unfortunatly, Sarah got tired on the way down, and also hurt her ankle. So we stumbled our way to Phantom Ranch around 1600. From the time we got to the ranch until supper at 1830, we laid back and relaxed, we needed it, our feed were sore and Sarah iced her ankle. The food at Phantom Ranch was good, not great, and there was enough of it after being on our feet all day. At end end of the day, we slept, as planned. In the morning we got up for the early breakfast. Again, it was decently, but not great, but there was enough food. Unfortunatly, Sarah was sick (She'd figured out how to deal with her ankle though) (Oh, and she isn't pregnant). So we harrassed the rangers, got some imodium, and started on our way back up the Bright Angel Trail, we took the Bright Angel Trail down and were planning on the South Kaibab trail up but the Bright Angel Trail has places to stop the South kaibab trail doesn't. Again were were planning on an early 630hrs start, but started a little later at 745hrs. We used our poles with gusto on the way back up and made it up by 1345, 6hrs on the way back up, the same time it took us to get down. The rest of the daylight hours was spent taking the village bus around the Grand Canyon village and seeing the sights from the top.

After the Grand Canyon, we drove to Kingman, stayed there, then continued on, saw the Hoover Dam, it is like Itaipu, but less political and taller, then went on to vegas. In Vegas we saw the inside of a couple hotels, I spent $1 on a slot machine, then we say Ka. Ka is an amazing show, I don't think it really suck in until after the show was over all the things the performers pulled off. That said, the stage itself was an engineering marvel that I watched almost as much as the performers.

After Vegas, the drive back was mostly uneventful, the fog in San Joaquin was a little lighter, but still heavy, Mojave is prettier at sunset and it is still good to sleep in my own bed.

8 January 2009

Sven Mueller: About Usability

Sami Haahtinen wrote a nice post about usability. I do mostly agree with him, except for one little thing: A few years back, I noticed that I often started as a kind of Joe User with new applications, and often even stayed that way, often wishing that the UI of that application was simpler or at least made it more obvious which options are important and which I could most likely keep at their defaults.
Yet I am a system administrator and programmer/developer, so most people would probably consider me as an advanced user by default (wether that is correct in any given context or not, for example I still don t really grok GIMP).
Also I did have quite a lot of contact with users that have very little experience, knowledge and interest in computers and software and only use them to achive certain goals. Anyway, I m quite sure most readers of this blog are aware that Linus Torvalds once complained about the Gnome printing dialog being simplified way too much. And at that time, I had to agree (note that I didn t check out Gnome again since those days, at least 2 years ago). What I really wonder (especially since I realized this in some of my own applications) is why it is so hard for developers to add some additional checkbox or button that enables/disables advanced options. For example, let s take an applications printing dialog. By default, it would only allow the selection of a printer, orientation (if sensible) and (if the selected printer supports more than one) the paper size. Now advanced options might include duplex printing (automatic or manual), printing mutliple pages on a single sheet of paper, printing in grey on color printers, These options might be of use to anyone, but would most likely confuse beginners. So what I did in most of my little application was to just show the basic options and add an advanced options button which provided access to additional functionality which was not normally needed. As for the issue with firefox updates mentioned by Sami: I don t think it is a problem that firefox asks what to do with extensions. For one, it only lists extensions which are installed but claim not to support the new version of firefox. Second, practically everyone I know of who uses any extension can be considered to be an advanced user. And third: The dialog is pretty straightforward about what it is asking and when I once hit it while a ( dumb user ) friend was sitting with me, he understood what it was about quite easily (I didn t explain the dialog, just what extensions were). So my idea of a good UI is:
As simple as possible for beginning users, but allow advanced users to get to the details ( Details or Advanced options buttons/checkboxes/dialogs).

6 January 2009

Benjamin Mako Hill: Debian Bug Squashing at MIT

I was thrilled to be part of a successful Debian bug squashing party organized by MIT's Student Information Processing Board on December 13th. Greg Price, who helped organize the event, did a wonderful write up which he sent to the debian-devel email list. I though it was worth mentioning the BSP now because I think it's a wonderful model that I'd love to see replicated in Debian and beyond. The event was initiated, organized, run, and executed by people with little or no direct experience with the project. While the organizers went out of their way to recruit several Debian developers and other experts to the party, these experts' role was more in answering questions and helping others. The the majority of the participants -- around 30 of them in total -- had no previous experience doing Debian development. While the 11 bugs closed or dealt with are the most visible outcome, I'm not sure that it is the most important. The event acted as an important learning experience for everyone involved and, perhaps most centrally, an important first step for most participants from using free software to giving back and participating in the community. You don't need experience, connections, or a @project.org email address to organize a party like this for Debian or your own free software project. All you really need is a few people, some technical knowledge, an Internet connection, and the desire to make it happen. Other things can help, of course. In particular, the SIPB folks have packaged up some scripts they used to select bugs to work on and put them online.

4 January 2009

Sami Haahtinen: About Usability

Some people consider the gnome usability guidelines a nuisance and some consider certain applications way too simplistic. While it is really hard to get the usability right, it's well worth it. We need to keep in mind that as computer oriented people we tend to see things differently. Things that are simple to us aren't really that simple to the "normal people". But one of the simple things we can do the insure that the software we write serve the people it's designed for is to remove all not needed pop-ups and questions. A good way to detect these would be to ask yourself why would a user choose anything else but the most logical option. It's kind of hard to explain, so lets pick an example: Firefox is updated, the first question it usually asks after upgrade is about incompatible extensions. The user is presented with choices, check for updates or cancel. Now, we are dealing with internet browser so the user should be connected to the internet so there is no problem with checking for the updates, we can rule out that scenario. The other scenario that I can come up with is that a developer doesn't want to update some certain extension. So at least I can't come up with any reasonable scenario why someone would want to select anything else but to upgrade the main option of upgrading the extensions. Why not just leave out the option and instead do the upgrade automatically. If you wish to be transparent, you can show the user that you are doing the upgrade. Or you can do like some applications do and just do it without bothering the user with the options. I know I sound like a Google fanboy, but Google generally gets this right. Their applications skip out all upgrade related notices and just do the upgrade. Regular user doesn't want to upgrade because the user has been scared with incompatibility notices and upgrade checklists for so long. Just going ahead with the upgrade in complete silence keeps their software up to date as well. Another example would be from few years back: The Ubuntu installation. Back in the day Debian was working on Debian Installer, which is also used as the main installer in Ubuntu alternative installation media. Debian Installer is capable of doing most things silently, but with Debian it by default asks a lot of questions. It doesn't matter, since most people who install Debian can be categorized as developers. But in my opinion, the thing that made Ubuntu a success was that it doesn't ask the questions that can be answered without asking the user. So, back to usability. There are basically 2 camps, the "normal" users and the developers. Developers want and need to see a lot of the backend behaviour, just to debug problems. Currently a lot of the open source software is focused towards developers while they are gaining grounds on the "normal" population as well. We should start focusing on the users for a change.

3 January 2009

John Goerzen: Garmin Nuvi 500

I ve owned two different GPSs in the past: a Garmin GPS III, and the Garmin eMap. Both are based on similar underlying firmware. This week, I did some research on more modern GPS units and decided to buy a Garmin nuvi 500. Here s my review. Overview The Garmin nuvi 500 is one of only two models in the nuvi line that are waterproof. The nuvi 500 and 550 are both designed as hybrid units: useful both in the car and outdoors. The 500 includes street-level maps (they appear to be the same quality as Google) for the entire United States, detailed topographical maps for the entire United States, and a global basemap. It also includes a microSD slot (or is it miniSD - I forget) for additional maps that you can buy anything from marine maps to other countries. It also includes a default POI (points of interest) database containing over 5 million points: restaurants, gas stations, parks, hospitals, you name it. Most contain an address and a phone number in additional to the coordinates. Unlike GPS units that you find built in to some cell phones, this is all stored on flash memory on the unit: no Internet connection required. The nuvi 500 is a portable yellow pages, topographical map, and incredibly detailed street atlas all in one. Car Use The nuvi 500 comes with a car charger and suction cup windshield mount in the box. (It doesn t come with an AC charger, but it can charge over USB.) It also comes with yay a user-replaceable battery. The windshield mount is very sturdy and I am happy to have one that isn t permanent. In the car, the device performs admirably. I have read some other reviewers that have compared its routing to other GPSs and found that the nuvi generally picks the same route as Google, and almost always a better route than other GPSs. If you deviate from the selected route, it automatically re-calculates a new route for you. It will show you the next turn coming up, and has either 3D or flat map displays. There s a one-touch where am I feature. It displays your current coordinates, some sort of street address suitable to read to someone ( 1234 S. Main or I-95 exit 43 type of thing), along with buttons to show you the nearest police stations and hospitals. The unit also features multi-stop routing. You can either tell it where all you re going in a defined order, or tell it all your stops and let it create an optimal route. This feature works, but it your stops are close by (and involve some of the same roads), it may wind up skipping some stops thinking you ve made your first one. The speaker announces upcoming maneuvers, though it doesn t have a synthesizer for street names. It s also supposed to work with Bluetooth headsets, though I haven t tested that feature. I found the map quality to be excellent. It seems to be on par with Google (in fact, I think both use data from Navteq). I was surprised with how many country dirt roads and side roads it knows about and of course, regular city streets are all on there, with one-way indications and the whole lot. In fact, the quality of coverage was so good that I was surprised when it missed roads or got things wrong. Out in rural areas, or small towns, this happens from time to time: it thought that an abandoned railbed was an unnamed road and wanted me to drive on it (it was clearly not drivable), and in some other cases also thought some abandoned roads were still drivable. I don t think this is a device issue though; it s an underlying data issue, and everyone else probably has the same problem. Its arrival time estimates are quite accurate, and its interface is smooth and easy. It has some optional accessories I haven t tried, such as real-time traffic reports from wireless sources, boating mode, etc. Outdoor and Geocaching Mode Our other main use for the device is outdoor hiking and geocaching. It really shines here. It has special support for the GPX files from geocaching.com. The device supports paperless caching . Not only can it put caches on the map, but if you download the GPX file for your caches, you ll also get the full description, hint (behind a separate button, of course), most recent 5 logs, and the like right there on your screen. You can also log your finds on the device, and upload a file from it to geocaching.com later to log them on the site. This is an incredible time saver over my old method: printing out a bunch of maps, downloading waypoints to the eMap, taking notes, then logging things later. I found outdoor mode not quite as refined as the auto mode, however. It kept forgetting that I wanted to use an arrow as my current position indicator (the default hiking boots for walking mode didn t provide an accurate enough direction indication for my tastes). Finally realized that saying don t ask me about the configuration was the key to getting it to remember the configuration. It sometimes took a surprisingly long time to realize we weren t standing still any longer. On the other hand, the quality of the GPS receiver was amazing. It even got a strong signal in my house. And I wasn t even sitting at a window. The topographical maps are a nice addition, and the breadcrumb mode is always helpful when geocaching and hiking, too. My natural way of holding it meant that I accidentally turned it off a few times, because I had a finger holding it right over the power button. But it powers back up and re-obtains the signal quite rapidly. The different modes (automobile, outdoor, bicycle, and scooter) are mainly different collections of settings: 3D map or flat, what indicator to use, to navigate off-road or along roadways, to ignore one-way indications or heed them, etc. PC link The nuvi 500 has a USB port. Plug it into the PC, and you see its internal flash drive, vfat formatted. You can upload and download GPX files there, store photos if you like. Be careful what you mess with though, because its built-in maps and system data are also on that drive. If you have the SD card inserted, that will also be presented to your computer when you plug the device in. Garmin has some Windows software to make it easier to upload/download stuff, but I haven t tried it. Annoyances As you can tell, I really like this GPS, but there are a few things about it that annoy me. The #1 thing that annoys me isn t actually the GPS itself, but Garmin s website. I went to register the device online, but it wouldn t let me because I don t have the Windows-only browser plugin on my Linux machine, and it wanted to talk to the GPS for some reason. I went to send them a support request about that, only to discover after I had typed in the request that their email us form is broken in Firefox on all platforms. Bad show, Garmin. The on-screen keyboard (it s a touch-screen device with only one hard button for power) isn t QWERTY layout; it s alphabetical layout, and it makes me inefficient when entering data. I found myself logging my finds on the unit, but taking notes about them on paper because that was faster. Garmin has a feature listed on their website for a toggle between QWERTY and alphabetical layout, which they apparently offer on only their more expensive GPSs. What? There is no reason to not but that in all your firmware. The device lacks a few features I was used to on my GPS III and eMap. It doesn t support any kind of real-time position indication to the PC; all communications is just accessing stored data on the internal flash drive. I used to think that was a nice feature, but in reality, I haven t used it in years. It also lacks the display of the exact location of each GPS satellite, though the incredible quality of its receiver means that I don t really care any more. (I used to use that information to help figure out which window to put it by if in a car/train or something.) It also lacks the level of configuration that was present in the settings screens on the older units. There s no battery saver mode (sample every 5 seconds when going at a constant velocity instead of every 1) like the older units had. The sun and moon screen likewise is gone, but added is awareness of timezones; the Nuvi 500 can show you the local time at your present position synced up with the GPS satellites. The compass is not the most helpful screen, though after some practice, it is functional. The documentation about it is confusing, but really the thing that was more confusing was this: in walking mode, the arrow that indicates what direction you re walking in updates faster than the arrow that indicates what direction you should be walking in. Once I realized what was going on there, it was easier to use. The compass does tell you what your bearing is, in degrees, but only when you are not seeking a destination. It will not tell you the bearing to the destination, though you can estimate it from the simulated compass face on the display. When seeking a specific point, especially through terrain with obstacles such as trees, it is useful to be able to use a compass for the final approach because a GPS unit can t tell you which direction it s pointed only which direction it s moving, so when you re not moving or moving slowly, it s not helpful. I did some experimentation today with the compass screen, as well as my real compass, and was able to navigate to my destination rather precisely using the combination of them. That said, a more functional compass screen would still be better. Conclusion Overall, I m very happy with the nuvi 500. It s not the same as a top-of-the-line device in either the outdoor or automotive category, but on the other hand, it s cheaper and more convenient than buying two devices with similar features. The geocaching features are excellent, the build quality is excellent as well. The system is stable and performs well. (Some other reviews worried about whether the case is solid enough; it seems quite solid to me.) I wish there were a faster way to toggle between 3D and flat map views, and forgetting about my walking mode icon is annoying, but other than that I have very little to complain about. Garmin s geocaching features (found on this unit and several other in their lineup) is great.

2 January 2009

John Goerzen: Kansas Adventure

Today, Terah and I set out for some geocaching. Jacob s daycare was back in session (he goes twice a week), but we both had the day off. Jacob enjoys geocaching, but he does make it a lot slower. So we dropped him off at day care today, and headed off. We were also scouting out good places for future tent camping along the way. We didn t know exactly where we d manage to go, so I had downloaded over 100 geocaches to my new GPS, prepared for many options! Not long after we found our second cache (in Canton, KS), Terah asked, Did you hear that hissing from the tire? No . We were about 5 miles from town. I happened to have an air tank with me (because of a different tire with a slow leak). I shot some air in it, and we made it to Canton Service just fine. They fixed both tires, and my uncle who was there getting tire work done himself was quite surprised to see us pull in bright and early at about 9:00! After our tire was fixed, we headed northeast. We found some more caches, and drove around the two lakes near Herington, KS. We saw hundreds of geese perched on the icy lake and hiked a bit in the area to find a cache. Then it was on to Council Grove for lunch. I do believe this is the first time we have ever walked into a place that looks like a restaurant and only after we are seated realize that we re in a museum. Council Grove has an amazing historic downtown the most history per capita of any town in the west! the travel information AM station proudly proclaims, with 25 historic sites and a population of 2500. Got a chuckle at that one. We drove by the oldest continuously operating restaurant west of the Mississippi (it was closed), so we turned around and stopped at the Trail Days Bakery and Cafe that we had passed a few blocks back. We walked in the side door, into what looked like a meticulously-restored old house. We were seated at a table, given menus, and the waiter explained, By the way, you re eating in a cafe that s also a museum. Please feel free to look around, and don t miss the basement and upstairs, too! So it turned out that the Trail Days Bakery and Cafe is in the historic Terwilliger House. The house was about to be razed, when Shirley and Ken McClintock heard about it and tried to get some people interested in saving it. When nobody else stepped up, they did they formed a non-profit, and with a lot of hard work from themselves and others, managed to restore it from its state as a run-down gas station to its former beauty. They operate the cafe as a way to raise funds for the preservation of the house and the other historic buildings they have moved to the site to restore. Oh, and Shirley and Ken were our cooks and waiters today! We showed up there at about 1PM, right at the tail end of the lunch rush. Another couple happened to be there at about the same time. They were traveling across Kansas from west to east, specifically avoiding the interstates so they could see the small towns along the way. We got to talking about geocaching and their home town near Colorado. Then we got to talking to Shirley about the music CDs that they had for sale and the history of the place, and the Ken told us all about the Native American pictograph that they had discovered carved into the wood in the house. By the time we left, we had probably been there almost two hours. Oh, by the way, Terah had ham and beans ( just like mom used to make , she said), and I had what can be best described as a sloppy joe made out of bison meat. Both were good, but eating in this beautiful old house was even nicer. Then we drove down the road a bit to the old apothecary. Yes, it s still a drugstore in every sense of the word: you can get your prescriptions filled there, and they also still have the original soda fountain (dating back to 1920 if memory serves), serving up all the stuff you used to find in a drugstore. We chose somewhat boring items, I guess: Terah had a chocolate shake (the made-in-front-of-you-fresh kind), and I had a root beer float. So, what would have been a quick lunch in a different town turned into a few hours in Council Grove thanks to a very helpful leaky tire this morning that threw us off schedule! After that, a few more caches on the way back towards home. We picked up Jacob, and he and I found the last cache of the day which he, of course, loved. Then home. We only found 8 caches, but had a lot of fun.

1 January 2009

Biella Coleman: 2008

When I return to PR, my blog tends to lie fallow. Between taking care of the house, outdoor distractions (like the very overgrown garden and the very enticing beach), and most especially visiting my mother, I turn away from the computer, from my analytical mind, from writing. But since we have edged into a new year, I thought I would spend a little bit of time ruminating on 2008, which was one of the most unforgettable for me. With each passing year, it seems that 12 months bleed right into the next 12 months. But within this swirl, there are a handful of years that retain their sharp edges (1992, 1996, 2005, 2005-2006 are the most memorable). 2008 now sits among those as it is the the year that a tube was placed into my mother s stomach and soon after she was taken from the hospital into a nursing home without even the chance to say goodbye to the dog who was her steadfast companion and the house, which was her home for over 20 years. Over the last 6 years while I have not written much about my mother and her Alzheimer s, I did so fairly consistently with at least 3 entries per year, that is until March 2008 when she was put in the nursing home. Soon after being admitted, I wrote one entry and since then have not had the heart to commit much to words, something of which I am ashamed of and have sworn I would write about at least once before another years passes us by. I don t have the desire to constantly write about my experiences with her but it seems to be that Alzheimer s is erased far too often from public view and I would rather not contribute to that type of very pervasive silencing either. The recipe for my silence has been made up of various ingredients. One was I was just really really busy. Last semester was frenetic so I often did not have an ounce of room/time to think, much less blog about such a difficult situation (and I spent a lot of time going back and forth to PR as well). Another is that I was trying to avoid the heartache that arises when you focus in, with some detail, care and attention, on something that is unavoidably painful. Each time I tried, I ultimately failed and told myself, I would do so later. Finally I was blogging less and less about these types of subjects so it just seemed a little out of place every time I tried to commit something to words. For me, one of the hardest things to accept and this probably fed into my silence is that I played a part in prolonging her life when I know she wanted out (with a capital O U and T). But at the time the feeding tube was placed in her, she was walking and talking and it did not seem right to refuse her food (and I hoped that with some food, she would then start to eat on her own as she can swallow just fine) not to mention that her caretaker (a devout Catholic) and my sister would have never at the time been ready to refuse the feeding tube and I was not exactly quite ready either. Well, what we did not foresee was that 5 days in the hospital did her in and when she left, she could no longer walk, she could barely talk, and yet due to the feeding tube, she gained back the dramatic weight that she had shed over a year so that her body at least looked far more alive than it had been for years thanks to the steady stream of nutrition being slowly pumped into her body. I just know she would not want to be alive under these conditions and yet at this point, there is not much I can do legally except refuse certain classes of treatments if she gets sick (such as respirator) or wait until she becomes completely vegetative and then go through the legal hoops, that ultimately may not be successful, to remove the feeding tube. It has been so hard for so many months that as I late I have been trying to approach the whole thing with at least one dash of Zen-like detachment (by which I mean an embrace/acceptance of suffering in this world) and just spend as much time as I can with my mother, which I did a lot over the summer and I am now doing this winter. I am most probably moving back over the summer as well as my sister is not faring all that well after being with her for so many years. Even though she no longer knows my name, or who I am, I can tell she notices my presence and there are days she even seems to be happy. In fact, over the summer, she had some pretty lively days when we could manage to joke about almost nothing. Those days were rare and precious and today they don t seem to happen at all (she did seem a bit excited that it was a New Year though I could not tell if she really knew what I was saying). Over the summer, generally I would climb into her bed and we would co-nap for a couple of hours. And then the worst were the days she was hysterical and crying, and the absolutely worst was when she was crying, pleading for her parents. Those were days that did not break my heart but my soul. Thankfully those days of hysterics seem to be happen less and less and my mother just seems to sleep a lot. I sometimes like to think she is like those really old cats or dogs who seem to spend interminable hours sleeping and resting and don t seem to be suffering all that much though I can still tell she is still in a bad mood from time to time. She also has a wonderful roommate, Ana, who also pretty advanced Alzheimer s though certainly not as bad as my mom. Unlike my mother, she is happy as a clam, so much so she is always saying things like Isn t this a great day? How wonderful the day is, etc. etc, which is a nice counterbalance to my mom! I sort of like that my mom s roommate is, personality wise, the polar opposite of my mother, who is not a fundamentally unhappy soul, but she was emotionally erratic one with quite a few peaks and valleys and this is still very much the case. Having Ana around (and her family) has transformed the way I have seen this illness and my mother s condition. I am certainly not thrilled that she is alive and in fact think how we end (or don t end) life is something we as a society should be ashamed of. I clearly want to see her released, freed like a bird from the cage of this world (my mother loved loved birds I think because they symbolized freedom), but spending time with Ana, who again seems quite content, made me realize how part of the Alzheimer s experience is rooted in one s personality. My mom has always been difficult and when she was sick but still quite functional, her personality made the illness difficult for her and those around her. She never really had much luck changing her karmic personality and it sure is not going to change now. But as I said she does seem to rest a lot. I just hope her last few months, possibly years, are if nothing else peaceful and tranquil.

Biella Coleman: 2008

When I return to PR, my blog tends to lie fallow. Between taking care of the house, outdoor distractions (like the very overgrown garden and the very enticing beach), and most especially visiting my mother, I turn away from the computer, from my analytical mind, from writing. But since we have edged into a new year, I thought I would spend a little bit of time ruminating on 2008, which was one of the most unforgettable for me. With each passing year, it seems that 12 months bleed right into the next 12 months. But within this swirl, there are a handful of years that retain their sharp edges (1992, 1996, 2005, 2005-2006 are the most memorable). 2008 now sits among those as it is the the year that a tube was placed into my mother s stomach and soon after she was taken from the hospital into a nursing home without even the chance to say goodbye to the dog who was her steadfast companion and the house, which was her home for over 20 years. Over the last 6 years while I have not written much about my mother and her Alzheimer s, I did so fairly consistently with at least 3 entries per year, that is until March 2008 when she was put in the nursing home. Soon after being admitted, I wrote one entry and since then have not had the heart to commit much to words, something of which I am ashamed of and have sworn I would write about at least once before another years passes us by. I don t have the desire to constantly write about my experiences with her but it seems to be that Alzheimer s is erased far too often from public view and I would rather not contribute to that type of very pervasive silencing either. The recipe for my silence has been made up of various ingredients. One was I was just really really busy. Last semester was frenetic so I often did not have an ounce of room/time to think, much less blog about such a difficult situation (and I spent a lot of time going back and forth to PR as well). Another is that I was trying to avoid the heartache that arises when you focus in, with some detail, care and attention, on something that is unavoidably painful. Each time I tried, I ultimately failed and told myself, I would do so later. Finally I was blogging less and less about these types of subjects so it just seemed a little out of place every time I tried to commit something to words. For me, one of the hardest things to accept???and this probably fed into my silence is that I played a part in prolonging her life when I know she wanted out (with a capital O U and T). But at the time the feeding tube was placed in her, she was walking and talking and it did not seem right to refuse her food (and I hoped that with some food, she would then start to eat on her own as she can swallow just fine) not to mention that her caretaker (a devout Catholic) and my sister would have never at the time been ready to refuse the feeding tube and I was not exactly quite ready either. Well, what we did not foresee was that 5 days in the hospital did her in and when she left, she could no longer walk, she could barely talk, and yet due to the feeding tube, she gained back the dramatic weight that she had shed over a year so that her body at least looked far more alive than it had been for years thanks to the steady stream of nutrition being slowly pumped into her body. I just know she would not want to be alive under these conditions and yet at this point, there is not much I can do legally except refuse certain classes of treatments if she gets sick (such as respirator) or wait until she becomes completely vegetative and then go through the legal hoops, that ultimately may not be successful, to remove the feeding tube. It has been so hard for so many months that as I late I have been trying to approach the whole thing with at least one dash of Zen-like detachment (by which I mean an embrace/acceptance of suffering in this world) and just spend as much time as I can with my mother, which I did a lot over the summer and I am now doing this winter. I am most probably moving back over the summer as well as my sister is not faring all that well after being with her for so many years. Even though she no longer knows my name, or who I am, I can tell she notices my presence and there are days she even seems to be happy. In fact, over the summer, she had some pretty lively days when we could manage to joke about almost nothing. Those days were rare and precious and today they don t seem to happen at all (she did seem a bit excited that it was a New Year though I could not tell if she really knew what I was saying). Over the summer, generally I would climb into her bed and we would co-nap for a couple of hours. And then the worst were the days she was hysterical and crying, and the absolutely worst was when she was crying, pleading for her parents. Those were days that did not break my heart but my soul. Thankfully those days of hysterics seem to be happen less and less and my mother just seems to sleep a lot. I sometimes like to think she is like those really old cats or dogs who seem to spend interminable hours sleeping and resting and don t seem to be suffering all that much though I can still tell she is still in a bad mood from time to time. She also has a wonderful roommate, Ana, who also pretty advanced Alzheimer s though certainly not as bad as my mom. Unlike my mother, she is happy as a clam, so much so she is always saying things like ???Isn t this a great day???? ???How wonderful the day is,??? etc. etc, which is a nice counterbalance to my mom! I sort of like that my mom s roommate is, personality wise, the polar opposite of my mother, who is not a fundamentally unhappy soul, but she was emotionally erratic one with quite a few peaks and valleys and this is still very much the case. Having Ana around (and her family) has transformed the way I have seen this illness and my mother s condition. I am certainly not thrilled that she is alive and in fact think how we end (or don t end) life is something we as a society should be ashamed of. I clearly want to see her released, freed like a bird from the cage of this world (my mother loved loved birds I think because they symbolized freedom), but spending time with Ana, who again seems quite content, made me realize how part of the Alzheimer s experience is rooted in one s personality. My mom has always been difficult and when she was sick but still quite functional, her personality made the illness difficult for her and those around her. She never really had much luck changing her karmic personality and it sure is not going to change now. But as I said she does seem to rest a lot. I just hope her last few months, possibly years, are if nothing else peaceful and tranquil.

29 December 2008

John Goerzen: A Day with Jacob

Old train! Smoke inside. That s what Jacob said today when he saw an old steam locomotive at the old Union Station in Wichita, KS. Never mind that it s been sitting there for decades he s got that concept of smoke coming out of steam engines down, and apparently realizes that for smoke to come out of them, it must start out inside them. But I don t think I ve ever heard anyone talk about a steam engine in a more cute way. Two is a fun age. Today I needed to return a power supply to Circuit City, so Jacob and I made a day of it. He came with me to town (yes, us country folk go to town ). We returned the power supply, then ate lunch at a Mexican place. Jacob would call it a chips and salsa place. Today he drank from a straw for the first time, and loved it so much that I think he got more liquid than food in him over lunch. Oh well. After that, we went to the eye cream (ice cream) store - Cold Stone Creamery. Whenever Jacob hears talk of Wichita, he comments with something like Go ichita. Eat eye cream. Go town. Jacob ate his entire kid-sized chocolate ice cream with sprinkles. He loves sprinkles. While we were eating ice cream, I asked him, After you are done, would you like to see skyscrapers or trains? NO! Eat eye cream! I don t think he quite got the after bit, so I asked him again in the car after we were done eating. His eyes lit up. SEE KYCRAPER!! So we drove to downtown Wichita and saw the skyscrapers. (Yes, I am aware that other cities have much taller buildings. It doesn t matter when you re 2.) We got out of the car and he got to touch a few of them. In fact, the only way I got him back into the car without a meltdown was by pointing out the train crossing above the road on a bridge, and the fact that he d still be able to see it from in the car. That, of course, led to us needing to see trains. I drove him up the ramp to be trackside by the old Wichita Union Station. There weren t any trains going past right then, but he did get to see the locomotives at the Great Plains Transportation Museum through the fence. We started to head home, but he really wanted to see the train again. So we stopped at the park in Newton to see the old ATSF locomotive there. By that point, it was waaaay past naptime and we narrowly averted a fit when I informed him that no, we could not go inside the adjacent grain elevators. So all told, I think Jacob had a fun day with his dad. Now, in case there is any doubt out there about what kind of child Jacob is, I should point out the things he notices in church lately. First off, when we get into the sanctuary, we sit in the back. But first thing he said lately when we walked in was TWO THERMOSTATS! Yes, he saw two thermostats at opposite ends of the room up front, pointed right at them, and was very excited. He also notices the organ speakers ( oran peaker ), big cross , ceiling fans, and now furnace vents . Yes, furnace vents. At the Christmas Eve service, there was a candlelight part. He loved it. Daddy hold fire! A few people nearby smiled. While we sang Silent Night, he really wanted to blow out the candle. When it was time, I said OK Jacob, now you can blow it out. A very excited Fffffffffffffffff followed, and several people nearby were chuckling by then. I also let Jacob put the candle in the box on our way out. He said, I put fire in box. I did it!

28 December 2008

Josselin Mouette: The session non-manager

For various reasons (which in the end boil down to lack of manpower), we are quite late in the process of packaging GNOME 2.24. (This is almost finished now, I ll keep you informed.) Which is why I may sound coming a bit late on noticing this one, but I was really speechless. The problem: session management has flaws Currently, a session manager uses XSMP (the X Session Management Protocol) to talk to applications. What it means is that for applications supporting this protocol, it is able to do more than simply starting and killing them: it will also remember their state, and offer them a way to shut down gracefully. However, XSMP is really a shitty protocol I won t explain why here, you will find tons of better explanations on the intarweb. The gnome-session developers, being quite aware of this issue, did what anyone interested enough would have done: they designed a new protocol, based on D-Bus, and implemented it. The new protocol is not considered stable yet, but it is simple, efficient and above all, reliable that s a giant leap forward. For this reason, I was very excited to see what gnome-session 2.24 would look like, since it brings major cleanups in the code. The solution: remove session management! When I first started it, it did not restore my saved session. I simply supposed that the format of the saved session had changed, and that writing a conversion tool would be in order. Wrong. Let s bring the session preferences:
The UI of this dialog hasn t changed since 2.22. However, I do not resist the urge to show you the code behind the Remember Currently Running Applications button:
static void
on_save_session_clicked (GtkWidget           *widget,
                         GsmPropertiesDialog *dialog)
 
        g_debug ("Session saving is not implemented yet!");
 
As for the check box on top of it, it sets a GConf value that is never read anywhere. If you know the long term plans for GNOME, it makes sense: when gnome-shell replaces the panel and the window manager, it will also be responsible for starting the visible applications, while gnome-session will deal with what s happening behind the scenes. But gnome-shell is still far from ready, and you need something in the meantime for the basic requirements of a session manager! Backwards compawhat? The surprises don t stop here. I also noticed that logout was much faster instantaneous instead of the usual 2-3 seconds. The reason why logging out is this long currently is not because it takes long to kill applications; it s because the session manager kindly requests applications supporting XSMP to shut down before killing them. If a document isn t saved, an application will be able to prevent the logout process. Guess what? Now gnome-session completely ignores XSMP applications. Since it doesn t need them to register for saving the session, it also saves the time to ask them to close cleanly. The result is that you will see a lot of such dialogs:
It s very nice to replace a flawed protocol ; and really, the new protocol goes in the correct direction. But let s be realistic, it s impossible to immediately port hundreds of applications to a new protocol without having a transition time during which both protocols are supported. You also need to consider your protocol as stable before asking other developers to port their applications. And to get it accepted, you need to standardize it; freedesktop.org would have been the correct body. (Currently, the protocol lies in the org.gnome namespace, not org.freedesktop.) Release management at its best Wait aren t there some distributions out there which already released stable versions with GNOME 2.24? The answer is yes. At least Ubuntu Intrepid and Fedora Core 10 ship with a session manager that: It s good to see such improvements on the session manager coming, and I m really thankful to the gnome-session developers to work on it. What I wonder is: It definitely looks like we re not the only ones who could improve our release management processes. So what? This is a very good example of a lack of big picture thinking. On one side, there is a brilliant design and its good implementation. On the other side, two major regressions from the user s point of view the kind of regressions that make people fly away. If there s one thing that I ve learned from working in IT, it s that you must often keep your brilliant designs as long-term goals. In the short term, you will run a bastardized version of your brilliant design that will make you cry; but it will work. When you need to talk to shitty applications or with shitty protocols, you need to write shitty code.

Russ Allbery: Lintian 2.1.3

Over the last couple of days, I've found some time to work on Lintian for the first time in quite a while. It's been a good feeling both for getting back to a project that I've done very little on for several months and finally feeling energized about a coding project. I think after a week of vacation, I'm starting to recover my energy. I uploaded Lintian 2.1.3 earlier today and am currently doing a fresh archive-wide run for lintian.debian.org. This version has several new checks for watch files from Raphael Geissert, several fixes for the lintian.d.o output, a few other random bug fixes, and an attempt to tackle unversioned shared libraries in a more comprehensive fashion. Shared libraries with an SONAME that doesn't contain a version number can't be represented in the shlibs system (but can in the symbols system), so Lintian always reports them as missing from shlibs when they're installed in public directories. That's not really the right tag, since they don't belong in shlibs. The more basic problem is that, except for a few special cases mostly coming from libc, they really don't belong in public directories. With no versioning in the SONAME, we can't handle changes to the ABI without completely changing the library name and can't use the shlibs system to manage them. Most of the libraries in this situation are actually private libraries for one particular application. As Policy already says, those libraries shouidn't be installed in public directories like /usr/lib; they should be installed in private subdirectories of /usr/lib for that application. The biggest group of offenders here currently seems to be KDE; for some reason, unless I'm missing something, this seems to be a semi-standard KDE way of doing things. This version of Lintian will hopefully handle this better. Such libraries won't be expected to be in shlibs files and won't get erroneous tags about not being listed there. We'll also do a better job of distinguishing between versioned shared libraries and shared library names that just contain a hyphen. Such unversioned libraries will get a separate tag pointing at the portion of Policy that says to put private libraries and plugins in a subdirectory instead of /usr/lib. Thanks as always to Frank Lichtenheld, Adam D. Barratt, and Jord Polo for all the hard work they've been putting into Lintian. It's gotten much better over the few months that I've not been able to work on it, which is making me more excited to get back to it and do more.

27 December 2008

Sandro Tosi: Thinkpad T30, SmartLink modem and Teleconomy

Being left in the IT medieval, thanks to my lovely telco, the only way I can (very far away) simulate a broadband connection, is stipulating a flat 56k contract (don't laugh, please). The name of this "offer" is TeleconomyInternet.

Do you think that firing up gnome-ppp on a Thinkpad T30 laptop would work at the first try? Of course not... The problem seems to be in the telephone number to call, that badly interact with SmartLink 56k modem. Here's the story, in case you'll find yourself in the same situation.

The modem on the T30 is:
$ lspci   grep Modem
00:1f.6 Modem: Intel Corporation 82801CA/CAM AC'97 Modem Controller (rev 02)
that is a SmartLink modem, supported well by sl-modem-deamon package and by alsa:
$ ps -eo command   grep slm
/usr/sbin/slmodemd --alsa -c ITALY modem:1
Remember to edit /etc/default/sl-modem-daemon file and set the right country for you.

Now, I installed gnome-ppp (just to try an easy tool), that uses wvdial under the hood.

wvdial auto-detection utility works quite well, and the found Init2 string:
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
works well if the number to call is a local one (I tried it before, and worked). Since Teleconomy provides a state-wide number (702...) with the above string the connection will fail with a sad:
NO CARRIER
No Carrier! Trying again.
But there is a fix: first, the Init1 should be ATX3 (but it seems to be enbedded in the one below), and the last arguments must be changed (well, I think it has something to do with line speed (MS=34 will result in a 33.6k line) or protocol, but don't care too much as long as it works) resulting in this Init2:
ATX3Q0 V1 E1 S0=0 &C1 &D2 +MS=90
And remember to select the "stupid mode" in gnome-ppp, and you'll have a nice:
--> Initializing modem.
--> Sending: ATX3
ATX3
OK
--> Sending: ATX3Q0 V1 E1 S0=0 &C1 &D2 +MS=90
ATX3Q0 V1 E1 S0=0 &C1 &D2 +MS=90
OK
Modem initialized.
Sending: ATM1L3DT7020187187
Waiting for carrier.
ATM1L3DT7020187187
CONNECT 52000
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Fri Dec 26 19:12:23 2008
--> Pid of pppd: 4870
--> Using interface ppp0
--> local IP address ......
I'll move to ppp soon, since gnome-ppp seems to not understand "fsck, reconnect when disconnect, dude" option.

How nice is to be in the 21st century...

25 December 2008

Matthew Garrett

Christmas is a time to ignore such trifling details as nearly accidently burning the house down, and instead to focus on what's important in life - working out which hoops to jump through to make new hardware useful without installing less convenient operating systems. This year was more straightforward than some, and merely involved attempting to work out how to give people money in return for books that could then be read on my Sony reader thingy. Shockingly enough, the Sony Ebook Store requires a windows app, so not a good start. There's no shortage of sites that sell ebooks in a variety of formats without any platform dependent awkwardness, though - of course, most of them are inconveniently DRMed. And the only DRMed content the Sonys will read is either Sony's own or some encrypted PDFs[1].

Not to worry - the DRMed version of the Mobipocket format is based on a symmetric encryption algorithm from 1991, so finding a way around that isn't much of a problem[2]. The only real issue I had was generating the PID needed to buy one of the damn things in the first place. This 10 character string is generated when you install the Mobipocket reader software, but doing so would again involve Windows.

So here's a trivial C program that generates valid PIDs with working checksums. The PID on its own isn't a secret (given that you can get as many as you want by reinstalling the Windows software), so I can't see any awkward copyright law things going on. And, really, it's just a random string plus a checksum.

CRC code is from SSH, the checksum validation is a reimplementation of code from EBook::Tools::Mobipocket by Zed Pobre. My total creative input was generating a 7 character random string and sticking a dollar sign at the end. Go me.

[1] According to the blurb about the firmware update, though mine still seems to claim that it's not authorised to read DRMed content in the about screen. Possibly it needs keys generating, or something

[2] No, I'm not going to tell you how. The internet exists so you can work these things out without asking me

24 December 2008

David Bremner: So your topgit patch was merged upstream

Scenario You are maintaining a debian package with topgit. You have a topgit patch against version k and it is has been merged into upstream version m. You want to "disable" the topgit branch, so that patches are not auto-generated, but you are not brave enough to just
   tg delete feature/foo
You are brave enough to follow the instructions of a random blog post. Checking your patch has really been merged upstream This assumes that you tags upstream/j for version j.
git checkout feature/foo
git diff upstream/k
For each file foo.c modified in the output about, have a look at
git diff upstream/m foo.c
This kindof has to be a manual process, because upstream could easily have modified your patch (e.g. formatting). The semi-destructive way Suppose you really never want to see that topgit branch again.
git update-ref -d refs/topbases/feature/foo
git checkout master
git branch -M feature/foo merged/foo
The non-destructive way. After I worked out the above, I realized that all I had to do was make an explicit list of topgit branches that I wanted exported. One minor trick is that the setting seems to have to go before the include, like this
TG_BRANCHES=debian/bin-makefile debian/libtoolize-lib debian/test-makefile
-include /usr/share/topgit/tg2quilt.mk
Conclusions I'm not really sure which approach is best yet. I'm going to start with the non-destructive one and see how that goes. Updated Madduck points to a third, more sophisticated approach in Debian BTS.

Next.

Previous.