Jason M Knight

HomeBlog → These are a few of my favorite things

These are a few of my favorite things

I was writing an email to an old friend updating him on how my life is going and I thought I'd post it here to 1) act as a diary entry so I can someday and look back and say "awww, how cute" 2) show anyone else who cares what kind of things I've been playing with/looking at, and 3) try to add content to the blog and try to get into the habit of converting long, interesting-ish emails into blog posts quickly. 

My two year old daughter is so amazing, but it's hard to keep her entertained, as she is just a giant sponge and there are only so many things to do around the house (park, blocks, hide-and-seek, drawing/coloring, and dancing to music) so unfortunately the rest of the time is watching TV or playing phone games (although this only amounts to maybe 2-3 hours of the whole day on average, and they are all pretty educational). I wish there were higher quality mathematics oriented kids shows on Netflix, and similar free games available for Android. But I definitely can't complain, Netflix is a miracle for parents: each show is commercial free, and 'individually packaged' because you have to consciously start every episode by pushing a button. That way it is easy to monitor exactly how many shows your kid is watching rather than leaving the TV playing for an unknown amount of time. There's also a greater ability to only select what you want to watch, rather than settling for whatever is currently playing.

Research-wise, I'm working with some really cool 'intellectual toys': using Bayesian networks and really powerful MCMC techniques to infer the

m. I got to write a bunch of code to implement it all and then found some strange results. But yesterday I found similar strange results in a well respected text book, so that made me feel pretty good. Unfortunately now I need to extend the code even further (to do even more interesting things), and I feel like my base architecture is not that great, so I now have to decide whether to move forward, or rearchitect some things before proceeding.

I also am feeling uneasy about my language choice... I am using Python with Cython and some C, but it just feels kinda clunky, as I'm effectively using 3 languages (or maybe 2.5) and they all have to interface with each other. I'm fighting the urge to switch to something like Haskell, or something even more radical like the very interesting (but bleeding edge) Julia. I'm really rooting for Julia, as it has a wonderful blend of many components: easy syntax (similar to MATLAB), with good functional programming aspects, a sane and well implemented type system, and raw speed by using the LLVM JIT. Too bad there is almost no library support because it's less than a year old.

I've also found a secret love of mine in distributed filesystems and the Ceph project [1]. I've always been a bit disappointed by the NFS and CIFS/Samba networked filesystems for some reason, and I found Ceph and realized that this is definitely the future of large scale networked storage, and it is open source as well! You can find the original author's PhD dissertation on it if you google it too.

Also, I've been using Redis as part of my research code, and if you need a fast, networked, in memory (but with persistence) data store, then you should seriously check it out. I love all the different data structures, the ease of use, and the ridiculous speed.

Also, have you heard of Bitcoin? Do you want 0.1 free bitcoins? (around $1 USD equivalent), then you should create a free online wallet at Coinbase.com and use my referral URL! I really like the service, and it's fun to be on the frontier of an exciting way to conduct transactions. I've even got a blog post draft on how to explain the Bitcoin system using the analogy of a bunch of origamist friends, but it'll have to wait until I have a bit more free time (along with the other 4 or 5 drafts I have saved).

Until then!

[1] - http://en.wikipedia.org/wiki/Ceph or http://ceph.com/
Comments