Embracing Failure in Tech (podcast appearance) — April 28, 2025

Many thanks to James Dyson of Evolution Jobs for the organisation/initiation, and it was a privilege to be part of this alongside the other presenters!

Linzer: Similar Regions Across Multiple Cities — January 26, 2025

It was great to get along to my second "Makers gonna make" event at Codebase on Saturday, despite the Red Weather Warning on Friday. Many thanks to Peter Trizuliak for organising.

It's a pretty laid-back environment with a nice mix of focus time, breaks for pizza and free coffee / food (thanks to sponsors, Shopify, Codebase and The Source Coffee roasters). You can present what you've done and/or head to pub later, but no pressure to do either. The next event is coming up in February; I unfortunately can't make this one, but maybe see you at another!

Linzer: Region Summaries and Similarities — January 07, 2025

Over the holidays I was thinking about where I am with the Biscuits project. The Linzer version has gotten to the point where I have a lot of the core bits of technical knowledge required, and I "merely" need to understand the aesthetics, if I wanted to copy the original artist.

Whilst it is good to attempt to copy to learn, I am now a bit uneasy with it as a goal. This is partly because the habit of "Computing People" copying "Artistic people" is becoming a bit rude in the current race-to-the-bottom of AI Art. However, it's also because I have some other ideas I wanna explore. So, I'm gonna do that instead.

The Biscuits Project: decomposing the structure of cities — October 01, 2024

I did a talk on this project at the GeoMOB Edinburgh event on 1/10/2024. The slides are available, but I'll give a summary of the accompanying explanation content here.

The "Biscuits" project began back in September 2017. It was inspired by a work of art by Armelle Caron called Les Villes Rangees:

Feature Stores at Shopify and Skyscanner // Matt Delacour and Mike Moran // Reading Group #4 — February 11, 2022

{% youtube "v42YVgPGKro" %}

Was great to be talking again as part of the MLOPs.community, this time on the more specific topic of Feature Stores.

From Idea to Production ML // Lex Beattie - Michael Munn - Mike Moran // MLOps Meetup #61 — May 03, 2021

{% youtube "WvwclqkEEpE" %}

It was super-great to be invited to talk to Demetrios alongside Lex and Michael about ML in Production.

Weekend Hack: Degrading QR Codes — November 15, 2020

My friends (Siwei and Hugo) and I were recently discussing some of the possible limitations of QR Codes. This re-animated an idea I'd had many years ago which relied on deliberately degrading QR Codes.

Playout 1.0, a Game for COVID times — November 01, 2020

TLDR: I've made a game: Playout. Please DM any feedback or feature requests!

The germ of this idea came from teams moving around at Skyscanner. Eva is an office manager there and often had to manually work out where to place teams when there was an office rearrangement. She had to take into account many preferences and constraints. Iva (a colleague) and I both thought this was something where a computer could be a helper, perhaps representing the task as a Constraint Satisfaction (CS) problem.

Map Maker: Ups and Downs — April 25, 2020

Ups and downs this week, ups:

The talented King Carmen of Carmenland created a small Garibaldi Biscuit logo for me. This is even though she despises anything associated with squidgyness. Thank you for suffering through this Carmen.

Map Maker: Spiking on Plus Codes and Mapbox Turf — April 19, 2020

In the current version of Garibaldi I have a thing called the "Reticule" which is the central area of the Map that is split apart into streets. This is defined as being some percentage reduction of the browser viewport size, so it is entirely relative to the current display. This was more than enough for me to get this far.

The Journey to Map Maker (aka The Coronavirus Diaries) — April 11, 2020

My current WIP in the Biscuits Project (Garibaldi) is now at parity with my previous iteration on the things I care about: being able to segment a map based on the structure of its streets. Except that it is all now being done client-side.

Edinburgh Film Festival 2019 (Shortlist of Films, Updated for availability) — June 16, 2019

Definitely want to see

Memory: The Origins of Alien The Art of Self-defense The Dead Don't Die Never Look Away (Werk ohne Autor) Extreme Job (Geukhan jikeop) …

A look back at FOSDEM 2019 — February 09, 2019

This year I am continuing my plan to do a mix of conferences. Last year it was GraphQL Europe and PyData Berlin. I'm starting 2019 with [FOSDEM 2019][fosdem2019]. It's now just over a week since I was there, so it's time to reflect before I forget it all.

About time for a (site) change — January 04, 2019

Now that Tumblr is showing signs of being on it's way to death I am wary of leaving my content on there. This angst is not reduced by the behaviour of other companies like Flickr, deciding maybe it wouldn't be keeping all those photos for you after all.

The world has also moved on since I last seriously touched this setup years ago, with HTTPS now expected and lots more choices. So, I decided to bring it all back under my control again as a static site.

When backend is frontend, and back again — August 08, 2017

If you're building a mostly-frontend dynamic site, but want to make it share-able on Facebook/Twitter with a nice preview image, then here's one new (slightly weird) way to do it.

Tautona: Visualising similarities between Slack channels — August 18, 2016

I hadn't done any lo-fi text analysis for ages, and since we've been using Slack at my job for a little while now, it was time to get munging!

The (lack of) relationship between price and value — September 20, 2015

In Vienna I had an espresso-fueled discussion with Dimo and Georgi about how the price of goods relates to their value. We got through quite a few different ways in which they are indirectly connected, so I thought I’d write them all down, even if only for my future reference.

The Global Minotaur: a review — September 07, 2015

I occasionally read books on economics, and they uniformly scare me.

As a parent, you look back to your own chlld-hood and realise your parents did not know what they were doing. Not because they did something bad, but because you know now that you don’t have all the answers, so they can’t have had them either. The veil of authority is removed but you can still have some degree of respect, even if not 100% agreement.

Not so with economics.

Looking for Bobby but found Paris instead — August 06, 2015

Go to any local attraction and you'll see people taking selfies with statues, towers, all sorts of sights. Once, walking past tourists taking pictures of Greyfriars Bobby in Edinburgh, I reckoned that some of those will be posted on Twitter. I should be able to find these, and similar pictures, automatically. How difficult could it be?

Problem: Porn.

Drone Futures — May 31, 2015

According to [BusinessWeek][1], long-haul trucks in America could be the first beneficiaries of self-driving technology. As far as safety and productivity goes, this should be a win.

However: self-driving cars are already [arguably][9] safer than people in urban areas, driving between states is a [comparatively easy problem][2], and the occupant of a truck is not a necessary part of the cargo. So, it’ll be hard to argue to keep a driver behind the wheel.

The Microservices Elephant — February 08, 2015

The term “microservices” is going through a phase where everybody has their own conceptions of it, so as soon as you start talking about it in any detail you quickly realise you all mean something slightly different, and you start questioning the value of language and why you bother talking at all. However, given there is now a book out, and a conference on it next week, it feels like it’s about to become a lot more definite. I thought I’d brain-dump my own thoughts on a few of the conceptions that are out there, before my own stance gets hopelessly clouded by many others.

Cost of Delay vs Cost of Failure: a balance of forces — December 21, 2014

This article presents my understanding of how the Cost of Delay model, in combination with Cost of Failure, can be used to choose between and decompose alternatives.

TLDR: A DevOps team can get long-term rewards of minimising Cost of Delay by balancing it against the stabilising force of Cost of Failure.

Sharing applied to Healthcare — May 23, 2014

Can we ever bring the sharing economy to health care coverage? If you are not using your insurance, give it to someone else. @yeohsiewhoon

— Filip Filipov (@Filipov) May 23, 2014

The idea of sharing unused insurance has a lot of assumptions baked in, and to be frank, I am no expert on emerging economies (referenced in a later tweet). However, let's unpack this.

Naked only please — January 03, 2014

Navigating a newly-discovered German swimming baths is a bit like an episode of the Crystal Maze. For those younger than me: this involved a series of rooms with dastardly puzzles which you needed to solve to get to the prize. Except the 'prize' here is men's bare arses.

Looking back on my 5:2 diet — January 02, 2014

So, a year on, how's my 5:2 diet going? The good news is that, [looking at the data][data], I've lost a whole, umm, 2kg over the past year ... hmm, wait. Ok, maybe not so good. The full graph tells a bigger story:

Spikes vs Tests: Brothers not Enemies — December 26, 2013

I write this post with a certain amount of guilt. If you look at my public coding persona (https://github.com/mikemoraned) it’s not unusual to see code with minimal tests, and a wide variety of styles and libraries. Compare that to my 'at work' style and, you’ll have to take my word on this, you’ll find a lot more tests and consistency. Why the difference? Most of my non-work code is the result of a Spike.

Playing music when someone is typing — December 22, 2013

It all started when Carmen asked me (something like): "couldn't you play that music from Murder She Wrote at work whenever you're typing?" Given I was on a plane at the time, with nothing much else to do, why not think about it?

Pair Programming, the Good, the Bad and the Ugly — December 21, 2013

Reading http://phinze.github.io/2013/12/08/pairing-vs-code-review.html has made me consider again what I think of as "pair programming". It’s a phrase that is misinterpreted, so let me clarify what it means to me.

I’ve worked on different teams where, none, some and constant pair programming was done.

Playing around with Verlet JS — December 08, 2013

I'm considering using [Verlet.JS][verlet] as a minimal Physics engine for another project of mine. I tried it out by porting over my little LSystems Crochet project to use it. You can see the results here: http://mikemoraned.github.io/lSystemsCrochet/verlet.html

It mostly works, apart from one crucial aspect: repulsion.

Web Performance Days, New York: "Load Testing" Open Spaces Session — October 21, 2013

One of the best hours I spent in New York was in an open spaces section of web performance days, which followed on after Velocity NY. It was on "Load Testing" and was led by Alexander Podelko and had a few other contributors, including myself.

min(weight) = 90.0kg! (gotta work on avg(weight)) — March 24, 2013

I've been doing the 5:2 diet now for around three months now, and just this week my min weight hit 90.0kg! As you can see from above there is a lot of volatility in my measurements; I measure myself every weekday at around the same time, but there is still easily a range of 2kg in the measurements.

BrowserStack: thumbs up on first minimal try-out. — January 22, 2013

I just tried out http://www.browserstack.com/ for testing my minimal IE8/IE9 changes for Nice to have. It's actually really quite handy. Take my review below with a pinch of salt though, as I only used it for 30 mins. I did a free registration around xmas and forgot about it, so that's all I had left today! Silly mike.

Brickman Experiment 1 — January 21, 2013

I had some fun making snow bricks at the weekend. Technically, Nils was present but it would be unfair to say I was playing with him; "directing", perhaps.

So, anyway, obviously you should try to use snow bricks to make a Lego man. Obviously.

Reading the Tea Leaves — December 30, 2012

When I was at Amazon I looked at a lot of graphs. Graphs of hits, graphs of cpu, graphs of all sorts of shit. Graphs are great, I loves them. However, the problem is that if you aren't in a habit of looking at the relevant graphs every day, and then something happens, you're faced with the problem of deciding what's normal. It is so easy to find patterns, especially if you have a good reason to think something important is happening (either for a good or bad reason).

Resources for a designer transitioning from print to the web? — December 29, 2012

A friend of mine who has a background in print design (copy, layout, some photography) is wanting to move his skills over into web design. I am most definitely on the other-side of this divide, so I asked another web designer friend what resources (website/book/whatever) they'd recommend:

"Nice to have" v0.0000001 — December 29, 2012

Ugh. Enough holiday hacking for now. I had an idea for an app a few weeks ago, and finally had some time between xmas celebrations to hack up a first version. Here it is: http://nicetohave.houseofmoran.com/ (source: https://github.com/mikemoraned/nicetohave-app)

Heed! — July 31, 2012

And so, the saga continues, baldie once again.

Interestingly, this time, I was very conscious of when it started happening.

Truth is more depressing than fiction? — July 20, 2012

This holiday, I finally finished ["The City & The City"][city] by [China Miéville][china].

My paper version of the [Miéville][china] book was a gift. Its hugeness makes it hard to carry, so I never got round to reading it. I bought it again for my Kindle (I wonder how often that happens?). Alongside his newly coined words there are many that lie just outside my vocabulary, so the built-in Kindle dictionary was very handy. Some of his invented words, e.g. "[grosstopically][gross]" and "[toppelganger][top]", make so much sense. I almost wish I lived in his cleaved world of seeing and unseeing, just so I could use them.

Boomeranging returns — May 13, 2012

Yesterday, I went out with Nils and threw my boomerangs for the first time in 10 years. It was really cool, not least because Nils decided to go get them for me, unbidden!

LEDs in the rain — April 30, 2012

The NVA Speed of Light practice session was the best time I've spent in the rain for a while!

The hair, eet ees back ... — April 12, 2012

... sort-of. As I had expected might happen, my Alopecia has receded and the patches that were bald before are now white. I'm gonna give it a go, as I'm happy having a bald head but to be honest I'd be happier not having to shave it every other day. However, I'm not gonna change my Gravatar just yet.

La Grand Weekend, Gromit — April 08, 2012

On Friday, I had the opportunity to see [La Grand Illusion][lgi] at the Filmhouse,

I can totally see why this film was so hated by the Nazis, because it portrays war as ultimately pointless. There is no great 'enemy' within these prison camps, on either side. There are only world-weary men waiting, and hoping, for the end to come.

You've never had it so good — March 24, 2012

What's the opposite of Nostalgia? Nowadays, I can think of an idea, code it up and have it on heroku in minutes. Working at a [start-up in 2001--2004][np] was somewhat different.

Back then, the first task was to decide which of the many (over-priced) Cisco routers you should stick in your closet.

Beach Facts — March 17, 2012

Some things established today on the beach:

Normal service will resume ... — March 12, 2012

You may have noticed some blog posts are missing. This is because I am migrating them across gradually from my old blogging system to Tumblr.

Note to self: do not invent time machine — February 16, 2012

If I did have a time machine, I'd be spending a lot of my life getting slapped in the face by my future self.

Glasgow Science Centre Visit — February 15, 2012

Once again, simple physics wins against ambitious simulations on computer displays.

Getting in the holiday mood — December 26, 2011

Got in the holiday mood last night by watching the film of [The Road][1].

That's it, all gone! — November 20, 2011

Those of you who've seen me around recently will have noticed a gradual disappearance of hair on my left side. This was accompanied by a gradual increase in attempts to make a comb-over look like a real haircut. No more.

Frazzled — August 28, 2011

Totally frazzled. Between work, festival, and home-life, I've been burning the candle at three ends.

EIFF top picks — July 10, 2011

Despite overly expensive films and the usual EIFF website broken-ness, I managed to see a few films this year.

Taking R for a drive — July 04, 2011

I've been playing with data from the Project365 group I am a member of. I would usually do this analysis using some combination of perl, ruby, and unix shell (sort, uniq etc). This time I thought I'd stretch myself a bit.

No Java, no Eclipse — January 07, 2011

This is the first time I've been on holiday in Germany and not launched Eclipse. Also: not a single line of Java. It's refreshing.

Aim Low — January 01, 2011

The key to achieving a New Years resolution seems to be to aim low and then forget about it.

Waterstones is a Charity — October 17, 2010

Waterstones: £18.99. Amazon: £11.89, free delivery. This is one of the books I flipped through whilst sitting in the Starbucks. I may never buy this book, but if I do, I'm not paying an extra 7 quid out of the goodness of my heart. I feel a little bit guilty for writing this, as they let me flip through it without first purchasing it. But hey, maybe that's a quid max of guilt money I'd pay.

Today, I accidentally ran 10k — October 09, 2010

It started as a 5k run for burma in Inverleith park. After a frantic ride on my bike to make registration, I started at 11. We looped round a couple of times and I passed the steward, who said "go right if you've seen me twice". I couldn't remember seeing her in particular, but it felt about right. I ran on and, curious about my time, checked my phones SportyPal app. Unfortunately, it said I had only ran 1.86km. Shit.

Who was in Tron and Babylon 5? — October 04, 2010

More specifically, how can I find this out using freebase? Turns out the steps you should take are:

"How can I tell which of these damn tabs is making a sound?" — August 18, 2010

Hmm, I'm out two for two on random summer holiday projects. First, the hadoop quickstart example doesn't reduce. Now, my idea to list what tabs in Chrome are making a noise is also a non-starter. Seems I'm not alone in wanting this. It's pretty trivial to make a Chrome extension, quite nice in fact, but there seems to be no api to help find what tabs contain something which is making a sound.

Segway tour of Berlin — August 09, 2010

The Segway has always intrigued me. Even after the overblown hype of 2001 died away.

Given I was in Berlin, I took the chance to look like a dork and try out a Segway tour of the area.

Festival goers + Bike = ... — August 07, 2010

Day six of Carmen and Nils being way and I've started talking to myself. The day after she left I went to work and realised, "shit, I've not talked to anyone for over twelve hours".

Back on the road again ... — April 24, 2010

And so, another german holiday ends. As always, there are regrets; I didn't get to wander around Berlin for long, I missed some nice german bread by staying in bed too long, etc. On the plus side, I got a regular (wonderful) lie-in, and made some solid progress on a programming project (not as interesting to link to as LSystems).

What have I been reading?

LSystem Sunday — March 08, 2010

It's LSystem Sunday! I was curious about investigating an assertion that I'd made the other day: that the dragon curve loops back and traces over itself. Turns out, I was talking nonsense

LSystem Sunday: Does Dragon Curve trace over itself? — March 08, 2010

It's LSystem Sunday! I was curious about investigating an assertion that I'd made the other day: that the dragon curve loops back and traces over itself. Turns out, I was talking nonsense:

LSystem Distractions — February 28, 2010

LSystems have once-again distracted me, this time from German homework

LSystems distractions — February 28, 2010

LSystems have once-again distracted me, this time from German homework:

More arsing around with Scala — July 07, 2009

More arsing around with Scala. This time, trying to reimplement lesscss.

LSystem Explorations — June 27, 2009

So, another summer holiday is at an end, and another programming interval. This time I was using my LSystem Explorations as a way to get more practice with Scala and Android.

Is Scala mature enough as a main programming language? — June 27, 2009

So, another summer holiday is at an end, and another programming interval. This time I was using my LSystem Explorations as a way to get more practice with Scala and Android.

How the hell do I do this basic thing? — June 17, 2009

I've been programming Scala here and there and every so often get stuck in a "how the hell do I do this basic thing?" moment. So, I'm gradually working my way through "Programming in Scala", as I thought I should finally get more of an idea of this language works.

I definitely like the application of the "everything is a library" strategy for implementation of what would be core features in other languages. However, one example leaves me wary

Grave of the Fireflies — March 22, 2008

Grave of the Fireflies is not a film I'd recommend be seen by anyone with children.