Category Archives: programming

Entropic programming 1

We all have weird obses­sions that we deal with. Mine is ran­dom num­bers. Don’t ask. Any­way, I’ve also been play­ing with some sim­u­la­tions and crypto work and needed a bet­ter source of entropy. So, after a bunch of research, I decided to buy an Entropy Key from Simtec Elec­tron­ics in the UK. They were the only ones who […]

Rethinking Scala 1

After sev­eral peo­ple I respect ques­tioned my rush-to-judgement with Scala after my first expo­sure about a year ago, I’ve decided to dive back in and see if I can push through some ini­tial squea­mish­ness. I had picked up Pro­gram­ming in Scala by Mar­tin Oder­sky, et. al. I had got­ten around 50 pages into the book  —  out of 700+  —  and run into something […]

IntelliJ IDEA 10 performance on Mac OS X 2

The degree to which I hate Eclipse can not be under­stated. For me, it’s a truly loath­some piece of “soft­ware”. I tried out Net­beans but I found it amaz­ingly unsta­ble and slow. So, since I had been using PyCharm with some hap­pi­ness, and admir­ing RubyMine, I decided to pop for the “full enchi­lada” and drop the $249 for Intel­liJ IDEA. Fortunately, […]

(:summary (first clojure-conj)) 4

As I’m writ­ing this, it’s the first time I’ve had hotel-provided Inter­net access since I arrived on Thurs­day. The rea­son I men­tion this is that it is, by far, the only neg­a­tive expe­ri­ence that I’ve had at the first Clo­jure Conj. It has been the best pro­gram­ming con­fer­ence I’ve been to in a long time. The amount of […]

Redis and Python, Pt 2 — The Characters 1

One of the great things about Redis is the rich­ness of its data struc­ture. I once heard some­thing call it a “data struc­ture in the cloud”, and that’s not com­pletely inac­cu­rate. Before delv­ing deeper into using Redis with Python, I wanted to cover the core data types that are the foun­da­tion of this data-structured approach. If you’ve […]

Redis and Python, Pt 1 — Enter stage left 1

Redis is a key-value store if you want to strip the idea down. A key-value store maps a key, usu­ally a string, to some “blob” of data, and gives you the basic com­mands you need to manip­u­late them. There are a few things that I think make it inter­est­ing, how­ever: Rich data struc­tures Unlike some tra­di­tional key-value stores, like mem­cached, Redis […]

Clojure, Protocol Buffers and ZeroMQ, oh my! 1

So, what does it mean to put together ZeroMQ and Pro­to­col Buffers inside of Clo­jure? What exists below is really just a quick thrown-together com­bi­na­tion of a few sam­ple bits of code from projects. This isn’t intended as a les­son in ZeroMQ, Pro­to­col Buffers, or Clo­jure, but if you’ve got even a lit­tle bit of expe­ri­ence with a Lisp-ish language, […]

Pick a peck of pickled encodings Comments Off

In a pre­vi­ous post, I talked about ZeroMQ, and how it han­dles a lot of the under­ly­ing pieces/parts for you when you’re writ­ing a dis­trib­uted appli­ca­tion. One thing it doesn’t deal with is the encod­ing of application-level data onto the wire. It just moves byte-based mes­sages around. For that, you’ll need some kind of encod­ing scheme. There are a couple […]

Thinking in Ø 3

If Berke­ley sock­ets didn’t exist, some­one would have to invent them. If that some­one then focused more on the abstrac­tion of what you want to accom­plish, rather than how, what you would get is ZeroMQ. If you then stole a char­ac­ter from Nor­we­gian, you’d get ØMQ. The cre­ators of ZeroMQ define it as: ØMQ looks like an […]

Pushing the waterfall uphill Comments Off

The ideas behind agile devel­op­ment method­olo­gies are not new. They were more for­mally stated in The Agile Man­i­festo. The ideas behind more basic iter­a­tive devel­op­ment are even older, and have their own trade-offs. Both con­tain the idea that you can not know every­thing upfront. The agile method­ol­ogy states this idea explicitely: Wel­come chang­ing require­ments, even […]