Ramblings from a Researcher-In-Training

Peer Reviewed

Posts tagged Productivity
What's Your "Best Practice Alert"?

Nebraska Medicine — the largest healthcare provider in the state of Nebraska, and the clinical partner of my university, UNMC — recently implemented changes in their electronic health record system to reduce the rate of opioid overdoses in our community. From the Omaha World Herald:

In August, the health system added an advisory to its patient records system, known as One Chart, that alerts health care providers ordering opioids for patients who meet certain criteria to also prescribe naloxone for them.

Naloxone is a rapid-rescue medication for opioid overdoses, blocking the receptors in the body that opioids typically bind to. By creating this automatic "flag" in the electronic health record whenever a physician enters an order opioids — the tiniest of automation additions to this workflow — Nebraska Medicine may well save hundreds of lives (emphasis mine):

Since the alert launched in August, the number of prescriptions for naloxone filled at the health system’s pharmacies has increased from 36 in the five months before the move to more than 1,290, said Dr. Alëna Balasanova, an addiction psychiatrist with Nebraska Medicine.

More than 200 Nebraskans died of drug overdoses in 2020, an increase of nearly 43% from the previous year, according to a report last summer from the federal Centers for Disease Control and Prevention.

Given that I work at UNMC and have set up a similar targeted alert in the electronic health record (called a "best-practice alert"), I can tell you how simple these tweaks are on the user's end. Usually, it's just a quick pop-up window triggered by certain criteria (in this case, an opioid prescription and the presence of certain respiratory risk factors) that alerts the clinician to a best practice. It's a pretty straightforward system with the potential for serious impact; even a single overdose death prevented with naloxone stemming from this best-practice alert would be well-worth the automation effort.

The same principles can be applied to our personal workflows (though of course with considerably lower stakes). Recurring reminders in Due, clever Shortcuts automations, elaborate smart home systems, or random encouragements from Affirmations — all of these "small" systems we build up around ourselves can have real impacts on our efficiency, our effectiveness, or just our happiness; "bulwarks against madness" erected over months and years. Not every procedural pop-up has to prevent something as serious as an opioid overdose; your "best practice alert" could simply be a morning reminder to take your medication or a "Left Behind" notification for your wallet tracker. My point in all of this being: none of these improvements are possible if you don't stop to ponder your system from time to time. Someone at Nebraska Medicine took a moment to evaluate their system, identified a 10-second tweak, and 36-times more naloxone is now being distributed to the community. Take a moment today to consider your systems, and ask yourself the question: "Where might a 'best practice alert' make my life better?"

A Shortcut for Generating Local Timestamps in Discord

I spend a lot of time in Discord — at this point, it is probably my most-used social media app. Part of this is certainly due to the fact that I help moderate the Relay FM Members Discord; a delightful and international gathering of like-minded nerds. Because of this diverse and widespread community (and the occasional live-streamed event therein), handling timezone conversion is a frequent occurrence; like sharing a keyboard group buy date or marking the next live podcast stream on your calendar. Luckily, Discord recently added Unix timestamp message formatting, which allows you to send a string that automatically displays the appropriate client-side time. So, instead of saying "Hey, the game is on August 20th at 12PM CDT" and everyone translating on their end, I can instead say "Hey, the game is on <t:1629478800>" and Discord natively parses that Unix timecode (wrapped appropriately) into the end-user's local time. It looks something like this:

A screenshot of a Discord conversation demonstrating the timestamp feature.
Using the Unix timecode for a date/time automatically displays the end-user’s local time — so Zach sees 1PM EDT!

But of course, who can convert human-readable time to Unix time (seconds since midnight UTC on January 1st, 1970) on the fly? I know I can't — but Siri Shortcuts sure can!


Is this article helpful? Consider saying thanks by buying me a coffee!
Buy me a coffeeBuy me a coffee

Generating Unix Time in Shortcuts

This sort of thing is exactly what Shortcuts is great at — taking otherwise-tedious but ostensibly-handy tasks and mostly removing the tedium. In this case, I made a Shortcut that can quickly generate the Unix timecode Discord needs to do its client-local-time magic. I started simple: I wanted a Shortcut to take the Current Date/Time, convert that to the Unix timecode, placing it in its home within the <t:[timecode]> format, and copying it to my clipboard. That only took three Shortcuts actions:

Screenshot of a simple Siri Shortcut to generate the Discord timecodes.
Starting simple is usually where I begin when making a new Shortcut — the fewest actions possible to get the result I’m looking for.

But of course, once the most basic form of a Shortcut was there, I got to thinking about improvements and edge cases. For starters, I also wanted to be able to pick something other than the current date and time — pretty straightforward change, I just swapped in a Choose Date action, which covers both Current Date and arbitrary dates quite nicely. Then I added in the ability to scan your clipboard for text containing a date — in the case where I might want to copy a message out of Discord and quickly convert the date in said message. Apple handily provides a Get Dates From Input action, which is usually smart enough to pick out dates and times from fairly lengthy strings of text (I think it’s the same system that detects dates in iMessages). A little bit of error handling, and some extra actions to automatically reopen Discord and give some helpful notification feedback, and the final shortcut for this simple Discord trick is ready!

Four screenshots of Shortcuts actions for the Discord Timestamp Generator shortcut.
A simple three-step shortcut can quickly turn into 37 actions, error handling, and decision trees!

Now, when I’m sharing an event in Discord (or reading about one), I can quickly convert the date & time of that event into a more useful format for everyone in the server with just a quick tap of a button.

Shortcuts And Systems: Start Simple, Then Sprawl

I wanted to write about this Siri Shortcut for an obscure Discord feature not so much because I think tons of people will find it useful, but more because it illustrates well how I typically end up using Shortcuts: I have a small “mosquito task” type of problem that I can solve in a few Shortcuts actions…but then I really solve it by taking the time to fully flesh-out the Shortcut. I start small, and then build out the tool to be more all-encompassing and hopefully anticipate the needs and problems of Future-Me. I find that I follow similar patterns in a lot of areas where I’m problem solving: find the “last step” of the solution, so to speak, and then build out a system around that “last step” to anticipate unforeseen circumstances. I think this sort of thinking can be helpful for people trying to create systems for themselves but don’t end up using them — sometimes, you need to take the time to make your system as appealing as possible for Future-You to actually get them to use the system you’ve built them.

The Perfect Tool Doesn't Exist

Brent Simmons with some tough task manager truth on Inessential.com:

There’s no perfect system for anybody. All of these apps are pretty good, and you may find one fits you better than another, but you’re not ever going to make it the perfect system for you. Even if you started from scratch and wrote your own, you’re not getting the perfect system.

He is, of course, absolutely right: OmniFocus, Todoist, TickTick, Things, Microsoft To Do, Reminders...name 50 more productivity systems and they will all share in common their infuriating imperfection. Luckily, none of us need perfection — what we ultimately need from our tools is for them to measurably assist in whatever work we are doing with an acceptable assortment of trade-offs. This stretches well-beyond task managers: I certainly don’t have the “perfect” table saw — in fact, I’m sure that such a saw doesn't exist! But the one I do have adequately addresses my needs (as they are now), but constantly requires me to work around its limitations.

That’s life in a nutshell: Imperfect people making imperfect things with many, many imperfect tools. The tools might improve, sure, and you might stumble upon a better one from time to time — but never the magic bullet. So stop chasing the dragon of the “perfect” task manager (or the “perfect” anything, really) and instead take a moment to be content with what’s working for you right now.

Reviewed: The El Gato Stream Deck

Everyone is always looking for a faster way to get something done — whether that be adding Siri Shortcuts to your workflow, third-party automation applications like Keyboard Maestro, or fancy macro pads with complex actions and keyboard shortcuts assigned to each key. Perhaps the most popular entrant in the world of customizable, quick-action macro pads is the Stream Deck from El Gato. As you might guess from its name, the Stream Deck is particularly ubiquitous among Twitch streamers for quickly switching between camera inputs or playing radio-show style soundboard clips; however, its 15 (or six or 32) LCD-backed buttons contain plentiful potential for everyday users as enablers of enhanced efficiency.

A photo of the Stream Deck.
My Stream Deck lives just above my mouse for easy access to all of my configured actions.

Colorful Shortcuts, Dead-Simple Setup

On the most basic level, the Stream Deck is grid of buttons that can be configured to trigger actions using El Gato's accompanying software; pre-installed actions range from common Twitch streaming tasks (starting a recording, soundboard actions, changing video sources) to actions that talk with your system (multimedia controls, Open-a-File, or just a simple hotkey). For instance, I have my Stream Deck set up to always show me a few multimedia controls: a Play/Pause toggle, Volume Down, Volume Up, and Next Track. Since my keyboard doesn't have built-in multimedia keys, I've added them to my Stream Deck so I can still quickly control Spotify while I'm working. Setting up one of the buttons as any generic keyboard shortcut is super easy: Just drag the Hotkey action to one of the squares in the Stream Deck software, record your desired hotkey, and give it a name. Just like that, you have a dedicated button that can instantly invoke Alt+F4 (Or ⌘Q for you Mac folks) to close the current program. Have a more advanced process that uses two hotkeys to switch between two "modes"? Use the built-in Hotkey Toggle action to record two hotkeys — one for each mode — and the Stream Deck will switch between them each time you press the button, displaying a different icon/image depending on the state of that button.

Speaking of images: The Stream Deck software makes setting a custom image for each of your physical buttons (or one button's toggle states) as easy as, well, finding the right image! El Gato has created a dedicated web tool that allows you to quickly create Stream Deck icons with a wide assortment of available glyphs and colors. Make yourself an aesthetic palette of hotkeys, launcher buttons for frequently-used applications with their logos, or a page of friends' faces where each button starts a Skype or Zoom call. What might seem like a pretty basic feature is actually the most distinguishing aspect of the Stream Deck; customizable images add a crucial layer of information to your hotkeys, and the ability to dynamically change those images based on a toggle state (or even self-updating background processes) turns a simple array of buttons into an interactive information dashboard. For example, I have a key that toggles the system-wide Mute state of my microphone; when the mic is "hot" the background is green, and when the mic is muted the background switches to black and the microphone icon gets crossed out. Though an incredibly simple button, always having a visual cue when my mic is live is an invaluable quality-of-life improvement.

Two screenshots of Stream Deck button settings, and Multi-Action setup.
Each Stream Deck action is customizable to an extent, from its icon to its functionality — and Multi-Action setup is very similar to creating a Siri Shortcut.

You can also designate individual keys on your Stream Deck as Folders or Multi-Actions — the former to help organize actions into separate "pages" on your Stream Deck, and the latter to chain multiple separate actions together behind the click of a single button. Both of these features can be super useful if they fit with your mental model for hotkey organization, or if you want single-click triggers for many individual tasks; that said, I don't personally use either in my Stream Deck setup — I much prefer taking advantage of a more automatic organization strategy.

Contextual Quick-Actions

The real magic of the Stream Deck is a bit buried in its settings pane in the form of Profiles. Profiles are basically saved Stream Deck configurations that you can switch between depending on your context. For instance, when you are transitioning from a day of work into a night of Twitch streaming, just swap to your “Streaming” profile and all of the buttons on your Stream Deck will change configurations. But, here’s the real gem: Each profile can be “matched” to a specific application on your computer, and will be automatically switched to when that application is in focus. What this means in practice is that you can configure app-specific Stream Deck configurations that surface your most-used shortcuts in different individual applications right when you need them.

A screenshot of the Stream Deck Profile editor settings.
Creating Profiles for your most-used applications allows your Stream Deck to intelligently present actions as you bounce between projects.

I have separate profiles configured for Outlook, Discord, iA Writer, Apex Legends, and Chrome, all presenting a number of useful quick actions I might need when using those application. My strategy is to duplicate the bottom row of Stream Deck keys across all of my profiles for actions I want accessible no matter what I am doing (like my Multimedia controls), and the top row of my Stream Deck is constantly changing depending on what app I am working in. In Outlook, I can quickly Archive messages or open a specific recurring calendar event I revisit often; in iA Writer I have a few esoteric text snippets (α, β, ⌘, and ) mapped to Stream Deck keys so I can stop copy/pasting them off of Google, and in Apex Legends I have a button that saves the last 10 minutes of game play to folder for particularly good clips I might want to share. Every time I change my computing context, my Stream Deck quickly flashes a set of readily-retrievable actions that will always be relevant to that specific context.

A .gif of various Stream Deck profiles and their changing key layouts.
App-specific Profiles on the Stream Deck allow you to create contextual dashboards that automatically appear right when they are needed.

I consider Profiles to be one of the best ways to use the Stream Deck because they allow you to pre-define what actions you find useful in a given application, and those actions will be automatically surfaced — complete with helpful visual icons and text. Many people swear by memorizing complex, claw-handed keyboard shortcuts to streamline tasks in various contexts, but I've never been able to fully wrap my head around any but the most basic of keyboard shortcuts (like copy & paste). The Stream Deck allows me to find out what shortcuts I am missing out on in a specific program and deliberately create a hotkey to activate that shortcut...without having to memorize each and every modifier key incantation. And when my workflow changes or if I discover a new useful shortcut, incorporating it into my everyday use is as easy as mapping it to an available key for that specific app's Stream Deck Profile. No memorization, no complex finger stretching — just the click of a clearly-labeled LCD button to trigger a simple (or complex) action with no fuss.

Plugins, Integrations, and Endless Possibilities

So far things are fairly straightforward: You can make a button do a thing, toggle between two things, or do many things, and you can have the buttons appear when specific applications are open. Easy enough, right? Well...it is if you stick to the pre-installed plugins that El Gato provides — but if you start to explore the library of third-party plugins in the built-in “store”, things can quickly get out of hand (in the best possible way). The complexity of these third-party plugins ranges from an unassuming stock ticker tracker that updates every minute with the new share price, to plugins written specifically to control certain smart home accessories via the Stream Deck, all the way to plugins like API Ninja that allow you to send HTTP requests to arbitrary web APIs even with complex JSON or XML payloads — you can even point the request to a local file as the source of the payload, and authenticate if need be. If you have the patience, you can create a handful of Stream Deck keys to fully control a service like Toggl using its web API in conjunction with API Ninja — the plugin even allows you to change the appearance of the Stream Deck key based on the API’s response to your request.

If the available third-party plugins don’t cover your needs, another option for more powerful Stream Deck integrations is the “Domino Strategy”: triggering a second piece of automation software with the push of a Stream Deck button. Keyboard Maestro is a good example; it natively supports individual Stream Deck keys as triggers for any of its actions, and it has many actions capable of automating a wide array of tasks on the Mac. Another (extremely advanced) option is Companion from BitFocus — a locally-hosted server that can translate your Stream Deck button-presses into complex interactions with a wide range of hardware and software platforms, other local server-based systems like Home Assistant, as well as generic HTTP requests, all while fostering an open-source development community for tackling other wacky and unique use cases.

Ultimately, a single Stream Deck button's potential is functionally limitless. Even if the most advanced plugins and integrations listed above somehow remain insufficient, you can always write your own plugin using the Stream Deck SDK or simply point a Stream Deck button at an executable Python script on your local machine that could do just about anything you want it to.

Bonus Round: Pro Tips

  1. Stabilize your Stream Deck: Order a sheet of adhesive micro-suction padding, and affix some small squares to the bottom of your Stream Deck. I've found that pushing the buttons can scooch the device further and further back on my desk even with its existing rubber feet. Now, with just a bit of micro-suction padding, my Stream Deck isn't going anywhere.
  2. Find an Icon Pack: Re-purpose any number of icon packs for iPhone home screens or artist sticker packs from Etsy as your Stream Deck key images. All of my Stream Deck images are from the Macstories Shortcuts Icon Pack, a set designed for Siri Shortcut Home Screen icons — making them a perfect fit for the similar-in-shape-and-purpose Stream Deck keys!
  3. Go Mobile: The El Gato Stream Deck iOS app has feature-parity with the hardware Stream Deck — in other words, you can control any and all Stream Deck actions wirelessly from your iPhone. The drawback is the $2.99/month subscription cost of the app, but is a good entry-point for folks unwilling to shell out the $150 for an actual Stream Deck (Personally: the satisfying click-clack of a physical button is what justifies the high price). And, as a bonus: It supports Siri Shortcuts, allowing you to trigger any individual Stream Deck key by summoning the voice assistant with a supported device!
Two screenshots of the El Gato Stream Deck app for iOS.
The Stream Deck iOS app can act as a remote control for your desktop Stream Deck, and even supports Siri Shortcuts.

First-Order Action Retrievability

It may seem strange to plug in an array of programmable buttons to a desktop PC with the inherent ability to trigger any action in software, especially considering many of the same actions can be triggered by the keyboard I am typing on now. However, I think the allure of the Stream Deck is the combination of its aesthetic polish (pretty and pleasant buttons are more-often-used buttons) and its removal of friction between the user and an abstract action or series of actions. The Stream Deck takes otherwise-intangible keyboard shortcuts and quick actions and displays them in my face as tempting tactile triggers; always there, eager to be clicked. The Stream Deck is an embodiment of the "first-order retrievability" philosophy — the thing that I want to do or the tool I need should be no more than one step, one click, or one tap away. Whether it saves me a a minute, a second, or no real time at all to use a Stream Deck button over some alternative, it saves me the mental energy of going past that first degree of action abstraction — and that mental energy saved is incalculable in value.

Reviewed: Dark Noise — a Simple, Beautiful Ambient Noise App for iOS

As ambient noise machines find their way into more corporate offices, retail spaces, and infant nurseries, ambient noise apps have also grown in popularity. Joining that list today is Dark Noise for iOS — an excellent ambient noise app developed by Charlie Chapman.

Why All The Noise?

Ambient noise machines and apps like Dark Noise have numerous uses and benefits. Some people find that they or their infants sleep better when playing ambient noise. Others, myself included, find that ambient noise helps them to focus on the task at hand, or remain productive in a noisy environment (for the nerdy: here is one of the many studies highlighting the cognitive benefits of ambient noise).

Dark Noise caters to these needs with a comprehensive list of over 30 sounds to choose from, and a simple UI that lets you pick a sound and get back to what you were doing — be it sleep or work. While beta testing Dark Noise, I have experienced first-hand the productivity benefits of ambient noise; Dark Noise has quickly become one of my most-used apps.

Integrations and Customizations

Although at its core Dark Noise is just a list of looping soundbites, it supports many useful features and integrations that satisfy the needs of power users as well. As you might expect, Dark Noise has an optional sleep timer with both countdown and fixed-time support, a Favorites feature to keep your most-used sounds easily accessible at the top of the list, and AirPlay support (with full AirPlay 2 support on the way).

Beyond the basics, Dark Noise also has a customizable widget that allows you to quickly start any noise from the Widget page (or perhaps the iPadOS home screen). In addition, each sound in Dark Noise has its own action in Siri Shortcuts, allowing you to integrate Dark Noise into any number of your Shortcuts routines. I myself have used the Shortcuts actions to incorporate Dark Noise into my simple Bedtime shortcut, kicking off ambient Campfire noises before I head to sleep.

Dark Noise’s sleep timer, an example Siri Shortcut using a Dark Noise action, and Dark Noise’s widget menu.
Sleep timers, Siri Shortcuts support, and a customizable Widget each add a useful way to interact with Dark Noise.

Not Just Nice on the Ears

A good ambient noise app has a quality selection of sounds to choose from — a great ambient noise app has a beautiful design to match. This is where Dark Noise distinguishes itself from many other apps in the category — the developer has invested so much time and care into the artful details of this app that you can't help but appreciate them. Dark Noise has eight custom Themes and 22 custom app icons (many of which are creative takes on some of my favorite podcasts' artwork), and the developer doesn't seem eager to stop adding new ones any time soon.

All eight of Dark Noise’s themes side-by-side
All eight of Dark Noise’s custom themes, with no signs from the developer that the list will stop growing.

However, it's the little things that I've appreciated most about Dark Noise's design. For example, when favoriting a sound the Favorite heart is filled with a subtle but whimsical animation. Each sound has a unique minimalist icon designed by Charlie himself — but by far my favorite details are the animations on the Now Playing screen. Each of the custom-designed icons also have custom animations that move almost rhythmically as the sound plays in your ears. I only wish iOS supported animated lock screen thumbnails so I wouldn't have to leave my phone unlocked to enjoy them.

Three Dark Noise icon animations on the Now Playing screen
Each sound icon has its own custom animation that pleasantly loops on the Now Playing screen.

Wishlist and Outro

I can't overstate how much I've enjoyed adding Dark Noise to my workflow (and sleepflow!), and I'm looking forward to some of my wishlist items making it into future releases. For example, an upload feature for adding my own sound files to the app would be a welcome addition. Folders and/or collapsible sound categories would also be a nice touch to clean up the main table view, especially as the list of out-of-the-box sounds naturally grows with each update. Perhaps my most wished-for feature are some spooky dungeon sounds to use as ambiance during D&D sessions — the moment I gave Dark Noise a try I knew it would be a killer addition to my Dungeon Master toolkit.

Dark Noise is a simple and elegant ambient noise app that strikes just the right balance between beauty and function. The developer has also done an excellent job at communicating with his beta testers and incorporating that feedback into the app — foreshadowing similar responsiveness as the app is pushed out to a public audience, which I find incredibly valuable. Dark Noise has been an incredible addition to my home screen, and has single-handedly refocused my attention on many pressing projects over the last few weeks — perhaps it could have the same effect on your productivity. Dark Noise is available today for $3.99 on the app store.

Due: An Excellent Reminder App for Students

Like most students, on any given day I have a long list of to-do items related to my coursework, research goals, and life in general. In the past, I have used the stock Reminders app on iOS for my many to-do items — but the problem I ran into was that I didn't actually complete the tasks after the reminder popped up. I found that I often read the notification and quickly went back to whatever activity I was doing at the time, completely disregarding the thing that I needed to do. That is, until I found Due.

Due's Distinguishing Feature

Due is a reminder app with a unique feature that sets it apart from its competition: persistent reminders. When you set up a reminder in Due, not only do you set the time you want to be reminded, but you also set up an Auto-Snooze time — the time interval you will be re-reminded of the task. In other words, Due reminders pester you until you acknowledge them in some way, either by actually marking the task as complete or snoozing it to a later time. This feature has significantly reduced the number of reminders I get a notification for but then immediately forget about on my lock screen.

A screenshot of Due’s repeated reminder notifications on the lock screen
Due’s key feature is that reminder notifications repeat until you snooze or complete them.

The nature of Due's pestering notifications means that I tend to use it for time-sensitive reminders or reminders for things I really don't want to do, and less for general tasks and events (which tend to wind up in Fantastical, my calendar app of choice). For example, I often use Due to remind me when an assignment for a class needs to be submitted online so I don't accidentally space it off — this has saved my bacon on more than one occasion! Full support for repeating reminders in Due also means that daily, weekly, or monthly reminders like taking my morning allergy pill or paying our rent don't slip through the cracks.

The Fine Details

Beyond its full support for typical functions like repeating reminders, Due also offers a wide variety of customizations and other useful features to its users. For example, Due uses natural language processing when creating reminders rather than relying entirely on date and time scroll wheels like many other apps. I have found that adding reminders with natural language processing is far faster and intuitive than scrolling through three different wheels to set a reminder for a specific time.

Due’s natural language parsing in action while creating a new reminder
Due’s natural language parsing allows for quickly creating a reminder via text alone

The Notification Snooze menu seen when tapping a Due notification can be customized to your heart's content, allowing you to set up multiple custom snooze durations as well as set times of day that the current reminder can be postponed to if needed. The Auto-Snooze duration (i.e. how long until each reminder pesters you again) can also be set for all newly created reminders, or manually adjusted for each reminder as you create them.

A screenshot of Due’s settings menu as well as the Notification Snooze menu
Due’s settings menu allows easy customization, while it’s notification snooze options allow for quickly triaging new reminders.

Due natively supports syncing its reminders via iCloud, and can also pull its list of reminders from specific lists within the native Reminders app. Lastly, custom sound effects, haptic feedback controls, and a Dark Mode toggle are excellent user experience options baked right into the app.

Final Thoughts

Overall, Due is an excellent iOS reminder app that can be finely tailored to your preferences, and uniquely solves the problem of ineffective reminder notifications. Since I started using Due, I've missed fewer deadlines, more consistently journaled at night, and less-often kicked myself for forgetting my allergy medicine in the morning. Due is the perfect reminder app for procrastinators and "space cadets" like myself who need a little extra prodding to actually do the things on our to-do list — I certainly would be far less productive without it. Due is $4.99 on the App Store.

Adapt Challenge #2: Writing and Publishing an Article Using Apple Notes

On episode two of Adapt, both Ryan and Federico had a challenge that they each had to report back on — Ryan had to use a third-party HomeKit app to control his smart home devices, and Federico had to write and publish an article entirely using Apple Notes. Given the fact that A. I do not have very many smart home devices, and B. the Apple Notes challenge seemed more interesting to me, I decided to only tackle that challenge for the purposes of this article.

To accomplish this challenge, I attempted to write and publish my recent review of the Microsoft Universal Foldable Keyboard entirely using Apple Notes. Here's how it went:

Manual Markdown's Mediocrity

Typically, I write my posts in Markdown using Ulysses — I find its minimalist interface combined with its live Markdown preview to be very useful when adding links or formatting to a post. Apple Notes, however, does not support Markdown in its text editor — you either need to write using rich text or enter the Markdown formatting manually in plain text in order to get the results you expect. For a moment, I considered writing the post using rich text (since I use Microsoft Office so often, this is just as natural for me), but ran into an issue fairly critical to writing a blog post: links. To my knowledge, there isn't an easy way to give a URL a title in Apple Notes — a non-starter in a medium that thrives on in-text links. So, manually typing out the Markdown was the way to go.

A screenshot of my Apple Notes workflow on my iPad Pro
Manually typing out Markdown syntax turned out to be easier than dealing with Rich Text while writing an article in Apple Notes.

Once I was set on manually typing out the Markdown syntax in Apple Notes, writing the article actually wasn't so bad. As it turns out, most text editors can handle most of the text-editing you throw at them. Yes, I did miss the live Markdown preview that Ulysses provides, but if you spend enough time commenting on Reddit you get pretty accustomed to looking at plain text Markdown and translating it. In addition, Federico was kind enough to provide a universal Preview Markdown Shortcut that takes anything written in plain-text Markdown and preview it with HTML in a pop-up web view. This gave me the option to at least check my work, in case I had misplaced a bracket or parenthesis while typing.

A screenshot of the Preview Markdown shortcut’s output on my iPad Pro
Using the Preview Markdown shortcut that Viticci shared allowed me to find small typos in my text — like the missing space after my Title header!

Using Apple Notes also didn't impact the way I embed images in my posts. I use a custom Shortcut to upload image(s) from my Cameral Roll, add alt text and a caption, and generate HTML text that ultimately displays the image on my website. This works just as well in any text editor, since what I insert is plain-text anyway.

Federico also mentioned an issue he ran into with the way Apple Notes deals with URLs — specifically, Apple Notes can show you a “card” of the URL rather than the plain text URL needed for Markdown links. I did not run into this problem while copy/pasting links into my Notes document. One theory I have is that this “card” view only occurs when you drag and drop URLs from an app into Apple Notes. I probably avoided it since I habitually tap the Safari URL bar to manually copy the text anyway.

Between a Rock and a Squarespace

Although I didn't have any problems writing the post itself in Apple Notes, the challenge dictates that I also have to publish from Apple Notes as well. Federico accomplished this using a Shortcut tied into his WordPress back-end — a logical approach, considering how well-integrated WordPress is with so much of the web. Unfortunately for me, Peer Reviewed is a Squarespace site, which significantly limits my options for automating a blog post. The only streamlined way to publish a blog post on a Squarespace site is using a bookmarklet they provide — which really just opens the typical blog post menu and doesn't help me publish from Apple Notes. So, this is where I failed this Adapt challenge. However, in the spirit of Adapt, I still published the article entirely on my iPad using the Squarespace app (which was significantly improved just in time for Safari on iPadOS to render it useless).

Screenshot of the Squarespace app’s menu for publishing blog posts on my iPad Pro
Publishing a post to Squarespace from their iOS app has significant limitations, but gets the job done.

Transferring my Markdown text from Apple Notes to Squarespace's Markdown editor was easy enough, but the settings menu for the post was lacking in features I've grown to expect on the desktop site. The post URL did not follow my site-wide URL format and had to be manually modified, and I was unable to add any Tags or Categories that didn't already exist in my list. Other than those gripes, the article did get published so at least the Squarespace app could manage that.

Adapt Challenge #2, Evaluated

Although I failed this Adapt challenge, it still got my wheels turning on improvements to my writing workflow (and my website hosting choices). I'm already pondering Shortcuts that might streamline the publishing process even more for future articles, and may do some write-ups on them another time. That being said, I'm already back to writing in Ulysses and relegating Apple Notes to grocery lists and "notes I might need in a year".

Reviewed: The Microsoft Universal Foldable Keyboard

Editor's note: At some point while writing this article, the Universal Foldable Keyboard has been removed from Microsoft's online store. I think they may have discontinued the product, though you can still find used ones online.

When you chose to replace your laptop with an iPad Pro, you are instantly faced with additional decisions to make and trade-offs to weigh. One such decision is what keyboard you plan to use with your iPad, and the trade-offs involved are many. Do you favor the slimness, portability, and feel of Apple's Smart Folio Keyboard? Do you prefer a more stationary yet more beautiful option like Matt Gemmell's favored WASD mechanical keyboards? Personally, part of why I enjoy using the iPad Pro as my primary device is its slimness and portability, which means those factors weigh heavily on my choice of keyboard. However, I can't stand the Smart Folio Keyboard. It's keys feel like mush to me, and the way the new design looks while folded — keys facing out for the world to see? Disgusting.

My current keyboard of choice is Microsoft's Universal Foldable Keyboard. I had never heard of this product until I saw a fellow student in a lecture hall using it with his iPad Pro, and immediately knew I had to give it a try. At the time, I was using Apple's Magic Keyboard as my daily driver, so I'll be primarily using that as a benchmark in this review.

Prioritizing Portability

As you might guess, the very fact that I am using a foldable keyboard means that I’m a big fan of compactness — and the Microsoft's Universal Foldable Keyboard really hits this mark. It takes up an incredibly small space for what unfolds to be a full-sized keyboard, all while compromising very little on overall quality of life. While folded, the Universal Foldable Keyboard is about the same thickness as the larger side of the Apple Magic Keyboard — but with half the footprint. In addition, this unique folding design also allows for a unique pairing system: Unlike the Magic Keyboard (which needs to be physically turned on and the keys mashed to pair), the Universal Foldable Keyboard is automatically powered-on and paired when you unfold it. The logic behind this is so obvious when you think about it, but the best comparison I have for this intuitive implementation is the same magic that AirPods have — the action of taking the device out automatically gets it ready for use.

The foldable keyboard’s thickness compared to the Apple Magic Keyboard’s thickness
The Universal Foldable Keyboard is about as thick as the Magic Keyboard when folded, but takes up half of the space.

The crucial design element that enables its compact form factor is a split keyboard layout. There is a physical gap between each half of the keyboard (between 6 and 7 on the number line) that creates a crease where the thin leatherette material can fold in half. This design choice significantly changes how you type while using the Universal Foldable Keyboard, and it really does take a while to get used to. When I first purchased the keyboard and gave it a test run, it felt like I was back in 2nd grade learning how to type using the home-row. However, after a few days of frustrating practice with the split layout, I was back to my usual typing speed.

Design and Build

Overall, the Microsoft Universal Keyboard has excellent build quality. The chicklet keys feel very much like the ones on Microsoft’s Surface Pro line, and even in this slim design have excellent key travel and tactile feel. The leatherette exterior lining of the keyboard is pleasant to the touch and claims to be “moisture resistant” (though I can’t say I have tested this myself). According to Microsoft, the battery should last three months of regular use, comparable to the Magic Keyboard's quoted battery life. Unfortunately, the Universal Portable Keyboard charges via MicroUSB, adding another cable to my every-day-carry.

Top-down view of the Microsoft Universal Foldable Keyboard
Microsoft’s Universal Foldable Keyboard includes media control keys and a toggle between two paired Bluetooth devices.

The keys themselves are full-sized, with very little spacing between them — habitual users of the Magic Keyboard might initially notice that the keys feel cramped in comparison, but I quickly got used to the tightly packed arrangement. As this is a universal keyboard, Microsoft includes an “Alt/Option” key, a “Fn/⌘ Cmd” key, and a toggle that allows you to indicate which operating system you are using (iOS, Android, or Windows) — which, importantly, impacts what keyboard shortcuts are recognized by the device you are using.

Of note, the Microsoft Universal Keyboard can be simultaneously paired with two devices at once via Bluetooth, and has hardware keys dedicated to toggling between each device. This is especially useful when multitasking with both my iPad and my iPhone — I can by writing an article in Ulysses on my iPad and quickly toggle the keyboard to my iPhone to respond to an iMessage conversation without lifting my hands from the keyboard. I could easily see many users pairing this keyboard to both a Mac/PC and an iPad to eliminate the need for two keyboards at a desk.

The keyboard also comes with hardware Home, Search, and Lock keys; though I typically use ⌘+H for Home and ⌘+Space for Search on my iOS devices. The Lock key aside, I would much rather this real estate be dedicated to what this keyboard is lacking, specifically a hardware Siri key (like the popular Brydge Keyboard has) and the “Eject” key found on Apple’s Magic Keyboard. I can hardly fault Microsoft for not integrating Siri directly into its universal keyboard, but I do sorely miss the Eject button when I am using the keyboard and want to quickly bring up a software keyboard like Yoink or the Emoji keyboard. Although Ctrl+Space does allows you to scroll through software keyboards on iOS, I’ve had mixed luck with this command actually ejecting the keyboard on the screen. My current solution (when I’m feeling lazy) is to use the Bluetooth device toggle to disconnect the keyboard from my iPad, resulting in the software keyboard ejecting as expected.

Final Comments

Overall, I’ve greatly enjoyed switching to the Microsoft Universal Foldable Keyboard as my go-to device for working on my iPad. The nature of my workflow means that portability carries a high premium, making the small size of this keyboard a huge win. What I enjoy most about the iPad Pro is its flexibility — in one moment it can be a glass slate for capturing ideas with the Apple Pencil, and in another it can be propped up with a folded Smart Folio and instantly paired with a keyboard I just slipped out of my bag. Although the Magic Keyboard allowed me to do this as well, the small reductions in friction allowed by the Universal Foldable Keyboard’s unique pairing strategy combined with being 50% the physical size makes it an easy winner, even in spite of my minor complaints.

Adapt Challenge #1: Third-Party iOS Keyboards

Over at MacStories, Federico Viticci and Ryan Christoffel have started a new podcast on RelayFM called Adapt — a podcast entirely dedicated to their love of the iPad. A key element of this new podcast are the "challenges" that the hosts give each other to stretch the boundaries of what they can do on iOS (iPadOS? This transition is going to be difficult). Since I also consider my iPad Pro my primary productivity device, I've decided to participate in the challenges presented on each new episode of Adapt. In episode one, Ryan challenges Federico to add a third-party iOS keyboard to his workflow, so I've done the same by trying out Yoink's third-party iOS keyboard for the first time.

Yoink is a clipboard manager/"shelf" app for iOS and the Mac that allows you to store snippets of text, URLs, images, and even files for easy access when you need them. Although the app itself is fully-featured and incredibly useful, I'll primarily be focusing on it's third-party keyboard integration in this article.

The Keyboard for All of Your Content

Yoink the app and the third-party keyboard both serve the same basic purpose: to deliver content you need to where you need it. If you frequently use a large snippet of text, you can store it in Yoink for easy access. If you're constantly sharing the same file with a team, toss it in Yoink and it'll always be handy. If you regularly send the same meme, well, you get the picture. Prior to using Yoink, I had never used a snippet manager of any kind (such as the ever-popular Text Expander) — but after using Yoink's third party software keyboard for a couple of weeks, I'll never be able to go back. Even though my current snippet collection is relatively small, Yoink and its software keyboard have already saved me enough time and energy to justify the one-time purchase price of $5.99.

My primary use-case for Yoink's software keyboard has been text snippets. As part of my work I have to access the same app on my iPad Pro upwards of 20 times a day, and due to the nature of the app, a specific URL needs to be entered every time (in addition to traditional login credentials). Although only about 25 characters long, typing in this URL is often the most tedious part of my day. Thanks to Yoink's software keyboard, this repetitive headache has been completely eliminated — now I can simply two-finger-tap the appropriate text snippet and the text field is auto-filled with the URL. Yoink also supports drag-and-drop on the iPad, but in most situations I find the two-finger tap to be faster.

Yoink drag-and-drop and two-finger tap
Quickly inserting a snippet into a text field is easy with drag-and-drop or a two-finger tap on iPad.

I also moderate a few subreddits, so sending canned responses using Yoink's software keyboard to common rule violations or lost Redditors has been a big time-saver as well. The snippets can be modified to include Markdown formatting as plain-text, which Reddit quickly translates into its "Snoodown" format — catching all of the URLs and subreddit links I want to include.

Yoink snippets in Apollo for Reddit
Using Yoink to quickly send canned responses on subreddits I moderate is another useful timesaver.

As I mentioned above, Yoink is definitely not limited to just text snippets — images, files, or any other attachments you can think of can just as easily be accessed from Yoink's software keyboard. Though I haven't found a file or image I send frequently enough to justify keeping it in Yoink, I ran a quick test with a picture of our dog. As expected, accessing the image was just as fast as using the Photos iMessage app, but without the need to find the image since it was already stored in Yoink. Just tap the image or file to copy, and paste it into the iMessage text field to send.

Using Yoink to send an image
Sending images and files with Yoink’s software keyboard is a breeze — just copy and paste.

Opportunities for Improvement

Although Yoink is already an incredibly feature-rich app, I have some suggestions for further improving its software keyboard. First and foremost: Please, for the love of God switch the position of the Device Switcher and the Keyboard Switcher ("Globe" icon) on the iPad — I still habitually tap the sample location to quickly switch between software keyboards, and this tiny difference ruins that process. Quite honestly, all software keyboards should be required to place the Keyboard Switcher icon in the same space to avoid this confusion. It's just the decent thing to do.

Second, a feature I found while searching the app store for other third party keyboard options was a system for postioning the cursor after a text snippet is inserted — for example, if the text snippet says:

The quick ** fox jumps over the lazy dog

it would be nice if Yoink could recognize the two asterisks and automatically place the cursor in between them and delete them from the snippet. This sort of "placeholder" text for the cursor would make some of my snippets even more useful, as currently I have to manually place the cursor in areas of the text that need individual customization after pasting. Obviously, the placeholder characters would need to be considered carefully to not break existing text snippets, but I think this feature has some serious potential.

Adapt Challenge #1, Evaluated

Although I didn't look much further than the show notes to find a software keyboard for the first Adapt Challenge, trying out Yoink was definitely worth my time. I am a little late to the game when it comes to using snippet manangers on iOS, but I think Yoink has just the right level of complexity for my needs. Although it lacks some of the features of more robust software (Text Expander again being the prime example), all I really need in my snippet manager is to quickly paste words into a text field. Yoink covers these needs quite well, despite my wishes for custom cursor placeholders to be added.

Since downloading Yoink for the purposes of this challenge, I've quickly adopted it into my workflow and often use it multiple times a day. Seamless storage and insertion of frequently-used text snippets makes Yoink an incredibly useful app for just about anyone using an iPad or iPhone to get things done.