Bob Nedved

Ramblings from the original Web Geek

So, today I was looking through one of my favorite sites for Apple news and I came across an article entitled "AT&T Sued Over Alleged Overbilling for iOS Device Data Usage".  Apparently, there is a class action lawsuit brewing alleging that AT&T overbills iPhone and iPad users for data usage.  Unfortunately, I think there are a couple of flaws in this lawsuit.

The first is that the plaintiffs are stating that AT&T systematically overbills clients for data usage even when the device is not using any data.  Of course, the yardstick they are using to measure that the phone is "not using data" is the claim that they are turning off push notifications, turning off applications, and allowing the phone to sit unused.  The main problem here is that there is no evidence cited that will prove that the phone or pad isn't actually using data.  What do I mean?  Let me explain.

First, Push Notifications.  The way Apple implements push notifications, in some instances, the device STILL RECEIVES the notification - it just ignores it if you have disabled it.  Some apps (like Facebook) have their own push notification control panel, while others (and most of them) use the standard Apple provided push notification management system where your decision to opt-out of notifications is made by visiting the Notification Settings control panel on the device.  In this control panel, you can disable all notifications, or you can go in on an app-by-app basis and disable alerts, badges, and sounds.  Disabling all three of these supposedly disables the notification.

Here's the kicker - from what I can tell - this doesn't DISABLE push notifications - it simply tells your device when they come in to ignore them.  I've implemented a push notification server for my company, GeekUtils.  When a developer like myself implements a push notification server a couple of things happen.

  • User installs app that has notifications
  • App asks user whether they would like to receive notifications
  • If the user says yes, the device provides a unique push identifier that the developer can then use to send push notifications to that specific device.
  • If the user says no, the device provides a unique push identifier that the developer can then use to send push notifications to that specific device.
  • User receives (or doesn't receive) push notifications depending on their initial setting
  • At some point in time, the user decides to change their mind and if they were RECEIVING notifications, they turn it off.  If they were not, they turn them on.  At this point, the user is configuring their opt-in or opt-out status in a device control panel OUTSIDE of the application that will push.  This changes nothing from the developer's perspective, and the developer never receives notification of this settings change.
As you can see - installing an app with PUSH will *always* register the device with the app developer's push server.  Until the user uninstalls this app, or until they go off-network for quite some time, the push notification server will assume the device is active.  It is only after many days of no response (no network at all) or removing the app that Apple's servers will notify the developer's servers that the Push identifier for that device is invalid.  So, when the developer pushes something to that device ID for that app, their server will connect to the Apple Push notification servers and submit the push notification payload.  The Apple servers will process the payload and will then send the push to the device specified by the unique device identifier.  It is only at the final endpoint where the push notification will be displayed or ignored depending on the user's setting on the device.

In other words, if you have 20 apps installed on your phone that all support push notifications, and the only way to configure those notifications is by Apple's built-in push notification settings control panel, even if you have them all disabled for push - your phone or pad is still receiving the push notification payload - it's just not showing it to you.  In other words, yes, you are burning data even though it's not benefitting you.  Like I mentioned, some apps (like facebook) allow you to configure push notifications INSIDE the app - this is different.  In most of these cases, the developer of the app is recording that you don't want to receive the notification, and they do NOT send the notification to Apple's servers unless you go back into the app and enable push.  Most apps, however, do not work this way.

At first this may seem nonsensical, but in reality, it makes perfect sense.  Especially when you use devices like the iPod Touch which don't have an always on internet connection, this gives you the ability to change these settings in the device control panel at will, whether on-line or off-line, and your wishes will be granted.  it provides a happy medium where your users have access to use a great service, but the developers don't have tons of code to implement opt-in/opt-out settings, need to worry about checking for changes since the last launch before sending a push, or the need to create complicated bi-directional communication paths between Apple, the developer, and the devices which are constantly banging on the network and the device.

As described in the Apple Push Notification Programming Guide, push notifications have a maximum payload of 256 bytes which is very small - so with an app that doesn't blast you with notifications, this shouldn't be an issue.  Now, because the payload is what the developer is sending you - let's assume that there is a 10% overhead of other binary data that "packages" the push payload.  So given this - we will assume a notification size of 282 bytes.

Now, the lawsuit appears to cite a sample where a phone accumulated 2,292kb of data usage over a 10 day period "without being touched".  Assuming this is true, and using the law of averages - that's 229.2kb of data per day.  229.2kb of data comes out to around 29,338 bytes.  Assuming the max push payload size of 282 bytes, this equates to around 104 push notifications per day.  Now - this sounds rediculous - but if you have a bunch of apps like Mashable, ESPN, Twitter, CNN, and others on your phone - this isn't out of the ordinary.

Combine this with the fact that this is data being received by pushes that were thought to be "disabled" - it becomes easy to imagine how one could receive this many notifications.  Let's say for example you have 26 apps on your phone, you have push enabled on four or five of them - but on the rest, push is disabled.   All that would have to happen is for each app to send you four notifications per day and you've hit your 104 target.  Given that it's even more common nowdays for people to have upwards of 100 apps on their phone, it's easy to see how significant amounts of data could be consumed even if you're not "receiving" (read: viewing) the push notifications.

Now, This is based upon my understanding of how push works - and what I have witnessed through my own apps.  All I know is that I send pushes to all devices whether push is enabled or not.  My assumption is that Apple does not do any further filtering on these notifications - your device does.   Given the technical challenges of supporting a notification system that must deliver the best service possible through online/offline scenarios, this is also perfectly logical and IMHO, the system is very well designed.

The other flaw in this suit is that it completely discredits the fact that these are basically computers.  If you are on a limited data plan on a cellular card for a normal laptop computer, and you leave it sit for 10 days, connected, in your laptop but never "use" the laptop - I'm sure you'd be surprised at the amount of data the computer consumes just sitting idle - even if you are not using it.  Computers are constantly communicating on a network if it's available, regardless of whether you are actively using the connection - it's a side effect of being connected and desiring that "always on" connection expected today.  Renewing DHCP leases, communicating with DHCP servers, responding to network ACKs or pings - all of this stuff consumes data with no apparent benefit to you - but it's required.... deal with it.

If the people filing this suit had half a brain, they would have turned WiFi on and used a network analysis tool to figure out how much data the device consumes when sitting idle over WiFi.  The device doesn't discriminate - it will keep a network connection active whether it's WiFi or Cellular - so analyzing the WiFi vs. Celluar traffic should yield consistent results given the same scenarios.  This would be easy enough to do by dropping a halfway decent managed switch in front of a wireless access point, and then observing the network traffic to/from the iPhone/iPad using any common network analyzer.

I'm willing to bet given this scenario, they also would have seen 2,292kb of network usage over the same 10 day period given, and they could have actually SEEN the contents of the traffic.  I'm willing to bet that it was composed of network maintenance/queries/responses and push notifications they thought were disabled.  In the end, however, I doubt very seriously it's AT&T billing them "for the hell of it".  I'd like to see them perform the same test by taking a newly activated iPhone, with no third party apps installed, and let it sit over 10 days.  I'm betting it still uses data, just not as much.

Just my .02.

 



So I consulted with a few of my friends who currently are Verizon CDMA customers to ask them how their current device handles being forced to choose between voice and data connections.

Unlike the current GSM AT&T 3G iPhones, which can maintain Voice and Data connections simultaneously, the new Verizon iPhone, based on CDMA technology is forced to use one or the other but NOT both.  This is also the case with any other Verizon CDMA device.

According to my friends, Verizon maintains a voice-priority network.  In other words, lets say you are browsing the web and a phone call comes in - your data connection is terminated.  While talking on the phone, you simply cannot switch to speakerphone, minimize your phone, and use any apps that require network connectivity.  As far as any app is concerned at that point, it's "off the network".  It will be interesting to see how some existing apps misbehave if the iOS developer hasn't correctly implemented the "reachability" classes for network connectivity monitoring.

The bad thing is - this also holds true for tethering.  A few of my friends who use Verizon tethering said that it's a real pain in the ass if they are tethering and/or sharing their connection by way of a hotspot and then a phone call comes in.  When this happens - all network connectivity drops while the voice call is in place, and then the connection resumes once the voice call ends.

In any case - this is a huge flaw that makes this initial launch on Verizon's network less than stellar.  Of course, this restriction mirrors the same behavior of the original iPhone on AT&T's Edge network.  It was only with the introduction of the 3G AT&T iPhones based on the GSM protocol that you could begin using voice and data at the same time.

Moral of the story - if you think you may want to use some apps and use data at the same time as a voice call, or if you don't ever want your data connections to be spontaneously disconnected by a voice call - Verizon iPhone isn't the answer for you..... yet.



So as an iPhone app developer, I am always looking for new providers to start carrying the iPhone.  I know of some people who absolutely loathe AT&T for whatever reason (usually hype rather than fact) - and love verizon for some reason....  They want iPhones - but have been waiting for the day when it comes on Verizon.

Well - it's here today.  And I can tell you - this is a huge win for app developers like myself who hope to see Verizon knock this one out of the park and sell *another* 100 million iPhones.  After all, more phones = more app downloads (in general).

I'll share more of my thoughts later when I have time - but for now - let's go through the series of WINS and FAILS I see so far with today's announcement:

  • WIN: AT&T Exclusivity Ends! 
  • WIN: Hardware costs the same as it does elsewhere ($199 for 16GB, $299 for 32GB) 
  • WIN: Mobile Hotspot service enabled by default (Eat that, AT&T) 
  • WIN: All the remaining iPhone 4 bits are still there - HD Camera, Retina Display, etc ,etc. 
  • FAIL: Uses CDMA 3G instead of LTE.  Verizon and Apple said that's "cause we wanted to get this out as soon as possible because people want it".  I say, people waited for it long enough - what's another few weeks?  The only reason to proceed down the path they have is to do what I call "George Lucas" their loyal customers by allowing them to buy a phone now, then getting them to buy another one again in a year.  Apple is really good at this and I'm betting this was their decision. 
  • HUGE FAIL: No simultaneous voice/data.  On the surface this doesn't sound like an issue - but trust me, it sucks - Why - let me tell you...  THIS IS NOT limited to trying to talk on the phone and browse - who cares about that scenario, it's rare.  The problem is that this means the phone simply cannot receive data and use the voice line at the same time

    So... one scenario where this is a huge problem is when you set up all of your mail accounts on your iPhone and you put them into a 10-minute auto-check cycle.  In this scenario - every 10 minutes, your phone WILL NOT receive voice calls for a short period.  If your phone is checking mail and someone calls in - guess what, goes to voicemail.  This is archaic and it's the same problem we had with the original iPhone. 

    Worst part is, most people don't even think about this scenario until it's too late.  I didnt think about it until my girlfriend called me one day and said "I've been trying to call you all day, why does your phone always go to voicemail?" and it was because I had my original iPhone set on a 5 minute mail check cycle across 3 e-mail accounts.

    Important Note: This same issue would occur with any Verizon customer who is now using the CDMA network with their DROID phones, too - so it's not new to the iPhone - it's just a crappy limitation of CDMA networks.  I do have a friend who informed me that on his Sprint CDMA device - he can choose a "priority" for voice or data so that data doesn't step on your voice calls and vice/versa - but I am not sure if this is standard issue CDMA function, a Sprint extension to a CDMA function, etc.  I'm not aware of whether Verizon supports this type of tech, nor whether the iPhone for Verizon will support this.  My guess is no.

    REGARDLESS - not being able to use voice/data simultaneously is not cool.  Even if the device supports "prioritization" - I don't want to interrupt my voice calls with data sessions and I dont want to interrupt my data sessions with voice calls.  If I am connected to my new Verizon iPhone as a WiFi hotspot and sharing with 5 other people or devices - I dont want it to drop all of those just because a damned call comes in - yet I don't want to miss my call either.  With newer networks - I wouldn't have to compromise. 
  • FAIL: Why call a damned press conference if you're not even going to announce the price of service on the thing.

Because of my experiences with the huge problems created when the phone cannot simultaneously use voice and data - for me, this is a no go.  This would mean that when you're using the WiFi hotspot - chances are your device could never be used for a phone - which is about the dumbest thing I've ever heard.  AT&T still has the advantage here since I can talk all day on my phone and it would still be checking my mail in the background.  I could also be checking my mail and still receive a phone call.

For now - the score is still AT&T 1, Verizon 0 in my book.  But I'm very happy to see this outward growth of carrier support in the USA - and I look forward to what this will mean in the future.  Competition usually is not a bad thing.

 



So... there is obviously a lot of hubbub on the net as of late regarding the usefulness of flash and seemingly growing support of HTML5.  I, myself, agree with the HTML5 supporters.  Flash is not an open standard, and while a huge percentage of the web is using Flash right now - it's mostly for video or for annoying advertising.  The percentage of people actually using Flash to create a rich web experience is minimal.

That being said - we have all seen Steve Jobs' open letter about flash, Microsoft's view of flash, and now one of Opera Software's representatives have come out and spoken about flash.  While Steve's points are valid, he doesn't seem to credit Flash for being good for any purpose - only to defend why it won't be on his devices.  Microsoft and Opera appear to realize that Flash is a big part of today's web - but then also agree with Jobs that the future is in open web standards, not flash - especially where video is concerned.

I agree with all of the above.  I dont mind using a plugin to play with a hugely interactive web experience, fun flash games, or other flash specific content - but using a plugin to play a simple video or get bombarded by Advertisements is simply rediculous.

So then I asked myself - if I want to be objective, where can I see what the experience with HTML5 is going to be like?  The web is chock full of older HTML content - but 5 content is pretty sparse.  In steps the YouTube HTML5 beta.  Take a visit to http://www.youtube.com/html5 and then opt-in to the beta by clicking the link on the bottom of the page.

Opting in will store a cookie on your machine that states your preference of viewing HTML5 video (in BETA form).  Then simply browse YouTube.  For any non-ad supported video content, the HTML 5 player will be used in lieu of the standard flash player.

Oh, and YES, this does work on the iPad / iPhone / etc.  On the desktop PC, you need to be using Safari or Chrome (preferably) - or IE if you have the Google Chrome extensions installed.  Of course, there are some glitches - as this is a beta, but it will give you an idea of what the web will be like using HTML5 technology, and absent of flash.  I can't wait ;)

Check it out - not too bad for early testing.



US States and Capitals Game for iPhone

Browsing through the app store today, I noticed that one of my co-workers (Gary Gentry) had released a pretty cool game for the iPhone.  Aimed at "educational fun" - this States and Capitals game quizzes you on your knowledge of our country's geography.

Once the game begins, you're prompted with a map of the U.S., complete with a state that is hilighted in yellow.  While the timer ticks, you pick the state name as quickly as possible and are then forwarded to a screen where you are prompted for the capital of the state.

It's a great way to quiz yourself to see if you are really smarter than a fifth grader, or an invaluable tool for helping your children learn about the states and capitals in our country.  As an added bonus, the application gives you cool little fun facts for each state.  Very stable and fun, I'd recommend this app to anyone.

You can go directly to the download through iTunes by clicking here, or visit Gary's webpage by clicking here.



About the author

Entrepreneur, computer enthusiast, all-around-geek ;)  In my most current role, I am the founder of GeekUtils, a small company specializing in mobile application development.

I have over 20 years of experience working with All flavors of Windows, DOS, several varieties of UN*X, and, most recently, Mac OSX.  I love to tinker with hardware, build kick ass systems, optimize performance, and develop new solutions.... come join me, won't you?

Sponsored Link

Sponsored Link


Bandwidth  Monitor

Help Fight Diabetes

Sign in