My computers are increasingly sort of Internet terminals

My home Internet was out for all of Sunday, which gave me a rare andnot exactly welcome opportunity to reflect on just how much of what Ido with my computers involves the Internet. It's not quite as simple asmy machine being just an Internet terminal, because there is a decentamount of things that I still do locally (to put it one way, I haven'tclouded up to any significant degree). But in practice I interact withthe Internet all the time, through Twitter and


Making large selections in xterm (and urxvt and Gnome Terminal)

Suppose that you have a large chunk of output in a terminal window,specifically more than a full screen's worth, and you want to copy itinto an email message, text file, or however else you may be logging itfor the record. As I knew vaguely but had never really read up on orused until very recently, it turns out that there is a convenient way todo this in xterm . Specifically, this is what the right mouse button isfor; it extends the selection from where


Why I'm not likely to use Chrome much in the future

I'll start with the story. For a while now, support formouse gestures has been an important part of browsingfor me. In Firefox I currently use FireGestures whilein Chrome I used to use something called Smooth Gestures. SmoothGestures started out as the same sort of completely free extensionas FireGestures . After a while it grew a couple of sorts of adsthat defaulted to on (and got reset that way periodically) but couldbe turned off if you wanted (in a typical move, you got a


Using cgroups to limit something's RAM consumption (a practical guide)

Suppose, not entirely hypothetically, that you periodicallyrebuild Firefox from source and that you've discoveredthat parts of this build process kill your machine due tomemory (over)use. You would like to fix this by somehow chokingoff the total amount of RAM that the whole Firefox build processuses. The relatively simple tool to use for this is a cgroup .

There is probably lots of documentation on the full details ofcgroups floating around. This is a practical guide instead.

First we need a cgroup that will


Some observations from playing with PyPy on DWiki

DWiki is the software behind Wandering Thoughts . It makesa convenient test platform for me to experiment with PyPy becauseit's probably the most CPU-intensive Python code I have anythingto do with and also the potentially longest-running program I have, which turns out to be very importantfor PyPy performance. In the process of doing this today I've woundup with some observations.

(All of these are against PyPy 2.1.0 on a 64-bit Fedora 19 machine.)


The problem with nondeterministic garbage collection

Yesterday I mentioned in passing that I thinkthat nondeterministic garbage collection is a significant mistake. Todayit's time to expand on that, and the first step is defining my terms sothat people can understand me. By nondeterministic garbage collectionI mean GC that only collects garbage objects at unpredictable amountsof time after they become unused. This is in contrast to deterministicprompt garbage collectors that collect straightforward garbage objectsimmediately or almost immediately after they become unused.

(I believe that prompt GC is almost always based on reference counting


My current view of PyPy

In a comment on my entry about Go as a 'Python with performance' forme , I was asked about my views on using PyPyfor this. I flailed around a bit in my reply there and since then I'vebeen thinking about it more, so it's time to go on at more length.

The simple version is that today I think of PyPy as perhaps a way tomake some Python programs go faster but not as a way to write fastPython programs. If I have an existing


Hardware is weird (disk enclosure edition)

I've written before about our disappearing ESATA disk problem , but since I wrote that thesituation has become weirder. In fact I think it makes a goodillustration about just how odd hardware can be (and why I preferworking on software to banging my head against hardware).

Here is what happens. We have a 15-bay ESATA based external diskenclosure, with the 15 disks sensibly divided into three port multiplierbased ESATA channels of five disks each. If the enclosure and the serverconnected to


Sometimes the right thing to do is to stop (and even to give up)

I'm generally someone who is happy to keep chasing an oddity or amystery, to keep plugging away at the problem to at least chart itout and perhaps figure out what is going on. I suspect that this issomething that a lot of sysadmins feel; if there is something wrong,we itch to figure it out and put it to right. And the satisfactionof finally succeeding is an excellent feeling. But sometimes this isabsolutely the wrong thing to do. Sometimes the right thing to do is to


Things get weird with read-only NFS mounts and atime on Linux

It all started with this tweet by Matt Simmons whichled to a mailing list question and a second message with context :

Nevertheless, I tested it and unless I messed up my test, an NFS mountwith -o ro, you read a file on the mounted FS, and the access time isupdated.

For the test the server was a NetApp, the client was Linux.

There is a mount flag -o noatime that does what I want. But I wouldargue that this is not right. The simplest