Using a Mix of Computers and Humans for Security

Suppose that your bank offers currency conversion as a service: give them a deposit or make a withdrawal in euros and they’ll adjust your balance in dollars. They don’t do this out of the goodness of their hearts: today’s conversion rate is around 1.28 $ / €, so they’d give you 0.75 € for every $ and 1.25 $ for every € so they’d make a good 6.5% margin on the conversions. [More...]

Namespace for a valid SOAP message

A brief hint: if you see an error message like this:

InputStream does not represent a valid SOAP 1.1 Message

check the namespace of the SOAP envelope

SOAP 1.1: http://schemas.xmlsoap.org/soap/envelope/

SOAP 1.2: http://www.w3.org/2003/05/soap-envelope/

Binary Backward Compatibility

I saw this interesting article about a weakness in the Scala language. The weakness applies not just to Scala, but to pretty much any language: the community using the language cannot grow past a certain point until it somehow solves the problem of libraries depending on other libraries in a large (deep) tree. [More...]

Election Guide for Nov 8, 2011

My election guide for November 8, 2011. [More...]

Story Points

If you have complete and accurate requirements for your project which won’t change, and your development team is spot-on in estimating and highly consistent in their development pace. and there are no surprises, then you can produce highly accurate project timeline estimates up front. Such accurate estimates are (or, more accurately, would be) quite useful and well worth the effort it takes to produce them because of how nicely you can schedule everything. But how about the rest of us, for which none of this is true? [More...]

Faster than the Speed of Falsification

Lots of science writers are getting very excited about the news that an experiment measured neutrinos going faster than light. But as we all know, they are overreacting. [More...]

How Even Immutables are Hard with Threads

Armen Rigo has a blog posting (worthy of an article of its own) proposing using STM (Software Transactional Memory) in PyPy. In a discussion on reddit someone suggested that you could have weaker threading guarantees and just use locks manually. [More...]

When to Wrap a Library

I find that this comes up fairly frequently. You find some useful library: perhaps it does logging, or enforces design-by-contract, or it provides an API for calling web services. But someone on the team suggests that instead of using the library directly, we should create a wrapper: “that way, if we ever decide to switch to a different library instead it will be easy to switch”. Is this a good idea? [More...]

Setting Low Prices

I am in no way an expert on the tricky art of pricing, but I do have an interesting thought about the pricing of very cheap things. [More...]

Election Guide – May 2011

Here is my election guide for the primary elections in May of 2011. [More...]