3D Blazor with Babylon

Babylon is a good choice for 3D graphics on the web. Anything that you can do in JavaScript you can do in Blazor, so I’m going to put some 3D in my web app using C#.

First, I’m going to create a Babylon component that I can drop onto a Blazor page and then I’m going to see if I can shift all the Babylon manipulation up from Javascript into C# with a full Babylon interop layer.

Continue reading “3D Blazor with Babylon”

How to Build a CORS Proxy for Client-side Blazor

Blazor is a godsend for C# developers who want to build web applications. I’ve found building web apps in Blazor quick and easy, but there are a couple of fish-hooks that could catch you out. CORS is one.

I had a server-side app that was working fine. Turning a server-side Blazor app into a client-side Blazor app is mostly painless, but this time nothing worked.

The app was making a call to an API but from the client-side version of the app, all the calls failed. They’d been blocked by the browser’s CORS policy.

The answer was to build a CORS proxy. Here’s what I did.

Continue reading “How to Build a CORS Proxy for Client-side Blazor”

A Fishy Tale

When I first arrived in New Zealand I was told a story – the story that the North Island was actually a giant fish. The story turned out to be slightly true.


Maui, a Polynesian demi-god and his brothers went fishing and Maui took them further out into the ocean than they’d ever been. He cast his line into the sea and in the murky depths it hooked on something. Something big.

Maui and his brothers, from Maui and other Maori Legends by Peter Gossage

Continue reading “A Fishy Tale”

Pulling in Readers, Ferociously

Venkatesh Rao’s essay Gradatim Ferociter opens with this magnetic paragraph:
One of my favorite phrases is gradatim ferociter, the motto of Blue Origin. It means “step by step, ferociously.” The phrase helped me figure out why, despite really liking Nassim Taleb’s idea of antifragility, I’ve always found it kinda depressing. The idea seems to miss a major point: growth and innovation are processes that involve necessary fragility in proportion to how fast you want to move …
Every sentence is interesting. It fires a question in my mind and then answers it.
One of my favorite phrases is gradatim ferociter
What does “gradatim ferociter” mean?
It means “step by step, ferociously.”
Why is it one of your favourite phrases?
The phrase helped me figure out why, despite really liking Nassim Taleb’s idea of antifragility, I’ve always found it kinda depressing.
Depressing? Why?
The idea seems to miss a major point:
What does it miss?
growth and innovation are processes that involve necessary fragility in proportion to how fast you want to move
Venkat has given my reading the momentum needed to read the whole thing. Every sentence has an impetus that’s hard to resist.

Virgin on Disaster

From the archives: This article was first published in The Free Radical in 2003. The Virgin Cove resort was wrecked in the 2009 Samoan tsunami but the disaster I wrote about here was entirely man-made.


Our driver (also our cook), his kitchen-hand, and the petrol station attendant were all crouched in a pool of petrol, poking and pointing up behind the back wheel arch of our Isuzu four-wheel drive. The aim was to discover why we had flooded the station forecourt while trying to fill the tank. Continue reading “Virgin on Disaster”


As a trainer you want your training to be remembered. Otherwise, what’s the point?

The trouble is, most training – especially technical training – is presented in the least memorable way possible. Technical training is often a long slog through a list of features. I can’t remember my shopping list. How am I supposed to remember a four-hour list of technical details?

I was in a training session recently for a company that was shifting their email from Outlook to GMail. The trainer was knowledgeable and helpful – she was able and willing to answer everyone’s questions – but I can’t remember any of the training.

We started on the left-hand side of the screen and trudged our way through each of the menus: “General”, “Label”, “Inbox”, “Accounts”, “broccoli”, “mustard”, “sour cream”. No, wait, that was another list.


What did I get out of that training? Well, I know that you can change the background colour of your emails.

Monotony and lists create inattention and boredom. How can you make your training memorable and compelling?



Let’s see how… Continue reading “CONTRAST !!”

Stuxnet v2.0

Modern warfare looks nothing like the industrial-age warfare of World War II. I covered this in The Laptop Luftwaffe, a post I wrote comparing the sabotage of the Iranian nuclear programme ten years ago with the sabotage of the Nazi atom bomb project in the 1940s.

Iran’s nuclear programme isn’t the only cyber-warfare target. The country’s missile programme is also a target.[1] This week President Trump posted a tweet taunting Iran for a missile launch failure.[2] The tweet included a detailed photograph of the damaged launch pad taken from a highly classified Keyhole-11 spy satellite.[3]


This attack on the Iranian ballistic missile programme invites the same sort of comparisons as the sabotage of the nuclear programme.

The world’s first ballistic missile was Nazi Germany’s A-4/V-2 rocket programme, run from the research station at Peenemünde on Germany’s Baltic coast.


The first V-2 to hit London arrived without warning on the 8th September 1944, killing three people in Chiswick.[4] The second hit a minute later, twenty-five miles away outside Epping. The raids continued for seven months.

There would have a been many more attacks and many more deaths had it not been for a massive raid on the Peenemünde works on the night of the 17th August 1943. The rocket works was considered such an important target that Air Chief Marshall Sir Arthur “Bomber” Harris committed a massive force of nearly six hundred bombers to a dangerous moonlit raid. Forty bombers were lost that night – shot down or crashed – and 245 crew were killed. On the ground, many were killed, including five hundred foreign prisoners working as forced labour.

The raid was judged as success, setting back the Nazi missile programme by months, saving unknown lives in London and, later, in newly liberated parts of France and the Netherlands. The setbacks also ensured that the missiles weren’t ready at the time of the D-Day Normandy landings.

That success came with a heavy loss of life, both in Allied air crew and people on the ground. It’s obvious why the option of a cyber-attack, now that it exists, is preferable.

As I’ve said previously:[5]

The ghostly stealth of a self-replicating software worm could not be more different to the noise, smoke, and violence of an air raid and yet, six decades apart, the results were similar. What used to take an air force is now silent, invisible, and fits in your pocket.


[1] https://www.nytimes.com/2019/02/13/us/politics/iran-missile-launch-failures.html
[2] https://twitter.com/realDonaldTrump/status/1167493371973255170
[3] https://sattrackcam.blogspot.com/2019/09/image-from-trump-tweet-identified-as.html
[4] (Middlebrook, 1982)
[5] https://darnton.co.nz/2019/06/09/the-laptop-luftwaffe/


Middlebrook, M. (1982). The Peenemünde Raid. London: Allen Lane.

Inside the Dark Bone Vault

The Science of Storytelling[1] is a self-help book masquerading as a neuroscience book inside a writing guide. But this is not evangelical American self-help with an enormous whitened smile bounding onstage to thumping pop rock. This is self help written by an English recluse.

Author Will Storr is a man who has gazed long into the abyss. The introduction opens, “We know how this ends. You’re going to die and so will everyone you love.” “The cure for the horror is story,” he continues. Bleak, empty reality is why our brains “conjure up a world for [us] to live inside”.

The link between storytelling and neuroscience lies in how our brains render stories. When we hear a story, our brains generate a hallucination that allows us to “see” what’s going on in the story and to experience the sounds and textures that are described to us. Characterisation allows us to empathise with fictional characters.

The reason that our minds have the ability to generate these hallucinations of fictional worlds is because that’s what they’re doing all the time for the real world. We have no direct experience of external reality. Your brain is, according to neuroscientist David Eagleman,[2] “locked in a vault of silence and darkness inside your skull”.


Continue reading “Inside the Dark Bone Vault”