Google-Voice vs. Skype

I believe that in a few years Google-Voice (GV) will be significantly larger than it is now, and that will be due to growth in the Desktop/Mobile user segment not standard-phone users. The advantage will all boil down to the fact that GV gave users a free US phone number to start with.

Here’s how things will evolve:

  • iPhone OS4 comes out, VOIP apps can run in the background
  • People start using Skype all the time in the background and whenever they have WiFi its great
  • GV will come out with an iPhone app that does their VOIP calls over WiFi as well (that’s legit and Apple will approve it)
  • Guess what, GV gives you a free incoming number so you can now make and receive calls, most of the time (when you’re on WiFi and heck maybe also on 3G)
  • This will all be replicated (if not executed earlier) on Android devices which will find GV to be the default VOIP app, and oh yeah did I mention you get a free US number?

This battle will be over the segment of users who are around WiFi coverage enough of the time and have smartphones that will allow them to use WiFi for making/receiving calls when its available. GV’s architecture lends itself beautifully to this as it gracefully degrades from direct VOIP calls to standard ‘to your phone number’ calls. Skype has similar functionality though its really not implemented so well and Skype’s focus has been solely on the VOIP-calls segment while GV started from standard calls and will now expand with Desktop/Mobile VOIP apps.

GV’s current issues with call-delays (caused by the fact that all calls are tunneled through Google servers so that Google can provide conferencing/recording functionality) will go away. All these features will be implemented on the user’s Desktop/Mobile-device and so call quality will go up and lag will go down to nothing.

Its going to interesting and fun, can’t wait to get GV background app on my iPhone.

Posted in

HTML5 Text Path demo

I’ve been experimenting with various HTML5 (specifically SVG and Canvas) elements recently and was looking at ways to fully control text in a dynamic and fast manner. SVG offers Path elements but these are defined in markup which feels limiting. It made much more sense to define paths myself and just figure out how to layout the text on these paths from JavaScript.

I learned a lot about some of the ways you can play around with Fonts. You see usually fonts are rendered by the OS or custom libraries because rendering fonts is such an important part of rendering beautiful web-pages. Another interesting option is to break-down a TTF font-file into its various path elements and beziers, ignoring a lot of important data, and just letting the browser render these paths through SVG. Its a beautiful process enabled by a library called Cufón. This library will literally take a TTF file and spit out a JSON representation of its paths.

Once you have your font-data in SVG paths you can basically position/scale/rotate them however you’d like, in the following example I show some code that traces a path and positions text on that path. The code uses the Raphael JS library which makes it easier to deal with modern graphics in browsers.

Live demo

Posted in

Countries, Approximate Lat-Lon and ISO 3166-1 alpha-2

We’re working on a visualization of real-time clicks on our short URL. The cheap GeoIP database we use to convert IP address to geographical coordinates only gives us country-codes. ISO 3166-1 defines the encoding of ”countries, dependent territories, and special areas of geographical interest” into codes, and the 2-character encoding subset is defined in ISO 3166-1 alpha-2. A country like France ends up being ‘FR’, Israel is ‘IL’, you get it.

When we wanted to plot this onto Google Maps we needed to convert country-codes to Lat/Lon (map coordinates) and apparently there isn’t such a simple mapping. One reason may be that a country like France has a political border which is well defined but there’s no real point on the map that defines it, that’s pretty arbitrary. A bunch of companies (Google, Yahoo, etc) have what’s called Geocoders which are pieces of software that will take an address and return the Lat/Lon representation of it. Most Geocoders don’t like 2-letter country-code though, bummer.

What we ended up doing is digging out this information from a few Geocoders that do like to chew up 2-character codes, and for the sake of other developers we wanted to curate the data and make it easily available and consumable for other developers. I’m including a Google Spreadhseet with all the values, as well as a JSON dictionary that gives you country name, lat and lon given a country-code. I also included this data for all USA and Canadian states. Feel free to use this to facilitate visualizations of data or anything else you think is cool.

The data:

Online spreadsheet
JSON file
MySQL Data Dump (tnx Dvir Volk)

And here’s the embedded data just for fun:

What does Google Voice on your Desktop mean?

It seems like Google is testing a Desktop Client for its Google Voice service. Google acquired a company called Gizmo5 some time ago specifically for this reason.

GV (Google Voice) is a service that gives you a single virtual US phone number where people can call/SMS you and get forwarded to whatever landline/mobile phone you may be using at the moment. Its a pretty good service and should continue improving in the near future.

What does a Desktop version mean? I’ll try to summarize it into a few points:s

  • The Desktop version is something like a dashboard + an endpoint bundled together
  • This endpoint is so much better than a landline/mobile endpoint because you won’t experience lag and call-quality should be optimal
  • You’ll have full and interactive control of GV features such as conferencing, recording calls, etc
  • You’ll be able to place 100% VOIP calls to other GV subscribers who are using a Desktop version.
  • A Desktop version of GV is a first step, it will be followed by Mobile versions which let you place/receive calls over WiFi/3G, this lets Google bypass Carriers such as AT&T.
  • GV with a Desktop version is potentially better than Skype because it comes with a free US phone number and falls back to forwarding calls to your mobile/landline.


  • Right now placing GV calls is free, which is odd. Why odd? because it should be costing Google a shitload of money. I can only assume that because Google is buying termination on both sides, and both sides (carriers) may be charging their clients for receiving the call, Google is probably ending up with a net zero cost for this scenario.
  • Once you place calls from GV Desktop the result of this equation will be negative, and if my assumption is correct I predict Google won’t let you place free calls from Desktop/Mobile clients but will charge you for them, just as Skype does.

In short, I can’t wait to try it out rather than forwarding GV to my landline/mobile phones, at least when I’m home.