Best Practices
Fail Tales #1 – The Highlander Constraint – Designing for 65% Availability
In this installment of Fail Tales, we’ll take a look at the business, user experience and technology design implications of the Highlander Constraint and a few fundamental mitigation tactics. For those unfamiliar with the Highlander tale of film and television, the worlds fortune rests on one person who, by virtue of competitive mortal combat, wins […]
CAP Theorem applied to Organizations
It’s well understood today that as you scale out internet platforms you can’t have perfect data consistency and high availability at the same time. Like system architects that are now forced to adopt alternative eventually-consistent data stores, big organizations are facing a similar dilemma as the demands for information consistency, speed and scale square off. Increasingly, organizations […]
The Pickles Solution
The Pickles solution is – discovering the solution to a problem through the act of explaining the problem to somebody else. This is very common in programming where a developer spends a lot of time on his own trying to fix a problem to no avail. He calls over another developer and starts explaining the […]
“native vs web” is total malarkey
The web is dead. HTML5 is the be-all end-all of the future. Users are spending more time on apps and less time on the web. You can do anything on the web that you can in a native app. Yawn. Here’s how I feel whenever I hear/read anything about the overplayed “Native Versus Web” argument: […]
Improving iOS code with blocks and block programming
Programming languages are like people. Some are better at some things than others; some can do things other’s can’t. If they’re taken care of they get better over time. While I could look at a number of languages and frameworks for demonstration I’m particularly inspired by the relatively recent improvement of iOS development due to […]
Bookmarklets and Javascript – A powerful combination
Do me a favor: copy the line of text below and paste it into your browser’s address bar and press Enter. javascript:alert(“Holy Moly! I can run code in this thing!”); Whoa! What just happened? Javascript. That’s what. And that’s all it takes to make those magical things called bookmarklets give you an awesome (and […]
Seize the Space – Why Technology is Creative
If you happened to be in a certain conference room in midtown Manhattan last April, you would have witnessed something seemingly normal: two executive creative directors (ECDs) reviewing campaign work and debating brand attributes, customer aspirations, and engagement. What made this meeting extraordinary is the fact that one of the ECDs was a gifted programmer […]
Syncing data with Mobile CouchBase
As anyone who’s used one of Amazon’s Kindle apps knows, synchronization without user interaction is a priceless feature. As any programmer who’s built an app that persists data across multiple devices knows, synchronization takes a lot of work. A todo list for accomplishing this task might look something like this: Ensure the device has connectivity […]
Virtuous Cycles: Complex Systems Build Themselves
Some of the best views of the New York City skyline are from the BQE near the Kosciuszko bridge. It confounds me how a population of hominids built this wonderfully intricate metropolis. Layers upon layers of tunnels, pipes, electronics, the diverse topography of buildings and bridges. It’s awe-inspiring. Our ingenuity as a species is impressive, […]
Using Code and Working Software to Inspire others
Successful programmers and technical architects are well known for their ability to deliver rock solid applications, however, it’s their ability to inspire that’s most prized at R/GA. Good programmers execute, while great programmers inspire. In his book, Sketching User Experience, Bill Buxton highlights the importance of sketching as a technique for putting “experience front and […]










