My little are-you-ok widget tweets when it has been tapped or moved. It also tweets if it hasn’t been moved in 10 minutes. (You probably don’t want to follow @ayok_status, the timeouts change when I’m testing; that little guy can tweet a lot.)
But that’s the main functionality: tweeting when it doesn’t move. Setting 10 minute or 24 hours is just a parameter. I’m done!
Well, not exactly. Like many software projects, even though the main features are in place, 75% of the work remains to be done.
I need to do the battery stuff, putting the electric imp to sleep but waking up to monitor the current battery status with the fuel gauge. I also need to tweet when the batteries are low, probably have the device check-in every hour (or four) to verify it is still alive, even if it hasn’t gotten any attention. I can add battery level to that. Also, I need to check how much power the unit is using in different states (and make sure the accel goes to sleep too!) to verify my battery will last a long time.
And then I need to make a webpage to set all the parameters.
– How often do you need proof of life? Every 12, 24, or 48 hours? My 10 minute version is only for testing, I’ll probably switch it to 12 hours for the days I don’t spend at my computer.
– What do you want it to say when it doesn’t get anything? Do you want a tweet @ you? Or a DM (I don’t know how to do that programmatically but I’m pretty sure it is possible.)
– Twitter is easy but do you prefer email, twitter, or text? (Text is the hardest, I know Twilio offers this but I haven’t dug into it. I suspect email isn’t tough, the most difficult part will be deciding if it comes from embedded.fm or logicalelegance.com.)
– Is there more than one person who should get a notification? Do they each want to configure their info separately?
– For email and tweets, what should it say? I currently have several strings it randomly chooses from and then tweets. Will users want to be able to enter their own? How many?
local stringOptions = [ "No one has played with me since ", "I need to be pet but haven't been since ", "The last time someone filled my cuddle tank was ", "It's been eons since my last hug: ", "I'm so lonely, no one has paid attention to me for so long: ", "I'm hungry, hungry for hugs! Last feeing was " ]; local d = date(lastCheckInTime, 'u'); // UTC time local day = ["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"]; local datestr = format(" %02d:%02d:%02d", d.hour, d.min, d.sec) local choice = math.rand() % stringOptions.len(); twitter.update_status(stringOptions[choice] + day[d.wday] + datestr);
– Should there be a method (button on the webpage?) to show when the device last checked in and its battery level? Should it also show when it last interacted with its user or should that be private?
What other parameters should the user be able to configure? I’m not that good with web pages so having a definite plan would be good.
And then, there is the testing: needing to let time pass, waiting for things to happen. I suppose that means it is time for another cup of coffee. In the meantime, I can dream of shipping it.
Right “shipping it” is a can of worms unto itself. Well, worry about these things first. And then maybe how to make it nice looking. And then shipping it.