die Frequenz der Blog

Post Frequency by Month


This nicely illustrates that my blogging attention span is kind of bursty. There is a cluster of posts during the first half of 2008, another one in the first half of 2009 and then a giant dead spot from the middle of 2009 until last month. It's actually kind of funny that pretty much all of my blog posts have been written in tree bursts of attention separated by big swaths of neglect.

Histogram of Post Frequency


... and the runaway winner is zero! Mostly explained by the fact that there have been streches of five or six months where I haven't posted a single thing (like, for instance, the first half of 2010). November 2010 deserves special mention as it is a crazy outlier on the the complete other end of the scale with four more posts then then next most prolific month.

Making Tufte Proud

I used flot to generate the histograms and while it does a good job at producing nice looking graphs it has the annoying habit of adding lots of stuff to your plots which reduces the percentage of pixels in your plot that convey data (data ink). It took a surprising amount of fiddling to turn off all of the exta stuff, most of which was accomplished by setting the color of the grid lines and frame to white:

$.plot($("#plot"), [data], {
    bars: {show: true},
    grid: {
        backgroundColor: "#ffffff",
        borderColor: "#ffffff",
        tickColor: "#ffffff"
    yaxis: { ticks: 0 }

New Computer, New Tools (GCC on Mac OS X)

I recently traded in my two-and-a-half year old MacBook for a sexy new 13.1 inch MacBook Pro. It's pretty much the base model plus a 128 SSD, 'cause I read somewhere that SSDs are "... the most cost effective performance increase you can buy... "

I have to say, it's pretty awesome. Thanks to the migration assistant Chrome and Firefox were already there, Pandora and Gmail already knew who I was: It was pretty much a drop-in replacement for my old computer, except faster an shinier. "Pretty much" is kind of the operative phrase there. I did have to reinstall GCC, and that was a pain. Y'see, the entire reason I use a MacBook is because Mac OS X is a *nix with a pretty, consistent, GUI. I'm a build-from-source kind of guy, so I need a C compiler on my laptop, and getting that compiler onto my MacBook was way harder than it ought to be.

Here's what setting up a build environment on Ubuntu (my other *nix of choice) looks like:

sudo apt-get install build-essential

One command that I can type from memory1 and a little bit of waiting. Contrast that with what you need to do to get GCC on Mac OS X:

  1. Register as a developer at http://developer.apple.com/ which includes explaining whether your interested in building iPhone apps, iPad apps or iPhone apps.
  2. Download Xcode, which is like 3 Gigs (keep in mind, I have an SSD, it's teeny). This took all. Frigging. Day. I don't know if it was Verzion, or Apple or both, but some router, somewhere was conspiring to keep me from getting my C compiler in a timely fashion.
  3. Install Xcode and remembering to not install the iOS environment which takes up like 8 Gigs (SSD!). You can't just install GCC, you have to install Xcode (a development environment I will never use, I have Vim after all) so there goes 2 Gigs I'll never get back.
  4. You now have a C compiler, and can now checkout and build clang from source.
  5. You now have not one, but two C compilers. All is right in the world. (Okay, so that last step is superfluous, but, who doesn't want a C compiler they built themselves from source?)

So that's only a days worth of downloading and a multi-gigabyte install so that I can compile "Hello World": Come on!

Now the reality is, the last time I had to do this was two and a half years ago, and if my computer only annoys me enough to write about it once every couple of years, I'm doing pretty good.

[1]The package might actually be named build-essentials, but since Ubuntu's apt-get auto-completes package names, you just have to type build-^TAB and you get the right thing.

New Location, New Tools (redux)

Two years ago I posted that I had moved my blog from Blogger to some django based thing. Recently, I've moved to a different, even more custom, system. In the intervening time, I've written precisely fourteen and one-half blog posts. You may be thinking to yourself: "Surely, that means you spend more time working on your blog's software than actually, y'know, blogging". You would be right, it just turns out that I happen to like it that way.

The new engine is based around the idea of having all of the blog posts stored as reStructuredText documents and then generating all of the indexes/feeds/etc. as a build step producing a bunch of static HTML. This has a couple of neat effects:

  • The entire state of my blog can be stored in version control.
  • I can do all of my editing using my favourite text editor.
  • I can do silly things like running OptiPNG over every single image as a build step.
  • I can say: "My blog software is nginx1."
  • It has the highest YSlow score of anything I have ever worked on.
  • It has a development server (for realz).

Those might sound like the sort of the features that only a programmer could love, well it just so happens that I an one. Sure, this probably only works because (including the post about changing tools) I've only got something like fifteen and two-thirds blog posts, but it all makes more sense if you think of the blog posts I write as cleverly disguised unit tests for whatever blog software I'm working on at the time ;)

[1]It isn't actually. I use Apache just like everybody else. nginx just sounds cooler.

New Location, New Tools

I have moved Entropy and Ecstasy from it's previous home on blogger to a new custom blogging application written using django and coltrane the undocumented and unsupported blogging application for django.

The new application provides one key benefit: It allows me to mark up articles using reStructuredText. I was getting really fed up with the rich text editor (RTE) that blogger uses. I kept finding myself needing to switch into html mode to achieve the effects that I wanted, but when I switched back to using the RTE, it would freak out.

Additionally, using this custom application gives me a great deal more control over the layout of the blog than was possible using blogger. Granted, I lose some of the ready made functionality available to blogger users, but many of the cool things that blogger offers are implemented and just need to be plugged in. For example, I have already started tagging my posts, but I haven't decided how to display the tags just yet.

Finally, (while this may seem like a disadvantage to those who just want to sit down and start publishing) the new tool chain let's me hack the pieces that don't work quite right. I like tools that let me fool around with the internals, so even if the tools are not polished to perfection just yet, with time I will be able to make them fit my work-flow.