Apr 23

It’s no secret that Verizon’s “It’s the Network” marketing campaign has some truth to it, It’s even one that most people, even non-technical people tend to know . So, why is it that Sprint which uses the exact same technology (CDMA), is considered to have an inferior voice network to VZW’s? Also, why is it that Sprint’s Data network is widely considered to be the fastest among the 4 national carriers?

Thanks to a little research, I have these answers for you. First off, stop paying attention to the similarity in the air interface (read: CDMA) and start looking into the frequency bands that each network operator is running on. In the United States, Sprint runs it’s entire network on the “PCS” frequency which is clocked at 1900Mhz, whereas Verizon runs the vast majority of their network on the 850Mhz frequency with a couple 1900Mhz towers when needed.

But Why?

While Sprint messed around with a GSM based network before deciding on CDMA, VZW purchased the exclusive rights to the 850MHz licensing (because VZW committed to a nationwide network). Since CDMA has only two-bands (850,1900Mhz) Sprint had no choice but to use the “PCS” 1900MHz band only for its nationwide network build out, where VZW got to use both of the frequencies for its network, and take advantage of the Pros/Cons of each.(Thanks to cellguru.com for helping clear this up)

1900MHz vs. 850MHz – Two frequencies both with pros/cons

  • § In general, you are going to get more VOICE performance out of 850Mhz and better DATA preformace1900Mhz for several reasons.
  • § 850 MHz tends to penetrate most modern buildings (there are lots of factors that play into this)
  • § 850Mhz frequency is less excited than 1900Mhz because the waves are further apart, which means the cover more area than1900MHz.
  • The 1900Mhz has a much higher amplitude, which leads to higher bandwidth capacity and faster data rates.
  • § The 850Mhz networks have been around longer, which gives them more time to be optimized.

Also, You need about 4 1900MHz towers to equal one 850Mhz Towers, - This costs Sprint a lot of money to build out a network that would equal the coverage of Verizon. 1900Vs700mhz

What this means to you

As a user of both the Sprint and Verizon networks, I can say that Sprint’s VOICE network is not as good as VZW. This is because of numerous the “holes” (read - dead spots) that are inherent with using an all 1900Mhz network. What most Sprint users don’t understand is if you find yourself in a “hole”, force your phone to roaming mode and presto - your on VZW’s network. For the vast majority of Sprint’s customers this doesn’t cost them a dime extra.

Bottom Line

What I recommend to those evaluating wireless options…try Sprint. If you find that you live, work or spend a majority of your time in a coverage “hole”(and can’t deal with forcing your phone to roam), then you have 30 days to reevaluate. IMO there are to many benefits to be had by not at least attempting the Sprint route.

1. Cheaper- Sprint SERO—(see my post on Sprint SERO) 500Min,Unlimited Data,Unlimited Text, M2M,Nights/Weekends @ 7PM $30.00 a month. This would cost roughly $80-110 on ATT or VZW. This is what happens when your the only major wireless carrier that is losing customers.

2. Faster Data - At the time of this writing, Sprint’s EVDO Rev A. network surpasses VZW and AT&T 3G (UMTS/HSPDA) data network in both coverage and average speeds….Sprint’s scrappy rival T-Mobile doesn’t even offer 3G data in the US…yet(what a joke). Also, Sprint is close to having the first production 4G network (WIMAX) .

3. Better Devices - Ever notice how Sprint tends to get most of the high-end CDMA phones before VZW? Sprint also has a wider variety of devices (Direct Connect, Smart phones)

4. No Crappy Verizon UI/ Device Lookdown - Sprint has always been known to ship devices as open as the device manufacturer intended them to be.

Moral of the story? Give Sprint a chance the next time your wireless contract expires, you really don’t have anything to lose, and you always have 30 days to evaluate risk-free.

Disclaimer: Sprint’s problem has always been and continues to be Customer Service. If your one of those people who always seems to screw up your bill, Sprint may not be for you.

Mar 21

On a recent project, I was tasked with getting a Firefox extension to communicate with an Adobe AIR application that resides on the clients computer. It took a while to find help online, so I thought I would post about the solution I found, and possibly some of you out there have a better solution to this problem.

First of all, I guess you could ask why you would want this communication. Well, a Firefox extension can have a lot more functionality if it is able to communicate with a local application. Firefox can capture events from the browser, and then the AIR application can receive these events and do some kind of action accordingly. The Adobe AIR application can also make calls to the Firefox extension. These are the steps to create this communication…

The basic idea is to embed a flash file into the Firefox extension, then communicate with the AIR application via the swf file. Before creating the Firefox extension, you’ll want to get successful communication between the AIR app and the swf file.

  1. Use the LocalConnection class to open a connection with a swf file. This should be done in the Adobe AIR application. You can find more information on the LocalConnection class at http://livedocs.adobe.com/labs/flex3/langref/flash/net/LocalConnection.html.
    var _conn:LocalConnection;
    
    public function init():void{
    _conn = new LocalConnection();
    _conn.allowDomain('*');
    _conn.connect('_connectionname');
    _conn.client = this;
    
    Alert.show("initialized");
    }
    
    public function methodToBeCalled(value:String):void{
    // the swf file will be calling this method
    }
  2. Now you can create your swf file and finish the connection to the AIR application
    Security.allowDomain('*');
    var conn:LocalConnection;
    conn = new LocalConnection();
    conn.allowDomain('*');
    conn.send('_connectionname', 'methodToBeCalled',                                           value);

    It is important to note the Security.allowDomain and the conn.allowDomain. You will want to allow all, every place this is available. Also, notice the underscore before the connection name. This is not convention, but it is required for communication on local files.

  3. Still in the swf file, you’ll want to enable a communication path to the Firefox javascript that will reside in the extension. It is essential to have a good understanding of XUL and other Firefox technologies.To enable communication to the swf file from javascript, we’ll want to make good use of the ExternalInterface class. You can read up on this class at http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000340.html.
    You’ll want to add this bit of code to allow the javascript to make calls to the swf file…

    ExternalInterface.addCallback("methodToAllow", methodToAllow);

    Now, the javascript can call the method methodToAllow() and pass values to it if necessary.

  4. The last step is to embed the swf file into Firefox. I placed the swf in the top toolbox of firefox.
    <toolbox id="navigator-toolbox">
    
    <html:embed xsrc="chrome://path/to/your/file.swf" mce_src="chrome://path/to/your/file.swf"  id="file" width="0" height="0" align="middle" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" allowscriptaccess="always" name="file" bgcolor="#869ca7" quality="high" hidden="true"></html:embed>
    
    </toolbox>

    Your javascript can now get this object by ‘getElementById’ and can call the method ‘methodToAllow()’.

Now, put the pieces together. You have full communication between Firefox and your local computer.

Anyone have any better ideas to communicate between a browser and the desktop?