2022.09.03.

2022.07.04.

Answering follow-up questions about the Process perspective

I linked yesterday’s post on the Process perspectives in a bunch of places and generated a bit more negative feedback than I expected. I was confused because I still think this is a cool trick to have in your toolbox. As “cornchip” said it on the MPU forums:

This is a nice tactic to add to the swiss army knife of tools needed to break up a stagnant list.

I see great questions emerging in the discussion around this trick, which I wanted to answer here to provide a bit more logic.

Should I replace this with the GTD Clarify and Organize step?

Don’t use a remixed version until you are confident that all the habits around GTD are wired into your brain. Afterward, you can use this perspective to enhance your existing inbox emptying habit progressively.

Do I have to tag everything that goes into OmniFocus?

No, but you can. There is a setting in OmniFocus called “Clean up inbox items which have” which controls when OmniFocus should remove items from your inbox on clean-up. Mine is set to projects; otherwise, the Process perspective won’t show actions grouped by project.

Kourosh mentioned that this could lead to untagged/unprocessed items leaking into the system from the inbox, which is technically accurate, but don’t forget if you use this trick:

  • a: the Process perspective always shows unprocessed items which you can clean up,
  • b: if you do Weekly Reviews properly, you should trust your system, but more importantly, you’ll review everything again and catch these items.

Do you still use the OmniFocus Inbox?

Yes. As I mentioned, this perspective is great for breaking down a long list of unknown stuff, but sometimes I straight use the Inbox because it’s easier.

Isn’t it an unnecessary step?

It depends. I wouldn’t call it “productivity p0rn” because it genuinely helps to clarify the unknown.

Imagine you have to clean up a messy kitchen. First, you start to pre-organize: collect the dishes, throw away junk into a trash bag, etc. Then, you wash the dishes, clean the kitchen table’s surface, and get the trash out; sooner than later, you end up with a clean kitchen.

We do the same thing here: we’re pre-organizing a long list of stuff, so we can make sense of how much cleaning we have to do, then we clean each item in context with their related entities. This way, we keep our attention a bit more focused and keep support material easily reachable (especially if you link associated things in the notes field of your projects).

The point is to reduce the unknown and add structure to the inbox processing habit. You don’t need to do this all the time, but after, let’s say, 20 unprocessed items, this can be a beneficial step.

Don’t you keep too much stuff in your OmniFocus Inbox?

As David Allen says, I keep everything in the inbox which is “potentially meaningful” to me. Maybe, in the end, I only save 10% and throw away 90%, but the point of using an inbox (and GTD, for the matter) is to empty our head, and keep it that way.

There is an excellent video about this topic from the Next Action Associates called “What’s The Difference Between An Input And An Inbox?“.

Why do you need access to projects when you process your inbox?

It’s simple. Because I have support materials linked to projects in their notes field. I need to access them via links (and Hook) to store future actions, notes, etc. Having a list of items grouped by projects lets me easily select the project in the list, invoke Hook, or click on the links in the notes.


I hope this post answers your questions about the Process perspective and makes you reconsider adding it to your OmniFocus toolbox.

2022.07.02.

Reduce context switches in the OmniFocus Inbox using a Process perspective

I watched a video from Cal Newport on how he uses a simple text file for the sense-making of a bunch of new information. He mentioned that instead of processing his emails one by one, he captures the essence of every email into his text file, then starts to categorize it, organize it by projects, etc. This gave me an idea about solving a similar problem I had with my GTD inbox for a while now.

GTD recommends that we process our stuff in the inbox sequentially, without grouping beforehand. The problem with this approach is that many items related to different projects are scattered in our inbox, so we’re jumping in and out of projects while processing our inbox. This constant context switching drains energy from our brain.

If we want to spare our attention, it is a good idea to group our unprocessed inbox items by project, so we can reduce the context switching when we process them. Using this approach for the GTD Process and Organize steps will ensure that we clean things related to each project in one go, not randomly.

I will show you how to do this inside OmniFocus, but you can also steal this approach for Things using a similar “Process” tag.

Why is this a problem?

The point is to add a temporary structure to information in the inbox. I usually do some form of project planning and next action creation when I’m emptying my inbox. The problem is that I constantly switch thoughts about many different things as I go through each item. It would be nice to have them batched and grouped by their project. This can reduce the attention switching to different topics/projects.

Let’s say we have an inbox like this:

  • Item 1 (could be about Project X)
  • Item 2 (could be about Project Y)
  • Item 3 (could be about Project Z)
  • Item 4 (could be about Project X) ← This is where I will have to return to “Project X” again. This item can even be connected to “Item 1” somehow.

I hate when I have to switch my current context (not my GTD context, but the current mindset that I’m in) and go back to a project I already thought about and assigned a next action to; possibly, I even closed its support material since then.

Having new information pre-organized by projects (or topics) can reduce the load of thinking about a project twice or more in an inbox processing session.

Using the Process workflow

  1. The first step is to create a new perspective in OmniFocus called Process with the rules shown on the screenshot above. You’ll use this perspective to process things instead of the standard OmniFocus Inbox.
  2. It’s essential to have everything corralled into the OmniFocus Inbox, so you can stop jumping around different inboxes, but more importantly, have everything pre-organized by the project. Go through your inboxes (email, Slack, DEVONthink, etc.) and link a new action to all unprocessed items in OmniFocus. The Hook app can help a lot with this step.
  3. Open the Process perspective, where you’ll see your unorganized stuff sitting in the Inbox waiting to be pre-organized. You must quickly go through each item and assign it to an existing or new project (don’t assign tags). You don’t have to come up with the final name for a new project. Set whatever comes to your mind; the important thing is to pre-organize unprocessed items in this step. If you don’t know where to assign it, just skip it, or move it into a singular action list related to an area.
  4. When you have pre-organized everything, you can click the clean-up button (or press Command-K) to see all of your unprocessed items grouped by project. Now you can go through each item and deal with them in the context of its project instead of having them all over the place.

Why having a pre-organized inbox is better than a flat list of unknown stuff

I always get annoyed when I deal with something related to a big project in my inbox, and then 5 minutes later, another thing pops into my view about the same subject. I have to open the project and its support material again, get into the same mindset, and maybe even reconsider everything I figured out 5 minutes ago. It is a dumb way to plan things.

I’ve been pre-organizing inbox actions by the project for about a month now, and I can assure you that having unprocessed stuff grouped by the project can make a big difference. I can process my OmniFocus Inbox about 15-20% faster than before, but more importantly, I don’t feel tired after doing it. I stopped switching contexts for every item; instead, I’m spending more time at the project level and dealing with new things from this perspective.


I wrote a follow-up post to this one answering reader questions about this workflow.

2022.02.23.

Archive Hook bookmarks with DEVONthink

I was in a Tinderbox Meetup last week, which was more about Hook than Tinderbox. I’m not a Tinderbox user, but I’m interested in how other people use their tools.

In the middle of the call, somebody had a question about Hook bookmarks. More specifically, can Hook archive its bookmarks as archive.org does with websites in general? Well there is no feature like that in Hook, and to be honest, doesn’t even need to be, because Hook has great Apple Script integration, so we can query bookmarks from its database.

In conjunction with DEVONthink, we can archive our bookmarks from Hook and save them as Pinboard does. I made a script for this a while back and it’s really helpful. It runs once a week, archives all websites from my Hook database into DEVONthink.

Setting up the script

First, download the script from here.

The scripts collect everything into one group in DEVONthink, so you have to create one where the archive can be stored. I would advise a new database even if you don’t have something similar already.

Open the script you downloaded. You’ll see two lines at the top of the file.

set webArchiveDatabaseUUID to "databaseUUID"
set hookedWebsitesGroupUUID to "groupdUUID"

You have to replace the databaseUUID and the groupdUUID part with the UUID of the database and group from DEVONthink. To do this, open DEVONthink, ⌃click on the database in the sidebar, and pick “Copy Item Link”.

Now, replace databaseUUID, with the link you copied. You’ll see something like this.

set webArchiveDatabaseUUID to "x-devonthink-item://CA3A9072-0650-4AF3-A608-1786F9D1A98D"
set hookedWebsitesGroupUUID to "groupdUUID"

Now, remove the x-devonthink-item:// part, so the top of the script should look like this.

set webArchiveDatabaseUUID to "CA3A9072-0650-4AF3-A608-1786F9D1A98D"
set hookedWebsitesGroupUUID to "groupdUUID"

Go back to DEVONthink and copy the group’s link from the same database (it is important to keep the group in the same database) by ⌃clicking on it and picking “Copy Item Link” again.

Replace groupdUUID with the copied link in the script again.

set webArchiveDatabaseUUID to "CA3A9072-0650-4AF3-A608-1786F9D1A98D"
set hookedWebsitesGroupUUID to "x-devonthink-item://B6C2C659-5682-45B5-8D59-107A641F8C2D"

Remove the x-devonthink-item:// part and then save your changes. The top of the script should look something like this now.

set webArchiveDatabaseUUID to "CA3A9072-0650-4AF3-A608-1786F9D1A98D"
set hookedWebsitesGroupUUID to "B6C2C659-5682-45B5-8D59-107A641F8C2D"

Now comes the fun part. You can run the script and DEVONthink will start downloading your Hook bookmarks into the group you choose.

The first run can take a while depending on the size of your Hook database. Subsequent runs should be faster since the script downloads only newly added bookmarks.

It is important to know that the script doesn’t sync Hook and DEVONthink, deleted bookmarks from Hook will still be present in DEVONthink.

Also good to know, if you want to archive sites behind a login, you have to sign-in in DEVONthink before you run the script.

Triggers

I keep this script in the ~/Libary/Scripts/Applications/DEVONthink 3 folder, so it’s available from the script menu in macOS – or in my case, from FastScripts. This way, you can run the script manually from DEVONthink.

You can even make it run automatically. If you use FastScripts, you can create a new DEVONthink reminder on the group you created to store Hook’s bookmarks and set it to run an Apple Script like this every week.

on performReminder(theRecord)
	tell application "FastScripts"
		set scriptItem to first script item whose name is "Archive Hook Bookmarks"
		tell scriptItem to invoke
	end tell
end performReminder

If you want to run it outside of DEVONthink, you can use for example Lingon, which makes it possible to run any Apple Script in the background daily, weekly, monthly, or whatever interval you want.

2022.01.24.

2022.01.16.

Refactoring my GTD system – part 5: the Mobile inbox

I’m using GTD for almost ten years now. I consider myself an advanced user, but I want to simplify my system, my tools and return to the basics to get better at the end. I started refactoring every aspect of my GTD system—digital and analog as well. This is a series about how I did it and why.


Paper is still with us, and we have to be prepared to keep it somewhere temporarily until we process it. GTD says that we have to keep a physical inbox at home and the office, but what about those times when I’m on the road?

The best way to manage incoming, paper-based material when away from my inbox is to keep a folder in my bag: it is my mobile inbox where I can collect stuff when I’m out for multiple days or going to a meeting where I expect to receive papers. I can park notes from my Capture Wallet, contracts, quotes, reference documents, invoices, contact cards, etc.

Following David Allen’s advice, my mobile inbox is a plastic manila folder. I use a plastic one because it’s more durable—a paper folder would quickly fall apart in my bag. I like the manila style because it’s easy to throw stuff into it, which is one of its disadvantages too: I have to be a bit more careful when I lift it because things can slip out.

For some reason, manila folders are not very popular in Europe. I couldn’t find plastic ones in A4 size, so I had to order a couple of them from Amazon. Smead is a US-based company that makes excellent quality manila folders, although these are letter-sized ones. In my opinion, the difference between letter size and A4 is negligible for a folder that I use to hold papers temporarily.

It is vital to treat the mobile inbox the same way as I do my other inboxes. When I arrive back at my desk, I unload the contents of my mobile inbox into my physical one for later processing. When I’m on the road, the folder is my physical inbox, so I process stuff directly from it.

2021.08.06.

Refactoring my GTD system – part 4: using Apple Watch as a safety net for capturing

I’m using GTD for almost ten years now. I consider myself an advanced user, but last December, I wanted to simplify my system, my tools and return to the basics to get better at the end. I started refactoring every aspect of my GTD system—digital and analog as well. This is a series about how I did it and why.


I already talked about the various capture tools I use in my GTD practice. I wanted to expand upon my Apple Watch usage a little bit more.

Since I have my Apple Watch with me (almost) all the time, it makes sense to use it as a secondary capture tool. I have two watch faces set up so that when my primary capture tools are not with me, I can still easily have a mechanism for capturing.

It’s best to use the Apple Watch for dictation or writing with its Scribble feature, but these methods are not made for lengthy talking/writing—although I never had a problem with that. I usually jot down or dictate a couple of quick thoughts here and there.

I use Drafts at night by capturing my notes with Scribble and Voice Memos for dictation when driving or walking. Each of these contexts has a corresponding watch face set up: a red Modular face with a Drafts complication used during the night, and an X-Large watch face which has a big, easy-to-tap Voice Memos icon in the middle for driving and walking.

I try to automate when these watch faces should show up. When my Apple Watch switches into sleep mode, Shortcuts changes my active watch face to the red Modular one. I also get a notification to change my watch face to the Voice Memos button when I leave home.

When I don’t have my phone or my notepad with me, the Apple Watch still can be used as a safety net for capturing. Like the old saying of “the best camera is the one that’s with you,” I can also say that the best capture tool is the one that’s with you.

2021.07.18.

Refactoring my GTD system – part 3: keeping capture tools everywhere

I’m using GTD for almost ten years now. I consider myself an advanced user, but last December, I wanted to simplify my system, my tools and return to the basics to get better at the end. I started refactoring every aspect of my GTD system—digital and analog as well. This is a series about how I did it and why.


I have to prepare because I’ll run into things through the day which has a potential meaning to capture either via writing or dictation. Therefore, I have to keep capture tools in those places where I frequently show up.

By default, my preferred ubiquitous capture tool is the Capture Wallet, but there are contexts where I can use tools that are more appropriate and convenient.

At my desk

I can take notes slower and easier at my desk, so I use a Baron Fig Confidant notebook. I use a journal format: each day gets a header, I keep everything in a list annotated via Patrick Rhone’s Dash Plus method. I can capture ideas, track my time using timestamps, write down what I did; sometimes, I even use it as a regular journal.

My Baron Fig Confidant is a versatile tool. Since it has pages with a dotted grid, I can use it for mind-mapping, diagramming, and wire-framing. I can keep the digital noise away by using an analog tool for thinking.

In the car

It’s essential to use a capture tool that is quick and doesn’t need much attention while I’m driving. I found that the easiest to use capture tool is my Apple Watch and the Voice Memos app.

I also keep a notepad here to capture ideas (sometimes even groceries lists). When I’m driving, I’m asking the person sitting next to me (usually my wife) to write stuff down for me. The notepad is shared, so my wife can capture her stuff as well. Since we’re frequently discussing agenda items in the car together—which always triggers new stuff to capture—it’s convenient to keep a shared notepad at hand.

In the bed at night

I can have ideas in the bed in three contexts:

  1. Before sleep, when the lights are still on, and we’re talking about something with my wife (or I’m reading).
  2. In the dark when I wake up in the middle of the night.
  3. In the morning when I’m reading.

I keep a small notepad next to the bed, which I use when the light is still on or in the morning. I wear my Apple Watch during sleep for sleep tracking, so it’s natural to take notes using Drafts digitally. I use the Scribble feature to write in the dark: usually, I capture no more than just a couple of words to remember the idea next time.

On rare occasions when something still bugs me, and I wake up because of it in the middle of the night, I have to grab my iPad to write down longer forms of thinking. Usually, I can sleep well after I captured what was on my mind, but it’s more important to capture these things during the day, so I can go to bed with a clear mind and sleep well.

Keeping a checklist of capture tools

I have a pretty extensive set of capture tools, and it can be dangerous if I forget to dump stuff I collected into my inbox. Before I start to process my inboxes, I go through a checklist of these tools to make sure I gathered everything into one place to continue to process them.

Habits are also essential to form: I do drop things into my inbox on my own from my more frequently used capture tools like my wallet or Drafts. But I still use a safety net in the form of a checklist, so nothing lays around unprocessed at the end.

2021.05.04.

Refactoring my GTD system – part 2: the Capture Wallet

I’m using GTD for almost ten years now. I consider myself an advanced user, but last December, I wanted to simplify my system, my tools and return to the basics to get better at the end. I started refactoring every aspect of my GTD system—digital and analog as well. This is a series about how I did it and why.


I like to use my iPhone as a capture device, but the elegance and simplicity of the David Allen Notetaker Wallet is something I wanted to explore for a while now. I prefer paper for capture and general note taking because:

  1. it doesn’t notify me about anything,
  2. it doesn’t have a battery,
  3. there is no way to multitask on paper,
  4. and it’s the classic example of tools that do one thing well.

You can’t buy the David Allen Notetaker Wallet anymore, but I found a good alternative called Capture Wallet which copied it almost as-is, but it’s a good thing. There are two versions: “Artisan” and “Business.” I use the latter one because it’s more minimal and also cheaper.


It is way more convenient to use perforated notepads for the GTD capture process because I can tear pages off. Each page contains one (maybe two) notes, which makes processing stuff easier—I can deal with one thing at a time, then throw it away. Because I regularly tear-off notes and drop them into my inbox, my notepads are always fresh and clean; I don’t carry around old stuff as I do with notebooks.

I still use my iPhone as a secondary capture device. I have Drafts installed (which I consider as the digital version of the Hipster PDA), so I can write things down when I don’t have my Capture Wallet around, although I prefer it over my phone.

2021.05.02.

Refactoring my GTD system – part 1: list managers are overcomplicating our systems

I’m using GTD for almost ten years now. I consider myself an advanced user, but last December, I wanted to simplify my system, my tools and return to the basics to get better at the end. I started refactoring every aspect of my GTD system—digital and analog as well. This is a series about how I did it and why.


The initial version of GTD is based on more straightforward tools than most digital list managers. It is essential to learn how to do GTD in the default way because each step and tool has a purpose; there are no unnecessary things. We’re doing something wrong if we can’t keep our GTD system up and running with just the tools and ideas mentioned in the book.

Avoid having a connection between projects and next actions

Many list managers connect projects with the next actions, but in the original GTD approach, there are no connections between them. Everything is on a different list. We’re the ones who connect everything when we do the Weekly Review.

Digital list managers connect only subsequent actions to projects; they skip calendar events, project plans, etc. We have to find these on our own, but doing it can be confusing. When we do the Weekly Review, we can be under the impression that all we have about a project is the next actions connected to it, forgetting other activities like events on our calendar. We have to get the pieces together of all the remaining stuff for ourselves. It is way easier if the software can connect everything to us, but there is no technology capable of doing this, so we have to find the logical connection between things. Having seen the entire picture is the only way we can relax our minds.

Connecting subsequent actions to projects can result in unnecessary steps when adding a new to-do. Using simple lists is straightforward: we add a new item, and we are done; on the other hand, having a connection between projects and next actions is meta-information, usually yet another field to fill, which makes adding things slower.

If we don’t expect to see the title of related projects in our next actions lists, we will be more considered about how to phrase our actions. It results in a more precise next action which we can imagine easier, thus doing it without much thinking later.

Having many features is distracting

Professional task managers have many features which have to be set up and maintained, which takes a lot of time. These features can be helpful, but GTD doesn’t need more than having simple lists. We can even do the right thing at the right time with GTD on paper where advanced features are absent.

Before we try to solve a problem with advanced tools, we have to consider using something simpler which can yield the same result. For example, we can use paper to think, but store the result of that thinking in digital tools. Having many features can distract us from work by fiddling with the tool. The importance of a project is not defined by the tool we’re using to administer it.

2016.11.26.

My Notebook System (part 3): Field Notes Pocket Notebook

There is a bit analogue cult going on nowadays. Lot of people are returning to paper based note taking. I get it, having a phone is great, but it is also a trap of lot of things: instantly forgetting why you took out your phone in the first place. Pocket memo books are returning and I'm really glad they are back. Finishing up the third instalment of my notebook usage series, I'm going to talk about how I use my pocket Field Notes.

I love GTD. It is the best way for me to get everything in control and lose the fear of forgetting something. I'm not going to write about how GTD works, David Allen has already did that, but I have to mention the steps of Capture and Process, since this is what I use my pocket notebook for. There are a lot of ways to capture things digitally, but those things are usually coming from external sources. I work as a web developer, so I have to deal with clients, bug reports, and emails every day. I need to have a frictionless way to capture those, and I have that in a form of Siri or Drafts. But what about my ideas, my internal noise, how's that gets captured?

This is where my pocket Field Notes comes into the picture. My EDC usually contains my phone, my watch, and my pocket notebook. I can capture things on my phone, which I do sometimes, but there is so much noise. I don't want to deal with that when I'm writing down a great idea. Those are the moments when I'm really glad that I've got into the habit of keeping a Field Notes memo book with me all the time. They are bringing back those times when a tool just did one thing. I'm fine without my phone for a while, but capture is critical. When something comes into my mind that I have to write down, I instantly grab my notebook.

I also have a big Steno at my desk, but I'm not carrying that around. My pocket notebook is basically with me for those moments when I not working at my desk. Sometimes I even just throw it out on the table while we are having a meal with my girlfriend. We usually eat together once a day, that's when we discuss about stuff to do. My Field Notes just sits on the table waiting for capturing stuff. I wouldn't do that with my iPhone.

At the end of the day I just open my Field Notes and go through each item I've written down. I usually just make lists starting with a dash, which later turns into a plus when it gets processed. I've stole this idea from Patrick Rhone's Dash/Plus which is a complete system for marking up lists. It's pretty great if you keep your task lists on paper. Everything in my Field Notes gets moved into my digital task manager. I define projects and next actions needed for the current item. If it's non actionable but I want to keep it, then I transfer it into Notes which contains my project support and reference material. When I'm done, I just convert the dash into a plus in my notebook. When I processed everything, I make a double line at the end which marks the current processing point. It means next time I will just deal with things coming after this line.

I usually use a Field Notes memo book for 3-4 weeks, depending on how much I travel. When I'm away, I fill them so much quicker, so I have a lot to spare. I also keep an empty one with me while I travel – you never know when your are going to run out of a Field Notes in the middle of writing down something great. It's also important to carry this memo book around with me all the time. There are a couple of items always in hand reach for me, and my pocket Field Notes is one of them. I even bring it with me when I go for a walk. I leave my phone at home, but my Field Notes and my Fisher Space is with me all the time to capture ideas.

These small memo books have really changed the way I write things down, and also how much mindful I am using my phone. Since I don't use it for capture anymore, I have a less chance to go down into the rabbit hole of distractions. I've started treating my devices as tools, not as something that controls me. Going back to paper was really successful for me. It is easy to use, peaceful and a natural way to express our ideas into external stuff, which can be transformed into the real thing.

2016.07.07.

My notebook system (part 1): Field Notes 56-Week Planner

I was one of those "paper is dead" guys. We all have some kind of mobile device with productivity apps installed on them, why would you use paper? Actually, my devices got me into using notebooks again. I spend so many time with screens. I'm a developer, so using my iPad for development made me a bit more aware about adding dedicated tools to my tool belt. Couple of months ago, I've read an article about carrying a pocket notebook which instantly made me want to have paper with me all the time.

Since then, I've tried so many Moleskines, but eventually I've settled with Field Notes. I love their quirky designs; their memo book looks like an everyday tool that I can tear apart. Currently, I use three Field Notes notebooks for different things. I like to have a specific placement of my work tools. My iPad Pro is centered. On the left side, I have a Field Notes 56-Week Planner: I use that as a daily planner and a calendar. On the right side, I have a Field Notes Steno used for todo lists, notes, and work journal. I also have a pocket sized notebook always with me used as an inbox to quickly capture ideas.

Problems with digital calendars

I've never owned a paper planner — I used those card sized yearly calendars years ago, but it wasn't anything like a full-fledged planner. Nowadays, I use Apple's Calendar app for time sensitive stuff like meetings and appointments, but I've also started carrying around a paper based planner from Field Notes. I've realized that there are things I just don't like about digital calendars (or Reminders or any other task management app).

I usually have a daily plan for things I want to touch on that day listed along with my meetings and appointments. It's a great map to have, but my digital calendar is not going to work for this type of workflow. When I add something to it, I have to specify not just a date, but hours and minutes too. To be honest, my work has a really small part that has anything to do with specific dates and times, so planning things like this doesn't makes sense to me. Sure, I have deadlines of projects, but those more like anchor points of priorities.

My digital calendar is also hidden in an app. I'm all for keeping important stuff digitally, but I also want to reach my calendar quickly. I can open my calendar app really fast, but I want it to be like "look down next to my iPad" fast. Having a paper planner always next to my iPad is exactly what I need.

Writing on paper also feels better than dragging stuff around on a timetable. Digitally stored events are long forms that I have to fill every time I add or change something. Sure, I can use Siri or Fantastical, but that still feels unnatural to me. Not to mention, Fantastical's natural language parser works only with new events. Start to edit existing stuff and you're thrown back to a form.

Going back to paper: Field Notes 56-Week Planner

About 2 months ago, I've started using a small Field Notes memo book as a daily planner. It was great, my only problem was it's size, so I ordered their 56-Week Planner (56 instead of 52 to have a buffer month to order a new one, maybe). It's been great since then. The Planner is bigger than a pocket notebook, it has thicker paper, and more pages. It gives me a weekly spread divided into six equal sections. The last section, representing weekends, divided once more for Saturday and Sunday. I have 7 days worth of space to add plans and events. Also, it has only 10 lines per day which protects me from overplannig my day.

My usage of the Planner is really simple. I review my schedule every morning. First, I look at my digital calendar which contains my hard landscape (I have to be at somewhere at a specific time). I like to keep these appointments in Calendar, because then my Watch pings me at the right time. I also transfer them into my Planner. Writing it down makes me more aware of them. Then I have my next actions list stored in Reminders, which I review and pick a few items that I also write down in my Planner. This way, I'm not setting false due dates for myself in Reminders which causes stress by constantly pinging me at different times through the day. And remember, I just have 10 lines to write for one day which limits me picking too much stuff. Interesting tidbit: I never use pens with my Planner since plans can change, so I use a pencil with an eraser.

I love to work this way. With my Field Notes Planner, I can have a whole-week view of my life. I can easily plan projects and next actions in advance without feeling stressed about notifications through the day. It's also really nice that I can rely on an single-purpose analog tool. Checking things off my Planner gives me the feeling of accomplishment, which is truly the first time since I use a productivity tool.

2016.05.26.

Using iPad Pro as a web developer

I've never thought I will have a need for an iPad Pro. Back in November when it got released, I was using a 12-inch MacBook, which is the best laptop for mobile development. It's light and thin, I don't feel it's weight in my bag, and it has a Retina display. I travel a lot, so portability is my main concern when I get a new device. My MacBook was great, but I've always wanted to use iOS as daily driver. I was already using my iOS devices way more then my MacBook, but my work was still revolved around OS X. iPad Pro was the first iPad which made me think about switching to an iOS based workflow.

Moving my development environment to the cloud

The main problem with an iPad based Rails development workflow is that you can't run code locally. You have to find a way to host and run your web apps on a server somewhere. There are services for cloud based development already like Nitrous.io or Cloud9, my problem with those is that they are usually a complete IDE running in the browser. I want to use native apps, so I just need SSH access to a server somewhere running my code and hosting my Git repos. Getting a VPS for this is way cheaper. Also, there are some advantages using a remote server for web development:

  • I don't have to worry about messing up my development environment. Since everything is hosted on a single purpose server and always backed up, I can broke and replace the client which I’m connecting from. It feels liberating when you've spent so much time on administrative tasks to keep your development environment up and running.
  • I can access my server from any device, even from my phone. I know, it's not the best device to use for coding, but for quick fixes and running administrative scripts it's great. I also use two iPad Pros (iPad Pro devices?) in different contexts for work, so I can switch between them easily.
  • I can show changes instantly to a client. Lets say, I'm in a Skype meeting and the client wants a quick design change. I can update the code in realtime and get instant feedback. I also had problems with deploying to our staging servers before. Now I can just send a link of an app running on my server to one of my colleagues and he/she can check out the changes I did and have the staging server fixed later.

The cheapest way to have your own hosted development environment is getting a VPS, configure it, and use it over SSH. Before my Mac mini, I used a box from Digital Ocean that I set up on my own. It's cheap and quick. You can create backup images to reuse later if something gets messed up. They also have a great community site which have everything you'll need to know about setting up a VPS for different needs. I can't recommend them enough.

The other way is using a Mac mini as a server. There are companies doing Mac mini colocation, you can send your own Mini or buy one from them. You'll get a dedicated line, fix IP address, and great support, but I have a pretty good connection at home. Also, colocating a Mini is a bit pricy for my needs, so it was obvious to have my old Mac mini running at home. I'd bought a domain, then configured OS X Server on it. I was already familiar with OS X, so setting up a server was easy with a dedicated app. I have the same development environment as before, but I connect to it from different devices. It also works well as a home server with iOS, since OS X Server has services like Caching Server, file sharing, or device management.

The Mini runs Rails code and keeps my Git repos. There's a couple of great Git clients for iOS, but they store files locally, so I'd have to sync changes back to the server. Too keep the storage of my repos simple, I use Git over SSH in the command line. It's fine for basic stuff. If I have to do something more advanced, I just login into my Mac with Screens and use Tower there. I'm also using screen sharing for testing stuff in a desktop environment.

The iPad basically connects to the Mini over SSH and acts as a client. iOS has gone really far in terms of an everyday system and I try to use it as much as possible for everything.

Coda as a text editor

Currently my main editor is Coda on iOS. I really like that I can save sites and Coda can quickly load them as different development environments. I usually have a Terminal tab open to interact with the Rails console or Git next to currently opened files. Coda was really buggy at first. It crashed a lot on syntax highlighting and opening big files. Since the latest update, I can finally use it for work, although, I still have some issues with it:

  • Rails generates a lot of files and opening them is really annoying without Quick Open. Coda can browse remote servers fine, but finding a file is lot of tapping around in folders after folders. I'd like to see some kind of global search over remote files, even from Terminal (that would be even better, since I'm spending so much time in the command line).
  • Removing white spaces automatically is now possible thanks to EditorConfig support, but it only works on local files. The functionality is already in Coda, I just don't understand why isn't this working with remote files? Also, it should be an option in Editing settings, not hidden in .editorconfig files.
  • Although, Coda uses the local/remote concept of files even on the Mac, I'd like to see a way to open external files from Document Providers. There is Textastic which can do that and it works great in conjunction with Transmit.
  • Custom theme support would be really great too. It has a couple of themes built in, but I miss Solarized Dark from OS X. Coda on the Mac supports custom theme files since the beginning, so adding it to the iOS version would be the next logical step.

Why would I choose iOS over OS X for development?

iOS is forming at the moment. It's in active development and I'd like to embrace this. There are things way better to do on iOS and what can I say? I'm interested in trying out new things and see where technology goes in the next 5 years, but mainly to eliminate my dependence of a desk and work everywhere.

Many apps I used on my Mac were old ones like vim or Logic Pro (I edit podcasts too). iOS doesn't have those apps or they exist in a different form. Every app I use feels like a fresh start. Even a complex app like Coda is simpler than it's Mac counterpart. This is due to the fact that iOS started on the phone which have had smaller, single purpose apps from the beginning. People like to think of this as a disadvantage of iOS on iPad, but in my opinion it’s quite the contrary. I like to use native stuff over web apps and iPad have those. For example look at Trello, it has a great web app, but their iOS app is just stellar. I can search cards and boards from Spotlight, I don't have to open Safari, type an address, and try to find my stuff. Native apps have always been faster and on iOS you mainly find those in use.

So, I don't have the same set of apps as I had on my Mac since the platform is so different, but it doesn't mean I don't have great ones. Even my workhorses like Coda, Transmit, Prompt, or Screens blows my mind sometimes. Also, there is OmniFocus, OmniGraffle, Drafts, Trello, Workflow, Ferrite, Ulysses, and Overcast. Developers of these have thrown off the desktop mentality and reimagined them on iOS. I'm using more apps on iOS for the same task, but they are optimized for mobile which is great. They are even on my phone too.

Also, I've never used an iPad with cellular connection since I've never felt a need for it. But it really changes the way I think about the device. I'm on the same route as Myke, using two iPad Pros for different things. My smaller one has LTE which has made me to bring it everywhere. Always on cellular connection and those new kind of apps have a big role in my work now. iOS is not a translation of a desktop OS into a mobile OS. Instead, it's a completely new thing, which means I can't work the same way as I did before. I have to adapt new things and change my workflows to use my iPad efficiently. It sounds scary, but I'll gain new insights into my way of working and learn to do stuff in a different way. This is the biggest advantage of using mobile devices for development.