A semi-brief history and overview of X fonts and font rendering technology

Because I've just been mucking around in this swamp, I feel likewriting all of this down.

In the very beginning, X had some simple bitmap fonts in the serverwith equally simple names that were basically labels; ie, the X serverattached no particular meaning to the font names, which were created bypeople mostly to be short and sometimes to be vaguely meaningful. Someof these font names linger on in X today; the most well known one is fixed , the name for the default monospace font


The Go language's problem on 32-bit machines

Recently (for my value of recently) there was somewhat of acommotion of peopledeclaring that Go wasn't usable in production on 32-bitsystems because its garbage collection was broken and it would eatall of your memory. Naturally I was interested in this and spentsome time digging in to the reports and trying to understand thesituation. Today I'm going to try to write down as much as I knowabout what's going on to get it straight in my head, which is going


My Firefox memory bloat was mostly from All-in-One Gestures

It's time for an update to my prior Firefox situation ( one , two ).After some experimentation it's become clear that mostof my Firefox problems with constant memory growth and zombie compartments were dueto my use of All-in-One Gestures ( as I kind of suspected itmight be ). I've switched to FireGestures instead(initially as an experiment and now full time on all of my variousFirefox instances on various different machines) and things have beenmuch better; there are no


Some stuff on 'time since boot' timestamps

From today on Twitter:

@standaloneSA : Is itjust me, or does it seem silly that the #NetFlow timestamp field forthe flow references "ms since the router booted". Seems obtuse.

@thatcks :@standaloneSA It's probably easy to implement in the router and itcreates an absolute ordering w/o worries about time going backwards.

In the Twitter way, this is a little bit cryptic so I'm going toelaborate on my guess here.

Suppose that routers were supposed to generate an


My Firefox 12 extensions and addons

In light of yesterday's entry about my failed Firefox Nightlyexperiment and the potential that some ofmy extensions are the root cause of my Firefox problems, I'm goingto run down the current set of Firefox extensions that I use in mymain browser (updating previous discussions from the Firefox 7 era, which alarmingly was lessthan a year ago). This time around I'm going to group them by purpose:

Safe browsing:

  • NoScript to disable JavaScript for almost everything. I browse with JS blockedand

A basic step in measuring and improving network performance

There is a mistake that I have seen people make over and over againwhen they attempt to improve, tune, or even check network performanceunder unusual circumstances. Although what set me off now is thiswell intentioned article ,I've seen the same mistake in people setting off to improve their iSCSIperformance, NFS performance, and probably any number of other thingsthat I've forgotten by now.

The mistake is skipping the most important basic step of networkperformance testing: the first thing you have to do is


My experiment with Firefox Nightly builds: a failure

Ever since my old Firefox build started crashing and Iwas forced to update to current versions , I'vehad serious memory issues with Firefox. I used to be able to leaveFirefox running for weeks (or months) with basically stable memoryusage. Now, Firefox will steadily bloat up from under a GB of residentmemory at its initial steady state to, say, 1.5 GB in a few days atmost. Although my current machine has 16GB of RAM, Firefox progressively gets slower and slower


The death of paging on the web

I've written about the problem of permanent headers and footers before (around a year ago), but I'm seeing more andmore of them these days. What this confirms for me is that paging isdead on the modern web.

By this I don't mean long pages; I'm not one of those people who thinkthat all of your content has to be 'above the fold', immediatelyvisible as what people see (and the available evidence from actualexperimentation apparently says otherwise)


All your servers should have Linux's magic SysRq enabled

This is effectively another lesson learned from our recent building powershutdown. I will put it simply:

All of your servers should have magic SysRq enabled.

There are reasons to not do this on client machines (but not necessarilyvery good ones), but none on your servers (which certainly should havetheir hardware and consoles in a secure location).

What magic SysRq is good for on servers (above everything else) isgiving you a last ditch chance to shut down or reboot the machinein something approaching an orderly


Things I will do differently in the next building power shutdown (part 2)

Back at the start of last September, we had an overnight building widepower shutdown in the building with our machine room and I wrote alessons-learned entry in the aftermath. Well,we just had another one and apparently I didn't learn all of the lessonsthat I needed to learn the first time around. So here's another set ofthings that I've now learned.

Next time around I will:

  • explicitly save the previous time's checklist. If nothing else,the 'power