Aug 23, 2021 - No

I’m not interested in privacy tips right now, DuckDuckGo.

Zoom, I appreciate the offer to take your post attendee survey but I’d rather use that browser tab for something else right now.

No Confluence, I do not want to tell you how my publishing experience was. I guess I have to click an “X” to tell you that to get my screen real estate back from your question dialog now. Thank you for letting me know that you meet my minimum expectations by publishing my page when I told you to though.

I agree that the ability to block people in Google Drive is pretty important but I’m disappointed that I have to lose half an inch of screen until I click an “X” to be told about something that should have been part of the original system design.

Docker Desktop, your cash grab and r/assholedesign is now legendary. I look forward to my daily choice between clicking “Snooze” instead of “Skip this update” and killing all my Docker containers and losing my working context.

I genuinely thank you Chrome for your replacement of the options menu with the word “Update” in soft red without taking away any functionality or using any significant space. I really appreciate your thoughtful and non-invasive prompt. This is a rare example of asking me to do something without inserting yourself between me and the work I am trying to do right now.

Among the many things I have to decide today, I don’t think the choice of upgrading a wiki page to the new editor warrants an unclosable strobing purple and green circle in the footer during the entire time I’m making changes to a Confluence page.

It is also my pleasure to inform Apple that they have managed to construct the least reliable computer I have touched since my Windows NT 4 dual Pentium III workstation from 2000. At least when it reboots itself every other week, as it did this morning, it restores all its windows mostly correctly instead of just turning blue and saying “IRQL NOT LESS OR EQUAL”.

Lever, I’m sure the fact that I have not integrated my email and calendar with your service is lowering someone’s KPIs but an undismissable overlay on every page is not a great way to make me care.

And, as a special bonus, thank you Google for the modal “Getting Started” pop-up you showed me as I was collecting my notes to write this post. It is great that you replaced the perfectly adequate Hangouts with some other, probably also perfectly adequate but Totally New, thing that I have to spend time clicking through cheery screens to learn about.

For a week I kept track of all the things that appeared and forced me to deal with them before I could return to work. Somewhere in the past few years I feels like my computer changed from doing work for me to asking me to do work for it.

And in case you don’t see yourself mentioned by name, I’d like to tell you from the very bottom of my heart that I will never want your newsletter.

Mar 28, 2018 - Red Light Runners

Since moving, my commute is along Gainesville’s back streets running perpendicular to main roads. It’s quiet if a bit ponderous but there are an enormous number of people who run red lights at the cross streets. Cellphoners, lemon sqeezers, delivery people, I see at least 2 a week and I only make 10 trips to and from work.

So I bought a dash cam and installed it this weekend. For your entertainment this Tuesday (note it took 2 days to capture my first) here is today’s red light runner.

I’ll work in putting up a gallery :)


red light 1

First frame when the light turned green and they’re barely even at the stop line and traveling full speed.

red light 2

Finally exiting the intersection 3 seconds later.

Sep 14, 2017 - Evacuation of South Florida Due to Irma, on a Traffic Cam

Hurricane Irma was forcast to hit Miami and work it’s way up the whole state. A lot of people decided to leave and there wasn’t really any place to go except north. I live in Gainesville, right on one of the two north-south interstates in the state - I75. Our city runs traffic cameras and the make current images available on a SmartTraffic site. A few months ago I wrote a script to pull all the images once a minute so I have a history of all the “current” images.

I thought it would be fun to stich them together to make a time-lapse video of the interstate. I started it around Sept 1 so you can see normal traffic, the evacuation rush starts around 9/6, and it runs up until the traffic system crashed at 1:45 am on Monday morning which is about 15 minutes after the peak winds were forcast to hit.

Video on Youtube:

Some details about how this was made:

  • The I75 cameras are movable with 4 pre-programmed positions. They take one picture per minute so there’s one image about every 4 minutes. You’ll also see some times when the camera didn’t properly return to it’s pre-programmed position.
  • The orientation of the camera isn’t saved in the image metadata (who would have thought that would be useful!) but it is displayed in the image. I OCR’ed the orientation from a crop in the image with pyocr and tesseract. It was pretty good but you’ll see some stray images from other positions where the OCR messed up. I’m not a tesseract wizard.
  • There are gaps in the images for a number of reasons. Sometimes the camera goes out. Sometimes the images are partial downloads since I’m pulling a jpg off a web server every minute and they’re uploading to the same file name every minute. I get about 5% corrupt or partial files.
  • The final image is just the last image uploaded off the camera before it died. It just happened to be in the right orientation so for the last 2 days I was pulling the same image of their web site. Its all a hack.

So far I have download ~40 cameras worth of data since February 2017 every minute for a total of about 750 GB and 16 million images. Not sure what else I’ll do with them.