MapKeep 1.3

I launched an update to MapKeep this weekend which brings an all-new design. It has a list and map that stay in sync: selecting something on the map shows it in the list. Date filters are also improved.

The previous design was all-map which made it nice to view your collection but difficult to explore your locations chronologically. The app has been out for almost a year now so I wanted to make sure it could handle large collections.

I debated calling this “Version 2.0” because it was effectively a full rewrite of the iPhone app and brought a substantially new experience. However, from a user’s standpoint: this basically just adds a list! So I’ll hold onto that for a bit longer.


I’m sure there’s something in your life that you’d like to track easily. So check out MapKeep. (It’s free!)

For inspiration: here’s a couple real world examples of how it’s used:

  • A friend of mine moved to a new city and they capture spots in town (parks, neighborhoods, restaurants) to come back to later.
  • A family member wants to use it anytime they get a birdie on the golf course to mark the occasion.
  • Tracking where your dog does a number 2 on walks ;-)

Suing Suno and The Obvious Difference

I don’t have a fully formed opinion on how much of what Suno’s tools are just traditional “remixing” or sampling but this sentiment expressed in their blog post as a response to their RIAA lawsuit is ridiculous:

… like the kid writing their own rock songs after listening to the genre … learning is not infringing. It never has been, and it is not now.

It’s obvious what the difference is, right? One is a computer absorbing millions of songs and one is a human. Computers don’t have rights.

They also justify their actions by saying:

We train our models on … music we can find on the open internet – just as Google’s Gemini, Microsoft’s Copilot, Anthropic’s Claude, OpenAI’s ChatGPT, and even Apple’s new Apple Intelligence train their models on the open internet.

Which is akin to a toddler saying, “the other kids are doing it, why am I in trouble?”

I am not pro- Big Record Label. I want people to make music and I bet Suno’s tools are neat but these are kid-level logical arguments that don’t hold water. I look forward to seeing what happens next.

Via The Verge.


AI Creation vs AI Editing

I learned about Wix’s new blog-writing tools thanks to a post by Jess Weatherbed at The Verge.1 This will enable slop at massive scale. Heaps of garbage written by a machine to hopefully appease Google’s algorithms and trick people into thinking this site is written by another human. Wix’s large presence in the webhosting world means this has the potential to be an all-out assault on a human-led internet. I hope they reconsider this endeavor.

On a similar note:

My wife, who’s far less tuned-in to the AI-hype world than me, was equally grossed-out by Google’s ad during the Olympics2 where a father encourages his child to use Gemini to write a letter to their hero.

How would you feel if you found out a disingenuous robot wrote a “heartfelt” letter to you?

Luckily we weren’t the only people who picked up on this detail and it went viral (in a bad way). Similar to the Apple’s Crush ad, I struggle to understand how this ad made it into the world. Did no one at these companies raise their hand to say, “Isn’t this gross?”

Upon seeing Apple’s Image Playgrounds at WWDC the same word came to mind: gross.

  • Oh it looks like you made a lovely hand drawn sketch of a building? Let’s turn it to a super-fake, oversaturated, clearly-made-by-a-computer-abomination with one easy tap!
  • Want a hyper-ugly-Pixar knockoff of your mom? Bon appétit.

I worry, as others do, that if we let machines create for us we’ll never learn how to create for ourselves. I write to become a better writer and to share my thoughts.

To clarify: I’m not against AI in its entirety. I’m not happy that every LLM-maker decided they could violate copyright and scrape the whole web. I’m concerned that more companies like Reddit will withdraw from searched indexes unless paid.

But I do think AI can be uniquely talented at editing. Someone who’s over my shoulder and can suggest ways to elevate my work, connect it to other things, and make me more efficient. Apple’s Writing Tools (if they work) skate the razor-thin line between creating and editing. The litmus test, I feel, is that they only ever make your text shorter, never longer.

To all the companies out there working on half-assed AI integrations: please redirect your focus to editing. Empower humans to be creative. Don’t fill the world with slop. I’m open to applauding and adopting AI but they have to help me. Not try to be me.


  1. Via Manton Reece ↩︎

  2. I noticed Google disabled comments for the ad. All other Google videos have them enabled. It’s possible Google is aware that YouTube comments can be toxic at times. ↩︎


Thankful for 5× Zoom

I’m a longtime “small phone proponent” and always chose the smallest iPhone available. I went from the iPhone 12 mini then to 13 mini1 and swore I’d hold onto it as long as possible. Of course, capitalist consumerism had plans of its own.

When the iPhone 15 Max Pro was announced with a 5× telephoto lens I knew I had to upgrade2. Going from mini to Max was an adjustment but every time I punch-in and get the shot I’m reminded that I made the right choice. Today I got a picture of the baby with grandma, and I simply could not have captured it with my previous phone.

Here’s to you, iPhone 15 Pro Max. Here’s to you.


  1. I don’t usually get a new phone every year but after hearing rumors that the mini would be discontinued, I decided to go for the upgrade. The bigger battery, better camera, and (believe it or not) smaller notch were all selling points. Plus it came in red↩︎

  2. What put me over the edge: last fall we knew we were expecting so I needed the best camera possible to capture the little one. Like I said: capitalism. ↩︎


Passwords app for Mac and iPhone

I’m looking forward to Apple’s dedicated Passwords app. I rely on the current system extensively but having it trapped in System Settings was never a great experience (especially its modal design for editing, which blocks you from accessing other areas of the app).

They still need to add a “secure documents” area for scans of legal things like driver’s licenses and passports. I could throw these into a secure note but it’s much nicer having a single place for all “secrets”.

Hopefully this is the year I’ll finally say goodbye to 1Password 7. (You heard right. I have not and will not touch 1Password 8, which dropped support for free iCloud-based vaults.) You may surprised to hear but it’s no fun juggling two password managers.

Shoutout to Michael Tsai’s link collection. He’s a great follow.


Blue Screen of Death

It’s days like these that remind you how fortunate you are to use a Mac at a Fortune 500 company. ⌘

Godspeed. Be safe out there. 🪟


Overcast at 10

As a listener (and supporting member) of Accidental Tech Podcast I’ve been hearing about Overcast’s big rewrite for a while now.

On its 10th Anniversary the big update for Overcast is finally here! Marco did an amazing job modernizing the app’s design while setting the foundation for faster feature updates in the future. I’m excited to see where it goes from here.

My favorite new feature is one I’ve requested: Sleep Timer can be set to End of Chapter. I can now drift off to sleep and not miss the beginning of the next topic.

If you’re interested in app development I encourage you to listen to Under the Radar 297 or ATP 596. There were a few tidbits that stood out to me:

  • In Radar 293 Marco shared that a project manager helped him plan, prioritize, sequence, and define the scope for this project. It reminds me that even a team of one can benefit from a good project manager.
  • I don’t know Marco personally but it was gut-wrenching to hear that the burden of this rewrite (and his mountain of technical debt) made Marco consider quitting programming altogether. It was equally inspiring to hear he’s now feeling better than ever and ready for what’s next.
  • He migrated user data to an all-new backend in parallel (APFS style) with the previous version of the app to make the transition seamless for customers day one (and to lighten the server load).
  • He removed streaming (used by about 8% of users) due to increased complexity in how podcast files are hosted (namely: dynamic ad insertion). The downside isn’t huge: just a few extra seconds to wait after hitting play (if you don’t use automatic downloads). Upside: Marco won’t be burdened with bugs and can spend more time improving the app.

If you use the app I encourage you to leave a nice review (or a quick 5 star rating) for Overcast in the App Store. A nice review goes a long way and it pays dividends to send good vibes.


Working on MapKeep

I took advantage of the long Fourth of July weekend to work on MapKeep. Don’t worry: I was able to enjoy the beautiful weather from our back porch. I shipped version 1.2 right before our daughter was born but since then we haven’t had the time brain power to do side projects. I’m testing an all-new design inspired by Apple’s Find My which should unlock some new interactions (and expand to iPadOS/macOS).

Sadly I’ve taken this as an opportunity to completely rewrite the app. I’ve learned a lot since last summer. For example, I couldn’t figure how to get SwiftUI Previews working in my main view because it needed a fake array of SwiftData objects. Well I took the time to figure that out (thanks to Paul Hudson) and now I can iterate way faster. There’s a ton of optimizations like this that add up.

I’m not sure this new design is a slam dunk: I’m trying to get a feel for it by using it daily. Even if I revert to the old design the code will be in a much better place.

Tinkering with a new design is a fun distraction :-) but I probably should be thinking about iOS 18 features like Dark Mode app icons and App Intents1 ahead of Apple Intelligence.

As a newbie app developer I hit a lot of brick walls. It can be truly frustrating. But when I figure it out, it feels like flying.


  1. We use Mango Baby which has extensive App Intent support. Between widgets, live activities, and Siri integration. This app has it all and inspires me to deeply integrate MapKeep with iOS. ↩︎


The Audacity of Garbage People, Now Powered by AI

Can you believe this shit? As reported by 404 Media the scumbags used a byline of a previous and well-known writer, Christina Warren, for AI generated content.

The real Christina Warren hasn’t been writing these new posts on the zombie TUAW, however. The site’s new owners have stolen her identity, replaced her photo with an AI-generated one, and have been publishing what appear to be AI-generated articles under her byline.

The shitheads who bought TUAW have apparently already taken this down1 but oh my lord. The audacity of these people. Outrageous.

(This is shocking and appalling but it made me wonder if AI could resurrect John Siracusa of yore to write a review for macOS Sequoia this fall. Obviously I would not want it to happen like this.)


  1. The link 404 provided has already 404’d. ↩︎


Q2 Update

I became a dad in May. You could say it’s been a pretty big couple months. I’ll never forget that feeling of the first time I held her.

April was a nesting and prepping month, May was a monumental adjustment: waking up every two hours to help feed and change the baby was a bit taxing on the old noggin. As June rolled in the nights started getting easier and easier. I had a month off from work and will take more time in the Fall when my partner’s leave concludes. (I’m bitterly jealous of my German colleagues with 1 or 2 year parental leave options. I’m also grateful we get anything at all.)

Here’s a few bits of media I squeezed in. As you can see it’s quite a bit less than Q1!

Games

My relationship with gaming is probably going to look a lot different going forward now that I have a kid: you rarely have two hands free for a controller with a newborn (let alone the time). I’m so glad my phone can be a Pokémon machine now and being able to steal a few minutes away or play one-handed while I hold my sleeping kid is such a joy.

  • I’m almost done playing through Pokémon Crystal (well, technically Polished Crystal) in Delta and have published a couple custom controller skins. Having a go-to game on your phone is a sure-fire way to stay off social media.
  • Played a little of Hades 2 in early access (it’s phenomenal) on my Steam Deck and am looking forward to diving in again.
  • I picked up Paper Mario: Thousand Year Door remake for the Switch and have been slowly working my way through it. (For context I just stared Chapter 1.) I played the original a long time ago and have fond memories.

I also modded my Gamesir G8 controller to work with my new iPad. It’s a glorious combination.

Music

Been enjoying new music from Vampire Weekend, Iron & Wine, Hovvdy, Decemberists, Billie Eilish, and of course Taylor Swift.

Looking forward to new Bright Eyes and Coldplay in Q3. Speaking of Coldplay: I think they played their best concert ever at Glastonbury. It was an incredibly special performance with a lot of heart. Knowing 100k people were there in-person seeing what I was seeing at the exact save time was awe-inspiring.

Movies & TV

  • Bad Batch (season 3) went out with a bang. Love a good star war.
  • 30 Rock (seasons 1–3) is sublime. To me it’s like a live-action cartoon and I am always here for the zaniness. Blink and you might miss three jokes. I just love Tracy Morgan, Jack McBrayer, and everyone in the cast. (Some jokes haven’t aged well but that’s kind of how comedy works.) ★
  • My wife is rewatching Modern Family and I’ll catch a few episodes here and there. Holy hell. That show deserve all its Emmys, it’s such a treat.
  • Fargo (season 3) was good but nothing like seasons 1 and 2 (which were outstanding). We watched an episode of season 4 and kinda bailed on it. I like Fargo for the relatable characters — not the organized crime.
  • The last season of Curb Your Enthusiasm (season 12) was fantastic. They nailed the finale. Pretty, pretty good.
  • Chernobyl (2019) was a rewatch for me. My wife never saw it and I was itching to rewatch it. It’s an amazing feat of film and one of the all-time greats.
  • Demetri Martin: Demetri Deconstructed was humorous and surreal. Interesting editing and pacing of a live standup session.
  • BlackBerry was excellent and such a funny and amazing “true story” movie. It makes you realize how far our current technology has come (and how amazing the iPhone is). I’d love to see Glenn Howerton in more serious roles going forward. ★
  • Dream Scenario was a classic A24 film and Nic Cage was great. While I liked it I couldn’t help but think that I was just watching an extended version of the trailer. It’s all in there, weirdly enough.
  • Conan O’Brien Must Go was a great laugh. Always been a fan of him and it’s fun seeing him have fun. ★
  • Little Women (2019) was great. I’m not sure why we watched this now — it might have been suggested in Hulu or something — but it’s a delightful movie. I was in a stage adaptation of this in high school (I can’t remember who I played) so I’ll always have a soft spot for this tale. (It was also interesting watching this after seeing Barbie since it was Gerwig’s previous project.)
  • Castle in the Sky is a masterpiece. Watching this made me realize how much Zelda borrows from Ghibli’s humor and style — everything from the nature, creatures, music, and floating cities were all just sitting there.
  • Unfrosted felt like an odd halfway between a kid’s movie and something for older audience. Not sure who this movie was for…? Just a big sugar-high mess of cameos. (Jack McBrayer and the Mad Men scene make it worthwhile in my book.) If this didn’t have Seinfeld attached there’s no way I would have watched it.
  • Clueless (1995) I think I had seen this once before but not sure. It was a fine romcom. Not sure how Paul Rudd still looks the same.

As always I want to thank Shawn Hickman for making Sofa. I use it to queue up media and log when I’ve watched/played it.


Anticipating Intelligence

MacRumors has a roundup of AI features expected to be announced by Apple on Monday during the WWDC 2024 keynote. There’s a lot of buzz around AI (especially in the stock market where Nvidia is suddenly valued around $3 trillion which is in within spitting distance of Apple and Microsoft, two companies which make way more money).

There’s an over-abundance of hype and I expect there to be quite the comedown when this bubble bursts. Recent mainstream events like Scarlett Johansson’s kerfuffle with OpenAI and Google telling people to eat rocks and glue put a spotlight on the ethical and technical issues with AI technology and the companies hawking these new-fangled products.

Putting that aside for a moment, I am extremely optimistic for what Apple can bring to this space. I enjoy talking with ChatGPT via voice (and subsequent fact checking it) and using it to help me code but I think AI will remain a party trick until it’s fully embedded in our phones and computers.

Things like the Apple Photos widget and iOS 17’s autocorrect are already AI and I think there’s hundreds of ways that AI could help us get things done on our computers in new and faster ways. So count me in as someone who is very excited to see what we’ll get on Monday.

But don’t get too excited. I think iOS 18 will just be the start of a long journey to incorporate these new technologies into our operating systems. I think we’re going to be surprised and impressed come Monday but also let down. Both things can be true. There’s too much hype and anticipation for Apple to solve everything in one year.


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↩︎