Recently I've been doing a lot with working on the tools I use to do the things I do, particularly with regard to the computer. It's mostly in the hope that improved efficiency will lead to decreased typing, but also just because it makes me feel good to have my tools help me rather than having to fight with them.
So, last month, while I was in nethack mode, I watched the ttyrec of Eidolos's first ascension of the devnull tournament. Neat stuff. I noticed that he had some nifty UI features not available in the stock nethack, most notably a lot of colorized output to make important things pop out. Sometime last week, I finally tracked down his tool, Interhack. It's incredibly cool, sitting as a layer between the player and the game and allowing a lot of customization of the UI, and it's in Perl, which means it should be pretty straightforward to hack in new features.
In order to get Interhack working, I ended up doing a world remerge on my system. That's always exciting. Maybe vlc's interface issues will have sorted themselves out. (Last upgrade lost me some UI features, and I haven't gotten around to tracking down what I did yet. Who knows, maybe they'll magically be back. Yeah, right.)
None of that is what I wanted to talk about, though. See, while playing with Interhack a little, I noticed Eidolos had provided a plugin to send an IM to Hiveminder directly from Nethack. Something about it caught my eye; perhaps the idea of sending an IM to give yourself a TODO. The source comments say that when he isn't playing nethack or writing tools for it, Eidolos works on Hiveminder. Intrigued, I went to check it out.
Now, I only joined last night, so I've been playing with Hiveminder for less than a day, but it's certainly caught my eye. I think there's some fundamental way in which the folks developing this thing think like I do. I have a tendency to jot down things I need to remember all over the place: on a handy sheet of paper, a Post-It(TM) note, on my whiteboard, in an appropriately named text file in my home directory, in a todo.txt in my home directory, tagged :TODO: or :FIXME: in the source of whatever I'm coding on, in an email to myself, in an IM to myself, mentioned to whomever I'm currently talking (IM, usually, phone, occasionally), or just leave a browser window open to something associated. It gets them down and out of my obsession so I can go back to whatever I'm supposed to be doing, but I don't necessarily ever see them again. And it wasn't any better when I carried a PDA, as anybody who was in an NSO PTB meeting where I brought out the PDA, the laptop, the notebook, and the random scraps of paper well knows.
There are a couple of basic places things have broken down in the past. One, which was the death of the PDA, was UI for entering notes. That damn stylus was just too slow; it was faster to write a note to my self, let alone to type it in on a real computer. The other is actually looking at the tasks. Obviously with them spread all across creation and only appearing when I go to look for them, stuff gets lost.
So why am I feeling positive about Hiveminder? The somewhat cornily-named braindump feature, and the wide variety of communication gateways they provide. This combination means I may actually use it consistently for entering tasks, enough that I get used to it. Then it's just a matter of whether I actually use it to look for tasks. I'm hoping their email reminders might help with that, or that it just might be so useful I keep it open a lot (for entering things) and get reminded.
Braindump. So simple, and it seemed so uninteresting when I first saw it. And yet, it's so good. The idea is simple: you just jot down a quick note about a task you have, optionally adding some tags, details (priority, due date, etc), and further description using a fairly intuitive and simple syntax. Hiveminder's parser turns it into a (or more than one, if you jotted down more than one) task in their todo list for you. It's as easy as 'cat'ing it to the end of a todo.txt, but you get all the power of a database in the back-end once you've done it.
I mentioned gateways. In fact, remember that I first got interested when I found out there was an IM gateway. There is. In some ways, it might actually be more powerful than the main ("Web 2.0") front-end. And all you do is send commands over an IM connection to their bot (AIM or Jabber). I always have some sort of IM open, as many of you know. So I can keep a window open on the bot, and tell it a new task...you guessed it, in the braindump format. It can also show me tasks, search them, modify, or even show a random task. I'm starting to feel like a salesperson here...I really do think it's that cool.
In addition to IM, you can submit tasks via email (nifty), and you can export some/all of your task list to a text file (and edit it and send it back with changes/additions). This last is cool because they provide a todo.pl which will fetch these text files and send them back (as well as doing much of the other stuff you might want to do, now from your bash prompt).
So the bottom line is that there are tons of ways I can now jot notes down and have them all end up in the same place. It's all as easy as spewing it out of my mind into the computer and having it there for later.
The astute might have noticed this entry is also tagged with vim. It's my editor of choice, and I spend a lot of time there. Recently, I've been playing a bit with syntax files. That text file Hiveminder exports has syntax. It's simple, but it's there. Wouldn't syntax highlighting for it be nifty, so it's easy to catch typing errors and the important stuff stands out from the annoying (but necessary) background stuff? Yep, I did it. I've uploaded my hiveminder.vim syntax file over at http://www.vim.org if anybody wants to play with it. I think it's pretty cool.
I also wrote a bash_completion script for that todo.pl I mentioned earlier. I haven't posted it anywhere yet, but it's neat, too, and I'd be happy to send it to anybody who asks. I'll gush about how cool bash_completion is some other time, if I haven't already.
And, just for fun, while I was already playing around with stuff, I did a vim syntax for jlj (the client I use to post to LJ) entry files. It could use a little work still, like adding lj-specific tags, but it gets things done. I haven't posted it to vim.org yet, but I may. Have I mentioned how much I hate typing entries into a browser window/love being able to use vim for it? Yeah.
Oh, yeah. vim has spellcheck now. Nifty stuff. During all this syntax stuff I discovered that and enabled it. My syntaxes only check for spelling where it's appropriate.
no subject
Having known its chief architect a long time, I can say that there's some truth to that. I'll have to show him your post, it's cool that you've developed some stuff for it.
no subject
Please do point him my way.
(To he: since I'm totally guessing on some of the syntax (mostly what abbreviations are/are not legal for what commands/keywords at the moment), if you want to clue me in on any of the less-documented features, I'd be happy to correct the file accordingly.)
no subject
I can't do it because I don't trust myself to offload enough stuff into a system (so I always undermine my own offloading), but if you can do it well, it might be worth checking out.
no subject
I like tagging things. I like being able to tag things with lots and lots of tags, that make sense to MEMEME, so that I can actually get to them again. I really really like having a Todo* that I can sort out by type of task. Looking at my room and going "I should clean things somehow" is a lot easier when I can just hit the cleaning tag and see everything I need to do.
Andyeah. Yay for clever interwobby things. *runs off, because she can't think of anything else to say that makes sense, because she is full of Oz retellings and Drag Queens.*
~Sor
*Rhymes with "dodo" (as in the bird) and no, there's no real reason. Just a word I use.
no subject
Glad you're enjoying Hiveminder (and Interhack)!
no subject
I'm working on a no/minimal spoiler config for Interhack which enables a few basic features and has comments to help you build your own annotations/colors/force-tabs/etc. as you learn things. If I'm feeling really adventurous, I might try to come up with a way to provide an extcommand[set] to add them on the fly and save them to your config. Interested? Have any insights?
no subject
Do you IRC? You could come into #interhack on Freenode. It's mostly NetHack bot discussion these days (which is of course tangentially related to Interhack), but we still do talk about IH occasionally.
no subject
I've managed to reverse-engineer todo.pl so I now have todo.rb (I'm fluent in ruby, which is more than I am in perl). It takes your HM tasks and outputs them - in my case, to the desktop through GeekTool (for OS X). Yeah, so, it does exactly the same as todo.pl, except it's probably smaller and I know what it's doing.
I highly recommend having a list of tasks on your desktop - the problem I have is that I always forget to check up and so three weeks after something is finished I'll still have it on my todo list. Having it right there in front of me reminds me what I need to get done.
I have to admit, I use the web interface very little. IM + todo.rb is fine. If I had more time I'd probably add task creation to todo.rb and then use Quicksilver, since that's already embedded in muscle memory.
no subject
I don't think I mentioned it here, but I actually hacked a new option into todo.pl. "$ todo update" will do a download to a tempfile, open it in $EDITOR, and upload it back on exit. Handy for making complex changes quickly. I haven't played with doing searches along with commands at the command-line much, which would make it more useful.
I actually use the web interface quite a bit. Rather than keeping a todolist on the desktop I keep an open browser window with two tabs on the website.
First tab is a search: not/tag/@work/starts/before/tomorrow/[default stuff]
Second is: tag/@work/starts/before/tomorrow/[default stuff]
It makes it pretty available . . . it's just a couple keypresses to take a look at what I have to do. I use the IM interface more than anything else. Although someone mentioned they're working on something which sounds like a console interface to HM. If that's mature enough (or I get excited enough to make my own), I might switch over completely.
If you're a vim user, definitely check out the syntax file. It's pretty cool.
no subject
no subject
So far I've found the plaintext feature to be incredibly cool but not all that useful. Except with the dl/edit/ul in a single command; that brings it pretty far back into viability. The syntax highlighting is also handy when doing a braindump using a nice editor. (todo braindump)
[Thanks for inspiring me to actually post the rant I've been meaning to about extensions, btw, as I started to mention that I've symlinked todo -> todo.pl because it annoys me.]