now() {
echo $(date "+%Y-%m-%d %H:%M:%S") - "$@" >> $HOME/.now
}
Usage: now "Working on Project A"
now pause
now continue
now done
You won't get a nice report and you'll have to calculate hours yourself, but it supports every edge case you can think of. Need to back-date an entry? Just open the file and change the timestamp. Want to nest tasks? Just do `now $ working on sub task` and you can easily see the indentation.Aliased it to '@'.
This is something people should write for themselves because the best usage comes from tailoring it to your own particular needs. Also, you have to maintain it then it may not get all featured-up and bloated. Maybe. :)
dun started
dun Implemented feature xxx
dun reddit and hn **
dun Fixed bug xxx
dun lunch **
Without an argument it just opened the log file in vim.I like this style of recording things but I would like to be able to log back to a server from anywhere and have things like git commits added as well for additional context. And then there is report generation.
# from https://news.ycombinator.com/item?id=7411120
export NOW_FORMAT='%F %T'
export NOW_FORMAT2='+%Y-%m-%d %H:%M:%S'
export NOW_FILE="$HOME/.now"
now() {
if [ -e $NOW_FILE ] &&
last_line=$(tail -n1 $NOW_FILE | cut -d " " -f 1,2) &&
time0=$(date -j -f "$NOW_FORMAT" "$(tail -n1 $NOW_FILE)" "+%s") &&
time1=$(date -j "+%s")
then echo "ET $(( $time1 - $time0 ))" >> $NOW_FILE
fi
echo $(date +"$NOW_FORMAT") - "$@" >> $NOW_FILE
tail $HOME/.now # show the last few lines
}then you can finger(1) and get info.
It is both simple to use and efficient, everything is stored in a SQLite database (easy to backup and extract data out of it) but anyway, the reports are really well made and can be used to do your work reports for your customers. I managed more than €100k for of work with it without a single loss of data, failure or any kind of issue.
goal ()
{
if [ $# -gt 0 ]; then
MYGOAL="$@";
else
echo Your current goal is: $MYGOAL;
fi
}
That's it. Put ($MYGOAL) in your PS1 and type "goal fix this bug" or "goal working on that thing". No args just echos back (redundant).Not for me: Uses a format of some application that I've never heard of, on OS X which I don't own.
Since this is the first time I heard about TaskPaper: Are there alternatives for the other two big operating systems (or at least one of them)?
'task reports' lists a number of all the premade reports that will give you some of the information you are looking for. You can also list reports based on status by doing 'task status:pending'. Please see the docs page (http://taskwarrior.org/docs/tutorials/filter.html) on using filters.
The burndown reports are pretty useful too (they are graphical and can help you visualize that status of a project very easily).
Try adding annotations to your tasks.
$ task <id> annotate "text"
This adds a timestamp and a note for that particular task.It lets you add tasks like this:
$ t browsing HN
Started: browsing HN (now)
$ t @website writing blog post
Finished: browsing HN (0:12)
Started: @website writing blog post (now)I made doing because I get manic and don't even realize I'm switching to a new task until I've already forgotten what I was doing before. It's probably not an issue for most people. So, for me, I have Day One pop up every hour and ask me what I'm doing, which then gets converted to a "WWID" file in nvALT via the library in doing (and Hazel). If I do remember to track between tasks, I just jot it off on the command line.
I love the idea of a timer, though. I do use Timing to do something similar. http://timingapp.com/
And the organization by nested CSVs has some great potential for longer-term data collection.
`doing now writing too long of a post on HN`
for instance:
23:34, task started
00:09, task done
expected time spent: 35 mins
reported time spent: -24 mins
Aside from this bug, I really like it and plan on using it.Some ideas, you can do very nice things through bash autocompletion, for example:
- immediate jumping between timelines (I have hundreds, by topic-project-task and so on)
$ tau jump proj tau<TAB><TAB>
/projects/taulog
/projects/taulog/android
/projects/taulog/appengine
..and so on..
- autosuggest for todo lists: $ tau done<TAB><TAB>
[ 1] setup JTAG probes
[ 2] write script to control probe
..and so on..
And after you use this for a while you realize it can do more than manage log messages and todo lists, the same interaction can be used to quickly access bookmarks, reference material and local paths you often have to `cd` into :) $ doing estimate 3h fixing bug 1234
[ time passes/working ... ]
$ doing done ["fixing bug 1234"]
done fixing bug 1234: task took 1d5h50m longer than estimate
$ cat ~/.plan
2014-03-12 12:00:00 begin "fixing bug 1234" (3h)
2014-03-13 17:50:00 done "fixing bug 1234" (1d8h50m) [+1d3h50m]
Does something like that already exist?https://github.com/pkamenarsky/atea
Not perfect, but as close as possible
- project-based task management
- proiority ordering of tasks
- Dropbox-based syncing of one or more task files
- time tracking
- comparison of real times to estimates
So, in the end, maybe it is actually the perfect solution, and it is free, too.For US based folks, here's the US link: https://itunes.apple.com/us/app/tyme/id670592452
You can drag cards between lists (To Do, Doing, Done) (feels nice to drag items to the "Done" pile and build a long column), has check-lists in cards for sub tasks, and works everywhere.
I found Mirakel[0] but I do not think that was the app promised by the original dev. Still googling after I hit submit out of curiosity.
And by the way, I have no idea what TaskPaper is nor do I care. All I care about is that I can jot down some memos while I'm in my little linux terminal.
This looks like a great way to accomplish that. Will be trying it tonight while I work on some stuff.
do shell script "cd ~/Downloads/doing-master; gem install doing" with administrator privilegessmth like:
doing>