On the 37Signals blog today there was some talk about Axl Rose and Frank Sinatra, two musicians I love to gab about:
Sinatra’s one take style produced classics. Axl’s dithering produced a pile of mush. We can all learn something from that. It’s easy to fall into a trap of nitpicking over things that don’t really matter. Instead, focus on the essence of what you’re doing. Press record, get it done, and get it out there.
Lately I’ve taken our first takes on demos for the new band, or just scrapping them and coming back to it when the time is right. Sometimes that means a different approach, sometimes a better room sound. I almost always go for a first take on a guitar solo, if I don’t double it with another one for maximum shred \m/.
With that in mind, an update on our progress with Strip should be forthcoming.
When we set out to build Tempo time tracking, we knew it would be important get out of the user’s way when they need to entering time. The way we saw it, there were three problems:
- Staying productive while busy is challenging – we often change tasks (and therefore the client we are billing changes).
- It can be difficult to accurately remember how much time we spend on individually tasks.
- It can be a real work-flow interruption to load up a website and type information into a form.
That’s why we created Tempo’s command line text interface. For instance, I can simply type in what I am working on next, and Tempo will time me. When I need to change tasks I just type in what I’m working on next and the last timer stops:
doing a screenshare demo #bigcorp @support
Similarly I can log time via this command line, not just start timers:
3:00 re-worked DataModel #strip @iphone @development
But if you don’t already have Tempo loaded in a browser then starting things up to enter your time can be an interruption in the flow, a disturbance in the force. Thankfully, text entry can come from anywhere! So we created various alternate ways to quickly enter time with minimal impact:
This text syntax has been a big win for us and our customers. While we’ve seen a few services out there implementing similar features, we’re pretty much the only game in town that takes it this far.
We’ve found that when people first try Tempo, the convenience of the command line and all these points of entry go unseen for a little while. We have a core group of customers that love these features, but many folks who might use them don’t know they are there until we show them and explain how it works. Then a light bulb goes off and we’ve won some new fans.
Obviously, that means we’ve got some work to do on the UI. The good news is that the awesome team at nGen Works is working with us to help us improve the ease of use and aesthetics of the application.
Meanwhile we want to expand what Tempo’s command line is capable of, and we could use your input here. Many of our customers have been asking for new features and we’d like to add in some of our own. But to do this we need to make some changes.
First the initial commands themselves (log time and start a timer) don’t actually have a command! This isn’t such a problem when the command itself is easy to distinguish — the widget, the bookmarklet, the website itself all send in a specific piece of text to parse. Things get much trickier with e-mail, where the commands also have to work, and where we have to scan the message for the command.
E-mail comes with a lot of junk in it, especially e-mail from web-based services, or e-mails quoting other e-mails. There are lots of tricks to parsing out what you don’t want, but finding a start command like this is like trying to find a needle in a haystack:
I am doing stuff
Yup, that would be a valid start-timer command. Now, if you check our text-entry cheat sheet, you’ll see that I’m fudging things a little bit here. We do require a keyword for timers sent in by email –
start. We are thinking about standardizing the use of keyword prefixes across text entry methods. For instance, this is our proposed syntax for timers:
start writing about the CLI #tempo @bloggingstop
And this is our proposed syntax for logging time directly:
log 1h did some stuff #tempo @developmentlog 1:30 …
Requiring a keyword at the beginning of every command would allow us to expand the syntax and add new features in the future like these:
stop 2h [ stop timer and add two hours ]stop -30m [ stop timer and take off 30 minutes ]start 1h … [ indicates I started an hour ago ]log start 3pm stop 4pm [ record 1 hour between 3 and 4 pm ]
We’re fairly sure this is where we want to take it, but we’d love to get some feedback. Let us know what you think.
Something is apparently cooking over at unspace, the people who’s brainchild was the RubyFringe conference last Summer.
I’d been thinking of trying to put together some kind of geek talent show or battle of the band geeks or what have you, and talking to some other hackers about it (as in Zed and Hampton), and this is bringing the idea back into my head. (I’m a bit of a ham, so I’m inclined to do these sorts of things.)
Zed’s Freehacker’s Union (FU) is a really cool group/grouping/idea and he’s pretty into doing technology and instrument hacking and the idea of putting together regular presentations or performances. I had been thinking of just trying to find the various Rubyists and hackers in the amorphous community who have bands or performance projects and get them all to play some show together in tandem with a conference like RubyFringe or as some kind of accompanying nighttime event. There seems to be interest in this sort of thing. Hampton had mentioned he was looking to put together some kind of website or page presenting hacker music projects (or maybe mixtapes??? just occurred to me now).
Anyway, enough thinking out loud from me, there’s work to be done.
July 9-12: the nerds are planning something!
My daily workspace is in Brooklyn at the Williamsburg Coworking space. I have to say it’s been a pretty rad place to work, and it’s way better than working out of the house or in a corporate office park. Needless to say, it’s your coworkers and environment that make it worth doing, and I’ve been pretty lucky that this space is run by a politically active art collective, and the people who show up here are all creative, positive folks who are also good coworkers; no one is noisy or rude, etc, and the atmosphere is quite relaxed.
In addition, we sometimes have really cool events here:
on friday, we will host “work at jelly” and at 2pm we will pipe the inaugural session of “Jelly Talks” featuring Chris Messina (Board member, OpenID) and Dave Morin (Senior Platform Manager, Facebook). starting at 5pm, we will break into a vivacious happier hour! we hope that you can clear your schedule, snag your laptop and join us – this friday (25 July) from 9:30 till 7pm!
I realize this is a bit late notice, but if you’re in Brooklyn today, feel free to drop by, say hello and check it out.
My friend the writer Warren Ellis is full of good ideas (and various poisons), and the one that he’s been kicking around to some of us lately is really compelling. He calls it PAPERNET:
The social letterbox may just be as simple, in the first instance, as a dedicated Gmail account, where I can just press Print without opening the attached document. In kicking this around within a Secret Society, my friend Alasdair Watson knocked together a proof-of-concept in an hour — email comes in, paper comes out. Automagically, like a podcast that spits out paper.
It’s not like a fax machine, where some bastard buys your number and there’s a sheaf of junk hanging out of the thing in the morning. It’s roll-your-own one-sheet POD. And it’s also subscription-based POD, if you know someone who semi-regularly does interesting things with a sheet of paper and decides to share. They’re either sending directly to your letterbox-email, or you’re on an announcement-only mailing list (or Google Group). Or, as I say, as simple as me pressing Print so they’re spat out for me to take to the pub, or on a train journey. And if they’re not especially personal, I can just leave the buggers on the table or the seat when I’m done with them, too.
Wouldn’t it be cool to set something like this up, the input AND output end of it?