Recently my workplace started being serious about requiring time tracking. While I understand the numerous benefits, I'm not a fan of actually doing it. A way to turn it into an opportunity was to create my own time tracking application. So a few months ago I started waid. Waid (What am I doing?) as yet another command line time tracker. All that makes this project special to me is that I'm writing it, and I'm writing it in Go.
I've been interested in Go since I saw some talks from Rob pike at Google IO in 2012. However, At this point for me profess appreciation go for any thing other than Go's aesthetics would be bullshit. I haven't worked in the language long enough or written anything that compares to the size of applications I work on in Ruby. I like a lot of the ideas that Go incorporates, but my appreciation is superficial. Waid presented a perfect opportunity to do something not quite trivial in go.
At this point waid handles all the stuff I wanted it to do initially. It can: start and stop a time, add an entry, clear a list, list my time with a summary. And I've gained some valuable experience, and some basics of creating something larger than a hello world program in go. The verdict is that I have a long way to go until I understand how larger Go programs are put together, and what proper Go code looks like. But whatever, its a different paradigm, and I'll just need more experience.
Luckily there are some things that I'm looking to add/fix such as richer entry editing, and handling. Most especially I want to make a companion server application that keeps the entries the same across multiple computers.
I'm really excited. This will expose me to a lot of aspects of writing we applications in Go that I wasn't sure how to approach before. I'm looking forward to learning about stuff like: deployment, configuration, authentication, etc.
More to come.