Posts Tagged ‘GTD’

In Defense of Text-Based GTD Methods

September 20, 2017

Okay, so the title of this post is not fair to Robert Talbert, who talked about why he is going away from a text-based approach to Getting Things Done and went back to using ToDoist. However, this is a post I have been meaning to write for a week, and it fits in perfectly with what Talbert wrote.

Basically, Talbert wrote that he is moving away from a text-based approach to organizing his life (Todo.txt) and back to the ToDoist app. He explicitly said that this is a personal decision, and he is just reporting what works for him. I am going to describe a way that I solved one of the issues he describes in his post.

Background: I organize my word by having a plain text file on my work computer with all of the things I need to do (in part so that I can use with it, which I love). I do not use the Todo.txt method, and I think that I have probably evolved far enough away from Getting Things Done that I should not be referring to my process as GTD at all. However, I evolved from GTD, so there will still be a lot of overlap.

In addition to my text-based ToDo file, I use

  1. I ssh into my work computer to write down things I need to do if I am on a computer.
  2. A hipster PDA to capture ideas when I am away from a computer.
  3. I use a tickler file to capture items that I do not need to work on now.

Talbert’s main problem with Todo.txt involved syncing, and it sounds like a real problem. However, I never expected my hipster PDA to sync, so this is not an issue for me.

Talbert also mentioned that there is no easy way to do recurring tasks in Todo.txt. He talked about looking into cron jobs to take care of this for him, and he decided that he would rather have an app that just works (as Todoist does—you just click a button or two to make it the task keep reappearing regularly).

I opted for the cron job approach, which I explain below.

First, I will describe the old way. I have lists of recurring tasks I need to do every day. For instance, here is a list of tasks that I need to remind myself to do every Monday/Wednesday/Friday, the days that I teach (the details are not important, although it is worth telling you that I teach Math 124 and Math 343 this fall):

Check Canvas for pre-class work at 10 am
Change Dailywork in Canvas
Update Actual Plan
Grade (Daily Homework for sure, maybe other things)0 1 * * 1,3,5 /usr/bin/python Dropbox/HodgePodge/

Look at next class’s materials

Collect Daily HW in class, give to TA
Change Dailywork in Canvas
Update Actual Plan
Look at next class’s materials

These are things I need to think about every day I teach. The old way was to print out this list at the beginning of the semester, put it in my tickler for the next MWF, read it, type all of the above items into my text-based ToDo list, put the paper list back into the tickler file corresponding to the next MWF, and then delete the items as I do them.

It occurred to me, though, that I could just have the computer write these tasks to my text-based ToDo list. So I wrote a Python script (called that does it and set a cron job to schedule the Python script (cron is a scheduler for Linux machines).

First, here is my cron job code. I just typed “crontab -e” in a command line and added the following line of code:

0 1 * * 1,3,5 /usr/bin/python Dropbox/HodgePodge/

The initial “0 1” means to do “0 minutes after 1 am.” Then next “* *” means do any day of the month (1–31) and any month of the year. The final “1,3,5” means do the first, third, and fifth days of the week (MWF). So “0 1 * * 1,3,5” just means “do something at 1 am every MWF.” What should be done is to run Python (located at /usr/bin/python) on the file at “Dropbox/HodgePodge/

That is it—the computer now runs that Python script every Monday, Wednesday, and Friday. The Python script is below:

with open(“Dropbox/ToDo”, “r+”) as f:
old = # read everything in the file # rewind
f.write( “343:\nCheck Canvas for pre-class work at 10 am\nChange Dailywork in Canvas\nUpdate Actual Plan\nGrade (Daily Homework for sure, maybe other things)\nLook at next class’s materials\n\n124:\nCollect Daily HW in class, give to Joe\nChange Dailywork in Canvas\nUpdate Actual Plan\nLook at next class’s materials\n\n” + old) # write the new line before

Basically, this code (which I stole from someone—probably someone from Stack Overflow) just copies what was already in the ToDo file, prepends my new items for Math 124 and Math 343, and overwrites the old file with both the new information and the old (so it effectively just adds some stuff to the beginning).

This has worked well—my to-do list is ready for me immediately when I get to work, saving me a couple of minutes. In addition to, I also have,,, and, which all have their own cron job. Notice that both and both run on Wednesdays—to be safe, I just schedule the at a different time (12:30 am, which is

30 0 * * 1,3,5 /usr/bin/python Dropbox/HodgePodge/

in crontab, where “12 am” corresponds to the first 0).

I agree with Talbert that this is all personal preference. However, I like my system, I just did this a week before Talbert posted, and this seems to have a nice harmony with what Talbert wrote.


Reducing Stress with Tickler Files

March 25, 2014

I have been annoyed a bit this week with other faculty members who do not reply to email. My best guess is that these faculty members just lose track of the things they need to do (like respond to my email). So as a public service, I have decided to write about the single best thing that has helped me keep track of what I need to do: tickler file.

I learned about the tickler File from David Allen’s Getting Things Done.. A tickler file is essentially a system where you can write notes to your future self. Here are the basics:

  1. A tickler File consists of 43 folders labelled 1–31 and January–August (31+12 months=43).
  2. The folders labelled 1–31 correspond to the next month. So if today is March 25th and I know that I need to call Buffy on March 27th, I simply write “Call Buffy” (ideally with her phone number) on a sheet of scratch paper and put it in the folder labelled “27.”
  3. If I need to call Buffy on June 6th (and today is March 25th), then I write “Call Buffy on June 6th” and put it in the folder labelled “June.”
  4. I check the folder every day; today (March 25th), I checked the “25” folder; tomorrow I will check the “26” folder.
  5. On the first of April, I will check the “April” folder and distribute the notes to the appropriate 1–31 folders. I do a similar thing on the first of every month.

That is basically it. It is not complex, but it prevents me from forgetting about things; more importantly, it reduces my stress, because I know that I will not forget things.

Finally, I use this for things other than simple tasks like “Call Buffy.” I use it to remind myself to start working on a paper, to remember whose birthday it is, and to let me know what I need to do to prepare for class that day. It allows me to put off non-urgent decisions without worrying that I will forget about them.

My wife has started using my tickler file. She asks me to remind her of things that she needs to do if they are more than a month away.

This is a low-cost, high-reward system. You should start using a tickler file if you haven’t already.


September 7, 2010

As a graduate student, I was never aware at how many different hats a professor must wear. Here is a list of the different roles I am currently playing:

  1. Calculus Instructor
  2. Linear Algebra Instructor
  3. Researcher
  4. Math Society co-advisor
  5. Putnam coach
  6. New Building Committee member
  7. Textbook author
  8. Thesis advisor to one student
  9. Reader of a senior thesis to another
  10. Major advisor to six students
  11. Group Theory Seminar organizer
  12. Chair of Committee on Math Education Curriculum
  13. Member of committee to hire new faculty member

I am probably forgetting some, but this is not unusual for a professor. On top of this, professors regularly give talks at different venues; this is sporadic, but it takes a considerable amount of time to prepare the talks.

I have been working on ways to do all of these jobs well, and to do all of these jobs in a stress-free way. Here is what I have come up with:

  1. I do a lot of what is suggested in Getting Things Done. This is been the single most effective thing for my productivity, particularly with the “stress-free” part.
  2. I have started heavily scheduling activities in my calendar. A typical day includes time for my classes, time for research, time for internet, and time to meet with students. I schedule three 30 minute internet sessions. I do not keep them well, but it has had the effect of limiting my time-wasting on the web.
  3. Jason Buell wrote about how Jerry Seinfeld would put an X on the calendar for every day that he wrote. Once he had a chain of X’s going, he wanted to keep writing so that he does not break the chain. I have started doing this with research; I have a chain of 9 right now.
  4. I have started running to and from school. I typically run every day except Wednesday, which is when I bike/drive in with clean clothing and fresh food for the next week. This allows me to run 9 miles each day, but the running only takes 40 minutes longer than driving would. So I get a 9 mile workout in only 40 minutes (note: I normally cannot run 9 miles in 40 minutes).
  5. I now wake up at 5 am. I work for two hours, take care of my son for 45 minutes when he wakes up at 7 am, and then run to work. I just started this today, but I got a lot done between 5 am and 7 am. This has the added bonus that my entire family now goes to bed at the same time. (I am normally a night owl, so this is a bit of a painful switch; however, I am less productive at night—I am a night owl because I have more fun at night—so working in the morning works well for me).

Tips and suggestions are always welcome in the comments.