Integration mapping with api-map

How Should Two APIs be Integrated? As our apps become more and more integrated with different APIs figuring out how to make them ‘work together’ becomes a larger piece of the software development effort. Protocols and standards have made authentication and sending and receiving messages easier, but don’t help us to understand the contents of the messages. Some companies spend a lot of time designing their APIs and messages, whereas others seem to just surface the details of their underlying system. »

Dotnet Core 3 on a $5/mo Linux VM

Dotnet Core 3.0 is nearing release. At the time of writing preview 5 has been out for almost 1 month. I’ve been working on a small Dotnet Core 3 app which I eventually intend to run on GCP, but since GCP doesn’t currently support Dotnet Core 3 without creating your own custom app engine runtime I thought I would instead get my app up and running on a cheap and cheerful $5/mo Linux VM, courtesy of Digital Ocean. »

You're Competing With Netflix, Probably

As Peter Thiel noted in zero to one, it is common for companies to lie to themselves and to others, and claim they’re in a league of their own. The fatal temptation is to describe your market extremely narrowly so that you dominate it by definition. Suppose you want to start a restaurant that serves British food in Palo Alto. “No one else is doing it,” you might reason. “We’ll own the entire market. »

Evergreen Skills for Software Developers

Almost 12 months ago I delivered a talk at DDD Brisbane with my good friend Leon Bambrick because co-presenting is awesome. The “big idea” of the talk is that even though technology is changing more and more quickly there are things you can spend time learning that can last you the rest of your life. If you feel pressured by the pace of change this talk might give you some things to think about. »

On The Merits of Using Standard Parts

When I was much younger I had a european car. Not a fancy, nice, european car, but something that was just…“unusual”. One day the alternator in the car stopped working, and I needed a new one in order for my car to work again. The man from the auto-club shook his head, nodded sagaciously and said that if my car had been a Toyota, Ford or several other more popular brands I could be on my way for a few hundred dollars, because he carried alternators for those makes of cars in the back of his truck. »

I'm Getting Too Old For This JIT - Native Binaries and AOT

One of the things I love about the golang ecosystem is the tools it produces. Dependency-free binaries that start up fast, “just work”, and run with modest (or at least justified) memory requirements. Dotnet on the other had has touted xcopy deployment since its inception, and it works…but only if the .net framework is already installed. And the start-up time can leave a bit to be desired. .Net core itself hasn’t really changed this, but the CoreRT runtime, an open-source . »

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. »