My Cinnamon desktop customizations

As I mentioned in the previous entry on my laptop environment , I'm now using a lightly customizedCinnamon desktop on Fedora 19. The major customizations have been to getback something equivalent to sshmenu and the Gnome 2 mini-commanderapplet . The results have been quite good; I feelas productive with my Cinnamon setup as I did with Gnome 2 on Fedora 14(and many more things work on Fedora 19).

My mini-command replacement is that Cinnamon lets you add customkeyboard shortcuts so


How to accidentally reboot a server

This is a little war story.

To start out, determine that you need to add more memory to one of yourlogin servers. This requires taking it down, which requires getting allof its users to log off first. Then go through the following steps:

  1. Keep new logins off the system by changing your automated passwordmanagement system to give all non-staff accounts a login shellthat just prints out a 'this system is under maintenance, pleaseuse another one' and then quits.

    (Otherwise people will keep


Understanding how generators help asynchronous programming

I've been reading for a while about how generatorsmean we can do callback free asynchronous programming,instead of trapping us in callback hell (lately all ofthe buzz has been about generators in JavaScript; this istypical of what I've read). But I have to confess that I neverreally got how the whole thing actually worked; all of theexample code that people wrote seemed to have a great big 'andthen magic happens' surrounding it. Recently I finally had asudden burst ofenlightenment


Who or what your website is for and more on HTTP errors

Aristotle Pagaltzis commented on myentry about the pragmatics of HTTP errors and I want to reply to a few things.

First off, I want to say that I fully agree with Aristotle'scharacterization that the real question to ask is what the practicaleffects of using any particular status code will be. This is anexcellent way of putting it and if I'd been clever enough to thinkof it I would have framed my entire (accidental) series around thisquestion.

A "website used by people" is


What's changed in Unix networking in the last decade or so

In an earlier entry I mentioned in passing thata number of things had changed in Unix networking since the classicStevens work was written. Today I feel liketrying to inventory at least some of them:

  • IPv6 is growing in importance. If you care about this (and you should)there is a whole exciting world of issues with dual binding , detecting when the machine has usefulIPv6, and so on.Note that real IPv6 support may require examining hidden assumptions in your code.

  • along with IPv6

The paucity of generally useful HTTP error codes

One of the things that I didn't appreciate until I really looked atHTTP error codes is how few generally usefulones there are. To start with, we can divide HTTP error codes into twocategories: specific technical failings and general errors. Specifictechnical failings are things like an Accept: header that the servercan't satisfy. There's a bunch of 4xx errors for these cases (and afew 5xx errors), but they aren't useful in general since you're only


The pragmatic issues around HTTP error codes mattering (or not)

When I posed the question of whether specific HTTP error codesactually mattered I put the question ratherabstractly. But it's really a pragmatic question which I can put thisway: how much effort is it worth putting into a web application thatis used by people to get your HTTP error codes exactly and completely'right'?

(I'm biased towards the server perspective because that's what I write,but if you write HTTP clients there's a mirror image question of howmuch sense it makes


I'm giving up on a custom laptop environment for Fedora 19

Despite what I wrote before and even yesterday , I've nowcompletely given up on my cheerful plans for a fully customlaptop environment. The short version of why is in my tweet :

I surrender to the forces of the modern monolithic Linux desktop w/oapplet programs. I'm now using a hacked Cinnamon + dmenu on my laptop.

(I'm not really happy about giving up this way but I'm pretty sureit's the least bad alternative.)

A usable laptop environment needs


The problem with a custom laptop environment: designing it

For reasons beyond the scope of this entry I was recently irritated intoputting my custom laptop environment plans into action (I do a surprising number of things due to irritation). Inthe interests of avoiding analysis paralysis I'm basing the firstattempt on my existing fvwm-based desktop configuration (with an everincreasing number of changes). Somewhat to my surprise, the difficultpart so far has not turned out to be what I expected.

My two biggest problems are related. The first one is simply designingthings


A Python code structure problem: exception handling with flags

Here's a Python (2.x) code structure puzzle that I don't have a goodanswer for yet, except that maybe the answer is that my overall designis a bad fit for what I'm doing. To start with, suppose that you havea multi-level, multi-step process of processing lines from an inputfile. Any number of things can go wrong during the processing; when itdoes, you need to bubble this information up to the top level but keepon