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.

(Related: Point Reyes - Tomales Point; Mariposa Loop; Google Cloud Vision Sightings)

(You might also like: Leaving the Nest; Hoylake Beach; Pier 14)

(More Timelapses)

Changing of the Password

Book reviews for June 2022

Ogilvy on Advertising (Vintage) by David Ogilvy

Ogilvy on Advertising (Vintage) by David Ogilvy



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



The Yellowstone Directive by John S. Shaw III

The Yellowstone Directive by John S. Shaw III



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



BOX 88 by Charles Cumming

BOX 88 by Charles Cumming



(Related: #Resist; Go-arounds: LEGO and Legislative Service; Religion's Kayne West Tendencies)

(You might also like: Scary Bunny; Google PageSpeed Insights hates Google Analytics; Earthquake Supply Co.)

(All Book Reviews)

Google Trends for 'impeach supreme court justice' This Week

Summer Solstice 2022

Summer Solstice 2022

Summer starts right now (09:14 UTC June 21 2022) in the northern hemisphere, winter for those with latitude signum differences. Rendered in Catfood Earth.

(Related: Summer Solstice 2021; Summer Solstice 2017; Winter Solstice 2020)

(You might also like: Catfood Weather 2.30; Surfing Dolphins; Sunol Wilderness)

(All Code Posts)

Stamp out B2B spam with an evil calendar


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.

(Related: Doing news right with Feedly and Google News; Get ITHCWY By Email; Export Google Fit Daily Steps, Weight and Distance to a Google Sheet)

(You might also like: Hill 88; Pitcher Plant; Download.com goes nuclear)

(All Marketing Posts)

Links for June 2022

Updated on Thursday, June 23, 2022

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

Updated on Tuesday, June 21, 2022


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.

(Related: The Secret Diary of a Xamarin Android Developer, Aged 48 1/3; Export Google Fit Daily Steps, Weight and Distance to a Google Sheet; The curious case of the missing slugs (in BlogEngine.net 2.8))

(You might also like: News: Prototype Companion Cube, 1980; Crissy Field; We can’t fix politics without fixing 24-hour news)

(All Code Posts)



SONY ILCE-7C 40mm f22.0 20.0s ISO100

Long exposure of rapids on the South Fork American River in Coloma, CA.

(Related: McCloud River Trail (Three Waterfalls); Cataract Creek; San Pedro Valley Park Waterfall Loop)

(You might also like: Path; Lassen Star Trails; Like Debate?)

(Recent Photos)

San Francisco June 2022 Ballot Measures

San Francisco June 2022 Ballot Measures

How I hate all the propositions. Here's the ITHCWY official (hastily scratched together and possibly idiotically wrong) voter's guide to the June 2022 batch:

A - MUNI Reliability and Street Safety Bond

Yes. I hate that the largest line item is bus yard upgrades rather than more frequent and reliable service but they make a good case for it - i.e. being able to repair broken equipment faster and not in a century old earthquake prone death trap of a building. Hopefully this is all true and they're not just installing hot tubs and keg fridges. But sure, MUNI, take my money.

B - Building Inspection Commission

Yes. Because it seems widely supported, not because I have a strong opinion here.

C - Recall Timelines and Vacancy Process

No. I hate recall elections (foreshadowing H below) but this is too restrictive. We shouldn't recall politicians for doing what they said they were going to do when we elected them. We should consider their performance when deciding if they deserve another term. But if they are egregiously bad it doesn't make sense to prevent the recall process for two full years, and I don't see any reason why an appointed successor shouldn't get a crack at the next election either.

D - Victims and Witness Rights

No. Creating a department for Victims is within the power of the city government. Doing this by ballot measure will mean they can't stop if it doesn't make sense or needs reform or turns out to be a bad idea.

E - Behested Payments

No. A majority vote of supervisors seems enough to modify the rules here.

F - Refuse Collection and Disposal

No. Replaces the City Controller with an appointed 'ratepayer representative' who is not really going to be able to represent all ratepayers. I think I'd rather stick with the Controller.

G - Public Health Emergency Leave

No. Sick leave should cover this and should be set at the state level. We don't need more businesses leaving San Francisco right now.

H - District Attorney

No. I don't think Boudin has done anything that rises to the level of recall, and he should be judged at the next election. He's unlucky enough to be holding the hat during a post-pandemic crime surge, but mostly it's a surge back to pre-pandemic levels. Murder is up, but is everywhere. I generally support locking fewer people up and a consequence of this is more unlocked up people. Hard to see how you can have this both ways. The fentanyl situation in the city is a tragedy. I don't think recalling Boudin fixes this. I think we need legalized, safe, tested drugs and treatment rather than criminalization.

(Related: San Francisco November 2020 Ballot Measures; California November 2020 Propositions; Legislative Service)

(You might also like: Chiroopractoor; Sawmill Flats; Real Time)

(All Politics Posts)

I Thought He Came With You is Robert Ellison's blog.