Monthly Archives: October 2010

(: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 […]

Alles für den Staat Comments Off

Today, in the New York Times, there was another arti­cle about how the US gov­ern­ment wishes to make it eas­ier to estab­lish the National Panop­ti­con. This fol­lows a pre­vi­ous arti­cle that con­tained the amaz­ing open­ing para­graph: Fed­eral law enforce­ment and national secu­rity offi­cials are prepar­ing to seek sweep­ing new reg­u­la­tions for the Inter­net, argu­ing that their […]

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, […]

Pear and goat cheese parfait Comments Off

A dessert for a cool fall evening if I’ve ever seen one. Comice pear with goat cheese, honey, lime and grains of paradise.

The coming IPocalypse, Pt 2 — The Addressening Comments Off

For most peo­ple, if they think about IP address­ing at all, they see it as a 1:1 assign­ment of addresses to machines. This isn’t true though, either in the­ory or prac­tice. A sin­gle machine can con­tain at least the fol­low­ing address types: IPv4 uni­cast  —  192.168.1.10 IPv4 loop­back  —  127.0.0.1 IPv4 broad­cast  —  192.168.1.255 IPv4 mul­ti­cast  —  224.0.1.41 IPv6 uni­cast  —  2001:DB8:0:0:0202:B3FF:FE1E:8329 IPv6 loop­back  —  ::1 IPv6 any­cast  —  2001:DB8:0:0:0:0:0:0 IPv6 […]

The coming IPocalypse, Pt 1 Comments Off

Nearly 15 years ago, the IETF gave final approval to the next ver­sion of IP: IPv6. This came after sev­eral years of exten­sive research, pro­to­typ­ing and work by a lot of very smart peo­ple attempt­ing to solve the prob­lems fac­ing the then-current ver­sion, IPv4. The prob­lem is, in the inter­ven­ing years, IPv6 has not been rolled out […]

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 […]

Refactoring a life, Pt 1 Comments Off

Within the soft­ware devel­op­ment com­mu­nity, the term refac­tor­ing is used pretty fre­quently. Mar­tin Fowler defines it as: Refac­tor­ing is the process of chang­ing a soft­ware sys­tem in such a way that it does not alter the exter­nal behav­ior of the code yet improves its inter­nal struc­ture. The ques­tion for me is, what hap­pens if we apply some […]