At the conclusion of the modulating bridge, we expect to be in the contrasting key of C minor. Instead, the bridge concludes in the distantly related key of F sharp major... Instead of resolving to the tonic, the cadence concludes with two isolated E pitches. They are completely ambiguous. They could belong to E minor, the tonic for this movement. They could be part of E major, which we've just heard peeking out from behind the minor mode curtains.
Continue Reading »(Human | Pattern) Languages, part 2 (Human | Pattern) Languages We missed the point when we adopted "patterns" in the software world. Instead of an organic whole, we got a bag of tricks. The commonly accepted definition of a pattern is "a solution to a problem in a context." This is true, but limiting. This definition loses an essential characteristic of patterns: Patterns relate to other patterns. We talk about the context of a problem. "Context" is a mental shorthand. If we unpack the context it means many things: constraints, capabilities, style, requirements, and so on.
Continue Reading »Connection Pools and Engset In my last post, I talked about using Erlang models to size the front end of a system. By using some fundamental capacity models that are almost a century old, you can estimate the number of request handling threads you need for a given traffic load and request duration. Inside the Box It gets tricky, though, when you start to consider what happens inside the server itself. Processing the request usually involves some kind of database interaction with a connection pool.
Continue Reading »Thread Pools and Erlang Models Sizing, Danish Style Folks in telecommunications and operations research have used Erlang models for almost a century. A. K. Erlang, a Danish telephone engineer, developed these models to help plan the capacity of the phone network and predict the grade of service that could be guaranteed, given some basic metrics about call volume and duration. Telephone networks are expensive to deploy, particularly when upgrading your trunk lines involves digging up large portions of rocky Danish ground or running cables under the North Sea.
Continue Reading »Constraint, Chaos, Collapse Patrick Muellr has an interesting post about being brainwashed into believing that the outrageous is normal. It's a good read. (Hat tip to Reddit, whence many good things.) As often happens, I wrote such a long comment to his post that I felt it worthwhile to repost here. My comment revolves around this chart of the Dow Jones Industrial Average over the last eighty years. (For the record, I'm not disputing anything about the rest of Patrick's post.
Continue Reading »Licensing for Windows on EC2 One thing I noticed when I fired up my first Windows instances on EC2 was that Windows never asked me for a license key. From examining the registry, it appears that a valid license key is installed at boot time. On two instances of image ami-b53cd8dc (ec2-public-windows-images/Server2003r2-i386-anon-v1.01 for i386) I got exactly the same key. Likewise, on two different instances of ami-7b2bcf12 (ec2-public-windows-images/Server2003r2-x86_64-anon-v1.00 or x64), I got the same license key--though not the same key as the i386 image.
Continue Reading »Windows on EC2, from a Mac It may be a bit perverse, but I wanted to hit a Windows EC2 instance from my Mac. After a little hitch getting started, I got it to work. There are a few quirks about accessing Windows instances, though. First off, SSH is not enabled by default. You'll need to use remote desktop to access your instance. Remote desktop uses port 3389, so the first step is to create a new security group for Windows desktop access
Continue Reading »Don't Break My Heart, EC2! I'm a huge booster of AWS and EC2. I have two talks about cloud computing, and one that's pretty specific to AWS, on the No Fluff, Just Stuff traveling symposium. With today's announcement about EC2 coming out of beta, and about Windows support, I wanted to try out a Windows server on EC2. Heartbreak! ec2-describe-images -a | grep windows IMAGE ami-782bcf11 ec2-public-windows-images/Server2003r2-i386-anon-v1.00.manifest.xml amazon available public i386 machine IMAGE ami-792bcf10 ec2-public-windows-images/Server2003r2-i386-EntAuth-v1.00.manifest.xml amazon available public i386 machine IMAGE ami-7b2bcf12 ec2-public-windows-images/Server2003r2-x86_64-anon-v1.
Continue Reading »Perfection is Not Always Required In my series on dirty data, I made the argument that sometimes incomplete, inaccurate, or inconsistent data was OK. In fact, not only is it OK, but it can be an advantage. There's a really slick Ruby library called WhatLanguage that illustrates this beautifully. The author also wrote a nice article introducing the library. WhatLanguage automatically determines the language that a piece of text is written in. For example (from the article)
Continue Reading »Arrival at JAOO Considering that it's 7:30 AM local time---where "local" means Aarhus, Denmark---and I'm awake and online, it looks like I've successfully reset my internal clock. Of course, my approach consisted of staying awake for 28 hours continuously then having three excellent beers with dinner. There are probably easier ways, and there may be repercussions later. I've always heard good things about JAOO, so it was an honor and a delight to be invited.
Continue Reading »