Contending with Lingering Lightning

Our new car has wired CarPlay. That may sound like a crime against humanity in 2024 but I actually prefer it over wireless (mostly). A cable means it is absolutely rock solid and straightforward to switch between devices.

However I have a USB-C iPhone and my wife has a absolute garbage antiquated Lighting iPhone (jk it’s a one-year-old iPhone 14). This posed an issue where we’d need to swap cables when we switched drivers in the car. I also didn’t like the idea of wearing out the car’s built in USB plug switching cables frequently. Is that an irrational thing to worry about? Yes.

So the solution we landed on is keeping a USB-C cable always plugged into the car for my phone. (I drive most often, especially now that we have a baby my wife likes to sit in the back now) and when she needs to plug in we attach this tiny female USB-C to male Lightning dingus to the end of the USB-C cable and voilà her phone is charging and connected to CarPlay. I was worried this cable would only handle charging bht it definitely works for tranferring the data required for CarPlay. This solution also keeps the console less cluttered — we don’t need two 3 foot cables strewn about getting tangled and driving me nuts.

I’m probably going to buy another to charge my keyboard at my desk. I like having an open USB-C cable at all times for charging things and I still have a few Lightning accessories. Slowly yet surely we are eradicating Lightning from our home. It’s a battle I’m ready to endure for as long as it shall take.


Becoming a Dad

A few weeks ago I became a father.

I can’t begin to explain how wonderful it was hearing our baby’s cry for the first time. Compared to the work my wife put in, I was just a lowly bystander but I can confidently say bringing a kid into this world is a stressful proposition — the 9 months of pregnancy, the hospital stay, labor, all of it — but it all just melts away when you hear that baby cry and it’s you and your partner and this beautiful tiny thing.

In a flash everything changes and you’re filled to the absolute brim with overwhelming joy.

My wife’s parents and my parents and brother came to the hospital the day after to meet our baby. We couldn’t be more lucky to have their love and support. I’m on cusp of returning to work but in the past few weeks we’ve established a decent rhythm and am starting to get more sleep.

It’s absolutely true what they say about the first couple weeks. It was hard running on scraps of sleep and having the day sliced into two-hour increments. Even now that feels like a hazy memory. You just stay calm, sleep when they sleep, and soak it all in.

The three of us are doing great and we’ve been bombarded with visitors, FaceTime calls, and gifts from close friends and family. Most crucially our neighbor graciously bought us a two weeks of meal subscription food to make our feedings as smooth as possible.

I’m the absolute luckiest and I can’t wait to see who our kid becomes.

To close things out, here’s a quote my wife printed (and framed in the kid’s nursery) from our favorite author, Kurt Vonnegut:

Hello babies. Welcome to Earth. It’s hot in the summer and cold in the winter. It’s round and wet and crowded. On the outside, babies, you’ve got a hundred years here. There’s only one rule that I know of, babies — “God damn it, you’ve got to be kind.”


The Trials and Tribulations of Creating Delta Skins on iPadOS

I decided to work on Absorb, my custom Gameboy skin for the Delta emulator, from my shiny new 11-inch iPad Pro. There’s been a lot of conversation around what the iPad can and cannot do so I thought I’d give this a try. This is fairly complex work involving designing in Figma, editing JSON files, managing files, and committing code to GitHub. Let’s see how the experiment went.

Figma

Designing in Figma on iPadOS is a bit of a cluster. Their marketing claims it works great in “any browser” but apparently that generous definition does not extend to Safari for iPad. If you use it directly in the browser you get weird behavior. For example, pinching with your fingers will zoom the canvas where pinching on a trackpad will zoom the entire web page. There is Figurative but this has its own tradeoffs: if I left and came back it would force reload the file because it was “out of memory” and irritatingly ⌘c and ⌘v don’t work. Generally it felt like wearing mittens — the iPadOS cursor is great but it still feels like a small meaty pointer and not the precise pointer you find on macOS.

Critically dealing with custom fonts is a mess on iPadOS. Fontcase by the Iconfactory folks is great but it lives within Apple’s barbaric iPadOS font system. I used SF Pro Rounded for my button labels and I completely bailed on trying to get this onto iPad. Apple provides these fonts in a macOS Installer within a .dmg file, which is to decidedly not iPadOS-friendly. How does Figma handle missing fonts? Well by making text uneditable. Fun.

Exporting PDFs out of Figma into the Files app worked great and I was able to get a lot of design work done from my iPad. It was slow-going and the font issue ultimately drove me back to the Mac.

I have an itch to try making a Figma plugin to make it super easy to create Delta skins. That’s for another day though.

Editing JSON

Delta’s skin system is pretty straightforward. You provide PDFs of the UI your users will see and then give the coordinates of all the buttons in a JSON file. This mapping can get unwieldy though as each device and orientation is all within a single JSON file. (It would be kind of nice if each PDF had its own JSON to make these files way more manageable.)

On the Mac and other desktop platforms there’s VS Code for code editing and committing code to GitHub. It’s fantastic. It has a great sticky scrolling feature which means you don’t lose your context. Even still it can be a pain doing all this text entry and all too often I’d forget a , or a : and everything would break!

VS Code is nowhere to be found on iPadOS and I could not find a text editor for iPad that had this sticky scrolling feature… but I ran into Simon Støvring’s Jayson (ha) app for editing JSON files with a GUI. This is far more approachable as you no longer need to think of the syntax for JSON and making a mistake. But it also involved a lot of navigating in-and-out due to the hierarchy of Delta’s skin system (where you have to drill into dictionary 0 to see it’s the “A” button then back out to adjust its coordinates). Using this was better than typing manually, for sure, but I think there’s a lot of opportunity for Simon to optimize this app for fewer clicks and faster navigating up-and-down the hierarchy.

This app is also available on macOS but it’s a bare-minimum Catalyst version of the iPad app. (Sorry if I sound negative! I’m glad it exists on macOS but this was a rare case where the superior experience was definitely on iPad.)

This part of the process is a huge fun suck but that’s not the iPad’s fault.

Managing Files

Technically a Delta skin is just a renamed ZIP file of a JSON file and some PDFs. I downloaded a template to get started, exported my designs as PDFs from Figma to the Files app, edited the JSON file in Jayson, and was able to select the files, compress, and change the extension from .zip to .deltaSkin. Pretty easy. I didn’t have any issues with the Files app other than some slow exports from Figurative.

Committing Code to GitHub

I chose to host my files as an open source project on GitHub. The big asterisk here is that my Figma files are not yet public. While I’ll host these themes on Gumroad and DeltaStyles for discoverability I thought it was in the spirt of Delta emulator itself being open source that my files are “out there” for anyone.

Doing all the file management of creating the skins (zipping, renaming, editing JSON, exporting PDFs) meant that I wanted a good git client. Turns out there is Working Copy by Anders Borum! I happily paid $25. It stings a little knowing VS Code is free on macOS and it handles everything I need, but this Working Copy is a powerhouse. (I’ll be able to use this app for posting to my blog so it’s not just a one-time cost.)

After committing changes on my iPad I was able to iteratively test and debug my new GBA skin on my iPhone by sending it over AirDrop, make changes on iPad, send over, commit my work, and so on until I got everything working just right.

Conclusion

While I had to fallback to the Mac for the design part — partly due to wanting a bigger screen and iPadOS font limitations — I was able to do most of this work from my iPad.

This is an exciting prospect as I tend to keep my MacBook Pro docked at my desk as a “desktop laptop.” This makes my iPad Pro with Magic Keyboard a perfect “around the house” machine. If I’m doing some online shopping I can leave the keyboard and just use this lovely big screen. If I want to get some serious work done or write a blog post from the back porch, I snap on the keyboard. If I want to plan some electrical upgrades and need to doodle a bit — I grab the Apple Pencil.

It’s kind of an amazing device and it echoes the modular computing idea Federico is always going on about. (Next up is getting it to work with my Gamesir G8 controller. Currently I’m using this 90-degree female-to-male USB-C cable.)

I think my future experimentations might lie in building an app or something to automate the tedious JSON creation for Delta skins. Designing these is a lot of fun. Editing JSON is not.

In summary here are my main complaints with iPadOS for this workflow:

  • Figma is not good on iPadOS. I’m not sure if this is a Safari problem or Figma but it’s kind of a huge let down that it doesn’t work well — even with a mouse and keyboard.
  • Apple’s own SF fonts are impossible to install from an iPad.
  • It would be remarkable if VS Code came to iPad. It’s an amazing IDE. I’m glad Working Copy exists but this would be a big game changer.

Lastly: If you’re playing retro games on your iPhone as much as I am, take a look at my custom skin, Absorb, for Gameboy Color and Gameboy Advance. They’re great for nighttime playing! Just download the .deltaSkin files and go into Delta’s settings to install.


MapKeep 1.2

Yesterday I launched version 1.2 of MapKeep — an iPhone and Apple Watch app that lets you capture your current location in one tap — with a few useful features.

New Features

Since adding the “long press to add” feature in version 1.1 I’ve wanted a satellite view of the map to give a better sense of where to place the pin. In 1.2 you can now switch to satellite view using the map style button.

After using the app for 6 months, my map was super cluttered with all the pins I’ve saved. (Especially on Apple Watch!) This update adds date filters. Just look for the calendar button on the map.

Neither feature are fully baked — the date options aren’t ideal and your options don’t persist between sessions — but I had a specific timeline1 in mind to get this update out the door.

Other Enhancements

I wanted to improve how the app works when the user hasn’t granted location access. Previously the map was completely blocked if location access was denied. This didn’t sit right with me for a few reasons:

  • With 1.1’s “long press to add” you don’t technically need location permission to use the app.
  • If you created pins then denied location access, it was impossible to view (or export) your collection.

Now the app feels more seamless than before; the splashy request location view gets replaced with the “add” button after location is permitted. Simple. Even though the app is completely private, I wanted to go above and beyond here.

Bugs

Lastly it seems like a SwiftUI bug was introduced in iOS 17.3 or 17.4 having to do with using @Environment with modelContainer. If you created a pin on Apple Watch it would wake up the iPhone app in the background to sync with iCloud then crash silently in the background. I have a workaround to fix this but it’s not ideal.

Wrap Up

The theme here is that I’m glad I shipped this update but I feel like there’s a lot of room for improvement. I hope to chip away at this before WWDC hits early June. Time will tell.

If you find a use for the app or want to share feedback please reach out!


  1. Moments after hitting the “submit for review” button my wife and I left for the hospital to give birth to our first-born. I’ll be a dad soon! I’m told most partners do dumb and unrelated tasks right before going to the hospital. Some mow the yard or build a shed. I updated an app! ↩︎


Clown Car

What a clown. Elon Musk lays off most of the Supercharger team. To think firing people will improve their supercharger uptime is ludicrous.

One of Tesla’s key differentiators from traditional car companies is its charging network. If EVs are the future then we need way more chargers in the U.S. and sources tell me you usually need people to get stuff done.

Somebody needs to eject this guy from the driver‘s seat. Unfortunately Wall Street ks filled with sycophants who love a good layoff.


Coding Motivation

I haven’t updated MapKeep in a while but I’ve been plugging away at a nice update. I’m almost done and I’m feeling motivated to keep pressing on.1

Two things urged me to get back into the swing of things:

  1. After making a couple tweaks and sending to TestFlight, my iPhone app would crash every single time I created a location in the Apple Watch version. Annoying!
  2. My wife is having our first kid in roughly… 10 days! I’ve heard a tiny rumor that kids can be time-consuming? It’d be great to get the update out the door before it goes back on the shelf.

One could call this motivation. Another less healthy term would be anxiety or obsession. I get this reeling feeling of:

I have to do this, I have to do this, I have to do this…

I put a lot of false urgency on myself — it’s something I need to work on. I love the challenge of making an iOS app but everything in moderation. I need to have balance and headspace for other more important things in my life.


  1. I’ll share more on what’s next for MapKeep soon! I don’t want to promise anything prematurely. ↩︎


I Love Delta

The best Gameboy is the one you have with you.

I have been having a blast playing Pokémon Crystal (specifically the Polished Crystal romhack) for the Gameboy Color, Tetris, and Mario & Luigi: Bowser’s Inside Story for the Nintendo DS with Delta for iPhone. At the time of this post Delta is still #1 in the App Store thanks to Apple’s sudden and inexplicable1 change of heart. It’s an incredible app that’s been in the works for a long time by Riley Testut. You can support it on Patreon.

I’ve been having fun making a custom skin for Gameboy Color to improve the screen size and ergonomics in landscape.2 I’ve been playing with the Gamesir G8 controller — which is great.3 Pokémon is fine with onscreen controls but a real controller is ideal for games like Super Mario World and Tetris.

What makes retro gaming on iPhone so special is everything that makes the iPhone such a compelling product: great support for wireless headphones, great battery life, streaming to your TV with AirPlay, and game controller support. This entire ecosystem was just dying to get emulation added to the mix. Federico and John covered this well on MacStories Unwind.4

The past few years I’ve been following along with Russ at Retro Game Corp and have bought the Miyoo Mini, a couple Anbernics, and even the Analogue Pocket. I see now that I have a problem but I find comfort in knowing Brendon Bigley (of Into the Aether) is in the same boat.

While these devices can be great uni-taskers with good physical controls, they all fall short of the iPhone when it comes to screen quality, staying charged, and convenience:

While waiting in line for coffee on Sunday I pulled out my iPhone and played a few Pokemon battles (thanks to turbo mode) and caught a Jigglypuff. There’s no way I would have even thought to bring one of those other devices on this quick neighborhood outing. Combine that with auto-saving when putting the phone to sleep — it’s just so easy to dip in and out.


As photography nerds like to say: the best camera is the one you have with you. This has been proven with the smartphone and now we’re seeing it all over again with Delta.

The best Gameboy is the one you have with you.


  1. To anyone who says regulation and competition don’t work, exhibit A is Delta and Apple changing the rules after 16 godforsaken years. ↩︎

  2. It’s not ready to share but I will definitely will. I know others will enjoy it. ↩︎

  3. I bought a magnetic monstrosity for the PS5 controller. This thing is heavy and pairing to Bluetooth (then remembering to power it off) is not fun. Pro: the magnet lets you rotate the phone to portrait mode for an amazing DS experience (if you can get it balanced). I also tried the Backbone and thought it felt flimsy with too-small buttons and joysticks. I found it used for $40 and it was promptly returned. ↩︎

  4. Also mentioned in the show: while 99% of people are excited about Delta there’s a small (and annoying) part of the discourse saying, “Android has had emulation forever, what’s the big deal?” Two things: (1) Delta itself is so good and (2) as Merlin Mann would say, “it might as well be on Mars.” ↩︎


Getting Started in UX

A colleague recently asked if I had book recommendations that cover the philosophy of design1 or books that gave me a leg-up when starting in UX design. This was a head-scratcher initially and I didn’t know where to begin. Right out of school I immersed myself in design — like someone moving to another country to learn a foreign language. This involved a lot of reading, podcasts, doing freelance and pro-bono side projects, and visiting friends who worked in the Austin and San Francisco tech startup scenes.

I’ve let that slide in recent years2 but I figured I could share the books, podcasts, and videos that helped me along the way.

Podcasts

While the majority of these shows are now retired I consider them to be evergreen.

  • Design Matters by Debbie Millman is about creative people from a wide array of disciplines.
  • High Resolution by Bobby Ghoshal and Jared Erondu was a limited-run show where they interviewed design leaders.
  • Layout by Kevin Clark and Rafael Conde was a good (semi-topical) show that helped me feel connected to the broader design community.
  • Presentable by Jeff Veen is a great set of interviews with design experts.

Books

Videos


  1. As an example of “design philosophy” they recommended The Shape of Design by Frank Chimera. ↩︎

  2. I have a backlog of design organization books by O’Reilly (graciously purchased by my employer): Articulating Design Decisions, Discussing Design, Org Design for Design Orgs, Design Leadership, and UX Strategy↩︎

  3. At the time of this book being released (2018) I looked up to the culture DHH helped establish at 37signals but since then he’s turned out to be a turd. ↩︎


Q1 Update

The beginning of the year is a great time to hunker down, stay warm, and hibernate. With a little one arriving in May, my wife and I have been watching a lot of TV and movies together. Check out the footnotes for general life updates like home renovations1 and car stuff2.

Music

  • Cowboy Carter by Beyoncé is phenomenal. I’ll be flabbergasted if it doesn’t win Album of the Year.
  • Tigers Blood by Waxahatchee is an instant classic.
  • Ultimatum (Expanded Edition) by The Long Winters reminds me why I love music.

Anticipating new music from The Decemberists, Vampire Weekend, and Iron & Wine later this year.

TV

March

  • Fargo (season 1 and 2) is in the pantheon of “greatest shows of all-time” for sure.

February

  • Scavengers Reign is beautiful (and also grotesque). Incredible.
  • Mr. & Mrs. Smith was a fun ride. First episode felt a bit slow, maybe? Donald Glover and Maya Erskine were awesome together.
  • The Afterparty (season 1) was a fun whodunnit with a great cast. Gotta love Richard Splett Sam Richardson.

January

  • All Creatures Great & Small (season 4) never disappoints and is a routine post-holiday “feel good” show for the wife and I.
  • Queer Eye is always fun to watch, it’s one of the only reality shows I will stick around for. (I know it’s a common joke but please give Bobby more airtime.)
  • BEEF (season 1) holy shit we loved this.
  • For All Mankind (season 4) does not disappoint. Can’t wait for next season.
  • Yellowjackets (season 2) was fine. Season 1 was engrossing but it feels like there’s not a ton of mystery left?
  • The Curse was outstanding. I know it’s divisive but I think it’s absolutely brilliant. If you want more Nathan for You, this is not for you.
  • Star Wars: Visions (season 2) continues to inspire me with its diverse art styles from around the world. It is phenomenal. It single-handedly gives me hope that Disney will someday make a good Star Wars movie — they just need to let creators do what they want (instead of trying to redo the Marvel playbook).
  • Slow Horses (season 3) is a gem and a must-see. I am usually anti-binge but I watched this in a single sitting.
  • Fisk is a fun lil Australian Office-like.

Movies

We watched most Best Picture nominations this year and were deliberately trying to watch more film. TV can be a bit of a drag sometimes. Each episode tends to feel like an appetizer where a movie is a meal.

March

  • Midsommar I should not have watched this. I was home alone for the weekend and it freaked me out. This is a disturbing (yet somehow beautiful) movie that left me thinking for days.
  • Napoleon had exciting war scenes, sets, costumes, etc. I’m glad I watched it. Not a “must see” but it was entertaining.
  • Dune: Part Two was a masterclass of cinema. We saw this in IMAX and were blown away.
  • Poor Things was odd, delightful, and excellently done. I loved the style and world they created for this film and glad Emma won another Oscar.
  • Wonka (2024) was bad. I expected to learn how Wonka went from a fun-loving chocolate maker to a maniacal recluse. Instead Timothée Chalamet tries being silly as an indentured servant. If 80% of your runtime is about laundry, you know you’ve screwed up. A few nice moments but overall a huge miss. (Also a main character’s name is Noodle. Noodle!)

February

  • Guardians of the Galaxy Vol. 3 was fine. Good ending to the series I guess. Thor Ragnorok and Guardians 1 were lightning-in-a-bottle and their sequels have all been a letdown.
  • Jenny Slate: Seasoned Professional was incredibly funny. This was the first time we had watched her standup. I only knew her from Parks & Rec.
  • Paterson (2016): very random but I was in a hotel room so I had nothing else going on. Dan Benjamin mentioned it in Back to Work 638 so I gave it a shot. Slow and sleepy but a nice slice of life.
  • Oppenheimer (rewatch). I watched this with my parents (it was their first viewing) and as soon as credits rolled both of them went “woah” and that’s when I knew it’d win Best Picture.
  • American Fiction was excellent. Jeffrey Wright and the whole cast were outstanding.
  • Princess Mononoke: I’m slowly watching all the Ghibli/Miyazaki movies. This one’s surprisingly violent! Beautiful animation.
  • Asteroid City: I am a longtime fan of Wes Anderson but this movie just made me angry. Everything about this production is world-class: cast, costume, and designs; but the story had no heart. I felt nothing.

January

  • Anatomy of a Fall was a great mystery. It played with the timeline of events really well. The courtroom scenes, while probably not realistic, were exceptional.
  • May December had terrific performances by Portman and Moore. The ending felt a bit anticlimactic. The ending made us think, “wait, that’s it?”
  • Maestro is world-class. Bradley did good. The scene where he’s conducting in the cathedral was incredible. Classical music FTW.
  • Killers of the Flower Moon was outstanding. I read the book a few years ago and thought Marty did a great job adapting it into a riveting story. Like Oppenheimer you’d have no idea this was 3 hours long, it flew by.

Books

  • Shift (book 2 of Silo series)

Theater

  • We saw Hamilton in Chicago. I listened to the soundtrack a bunch in 2020 and saw the Disney Plus version. My parents and brother went in cold turkey and we all had a blast. Angelica (Lencia Kebede) and King George III (Paul Louis Lessard) were fantastic. It’s tough comparing to the original cast but those two were standouts.
  • The Witch (Krannert Center for the Performing Arts) was a modern and fun retelling of The Witch from the 1600s.

  1. We renovated our home offices, removing the 1970s faux wood paneling and dropped acoustic panel ceiling. This allowed us to vault the ceilings, raising it about 5 feet. I still need to do sound dampening and decorating but it’s a nice improvement. ↩︎

  2. We said goodbye to our 2015 Subaru Forester (with only 60,000 miles!). We bought a lightly used 2021 RAV4 Prime plug-in hybrid. It feels like the future: so many fancy safety features. The 40 mile all-EV mode is wonderful for daily errands. Then the gas engine is there for long-distance trips. Best of both worlds. Charging infrastructure is sparse in Illinois and we’re a 1-car family so we could not justify going all-in on a full EV, yet↩︎


US vs. Apple

My initial reaction to hearing about the United States versus Apple:

I’d boil down the DoJ lawsuit as “Apple works hard to ensure their product has good and people like it” and apparently that is illegal? I totally agree with the App Store complaint. These other things are… yeesh.

Later I read Manton Reece’s thoughts, which more or less aligns with mine. The App Store is an absolute cluster of corrosive incentives for Apple which limits hurts businesses1 and stifles innovation.

Jason Snell has a great piece at Six Colors. In a nutshell:

Lock-in will be on trial. Many of the DoJ arguments come down to this: Every feature that Apple builds that makes it harder to switch to an Android phone is fundamentally anticompetitive. … the DoJ envisions a competitive smartphone market … in which there’s as little friction as possible when jumping between platforms.

As he mentions, the CarPlay and Apple TV+ arguments are asinine. This part, however, got me worried about what precedent this case could set:

Is it illegal for Apple to use its power to improve the user experience? What about when it cuts itself in for some sweet Services revenue along the way?

I design for a big corporation so I’m part of the Big Scary Tech this bill is targeting (therefore my perspective is biased). As I read more on the topic, my mind keeps wandering back to this doomsday of question: is Design — the art of making things with value, with quality, with utility — ultimately under attack?


While I disagree with some ideas in this lawsuit, I’m fascinated to see what happens.

Apple could stand to loosen up a bit, without losing much. Let apps run outside the App Store. Let people use the smartwatch of their choice. Let users use their godawful bank as an alternative wallet to Apple Pay. What we’ll all learn together is that the total package, the design of this ecosystem, is what customers pay for and want.

In other words: if Apple has to compete, I’m confident they’ll win.


  1. Except Apple, naturally. ↩︎


Working at John Deere

My UX career started with an internship at Cazoodle (a now-defunct, as far as I can tell) startup in the University of Illinois Research Park. After a year or so I got the opportunity to intern at the John Deere Innovation Center in Champaign, where I worked on mobile apps and had a blast. I owe a lot to my then (and now) boss for how my career has unfolded so far.

In 2017 I left John Deere to join a startup and followed that path for 5 years (a story for another time). I’ve been back at John Deere for about a year-and-a-half and it’s amazing how a company with such a long history has adapted and modernized in a few short years.

Yesterday a colleague shared a corporate video about what it’s like working at John Deere. I think it rings true and echoes the reasons I returned to the company and love my job. Hopefully I don’t come off as a corporate shill, but I do sincerely think it’s a great place to build a career and make an impact.

I’m incredibly lucky.


Magic Mouse Shoe

Wes Davis at The Verge wrote about accessories that attempt to make the Magic Mouse more ergonomic. I bought one of these on a whim back in November with the expectation it could address a few issues with Apple’s Magic Mouse:

  1. Increase the bulk of the mouse to help my hand rest more comfortably.
  2. Easier charging thanks to wireless charging.

Comfort

On the whole I would say these accessories do make Magic Mouse more comfortable when mousing around or when resting your hand while reading. You’ll need to remind yourself to let your hand relax more but all-around you do get a more “hand-friendly” object.

Scrolling is where things fall apart. It may shock you to learn that we scroll a lot when using computers. When using two-finger scrolling with Magic Mouse your fingers are pitched and need to move more than a standard scroll-wheel. The shoe doesn’t make this interaction less comfortable, but it does not improve it. Despite its derisive design, I’m not sure how Apple could have made two-finger scrolling more comfortable.

Wireless Charging

Adding wireless charging to Magic Mouse is nicer than spearing the turtle with a lightning cable. I could quickly attach the mouse to a MagSafe puck when getting up for lunch meaning the battery would always be topped up.

One downside is that is causes a tiny electrical hum when charging. It took me a while to notice it at first but then it was impossible to not notice (see also: the arrow in the FedEx logo).

Another quirk is that you can’t use Magic Mouse while it’s charging. The mouse shuts off w because it assumes it’s upside-down with a cable jutting out. I imagined using a Qi mouse pad for endless battery life but this is not possible.

The last kicker is that I switch between a work and personal MacBook daily which requires removing the boot and pairing directly by Lightning each time I switch computers. I’d guess most people don’t have this problem, but I thought I’d mention it.

Verdict

These boots helped me realized the Magic Mouse itself no longer for me. Between poor multi-device support and discomfort, I decided to dig out an old Logitech mouse which solves both problems: good ergonomics by default and automatically pairing (its USB-A dongle stays plugged into my Thunderbolt dock).


Spatial Handoff

I haven’t been able to try Apple Vision Pro yet, but the Mac screen-sharing feature reminded me of the “Design for Spatial Interactions” session from WWDC 2021. It’s fascinating that Apple has been using this “spatial” term for a few years now.

Like all Apple Design videos, it’s excellent. They talk about the precision locating UI for AirTag and the interactions behind handoff for HomePod mini. Putting your iPhone near your HomePod will move audio from iPhone to HomePod. It’s pretty magical. In both cases they’re talking about how physical — or spatial — actions can convey user intent, something traditionally conveyed with taps or buttons.

This is relevant for Vision Pro’s Mac screen-sharing feature. It’s triggered by looking at your Mac. There are some other clever features like the autocomplete bar that floats above your physical Bluetooth keyboard but this just look at it gesture seems under-utilized in visionOS 1.0 and could be extended much further.

For example: you’re watching a movie in Vision Pro and your spouse arrives home. What if you could look at your AirPlay-enabled TV and it could start playback on that screen, letting you share that experience in reality.

Or similarly, say you’re listening to music on Vision Pro. Look at a HomePod to handoff the audio. (There are dozens of HomePod owners who could benefit from something like this.) Similarly what if the audio seamlessly followed you as you moved from room to room — without blasting on every speaker in the house.

Maybe looking at a HomePod could cause a flurry of your favorite albums to flutter above. With a look you could start playing music. Eliminating the need to recall and verbalize a lengthy album title and artist, bringing that familiar feeling of the family record player.

Or would it be possible to use your iPhone’s keyboard for Vision Pro just by looking at your phone? (This could work similar to the Apple TV input handoff.) The typing experience on visionOS without a physical keyboard is severely lacking so this could be a game-changer.

(As an extension of this, what if you could AirPlay your iPhone into Vision Pro? This could be a sweet solution for getting offline videos for travel situations if native apps from big players like YouTube and Netflix never show up.)

Or what if someone wants to show you a photo on their phone while you’re wearing the headset like a sociopath? Maybe they could cast it into your headset to enjoy a beautiful panorama from a recent trip.


These are just a few examples that come to mind. I think there is a huge opportunity to rethink how we interact with digital things in a physical way. By all accounts Apple Vision Pro and visionOS are very 1.0 and I’m excited to see where this takes us over the next decade.


Download on Apple TV

The other weekend my wife and I watched the excellent Killers of the Flower Moon on Apple TV+. We opted to skip the theatrical and digital purchase windows despite loving the book and Apple’s caginess around when exactly the film would debut on the streaming service.

Right off the bat the movie’s soundtrack by the late Robbie Robertson set the tone1 and pace. We were hooked. A few minutes in, however, we started noticing blocky pixels — the video stream oscillating between vivid 4K and 240p pixelated mush from minute to minute.

It was just how Marty intended.2

I naively thought pausing would give it a chance to buffer and it’d be smooth sailing. As the stuttering continued I restarted the Apple TV, force quit the TV app, ran a speed test3 and yet the issue persisted. Then the stream completely failed and a panic set upon the room. Life happens pretty fast. You never know the next time you’ll have the time and disposition to watch a three hour movie. It was now or never.

I wondered if the problem was with streaming the movie so I opened the TV app on my iPhone, found the movie, and hit download. A minute later the download completed and I used AirPlay to put it on the TV. The rest of the movie went without a hitch4 and we enjoyed the riveting and heartbreaking story of the Osage killings.


It was less than ideal needing two Apple devices to watch an Apple-produced movie. This is because Apple TV+ in the TV app on the Apple TV hardware does not support downloading video. For inexplicable reasons this overpriced hockey puck comes in 2 storage tiers but you can’t actually store anything on it.

That said I can see why Apple might not want to implement this feature:

  • Unlike an iPhone you’re unlikely to take an Apple TV with you on an airplane and need to load up on movies before takeoff.
  • Then there’s the messiness of managing and removing downloaded media.
  • I fear Apple is allergic of buttons.

Whether you have a slower than average network at home, intermittent server outages, or taking an Apple TV to a hotel or Airbnb TV with crappy Wi-Fi, there are scenarios that could make this feature worthwhile.

The most straightforward solution is offering a download button on the episode or movie detail view — just like on iOS and the Mac. (Maybe a long press on the Play button could expose a menu with this option.)

Another idea is treating download as a fallback to streaming. Maybe the OS could notice streaming quality is low and prompt the user with something like, “Download movie? This can take a few moments but should play without interruption afterwards.” Playback could resume from the same spot using the local file and get automatically offloaded 24 hours later.

I know offline downloading is not a glamorous feature but little touches like this could make the Apple TV a bit more forgiving in the real world.


  1. Parts of it remind me of the Breaking Bad theme music, but extended to cover a 3 hour movie. It’s an excellent listen on its own. ↩︎

  2. Aside from the obvious financial benefits and prestige that come with a theatrical release, I’m sure directors like Scorsese get bummed out by the idea of someone watching their movie on a cramped phone screen or buffering through the first 15 minutes. ↩︎

  3. Totally normal behavior when encountering the slightest delay of internet television. ↩︎

  4. Except when the cable from my iPhone knocked my beer into the living room rug. Less than ideal. ↩︎


The Mac Turns 40

I saw several lovely posts celebrating the 40th anniversary of the Mac today. The 30th gave us the wonderful Mac Font and somehow feels like yesterday. A lot has changed in the world and my life since then, but one thing has been a constant:

I’ve always felt at home with the Mac.

I have a scattering of memories with the Mac throughout my life. I recall playing with vintage Macs in the school library in kindergarten or first-grade (circa 1996). I was blown away by the iMac G4 and it’s the reason I went into design. It showed how products can delight. I spent countless hours after school using my grandma’s iMac G5 to do homework play games.

But it wasn’t until I had my own Mac that I fell in love. After a couple summers working for the high school alumni newsletter (produced with G3, G4, and G5 Power Macs) I saved up and bought a 12” iBook G4. Bonus: it came with a silver iPod mini. I curated a music collection and customized every aspect of it with Candybar. After running through multiple (and expensive) power cables and batteries, I made a massive jump to a white Intel MacBook.

I used the hell out of that Mac. I learned Illustrator, Final Cut Pro, Garageband, Photoshop, and so many other tools that let me explore being creative. It was my portal to the internet and chatting with friends on Adium. It’s where I amassed an astounding amount of legally obtained music and movies that shaped my taste.

The Mac fits my brain in a way where I can create and work effortlessly. It’s always had a flourishing community of developers building utilities to extend platform. The flexibility and openness of the Mac is what makes it so special.1 From PowerPC to Intel then Intel to Apple Silicon I’ve seen huge leaps in what Mac are capable of. The Mac Goes On and I’ve enjoyed witnessing the evolution from Tiger to Sonoma.

Here’s to 40 more.


  1. I want this post to celebrate what I love about the Mac. These points on openness and flexibility highlight my, and governments around the world, frustrations with iOS, iPadOS, and (soon to be) visionOS. These systems are closed off and I think it does a lot more harm than good. ↩︎


Chesterton’s Fence

Today I learned about Chesterton’s Fence thanks to Merlin Mann’s Wisdom Project:1

Learn about Chesterton’s Fence. Then, actively resist altering a given situation before you understand the reasons why it’s remained unchanged for so long.

This piqued my interest and I read2 a post by Shane Parrish which summarizes G. K. Chesterton’s 1929 idea:

Do not remove a fence unless you know why it was put up in the first place.

One example is from Steve Blank’s The Elves Leave Middle Earth – Sodas Are No Longer Free about a startup CFO killing free snacks without understanding the knock-on effects. It’s a great anecdote.

Parrish’s post concludes (original emphasis):

It reminds us that we don’t always know better than those who made decisions before us, and we can’t see all the nuances to a situation until we’re intimate with it. Unless we know why someone made a decision, we can’t safely change it or conclude that they were wrong.

The first step before modifying an aspect of a system is to understand it. Observe it in full. Note how it interconnects with other aspects, including ones that might not be linked to you personally. Learn how it works, and then propose your change.

I’m sure you can apply this lesson to your life one way or another (otherwise it wouldn’t be in the Wisdom Project) but it resonated with me as a designer and someone who works in software.

You might have seen a portfolio piece from a UX designer who proclaimed, “I fixed Twitter!”3 with a beautiful reimagining of the interface. These projects can be a great way for designers to learn and explore their own taste but please be humble. You don’t have a full picture of the priorities and constraints the design team was under nor the problem they were asked to solve.

While the expression “Chesteron’s Fence” was new to me, the idea was not. I received it as advice and it changed my approach when I started my job at Agrible back in 2017. I was the first design lead at the startup and they had been making software for a few years. My instinct was to move fast and make changes but instead I spent my first few weeks listening to the team and learning the product before suggesting any process or design changes.

It’s a skill I try to practice when any new project comes my way. Stay open-minded and don’t think about your decisions in a vacuum.


  1. This is a story for another day but I built an app that shows Merlin’s wisdom on my iPhone home screen. I haven’t decided if I’m going to continue the project or publish to the App Store. For now it’s just for me. ↩︎

  2. Technically I didn’t read the article. Instead I used the Listen to Page feature in iOS 17, which comes in handy when you could use 5–7 minutes to rest your eyes. ↩︎

  3. Visual design was never Twitter’s issue. It was everything else. ↩︎


Visiting John Deere Headquarters

This past week I was lucky enough to visit the renowned John Deere Headquarters in Moline, IL. The buildings were designed by Eero Saarinen (known for his work on the St. Louis Arch) and landscaped by Hideo Sasaki. My timing could not have been better with the weather and I was able to experience the area in all its winter glory.

As you approach you see the massive structure perched on a hill with a road that winds around a pond. It’s an impressive sight that makes you think: damn, this must be a big company. (This trip in particular evoked the snowy cliffside temple from Nolan’s Batman Begins.)

Nighttime

There are several incredibly long hallways to get from the parking lot to the office spaces. Walking throughout the structure gave me Severance vibes, which coincidentally was filmed at another Saarinen creation: Bell Works.

Garden

Aside from its zen garden, pond, modular grid system, and mid-century design, the standout feature, to me, is the atrium filled with plants and basked in sunlight.

Leaving headquarters involves driving slowly through a hilly wooded area. There are moments where you can see the building but by-and-large you’re enveloped by trees. I couldn’t help but notice the physical transition going from work to life. You’re forced to drive through nature and leave behind the corporate edifice. As someone who works fully-remote, there was something nice about that.

I’m positive the designers intended all these beautiful and inspiring moments. It delivers.


2023andMe Year in Review

Preamble

My goal is to collect the stories and art I experienced in 2023 with a sprinkle of personal updates. Reflecting on the year was a fun process and I hope to turn this into an annual tradition.

Tech Stories

There were a lot of disastrous tech stories this year but 23andMe’s data breach has a special spot in my heart. When I think about the implications for how this data could be misused (off the dome: planting false evidence at a crime scene, the inevitability of nonconsensual cloning), I have a hard time racking my brain for data that’s more sensitive. Stories like this should remind us to be more thoughtful of what we put online. Based on what I see on LinkedIn (a “professional” network), society has ways to go.

Other stories that spring to mind are GM’s bone-headed decision to drop CarPlay and the spectacular bungled effort to fire Sam Altman. The world came this close to Microsoft hiring every employee from OpenAI.1

Speaking of close calls: Adobe almost acquired Figma. I’m bummed for the Figma employees (who missed out on a big windfall) but this is probably for the best.

We saw the collapse of Twitter, which was bound to happen, but did anyone think it’d deteriorate this quickly? In its wake we saw the meteoric launch of Threads and Mastodon’s slow-and-steady growth. I hope smaller services like Micro.blog are getting their day in the sun. In 2024 and beyond I’m ready for a weirder internet.

It’s for these reasons I’m starting a blog.2 After years of posting to Twitter and Instagram, it’s time to have a proper home on the web. I’ve settled on:

The Year of Development

I prefer Yearly Themes over resolutions and while I didn’t plan a theme for 2023, reflecting on the past year helped a theme emerge retroactively: the Year of Development.

After the initial excitement of the Vision Pro unveiling at WWDC I spent many summer nights and weekends learning SwiftUI and SwiftData. In September I launched my first app, MapKeep.

I noodled around with an app for Merlin Mann’s Wisdom Project and a packing/shopping list app based on Myke Hurley’s request in Upgrade 489). These projects are on-hold for now.

Weebly hosted my personal site for 10 years but I grew tired of its outdated editor and godawful blogging tools. I used this as an excuse to learn HTML/CSS and rebuilt my site from scratch. At the end of December the site was rebuilt again using Eleventy.

Travel

I visited Des Moines, IA, for a week every quarter for “in-person week” at work. My brother happened to live there which meant we could get dinner downtown or watch an episode of The Sopranos at his apartment. Those days are behind us now that he’s moved to Chicago. It reminds me to always take advantage of opportunities to see family.

I went to Florida to visit sugar cane growers in February. The area was recovering from Hurricane Ian and the destruction was awful. Fort Myers Beach was on a boil order. The hotel was underwater days before I checked-in. I spent a few hours walking the beach and marveled at collapsed hotels, restaurants, and homes.

In May we went to Michigan for a high-school friend’s wedding. A week later we went to a cousin’s high school graduation in Denver and we hiked at Mount Falcon Park.

As an annual tradition we spent a week with my in-laws in Madison, WI, in June visiting downtown, breweries, and the UW Union Terrace. In August we made a trip to Missouri for our niece’s 2nd birthday.

At the end of September a close friend and college roommate got married in the Virginia/DC area. We had great time reminiscing over our stupidity in college.

Work

I continue to work for John Deere as a UX Lead and love it. I was recently promoted and my area of responsibly has grown and I now directly manage a few designers. I’m adjusting to the new role and I’ll be reading The First 90 Days ASAP.

I’m fortunate to have a great mentor and manager. This was a tough year for layoffs across a lot of industries and I don’t take my position for granted.

I try to stay connected with the University of Illinois and in March I gave a talk about the design process at the Siebel Center of Design.


Games

I’m approaching the end of the main storyline in The Legend of Zelda: Tears of the Kingdom and … what a masterpiece. Mario Wonder was a blast! 2023 was filled with amazing games and I expect my OLED Steam Deck can help expose me to more non-Nintendo games in 2024.

I’ve been playing retro games:

This Christmas the Genki dock let my cousins and I (ranging from ages 12 to 32) play local co-op with 6-players in Super Smash Bros. Chaotic joy.

Podcasts

I heard the podcast ad market was tough in 2023. Hosts would mention this occasionally and I noticed fewer (or zero) ads. I decided to open my wallet and financially support the work I love:

  • Accidental Tech Podcast: Exceptionally consistent. Gotta support John now that he’s gone indie.
  • Into the Aether: I have a tremendous appreciation for the art of video game creation thanks to Brendon and Stephen.
  • Roderick on the Line: I’ve been listening to the internet’s Merlin Mann and the Long Winters’ John Roderick for a long time.
  • Upgrade: Myke and Jason’s segments on Apple and the entertainment industry keep me coming back week after week.

I loved Sir McCartney’s show where he tells the stories behind his killer songs.3

In 2024 I want to reduce my podcast intake or introduce more variety. It’s too easy for me to pop-in an AirPod and tune-out the world. I’m not giving myself enough time for silence.

Music

Thanks to Apple Music’s awkward Replay feature I have a list of most-listened music from 2023:

Other music highlights:

  • I started digging into Peter Gabriel’s i/o. There are 3 mixes of the album which is fascinating. I can’t explain it but the acoustic guitar in the opening track Panopticom fills me with joy.
  • Sufjan Stevens’ Javelin was lovely but I haven’t listened to it enough.
  • I recorded a short composition called A Quiet Night.
  • As part of a Christmas gift I introduced my brother to some chords on the guitar.
  • My hopes are high for Michael Stipe’s first post-R.E.M. album (I first heard it teased on Smartless). The Up remaster was impeccable.

Live shows:

  • Rodrigo y Gabriela at Krannert’s Ellnora festival. They’re gods. (Thanks to Señora Kooy, my high school Spanish teacher, who originally introduced me to this duo.)
  • Lauren Mayberry of Churches at the Rose Bowl. I missed seeing her opener, Claud whose record is a gift to humanity.
  • YouTube concerts don’t count but my brother was at a very similar show to Bon Iver at Pitchfork.

One last note: we all heard a new Beatles song this year. Its authenticity is contentious but seeing people singing Now and Then in Central Park is something. It’s hard to imagine this song hasn’t been around for 50 years.

Reading

I started supporting kottke.org by becoming a member. His site is an invaluable source of information on the internet across a variety of topics and help satiates my curiosity.

I read Expecting Better which is the Freakonomics of pregnancy.

30 seconds into Apple’s trailer for Silo and I was hooked. Before the show aired I read the first book, Wool. I’m currently reading Shift, book 2 of 3. If you’re a fan of the show, read the books.

(I think I read more than this but I don’t have a good tracking system.)

Movies

Throughout the year I used Sofa to track what I watched. Stars indicate favorites ★.

  • Dec: Barbie ★
  • Dec: Knocked Up (rewatch)
  • Dec: National Lampoon’s Christmas Vacation (rewatch)
  • Dec: Godzilla Minus One ★
  • Nov: A Charlie Brown Christmas (rewatch)
  • Nov: David Holmes: The Boy Who Lived
  • Oct: Young Frankenstein (rewatch)
  • Oct: Flora and Son
  • Oct: The Swan
  • Oct: You Are So Not Invited to My Bat Mitzvah
  • Oct: Flight of the Conchords: Live in London (rewatch)
  • Oct: The Wonderful Story of Henry Sugar
  • Sep: Elemental
  • Sep: Death on the Nile
  • Sep: John Mulaney: Baby J
  • Sep: Air
  • Aug: Spider-Man: Across the Spider-Verse ★
  • Aug: Once Upon a Time… in Hollywood
  • Aug: The Beanie Bubble
  • Jul: Oppenheimer ★
  • Apr: The Super Mario Bros. Movie
  • Mar: Luther: The Fallen Sun
  • Mar: Thor: Love and Thunder
  • Feb: Emily the Criminal
  • Jan: The Power of the Dog
  • Jan: You People
  • Jan: The Menu
  • Jan: Last Night in Soho ★
  • Jan: The Banshees of Inisherin

TV

Dates indicate when I finished watching the season or series. Stars indicate favorites ★.

  • Dec: The Crown
  • Dec: Veep (rewatch) ★
  • Dec: Lessons in Chemistry
  • Nov: Loki
  • Nov: Doctor Who
  • Oct: The Sandman
  • Oct: The Fall of the House of Usher
  • Oct: Only Murders in the Building
  • Oct: Sex Education
  • Oct: Ahsoka
  • Sep: Physical
  • Sep: Good Omens
  • Aug: Girls (rewatch)
  • Aug: Fisk
  • Jul: The Crowded Room
  • Jul: Love & Death
  • Jul: Platonic
  • Jul: The Bear ★
  • Jun: Silo ★
  • Jun: The Diplomat
  • Jun: Succession ★
  • Jun: Ted Lasso
  • Jun: I Think You Should Leave with Tim Robinson
  • May: Jury Duty ★
  • Apr: New Girl (rewatch)
  • Apr: Star Wars: The Bad Batch
  • Apr: The Mandalorian
  • Apr: Unstable
  • Mar: Shrinking
  • Mar: Trying ★
  • Mar: The Last of Us ★
  • Feb: Slow Horses ★
  • Feb: Star Wars: Tales of the Jedi
  • Feb: Mythic Quest
  • Jan: Star Wars: The Clone Wars
  • Jan: The White Lotus
  • Jan: Fleishman Is in Trouble

  1. As Warner-Discovery’s renowned rerun ad-laden movie channel extravaganza TNT would say, “We Know Drama.” ↩︎

  2. Obligatory “There are many like it, but this one is mine.” ↩︎

  3. The ads are obnoxious. One ad repeats throughout the series has Malcom Gladwell reading (I kid you not) this banger ad-copy, “Apple Card: a credit card made by Apple.” Good gravy. ↩︎