New Blog

I am now retiring this wordpress blog and switching to a blog based on Frog. It is available at:

I started this blog in high-school and it has served me well for 4 years. I feel that writing from a WYSIWYG interface doesn't work well for me anymore.

Diecast Collection

Recently, I added 2 cars to my diecast collection. A Kennedy Limo and a Duesenberg. These are fantastic looking cars and the full album is online here:

What a beautiful car.

Java Bullshit

Recently I had a couple of large gzip files that contained data from a single source and since I wanted to keep things together, I decided to store the files as one large gz file. Any sane person would do:

cat file1.gz file2.gz > file3.gz

And the result is going to be a valid Gzip file. Next, I had a clojure process go and mine this gz file (which when decompressed should have data on each line so we can line-seq over it and things should be fine.

Of course fucking not. Turns out that such a gzip file that every piece of shit language's API can read cannot be read by yours truly: GZIPInputStream that Java uses.

Now, I have a 10+ gig Gzip file that java cannot read. This is obviously not fucking documented anywhere and I had to find this out in #clojure (the IRC room for clojure). In fact here is a Bug report closed as a wontfix:

I fail to understand how something with so many sugar daddies can fail to even put together a GZIPInputStream that implements the full spec.

There is so much fail in everything I use with Java. So much fail.

This cancer needs to end.

Clojure For Scripting

I have been trying to make Clojure my default language for scripting and since I am a pillock, I used a new project for almost single-file code pieces.lein exec is apparently the way to accomplish this. This is going to make life easier henceforth.


Links for 13-Apr-2013

I was recently studying some material for scribe notes for a class on Graphical Models. In Bayesian stats, there is such a thing as the De Finetti's Theorem. Scribe notes from Michael Jordan's class contained excellent content on the topic. The takeaway message from the theorem is that (this is an excerpt from the notes I've linked to):

 p(x_{1}, x_{2}, x_{3}, x_{4}, \dots, x_{n}) = \int \! p(x_{1} | \theta) d \! \theta

  • There must exist a parameter θ.
  • There must exist a likelihood p(x|θ).
  • There must exist a distribution on θ.
  • These quantities exist to make a sequence of random variables (observed data) conditionally independent.