Joseph Hallenbeck

In 2013, I was fresh on my switch from Windows to Linux as my full-time OS. I was reading books like David Allen’s Getting Things Done and looking for a good digital planning system. Enter Gina Trapani’s Todotxt script.

Todo.txt allowed for command line todo lists. Every was stored in a plaintext file, easily editable with any text editor or automated via the command line. I used it for roughly a year. At the time I both loved and hated using Todo.txt.

On the one hand, it was easily automated. I could set up daily and weekly tasks to be automatically populated to my list in the morning. I could easily bulk edit things in VIM.

But there was still some big pain points. My lists tended to get way too long – scrolled right off the top of my screen. There was no easy way for managing multiple todo files. There also wasn’t much for sorting. The result was that managing my lists and getting an overview of everything became increasingly difficult.

When my employer started using Trello for product management, I saw my solution. Trello does a great job of visualizing where all my tasks belong. Following GTD, I had a backlog column, next actions column, today column, in progress, and done. Moving cards between columns let me visually see the flow of work through the day. A big tickler board kept all my long-term ideas.

Now in 2016, I find myself re-installing Todo.txt and giving Trello the boot. Why if it was such an excellent system?

Goodbye Trello

There are a number of pain points that Trello simply cannot get over that Todo.txt solves easily:

Vendor Lock-in

A theme for a lot of my projects this first quarter of 2016 has been a move away from Vendor lock in. I got rid of my IDE and switched back to developing using VIM. This got me to thinking about how many other products I use that have vendor-lock-in. Evernote instead of just keeping plaintext files. Dropbox instead of using rsync. And Trello instead of Todo.txt.

With Trello, my done lists, my massive tickler list of project ideas, and my entire workflow is dependent upon the continued existence of Trello the company and it’s good graces to continue hosting all of this content for free.

Now Trello does have an export feature, but the result is a massive json blob. It might as well be binary for as much use as I will get out of it. I most certainly will be backing up all my trello boards. Yet, if I ever wanted to make use of this data, I will first need to write some kind of interpretor for it.

Todo.txt, as a plaintext file manager is to todo lists what Markdown is to Word Documents. It’s open, interchangeable, can be opened nearly any file system. It will follow me for year’s to come.

Difficult Automation

Switching back to VIM and working on the terminal all the time made me realize just how many computing tasks I have left un-automated.

In planning my daily todo tasks there are a number of recurring todos. A daily stand up starts my work day. A sprint planning meeting occurs every other week. Duolingo calls my daily French learning session. Monthly bills need to be paid.

On Trello entering these items into my board is a manual exercise. I keep a second board of “reoccurring” tasks that I copy over at the start of each sprint. It takes me thirty some minutes just to do this.

Now Trello does have an API, but I would need to learn it, probably create some kind of developer account, get API keys, compose some sizable application to interface with that API, make REST calls. It would take me probably a week’s worth of work to automate that entire process.

With Todo.txt, and a little BASH-fu and a cronjob, this all gets automated away. Every night my daily tasks get added to my todo, every sprint my per-sprint tasks get added to my todo. At the end of the month a note to pay my bills shows up on my todo. This gets offloaded so I no longer need to think about it.

Task Creation Friction

GUI’s add friction to any task.

Trello is no different in that regard. If I want to add a new task, I need to fire up a browser, navigate to Trello (assuming I even have an internet connection), create the card, name it, click a bunch of buttons to add a label. Sometimes, I just don’t want to do all of this, often times I find that I don’t sufficiently break a task down into small enough tasks purely out of a resistance to creating more cards.

Todo.sh, being on the command line means I need no internet connection, I can simply start typing to add my task, and there is little overhead in truly breaking any project down into atomic tasks that can be accomplished in a single Pomodoro.

Hello Todo.sh

After considering these options, I decided to revert to using Todo.sh. After a week of being back, I find that I love it. I am still working out my system for using Todo.sh. It truly is powerful. I’ve already discovered quite a few commands and options that I had no idea even existed before (I never realized there is a means of doing a logical or for terms or excluding terms via -TERM).

I could easily write up an entire second post about how to manage todos, how to install the script, get yourself running, useful aliases and methods for creating new add ons and automating things. Once I really get my daily system going, I could probably write a whole post on that as well.

Plaintext Planning

I would highly recommend a read through Michael Descy’s Plainttext Productivity website as the tips are quite above board. The biggest take away is priority management. Only use three or four priorities and use them to management where an task exists in the GTD workflow:

  • (A): Tasks that are in progress. Keep this below three tasks at a time
  • (B): Tasks that I will get to today
  • (C): Next actions that can be started now. Descy uses this for “Next Actions this week,” I use it for tasks to be done this sprint.
  • (D): Descy uses this for “Next Actions next week,” I use it for tasks that are currently blocked
  • (E): Tasks that are part of a project currently prioritized as an A, B or C task. For multi-part projects whose parts I don’t want cluttering the view when I query for the current day’s tasks, I create a project stub. When that stub is in progress and I need to know the next part to work on, I can query for all the E priorty tasks for that project.

Everything else is in the backlog which for me is items to be done this quarter. Anything further back goes on the tickler to be evaluated some day and added at my leisure.

Add-Ons & Set Up

A very brief overview of my current Todo.sh set up.

First, I have the todo.txt-cli script installed in my dotfiles repository which has it’s own script for installing all of my related configuration files on any system I touch. The todo lists themselves are in their own separate repository since I don’t manage todos on every system that I touch.

I follow the instructions for setting up auto completion. I also set up a number of aliases for different todo lists:

  • todo: for my daily, sprint, and quarterly task list
  • todot: for managing my tickler list
  • todos: for managing my shopping list

The aliases use the -a flag since I prefer to not auto archive by default.

Each alias has it’s own todo.cfg file which each sources a base.cfg file and only exports configurations that are unique to that command. As a base, I changed my priority colors to Blue, Green, Brown, and Red solarized values for the A-D priorities. Changed the project color to red and left the context a nice light gray.

As for the add ons, I added:

  • archive for archiving only selected items
  • edit for quickly opening the todo in VIM
  • sync and it’s requirements
  • commit,
  • pull and push for quick version control my todo lists.
  • projectview has some pretty formatting for project lists
  • recur for automating recuring tasks. I tried the ice_recur module but simply could not get it to work on my system.
  • xp another task visulation. This time for done tasks.
  • pri and rm (with a soft link for pri to p as a shortcut) for bulk editing priorities and deletions
  • lsgp/lsgc another project and context visualization.

Still Some Rough Spots

There are still some rough spots in Todo.sh land. First, sorting is still not quite perfect. Ideally, if I type todo lsp, I would like to have all my tasks listed by priority, then line number grouped by project. The best that I can do right now is by priority and then line number. Project grouping only occurs if I group the project lines together in VIM.

Secondly, the one big item that Trello had going for it was it’s phone app. This made adding tasks on the go quite easy and made looking things up easy as well.

Perhaps some of the various todo apps will have the functionality that I need, or perhaps I will need to compose my own app to meet my needs. The joy of the matter is though, I’m not locked in. I can easily develop that app if I so choose.

February 17, 2016

2015 In Review

Filed under: Journal part of Annual Reviews

Time for the annual retrospective. We can look back on last year’s and reflect on the last year and my resolutions for this new year. This last year was truly a year of unexpected surprises from switching employers to totaling my precious Ford Explorer after eleven years of use, to a wild last minute wintery move from Jackson, WY to a small trailer in Greenlee County Arizona.

Professional Development

The new year brought with it a new employer, Research Square, where I joined a dedicated team of professionals working on both the website and internal tooling of a medium-sized, fast growing company out of the Research Triangle area of North Carolina. The best part was that it was still telecommuting, so my old office was my new office: home.

The new team brought with it the opportunity to really dig into becoming intimate with a lot of the best-practices that I had, until now, only really read about: domain driven design, agile, code reviews, unit and integration testing. It also brought with it a new set of tools to learn: Silex Framework, Zend Framework, Doctrine ORM, Elastic Search and the variety of services provided by AWS. In total, I scored probably another two dozen buzzwords to add to my resume.

Throughout the year, I read a solid stack of business texts and DDD texts such as Domain Driven Design, Impelementing Domain Driven Design, Remote, The Lean Start Up, Five Dysfunctions of a Team, Drive and Good to Great. At home, I attended a variety of tech related meet ups hosted by Spark, my co-working office and in North Carolina, I made it to my first conference, the All Things Open conference in October.

Unrelated to my day-time employer, I finally gave up on hosting my own e-mail server and shut it down. My e-mail provider is now G-mail. I also went through the process of forming Joseph Hallenbeck, LLC in my home state of South Dakota, formally establishing a separate business account for the odd gigs that I accept and began a very slow discussion of the idea of on-the-side consulting.

Personal Highlights

Travel

We had some delightful trips this last year. It started with a few nights in McMenamins in Oregon with Jess. A beautiful hotel grounds with hidden little pubs all over.

Come spring we embarked for our third trip to the Southwest. This time we explored south of Moab in what turned into a long car trip circling south into Arizona, New Mexico and up to Taos. We certainly planned too much for that event and are looking forward to revisiting many of the places we saw the year prior.

Nearer to home, we rented a cabin in Pinedale for a four day weekend of snow shoeing half-moon lake and the surrounding area. Latter in the season we would also rent a cabin on Slide Lake for a night and venture back to our old stomping grounds in Island Park to polish off a handful of trails. In early spring we also ventured into Beaverhead-Deerlodge to pick our way out to a campground.

Caver Classic came in the summer where I ventured back to Custer, SD with Clint Augustson for some exciting caving adventures. We finally tracked down Cave 41 and as a bonus hit Onyx cave. Classic-lead events included the Club Room in Wind Cave and a trip out to Japanese Gardens in Jewel.

An unexpected trip came after the All Things Open conference when I had to drive from North Carolina to back home in Wyoming after buying a new truck after the conference.

Nights of Relaxation

Having little success at finding companionship in Jackson, I turned to recruiting my friends to play through Borderlands 2. We ended up meeting up nearly once a fortnight through the entire year.

Alternatively, I took to taking quite long lavender baths, an old fashioned in one hand as I worked my way through such series as JoJo’s Bizarre Adventure, Mushi-shi, Kids on the Slope, Gatchaman, and Parasyte.

I also enjoyed liberal use of the gym. Jess finally talked me into a membership and I found that I rather enjoyed hitting the gym for my lunch break. There I could sit back and watch some American animation: Rick & Morty, South Park, and Adventure Time all while burning through six to eight hundred calories.

Later in the year we discovered HIIT training which did wonders for preparing for Caver Classic.

Cooking, Figure Drawing, Fence Building, Fiddling & Jazz

One thing that I did not fail on was cooking. I canvassed the world this year with recipes from India and Italy. I cooked kraut, lamb leg, curry, turkey meatballs, duck, tapanade, Tuscan papa al pomodoro, paprikash and expensive saffron flavored fish soups. We roasted our own coffee beans on a wood stove and made cakes in dutch ovens.

In the Winter and Spring, I hit up figure drawing at the art center. I went fairly regularly until the weather was too nice to be spending the evening couped up in doors. But I did fill a whole book of newspaper print with drawings. I photographed them, but haven’t had the time to prepare them for a blog post.

Once the snow cleared, I took to building a fence around the property that we were renting so the dogs would have a proper yard to run about in. One weekend later we had a four-foot tall fence running from T-stakes around the yard. A fence the dogs never once found a way out.

Watching Kids on the Slope and attending the Teton Orchestra inspired me to dig back into my music days. I sorted through all of my old sheet music, broke out the fiddle and started playing away at all the old songs. I kept it up well for a couple of months. I even bought the Fake Book and started listening to a long list of Jazz greats hoping to work out their pieces on the fiddle. The madness that was Autumn took this away, and I hope to return to playing soon.

Completing the Day List in Jackson

One of the first things that I did when we moved to Jackson was to draw up a big list of everything that we wanted to do. The list included every campground to camp at, every day hike to hike, every backpacking trip, every outdoor activity that I could imagine. While we moved out leaving a lot of the multi-day hikes still on the list, we pretty much cleared the day hikes.

In the winter we hit on snow-shoes half-moon lake and the trails in Snake River Canyon. Once the snow melted we hit Mosquito Creek and Red Top Meadows were we explored Munger Mountain. Closer to home we cleared out Hagen’s Trail, Woods Canyon to Crystal Butte loop, Goodwin Lake and Wilson Canyon.

The regular bicycling to Spark slowly sparked a reemergence of my interest in bicycle touring. I found myself in reminiscence and slowly drawing up plans for yet larger, bigger trips. In the end, I decided to start doing S24O, that is sub-twenty-four-hour-outings by bike, but by then the winter snows had already set in and I had to wait until the spring thaw.

Volunteering

One odd item was a highlight of my summer. Volunteering for the Lion’s club in Jackson. We helped with a hot-dog feed for kids at Kid’s Fishing Day and latter they hit us up to help with a breakfast feed at the County Faire which we helped out with great zest.

A Feast of Films & Books

We feasted regularly on manga, non-fiction, anime, and a pile of films. But this deserves it’s own separate entry.

Zen & Simplification

Jackson is a very restless community. A place that truly inspires you to constantly be going, always amping up the stress. To combat that, I bought some zafus and zabutons, read a long list of articles online on how to sit zazen and gave it a try. In the meantime, I read through The Three Pillars of Zen and skimmed through half a dozen other texts related to the practice. I am not quite sure if it has helped or not yet. For a time, it certainly encouraged me to take some time in my crazy day to just sit.

A second thought also began to bug me. That I was simply drowning in stuff. I had boxes and boxes of notes from college, books that would never get read again, cloths I would probably never wear, broken computer parts and duplicate tool sets. I started trying to organize everything and most importantly started gathering more and more stuff to dump into the grand box of donations. By the time we moved, I unloaded one entire pickup truck load of stuff. The result is a feeling of being so much more mobile, so much more free. When we moved, everything we owned fit into a single U-Haul and we did it all on just a little over two grand. That is a sense of freedom I am just not willing to trade.

The Wild & Unexpected

Two big unexpected events happened to me this year.

First, the Beast hit a deer outside of Boise. As a sixteen year old vehicle, it was totaled. I took my insurance pay out of three grand and walked. It was a really sad event for me. I had that explorer since my second year of college. My first car and one that I practically lived out of for some time. I immediately started looking for a new vehicle and came upon a craigslist add for a 2014 Toyota Tacoma in North Carolina. It fit everything that I wanted: manual, V6, tow package, low miles. I flew out for my conference and called up the owner to schedule a test ride that night. Bought it and drove it all the way home to Wyoming.

Second, after a great deal of discussion we decided that Jackson simply was not the place for us and we wanted to move on. Particularly, Jess really needed to advance in her career just as I was doing in mine. So she started the job hunt, and unlike past job hunts, found immediate success. In no time at all our Christmas plans went from simple, to packing up and moving. We landed in Greenlee County Arizona in a little trailer in an unincorporated community along the New Mexico border. What surprises life throws us.

Abandoned Projects

Unfortunately, I got to very few of my projects that I enthusiastically proposed last year. In my wake, I left a constant growth of crazy ideas and half-implemented works. This is pretty much becoming my annual tradition.

Announce a bunch of fun projects. Put them on my to do list for a few months.

Then scratch them off and go read a book.

The Searchable Lovecraft

An elastic-search powered searcahable index of Lovecraft’s works. Type a query get back the stories and lines that query was found on. I intended this to be a meet up demonstration for a talk that I never gave.

The Menu

A cookbook containing all my favorite recipes and a complete collection of what I consider my “repertoire” of cooking delights.

The Photography Review

I started the process of going through all of 2015s photographs in Lightroom.

However, after a month of digging through files, I really started to lose a lot of interest in photography overall. There is just so many photographs being taken these days and other than tagging them and forgetting about them, I really was not in the mood for post production at any point in time through the year.

The 30 Year Review

My shelves hold hand written journals going all the way back to grade school.

One crazy idea that I had was to type up the last eighteen years of journals in to a giant document then typeset and print it out in hardcover. I got through my first year of college and then lost interest in the pain of data entry.

Magic Cards

Sometime in the summer I realized that there was a game store in Rexburg, a short two hour drive away and lost myself in the daydream of getting back into playing magic. I picked up my old boxes of cards from home, bought a couple hundred dollars of the cards from the current sets, went to one Friday-night magic and lost interest.

Rusty Centipede

Rust went 1.0 this year and yet I haven’t touched Rust since it’s beta. Last time I tried to compile the Rusty Centipede it broke in maddening ways and I never was able to get the build to work.

… and NaNoWriMo, The Weird Tale, my blog in general, the Renaissance Man project, blog re-write, interactive travel-map, link-posting website, and updating my campaign setting.

2016 In Resolution

Once I really start to look over the year, go from thinking that I really got nothing done to wow, I really took care of a lot. My only regrets would be that I abandoned a lot of larger projects and spent very little time knocking out more of my multi-day hiking trips that I had previously planned out.

So what would I want out of this next year? I would want to settle into Arizona and truly explore the new countryside. I would want to find some social connections, find a group to roleplay with, look into the local grotto and make professional contacts in the local community and in Tuscon. I would want to keep up the reading, gaming, and film watching.

Cultural Goals

I already have a reading list prepared and would add on to it a desire to watch one film a fortnight, two seasons of shows a quarter, and set aside some serious gaming time in the new house.

  • Watch more films (try for once a fortnight)
  • Watch more shows (try for two seasons a quarter)
  • Complete the reading list
  • Play more video games

Get Out More

One of my regrets in Jackson is that I let the community make me very claustrophobic. The rush of tourists. The brisk attitudes of the locals.

Eventually, I just didn’t want to go out anymore. This time around, I want to really take advantage of my telecommuting opportunities. Take time to work from Starbucks or a local restaurant. Maybe commute from camp or a nice picnic ground. Take a few more times to go out alone and really contemplate the world.

Spend more time out on the trail. Spend more time going to the movies and exploring nearby communities. Start actually working towards that big out-of-the-country trip.

  • Work away from home more often
  • Quarterly writer’s retreat
  • Get out to the theater be it film or stage
  • Get out of town once a month
  • Attend tech, roleplaying, and caving meet ups in Tuscon
  • S24O Bike Tours
  • Some trip ideas:
  • Alaska
  • Puerto Rico
  • Mexico
  • Train Ride to Durham

Write More

Last year, I said I would do 12 blog articles and set out to do that right away.

In the end, I just stopped writing altogether through the spring and most of the summer. When I returned, I found how much I had missed it! Yet, I never did do that weird story, write for NaNoWriMo or shuffle through my campaign setting the way I had said that I would. Somehow, I forgot all about it. This year, I want to write more. I want to write more blog articles. I want to write more short stories.

Create More

Besides just writing. I want to create more. I want to spend more time working on my drawings. More time playing the fiddle. More time just creating new things be it cooking, carpentry, or programming. I already have some crazy ideas like building a camper for the truck and updating my blog.

  • Play my fiddle
  • Spend more time drawing
  • Build a truck camper
  • Rewrite TimeKeeper
  • Rewrite back end in Rust, Go, and Python
  • Rewrite the front end with React
  • Add Google account authentication
  • Build up my consulting business
  • Rewrite my blog as a static website

Waste Less Time

Waste less time, or better put waste time better. One thing that I realized in Jackson was that I tend to deffer to spending time poorly. Instead of hammering through work I wander about the house cleaning things that already clean. I waste hours procrastinating on projects that I don’t have any interest in really doing and would be better off simply scratching off the list altogether and moving on to something better. I spend too much time organize the altogether too much stuff that I own. I spend not early enough time watching the sunrise, sitting zazen, and really listening to music.

  • Less procrastinating on my day job. Less twelve hour days with four hours of intermitent, unneccessary chores
  • Try to see the big picture more at work
  • Cut back on caffeine and try to get more energy in the day
  • Make the social media fast an annual thing
  • Sit zazen and exercise daily
  • Simplify all the “stuff” in my life
  • Waste less time procrastinating on projects I don’t want to do and more time working on the projects that I’m passionate about.
  • Figure out what the above means.
February 16, 2016

2016 Reading List

Filed under: Literary Criticism part of Annual Reviews

To match up with the list of books and films read or watched in 2015 is a list of books that I hope to get to this year. There are a lot of re-reads in here. I am finding that as I get older I am much more inclined to step back and re-read a good book then I am to always be searching for the next great thing. I’ve also grown a lot more choosy on what it is I do start up reading. There just isn’t enough time in a year to rush though a paperback a week like I did way back in High School. I also suspect the list will evolve substantially as the year goes on based upon my seasonal whimsy and discovery of new authors.

*Re-read

Fiction

(Total: 22)

Novels

Graphic Novels

Non-Fiction

There is no way I will be getting to all of these volumes. For a lot of them, like Pic Iyer’s Falling Off the Map, The Open Road, and The Art of Stillness – I inclined to only read one. Likewise, a lot of the philosophy texts, I doubt I will be getting to all of them. And my employer also gives me a reading list of sorts which I haven’t added to the pile of computing volumes.

(Total: 27)

General Non-Fiction

Computing

Philosphy, Zen & Theology

Roleplaying Game Rulebooks