Inner Workings

Ok, on a scale from 1 to Tyler-you’re-an-idiot, how dumb is this idea…

TextBuddy 2.0 is gaining new features that apply per-editor window, and I need a place to stash those settings. It’s more than can fit into the narrow width of a side panel, and I’m not a fan of giant iWork-style modal sheets.

These new fiddly settings are like the “inner workings” of the TextBuddy document you’re editing, which gave me the idea of having those settings “inside” the window itself.

If I complain that modern software is too generic and boring, I should take my own advice and try something fun and borderline silly.


And while I’m thinking of it, if you’ve never used TextBuddy or my other app Fastmarks, here are two screen recordings showing their About windows. (About windows are magical places that, in the best cases, tell you something about the people who built an app rather than just the company name and version number.)

It’s not about the 30 percent

In 2021, I received a cold email from an Apple director. They wanted to arrange a video call to learn more about developers’ opinions of the App Store.

I was happy to oblige, but I think back now on their inability to understand all the frustrations I tried to express during the call about App Review and Apple’s general attitude towards developers. Even bluntly saying, “No one likes working with Apple anymore. We do so because we have to,” was met with an incredulous stare.

I came away from the call thinking they must see me as an aggrieved outlier – not representative of any common point of view.

They followed up via email a few weeks later, offering to help fast-track an iOS entitlement I had requested (and complained about on Twitter). I figured this was likely my last chance to continue the conversation.

I didn’t expect them to respond, and they didn’t.

I’m copying my reply to them below because I still believe everything I wrote.


I think it boils down to differences in philosophy around software development and the rights of consumers and developers versus corporations. The difference between how Apple believes software works today (and how it should work in the future) versus those of us who built software before the App Store era.

I’m not sure if those two points of view are reconcilable.

I do appreciate your offer to help. But, ultimately, I think how developers like myself want to write software (for the *truly* magical hardware and software platforms Apple builds) is going to be more and more at odds with Cupertino. It’s a shame and a waste of talent on both sides.

Break the Build On Purpose

Isaac Halvorson asked today

I have a few hobby programming projects that I like to work on, but I’m finding it increasingly difficult to make substantial progress on them. My free time is limited, and also comes in short, unpredictable bursts, making it hard to maintain a steady workflow. #ParentLyfe

For those who have faced similar challenges: What strategies do you use for quickly getting back into the flow and picking up where you left off?

I’m in a similar situation. Here’s something I started doing years ago:

When you’re done working, leave a note in your source code that tells you the very next step or action you need to take.

But I don’t mean a code comment. I mean, write a literal paragraph of prose right in the source code where you need to do the thing.

The next time you come back to the project – later that night, next week, or next year – you won’t be able to miss the note to Future You because the software won’t compile until you read and remove it.

Bonus points if you check-in that breaking change to source control.

Here’s a current screenshot from TextBuddy of a note I left myself over the weekend.

Follow-up from Travis F W:

Good trick, but how do you squeeze more progress out of less time?

You can’t. But, you can have patience and trust that small incremental improvements will win in the long term.

Because what the world needs is one more post about their initial reactions to using Vision Pro, here’s mine.

What follows are questions a few developer friends have been asking me via text message this weekend and my (slightly edited) replies.

(I’m mostly writing this so Future Me™️ can look back at my first thoughts in ten years.)


So, what are your first impressions?

Top of my head…

When I was buying this at the Apple Store on Friday afternoon, a woman who had been next to the Vision Pro displays asking questions about them, came up to me with wide eyes and said, “Are you buying that?!?”

It felt very much like when I was in the lobby of a movie theater in June 2007 and someone asked “Is that the iPhone?!?”

And I don’t just mean that their question felt the same; my answer felt the same, too. I lied and sheepishly said, “Uhh, I’m a developer. I need this for work.” I wasn’t brave enough to be honest and say, “I’m excited and want to try it and learn how it works.”

There are so many missing iOS / iPadOS table-stakes features that you’d think would just “come for free,” with visionOS being a derivative of iPadOS, that I can only imagine Apple was 100% focused on the OS infrastructure side of things until last year’s WWDC announcement. And only after that did they bring more engineers onto the project to build out the application-level software.

I’ve gasped and laughed more times than I can count.

I could hit a baseball wearing this; the pass-through responsiveness is so high. But cameras are cameras, and unless you’re in excellent, balanced lighting conditions, the real world looks like motion-blur through a very fine screen door with sharp, crystal-clear floating windows on top.

I’ve never used a VR headset before – ever. I feel eye strain after an hour of using this.

The fully immersive environments are staggeringly good.

Window management sucks. Real bad.

Typing is equally awful. Either use a Bluetooth keyboard or be prepared to dictate everything you want to type. To be fair to Siri, the dictation has worked great so far. I never speak out loud to Siri when using my Mac, and I don’t feel comfortable doing that with my family nearby (or in the next room) while using the headset, either.

I have to do “half immersion” (black out my front 180 degrees) to use it at my desk since I face a wall, and there’s “no room” to put windows in front of me if I leave the pass-through completely open.

I have tourettes, and I constantly find myself triggering accidental inputs from the twitching my head and arms occasionally do. I’m very curious to see what Accessibility accommodations look like as the operating system matures. iOS and macOS have settings for adjusting tap / click sensitivity – visionOS will need those, too. (Maybe they already exist; I still need to look.)

The dual head strap is not comfortable for me. The velcro is too finicky to adjust. The single back strap is way easier to use.

Let me send you a screen recording I did this morning using the MLB app.

Do you think you’ll use it much during work?

Maaaaaaaaybe? I can only imagine doing non-dev work at the moment. Email, Slack, meetings (not on camera). And only with a paired keyboard. It’s just too clunky otherwise. But who knows? It may get easier after I acclimate.

It’s like trying to do work on the first iPad. I mean, yeah, you could probably kludge your way through it. But there are too many rough edges. Same with this. It’ll be a while before tech work is possible.

I haven’t tried many third-party apps. I think anything video will be killer. It’s already the best TV in my house. And the open-ear speakers firing at your ears are crazy. I don’t understand how they work so well.

Sports will be huge in a few years when the on-field cameras catch up to provide more appropriate content.

The thing that makes me sad is it’s a very solitary feeling. Only one person can watch that “best TV in the house” at a time. I can’t share any of this with Liz without her going through an arduous guest setup mode every single time.

My sister made this TikTok from our first FaceTime call Friday night.

Oh god, that looks awful. I mean, it’s cool, yeah but I can see why it’s beta 😂

One reason we eventually figured out was that my eyes always looked “up” on the call, right? That’s because her FaceTime window was positioned above my eye level in my field of view. Once I “lowered” her window, the eye contact was more natural.

Damn, the things you’d never really have to deal with. Woulda been incredible to be there when the AVP engineers were learning all this for the first time.

Like, her position felt totally natural to me but looked bizarre as hell on her end.

Overall, how are you liking it? Does the battery life seem low compared to every other Apple product?

I’ve never used any VR headset before, and I haven’t been able to wear this on my head long enough to run down the battery before getting enough eye strain to where I took a break. But I also still need to finish setting everything up and getting more 3rd party apps to try – and it’s been the weekend. My time wearing it may go up during the work week without kids around when I experiment with trying to do work on it.

This seems in line with what others have told me who got it or tried the in-store demo. Maybe it is good we’re waiting.

I heard a reviewer say, “This is the worst Vision headset Apple will ever ship,” which is accurate and also a hopeful statement.

The hardware might be good enough for mass market use, but the software (and I mean the OS-provided feature set from Apple, not even talking third-party developers) is nowhere near ready enough for more than the earliest tech enthusiasts.

Like, iPhone OS 1.0 nailed the interaction model from the start – and it’s been a steady march of iteration and polish ever since. iPad OS is still trying to figure out how to manage multiple windows.

visionOS is just throwing stuff at the wall (literally and figuratively) and hoping.

Granted, it’s very well-considered stuff on a wall, but they don’t know what works yet. And I can’t blame Apple for that. This is going to take a while.

“…not worthy of your love.”

Brent has a post today similar in spirit to my own but much more eloquently written.

Just like the sixth finger in an AI-rendered hand, Apple’s policies for Distributing apps in the U.S. that provide an external purchase link are startlingly graceless and a jarring, but not surprising, reminder that Apple is not a real person and not worthy of your love.

We’d all do well to remember that the values Apple espouses are often worthy of admiration – and sometimes love. But the corporation itself and its behaviors are not.

Modern-day Apple

(I’m stealing the title of this post from the closing sentence of this one by Yilei Yang.)

I don’t have anything to say about Apple’s new guidelines for external purchase links on the App Store that smarter people than me aren’t already saying. It’s exactly what we all knew Apple would do.

What I do want to comment on is the juxtaposition of the two most recent posts on Daring Fireball tonight.

At the end of the Disney post, John ends with:

Does it make the movie you’re watching any better to see it while sitting in an immersive fantasy environment? No, of course not. But it’s a lot of fun, because it’s so intricately detailed and well-done….

I don’t know why people lose sight of the fact that having fun is one of the very best parts of being a human. The Disney+ app for VisionOS is fun.

He’s exactly right. We have astonishingly powerful supercomputers in our pockets, on our wrists, and sitting on our desks that routinely perform tasks indistinguishable from magic. I think many of us often forget that. Everything they do quickly becomes commonplace and boring.

And there’s no better antidote for that than fun. Software should be fun, goddammit.

I wrote two years ago:

I struggle to find delight on a grand scale in modern software. Every incremental step, year over year (from all companies, this isn’t just about Apple), seems to be focused on removing emotion and affection from our devices rather than finding ways to strengthen that bond.

Where’s the fun? Where’s the experimentation? The joy and playfulness?

 …how software makes you feel is just as important and necessary as what it lets you do.

And yet, as I move on to reading John’s post about the new App Store guidelines, all I can think of is how modern-day Apple is one giant corporate contradiction. The same company that builds the technology to watch a movie in front of a Tatooine sunset is the same company removing all of the joy and fun out of the process of building that sunset.

Modern-day Apple is its own binary star. One fueled by creativity. And another fueled by arrogance.

Using Reminders to Add Attachments to Calendar Events

I try to be prepared before work meetings. Usually, that’s just making sure I’ve jotted down any notes or discussion points I want to have ready.

Depending on my mood and how far in advance I write those notes, they’re kept either in Drafts or DEVONthink because both apps fully support deep linking to specific documents. (Hookmark makes this easy.) After I’ve prepared my notes for a meeting, I can copy a URL to that document and paste it into the notes field in my calendar event. Then, when the meeting starts, I can open my notes with one click from my calendar app.

Usually.

That only works for calendar events that I’m the owner of. But for meetings I’m invited to, I don’t have permission to edit the invite – nor would I want to add random notes to the event for everyone else to see.

For the longest time, my solution for this was to hope I remembered that I wrote up notes in advance – and that I could find them. But now I have a real solution.

I made a Shortcut I can launch from my Mac’s menu bar called “Attach Meeting Info.” The basic steps it performs are:

  1. Fetch all calendar events from my work calendar starting in the next five days.
  2. Prompt me to select one from a list.
  3. Create a new task in Reminders.app due at the event’s start time.
  4. Open Reminders.app and display the new task.

Then, I paste the URL to my Drafts or DEVONthink document (or any other supporting material) into the task’s notes.

Later, when the meeting starts, that reminder will pop up on my Mac (or iOS device) with the one-click URL I need to open my notes.

Extra Details

It’s worth noting that the shortcut creates a new task in a Reminder’s list called “Event Attachments.” I made this list specifically for these reminders, so I don’t pollute any of my regular Reminders lists.

If you use a calendar app like Fantastical that can show tasks alongside calendar events, then in addition to a reminder notification pop-up at the start of the event, you can also see in advance which events have attachments (and open them) as you check your upcoming schedule.

MouseosaurusRex

If your mouse were a tyrannosaurus rex, it would eat your face off before you could find it across multiple monitors.

What I mean by that is, have you ever lost your mouse cursor across the giant desktop wasteland that is your fancy multi-monitor setup?

Sure, you can jiggle your mouse to try and spot some movement, but if you’re like me and rock a dark wallpaper, you might as well just close up shop for the day and try again tomorrow.

But what on earth does this have to do with dinosaurs?

I bet you’re saying to yourself, “That bit in the opening paragraph about the tyrannosaurus rex was great. I wish this post had more dino content.”

You’re in luck! That’s where MouseosaurusRex comes in.

MouseosaurusRex’s one job is to help you find your missing mouse cursor within the jaws of the mighty T-Rex.

Just press the keyboard shortcut of your choice to summon the avatar of this ferocious beast and reveal your mouse’s location.

MouseosaurusRex is a free download for macOS.

Do good. Get even more apps.

Last year when I rebooted my little software company, one change I made was “Do Good. Get Apps” – which means, instead of buying my products, you can make a donation to one of nine nonprofit organizations, and I’ll send you a free license for the app of your choice.

Starting today, I’m choosing a nonprofit organization of the month.

I’m still offering a free license for any app if you send me your donation receipt, but now, any donation of $30 or more will receive a license for ALL of my current apps:

In addition, I’ll be donating a flat 25% of sales to the nonprofit for that month. So, whether you donate or purchase from me directly, your interest in my software will do a little good in this world.

The first nonprofit I’m highlighting is the Alzheimer’s Association.

Last year I wrote about my wife’s job there and why their work is so important to our family.

This month and through October, donations to our family’s team fundraising page of $50 or more will receive licenses for all five of my apps AND a lifetime license for Iris – a new way to browse and organize your photo library. Iris is currently in private beta, but you’ll receive an invite to try it out immediately and a license when the final version ships.

To donate to the Alzheimer’s Association, go here and then email me a copy of your receipt. I’ll reply with a download link for Iris and licenses for my five other apps.

Straight out of 2003

This post is way off-topic, but I hope you won’t mind a quick story about 90s boy bands and eighteen-year-old websites.

In high school, my little sister was a rabid *NSYNC fan. Posters covering every square inch of her bedroom – my mom driving her from one end of the state to the other for her first concert, etc.

More interesting, though, she took after her geeky older brother (👋) and built an *NSYNC fan website.

This wasn’t GeoCities or Myspace – she built and maintained it by hand on a shared web host with her own domain name.

NSYNCalot.com screenshot

Sadly, nsyncalot.com was last updated in 2004 and went bye, bye, bye entirely by 2005.

Or so she thought.

My sister’s birthday was this week, but I started planning for it months ago by bringing her old website back to life.

(Plus, a special birthday message from a very special guest.)

Thanks to the Internet Archive and the amazing Wayback Machine, I found and downloaded the last snapshot from her actual website as it looked in 2003 and recreated a few missing pieces by hand.

I re-registered her old domain name and uploaded everything to my web server.

nsyncalot.com is back.

How’d it go? See for yourself.

Happy birthday, Kate.