My name is Brian and I love lolcats.
It gets bonus points for making the jump into newspapers!
5 writebacks [/stuff] permanent link
Python and the Number of the Camel
The Number of the Camel shows its face again! Santiago pointed out that number 6 is weird in languages, and today Guido von Rossum points out that Python 2.6 will be concurrent with Python 3000!
0 writebacks [/src] permanent link
Scaling is the new theme of my programmering life it seems. The good part: it really means scaling, not performance. The bad part: things actually need to scale, performing really well doesn't let you squeak by with session affinity and half-assed replication. The biggest thing I have noticed, in myself, is a move from thinking about how to implement services to how to ensure that interactions between them don't become the bottleneck.
Sometimes this is a question of protocols in the IETF sense: HTTP, SMTP, DNS, XMPP, etc. Most of the IETF protocols are pretty damned good, as it turns out. Shocking huh? Many other times it is a matter of protocols in the traditional sense: what does the interaction need to look like. How many messages need to be sent, how quickly, how reliably? Who cares what is inside the box -- if between Martin, Diego, Tom, Tim, Lili, David and myself we cannot drag it to somewhere near enough an optimal solution, something is really wrong. What is inside a server is not the problem.
The problem is fun things like tolerating (or failing quickly in the face of) network partitions, managing work scheduling fairly across an arbitrary number of machines (or not, unfair scheduling frequently works better), avoiding cascading failures when one element goes down (and better yet, still working for the most part), knowing what is going on in the live system beyond a conceptual level, working out what is cacheable where, how, how long, how many, and so on. We've all dealt with these to some degree, but when they really become the key point it rocks!
The protocols between services are where the fun is, I had no idea! The turning point was probably the day "Enterprise" in a product description went from meaning "consultants required" to "probably cannot handle the load." Totally unfair to a lot of good products which have had Enterprise slapped on them by marketing, but those are sadly in the minority. When you say "we need to double the number of servers" then, minutes later, you have doubled the number of servers and things are copacetic, life is good.
0 writebacks [/ning] permanent link
When I started this blog four years ago I figured I would generally avoid talking about work. The most interesting stuff I was playing with was outside of work, and it seemed the safe and sane course.
Then I started at a place doing awesome stuff and suddenly the most interesting stuff I am doing is at work. D'oh! This has lead to me really wanting to talk about a lot of things and running into the "wait, this is work."
Net: I am going to start talking about work, it is the most interesting programmery stuff I am doing :-)