Saturday, February 28, 2015

No More Voice Plans.

If you're like me and hate paying for "Voice" and "Data" plans (knowing at the end of the day, it's all "Data", and don't 'talk' on the phone much anyway) - You can finally escape the Voice Plan problem using T-Mobile.  With a bit of poking around (and Google Voice) I've setup my tablet to do everything I used to do on my cellphone.  I now pay $20 a month for 1 GB of 4G LTE data per month, with "DataStash" (T-Mobile marketing meaning my unused data rolls over each month).

First, some background on why I did this.  I hate carrying both my phone and my tablet with my everywhere.  In addition, I really hate the idea of paying an additional fee for an Internet Hotspot to keep in my backpack when I'm on the go.  I'm only ever without Wifi 1-2 times per month, and Verizon's Hot-Spot plans are ridiculous.

T-Mobile's DataStash lets me accrue 4G data month to month, which works for me since a majority of the time I'm on Wifi.  I needed a "gap" device for those times when I was driving or otherwise disconnected.  I also wanted a "Backup" internet connection for times when my home or Hotel internet was out.  My Nexus 9 tablet on T-Mobile solved all these problems.

The first step was to port my existing Cell phone number to Google Voice.  This process is no different than porting your number to any other cell provider.  The porting cost me $20.  If you already use voice (Like I did) you can also keep your existing Google Voice number forever for an additional $20.  I needed to keep both, as most people know and use my existing Google Voice line.

After porting was complete (Took about 24 hours) I paid the additional $20 and set my original Google Voice number as my primary.  At this point Google Voice will route all text messages and voice calls to either number.  The end result is that Google Hangouts rings on my Tablet, Macbook, and any other device where Hangouts is installed.

On my Tablet, I use the Hangouts Dialer app to make outgoing calls.  The Dialer app can replace hangouts completely.




All this runs over the internet (No "Voice minutes" required, just data).  At this point, all I need is 4G LTE on the tablet.

I picked up a T-Mobile Sim Starter Kit, (You could also visit your local T-mobile Store).  Settings up the tablet was a bit tricky - only because I went with T-Mobiles Sim card kit.  While the information seems to point you in the right direction - I ultimately needed to call T-mobile support and request to add my Tablet as a "Post-Paid" and not a "Pre-Paid" option.  Either choice would technically work for setup, but the pre-paid plans don't include data rollover.  I don't mind paying $20 a month, every month, in exchange for rolling data - but your milage may vary.

Just to be clear there's 2 plans

The end result is a tablet that handles all my phone and tablet needs, and has internet everywhere for only $20 a month.  Additionally, if I know I'm going to be away -like at Pycon this spring, I can purchase a day / week / month long datapass for additional use.  T-mobile has finally got usage right on their monthly mobile data plans - it's too bad they're not marketing it better.  I understand that their bread is probably buttered by voice plans - but I think the average technical user will be much happier with a $20 bill over an $85 one.

1 step closer to my Star Trek future.

Saturday, February 14, 2015

UML Diagrams in Django

Recently I've been working on a database project for Grad class.  I needed to generate a UML diagram as a milestone for the project.  I've always felt like doing a "Rough Draft" of anything was like doing double work - so I thought it would be cool if I could programmatically generate a UML from my python models.

It turns out other people have had this idea and done a nice job of implementing it with Pyreverse.

Getting started you'll need:

On Ubuntu:
sudo apt-get install graphvix libgraphviz-dev python-dev
pip install pylint pygraphviz
On OSX: (I found it easiest to use Homebrew)
brew install graphviz 
pip install pylint pygraphviz  
I also added django-extentions to my project to clean up some of the meta data from django.

The result: (where HospiPal is the name of the app I'd like modeled)
python manage.py graph_models -g -e -l dot -o django.png HospiPal


Personally, I find this graph beautiful.  Saves me quite a bit of time building UML models as well.

References:
Visualize Your Classes Post