2023.01.30.

2023.01.29.

Numbers can be used to store next actions and projects in a GTD system

I was thinking about making a more advanced GTD system in Numbers other than just using Reminders in macOS. This post lays out this idea in more detail.

First, create two tables for lists

We can store next actions of a GTD system in Apple Numbers by creating two tables for “Next Actions” and “Projects”.

  • The Projects list is just a list of projects with a completion checkbox, a title, and an optional due date field.
    • We could add optional notes or a project support field to link notes and other assets or link them using the title field.
  • The Next Actions list contains a completion checkbox, a title, a due date, a context, and an optional project field.
    • The context field can be a drop-down listing of all of our contexts.
    • The project field can be linked using a formula for the projects table title field.

Add groups for contexts

  • Grouping on the next actions table can be used to group next actions by context.
    • Contexts groupings can be folded, depending on where we are and what we want to see.
    • We can create sums for the number of next actions in a group.

Optionally, sync with Reminders

Writing an AppleScript for syncing with Reminders should be possible.

  • The script can create different Reminders lists for each context like Kinless GTD did for iCal back in the day.
  • The due date field should be assigned as a Reminders due date.
  • Next actions can be added to each Reminders list using the following format:
    • ✓ Next action title [Project Title]

Questions

  • Could it be possible to sync changes from Reminders back to Numbers using AppleScript?
  • How would we store task-related notes?
    • A new field can be long, but we can’t have fields under row without merging rows or columns.
  • What would be the benefit of this system other than just using a proper task management app like OmniFocus or Things?
    • I guess the reason is that Numbers is more flexible than Reminders and comes with every Mac.

2023.01.28.

2023.01.27.

2023.01.25.

2023.01.20.

I was thinking about installing a new Mastodon instance and creating a new account. Still, this blog is already capable of RSS and ActivityPub, so I’m not sure if I need the social aspect of yet another social network. I simply want to blog. It’s an easy to follow concept, and I have comments open if you want to leave a reply.

There is a way to follow me on Mastodon, though; you can do it by pasting the following handle into Mastodon’s search bar:

@zsbenke@decoding.io

Twitter Officially Bans All Third-Party Apps

Twitter today confirmed that it is no longer permitting third-party developers to create Twitter clients, with the information quietly shared in an updated developer agreement that was spotted by Engadget. A new clause under Restrictions says that developers are not able to “create a substitute or similar service or product to the Twitter Applications.”

The continued genius of Space Karen just impresses me.

This is the final nail in the coffin of Twitterrific and Tweetbot. These were great apps!

2023.01.16.

2023.01.11.

Re-reading 43folders.com

I recently started making read/review-related GTD projects to be more disciplined about consuming websites and books. I do this because I want to extract information from them and not just read and forget it.

The current one is 43folders.com, which is old, but still contains many valuable tips and tricks regarding Mac productivity. I’m unsure if there is anything like that today like the Mac blogging scene was from 2003-2008 – maybe MPU Talk — when everybody was obsessed with GTD, QuickSilver, Mac OS X, and productivity. Good times!

Anyway… I started to archive interesting articles linked on 43 Folders into DEVONthink. Sadly, many of those blogs are no longer around, but archive.org has them saved.

Screenshot 2023 01 11 at 11 46 54

2023.01.09.

Learn about how I use OmniFocus

I got a chance to talk on The Omni Show about how I use OmniFocus:

In this episode, we’re joined by Zsolt Benke, a developer from Pécs, Hungary. More than a decade ago, Zsolt started his coding life on the Web, designing and building WordPress sites. Now, he works in both web and iOS development. In his spare time, Zsolt enjoys blogging about productivity and technology, and co-hosting the podcast Agyvihar.

I think it has turned out to be a cool episode. I mentioned a couple of tricks and tips from my current system based on GTD. I hope you’ll like it!

2022.12.29.

Getting the URL of the selected note in Apple Notes

I figured out how to get the built-in Apple Notes URL for the selected note in Hookmark (or in any app that can run Apple Scripts), so I can replace the default Hookmark script, which is a bit cumbersome.

I have a detailed write-up about the script’s inner workings in the Hookmark forums. It can be helpful even if you don’t use Hookmark. You can modify the script to copy the URL to the clipboard.

2022.12.26.

Downloading YouTube videos with DEVONthink

  • How I download YouTube videos into DEVONthink automatically.

    • 1. While browsing YouTube or checking my subscriptions from Reeder, I can save videos to my Decoding playlist.

    • 2. By subscribing to the channel using its hidden RSS feed from DEVONthink, I can get saved videos into my Decoding database.

    • 3. DEVONthink watches this RSS feed via a smart rule and downloads videos using yt-dlp.

    • 4. The script saves videos into my inbox folder at ~/Library/Application Support/DEVONthink 3/Inbox, which automatically gets imported by DEVONthink.

    • 5. From here, I can organize downloaded videos, start watching them and take notes.

Tweaking workflows

  • I constantly tweak my workflows this time of the year. I usually provide tools for others—that’s what I do for a living—but I also have to keep my knives sharp.

  • This year I’m tweaking two things.

  • Take better notes while watching a video.

  • Moving my Zettelkasten over to Bike.

    • I like to think about my Zettelkasten being a large outline. Keeping it inside Bike could be beneficial.

      • I’m trying to mimic the analog Zettelkasten (or Antinet).

        • I won’t use an analog one since I like the digital one’s benefits better, but I also want ideas from the analog one.

        • I’m a programmer and I use my Zettelkasten to understand coding concepts. I have some code snippets stored in SnippetsLab, so it’s easier to link to those from my Zettelkasten outline than keeping them on paper.

      • I can use the classical Luhmann IDs to add an ID each note.

      • I can nest notes under each other.

        • I can easily link notes together thanks to the Bike and Hook integration.

    • Disadvantages

      • I don’t have backlinks, but I’m not sure I need that inside a Zettelkasten.

2022.12.24.

This is just a test to see if Brid.gy POSSE works from a client.

Sometimes I forget how superb Micro.blog is. I can interact with Mastodon users but can also post directly to my blog.

2022.12.23.

  • I added ActivityPub integration to the blog, so you can follow me via Mastodon (or any other similar application that uses ActivityPub) by searching for my profile (zsbenke@decoding.io) from your instance.

Blogging with Bike

  • I had this short post from a couple of years ago, where Dave Winer showed how he could blog from an outliner in a video. Basically, he edits an OPML file that gets synced to his blog—the website also looks like an outline.

  • I still like this outline-based blogging approach. It is so easy to change and publish. I wanted to have this for myself too.

  • Jesse Grosjean (the guy who did TaskPaper) recently released an outliner app called Bike, which I often use. Since Bike is just using HTML behind the scenes, it occurred to me that if I feed that into a Ruby script, I could create something similar to what Dave has.

  • So, I created two scripts.

    • One is called publish_from_bike.rb, which accepts a Bike file and pushes changes to my blog.

    • The other is a simple AppleScript which starts the Ruby part, saves post permalinks into the Bike outline, and does some general housekeeping.

  • I have a small system to publish from my blogging outline. I use the following format.

    • 2022-12-23

      • 10:40

        • Posts with a timestamp are a published.

      • DRAFT

        • I can create drafts by marking them as DRAFT (or IDEA).

      • SKIP

        • I can also add notes or just bullets which will be skipped with the publishing script.

  • Here’s a video in action.

  • Plans

    • I want to have a proper toggles for these outline type posts, like Bike does.

    • It would be nice to mark them with a custom icon, like my other post formats has.

    • I may release these scripts if there is a need and they are well tested.

2022.12.19.

2022.10.31.

2022.09.16.

2022.09.03.

Using Apple Reminders for GTD

The built-in tools of macOS are capable of serving a complete GTD system, making it possible to fully automate it without additional software.

These tools aren’t made for GTD per se, so we must strive to implement a simple system for ourselves. We have to focus on achieving goals using our GTD system, not perfectly organizing our stuff.

There aren’t many people who use macOS tools to their full potential. It happens probably because not many people can think in systems; they expect the tool to give them a system. macOS doesn’t provide you with systems. It is a general OS that needs to be bent to the GTD way of things.

The new features of Apple Reminders make it capable of replacing more serious task management apps. There is no better time to consider using Reminders as a free alternative to OmniFocus or Things.

I will show you how to set up Reminders for a GTD-inspired workflow in this post.


Creating two groups for our lists

We can create two types of lists in the Reminders app: traditional lists, which can be used for planning, and smart lists, which are best used for everyday work.

Traditional lists are simple containers where we can organize and store reminders. It’s similar to having a list of reminders written down on paper, but a digital reminder can do way more than its analog relative. It is essential to mention that we can indent reminders under each other on these lists, which we will use later.

Compared to this, smart lists can be updated automatically. They can sort and display reminders for us based on predefined parameters, which makes them the perfect candidate for creating context-based lists. There is no way to show a reminder with sub-tasks on a smart list. Fortunately, we don’t need to manage sub-tasks in a GTD system by default because every project should have concrete next actions. If you need a checklist for a next action, you can store that inside the reminder’s notes field.

To organize our lists appropriately, we have to create two groups that will split our lists by type.

  1. First, we have to create a “Planning” group that will organize our lists used for project-based planning.
  2. Second, we need to add another group called “Doing,” which will contain our context lists.

Using the “Planning” group

The “Planning” group represents one of the two horizons of GTD, where we see our next actions grouped by projects.

We will keep our traditional lists organized inside the “Planning” group so that each planning-related list will be in one place. It can help if you create separate lists for each of your responsibilities, like personal or work projects.

These lists will contain projects by keeping top-level reminders for every project, and then its next actions will be listed as a sub-task under the project’s reminder. By organizing content this way, we will connect projects to next actions.

Contexts will be assigned using tags, which is one of the new features of Reminders running macOS Monterey and iOS 15. If there aren’t any tags set on a reminder, we should consider it as a future next action, which we can’t do anything about immediately, but we want to avoid forgetting it. Keeping project plans in Reminders is fine for smaller projects, but for more significant projects/goals, we should keep our notes, possible next actions, plans, assets, and ideas in a separate app.

If we assign dates for these reminders, they will show up on the Today list on the day we set; also, we can keep track of upcoming reminders on the Scheduled list as their date is approaching, basically using this feature as a digital Tickler File.


Connecting next actions to projects

Lists inside the “Planning” and “Doing” groups are used to sort our next actions by project and context. I should mention some caveats though related to this list organization method.

  1. First, our events/appointments/meetings are still kept separately on our calendar, so we have to review them individually.
  2. Second, there is no logical difference between a project-related reminder and a next action-related reminder inside Reminders. If you are coming from a dedicated task management app like OmniFocus or Things, it can feel weird at first when we use the same type of reminder for projects and next actions as well.
  3. Third, relating next actions and projects can be challenging, resulting in more time spent on system administration than necessary (I write about this in more detail below).

Now, it’s time to talk about the nuances of the connection between projects and next actions. In the original GTD implementation, there is no connection between them; everything is on separate lists; we are the ones who logically connect these once a week during the Weekly Review.

Nowadays, task management apps are training us to see tasks listed directly under their project. But what about other types of next actions that we keep in other apps, like our calendar? We can only assign next actions to projects that we hold in our task management app; these apps don’t keep track of our calendar events. During Weekly Reviews, we can be under the impression that all we have to think about related to a project are the tasks listed under it, forgetting about other places like our calendar. We have to connect those to their corresponding projects manually in our head. It would be a better workflow to let the software handle these connections automatically; sadly, no such software exists yet, so we have to find the logical connection between things, so our minds can see the whole picture.

Connecting next actions to projects can also slow down inputting information into our system. In the classic GTD implementation, all we have to do to add a new item is append it to the appropriate context list. Suppose you want to keep track of the relationship between projects and next actions. Additional information will be needed—usually in a different form field—which slows down the input process. When the only thing that we have to fill in is the task’s name, we think more about how we should name it (knowing that we won’t see the project related to it). We will phrase more precise next actions, so we can imagine the physical activity better before we start doing it, which results in less procrastination, and more work being done without much thinking.

It is good to know (from the UI point of view) that Reminders won’t display the projects on context lists because—compared to OmniFocus and Things, where the project and the context are actual properties of the to-do—in Reminders, the project is just a structural connection (the parent of a reminder).

As you can see, connecting next actions to projects inside Reminders can be cumbersome because we have to set up a tree-like structure where next steps are nested under projects using drag-and-drop. When you have an Inbox list (which we will talk about later), you have to drag the reminder to the corresponding list inside “Planning,” then click on the list again in the sidebar, find the reminder, and drag it under its project. The last step can be done using keyboard shortcuts, but it is far from being as intuitive as assigning projects to next actions in OmniFocus or Things; people accustomed to these apps can feel like this step is a chore in Reminders which results in more time spent on system administration than necessary.


The tag

As I mentioned before, there is no difference between project reminders and next action reminders, so it’s a good idea to set the tag for reminders which are representing projects. You are right to ask: why is there a need for this tag when every next action is a sub-task of a project reminder defined as a parent?

First, not every next action is related to a project. You will create a bunch of singular to-dos which doesn’t need to be assigned to a project because they can be completed alone, for example, “refill paper in the printer,” “clean the desk,” “moan the grass,” etc. Since these reminders are not represented as sub-tasks, they will show up at the same level as projects, so it’s a good idea to differentiate these singular next actions from projects.

The second thing which can make the tag useful is highlighting orphaned projects. As we complete the five steps of GTD, we will end up with projects with no remaining next actions because (if we are lucky) we’ve completed the project, or (which happens more frequently) we forgot to capture a next step about the project. There is nothing wrong with that: this is why we keep the project list around, so we can remind ourselves to define next actions for every one of our goals. If our project reminders are marked with the tag, we can find orphaned projects more quickly in a long list; we don’t have to stop and think about if the reminder represents a project or a singular next action.


The Someday/Maybe list

The goal of the Someday/Maybe list is to have a place where we can collect things that we aren’t engaged in right now. This list can contain stuff that we’re are “cooking”: can be ideas, inactivated projects, dreams, goals that need to be achieved in the future, etc. We don’t think of them as “active” right now, but any one of them could be activated, “maybe someday.” We keep the Someday/Maybe list in the “Planning” group, so we’ll have a place to save these items later.

Here’s a good idea to integrate into your habits when a project becomes inactive: remove every tag of every reminder representing the inactive project and its next actions, then move these over to the Someday/Maybe list. This way, our project list is kept clean, so we will not think about outcomes that aren’t available right now; also, next actions from inactive projects will not show up on our contexts lists inside the “Doing“ group. We know that our context lists show only to-dos, which are actionable right now.

It is crucial to review the Someday/Maybe list from time to time (ideally weekly) since it can quickly turn into a dumping ground for random ideas, which we never review. If you use the Someday/Maybe list this way, you’ll become a compulsive collector: you capture things, but you throw them into a never-reviewed self, and in the end, you’ll end up with a lot of unused stuff.

According to GTD, your mind can’t let go of something until you give that thing the proper attention. We have to review our whole system habitually because that’s how our mind can relax and be sure that it will encounter information stored in an external system regularly.

When you introduce a new habit, you have to prove that you do it regularly. The only way to integrate a new behavior into your identity is to make your brain trust that it is done habitually (trusted system). When this happens, we change our identity and turn the habit into autopilot mode; our brain will rest and let go of the burden of reminding.

As you can see, you have to agree with yourself that the Someday/Maybe list needs the same attention and maintenance as the whole system so it doesn’t turn into a place of forgotten ideas.


Using the “Doing” group

We have to be in constant motion to gain back control. Rather than starting from stillness, it’s way easier to change the direction of something that already moves. One of the fundamental aspects of being in control is taking the appropriate next action at the right moment, which could propel you to the final goal.

You achieve change with a bunch of small steps, done consistently. It is similar when comparing the directions of two vectors starting from the same point. Over time, the endpoint of two vectors can get far from each other, even when you have a couple of degrees difference in their directions at the starting point.

Using next actions, we can slice and dice otherwise hard-to-do processes into smaller pieces, so over time, our life will be in a state where we can declare a project done. Because a next action is atomic, it has to formulate an actual physical activity.

If the meaning of an activity (tracked in an external system) is not apparent, then the brain has the burden of thinking about it again, which uses up a lot of unnecessary brainpower to figure out stuff you already figured out. You should be able to imagine any next action physically without thinking about it too much. You are more likely to complete a physical activity if you can imagine it in your head, which reduces the chance of procrastination.

When you start to do real work, next actions have to be obvious, so you can quickly scan through a list of tasks on a context list. The best thing to do is find similar steps, then do those in batches to avoid multitasking with many unrelated activities.

It’s easy to slice your work into different situations, like when you are at the office and want to accomplish something quickly or have a phone and 10 minutes to do one or two short calls. These situations are called contexts which we represent with tags in Reminders.

We mainly use smart lists inside the “Doing” group to filter reminders that have at least one context tag assigned (I also like to keep other lists inside the “Doing” group, like my Groceries list, which I share with my wife); we set tags up for every next action when we add them inside the “Planning” group. You can organize next actions via drag-and-drop as well: when you drag a reminder onto a smart list, Reminders will apply every tag from the smart list’s filter.

The goal of keeping context lists is to remember if you have a list for different situations. If you do, you can open it and review your possible next actions. You do this multiple times a day; every time, you have to ask yourself: what’s the next thing to do?


Reviewing the system

Using the “Doing” and “Planning” groups, you can sort your content by projects or contexts. This way, you can immediately review your system in any situation based on the nature of the work.

The “two horizons” based sorting is usually available in serious task management apps like OmniFocus, but with the system described here, you can have a similar setup with Reminders.

We discussed the importance of reviewing context lists in the previous section: we sort our next actions by context because we should see only tasks that we can pick in the current situation (considering the limits of the context). The classic example of situational limitations is when you sit on a plane, and you see “moan the lawn” on your “Home” list… well, you can’t do that since you’re on a plane.

Usually, there are two types of next actions on our context lists:

  1. Activity-based next actions, which can be done within the limits of the context. A descriptive next step can help you imagine how the activity will look when you do it.
  2. Verb-based next actions, where we are doing something about or something with the item that the reminder directly mentions. Usually, you can do these activities in one sitting, like utilities to pay, articles to read, receipts to organize, etc.

If we look at contexts, we can see natural and artificial contexts.

  • When you’re in a natural context, you automatically reach for the list at the right moment.
  • For artificial context, you need an external reminder to check the proper list (such a reminder can be your calendar, where you can create an event to check the context list; this way, you can block out a couple of hours to do just one type of work).

We use project-based sorting in planning mode to answer higher-level questions. Projects are adding directions to otherwise seemingly dumb processes. You can’t keep a process under control without a concrete project—a project is like a stake in the ground. During planning, you can get a project under control using the following process in your head (or for complex projects, using external tools such as mind maps and outlines):

  1. A brief description will automatically make you imagine a successful outcome for the project: try to phrase it in one sentence.
  2. By creating next actions, you slice the project into smaller, achievable pieces. If you do these next actions, your project will become a reality after a while.

Project planning can give you a direction, but it doesn’t mean you will accomplish your goal the way you planned.


Linking external assets

There are project-related assets like project plans, emails, and references which you may want to access quickly. Reminders is one of those Apple apps (next to Notes) which integrates with the “User Activity” system.

If an app supports Handoff, its content is probably linkable from Reminders. You can create such links in two ways:

  • You can open Siri and tell her to “Remind me about this.”
  • You can select any text in the source app, control-click on it, and share it with Reminders using its share extension. Some apps can share their content directly with Reminders.

Above that, we can link to content using URL schemes and deep links.

  • If we paste a link into a reminder’s notes field, it will turn into a clickable link.
  • Also, every reminder has a dedicated URL field that can contain web and application links. If you paste a link here, Reminders will show a small thumbnail under the reminder. You have to click on the link, and the resource will be loaded.

You are right to ask, what’s the point of connecting reminders with related assets? If you think about it, the asset is the noun, and the reminder is the verb which clears up what we should do about or with the noun. As you can see, the two go hand-in-hand, making our life easier by giving us a shortcut from the verb to the noun.

Writing down our thoughts on paper is the best way to untangle and give order to them. Paper has a tactile feel, and its freeform nature makes it a natural tool for this task. Digital tools are better at making information searchable; they can also store the results of our thinking, so we can naturally use them in conjunction with paper.

Knowledge is distributed between our mind and external tools supporting it. These tools can rely on our brain’s recognition capabilities to remind us of things; you can harvest this unique relationship between tools when you have to recollect a context, a project, an action, or any other project support material.

Supporting our minds with external tools gives us a shared system between the two, where the sum of the two results in knowledge. This way, you can use the best tool for the job: your mind to figure things out and external tools to store that knowledge.

As you can see, managing the connection between reminders and related support material can shorten the time between a thought and an accomplishment.


Setting up and using an optional Inbox list

We can’t let go of something until we pay attention to it. We need to have directed awareness, so we must write down potentially meaningful stuff floating around in our minds. GTD can help you with that, but you need to be mindful. Our brain constantly thinks about unclear stuff to indicate open loops: you must pay attention to that.

You have to collect (write down) ideas, have to’s, should to’s, anything that is potentially meaningful to you, then review and decide about what each item means, what you’re going to do about it (if anything), and finally pick where is the result of your thinking is going to be stored.

When everything is in its place, your brain can let go of this mess, relax and accept the current reality.

Almost every task management app includes a section for unprocessed items (called the Inbox), which makes the collection and processing GTD step easier; you can store things in your Inbox which are still uncleared. You can adapt something like this in Reminders, too, by creating a new list called Inbox. You can set this as the default list, so you can instantly start collecting things you haven’t decided about yet.

Using the Handoff integration mentioned in the previous section, you can add new items system-wide to Reminders similarly to other GTD apps. New reminders added via Siri and the Share Sheet will automatically appear on the Inbox list.

You can also use the Inbox list as a form of a temporary notepad to plan a project and its next actions. On this list, you can unpack a whole project with all related next steps, which can be dragged to their final places at the end.


Simple GTD

The workflow I introduced to you above is just one way to integrate GTD with the free Reminders app built into Apple’s platforms.

The point of GTD is to make sure that what you do at the moment is the right choice from your options, so your brain can focus on the current moment and stop worrying about the past and the future. We have to trust our system and use its list habitually.

When we’re reviewing our lists, we will trust that by storing the results of thinking in an external system, we will pick the right thing to do in the proper context—having a system that works like well-oiled machine guarantees that we will reach the goals that we picked for ourselves.