Discover the incredible world of automation with Gabriel, a productivity guru and automation developer. With his expertise in programming languages like Haskell, JavaScript, and Python, Gabriel has revolutionized the way he manages his life and work using OmniFocus. By custom programming and automating tasks, Gabriel has unlocked a new level of efficiency, precision, and time-saving.
Whether it's creating hierarchies in OmniOutliner or seamlessly integrating with other apps, Gabriel's automation techniques are a game-changer. And he's not just about automation; he also shares valuable tips for beginners emphasizing the importance of not overcomplicating things and tailoring the system to individual needs. Join Gabriel on his journey to simplicity and productivity with OmniFocus.
Some other people, places, and things mentioned in this episode:
Andrew J. Mason: You are listening to the Omni Show where we connect with the amazing community surrounding the Omni Group's award-winning products. My name's Andrew J. Mason, and today we learn how Gabriel uses OmniFocus. Welcome, everybody, to this episode of the Omni Show. My name is Andrew J. Mason and I am really excited to be hanging out with you today. Thank you so much for joining us.
We've got a really interesting show today because today we're hanging out with Gabriel. I, actually, have just met Gabriel right now, but I know of him, and maybe you do too. Through the Omni Forums, he has been contributing for years and years and years under the handle unlocked2412, and he's been developing plugins and giving back to the community in all sorts of ways. So we are here today to hang out with Gabriel and learn about how he uses OmniFocus to stay productive. Gabriel, thank you so much for joining us today.
Gabriel: Thanks to you, Andrew, for having me.
Andrew J. Mason: Honestly, we are thrilled, and I also want to say thank you too for having this interview in English. I know you're not from the United States or North America, so thank you so much for sharing your story with all of us. No,
Gabriel: Thank you. Thank you. I'm not a native by any means, but thank you for appreciating it.
Andrew J. Mason: Absolutely. Yes, the honor is ours. I have to say, just from hearing a little bit of your story so far back and forth through email, I know that you live the sort of life that, were I to live it, would demand OmniFocus or something along those lines. So talk to us a little bit about where you are from, where you find yourself currently, and what you do day to day. Just give us a few paragraphs here.
Gabriel: Absolutely. I am Gabriel, as you said. I am a native of Buenos Aires, in Argentina, where I have spent most of my life. In essence, I am an automation developer. I started seven years ago doing automations, but in addition to that, I am a private tutor of programming languages to university students, in particular Haskell, JavaScript, and Python. On the math side, I also give classes about first-order logic and propositional logic. As a side note, I am just finishing my degree in classical music with a focus on classical guitar.
Andrew J. Mason: So just a few things going on. That is a lot, to be sure. Talk to me a little bit more about when did you first come across OmniFocus. So this is software that you've been using to run your life for quite some time, but tell me about, do you have a first step, a first time that you remember coming across the Omni Group or OmniFocus, or was it just a more general growing awareness of the company?
Gabriel: Absolutely. So I entered the productivity spectrum in 2013. I had many things to keep track of in my life, so I started researching apps and I used it a few over the years. In 2015, I found OmniFocus, but to my disappointment only for Mac. So I was a diehard Windows user at that time. I looked for an OmniFocus Windows version, no version. So I had to wait until I got my first Mac. In 2015 also, I was really interested about OmniFocus automation capabilities and the amazing scripts Rob Trew were doing. In 2016, I bought my first Mac, and the first step I bought was OmniFocus.
Andrew J. Mason: Man. Okay. So you know I love that story. That's fantastic. You might not have a typical day, but if you do have anything that resembles a typical day, can you walk us through what that looks like for you, just day-to-day, how you would spend your time?
Gabriel: I am a freelancer, both in the automation development side and in the teaching side. So my week and, also, my day is not fixed. I will structure the week with the work that is coming up and the students that appear. So I have a really flexible schedule, and OmniFocus helps to manage that because even though I don't have a fixed structure, I have to create one in order to flow, in order to move along. But in general, on the mornings, sometimes I have students, I save time for myself to continue studying to improve my knowledge of logic or programming side, keep up to date with recent APIs. On the afternoons, perhaps I work out like early afternoon. After that, I will work on the current projects I have pending on my OmniFocus database.
Andrew J. Mason: That is so cool. Thank you for sharing that. I think some of our more advanced users would probably be interested in hearing about your contribution to the scripting space. So it's well known that you have been giving back to the community for years and years, and there's some really cool plugins that you've developed. I think I've even installed a few that have to do with deferred dates and moving deadlines down through time. But talk to us a little bit more about what you do in scripting and just what shows up for you there.
Gabriel: Okay. So in 2017, like April or May, I started publishing in the Omni forums, and my first script had to do with publishing tasks with due dates to the Apple calendar. That's a funny story because a client just recently contacted me about that specific script I did six years ago, and he wanted a new version using the Omni Automation API interface, the new JavaScript automation. So it's incredible how things I post are still around. Another auto-automation that I really like is an agenda automation I have. So for example, I have an event tomorrow, I have to go to the doctor, but I have to remember some tasks associated with that event. So I have a script that shows me the next events for the next 15 days. In a dialogue, I can choose one, and then I have a dialogue to enter notes, and a task is going to be created 30 minutes before the actual event with all of those notes. So I have the event and, before, the notes.
Andrew J. Mason: That's so incredible to know how you can make the software something specifically that will scale with you and your behavior and automate in a way that really benefits over time and saves that time. You get the time back over periods of time. Talk to me about languages. What do you develop in? I know that Omni Automation is traditionally done in JavaScript, but you have kind of an alternate way to go about this.
Gabriel: Yes, absolutely. So my preferred and favorite language is called Haskell. Unfortunately, there's no Haskell APIs on Mac. We can use JavaScript for automation and AppleScript, but I think Haskell provides an excellent mindset for anyone who is starting out in the scripting world. So the functional programming paradigm doesn't use loops or variables like the imperative, and everything is an expression. There is no statements, no mutable changes, nothing. So for me, it allows me to be more creative to avoid errors because names don't change values, and I think my code is easier to maintain, easier to refactor, and as I said, it's a very good match to scripting. By the way, how can I use that paradigm in JavaScript? Because Rob Trew, an excellent scripter, created JavaScript functional libraries. So all of my scripts are created using the functional programming paradigm, those libraries in the JavaScript language. So I encourage anyone who is starting out, try. Try if that fits your mindset, I think it could well be a path for you.
Andrew J. Mason: Thank you for sharing that alternate way, because it sounds like it could be a great alternate entryway for somebody whose brain just doesn't necessarily work in that sequential way. I so appreciate it, and you hear a little bit of it with your attention to classical music and a lot of interdisciplinary things, but this excitement, this passion about automating things and solving this really complex problem once so that it stays solved thousands of times, so what is it in you that says, "I'm not just going to check the box. I'm not even just going to set up a repeating task. I'm going to custom program something that steps me through the process in an accelerated way that I don't have to think about it again"?
Gabriel: First of all, tailoring to my specific needs, that is one of the most important things automation can do, tailoring. So I feel confident doing this because I experienced fun while doing this, first of all, then I think I have learned so much from users requests and incorporating them into my own workflows, and I think being more efficient in my work. Automation saves me so much time using templates, for example. I have one automation. For example, I create an OmniOutliner outline, and I can automatically create a whole hierarchy in OmniFocus, but that is cross-platform, so I can use it on my iPad too because I'm using the new Omni Automation, and it's incredible how the apps switch and create automatically the whole hierarchy. So I think yes, efficiency saves time, and the last one, I can be more precise and remove errors because once I set up on a certain process and test it, I know that if I execute it 1,000 times, 1,000 times it's going to be correct.
Andrew J. Mason: This is so good, Gabriel, and I want to move to the other end of the spectrum as well. For somebody that's in a beginner, maybe you've talked to people before they see this program, "What is that?" "Oh, that's OmniFocus." And they're looking for those one or two first tips to get started that you know are going to benefit them if they listen or pay attention. What would you say is one of your go-to first tips to give somebody whenever they're first starting to engage with the software?
Gabriel: My first advice would be do not try to get everything perfect the first time. This is the number one advice. The system grows with the person. So as I learn more, the system adapts, and this enables us to work together with the system. So I think this is the first.
The second, I overused the inbox, for example, for dream projects, for everything, and I ended up, at the end of the day, with 50 inbox tasks and it wasn't manageable at all. So I now have two separate systems. I use Apple Notes for those kinds of random thoughts and OmniFocus for concrete, actionable tasks, that have a clear end. For example, sometimes I make mistakes and I move from Notes to OmniFocus, and vice versa. But I think having two separate systems, not getting everything the first time, not over-automating things that are not necessary. For example, these days I used to automate everything, but now I am on the conservative side. I wait until something inside me says, "Okay, I have done this a hundred times. This is now time to automate."
Andrew J. Mason: So still automating, but a lot more selective about what, when, and how much you automate. It really sounds like you found that simplicity on the other side of complexity and that journey that we all take about like, "Oh man, I could do this many things and it would be great." And then we're kind of trapped by the system we've created. And then on the other side, it's like, "Okay, let me reapproach this." But now with the awareness of what can happen when things get a little bit too overblown. We've talked about OmniFocus. You've also mentioned OmniOutliner. Talk to me about where these softwares, these programs sit in your overall workflow. What are the other software that you use when you're doing coding? I think people would love to hear what your tool belt is.
Gabriel: OmniFocus is for actionable tasks. OmniOutliner is for brainstorming and clarifying my head, but then I have several other apps like DEVONthink Pro for reference material. I have Keyboard Maestro. It's my hub for automation. Other outliners like Bike and Taskpaper, LaunchBar, and Alfred. In Alfred, I have done many automations to create OmniFocus tasks from Alfred, interconnecting Alfred and OmniFocus, and Keyboard Maestro just for everything. We can run JavaScript, Python, Shell scripts, Swift, AppleScript. So I have some automations. One of my favorite ones has to do with... Do you know Anki app? Anki, for learning flashcards? Okay, so I have an automation which creates Anki decks from an OmniOutliner outline. So I split apart a book. I use screenshots. I create an outline with screenshots. The topic of the row is the question, and the note of the row is the answer. Using the data class from Omni Automation, I'm able to encode and decode image data. Then I send that to Python, and with Python, I create Anki decks instantly. So that's one Keyboard Maestro, automation, where I interconnect Omni software and Anki, for example. But I have several apps alongside OmniFocus that serve other purposes, but the central point of my productivity is probably OmniFocus.
Andrew J. Mason: I love that you have a hand in both the coding world and the music world with your studies in classical music and guitar. It reminds me of Sal Soghoian. He said he was originally a jazz player before he got into any coding at all, and I'd love your take on what do the left brain, right brain... That's probably even the wrong way to frame it, but this interdisciplinary way of thinking about both worlds does one, this logic side, inform the other creative, and you're more creative because you have the logic behind it, or the other way around, you're able to be more logical because you've spent time in the creative space. Just talk to me a little bit about what happens in between those two spaces for you.
Gabriel: Yes. I have found that many people in my field also enjoy music, and classical music in particular. I think once I start getting in the flow of coding, I experience a similar flow, like I am playing the guitar, and there is much logic in the coding I do. I use the functional programming paradigm, that is a very logic-based paradigm of thinking, and the music also has logic and mathematics. Reading scores, the bars, the measures, time signatures has a certain structure. So I think the way we build programs, the structure has similarities with music, and the act of coding has similarities with the act of playing music, I think.
Andrew J. Mason: That is so cool, Gabriel. Talk to me about what have you tried in the past that maybe when you were first starting out, when you're first using OmniFocus, you thought was a really great idea, but then over time, as you used it, you either evolved beyond that space or realized it wasn't necessarily what you were looking for. Maybe it can be instructional for somebody else who's thinking about doing some of these same things, but is there anything that fits that space for you?
Gabriel: For me, from the start, I used many, many folders for areas. I separated my personal from work. I started creating what we can call invisible boundaries across every single life. Maintaining that system was impossible really. In the review, there was so much, and my someday maybe folder every time had more and more items. So what I ended up doing is separating routine from non-routine stuff. So now I have daily routines and weekly routines. I have templates and checklists, a folder for reusable stuff, and the rest goes to the top level. Don't even categorize anything if it's not inside the folder, let's say a normal project, because the moving and the dragging, impossible. No.
Andrew J. Mason: No, you can't do it. It's too much. I so appreciate all the contribution you've made to the Omni software community, just giving back and giving your brainpower to develop such cool plugins. So grateful for your time with us today. How can folks get in touch with you?
Gabriel: Absolutely. I have my website, unlocked2412.github.io. I am also, of course, on the Omni Forums by the same username, unlocked2412, on the Keyboard Maestro forums, where I have created a plugin for Haskell. Also in the DEVONthink forums, many internet forums, I am by the same username, and you can find me by the same handle on Twitter now called X and my email, gabriels8020@gmail.com.
Andrew J. Mason: That is excellent. Gabriel, thank you so much for your time with us today.
Gabriel: Thank you so much to you, Andrew. A pleasure.
Andrew J. Mason: Hey, and thank all of you for listening today too. You can find us on Mastodon at TheOmniShow@omnigroup.com. You can also find out everything that's happening with the Omni Group at omnigroup.com/blog.