Category: Uncategorized

  • 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.

  • Ode to That Thing We All Loved Dearly but Also Understand That Its Time Has Passed and We Should Probably Just Move On

    This post started as an email to Riccardo – a quick response to his iPod memoriam post. But I’ll share it here instead.

    Many people have written tributes (laments?) about iPod since Apple formally announced they’d discontinued the product line. No need for me to add to that chorus.

    Instead…

    Today, a coworker came into town who I hadn’t seen this year. Because I’m a crazy person, I noticed and commented that their Apple watch was gone – replaced with a regular watch.

    I stopped wearing it a few months ago except when I exercise. I feel so much…better…now. My mind is calmer.

    That conversation was this morning. And then tonight, I read Riccardo’s blog post with this passage near the end:

    Listening to music with an iPod shuffle is still (and can still be) a fun experience.

    Those two comments came together to describe why I musically jumped ship to an Android-powered Sony Walkman (lol, yes, stay with me) last year.

    1. With all the shit in the world in the last few years, listening to music has become even more of a refuge and safe space for me than it ever was before.

      But, for me at least, the incredible technological convergence of every single use-case into a deck of cards-sized pocket super-computer means that when I do want to only listen to music – there are a million beeps, boops, and badges fighting for my attention.

      An underappreciated feature of the iPod (because it wasn’t a feature you could market during its heyday) was that it was only an iPod. Not also a mobile phone and internet communicator.

    2. Man, I wish mainstream tech could be more fun – show off a distinct personality – but I realize that would lead to fewer sales. I get it.

    Anyway, those were the two emotional drivers that led me to shop for a dedicated portable music player last year – for the first time since my final iPod purchase in 2006.

    I landed on the memorably named Sony NW-A105 (don’t ever change, Sony) Walkman.

    It runs a pokey version of Android 9, so you can download the usual streaming service suspects from the Play Store. But I wouldn’t recommend that because

    1. The battery life is horrendous, and
    2. This is a goddam Walkman. The point is to load your own MP3 and FLAC collections onto this wonderfully compact, nostalgia-inducing device.

    Just look at this little guy!

    That’s next to my iPhone mini!

    And, my goodness, actual, tactile, physical buttons that have a delightful click to them. A hold switch!

    If you’ll allow me to take a keynote slide completely out of context from the original iPhone introduction. That first bullet point:

    Touch your music

    For all the amazing interactions touch screens have given us, until I clicked to the next track without taking this Walkman out of my pocket, I had forgotten how nice it is to control my music by touch – and not by voice or by first waking my phone from sleep and tapping a button I can’t feel.

    I don’t have a good segue to this last bit, but here you go. Look at this fucking whimsy.

    Music should be an emotional experience, and there’s no reason our devices shouldn’t reinforce that connection whenever possible.

    Because it’s built on top of Android, this little device is full of warts and other annoyances, but I do love it.

    I’ll leave you with its startup animation.

    Nice work, Sony.

  • Half-assed Followup

    I never know when it’s better blogging etiquette to update a published post with new information or to publish a followup post instead. But given the chance to use “Half-assed” in two consecutive article titles, I think the prudent choice is to seize that opportunity.

    After I posted “Half-assed Mac Apps” a few days ago in response to this article from Riccardo Mori, Christian Tietze wrote his own take on the matter, which spawned this Hacker News thread.

    Be sure to scroll all the way to the end of Christian’s post as he’s adding additional reactions and links on this topic as he finds them.

    Riccardo followed up with another piece earlier today as well.

    I also want to clarify a potential misunderstanding Steve Troughton-Smith took away from my original post:

    ‘Half-assed Mac apps’ is correct, but you’re pointing at a symptom, not a cause.

    As I replied to him:

    If my post implied Catalyst was a cause, then I worded it poorly. My point was to explain why Catalyst is in an uncomfortable middle ground that encourages low quality Mac apps – even if the tech existing at all does give us more apps we wouldn’t otherwise have.

    I think Catalyst was (is) a clever and creative technological response to try and improve macOS software diversity by leveraging the massive iOS developer base and their enthusiasm, but failed (is failing) for the reasons I wrote about.

    I’m sad that Catalyst isn’t the panacea that the absolute best-case scenario of the tech could’ve been, but hey, clearly a lot of work went into trying. Ten points to Gryffindor for effort!

    Finally, in irony that only makes sense to me right now, this whole conversation couldn’t have had better timing as I (accidentally) built my first Catalyst app last month. I hope to share more about it some other time, but the summary is…

    I built my own drawing/sketching app for iPad based on my own weird workflow and feature requirements. It’s just for me – no intention to ever distribute it. It’s 100% vector-based, with multiple infinite canvases you can spatially arrange in a card-style layout. Syncs to JSON files over iCloud. It’s nerdy.

    Anyway, I made it for iPad. And after I finished, thought, “I wonder if this whole Catalyst thing works?”

    And it did. Thirty minutes later it was running on my Mac. Bravo, Apple.

    But the flip side – that aligns with my original thesis – is that while it works and is serviceable as a Mac app, it’s a terrible Mac app. Unfortunately, because it does cross over the threshold of being just good enoguh for my needs, I have very little reason or motivation to ever make it any better on macOS since that’s not my target platform for this app. That it works at all on a Mac is a happy bonus.

  • Half-assed Mac Apps

    This week, Riccardo Mori published a piece about the recent perceived decline in Mac software titled “A brief reflection on Mac software stagnation”.

    (That he linked to TextBuddy at the start of the article is a happy coincidence. I’m an avid reader of his blog no matter the topic.)

    I was going to reply with a quick tweet-sized comment. But those 280 characters turned into a few tweets, then a full-on Twitter thread, and then – ah, shit – I really should write about this properly.

    So here we are this evening. I want to present my short thesis answering Riccardo’s question of why so many Mac Catalyst apps are, at best, Half-assed Mac Apps.

    Let’s begin.

    Riccardo asks the question:

    What is the newest application you have installed that turned out to be so useful and well-made it’s now part of your essential tools? An app that really got you excited and happy to be a Mac user? For the sake of argument, let’s leave out games (obviously) and single-purpose little utilities.

    He surveys his own list of recent app purchases – and there’s nothing there.

    [If] I open my toolbox with all the essential Mac apps I use on a daily basis for everything I do, what I see are old (some very old), tried-and-trusted applications…

    This may be a completely subjective observation, but I’ve been feeling a certain stagnation in Mac software these past few years….the Mac as a platform appears trapped in inertia instead of progressing

    There are factors that should be considered when observing the current state of Mac software, factors we could use to paint a picture that is necessarily imperfect and speculative

    The most significant factor he writes about is Catalyst. He sums up Apple’s pitch to developers as

    let’s remove the friction of having to deal with platform-specific frameworks, and let’s just have a system where you can effectively build universal apps that can run on iPhone, iPad, and the Mac with little effort.

    There it is. Did you catch it? The first four words: let’s remove the friction.

    Making cross-platform apps easy by removing the engineering friction is what I consider the root cause of so many iPad turned sub-par Mac apps. As Riccardo describes them

    they appear and behave in a way that doesn’t feel very Mac-like, with UI elements that clearly are just cut & pasted from iOS and poorly adapted to offer a good, usable, consistent experience under Mac OS.

    That’s too diplomatic. I prefer to call them Half-assed Mac apps.

    “Half-assed Mac Apps” is a pun on Collin Donnell‘s delightful way of describing macOS software (made popular by Brent Simmons and then Gruber) that fully embraces the platform’s strengths, conventions, history, and user base. He calls them “Mac-assed Mac Apps.”

    Half-assed Mac Apps are what you get when iPad apps are lazily ported to the Mac using the magic one-click Catalyst checkbox in Xcode. Yes, they run on macOS “natively,” but most are – how do I put it? Meh.

    That’s not a slight at those app developers. Or even at Apple and the team responsible for Catalyst. The glut of mediocre Mac software that are clearly repurposed iPad apps under the hood is just a by-product of Catalyst itself not being good enough or bad enough.

    Here’s what I mean.

    If all of the friction is removed and it was possible to build an iPad app that Catalyst can render on macOS with minimal code changes, full UX fidelity, and no compromises to standard desktop platform conventions – that would indeed be indistinguishable from magic and a god-send to the Mac’s dire need of developer attention.

    On the other hand, if porting an iPad app to the Mac with Catalyst was doable – but challenging. If it had a little too much friction. If it required serious effort and knowledge of the technical underpinnings of macOS. Then by that measure, any iPad apps that did get ported to Mac could only be done so by developers who understand macOS and the details that make it insanely great – either through experience or through effort.

    Instead, Catalyst, today, is somewhere in the middle. Not bad. Not great. It mainly “just works” with minimal effort in a way that is accessible to the larger pool of iOS developers. Apple succeeded with the goal Riccardo laid out. And we end up with apps that typically fall somewhere in between serviceable and usable – an uncanny valley of mish-mashed blah.

    Is it possible to build an insanely great Mac-assed Mac app with Catalyst? Yes, I absolutely believe it is. Are any developers putting in the extra effort to make that happen? If the products lining the shelves of the Mac App Store are any indication, it’s extraordinarily few of them.

    Update: March 6, 2022

    See this post for some half-assed followup.