July 31st, 2025


While every other company is launching a streaming service, you have to admire Redbox for their pivot out of the movie business entirely. I guess they needed somewhere to put all the DVDs?


July 11th, 2025

I was like a moth to a flame for this post from MacStories’ John Vorhees about using a tiny Bluetooth gamepad as a remote for his Mac. I love game controllers in general, and I’m always interested in different ways to control my computer and trigger automations. I’m fascinated by the Elgato Stream Deck line of products but they’re just a little expensive. For $22, though, this tiny gamepad was an easy impulse purchase. And I saw in it something a bit different than John: a Keynote remote.

I give a fair amount of presentations for work, usually over video calls. To help presentations feel more natural for me and engaging for the audience, I prefer to stand, and to do so a few feet back from my desk, so that the camera captures more of my body language and hand motions. However, I’m usually limited by where I can reach the keyboard or mouse to advance slides and navigate my presenter notes. I’ve never looked into purchasing a dedicated presentation remote before and if it turns out there are great ones available for less than $22, please don’t tell me. But this scratched an itch of solving a real problem and playing with a new toy. (I have that itch a lot…)

My Keynote remote controls for the 8BitDo micro gamepadMy Keynote remote controls for the 8BitDo micro gamepad

Here’s how I set up my remote. My goal was to arrange the controls so that I can hold the remote vertically, with the d-pad serving as my primary navigation: left and right to advance forward and back through builds, and up and down to scroll my presenter notes1. Then I mapped the face buttons to faster skipping forward and back through slides. This is useful, for example, when someone asks a question and I want to reference content from an earlier slide and then quickly return to where I was. And I don’t know how often I’ll use these, but I set the star and heart buttons to start and end presenting.

If you want to copy my mappings, here is a screenshot of the keyboard shortcuts as I’ve set them up in the 8BitDo Ultimate configuration software. And if you want to configure your own, here’s Keynote’s full list of keyboard shortcuts (see Play a presentation and use the presenter mode”).


  1. Annoyingly, when using a keyboard shortcut to scroll presenter notes, Keynote jumps” the notes all the way in one frame, which makes it hard for your eyes to track where the text has moved. Hopefully I know my material well enough to overcome that!↩︎


May 11th, 2025

I started this blog to write about topics that interested me, so naturally, the most important first step was to spend two weeks editing CSS and HTML files.

Blot

I first heard of Blot from Alex and Merlin on Do By Friday. Blot is a service that hosts a website using static files that you just drop into a shared folder in Google Drive or Dropbox. When Jarrod of Hey Dingus posted that Blot had added support for iCloud Drive, my curiosity was piqued. At only $6/month it felt like an easy way to get started without a huge commitment, and I loved the idea that I could post by just dropping a text file into a folder that was accessible from any of my devices.

Like any good blogging platform, Blot provides many premade templates you can start from which all suck. Fortunately, the templates are all downloadable as a collection of HTML and CSS files that you can customize. I picked one that had the bones of a structure I liked (“Mira”, if anyone’s curious) and began working on my own copy of it, which I called Mira (Connor’s Version)”. I initially started working in Panic’s Nova which I bought years ago even though I’ve barely used it since.

Only two things stood in my way: a complete lack of familiarity with CSS or any aspect of web development from this or last decade, and a similar lack of creativity regarding visual design.

Me editing CSSMe editing CSS

Artificial Aptitude

It was at this point that I started asking ChatGPT for help. Given these HTML and CSS files, how should I implement this layout change?” I was initially impressed with ChatGPT for this: it restated my goal, recommended a set of changes, explained how they worked, and what the end result would be. And usually they were pretty good! But often I found that the changes only achieved part of the goal, and had unintended side effects. When I pointed this out, it gave me another great answer that once again only solved part of the problem while introducing other regressions. The deeper I got into a conversation the worse this pattern got. I eventually realized this was because it didn’t have enough context, or perhaps, it had too much context. It was struggling to keep track of the changes we had layered on top of the original files, and what changes served what purpose. And the process of copying-and-pasting edits back and forth into the source files was slow and painful, especially since ChatGPT’s versions were often subtly different from what was already in the file. But like a rat continually pressing a button wondering when the next treat will come out, ChatGPT’s answers were just impressive enough that I kept trying and trying and trying.

I will say this: this process unintentionally taught me a lot about how CSS works. The more we went back and forth, the more I was able to give more specific direction, and often noticed problems with ChatGPT’s suggestions before implementing them.

A friend suggested I try Cursor, and wow, I should have done this from the beginning. I suspect the difference probably came from a combination of a few different things: by having AI integrated directly into the editor, Cursor could always see” the current versions of the files we were working on. I was also getting better at asking questions in a way that hinted at the specific changes that were needed. And Cursor uses Claude as the backing model by default, which I’ve heard is the best model for code editing and generation. That’s not to say Cursor was perfect: it still sometimes had the same issue of only partially solving a problem while creating new ones. But even the best human software engineers still do that to some extent. Working with Cursor was dramatically more productive, and in most cases enabled me to implement complex changes in just a few minutes.

As a standalone code editor for manual work, though, I would not choose Cursor. It aggressively autocompletes code snippets that I don’t want, and when it does, I find it hard to tell what code is being suggested vs what is already in the file, and how to dismiss the suggestions. But I was impressed with the capability of those suggestions. For example, I briefly toyed with adding emoji to the contact suggestions in the footer, and after I added an email emoji to the email link, it suggested adding an elephant emoji to the Mastodon link (which was exactly what I was going to do) and a blue heart to the Bluesky link (which was clever, even though I would have used the butterfly emoji).

A matter of taste

I consider myself a better editor than a designer: I know what I think looks good and doesn’t look good, but often don’t have good suggestions for what to do differently. I continued to leverage ChatGPT in situations like that, asking it for recommendations of colors to use, appropriate spacing between various elements, and ideas for how to lay out elements on the page, iterating on it with feedback on what I liked and didn’t like. And unlike working with a human designer, I felt no guilt whatsoever about behaving like a nightmare client: What if it looked more like this?” Hm, no, a little more like that?” Actually show me the first option again.”

I also spent a lot of time looking for inspiration on other blogs with designs I liked. Things like how to lay out headers and footers, where to place menu items on the page, and where to use more vibrant colors or more subtle shades followed patterns I saw in other blogs.

As with any design decision, I’m sure I’ll eventually come to be embarrassed by choices I made earlier on, but for now I’m happy with how things have come together. If you have questions about how I used any of the tools I referenced above or suggestions for changes I could make, let me know!


May 9th, 2025

👍 This guy! 👍

I’ll probably write up a little bit more about myself soon, but I’m increasingly dissatisfied with social media and want a more free-form way to write about and share things that interest me.

I like writing, and I like explaining things (what man doesn’t?). I like explaining my understanding of a topic, largely because it helps reinforce my own understanding of it. I also like explaining how I solved interesting problems. Hopefully, some of my explanations will also help other people improve their understanding or solve an interesting problem of their own.

I’ve been feeling inspired by folks like Louie Mantia, and I wanted to just make a damn website.

I don’t expect to have any sort of regularity with posts here. I strongly encourage you to subscribe via RSS if you’re into that sort of thing, otherwise I’ll post on social media whenever I write something new.

Thanks for reading. I love getting feedback so please hit me up on email or Mastodon. 👇