July 2008 Archives
While at cabooseconf last month, I found out about one of the coolest time tracking tools ever: punch. (Thanks to cardiod from OG)
According to its own description, it's a
I find this to be a much easier method of tracking time than many alternatives, including the zillions of time tracking/billing web 2.0 sites. In fact, an hour or two of hacking could leave someone with a pretty decent time tracking AND invoicing tool.k.i.s.s. tool for tracking the hours spent on various projects. it supports logging hours under a project name, adding notes about work done during that period, and several very simple reporting tools that operate over a window of time.
And wouldn't ya know it, it's as simple as gem install punch.
For those of you who use OmniFocus and won't be getting an iphone, this one could really come in handy. It's a ruby script that talks to OmniFocus via OSA, grabs all the items in a given context, then writes them as poorly-formed html over ssh to a predefined destination. Cheap and dirty, but it's the quickest way I've found to get stuff like this available anywhere, especially in a mobile phone browser.
#!/usr/bin/ruby
require 'rubygems'
require 'rbosa'
require 'net/ssh'
of = OSA.app 'OmniFocus'
shopping_list = of.default_document.contexts.collect { |x| x if x.name == 'Errands' }.compact.first.contexts.collect { |x| x if x.name == 'Shopping' }.compact.first
items = shopping_list.tasks.collect { |x| x.name unless x.completed? }.compact
def post_file( shell, file, datum )
shell.touch(file)
shell.send_command("echo \"#{datum}\" > #{file}")
end
def build_html(items)
"<ul>#{items.collect{|item| '<li>' + item + '</li>' }}</ul>"
end
Net::SSH.start( 'myserver.dreamhost.com' ) do |session|
shell = session.shell.sync
post_file shell, "~/shoppinglist.mydomain.com/index.html", build_html(items)
shell.exit
# session.loop
end
