Thoughts abouut programming and life

RSS

Ting & Google Voice == Perfection for Me

There are a lot of great reasons to give Google Voice a try, I am entirely dependent on it now.  Those two links give you a lot of great reasons, but neither of them hit on the reason I love Google Plus — it allows me to make and take phone calls right from in gmail.  As gmail is already a cornerstone of my workflow, this is FANTASTIC for me.  It allows me to leave my headphones on and continue working away.  The spam feature is a nice benefit too, never get a telemarketer call twice.

But, despite having most of my calls go over the internet, and the vast majority of the time being on wireless of some sort, I was still paying a great deal (~$125 a month) for my minutes / text messages / data… better way to think about it… a little over $1500 dollars a year.

Enter Ting a tiny little wireless phone carrier piggy-backing on Sprint.  I look at some of my bills and find out what I would be paying for my monthly bill with all the service I need via Ting… 38 bucks (including taxes) … saving over $1000 bucks a year ($1044 to be precise)…. but there is a catch, you buy the devices virtually outright (slightly discounted, more if you go to http://ting.com/twig) .. but even after dropping $350 on a phone… it pays for itself in 4 months.

Anyway, the point of this little post was to explain how I setup everything to work automatically using Google Voice whenever I am on wireless, and using standard 3G/4G coverage when I am away from a Hotspot/Home/Work. 

  1. Google Voice (free)
  2. GrooveIP ($4) 
  3. AutoAir (free)

The setup (parts lifted from here…)

  1. Google Voice # forwarded to my Ting #
  2. Google Voice # forwarded to Google Chat
  3. Ting device has voice-mail disabled; rely on Google Voice instead and forward notifications via e-mail or SMS
  4. Ting device has “busy” and “no answer” calls forwarded to my  Google Voice #
  5. Ting device has “hide your Caller ID from others” option enabled
  6. GrooveIP installed on my handset (uses the Google Chat forward)
  7. GrooveIP 3G/4G calling disabled
  8. GrooveIP accept calls on answer enabled
  9. GrooveIP built-in dialer preference set to use GrooveIP on WIFI only
  10. GrooveIP native fallback enabled
  11. Hide the native phone app on the handset, it just gets in the way
  12. Hide the GrooveIP app also
  13. Use the GV app for texting and voicemail retrieval
  14. Use AutoAir to automatically disable the radio when you are on Wifi, this stops the phone from ringing in two different ways (One via standard phone forwarding, one via GrooveIP) … 

Too awesome.

From C to C++11

This article is a fun little view on the way code has change from C to C++11: http://blog.feabhas.com/2012/03/on-the-evolution-of-programming-style/

Migrating Git Repo

This article was absolute gold for when I had to migrate a git repo at work. 

http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/

Build Erlang From Source on Ubuntu 11.04 (Quickstart)

sudo apt-get -y install build-essential m4 libncurses-dev libssh-dev unixodbc-dev libgmp3-dev libwxgtk2.8-dev libglu-dev fop xsltproc default-jdk tk8.5

Then download the tar.gz from http://www.erlang.org and simply “tar -zxvf ERLANG.tar.gz” then switch to the ERLANG directory and do a simple

./configure && make && sudo make install

and you are all set! 

Mistakes, Failures and Progress

Currently, in my day job I am working on a project that has hit a bit of a chicken and egg research loop.  This loop seems to be centered on mistake avoidance, which at that scale of this project makes sense, but our lack of ability to even guess use cases make our time investment dubious at best.  

Anyway, this dove tailed well with me seeing a TED talk by Tim Harford on Trial and Error, and it set of a bit of a chain reaction reminding me of other great TED talks I had seen that touched on this topic, and related topic of risk versus reward and top down versus bottom up engineering.  

Burt Rutan talks about the future of spaceflight, and in the talk is some amazing statistics on the success versus failure rates of early airplanes (30,000 attempts, a handful of successes).  He calls this ‘Natural Selection’ — but it is basically just another person talking about the importance of Trial and Error.  

One more for the stack, Kathryn Schulz talks about being wrong, not in abstract terms, but in personal terms.  In the present tense, can you think of anything you are wrong about?  It talks about the importance of stepping back from an idea, and detaching from the emotional impact of being wrong.

Apr 4

As much as there can be a “Best” version of “Friday” — Stephen Colbert, The Roots and Taylor Hicks comes close: http://j.mp/f1dSNW

Moving Backward

After working some contracts using Erlang and Cassandra (Thrift) going back to PHP/MySQL has been a bit painful.  The laid back client, and someone interesting work has made it bearable, but I am missing OTP profoundly.

A few months ago, I had not touched Erlang/OTP, yet it rapidly took the number one slot in my kit.  It isn’t all roses, but what it brings is huge, and for me has been game changing:

  • Ultra cheap processes and message passing allows me break the application on logical boundaries, rather than performance driven ones. 
  • Built in clustering support, share nothing design and let it fail principals allow me to change the way I build applications, and allow me to easily (lazily) take advantage of multiple cores. 
  • With the kit I get via Erlang, I am finding myself with far less throw away code, I am moving from proof of concept rapidly and directly, a refreshing experience.  
  • Take the above three points and add in OTP and some very good guidelines for building complex applications, as well as one of the best online communities I have been a part of, with resources like this: http://learnyousomeerlang.com/ (which has my favorite art ever) and you have a winner.  

I realize Erlang doesn’t have much popular support, and will probably never get mainstreamed, but at this point that just feels like a competitive advantage.  The experience for me has been profound, and very different than my experience with Scala, which felt to me like more of the same (lots of other java platforms, but now with Actors!)… I didn’t feel the radical shift I felt with Erlang. 

http://j.mp/hkRM3p <- absolutely cracked me up. Molestation Nursery!

*sigh* @DellHomeus new policy on shipping delays seems to be to withhold all information. Day 23 “In Production” on my L702X. #dell #sucks