Waterloo Sunsets

Waterloo Sunsets

Timelapse of three sunsets over Waterloo Station in London. Shot over Pride Weekend 2022 - you can see a huge rainbow flag on one building and if you look closely the rainbow flashing in sequence on One Canada Square in Canary Wharf. Good views of the Shard and Boomerang and the best part of the Walkie Talkie.

Changing of the Password

By . Updated on

Upload

Changing of the Twitter password at Buckingham Palace today. Overheard: "Present... two numbers and one special character".

Book reviews for June 2022

Ogilvy on Advertising (Vintage) by David Ogilvy

Ogilvy on Advertising (Vintage) by David Ogilvy

3/5

 

The Quick Fix: Why Fad Psychology Can't Cure Our Social Ills by Jesse Singal

The Quick Fix: Why Fad Psychology Can't Cure Our Social Ills by Jesse Singal

4/5

 

The Yellowstone Directive by John S. Shaw III

The Yellowstone Directive by John S. Shaw III

3/5

 

Play Bigger: How Pirates, Dreamers, and Innovators Create and Dominate Markets by Al Ramadan

Play Bigger: How Pirates, Dreamers, and Innovators Create and Dominate Markets by Al Ramadan

2/5

 

BOX 88 by Charles Cumming

BOX 88 by Charles Cumming

4/5

 

Stamp out B2B spam with an evil calendar

By . Updated on

Calend.fu

I could build this in about the same amount of time it's going to take to describe it (love you Google Apps Script) but I'm not quite evil enough.

A good chunk of my work day is deleting endless B2B spam from aggressive salespeople who are certain that I should check out their SAAS whatever and pay $25/user/month for something I could do with a wiki page. Outlook for some reason doesn't recognize this stuff as spam even if you block it. LinkedIn is built to distribute this. It would be great to make it more expensive, painful and humiliating for these people to spray and pray.

My idea: it's Calendly only evil.

You reply saying how excited you are and provide a link to schedule an appointment. This allows them to book a slot and sends them a meeting request and a Zoom link. When they join they're just connected to some number of other salespeople who booked that slot.

Extra credit: record the meetings and auto-post to YouTube and use the ad revenue to pay for hosting costs.

As usual any of my billionaire readers who want to back this should get in touch.

Updated 2023-11-08 00:28:

It's like someone at Google read this post because they're rolling out a Meet API that would solve for the extra credit part of this idea. I'm having a hard time not rolling up my sleeves and building it.

Links for June 2022

By . Updated on
A Boy And His Atom is the world's smallest movie

Testing Twitter API integration, but also this is pretty cool.

--

A Death Row Inmate Asked SCOTUS If He Can Die by Firing Squad, and It Said Yes

Also for those not on death row, we can all die by firing squad now too. Thanks SCOTUS.

Outlook/Office iCal feed 400 bad request error with C# WebClient

By . Updated on

400

Just in case it helps someone else I was able to fetch an Outlook iCal feed using C#'s WebClient for years until it stopped working in June, 2022 with a 400 / bad request error. I was downloading a set of calendars and the fix was just to use a new WebClient for each calendar so it must be some kind of state thing in WebClient.

To regain around 1% of sanity I have a task that pulls the various calendars that life throws at me and combines them into a single, de-duplicated calendar. The Google Calendar on my phone is gorgeous as a result. My primary calendar is orange and then all of the miscellanea are teal and unique. It would be great if Google Calendar could do this without help, but it was worth the effort not to have some random soccer match repeated five times in different colors.

Last week one calendar, an Outlook feed, started failing with 400 bad request.

Naturally I assumed that the server had started to suddenly care about some header or other and I started playing around with setting User-Agent and various Accept headers without any luck. To make debugging slightly easier I moved the Outlook calendar out of a loop (where I was iterating through a list of iCal feeds that I need to be aware of) and then it magically started working. The magic in this case must be a fresh WebClient and so the fix was to use a new WebClient for each calendar instead of reusing a single instance. It looks like WebClient is deprecated in .NET 6 and one is supposed to start using HttpClient instead so that's probably another fix but not one I'm going to wrestle with today.