Thursday, June 28, 2012

Confirming my bias for t-shirts

I've been thinking about writing an article about this subject for a while, but based on events of the last week, it's obvious to me that the universe has been prompting me to do so. The last little nudge, described below, was what prompted me to finally sit down and put fingers to keyboard.

So, aside from the fact that I'm generally a bit of a slacker, I have a fondness for t-shirts. They're soft. They're comfortable. And, they more often than not have a symbol or saying on the front that is representative of my mood that day. It's like wearing my heart out on my sleeve, only in this one's on the front.

The whole thing started on Father's Day when my wife and oldest daughter presented me with my gifts, a couple of awesome t-shirts:



Now, before y'all think I've gone and lost my mind, I ask you to remember: I have a couple of daughters.  Bigger daughter is a huge fan of the new My Little Pony show.  The problem is, so is a significantly large population of adult males.  Bronies, they're called.  And, while I have to admit I do enjoy watching the show with her...No, really, it's not a terrible show.  Some of the plots are fairly complex and have lots of jokes for the parents!  Like, the bowling episode where everyone in the bowling alley is from The Big Lebowski.  And...you've stopped believing me.  Okay, moving on...

While I do enjoy watching the show with her, and consider myself a closet brony, that's not why I have My Little Pony t-shirts.  I have them because it's almost impossible to find themed shirts in kid's sizes!  Really, and truly!  Adult My Little Pony clothes?  No problem.  Kids?  Sure, if you want to spend $20 on a t-shirt for a four-year-old.  So, the reason I have a few of these shirts is I wear them for my daughter.  She can't, so I wear them for her.  That's my story and I'm sticking to it!

Now, the acquisition of these fine t-shirts made me realize that I need to re-think my t-shirt collection.  I haven't counted yet, but I'm sure I've got at least a hundred of the things.  As I've lost about 40 pounds in the last year, a large majority of them don't fit anymore, so maybe it's time to prune.  Before getting rid of them, though, I thought it might be funny to take pics of all of them and put them out there for everyone to marvel at.

Then, I forgot about the idea...

A few days later, though, Gizmodo ran a story about the "World's Most Awesome T-Shirt".  I'm not going to bother trying to find it to link to because frankly it was a stupid article.  The t-shirt was a $65 thing with nothing on the front except a tiny logo.  Sorry, I've got more brains than money...still, the universe reminded me I needed to write this article!

Then, I forgot about the idea...

But, two weeks ago I got my weekly e-mail from ThinkGeek.  Big fan of the ThinkGeek, they sell some quality stuff, but this issue had this baby:


I have to say, I thought about it for about 24 hours before laying down the cash.  DJ PON3 in Tron stylee?  It really does fit both of our styles (largest daughter and I), so it really was about spending the $20.  Once I made the decision, though, I decided to also take advantage of their "One Random Shirt of Surprising Awesomeness" special.  You spend $7, and they send you a shirt, whatever they have left.  What the hell?  I'll roll the dice.

My package arrives and what's inside?


Okay.  Being a math and science geek, I like it on the face of it! But, what could this equation possibly mean??  After racking my brain for a minute trying to think if I'd seen it before, I decided to look on the back...


Awww!  Have to be honest, I had thought of buying this one when I first saw it!  Well, that was a heck of a deal.  Rolled the dice and won!  That don't happen often enough.  And, lest we think I accept the plot of just any equation, I asked Wolfram Alpha what it thought:


Ha!  Confirmed!

As I said to my wife, this is such an awesome representation of our relationship.  We both had been going through some tough stuff early on and weren't too sure if we'd make it.  But, we took a chance and have a happy and loving home as a result.  This one is now in my Top 10 favorite t-shirts because of that.

Well, hell!  Now, the universe is practically SCREAMING at me to write this article!  Alas, though, I really had no idea what I'd write about.  I'd had some ideas floating around, so I let it percolate for a few days before the last reminder showed up.

My wife is friends with, and now works for, a fellow who owns a local horror-themed t-shirt company named Fright-Rags.  Fright-Rags doesn't do your typical horror t-shirt, though.  They often try to pull out some tidbit from a movie that only a true fan would know, such as the ever-popular "Damn enchiladas" from Friday the 13th.

Beyond the fact that they make a high quality product and have great customer service (their shirt folding peon's pretty awesome, too!), the owner, Ben, is a really great guy.  As an example, he has a friend with breast cancer who is without health insurance (oh, look, the Supreme Court just spoke on behalf of the universe today as another reminder!), so he put out an amazing, limited edition t-shirt with all profits going to his friend.  It's NSFW, so scroll down carefully!


Yeah, I know.  In 21st century America, I shouldn't have to call THAT out as NSFW, but there you are.  Anyway, after all of this, I mention Fright-Rags because they're currently taking part in Chase' Mission Small Business.  Please, please, please...click that link, sign in and vote for them!  These folks REALLY deserve to win the $250k.  Maybe that cute shirt-folding peon will even get a raise!  If there's anyone who deserves to win, it's Ben. The universe will thank you for it.  After all, it's been reminding me all week to tell you about it...

....or, has it?  You've now just taken part in an example of confirmation bias.  This is the failing of how your brain is built that forces you to favor information that confirms your beliefs.  On a small scale, confirmation bias is why when you break up with someone, every song seems to be a sad love song.  Or, when you are thinking about buying a particular model car, you start to see that car everywhere you look.   You'd probably seen dozens of that model of car the day before you decided to buy one, or heard that song on the radio before you broke up with your significant other, but  because you're thinking of it now you notice it more.

On a larger scale, it's why when trying to disprove some lefty/righty nonsense, you only find unequivocal righty/lefty brilliance to debunk it.  It's your brain telling you "you're right".  Sorry, it's not the universe or any other higher power talking to you.  It's just another example of how natural selection can never get anything perfect, least of all your brain.

Congrats, you now know what that fallacy feels like, and will never fall for it again!  See, a great article, and I snuck some critical thinking in on your ass.  Ha!  So, next time you're thinking some higher power is pushing you toward one side of a decision, just look down at your t-shirt.  It'll always steer you right...



Or.  Not.

Monday, January 9, 2012

A tale of great customer service

Last year, at Valentine's day, my mother-in-law bought our daughter a pink, stuffed cat. Pinky, as he's been named, is my daughter's "favorite and best!" Pinky sleeps with her every night and comes down every morning to sit with her as she has breakfast or watches TV. Out of the last four show-and-tells at school, she has taken Pinky to show off four times. I'm not exactly sure how to make this clear to you, but....

She really loves this cat!

My wife and I live in terror of the day something happens to Pinky. Since we got our new dog, we've found she has a fondness for chewing on stuffies. Since he is well loved each day, Pinky spends a lot of time in the washing machine and has lost a lot of his luster. You can see this clearly in this picture with him and a not-so-loved sibling.



So, on a whim, we decided to look around some to see if we could find another kitty just like Pinky we could keep on hand as a "spare". Now, we know clearly that should we need to replace Pinky, it isn't going to be a one for one swap. She'd know immediately it wasn't him. Our planned cover story is that Pinky's brother came to town to be her friend since Pinky got lost. Or, something like that.

After poking around for a few, I decided one night to just look at Pinky's tag. Sure enough, the name of the company, Galerie USA, was there along with a URL. Score! I was a little discouraged at first as it appeared they might not deal directly with individuals, but figured I'd drop them a line all the same.

I relayed basically the same story to them as I have now to you and a day later I got an e-mail back from someone in customer service with a picture attached of a stuffed pink cat. She wanted to know if this was him, and if so they could help us out right away. It wasn't the Pinkster, so I sent her one of what's left of our boy (note: see the above picture again). The next day, they replied right back with a picture of a brand new Pinky!

I replied that was our kitty and offered to pay however necessary to get him in hand and was told...nope, thanks, just send us your address, we'll send him out to you. Wow! When I sent the address, though, they told us they were sending...well, let's just go to the picture...



Yup, that's Pinky, second from the left, surrounded by THREE siblings! They sent us THREE! They arrived today and are waiting patiently for the day they can come out of their box in the closet (our second daughter is arriving next month, perhaps she will one day get her own Pinky).

Now, granted, this was a small gesture and probably cost them all of $2 to do this, but that's not the point. Joni, the lady I dealt with spent a couple of days e-mailing me back and forth trying to find the right toy and then shipped them out within minutes of confirming we had the right one. It made a big difference to this dad to know there are potentially a couple of future tears that could be avoided by our having something to fill the void should it ever come, and that means the world to me.

Thank you, Galerie, and especially Joni, for helping us out. You got 2012 off to a great start for us!

Tuesday, January 3, 2012

Life logging with Evernote

One of my primary reasons for moving back to Evernote is that I've always wanted to keep a journal. I've never been good at it all, and it's come back to haunt me from time to time as I try to remember when a certain event happened. Before my journal, my e-mail served as my primary method of refreshing my memory, but that's limited to stuff I might have needed to say to someone. Major and minor events went unrecorded.

I've also been thinking about all of the data that I put "out there" each day that is captured only on Facebook or Twitter and might be difficult to find again in the future. Or, I might want to relate something that I posted on Facebook to something in my journal. Sure, Facebook's Timeline feature helps a great deal in finding older posts, but I'd like to have as complete a record of my day as possible in just one spot.

So, inspired by this TED video, I needed to figure out a way to create my own aggregator and use it to log my life...or as much as possible.













In terms of a basic app where I write what happens each day, Evernote is perfect. Each morning, I simply create a new note in my Journal notebook and type away. But, we're here today to talk about some of the other stuff I put in there.

Similar to in my previous post, the secret sauce that will tie the social network aspect into the journal is IFTTT.com. To recap, "If This, Then That" monitors the social networks you give it access to, and when something happens that matches criteria you setup, it'll trigger an action you specify. In this case, a lot of what I wanted to pull in is covered by the default triggers and actions. When I post a status, it's pulled directly into Evernote. When post a photo, same thing. Easy!

Twitter's a bit more difficult. I'll admit, not a big fan of Twitter. I use it because I have to, because so many others use it. But, as the first network I'd axe if I could, yup, Twitter. As a result of my disdain, I rarely ever check the Twitter, so I miss things. But, not anymore! I've setup actions so that if someone mentions me (or TEDxRochester) or sends me a message, I'm sent an e-mail. My own posts are injected into Evernote directly. Why do I have it go to e-mail? So I can see it, of course! I've then got a filter setup in Gmail to automatically forward those to my Evernote account. Two birds (it's Twitter. Tweets. Get it? Birds?), one stone.

The big drawback to this methodology is I get a very cluttered journal. My end goal is to have one note per day that I can go to. Evernote itself provides the mechanism in their Merge Note feature. Select two or more notes and you'll have a bunch of options come up. Simply choose Merge! Now, a hint: click on them in the order you want them in the merged note. I start by clicking my daily note, then my e-mails with my wife (more on that in another article) then the social network stuff notes before hitting Merge. That way, they end up in the note in that order. Done!

With these simple steps, I'm able to cull together a daily journal entry that covers a lot of what I do during the day, but it's not perfect. Still a number of things to pull in. Most importantly are the conversations between the most important person in my life, my wife! But, that's still a work in progress with lots of custom stuff to make it happen....

In the next installment, I'll tell you about the tags I put into posts and how I can use them to gain some basic statistical insight into my life. I'll also talk about some of the more esoteric data that makes its way into the life log.

Friday, December 30, 2011

Nighty Night, Tasker!

If there's a time where I want something else to do all my work for me, it's right before going to bed and just after I get up. When it comes to my phone, I'm fortunate to have that thing in the form of Tasker. Now, this set of profiles might seem a bit lazy, but why do extra steps I don't need to?

The first part of this has to do with the app I use for an alarm clock, Gentle Alarm. It was the App of the Day on the Amazon store a long, long time ago and I'm glad I took advantage of that offer. I highly recommend it as your alarm clock app for a couple of reasons. First, the gentle alarm function. As I've mentioned before, I have trouble getting up in the morning. Here's the blurb about how Gentle Alarm helps with this:

Alarm clocks can't know if you are in light sleep or deep sleep (those movement based alarm clock don't work) but they can play a very quiet pre-alarm which you will only hear if you are in light sleep. If you are in deep sleep, you will simply sleep through the pre-alarm.

The pre-alarm plays 30min before you really want to get up (you can change that). If the pre-alarm wakes you up, you will be more refreshed than if you had slept until the main alarm because at that time you would have fallen back into deep sleep. Give it a try and I am sure you won't want to miss it anymore.


Now, since shifting to nights, I haven't had much need for an alarm clock. But, I do have to get up early from time to time and can say that it does seem to go a lot easier when I use Gentle Alarm to get me up. Take my anecdote for the datum it isn't. :)

Secondly, Gentle Alarm integrates with Tasker. That will come into play later, though as I want to go over the "Nighty Night" task first. This profile came about due to some weirdness that was going on with my phone. Some nights, not every night, Gentle Alarm would switch from it's darkened Night Mode to regular mode. As the screen was generally at full brightness before I put it into Night Mode, it would come on and flood the room....waking my wife. Not good. As it would occur in the middle of the night when I was asleep, and didn't happen consistently, troubleshooting it was out of the question. I needed a workaround.

I already had a profile set that would silence my phone starting at 11pm, I thought maybe I could integrate the workaround into that. But, in thinking about the various permutations, I wasn't happy with a simple timed launch of the event. For example, I could be up late one night, or go to bed earlier another. An entry that was tied to a specific time just wasn't going to cut it. I wanted more manual control of the automated process (I know, right?) and that's where Tasker's ability to create notifications comes in.



At 9:30pm each night, Tasker puts an icon in my notification area entitled "Nighty Night" (Alert task -> Notify). When I click that notification (State event -> Notification click), it runs the Nighty Night task which sets up my phone for going to bed:


* Turns all of the volumes off
* Sets screen orientation back to "on" (I don't like having my screen rotate most of the time, so I leave it off, but Gentle Alarm works better rotated)
* Reduces screen brightness to 35
* Creates a new notification called "Wakey Wakey"
* Launches Gentle Alarm.
* Enable my Daily alarm that is set to go off at 9am (in case I get to sleep in, more on this later).



So, just prior to going to sleep, I hit my notification, hit the Night Mode button on Gentle Alarm and I'm good to go! Two taps to get everything just how I like it before heading to sleep.

Then, comes the morning. Again, permutations of when I'll get up demanded I have some level of manual intervention here and that's where the Wakey Wakey notification mentioned above, as well as the Tasker integration of Gentle Alarm, comes in. If it's a morning where my daughter gets up well before my daily 9am alarm goes off, I can hit the Wakey Wakey icon and it'll reset everything that Nighty Night sets (orientation, screen brightness, etc). It'll also disable the Daily alarm since I don't need it now that I'm awake. On the other hand, if this is one of those mornings my wife lets me sleep in, when I dismiss the Daily alarm it signals Tasker to run Wakey Wakey instead. This way, no matter what time I wake up, whatever I do first will set my phone up for regular use.



The last thing Wakey Wakey does is put up another notification that allows me to reboot the phone with one click. My ROM of choice on my Evo is MIUI. It's a great and gorgeous ROM, but some of the builds have been a little flaky, so I've taken to rebooting it in the morning each day. With the notification, I hit reboot and by the time I've gotten downstairs and had a swig of water, my phone is again ready for use. Done!



As I said, these are all tiny tasks, but these are the minutiae that our days are made up of. These minor tasks never seem a burden until you figure out how to get rid of them...and then you wonder why you put up with them so long! Tasker..it does a body good!

Thursday, December 15, 2011

The Great Evernote RSS Reader

For years, I've had an on-again off-again relationship with Evernote. As someone who is terminally unorganized (my doctor says I only have 40-50 years left to live because of it), my biggest problem was finding a way to make all of that data ubiquitous so I can manage it easily and everywhere. I'm back on again with Evernote, primarily due to the introduction of their Chrome extension, Clearly.

For some time, I'd used Readability as a way to get the data I wanted into whatever I was using as a note-storage vault. Using the Readability bookmarkelt, I could easily trim pages from ad-flashing, comment-choked nightmares into slim documents containing only the information I cared about. Someone had even combined the Evernote Clipper bookmarklet with the Readability one making for a one-click solution. But, it never really worked perfectly and, as stated before, Evernote never had enough love from me to make it long term.

But, Clearly DOES work extremely well! And because of it, I've taken another hard look at Evernote and have fallen in love with it. I'm inside this tool every day now, sometimes 5-6x each day...either updating my journal or trying to get the hundreds of notes I already have squirreled away into a neatly organized mess.

As with most tools, once you start power-using it, you start to see the potential to use it to solve other, apparently unrelated issues. Such is what lead to this idea I'm about to outline...

As with most geeks living in the 21st century, I suffer from information overload. I'm subscribed to about 50 different sites via their RSS feeds and use Google Reader to keep up with it all. But, I've found the way I do things to be too slow and cumbersome. My primary issue is with Gawker sites like Lifehacker and IO9, the two sites I feel compelled to visit every day. I have no idea what the issue is with these two sites, but I can have Chrome open all day long, with dozens of tabs generally in view at any time. The instant I open more than two pages from Gawker, my whole machine crawls to a halt.

Now, it's very likely it's some combination of my extensions and the proxy at work as I don't experience this issue too often elsewhere. But, seeing as most of the visiting of these sites occurs when I'm in between tasks at work, it's a pain in the ass I had to find a solution for. I also had the problem that it might not be something appropriate for me to read at work, so I'd fill up my inbox with things to read later...and then never get to them.

Additionally, if I find an article I like, I'm likely to want to save it. Since coming back to Evernote full time, I've been using Clearly to snip them up. If what I want is going to end up in Evernote anyway, it seemed to make some kind of sense to just figure out a way to eliminate the middle man.

And that's where If This Then That comes in. IFTTT is a site that will automate your social media for you. For example, I've got a task setup that will fire every time I post a status message on Facebook and send it to me as an e-mail. Since Facebook's search leaves a lot to be desired, plus I wanted to have an archive of things I posted there, this process makes my social network history much more manageable. (Recently, I've started switching these tasks over to put the items in Evernote instead of sending an e-mail.)

The secret sauce in this task is IFTTT's ability to react to an item being starred in Reader. When I do that, IFTTT posts that article into an Evernote notebook named RIL (for Read It Later, see what I did there?). I can then go in at my convenience and just read the articles in Evernote. As an added plus, they're already in Evernote, I just have to drag articles I want to keep into the appropriate notebook when I'm done reading. Or, if I don't want to keep it, I just delete.

One last tidbit: most sites will only post a summary of an article in RSS. Some, like Lifehacker, will offer the full articles on a separate feed. If they don't, you can try WizardRSS. It's a site that will pull full articles instead of summaries from the site and give them as their own RSS feed. It doesn't work on every site, but it gets enough of them that I watch each day.

I've been using this method for about a week and a half now, and I have to tell you it's made my RSS surfing so much more efficient. For example, when I'm done looking through a particular site's articles, I always mark the whole site as read so I easily know what's got new stories when I come back. The problem is, if I found an article that I had the slightest interest in but didn't want to read it at that time, I'd just leave it unread in Reader. Messy, messy! No more, I've moved all of those waiting to be read articles into Evernote and I'll get to them when I get to them.

Now, Reader is generally empty except for the few new items. I can scan through all of my feeds in a matter of minutes and star just the items I MIGHT want to read. I can then read them on my phone or computer at my convenience. I gotta tell you...it's made me so efficient at getting through my news I run out everyday and that's something that's NEVER happened before!

Friday, May 27, 2011

More Tasker tricks

Continuing the theme of automation with Tasker, I've come up with a couple of new things to share...

Damn you, autorotate!

For the most part, I use my phone in portrait mode. It's just the most comfortable way to hold such a device. I think that might have something to do with why they made it that way. :) But, there are a lot of times landscape's a better fit for what you're doing...like Angry Birds. And, maybe some web sites.

Now, if you're a portrait kind of guy like me, you might find the phone's auto-rotation feature to be a bit of a hassle at times. Like, when I'm using Navigation and it switches because I put the phone down on the seat next to me and now I can't tell where I'm supposed to turn because the damn thing's too narrow to display the road far enough ahead. I could turn off auto-rotate, sure. But, then I lose the functionality in those few apps where I actually want it. Oh, the quandary!

Then, the other day, I came across an app called Smart Rotator which provides a solution: it toggles auto-rotate on an app-by-app basis. Nice! And, it works pretty well. Unfortunately, it's yet another thing I need to have running, so I decided to do some poking to see if I could mimic the features using Tasker. Fortunately, it couldn't be easier.

First, I created a new Tasker profile in the App Launch context (the little rocket ship icon). I chose Dolphin Browser HD and Calculator as the apps to watch for. Then, create a new task called "Turn On Rotate" and select Display - > Display Rotation -> Set to On. Save it. Create an Exit Task called "Turn Off Rotate" and repeat except change it to Set to Off. Then, tap the Menu button, then Settings -> Display and uncheck Auto-rotate screen.

Now, auto-rotate is off by default, but when I launch my browser or calculator it's available. When they close, it goes back to off. I chose Calculator just to show you could configure multiple apps with just one profile. If I find another app that I want to be able to auto-rotate, I just go in and edit the profile.

Don't Track On Me!

Recently, I switched over to CyanogenMOD 7 on my Evo (love it!). There is, however, a bigish bug on the Evo in the version I'm using: GPS can't keep a lock properly. There are workarounds and a solution that worked when I put CM7 on my wife's phone, but not on mine. For the time being, I've found my own workaround:

Create a new profile in the Event context (the orange triangle) and call it Display Unlocked. Then, Display -> Display Unlocked. I set the priority to Normal and haven't had any issue. Create a new task called Display Unlocked (I like originality). Misc -> GPS -> Set to On. Create a second profile in the same context, but call it Display Off. Then, Display -> Display Off. I'll leave it as an exercise to figure out what to do for a task. :)

So, now, when I unlock my phone, it turns GPS on automatically and turns it off when I've turned the screen off. This has actually worked quite nicely and I haven't had any complaints about GPS since. The one drawback is Google Latitude doesn't work as well. However, as I'm constantly checking my phone anyway, it seems to keep me mostly up to date. Plus, no tracking by the feds! Double-win!

My Dynamic DNS Hack

After the GoDaddy CEO mercilessly and needlessly slaughtered an elephant for his sick amusement, I decided to take advantage of the offer in that article and switch my domains over to Namecheap.com. Aside from no longer supporting a company whose CEO should have his stepped on by that elephant's mate, I've gained some nifty benefits by switching to NameCheap (Not the least of which is better service at a lower price! Seriously, switch. You won't regret it.) One of them is dynamic DNS.

A little background: dynamic DNS is a service that allows you to assign a host name to an IP address that's constantly changing. A lot of folks use dynamic DNS so they can get to their home machines without having to worry about their ip address changing regularly.

The service I've used for years is No-IP.com, and frankly I have nothing bad to say about them at all. I've always had reliable service from them and have never had to contact them for support. It's a service that just works. That being said, if my registrar is giving me free dynamic DNS service along side my basic registration, well it just makes sense to try and migrate to that!

There are a couple of apps in the Market that will perform as client for your dynamic DNS provider, but none worked directly with Namecheap.com. But, as I thought about it, I realized here was another chance to find my own solution. Unfortunately, it wasn't as elegant as I'd like, but it works more or less the way I want. Perhaps if it becomes irritating enough, I'll fix it up further...

First, a caveat: I'm not sure how much of this would require you to have root access on your phone. I've gone through it again in my head, and I don't think there's anything below that needs special permissions. But, if it doesn't work on your first try, that might just be the reason.

The first piece you'll need is the Scripting Layer 4 Android. The SL4A is a great little project to bring a number of scripting languages to the Android platform to make it easier to develop things like...well, this! At current count, it supports Python, PHP, Ruby, JavaBeans and shell scripting, which we'll be using. Follow the instructions at the link to get it installed. Since my solution just uses a shell script, you don't have to install any other interpreters just yet. Fire up a text editor on your machine and copy in the following:


#!/system/xbin/bash

source /data/local/tmp/ipaddress

test=`netcfg | grep UP | grep -v 127.0.0.1 | awk '{ print $3 }'`

if [ "$test" != "$ipadd" ]; then

domain="domain.com"
username="canbeanything"
apikey="namecheapkey"
hostname="mobile"
hosturl="http://dynamicdns.park-your-domain.com/"
command="update?domain=$domain&username=$username&password=$apikey&host=$hostname&ip=$test"

url="$hosturl$command"

wget -q -O- $url
echo ipadd=$test > /data/local/tmp/ipaddress
fi


If you've been following along with other articles, you know that I've got Tasker profiles which disables the mobile radio when wifi is on and vice versa. As a result, the above script is a bit quick-n-dirty as it assumes there's only one radio on at any given time, and thus "UP". You'll have to do some tweaking if you don't have your phone setup like mine.

So, what does it do? It reads a text file I've created that simply contains the line "ipadd=192.168.1.1" (or whatever the IP was the last time it ran). It runs the netcfg command which is similar to Linux' ifconfig command. It finds the line for the interface that's up and not the loopback connector and snips out the IP address it finds. It then compares it with the one that's in the text file. If they match (which means the current IP at Namecheap.com is most likely what's currently on the phone), it does nothing. If they don't, it builds a url and uses wget to ping it. Namecheap.com will then update their records.

Note: I am specifically pushing the IP to Namecheap because if you don't they use whatever IP the request comes from. As a result, when I'm at home on my NATted network, it'll use the IP of the external interface of my router and not the internal IP I'm using on Wifi. Part of the reason I'm setting this up is to automate some tasks at home to push stuff to the phone, so I need the right address there.

So, what about Tasker? Remember the GPS hack you read about 2 minutes ago? We're going to leverage that. Edit the task for the Display Unlocked profile and add a new item. Plugin -> SL4A. Yes, SL4A has been kind enough to give us a Tasker plugin! Hit the Edit button and select the script above. Done! Now, when you unlock your phone, it'll update your IP if need be. A rockin'ly simple solution that seems to work just spiffy!

Hopefully, these will inspire you to try some new stuff with Tasker you hadn't considered before. If you do, drop me a line below and tell me about 'em!

Thursday, May 5, 2011

Sprint/Google Voice - A match made in hell

Last week, Google & Sprint announced the release of their much anticipated integration of services. Google Voice is a fairly cool service that's been around for a few years. It got its start from another company under the name Grand Central and was eventually snatched up by the Googlemonster for inclusion in their line up. With the service, your phone number becomes a lot more flexible. Some features I was looking forward to:


  1. Multiple receiving phones can be setup to ring when someone calls your Google Voice-based number and can pick up any one to answer. This was a feature I was looking forward to using most. I could setup my desk phone to ring along side my cell when called. So, if I was sitting at my desk and someone called my cell I could pickup the headset for the desk phone and talk to them. It's even possible to setup Gtalk on your desktop as a receiving phone


  2. You can specify which times you would like calls to make it through to your phone. So, you could setup a "quiet" time after 11pm where your physical phone doesn't ring and all calls are shunted through straight to voice mail. You can also specify certain numbers always get through and others never do. Useful for telemarketers or your boss having your number and trying to reach you on the weekend.


  3. Voice mail is transcribed to text (albeit very poorly) and sent right to your e-mail inbox to read.


  4. You can make international calls through GV very inexpensively



Some cool stuff, right? The drawback was you had to get a new phone number from Google that you'd have to give out. Now, if you were in the process of getting a new phone and for some reason needed a new number, no biggie. Just get the GV number, point it at your cell and never give out the actual cell number. This was also useful pre-number porting days as you could always have the same number. But, if you're like me and have had your number for 15 or so years, that wasn't a great option.

The Sprint/Google Voice integration allowed you to simply use the number you already have from Sprint as your Google Number. With a few clicks, everything you already have in place just gets a ton of new features and flexibility. At least, that's the theory...

The first issue I ran into was I simply couldn't do it at all. Apparently, there's a feature called "Google Voice Lite" where you simply forward your voicemail to Google Voice, but don't have any additional features beyond that. I had been using Google Voice Lite when I had my iPhone, but didn't know it was considered a different service. When I went in to activate the integration, I didn't have any of the options the announcement said I should. It showed I was using a Sprint phone, but wouldn't give me the option to integrate it.

So, I figured I'd just delete the phone and re-add it and see what happened. No go. I was told I needed to have at least one physical phone listed. Okay, I'm at my desk, I'll add my desk phone, delete the cell phone and re-add. No go. When I tried to add the desk phone, it showed up, but I couldn't do anything with it. Even the Edit and Delete buttons underneath were non-clickable text. I couldn't even get rid of any phone I added!

After a day or so, the answer finally popped up on the Google forums regarding Google Voice Lite. Apparently, I needed to click the link that said "Get a Google Voice number" (which was right next to what was listed as my Google Voice Number) and I would be asked to upgrade my account to full Google Voice and get it integrated. Google's #1 problem: they really don't seem to have a full grasp of the English language. There were NUMEROUS posts on the forums about this problem, and it was almost a week before someone bravely clicked that link and figured it out.

Great, this seemed to work. I got the options to integrate, followed the process, Google Voice called me to authenticate, I gave the code and seemed to be good to go...until I clicked the Continue button. At that point, I was told there was an error and to try again. Which gave the same error, again and again. You can't even get rid of the error message, you have to close your browser (or the tab) to get back to Google Voice.

In order to be complete and verify what my status was for this article, I decided to call my number and leave a voice mail...nope! I can't even leave myself one. Apparently, now my fiddling with Google Voice has disabled even the Google Voice Lite capabilities. Update: I decided to play around a bit further and requested a new Google Voice number. I was then able to add my cell phone back into the mix as a receiving phone which reenabled using Google Voice on it. Phew!!

This is a huge fiasco. The forums, both at Sprint and Google are rife with complaints from people having these same issues. The biggest problem being faced by folks, it appears, is they're getting some kind of discount on their Sprint plan. That would be consistent with my problem as I get a discount through my employer. What bothers me is *I* pay for my plan, not my employer, so why should it matter?

According to one Sprint employee who's trying to help out, the decision was made to block discounted employees because some employers might not want third parties having access to "their" info. Even if this is true, it's an absurdly stupid reason to unilaterally block all discounted customers. It's an indication of pure laziness on the part of Sprint.

So, if you've tried to setup integration of Google Voice and Sprint, and didn't have any luck, I recommend you stop now before you make things worse. It's one thing to experience issues as an early adopter, but complete showstoppers are the last thing I should expect. At the very least, the error messages should clearly state the reason for the failure and not some generic "oops, broke!" message.

It also points to a significant flaw to using Google as a provider for any critical services: they don't have ANY customer support at all. If it's broke, there's no one you can call to get it fixed. You can call Sprint, of course, but they're just going to blame Google (as they did the first few days of this debacle).

It's sad to see two companies who really seemed to have "gotten it" get it so completely wrong.