[{"_path":"/a-brief-history-of-deck-of-pain-part-1","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"A Brief History of Deck of Pain (Part 1)","description":"TBD","excerpt":"lorem ipsum....","slug":"a-brief-history-of-deck-of-pain-part-1","date":"2022-08-03T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:a-brief-history-of-deck-of-pain-part-1.md","_source":"content","_file":"a-brief-history-of-deck-of-pain-part-1.md","_extension":"md"},{"_path":"/a-brief-history-of-deck-of-pain-part-2","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"A Brief History of Deck of Pain (Part 2)","description":"TBD","excerpt":"lorem ipsum....","slug":"a-brief-history-of-deck-of-pain-part-2","date":"2022-08-04T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:a-brief-history-of-deck-of-pain-part-2.md","_source":"content","_file":"a-brief-history-of-deck-of-pain-part-2.md","_extension":"md"},{"_path":"/a-brief-history-of-lead-dog","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"A Brief History of Lead Dog","description":"TBD","excerpt":"lorem ipsum....","slug":"a-brief-history-of-lead-dog","date":"2022-08-06T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:a-brief-history-of-lead-dog.md","_source":"content","_file":"a-brief-history-of-lead-dog.md","_extension":"md"},{"_path":"/bear-notes","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Bear","description":"I’ve always used a note taking app in some form in my workflow. I started with Evernote and later OneNote. I was introduced to Markdown when I rebuilt my blog using Jekyll and frequently found myself writing all my notes in markdown. OneNote doesn’t support markdown, enter Bear.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I’ve always used a note taking app in some form in my "},{"type":"element","tag":"a","props":{"href":"/my-workflow-with-wunderlist-and-onenote"},"children":[{"type":"text","value":"workflow"}]},{"type":"text","value":". I started with Evernote and later OneNote. I was introduced to "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Markdown"}]},{"type":"text","value":" when I rebuilt my blog using "},{"type":"element","tag":"a","props":{"href":"/hello-jekyll"},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":" and frequently found myself writing all my notes in markdown. OneNote doesn’t support markdown, enter "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I spend a lot of my time in my note-taking app, whether it’s writing blog posts, or jotting down something related to what I’m working on, or something to look up later."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My Criteria for a notes app:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Great writing experience"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Linking and Tagging"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Capture tool"}]}]},{"type":"element","tag":"h3","props":{"id":"best-writing-experience"},"children":[{"type":"text","value":"Best Writing Experience"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" is one of the best designed and polished apps I’ve ever seen. Visually it’s beautiful and clean, but more importantly, it’s fast and has never crashed on me or had any sort of issue that required troubleshooting."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I actually enjoy writing in "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" because the notes looks so great. It’s the motivator that I never thought I needed."}]},{"type":"element","tag":"h3","props":{"id":"focused-mode"},"children":[{"type":"text","value":"Focused Mode"}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"You cannot fix the perfection of a blank page."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"― Neil Gaiman"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Focused mode clears out all the navigation, tag and notes view and presents with just a blank note editor. Distraction free writing. The editing controls are tucked away to the bottom corner. Already familiar with markdown, I start writing and the formatting updates in real-time."}]},{"type":"element","tag":"h3","props":{"id":"organization"},"children":[{"type":"text","value":"Organization"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"OneNote was organized in a hierarchical style with "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Notebooks"}]},{"type":"text","value":" and "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Pages"}]},{"type":"text","value":", borrowed from my days of using Evernote. "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" doesn’t have multiple notebooks, every note is a top level note. I created a tagging system to provide hierarchy and help track down notes by topic. The search functionality has been proficient in finding any note that I needed."}]},{"type":"element","tag":"h3","props":{"id":"sync"},"children":[{"type":"text","value":"Sync"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My workflow is not just split across multiple apps, but also across multiple devices. Seamless syncing of notes between devices almost feels like magic. I often use the mobile app to capture thoughts and ideas and then work on the notes from my laptop."}]},{"type":"element","tag":"h3","props":{"id":"looking-ahead"},"children":[{"type":"text","value":"Looking Ahead"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Templates. "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" currently doesn’t support templates. As a work around, I have a pinned note that’s always at the top of the notes list that I duplicate. I’m hoping this feature makes it into one of the future updates."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The team is also at work on their next generation editor appropriately title "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Panda"}]},{"type":"text","value":". I've been following its updates and eagerly looking forward to using it one day."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"bear-notes","date":"2018-07-14T05:00:00.000Z","tags":["tech","bear","notes","writing"],"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I’ve always used a note taking app in some form in my "},{"type":"element","tag":"a","props":{"href":"/my-workflow-with-wunderlist-and-onenote"},"children":[{"type":"text","value":"workflow"}]},{"type":"text","value":". I started with Evernote and later OneNote. I was introduced to "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Markdown"}]},{"type":"text","value":" when I rebuilt my blog using "},{"type":"element","tag":"a","props":{"href":"/hello-jekyll"},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":" and frequently found myself writing all my notes in markdown. OneNote doesn’t support markdown, enter "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I spend a lot of my time in my note-taking app, whether it’s writing blog posts, or jotting down something related to what I’m working on, or something to look up later."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My Criteria for a notes app:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Great writing experience"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Linking and Tagging"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Capture tool"}]}]},{"type":"element","tag":"h3","props":{"id":"best-writing-experience"},"children":[{"type":"text","value":"Best Writing Experience"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" is one of the best designed and polished apps I’ve ever seen. Visually it’s beautiful and clean, but more importantly, it’s fast and has never crashed on me or had any sort of issue that required troubleshooting."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I actually enjoy writing in "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" because the notes looks so great. It’s the motivator that I never thought I needed."}]},{"type":"element","tag":"h3","props":{"id":"focused-mode"},"children":[{"type":"text","value":"Focused Mode"}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"You cannot fix the perfection of a blank page."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"― Neil Gaiman"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Focused mode clears out all the navigation, tag and notes view and presents with just a blank note editor. Distraction free writing. The editing controls are tucked away to the bottom corner. Already familiar with markdown, I start writing and the formatting updates in real-time."}]},{"type":"element","tag":"h3","props":{"id":"organization"},"children":[{"type":"text","value":"Organization"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"OneNote was organized in a hierarchical style with "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Notebooks"}]},{"type":"text","value":" and "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Pages"}]},{"type":"text","value":", borrowed from my days of using Evernote. "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" doesn’t have multiple notebooks, every note is a top level note. I created a tagging system to provide hierarchy and help track down notes by topic. The search functionality has been proficient in finding any note that I needed."}]},{"type":"element","tag":"h3","props":{"id":"sync"},"children":[{"type":"text","value":"Sync"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My workflow is not just split across multiple apps, but also across multiple devices. Seamless syncing of notes between devices almost feels like magic. I often use the mobile app to capture thoughts and ideas and then work on the notes from my laptop."}]},{"type":"element","tag":"h3","props":{"id":"looking-ahead"},"children":[{"type":"text","value":"Looking Ahead"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Templates. "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" currently doesn’t support templates. As a work around, I have a pinned note that’s always at the top of the notes list that I duplicate. I’m hoping this feature makes it into one of the future updates."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The team is also at work on their next generation editor appropriately title "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Panda"}]},{"type":"text","value":". I've been following its updates and eagerly looking forward to using it one day."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"best-writing-experience","depth":3,"text":"Best Writing Experience"},{"id":"focused-mode","depth":3,"text":"Focused Mode"},{"id":"organization","depth":3,"text":"Organization"},{"id":"sync","depth":3,"text":"Sync"},{"id":"looking-ahead","depth":3,"text":"Looking Ahead"}]}},"_type":"markdown","_id":"content:bear-notes.md","_source":"content","_file":"bear-notes.md","_extension":"md"},{"_path":"/code-as-craft","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Code as Craft","description":"TBD","excerpt":"lorem ipsum....","slug":"code-as-craft","date":"2022-07-25T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:code-as-craft.md","_source":"content","_file":"code-as-craft.md","_extension":"md"},{"_path":"/deck-stack","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Deck Stack","description":"TBD","excerpt":"lorem ipsum....","slug":"deck-stack","date":"2022-08-05T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:deck-stack.md","_source":"content","_file":"deck-stack.md","_extension":"md"},{"_path":"/hello-gatsby","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Hello Gatsby","description":"Update: I’m no longer using Gatsby. You can follow the journey here.","excerpt":"lorem ipsum....","slug":"hello-gatsby","date":"2022-07-28T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"mark","props":{},"children":[{"type":"text","value":"Update: I’m no longer using Gatsby. You can follow the journey "},{"type":"element","tag":"a","props":{"href":"/tags/hello"},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:hello-gatsby.md","_source":"content","_file":"hello-gatsby.md","_extension":"md"},{"_path":"/hello-ghost","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Hello Ghost","description":"Update: I’m no longer using Ghost. You can follow the journey here.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"mark","props":{},"children":[{"type":"text","value":"Update: I’m no longer using Ghost. You can follow the journey "},{"type":"element","tag":"a","props":{"href":"/tags/hello"},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The very first post of this blog started with how I ended up building a static blog using "},{"type":"element","tag":"a","props":{"href":"/hello-jekyll"},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":". While I enjoyed learning new tools and customizing my blog, it was also a lot of work. There were days when I wanted to publish a new post, but instead spent the entire time just updating "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":" and the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Heroku"}]},{"type":"text","value":" dynos."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I have since added "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"easy to maintain"}]},{"type":"text","value":" as one of the goals for the next version of the Blog."}]},{"type":"element","tag":"h3","props":{"id":"goals"},"children":[{"type":"text","value":"Goals"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Reduce friction for writing new posts"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Experiment with new web development frameworks"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Easy to maintain and upgrade"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I decide to try out "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Ghost"}]},{"type":"text","value":", a modern platform for writing and publishing blogs."}]},{"type":"element","tag":"h3","props":{"id":"development"},"children":[{"type":"text","value":"Development"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All of my posts were already written in "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Markdown"}]},{"type":"text","value":" and Ghost natively supports "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Markdown"}]},{"type":"text","value":", so moving my posts was quick and easy (not to mention I only had 3 posts)."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The default theme is nice and clean, with the option to customize it however you like. There’s also a marketplace for themes, some are available for free and some paid. I started with one of the free ones and modified it to get it just right for me."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The native app lets you write, preview and publish directly from your MacBook. It also allows you to speficy the appropriate metadata for the site and individual posts to help with "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"SEO"}]},{"type":"text","value":"."}]},{"type":"element","tag":"h3","props":{"id":"deployment"},"children":[{"type":"text","value":"Deployment"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I primarily worked on blog using the native app. This was definitely the most frictionless experience yet. The app included scheduling features so new posts could be published at a later time automatically."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Ghost platform is open-source, but I opted to use their managed hosting service rather than go through the hassle of running it on "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Heroku"}]},{"type":"text","value":" like I did with the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":" version."}]},{"type":"element","tag":"h3","props":{"id":"moving-forward"},"children":[{"type":"text","value":"Moving Forward"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Ghost"}]},{"type":"text","value":" platform has a lot of integrations with other services like analytics, subscriptions, etc. I haven’t tried them yet, but it’s nice to know I have that option with a simple click of a button and with minimal setup required."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"At the time of writing, the cheapest plan is $19/month billed annually or $29/month billed monthly. This is pretty expensive for a personal blog with no intention of monetizing. However, if this gets me writing more, it may be worth it."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Narrator: \"It did not\""}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"hello-ghost","date":"2016-07-13T05:00:00.000Z","tags":["blog","ghost","hello"],"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"mark","props":{},"children":[{"type":"text","value":"Update: I’m no longer using Ghost. You can follow the journey "},{"type":"element","tag":"a","props":{"href":"/tags/hello"},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The very first post of this blog started with how I ended up building a static blog using "},{"type":"element","tag":"a","props":{"href":"/hello-jekyll"},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":". While I enjoyed learning new tools and customizing my blog, it was also a lot of work. There were days when I wanted to publish a new post, but instead spent the entire time just updating "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":" and the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Heroku"}]},{"type":"text","value":" dynos."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I have since added "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"easy to maintain"}]},{"type":"text","value":" as one of the goals for the next version of the Blog."}]},{"type":"element","tag":"h3","props":{"id":"goals"},"children":[{"type":"text","value":"Goals"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Reduce friction for writing new posts"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Experiment with new web development frameworks"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Easy to maintain and upgrade"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I decide to try out "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Ghost"}]},{"type":"text","value":", a modern platform for writing and publishing blogs."}]},{"type":"element","tag":"h3","props":{"id":"development"},"children":[{"type":"text","value":"Development"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All of my posts were already written in "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Markdown"}]},{"type":"text","value":" and Ghost natively supports "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Markdown"}]},{"type":"text","value":", so moving my posts was quick and easy (not to mention I only had 3 posts)."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The default theme is nice and clean, with the option to customize it however you like. There’s also a marketplace for themes, some are available for free and some paid. I started with one of the free ones and modified it to get it just right for me."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The native app lets you write, preview and publish directly from your MacBook. It also allows you to speficy the appropriate metadata for the site and individual posts to help with "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"SEO"}]},{"type":"text","value":"."}]},{"type":"element","tag":"h3","props":{"id":"deployment"},"children":[{"type":"text","value":"Deployment"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I primarily worked on blog using the native app. This was definitely the most frictionless experience yet. The app included scheduling features so new posts could be published at a later time automatically."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Ghost platform is open-source, but I opted to use their managed hosting service rather than go through the hassle of running it on "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Heroku"}]},{"type":"text","value":" like I did with the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":" version."}]},{"type":"element","tag":"h3","props":{"id":"moving-forward"},"children":[{"type":"text","value":"Moving Forward"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Ghost"}]},{"type":"text","value":" platform has a lot of integrations with other services like analytics, subscriptions, etc. I haven’t tried them yet, but it’s nice to know I have that option with a simple click of a button and with minimal setup required."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"At the time of writing, the cheapest plan is $19/month billed annually or $29/month billed monthly. This is pretty expensive for a personal blog with no intention of monetizing. However, if this gets me writing more, it may be worth it."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Narrator: \"It did not\""}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"goals","depth":3,"text":"Goals"},{"id":"development","depth":3,"text":"Development"},{"id":"deployment","depth":3,"text":"Deployment"},{"id":"moving-forward","depth":3,"text":"Moving Forward"}]}},"_type":"markdown","_id":"content:hello-ghost.md","_source":"content","_file":"hello-ghost.md","_extension":"md"},{"_path":"/hello-jekyll","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Hello Jekyll","description":"Update: I’m no longer using Jekyll. You can follow the journey here.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"mark","props":{},"children":[{"type":"text","value":"Update: I’m no longer using Jekyll. You can follow the journey "},{"type":"element","tag":"a","props":{"href":"/tags/hello"},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I needed to develop my personal brand. I registered this domain many years ago simply because my name was available, with no real plans for what to do with it. Separately, I’ve tried writing blog posts on various blogging platforms but usually gave up after a few impassioned posts. I finally decided to establish my digital presence with a blog at my own site."}]},{"type":"element","tag":"h3","props":{"id":"goals"},"children":[{"type":"text","value":"Goals"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Reduce friction for writing new posts"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Experiment with new web development frameworks"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Second point first; My day job primarily involves working on mobile app development. The last website I built, involved writing a bunch of static html pages in Notepad and publishing them via FTP. New web frameworks were popping up daily and I didn’t want to get too far behind."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All my previous blogs failed because of the effort involved in working in someone else’s platform. I often spent more time fighting the platform trying to customize it. A system that allows me to focus on writing is the highest priority."}]},{"type":"element","tag":"h3","props":{"id":"development"},"children":[{"type":"text","value":"Development"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I tried Wordpress because I had heard that it allowed for an incredible amount of customizations. After a quick trial, the product was just overwhelming, designed for big publishing companies with multiple authors and a convoluted setup process."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Next I tried Tumblr. Mostly because it had a mobile app which I figured greatly reduce the friction in writing whenever and wherever I felt like it. While there were many themes to style your site, there’s not much you can customize beyond that."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"After briefly considering going back to Wordpress, I heard about "},{"type":"element","tag":"a","props":{"href":"http://jekyllrb.com/","rel":["nofollow"]},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":"."}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"“Jekyll is a simple, blog-aware, static site generator.”"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Jekyll takes plain-text blog posts formatted in "},{"type":"element","tag":"a","props":{"href":"http://daringfireball.net/projects/markdown/","rel":["nofollow"]},"children":[{"type":"text","value":"Markdown"}]},{"type":"text","value":", slaps on a template and generates a static web site."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I didn’t care enough to migrate my old blog posts, but I took a test a run at Markdown by writing this very post. The plain-text writing with the markdown syntax was legible and made it easy to visualize the structure."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I then took the time to build out the template for the entire site. My CSS skills were still a little rusty, but I got a decent design working and vowed to come back to it later once the site was up and running."}]},{"type":"element","tag":"h3","props":{"id":"deployment"},"children":[{"type":"text","value":"Deployment"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Working locally was pretty easy simple since Jekyll was generating static html files and I could view and navigate to all the pages directly in the browser."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I wanted to get past uploading html files directly to a folder on a hosting server. We had used "},{"type":"element","tag":"a","props":{"href":"http://heroku.com","rel":["nofollow"]},"children":[{"type":"text","value":"Heroku"}]},{"type":"text","value":" for a few projects at work. I was familiar with the process and was able to quickly push the website live."}]},{"type":"element","tag":"h3","props":{"id":"moving-forward"},"children":[{"type":"text","value":"Moving Forward"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"So I’m basically back to building static pages, but this is way cooler. Only thing left to do now is write!"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"hello-jekyll","date":"2014-10-24T05:00:00.000Z","tags":["blog","hello","jekyll"],"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"mark","props":{},"children":[{"type":"text","value":"Update: I’m no longer using Jekyll. You can follow the journey "},{"type":"element","tag":"a","props":{"href":"/tags/hello"},"children":[{"type":"text","value":"here"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I needed to develop my personal brand. I registered this domain many years ago simply because my name was available, with no real plans for what to do with it. Separately, I’ve tried writing blog posts on various blogging platforms but usually gave up after a few impassioned posts. I finally decided to establish my digital presence with a blog at my own site."}]},{"type":"element","tag":"h3","props":{"id":"goals"},"children":[{"type":"text","value":"Goals"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Reduce friction for writing new posts"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Experiment with new web development frameworks"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Second point first; My day job primarily involves working on mobile app development. The last website I built, involved writing a bunch of static html pages in Notepad and publishing them via FTP. New web frameworks were popping up daily and I didn’t want to get too far behind."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All my previous blogs failed because of the effort involved in working in someone else’s platform. I often spent more time fighting the platform trying to customize it. A system that allows me to focus on writing is the highest priority."}]},{"type":"element","tag":"h3","props":{"id":"development"},"children":[{"type":"text","value":"Development"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I tried Wordpress because I had heard that it allowed for an incredible amount of customizations. After a quick trial, the product was just overwhelming, designed for big publishing companies with multiple authors and a convoluted setup process."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Next I tried Tumblr. Mostly because it had a mobile app which I figured greatly reduce the friction in writing whenever and wherever I felt like it. While there were many themes to style your site, there’s not much you can customize beyond that."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"After briefly considering going back to Wordpress, I heard about "},{"type":"element","tag":"a","props":{"href":"http://jekyllrb.com/","rel":["nofollow"]},"children":[{"type":"text","value":"Jekyll"}]},{"type":"text","value":"."}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"“Jekyll is a simple, blog-aware, static site generator.”"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Jekyll takes plain-text blog posts formatted in "},{"type":"element","tag":"a","props":{"href":"http://daringfireball.net/projects/markdown/","rel":["nofollow"]},"children":[{"type":"text","value":"Markdown"}]},{"type":"text","value":", slaps on a template and generates a static web site."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I didn’t care enough to migrate my old blog posts, but I took a test a run at Markdown by writing this very post. The plain-text writing with the markdown syntax was legible and made it easy to visualize the structure."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I then took the time to build out the template for the entire site. My CSS skills were still a little rusty, but I got a decent design working and vowed to come back to it later once the site was up and running."}]},{"type":"element","tag":"h3","props":{"id":"deployment"},"children":[{"type":"text","value":"Deployment"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Working locally was pretty easy simple since Jekyll was generating static html files and I could view and navigate to all the pages directly in the browser."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I wanted to get past uploading html files directly to a folder on a hosting server. We had used "},{"type":"element","tag":"a","props":{"href":"http://heroku.com","rel":["nofollow"]},"children":[{"type":"text","value":"Heroku"}]},{"type":"text","value":" for a few projects at work. I was familiar with the process and was able to quickly push the website live."}]},{"type":"element","tag":"h3","props":{"id":"moving-forward"},"children":[{"type":"text","value":"Moving Forward"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"So I’m basically back to building static pages, but this is way cooler. Only thing left to do now is write!"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"goals","depth":3,"text":"Goals"},{"id":"development","depth":3,"text":"Development"},{"id":"deployment","depth":3,"text":"Deployment"},{"id":"moving-forward","depth":3,"text":"Moving Forward"}]}},"_type":"markdown","_id":"content:hello-jekyll.md","_source":"content","_file":"hello-jekyll.md","_extension":"md"},{"_path":"/hello-nuxt","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Hello Nuxt","description":"TBD","excerpt":"lorem ipsum....","slug":"hello-nuxt","date":"2022-08-01T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:hello-nuxt.md","_source":"content","_file":"hello-nuxt.md","_extension":"md"},{"_path":"/lead-dog-origin-story","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Lead Dog: Origin Story","description":"TBD","excerpt":"lorem ipsum....","slug":"lead-dog-origin-story","date":"2022-08-07T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:lead-dog-origin-story.md","_source":"content","_file":"lead-dog-origin-story.md","_extension":"md"},{"_path":"/lead-dog-progression","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Lead Dog: Progression","description":"TBD","excerpt":"lorem ipsum....","slug":"lead-dog-progression","date":"2022-08-08T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:lead-dog-progression.md","_source":"content","_file":"lead-dog-progression.md","_extension":"md"},{"_path":"/library-oriented-architecture","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Library Oriented Architecture","description":"TBD","excerpt":"lorem ipsum....","slug":"library-oriented-architecture","date":"2022-08-09T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:library-oriented-architecture.md","_source":"content","_file":"library-oriented-architecture.md","_extension":"md"},{"_path":"/linear-app","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Linear","description":"As my side-projects became more serious endeavors, I wanted to use a project management tool to both as a self-documenting history of the product roadmap, and provide a better overview of the state of the progress and milestones.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"As my side-projects became more serious endeavors, I wanted to use a project management tool to both as a self-documenting history of the product roadmap, and provide a better overview of the state of the progress and milestones."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I had seen developers mention "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Linear"}]},{"type":"text","value":" on Twitter while it was still in beta and saw it supported all of the features I was looking for in a project management tool."}]},{"type":"element","tag":"h3","props":{"id":"speed"},"children":[{"type":"text","value":"Speed"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The first thing I must mention is that the app is fast and has some of the smoothest interactions I’ve seen in both the web app and the Mac app. The developers really went out of their way to get this right. 👏🏽"}]},{"type":"element","tag":"h3","props":{"id":"github-integration"},"children":[{"type":"text","value":"Github Integration"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The integration with Github works in both directions. Issue details are included in the PRs and PR automations automatically move issues to the next step in the workflow."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I use the following workflow in Linear:\n"},{"type":"element","tag":"img","props":{"alt":"Linear Workflow","src":"/assets/images/img-linear-workflow.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"And PR automation:\n"},{"type":"element","tag":"img","props":{"alt":"Linear PR Automation","src":"/assets/images/img-linear-automation.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"You’ll notice that opening the PR moves it to the In Progress status. I like creating a PR with an empty commit and try to document my thought process as I build out the feature rather than create the PR after the work is completed. I not only have the final implementation, but also a historical record of what didn’t work."}]},{"type":"element","tag":"h3","props":{"id":"teams"},"children":[{"type":"text","value":"Teams"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I’m the only developer on my own apps and work on all the issues, but I still like to split the Issues between different teams e.g. backend, iOS, web, etc. This is reminiscent of the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"contexts"}]},{"type":"text","value":" from the GTD system, keeps the focus on the platform I’m working on."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I literally put on different hats when I switch context."}]},{"type":"element","tag":"h3","props":{"id":"issues"},"children":[{"type":"text","value":"Issues"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Linear is essentially built around "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":". Other apps might refer to them as tasks, user stories, etc. I view these as individual units of work, and once again borrowing from GTD, they must be completable and have a definition of done."}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Too often, I’ve seen issues like “accessibility” or “look into syncing.” These are vague, with no clear information on how to complete them and will typically live in the backlog forever."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In addition to a title and description, "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":" have all the attributes a developer would expect:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Status"}]},{"type":"text","value":": From the workflow above, e.g. In Progress, Done, etc."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Priority"}]},{"type":"text","value":": Urgent, High, Medium, Low or None."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Estimate"}]},{"type":"text","value":": I prefer to use the Fibonacci sequence e.g. 1, 2, 3, 5, 8."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Labels"}]},{"type":"text","value":": I use Bug, Chore, Feature, Improvement."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"There are a few attributes ("},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"cycle"}]},{"type":"text","value":", "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"due date"}]},{"type":"text","value":", "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"assignee"}]},{"type":"text","value":") that I don’t use. More on that later…"}]},{"type":"element","tag":"h3","props":{"id":"projects"},"children":[{"type":"text","value":"Projects"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Every "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Issue"}]},{"type":"text","value":" belongs in a "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Project"}]},{"type":"text","value":". I reuse the same concept from GTD again, a project is a just a collection of completable tasks. Any feature that is more than one step is a project."}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In fact, the projects in Linear have matching projects in my "},{"type":"element","tag":"a","props":{"href":"/bear-notes"},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" notes app. I don’t create a project in Linear until I’ve fully thought out how a feature will work, which will then guide the Issues I create."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"When a project is completed, I review the comments in the PRs to update the notes in "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":"."}]},{"type":"element","tag":"h3","props":{"id":"milestones"},"children":[{"type":"text","value":"Milestones"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I use "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"milestones"}]},{"type":"text","value":" to get a high level view of all the projects in the roadmap across all the teams. As a sports team management app, "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Lead Dog"}]},{"type":"text","value":" natively uses the concept of ”seasons,” so my milestones for "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Lead Dog"}]},{"type":"text","value":" are also seasons e.g. Spring, Summer, Fall and Winter."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Deck of Pain"}]},{"type":"text","value":" doesn’t have a similar concept so I simply went with Q1, Q2, Q3 and Q4."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Linear Milestones","src":"/assets/images/img-linear-milestone.png"},"children":[]}]},{"type":"element","tag":"h3","props":{"id":"cycles-due-dates-assignees"},"children":[{"type":"text","value":"Cycles, Due Dates, Assignees"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Linear offers a feature called "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Cycles"}]},{"type":"text","value":" which allows you to plan your sprints. I initially enabled it, so I could track progress and also see the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"velocity"}]},{"type":"text","value":" and see how many points I complete in a cycle. However, these are my own apps and occasionally I get busy with other things. It is pretty demotivating to see multiple “empty cycles.” For this reason, I disabled cycles for all my projects."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Same for "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"due dates"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I also hide the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"assignee"}]},{"type":"text","value":" attribute since it’s always just me, so I don’t need to see it every time."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The only real “time” marker I have are the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"milestones"}]},{"type":"text","value":" which usually correlate to some sort of marketing effort."}]},{"type":"element","tag":"h3","props":{"id":"looking-ahead"},"children":[{"type":"text","value":"Looking Ahead"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Currently there is no native mobile app. As I mentioned earlier, their web app is insanely fast and performant, but I’d still prefer a native experience."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"linear-app","date":"2021-02-25T05:00:00.000Z","tags":["tech","linear","project management"],"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"As my side-projects became more serious endeavors, I wanted to use a project management tool to both as a self-documenting history of the product roadmap, and provide a better overview of the state of the progress and milestones."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I had seen developers mention "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Linear"}]},{"type":"text","value":" on Twitter while it was still in beta and saw it supported all of the features I was looking for in a project management tool."}]},{"type":"element","tag":"h3","props":{"id":"speed"},"children":[{"type":"text","value":"Speed"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The first thing I must mention is that the app is fast and has some of the smoothest interactions I’ve seen in both the web app and the Mac app. The developers really went out of their way to get this right. 👏🏽"}]},{"type":"element","tag":"h3","props":{"id":"github-integration"},"children":[{"type":"text","value":"Github Integration"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The integration with Github works in both directions. Issue details are included in the PRs and PR automations automatically move issues to the next step in the workflow."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I use the following workflow in Linear:\n"},{"type":"element","tag":"img","props":{"alt":"Linear Workflow","src":"/assets/images/img-linear-workflow.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"And PR automation:\n"},{"type":"element","tag":"img","props":{"alt":"Linear PR Automation","src":"/assets/images/img-linear-automation.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"You’ll notice that opening the PR moves it to the In Progress status. I like creating a PR with an empty commit and try to document my thought process as I build out the feature rather than create the PR after the work is completed. I not only have the final implementation, but also a historical record of what didn’t work."}]},{"type":"element","tag":"h3","props":{"id":"teams"},"children":[{"type":"text","value":"Teams"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I’m the only developer on my own apps and work on all the issues, but I still like to split the Issues between different teams e.g. backend, iOS, web, etc. This is reminiscent of the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"contexts"}]},{"type":"text","value":" from the GTD system, keeps the focus on the platform I’m working on."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I literally put on different hats when I switch context."}]},{"type":"element","tag":"h3","props":{"id":"issues"},"children":[{"type":"text","value":"Issues"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Linear is essentially built around "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":". Other apps might refer to them as tasks, user stories, etc. I view these as individual units of work, and once again borrowing from GTD, they must be completable and have a definition of done."}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Too often, I’ve seen issues like “accessibility” or “look into syncing.” These are vague, with no clear information on how to complete them and will typically live in the backlog forever."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In addition to a title and description, "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":" have all the attributes a developer would expect:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Status"}]},{"type":"text","value":": From the workflow above, e.g. In Progress, Done, etc."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Priority"}]},{"type":"text","value":": Urgent, High, Medium, Low or None."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Estimate"}]},{"type":"text","value":": I prefer to use the Fibonacci sequence e.g. 1, 2, 3, 5, 8."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Labels"}]},{"type":"text","value":": I use Bug, Chore, Feature, Improvement."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"There are a few attributes ("},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"cycle"}]},{"type":"text","value":", "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"due date"}]},{"type":"text","value":", "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"assignee"}]},{"type":"text","value":") that I don’t use. More on that later…"}]},{"type":"element","tag":"h3","props":{"id":"projects"},"children":[{"type":"text","value":"Projects"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Every "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Issue"}]},{"type":"text","value":" belongs in a "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Project"}]},{"type":"text","value":". I reuse the same concept from GTD again, a project is a just a collection of completable tasks. Any feature that is more than one step is a project."}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In fact, the projects in Linear have matching projects in my "},{"type":"element","tag":"a","props":{"href":"/bear-notes"},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":" notes app. I don’t create a project in Linear until I’ve fully thought out how a feature will work, which will then guide the Issues I create."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"When a project is completed, I review the comments in the PRs to update the notes in "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Bear"}]},{"type":"text","value":"."}]},{"type":"element","tag":"h3","props":{"id":"milestones"},"children":[{"type":"text","value":"Milestones"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I use "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"milestones"}]},{"type":"text","value":" to get a high level view of all the projects in the roadmap across all the teams. As a sports team management app, "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Lead Dog"}]},{"type":"text","value":" natively uses the concept of ”seasons,” so my milestones for "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Lead Dog"}]},{"type":"text","value":" are also seasons e.g. Spring, Summer, Fall and Winter."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Deck of Pain"}]},{"type":"text","value":" doesn’t have a similar concept so I simply went with Q1, Q2, Q3 and Q4."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Linear Milestones","src":"/assets/images/img-linear-milestone.png"},"children":[]}]},{"type":"element","tag":"h3","props":{"id":"cycles-due-dates-assignees"},"children":[{"type":"text","value":"Cycles, Due Dates, Assignees"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Linear offers a feature called "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Cycles"}]},{"type":"text","value":" which allows you to plan your sprints. I initially enabled it, so I could track progress and also see the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"velocity"}]},{"type":"text","value":" and see how many points I complete in a cycle. However, these are my own apps and occasionally I get busy with other things. It is pretty demotivating to see multiple “empty cycles.” For this reason, I disabled cycles for all my projects."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Same for "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"due dates"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I also hide the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"assignee"}]},{"type":"text","value":" attribute since it’s always just me, so I don’t need to see it every time."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The only real “time” marker I have are the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"milestones"}]},{"type":"text","value":" which usually correlate to some sort of marketing effort."}]},{"type":"element","tag":"h3","props":{"id":"looking-ahead"},"children":[{"type":"text","value":"Looking Ahead"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Currently there is no native mobile app. As I mentioned earlier, their web app is insanely fast and performant, but I’d still prefer a native experience."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"speed","depth":3,"text":"Speed"},{"id":"github-integration","depth":3,"text":"Github Integration"},{"id":"teams","depth":3,"text":"Teams"},{"id":"issues","depth":3,"text":"Issues"},{"id":"projects","depth":3,"text":"Projects"},{"id":"milestones","depth":3,"text":"Milestones"},{"id":"cycles-due-dates-assignees","depth":3,"text":"Cycles, Due Dates, Assignees"},{"id":"looking-ahead","depth":3,"text":"Looking Ahead"}]}},"_type":"markdown","_id":"content:linear-app.md","_source":"content","_file":"linear-app.md","_extension":"md"},{"_path":"/microsoft-to-do","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Microsoft To-Do","description":"Just as quickly as I started getting used to the my Wunderlist/OneNote workflow, Microsoft announced their new To-Do app. Presumably built by the Wunderlist team that they acquired; which also means that Wunderlist is now on its deathbed.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Just as quickly as I started getting used to the my "},{"type":"element","tag":"a","props":{"href":"/my-workflow-with-wunderlist-and-onenote"},"children":[{"type":"text","value":"Wunderlist/OneNote"}]},{"type":"text","value":" workflow, Microsoft announced their new To-Do app. Presumably built by the Wunderlist team that they acquired; which also means that Wunderlist is now on its deathbed."}]},{"type":"element","tag":"h3","props":{"id":"first-impressions"},"children":[{"type":"text","value":"First Impressions"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Microsoft has continued to stick with the flat, clean, minimalist design. The app is also minimalist in features, only a fraction of the features available in Wunderlist are available in the To-Do app. The "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"“import from Wunderlist”"}]},{"type":"text","value":" tool only makes this more confusing since some of the organization structures aren’t available yet."}]},{"type":"element","tag":"h3","props":{"id":"contexts"},"children":[{"type":"text","value":"Contexts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I’ve been trying to adapt the idea of prioritizing tasks based on "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Context"}]},{"type":"text","value":". In "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Getting Things Done"}]},{"type":"text","value":", actionable items are grouped by context. The context might present physical locations e.g. home, office, etc. or conveniences like call or email, which can only be done when you have your phone or computer with you. No point in looking tasks in the home context if you in the office or looking at tasks in the email context if you are out somewhere."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I’ve modernized these context types a bit to my specific use cases:"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Reminders"}]}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"bills"}]},{"type":"text","value":": time-sensitive tasks that are due on a specific date."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"admin"}]},{"type":"text","value":": business related forms and reports that must be filed quarterly, yearly, etc."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Items with due dates are automatically filtered and brought to relevance as their due dates approach."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Communication"}]}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"contact"}]},{"type":"text","value":": email or call someone."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"waiting"}]},{"type":"text","value":": waiting for a response from someone."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Low Priority"}]}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"quickie"}]},{"type":"text","value":": anything that can done in a short amount time, usually while taking a break from a high priority task."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"pocket"}]},{"type":"text","value":": links to articles to read later when I’m free."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"lazy"}]},{"type":"text","value":": mundane tasks that I can work on when I’m low on energy and don’t have to think too much e.g. filling out expense reports."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"High Priority"}]}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"next-actions"}]},{"type":"text","value":": the very next task that needs to be completed to move the project forward."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"errands"}]},{"type":"text","value":": tasks that have to be done outside e.g. grocery list."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Every task belongs to a context and I only focus on the one context I need to work on."}]},{"type":"element","tag":"h3","props":{"id":"my-day"},"children":[{"type":"text","value":"My Day"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Microsoft To-do","src":"/assets/images/img-todo.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"One of the best features however, is the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"My Day"}]},{"type":"text","value":" view."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Wunderlist had a "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"today"}]},{"type":"text","value":" view for tasks with dues dates on the current date, but I had to manually move other tasks around to create a focused view with only the tasks I needed to care about on any given day."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"To-Do app automates most of this for me and even offers suggestions for tasks I could add. I can see a lot of potential for this in the future when they can integrate Cortana and the email/calendar apps to automatically help users focus on the highest priority items each day."}]},{"type":"element","tag":"h3","props":{"id":"looking-ahead"},"children":[{"type":"text","value":"Looking Ahead"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I've migrated my tasks over and started testing out my system with the new app, so far things have been pretty smooth. The app seamlessly syncs across all my devices (Macbook, iPhone and iPad) and offers widgets to view tasks at a glance."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Though I like keeping my task management separate from my note management, I'm hoping  that both apps being in the same eco-system will improve their interoperability."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"microsoft-to-do","date":"2017-04-19T05:00:00.000Z","tags":["tech","microsoft","productivity","to-do","wunderlist"],"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Just as quickly as I started getting used to the my "},{"type":"element","tag":"a","props":{"href":"/my-workflow-with-wunderlist-and-onenote"},"children":[{"type":"text","value":"Wunderlist/OneNote"}]},{"type":"text","value":" workflow, Microsoft announced their new To-Do app. Presumably built by the Wunderlist team that they acquired; which also means that Wunderlist is now on its deathbed."}]},{"type":"element","tag":"h3","props":{"id":"first-impressions"},"children":[{"type":"text","value":"First Impressions"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Microsoft has continued to stick with the flat, clean, minimalist design. The app is also minimalist in features, only a fraction of the features available in Wunderlist are available in the To-Do app. The "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"“import from Wunderlist”"}]},{"type":"text","value":" tool only makes this more confusing since some of the organization structures aren’t available yet."}]},{"type":"element","tag":"h3","props":{"id":"contexts"},"children":[{"type":"text","value":"Contexts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I’ve been trying to adapt the idea of prioritizing tasks based on "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Context"}]},{"type":"text","value":". In "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Getting Things Done"}]},{"type":"text","value":", actionable items are grouped by context. The context might present physical locations e.g. home, office, etc. or conveniences like call or email, which can only be done when you have your phone or computer with you. No point in looking tasks in the home context if you in the office or looking at tasks in the email context if you are out somewhere."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I’ve modernized these context types a bit to my specific use cases:"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Reminders"}]}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"bills"}]},{"type":"text","value":": time-sensitive tasks that are due on a specific date."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"admin"}]},{"type":"text","value":": business related forms and reports that must be filed quarterly, yearly, etc."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Items with due dates are automatically filtered and brought to relevance as their due dates approach."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Communication"}]}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"contact"}]},{"type":"text","value":": email or call someone."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"waiting"}]},{"type":"text","value":": waiting for a response from someone."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Low Priority"}]}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"quickie"}]},{"type":"text","value":": anything that can done in a short amount time, usually while taking a break from a high priority task."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"pocket"}]},{"type":"text","value":": links to articles to read later when I’m free."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"lazy"}]},{"type":"text","value":": mundane tasks that I can work on when I’m low on energy and don’t have to think too much e.g. filling out expense reports."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"High Priority"}]}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"next-actions"}]},{"type":"text","value":": the very next task that needs to be completed to move the project forward."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"errands"}]},{"type":"text","value":": tasks that have to be done outside e.g. grocery list."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Every task belongs to a context and I only focus on the one context I need to work on."}]},{"type":"element","tag":"h3","props":{"id":"my-day"},"children":[{"type":"text","value":"My Day"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Microsoft To-do","src":"/assets/images/img-todo.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"One of the best features however, is the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"My Day"}]},{"type":"text","value":" view."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Wunderlist had a "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"today"}]},{"type":"text","value":" view for tasks with dues dates on the current date, but I had to manually move other tasks around to create a focused view with only the tasks I needed to care about on any given day."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"To-Do app automates most of this for me and even offers suggestions for tasks I could add. I can see a lot of potential for this in the future when they can integrate Cortana and the email/calendar apps to automatically help users focus on the highest priority items each day."}]},{"type":"element","tag":"h3","props":{"id":"looking-ahead"},"children":[{"type":"text","value":"Looking Ahead"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I've migrated my tasks over and started testing out my system with the new app, so far things have been pretty smooth. The app seamlessly syncs across all my devices (Macbook, iPhone and iPad) and offers widgets to view tasks at a glance."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Though I like keeping my task management separate from my note management, I'm hoping  that both apps being in the same eco-system will improve their interoperability."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"first-impressions","depth":3,"text":"First Impressions"},{"id":"contexts","depth":3,"text":"Contexts"},{"id":"my-day","depth":3,"text":"My Day"},{"id":"looking-ahead","depth":3,"text":"Looking Ahead"}]}},"_type":"markdown","_id":"content:microsoft-to-do.md","_source":"content","_file":"microsoft-to-do.md","_extension":"md"},{"_path":"/mindnode","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"MindNode","description":"Every so often I look up at the screen and see 5 or 6 Visual Studio Code editor windows side-by-side. In my codebase the implementation for a feature might be spread across multiple files. When I need to make sense of disparate information and try to see how they all work together, I ended up opening all the files in different windows so I can visually see the code and the connections.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Every so often I look up at the screen and see 5 or 6 Visual Studio Code editor windows side-by-side. In my codebase the implementation for a feature might be spread across multiple files. When I need to make sense of disparate information and try to see how they all work together, I ended up opening all the files in different windows so I can visually see the code and the connections."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I read about "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"mind mapping"}]},{"type":"text","value":" tools that visually represent concepts and connections and wanted to try it out. Since I hadn’t used a mind mapping tool before, I had no initial criteria for my needs. However, the one thing I always look for in any tool that I use in my workflow is having the app on all my devices."}]},{"type":"element","tag":"h3","props":{"id":"design"},"children":[{"type":"text","value":"Design"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I had seen screenshots of "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" before, but actually using it highlighted the sleak design and interactions. The mind maps look beautiful and visually appealing even when I’m just trying to see the connection between classes in my codebase."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Mind Map for Code","src":"/assets/images/img-mindnode-code.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The infinite canvas encourages you to brainstorm without feeling the need to be mindful of how large the map can get."}]},{"type":"element","tag":"h3","props":{"id":"customization"},"children":[{"type":"text","value":"Customization"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" also lets you customize every aspect of the mind map. You can start with one of their built-in themes and create your own. I made a custom theme using the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Fira Code"}]},{"type":"text","value":" font. You can then also customize the individual nodes overriding the theme."}]},{"type":"element","tag":"h3","props":{"id":"focus-mode"},"children":[{"type":"text","value":"Focus Mode"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Focus mode lets you select a specific node and only view it’s child branches. This comes in very handy when you are dealing with large mind maps."}]},{"type":"element","tag":"h3","props":{"id":"outline-view"},"children":[{"type":"text","value":"Outline View"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This was the killer feature that really sold me on adding "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" to my workflow. It’s great to start brainstorming in a visual space and then see the structured hierarchy that almost reads like an article. For writing blog posts, I’ll start with the outline and then export it as markdown and continue writing in the "},{"type":"element","tag":"a","props":{"href":"/bear-notes"},"children":[{"type":"text","value":"Bear Notes"}]},{"type":"text","value":" app."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Mind map for writing","src":"/assets/images/img-mindnode-blog.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" does what it needs to really well. It’s a mind mapping tool nothing more nothing less; I use it for brainstorming and usually delete the file once I understand the connection in my head or once I have the outline needed to begin writing."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"mindnode","date":"2021-12-14T05:00:00.000Z","tags":["tech","mindnode","mind mapping","brainstorming"],"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Every so often I look up at the screen and see 5 or 6 Visual Studio Code editor windows side-by-side. In my codebase the implementation for a feature might be spread across multiple files. When I need to make sense of disparate information and try to see how they all work together, I ended up opening all the files in different windows so I can visually see the code and the connections."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I read about "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"mind mapping"}]},{"type":"text","value":" tools that visually represent concepts and connections and wanted to try it out. Since I hadn’t used a mind mapping tool before, I had no initial criteria for my needs. However, the one thing I always look for in any tool that I use in my workflow is having the app on all my devices."}]},{"type":"element","tag":"h3","props":{"id":"design"},"children":[{"type":"text","value":"Design"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I had seen screenshots of "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" before, but actually using it highlighted the sleak design and interactions. The mind maps look beautiful and visually appealing even when I’m just trying to see the connection between classes in my codebase."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Mind Map for Code","src":"/assets/images/img-mindnode-code.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The infinite canvas encourages you to brainstorm without feeling the need to be mindful of how large the map can get."}]},{"type":"element","tag":"h3","props":{"id":"customization"},"children":[{"type":"text","value":"Customization"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" also lets you customize every aspect of the mind map. You can start with one of their built-in themes and create your own. I made a custom theme using the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Fira Code"}]},{"type":"text","value":" font. You can then also customize the individual nodes overriding the theme."}]},{"type":"element","tag":"h3","props":{"id":"focus-mode"},"children":[{"type":"text","value":"Focus Mode"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Focus mode lets you select a specific node and only view it’s child branches. This comes in very handy when you are dealing with large mind maps."}]},{"type":"element","tag":"h3","props":{"id":"outline-view"},"children":[{"type":"text","value":"Outline View"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This was the killer feature that really sold me on adding "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" to my workflow. It’s great to start brainstorming in a visual space and then see the structured hierarchy that almost reads like an article. For writing blog posts, I’ll start with the outline and then export it as markdown and continue writing in the "},{"type":"element","tag":"a","props":{"href":"/bear-notes"},"children":[{"type":"text","value":"Bear Notes"}]},{"type":"text","value":" app."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Mind map for writing","src":"/assets/images/img-mindnode-blog.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" does what it needs to really well. It’s a mind mapping tool nothing more nothing less; I use it for brainstorming and usually delete the file once I understand the connection in my head or once I have the outline needed to begin writing."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"design","depth":3,"text":"Design"},{"id":"customization","depth":3,"text":"Customization"},{"id":"focus-mode","depth":3,"text":"Focus Mode"},{"id":"outline-view","depth":3,"text":"Outline View"}]}},"_type":"markdown","_id":"content:mindnode.md","_source":"content","_file":"mindnode.md","_extension":"md"},{"_path":"/mise-en-place","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Mise en Place","description":"TBD","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"mise-en-place","date":"2015-01-02T05:00:00.000Z","tags":["software"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:mise-en-place.md","_source":"content","_file":"mise-en-place.md","_extension":"md"},{"_path":"/my-workflow-revisited","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"My Workflow: Revisited","description":"My workflow, appropriately enough, is the flow of information from one tool to the next. The central tenets of this system are:","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My workflow, appropriately enough, is the flow of information from one tool to the next. The central tenets of this system are:"}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Collect"}]},{"type":"text","value":" → "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Organize"}]},{"type":"text","value":" → "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Action"}]}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The tools in each of these steps may vary based on the type of work I’m performing. Starting with a collection of ideas and pushing them through the system into actionable outcomes. Designed over the course of many years, this workflow is a combobulation of "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Getting Things Done"}]},{"type":"text","value":", "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"PARA"}]},{"type":"text","value":", and "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Zettlekasten"}]},{"type":"text","value":". "},{"type":"element","tag":"mark","props":{},"children":[{"type":"text","value":"ymmv"}]}]},{"type":"element","tag":"h3","props":{"id":"collect"},"children":[{"type":"text","value":"Collect"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All collection happens in the "},{"type":"element","tag":"a","props":{"href":"/bear-notes"},"children":[{"type":"text","value":"Bear Notes"}]},{"type":"text","value":" app. Described as a "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"fleeting note"}]},{"type":"text","value":" in Zettlekasten or the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"inbox"}]},{"type":"text","value":" in GTD. Every idea, thought, link, random pieces of data, enter the workflow as a new note in Bear, untagged."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Bear app natively supports an "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"@untagged"}]},{"type":"text","value":" filter that I use during my "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"daily review"}]},{"type":"text","value":" at the end of each day to process the notes."}]},{"type":"element","tag":"h3","props":{"id":"organize"},"children":[{"type":"text","value":"Organize"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Processing these notes daily is a crucial step in the workflow, decisions MUST be made; notes that no longer seem interesting are deleted."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Any actionable item that take under 2 minutes is performed immediately in the ways of GTD."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Tasks, links, and time-sensitive items are pushed to the Microsoft To-Do app (more on this in the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Action"}]},{"type":"text","value":" section below)."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"The Zettlekasten Method"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nNotes with ideas and thoughts are elaborated on and linked to other notes."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Information is spread across many interconnected notes."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Linking related ideas form the hierarchy rather than categorizing notes by topic."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Notes are organized based on how you might use them in the future."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"If you're doing the Zettelkasten Method right, it should resemble a wiki. It's easy for me to get lost in the process, but every now and then, I'll look at the notes and ask myself if it still looks like my personal wikipedia."}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is NOT, however, a \"set it and forget it\" system. Every time a new note is added, you must follow through with the curation; adding links to related notes, including references to source information, etc."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Goals, Projects, Tasks"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nThe "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"raison d’être"}]},{"type":"text","value":" of all these notes."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Goals"}]},{"type":"text","value":" are high level themes in my life. Never ending pursuits."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Projects"}]},{"type":"text","value":" contain a series of tasks linked to a goal with a deadline."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Tasks"}]},{"type":"text","value":" are actionable steps that can be finished."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Tags"}]},{"type":"element","tag":"br","props":{},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Microsoft To-do","src":"/assets/images/img-bear-notes-tags.png"},"children":[]},{"type":"text","value":" The top level tags provide a structure for projects and goals and are visually better thought of as "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"notebooks"}]},{"type":"text","value":". The nested tags are "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"entry points"}]},{"type":"text","value":" to areas of interests."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The tags starting with an underscore (so they are sorted at the top, alphabetically) are my "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"notebooks"}]},{"type":"text","value":" for apps I work on. The "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Deck of Pain"}]},{"type":"text","value":" app, has 11 projects and their notes are collectively tagged with "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"_deck of pain"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The remaining tags are notebooks related to themes in my life."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Travel"}]},{"type":"text","value":" notebook, contains notes related to places I want to travel or articles about traveling. Actually traveling to Japan will become a project with actionable tasks like booking flight, accommodations, etc."}]},{"type":"element","tag":"h3","props":{"id":"action"},"children":[{"type":"text","value":"Action"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Tasks are an atomic unit of work, isolated, with a clear definition of done. Crossing off tasks help track progress, create momentum, and maintain motivation in the project."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All my tasks are in context specific apps, best suited to track and complete them."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Microsoft To-Do"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nTasks here are grouped by "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"context"}]},{"type":"text","value":" borrowed from GTD. My post on "},{"type":"element","tag":"a","props":{"href":"/microsoft-to-do"},"children":[{"type":"text","value":"Microsoft To-Do"}]},{"type":"text","value":" describes how I use it to focus on tasks for the context or frame of mind I’m in."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In addition to grouping them by context, there is also a transitory list called "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"My Day"}]},{"type":"text","value":". It’s a great way for me to see a focused list of the most important action items for that day."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I start each day here."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Linear"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nIssue tracking for software development. I wrote about how I use "},{"type":"element","tag":"a","props":{"href":"/linear-app"},"children":[{"type":"text","value":"Linear"}]},{"type":"text","value":" to manage my software projects. "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":" in Linear adhere to the same rules as the tasks in the To-Do app. All of my development work is in Github and Linear provides an automated way to link the tasks to the codebase."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nSometimes the collection of notes in a project can be difficult to visualize as a coherent concept. This happens to me most with writing projects, where I have a lot of related things to talk about, but can’t easily flow from one idea to the next. Mind mapping helps provide a structure/outline for the concept and guides me understanding the next steps. My post on "},{"type":"element","tag":"a","props":{"href":"/mindnode"},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" has an example of how I drafted that very post in MindNode first."}]},{"type":"element","tag":"h3","props":{"id":"books-movies-podcasts"},"children":[{"type":"text","value":"Books, Movies, Podcasts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I used to have a note with a running list of books I’d like to read or movies I’d like to watch. It didn’t fit the system. Content that is recommended or that I find interesting are added directly to these respective apps:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Kindle (books)"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Letterboxd (movies)"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Castro (podcasts)"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I prioritize, consume, and these apps automatically log or archive them. Maintaining a complete history without cluttering my workflow. Highlights from books or show notes from podcasts are often collected in the workflow and lead to new projects or further reading."}]},{"type":"element","tag":"h3","props":{"id":"final-thought"},"children":[{"type":"text","value":"Final thought"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This workflow helps me be and stay productive. When the process works, I find myself looking forward to the next day, energized and ready to tackle the projects at hand."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"my-workflow-revisited","date":"2022-01-02T05:00:00.000Z","tags":["workflow","gtd","zettelkasten"],"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My workflow, appropriately enough, is the flow of information from one tool to the next. The central tenets of this system are:"}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Collect"}]},{"type":"text","value":" → "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Organize"}]},{"type":"text","value":" → "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Action"}]}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The tools in each of these steps may vary based on the type of work I’m performing. Starting with a collection of ideas and pushing them through the system into actionable outcomes. Designed over the course of many years, this workflow is a combobulation of "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Getting Things Done"}]},{"type":"text","value":", "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"PARA"}]},{"type":"text","value":", and "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Zettlekasten"}]},{"type":"text","value":". "},{"type":"element","tag":"mark","props":{},"children":[{"type":"text","value":"ymmv"}]}]},{"type":"element","tag":"h3","props":{"id":"collect"},"children":[{"type":"text","value":"Collect"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All collection happens in the "},{"type":"element","tag":"a","props":{"href":"/bear-notes"},"children":[{"type":"text","value":"Bear Notes"}]},{"type":"text","value":" app. Described as a "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"fleeting note"}]},{"type":"text","value":" in Zettlekasten or the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"inbox"}]},{"type":"text","value":" in GTD. Every idea, thought, link, random pieces of data, enter the workflow as a new note in Bear, untagged."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Bear app natively supports an "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"@untagged"}]},{"type":"text","value":" filter that I use during my "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"daily review"}]},{"type":"text","value":" at the end of each day to process the notes."}]},{"type":"element","tag":"h3","props":{"id":"organize"},"children":[{"type":"text","value":"Organize"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Processing these notes daily is a crucial step in the workflow, decisions MUST be made; notes that no longer seem interesting are deleted."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Any actionable item that take under 2 minutes is performed immediately in the ways of GTD."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Tasks, links, and time-sensitive items are pushed to the Microsoft To-Do app (more on this in the "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Action"}]},{"type":"text","value":" section below)."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"The Zettlekasten Method"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nNotes with ideas and thoughts are elaborated on and linked to other notes."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Information is spread across many interconnected notes."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Linking related ideas form the hierarchy rather than categorizing notes by topic."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Notes are organized based on how you might use them in the future."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"If you're doing the Zettelkasten Method right, it should resemble a wiki. It's easy for me to get lost in the process, but every now and then, I'll look at the notes and ask myself if it still looks like my personal wikipedia."}]},{"type":"element","tag":"blockquote","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is NOT, however, a \"set it and forget it\" system. Every time a new note is added, you must follow through with the curation; adding links to related notes, including references to source information, etc."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Goals, Projects, Tasks"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nThe "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"raison d’être"}]},{"type":"text","value":" of all these notes."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Goals"}]},{"type":"text","value":" are high level themes in my life. Never ending pursuits."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Projects"}]},{"type":"text","value":" contain a series of tasks linked to a goal with a deadline."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Tasks"}]},{"type":"text","value":" are actionable steps that can be finished."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Tags"}]},{"type":"element","tag":"br","props":{},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"Microsoft To-do","src":"/assets/images/img-bear-notes-tags.png"},"children":[]},{"type":"text","value":" The top level tags provide a structure for projects and goals and are visually better thought of as "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"notebooks"}]},{"type":"text","value":". The nested tags are "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"entry points"}]},{"type":"text","value":" to areas of interests."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The tags starting with an underscore (so they are sorted at the top, alphabetically) are my "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"notebooks"}]},{"type":"text","value":" for apps I work on. The "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Deck of Pain"}]},{"type":"text","value":" app, has 11 projects and their notes are collectively tagged with "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"_deck of pain"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"The remaining tags are notebooks related to themes in my life."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Travel"}]},{"type":"text","value":" notebook, contains notes related to places I want to travel or articles about traveling. Actually traveling to Japan will become a project with actionable tasks like booking flight, accommodations, etc."}]},{"type":"element","tag":"h3","props":{"id":"action"},"children":[{"type":"text","value":"Action"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Tasks are an atomic unit of work, isolated, with a clear definition of done. Crossing off tasks help track progress, create momentum, and maintain motivation in the project."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All my tasks are in context specific apps, best suited to track and complete them."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Microsoft To-Do"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nTasks here are grouped by "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"context"}]},{"type":"text","value":" borrowed from GTD. My post on "},{"type":"element","tag":"a","props":{"href":"/microsoft-to-do"},"children":[{"type":"text","value":"Microsoft To-Do"}]},{"type":"text","value":" describes how I use it to focus on tasks for the context or frame of mind I’m in."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In addition to grouping them by context, there is also a transitory list called "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"My Day"}]},{"type":"text","value":". It’s a great way for me to see a focused list of the most important action items for that day."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I start each day here."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"Linear"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nIssue tracking for software development. I wrote about how I use "},{"type":"element","tag":"a","props":{"href":"/linear-app"},"children":[{"type":"text","value":"Linear"}]},{"type":"text","value":" to manage my software projects. "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Issues"}]},{"type":"text","value":" in Linear adhere to the same rules as the tasks in the To-Do app. All of my development work is in Github and Linear provides an automated way to link the tasks to the codebase."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"MindNode"}]},{"type":"element","tag":"br","props":{},"children":[]},{"type":"text","value":"\nSometimes the collection of notes in a project can be difficult to visualize as a coherent concept. This happens to me most with writing projects, where I have a lot of related things to talk about, but can’t easily flow from one idea to the next. Mind mapping helps provide a structure/outline for the concept and guides me understanding the next steps. My post on "},{"type":"element","tag":"a","props":{"href":"/mindnode"},"children":[{"type":"text","value":"MindNode"}]},{"type":"text","value":" has an example of how I drafted that very post in MindNode first."}]},{"type":"element","tag":"h3","props":{"id":"books-movies-podcasts"},"children":[{"type":"text","value":"Books, Movies, Podcasts"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I used to have a note with a running list of books I’d like to read or movies I’d like to watch. It didn’t fit the system. Content that is recommended or that I find interesting are added directly to these respective apps:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Kindle (books)"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Letterboxd (movies)"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Castro (podcasts)"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I prioritize, consume, and these apps automatically log or archive them. Maintaining a complete history without cluttering my workflow. Highlights from books or show notes from podcasts are often collected in the workflow and lead to new projects or further reading."}]},{"type":"element","tag":"h3","props":{"id":"final-thought"},"children":[{"type":"text","value":"Final thought"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This workflow helps me be and stay productive. When the process works, I find myself looking forward to the next day, energized and ready to tackle the projects at hand."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"collect","depth":3,"text":"Collect"},{"id":"organize","depth":3,"text":"Organize"},{"id":"action","depth":3,"text":"Action"},{"id":"books-movies-podcasts","depth":3,"text":"Books, Movies, Podcasts"},{"id":"final-thought","depth":3,"text":"Final thought"}]}},"_type":"markdown","_id":"content:my-workflow-revisited.md","_source":"content","_file":"my-workflow-revisited.md","_extension":"md"},{"_path":"/my-workflow-with-wunderlist-and-onenote","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"My Workflow: Wunderlist and OneNote","description":"I like making to-do lists, I just never get around to doing the tasks in the list. It’s even less manageable when you’re trying to keep track of day to day tasks as well as goals for the future.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I like making to-do lists, I just never get around to doing the tasks in the list. It’s even less manageable when you’re trying to keep track of day to day tasks as well as goals for the future."}]},{"type":"element","tag":"h3","props":{"id":"getting-things-done"},"children":[{"type":"text","value":"Getting Things Done"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I experimented with "},{"type":"element","tag":"a","props":{"href":"http://gettingthingsdone.com","rel":["nofollow"]},"children":[{"type":"text","value":"Getting Things Done"}]},{"type":"text","value":" back in 2009 using "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Evernote"}]},{"type":"text","value":". The first few days were great, but I didn’t even make it to the end of the month before I gave up. I tried the GTD experiment with "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"OneNote"}]},{"type":"text","value":" a few years later. The results were the same. I liked the concept of GTD, but my paperless versions kept running into road blocks."}]},{"type":"element","tag":"h3","props":{"id":"onenote-and-wunderlist"},"children":[{"type":"text","value":"OneNote and Wunderlist"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I finally realized "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"one app to rule them all"}]},{"type":"text","value":" was not right for me. I needed separation between the tasks, projects and goals. Having them all in one place either distracted me or overwhelmed me."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For the last few months I’ve been using "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"OneNote"}]},{"type":"text","value":" purely for the projects and goals part of my organization, and "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Wunderlist"}]},{"type":"text","value":" for the tasks."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For my day to day tasks I consult "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Wunderlist"}]},{"type":"text","value":". Tasks like recurring bills or timed events also only exist in "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Wunderlist"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Wunderlist"}]},{"type":"text","value":" tasks are always limited to a few items for any given week and keep shrinking as I complete the tasks. My OneNote pages keep growing as I have more goals and projects. You could do both in the same app, but having this separation greatly helped me get things done."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}]},"slug":"my-workflow-with-wunderlist-and-onenote","date":"2016-07-21T05:00:00.000Z","tags":["workflow","gtd","productivity","onenote","wunderlist"],"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I like making to-do lists, I just never get around to doing the tasks in the list. It’s even less manageable when you’re trying to keep track of day to day tasks as well as goals for the future."}]},{"type":"element","tag":"h3","props":{"id":"getting-things-done"},"children":[{"type":"text","value":"Getting Things Done"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I experimented with "},{"type":"element","tag":"a","props":{"href":"http://gettingthingsdone.com","rel":["nofollow"]},"children":[{"type":"text","value":"Getting Things Done"}]},{"type":"text","value":" back in 2009 using "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Evernote"}]},{"type":"text","value":". The first few days were great, but I didn’t even make it to the end of the month before I gave up. I tried the GTD experiment with "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"OneNote"}]},{"type":"text","value":" a few years later. The results were the same. I liked the concept of GTD, but my paperless versions kept running into road blocks."}]},{"type":"element","tag":"h3","props":{"id":"onenote-and-wunderlist"},"children":[{"type":"text","value":"OneNote and Wunderlist"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I finally realized "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"one app to rule them all"}]},{"type":"text","value":" was not right for me. I needed separation between the tasks, projects and goals. Having them all in one place either distracted me or overwhelmed me."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For the last few months I’ve been using "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"OneNote"}]},{"type":"text","value":" purely for the projects and goals part of my organization, and "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Wunderlist"}]},{"type":"text","value":" for the tasks."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"For my day to day tasks I consult "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Wunderlist"}]},{"type":"text","value":". Tasks like recurring bills or timed events also only exist in "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Wunderlist"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"Wunderlist"}]},{"type":"text","value":" tasks are always limited to a few items for any given week and keep shrinking as I complete the tasks. My OneNote pages keep growing as I have more goals and projects. You could do both in the same app, but having this separation greatly helped me get things done."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"getting-things-done","depth":3,"text":"Getting Things Done"},{"id":"onenote-and-wunderlist","depth":3,"text":"OneNote and Wunderlist"}]}},"_type":"markdown","_id":"content:my-workflow-with-wunderlist-and-onenote.md","_source":"content","_file":"my-workflow-with-wunderlist-and-onenote.md","_extension":"md"},{"_path":"/one-small-step-at-a-time","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"One Small Step At A Time","description":"TBD","excerpt":"lorem ipsum....","slug":"one-small-step-at-a-time","date":"2022-08-04T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:one-small-step-at-a-time.md","_source":"content","_file":"one-small-step-at-a-time.md","_extension":"md"},{"_path":"/opinionated-software","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Opinionated Software","description":"TBD","excerpt":"lorem ipsum....","slug":"opinionated-software","date":"2022-07-27T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:opinionated-software.md","_source":"content","_file":"opinionated-software.md","_extension":"md"},{"_path":"/tdd","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"TDD","description":"TBD","excerpt":"lorem ipsum....","slug":"tdd","date":"2022-07-30T05:00:00.000Z","tags":["software philosophy"],"draft":true,"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"TBD"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"contact","props":{},"children":[]}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:tdd.md","_source":"content","_file":"tdd.md","_extension":"md"}]