TagTime hack on iOS using Prowl


#1

Continuing the discussion from A good approach to merge TagTime logs:

Thanks for asking!

Here’s a rough description that I put together a while back for @chipmanaged and @afcuttin. Either of them may have taken it further by now.

I’ve got a partially-working, home-grown, hacked-together system that lets me answer pings on my phone.

Let me outline what I do to make this work for me, elements of which might be useful to you even if you go down another route. But I think you’ll need to hack this together in a way that works for you.

You might find that getting half of the solution is sufficient; notifying your phone when there’s an unanswered ping is a prompt to remember what you were doing, which helps when filling out the tagtime log retrospectively. I get value out of the notification even when I don’t actually answer the ping from my phone.

Apologies for the relatively unedited brain-dump that follows. I’ve prioritised pressing ‘send’ over ensuring that it flows coherently. Holler if you want anything better-explained or exemplified.

I’m happy to clean up and share any elements of this that sound useful to you. Some of it is already on my github fork of TagTime But a lot of it isn’t there yet, because I’ve only cleaned-up & uploaded things that seem directly re-usable.

Many pingable devices

Once upon a time, I had two mac minis (one at home, one at the office), a macbook, and an iPhone. Now I mostly use just the macbook and the iPhone.

In the ideal case, I’d only get prompted on my phone if I’m not at any of my computers, and only get prompted on the computer that I’m sitting in front of. I’ve used 2 tactics for this. The first was to make it so that the tagtime window should only pop up if the machine isn’t idle. (q.v. idletime on my github)

The second involved having the desktop clients update a central location saying that their ping had been answered; if the ping wasn’t answered within N seconds, the ping got sent to the phone. It seems that I had to run this on a separate machine, presumably because my mac mini put itself to sleep when idle.

Prowl Notifications

Here’s a brief description of the chain of events that for me is a phone ping.

To ping the phone, I use an app called Prowl If you’re familiar with the OSX desktop notification program ‘growl’, they’re similar in many respects. And I think you can configure growl to notify prowl. (Which sentence hardly seems that it should be English.)

I can send prowl a push notification, and a prowl notification can be linked to another app, or to a URL. Tap the notification on the phone, and the action happens.

So I set the action to be a mailto: URL to send an email. So tapping the notification opened the iOS mail app, with a recipient, subject, and body set. (It broke recently, now only sets one of the body and subject, so I chose the body text!)

My body text, as you might imagine, is the single line of the ping that we normally see in the TagTime log.

Where does the email go?

I created a ‘recipe’ on ifttt.com to append to a text file in Dropbox on receipt of a #tagged email.

This has some side-effects.

  • Obviously, I’ve granted Dropbox permissions to ifttt. If this worries you, there are ways of constraining its access, like creating a sock-puppet Dropbox account that then ‘shares’ a folder with you & your real Dropbox account, and then granting ifttt (or wherever) access using the sock-puppet’s login.
  • If you’ve got an email signature set in iOS, it’ll be appended along with the ping line. You’ll have to filter that out in some later step.
  • The ifttt append-to-text-file action seems to insist that the file end in a .txt extension. So for convenience, I’ve named all of my TagTime log files end in .log.txt

The resulting log file…

Even if you were brave enough to let ifttt update your main log file, you’d have to deal with some problems:

  • ignore that pesky email signature, maybe by only working with lines that start with a number: ^\d+
  • unless you’re super-diligent, you’ll answer some pings twice and some pings out of order

Thanks for providing a reason to write some of this down.


A good approach to merge TagTime logs
#2

It should be possible to set up a website that sends out tagtime pings to a bunch of people at once via the Prowl API.


#3

Yes. One feature I like of my setup is that if I answer a ping on the desktop, the notification doesn’t go to my phone. That could also be replicated using a website.

Obviously that means that my phone pings are a few seconds behind the desktop pings. If you’re a purist then you can answer “what were you doing 10 seconds ago” on the phone…


#4

Hi Philip,
That’s a dead link, it seems.


#5

Sorry, fixed. I often forget that my GitHub username is pjjh rather than pjh…

Philip’s fork of TagTime


#6

I just wikified this in case anyone else spots fixes or clarifications and wants to edit @philip’s instructions directly.