Hacker News new | ask | show | jobs
by gtdthrow 2892 days ago
I wrote my own software, mostly scripts. Does that count?

I have a "todo" folder. It contains a subfolder "contexts", with one text file for each context. There are also "icebox", "inbox", and "projects" files.

I use vim to edit, and I've written a little command that lets me mark lines in my todo files with a "target context/file" and use the command to send them there.

I also have a command to let me add items to the inbox from the command line, they just get appended to the "inbox" file.

Say my inbox file looks like this: buy milk buy food clean garage send email to bob

I will then mark the lines in the file like so: buy milk @buy buy food @buy clean garage :projects send email to bob @laptop

Now I'll invoke my command, and it'll send all the lines ending in @x to contexts/x, and all the :y ones to y (i.e. icebox, inbox, projects).

I also have a little script that counts how many tasks are in my various contexts, so I can an overview. When invoked, it currently says this:

home:3 room:2 reflect:5 laptop:9 garage:3 (22)

Overall I'm pretty happy with it. I can add any functionality I want, and most of the time it just takes a few lines of shell or Ruby. It's extremely personalized because I'm the only user.

There are a few things that are missing because of the text file structure. For example, I can't easily reference back how many tasks belong to a given project, because I'd have to store references and introduce IDs, which would look terrible in a text file. At that point I should probably just switch to Sqlite. But that tradeoff isn't so bad - and working with text files is so much easier.

A few of the add-ons I've added with a few lines each include: - Recurring tasks: recurring/wednesday or recurring/01 contains tasks that will be slurped in every Wednesday or every 1st day of the month, respectively. I just loop through all the files in the recurring folder and try to match them to weekdays or #s. - integration with "calendar" file. I also wrote a clone of the UNIX calendar that takes my calendar file as an optional argument, highlighting days on which I have things scheduled and shows the appointments for today.

Calendar file has the following format:

Sunday, July 15th: Do thing Do other thing 3pm: Meet Bob

Monday, July 16th: Call Alice

The whole system has evolved over ~5 years or so, starting with a single flat text file I edited in vim. There are various pieces I added over time that I ended up never using, for example I have a stateful command to "choose" a context and then pop the list one at a time, that also lets me complete them. But I find I rarely feel like actually finishing random tasks off a context, I like to scan and refactor/reorganize the context before choosing what to do.

It's interesting how similar refactoring my todo list is to refactoring code. Refactoring gives me a lot of clarity on my tasks, and I typically refactor almost every task, some multiple times.

1 comments

can't seem to format - is the HN edit function just broken completely?