Wednesday, November 23, 2011

Using IRC as Time Tracker

I have tried all sort of time tracker, todo lists and what not but still don't really get  what I want out of that tools. The requirement is very basic and simple, a tool that allow me to track how much time I have spent on certain things throughout the day. While there are lot of great tools with a degree of simplicity, it still having too much friction for me to effectively use them.

Emacs orgmode  I think pretty much close to what I want. That just a guess since I just gleaned over it's features and what people are saying about it. But to learn emacs just to use this is a bit too much. I took note in vim in outline mode - that's how my mental mode work. It would be nice if vim can record the time whenever I add new outline. Most of the todo lists or time tracker out there only allow you to define simple title and explanation of the task. If that was web based app, don't ever think of having some outlining support.

Then I noticed that it quite easy for me to rebuild my mental state on what I have done throughout the day by looking at my svn commit log or the skype chat log with my colleagues. So I stop looking  for the tools and just used the history browser of our svn to compose my daily report. It work well except that not all tasks would have a commit log - or in other word something that has svn repository. I might be doing some server config  or work in some web interface and all these not related to any of our svn repo.

The skype chat log gave me an idea that I maybe can use it to track my time. Each post got a time stamp so it perfect. But to whom should I chat with ? Setup new fake account ? Possible but I think there must be a better way. Enter IRC. I used irssi as my irc client and since it console based app, that mean almost no context switch in order to use it. It just few SHIFT+Arrow key away from the current console. To use public irc server for this definitely no-no. Setting up the whole irc server seem a bit over kill although is much easier nowadays thanks to apt-get.

Searching around, I found hircd - python code (in 400 lines) implementing basic IRC server. Simply run the python code and fire up irssi to connect to localhost. It just work. Automate some tasks such as automatically joining a channel, autolog on and I'm ready to go. If you work on multiple project and want to split the log, we can just create new channel but for now I stay in single channel as it easy to keep track.


Todo:-
1. Put the chat log ($HOME/irclogs) into spideroak synced directory.
2. Integrate with pormodoro technique


Monday, November 7, 2011

Read text file on non JSR-75 phone

So my Samsung GT-E2230M does not support JSR-75 which is Java API on mobile devices that allow access to the device's file system such as the SD card. This mean any midp application in the phone can't  simply open arbitrary text files and also mean I can't use Opera Mini save webpage feature.

Searching around, I found EbookMe application that allow me to package a text files into a complete midp application to be installed on the phone just like any java apps on the phone. It a little bit cumbersome but at least now I have something to read while in waiting and away from my laptop and Internet connection.

Using it quite simple, provided you have Java properly setup on your system.
sh ebookme.sh -Dname="Whatever Prog" -Dout=whatever whatever.txt
The unzipped tarball provide a wrapper script ebookme.sh that you can run by simply passing the text file name as parameter. The -Dname and -Dout is optional to customize the name of generated midp app. The command would produce 2 files - whatever.jad, whatever.jar. You then transfer whatever.jar to your mobile phone and install it like a normal midp application.

Another limitation of the phone is it can't open anything more than 200KB. This mean for large text such as the free book The Art of Community by Jono Bacon I had to convert the pdf into text first and then use unix split to split it into multiple files.

Recently, I'd also found html2text python lib that allow you to convert any HTML page into text file formatted in markdown. This make reading the text on the small phone screen much pleasurable.