Co-Presenting is Awesome

I try to do at least one or two technical presentations each year. The last couple of presentations I’ve done have been co-presentations with Leon Bambrick. I’ve been pretty happy with how these talks have gone, and I think Leon is a great presenter in his own right. But I also believe there are some intrinsic advantages to co-presenting. Less Boring I’m convinced there is a good reason very banal content like the home shopping network and morning television uses two or more co-presenters. »

Terra Incognita and Unknown Unknowns - my OSM rendering journey

How Hard Could It Be? - programmer epitaph Here is a story about some things I learned about open street maps and how map tile rendering works, and some reflections on dealing with the unknown as a developer. The Pride It all started innocently enough. I was investigating the possibility of using OpenStreetMap (OSM) data to render some maps and perform turn-by-turn navigation in an app I was working on. »

Nature Doesn't Architect for Scale and Neither Should You

A persistent feature of science-fiction and fantastical stories from King Kong to Godzilla, to recent films like Rampage is the animal that is suddenly made much larger. Of course in real life it doesn’t quite work this way [1]. For every animal there is an approximately correct size - not optimal, since even within a species there are variations, but most convenient. A large change in size inevitably carries with it a change in form. »

Monitoring Data in a SQL Table with Prometheus and Grafana

Recently I set up a proof-of-concept to add monitoring and alerting on the results of a query against a Microsoft SQL Server database table. I know there are a lot of ways to do this in the SQL server ecosystem, but I wanted to eventually be monitoring and alerting on metrics from many different sources - performance counters, Seq queries, and custom metrics exposed from a number of services. With this heterogeneity in mind I chose prometheus for this, and tacked on Grafana to give me some nice dashboards in the bargain. »

Product Documentation with Wyam

I recently wanted to add documentation and a product blog to an existing application, and rather than build out a full data model to support this I decided I’d go with the static file generation route. Although I’d had good experiences with Hugo, which I used to generate this blog I decided to go with Wyam because its “docs” recipe was close to what I wanted. Although the Wyam docs suggested I could create a custom theme and then package it up via nuget, the path of least resistance turned out to be just copying the files I wanted to change from the existing Samson theme into the input folder (where your content goes) and changing them there. »

Edge Cases Will Kill You

Distributed systems can fail in lots of different ways. Messages not received, messages sent multiple times, messages received out of order, and concurrency issues arising from different parts of the system receiving or not receiving related messages in the right order, or at the right time. Network partitions force you to decide between consistency and availability. Good architecture and technology stacks can shield us from a lot of these problems, however if you start picking away at the edges you can invariably find problems that can still arise in complex distributed systems. »

Lessons from the Skunk Works

Lockheed-Martin’s Skunk Works has a hallowed place in the annals of engineering. Established in 1943 near a plastics factory in Burbank, California as a secretive, elite engineering group they built the first jet fighter for the United States, the P-80. Led by Kelly Johnson their chief engineer they completed this amazing feat in 143 days from the start of the design process to the first production model flying, under the severe resource and personnel shortages you would expect in a nation at war. »

Choice, Happiness and Javascript Frameworks

Malcolm Gladwell in his TED talk Choice, happiness and spaghetti sauce tells the story of Howard Moskowitz, a psychophysicist and market researcher and his insights into customer satisfaction. Howard’s big idea was that in many cases there was not one perfect platonic ideal for a particular product. Some people like chunky spaghetti sauce, some people like spicy, and some people like thin, blended spaghetti sauce. By trying to make a ‘one-size-fits-all’ product a lot of marketers and food scientists were making something that was the least offensive to most people, but was sub-optimal compared to multiple products in the same category, each tuned to the tastes of a particular ‘cluster’ of customers. »

Open Source

Given the proliferation of places source code can be hosted I thought I’d try to gather up the links to all the different places, in one place. GitHub My Stuff BitBucket Remember when Git didn’t run well AT ALL on windows, and Mercurial seemed like the logical choice? My Stuff CodePlex Remember codeplex? Nah, me neither. BigNote fx thematic WPF Telemetry Image Credit Christopher Ducamp »

Annus Mirabilis

2016 has drawn to a close, leaving us to look back with fond nostalgia to the halcyon days of 2010 and 2011 when the worst thing we had to worry about was Greek debt, the possible collapse of the E.U. and inter-species pandemics. However out of adversity great ideas, art, businesses and people are often born. One inspirational example of this is Isaac Newton’s so-called “Annus Mirabilis” in 1666. Except for the calamity of nuclear war, nothing we might face in 2017 really compares to what the people of England were actually up against in 1666. »