Thursday Jul 23, 2009

Initial thoughts on Google Latitude for iPhone

I had heard about Google Latitude awhile back and wanted to try it out, but alas it didn't support the iPhone.  That is until today!  The Google Mobile Blog today announced support for the iPhone so of course I had to try it out.

As they highlight in the blog, this is not an app but rather a web-app you access in Safari.  Apparently Apple didn't want to confuse users with a new Google Maps type of app when there is already the native Maps app.  Since keeps things simple, but the downside is it apparently only can update your location when you are actually running Safari on the site as it can't run in the background.  That is awfully limiting and I'd think its fatal flaw, but we'll see.

When I first pointed Safari at the app, it came up with a login form to log in to my Google account and, whoa, what just happened?  Suddenly Safari disappears and I'm back at the iPhone home screen.  This is the first outright crash of Safari on the iPhone I recall.

So, I try it again and this time there is no crash and I'm able to login.  Along the way though I'm asked to allow using my location no fewer than three times which seems a little much.  Oddly, getting all the way out of Safari, and running it again it only asked me once.

In any case, it tells me I have a friend request (I'd gotten that far when I tried to look at it awhile back) so I accept it and then go to try to add more friends myself.  It lets me scroll through my address book, but oddly the app has a floating menu bar at the bottom that it has to try to reposition while scrolling and the scrolling is much jumpier and frankly annoying than the scrolling in any other app I've seen on the iPhone.

Another first, and potential flaw, is that while I am inside and thus GPS assist isn't working, the location it has for me using its triangulation method isn't accurate, and in fact my actual location is about 400 meters outside the displayed accuracy circle.  I'm sure it probably has something to do with my specific location and isn't a widespread problem, but I swear before the OS 3.0 upgrade in the same situation Maps was more accurate.  And Maps is consistent so it isn't unique to Latitude.

In summary, great idea, but a few rough edges, particularly having to have Safari on the app in the foreground for it to work, probably make it more toy than genuinely useful app.  Have you tried it?  What do you think?  Your comments are welcome. 

Friday Jul 10, 2009

links for 2009-7-10: iPhone 3G S HSUPA speed limit

  • iPhone 3G S limited to 384K upstream - Story seems specific to the 3G S, but I'm guessing the 3G has the same limitation?  This story doesn't say either but hypothesizes it is more about battery life than appeasing AT&T by not congesting the network and I tend to agree.  In any case, more reason to not spring for the 3G S and to wait as I'm happy with my 3G upgraded to OS 3.0 and jailbroken.

Tuesday Jul 07, 2009

links for 2009-7-7: iPhone battery life, MacBook battery usage, Yahoo Search Pad

Monday Jul 06, 2009

Update: Benchmarking the iPhone, and lots of other devices

I had several comments and requests stemming from my original blog on benchmarking so what better way to respond to them than another entry.  I also have an update from starting to create a full fledged app rather than the console one I wrote about earlier.

First, thanks for the comments and keep them coming.  I had one comment that the Java ME version didn't work on Sony K850i.  I created a new version created with the latest NetBeans 6.7 for the latest CLDC/MIDP versions but it too didn't work simply saying "Invalid application".  I know it worked on several BlackBerry's and a Motorola L6 so suggestions are welcome.

Another comment provided some numbers for an IBM T43 which I've added to the spreadsheet.

As promised, I started fiddling with creating a proper iPhone app using Xcode and have gotten an ugly but functional version of the app working and initial indications are that it scores better than the one compiled with gcc on the iPhone.  Where the gcc version had a score of 27.9 the Xcode version scores double that at 65.7.  This is running on the same phone/hardware so the difference has to be the compiler and Xcode must generate a lot better code.  I'm still researching to see what I can find out.

Last, as promised, I've made some source code available.  Take a look at the C version and I'll work on getting the others up as soon as I know they are stable.

I welcome more feedback and results from running the benchmark.

links for 2009-7-6: iPhone thin client; Interesting stats; Android vs Java development


Wednesday Jul 01, 2009

links for 2009-7-1: Treo out iPhone in; iPhone vs Pre; RIM headed south?; XP forever

Monday Jun 29, 2009

Benchmarking the iPhone, and lots of other devices too

Benchmarking has been around for years, and I started playing around with writing them back in college.  I recall an assembly language class were the assignment was to implement the Sieve of Eratosthenes in as few bytes as possible. I "won" the assignment by doing it in 24 (or was it 25, too many years ago!) bytes, but that got me started on benchmarking as I instrumented the code to time how long it took and then proceeded to run it on all the different machines I could to see which one was the fastest.

Clearly though, having a benchmark written in 8086 assembly language had limited usefulness, so in later years I rewrote it in C and added several other standard algorithms to the stable that were executed including calculating PI, a selection sort, and computing Ackermann's function to test recursive performance. I proceeded to run it on every machine I could from PCs running MS-DOS to workstations running Solaris to PPC machines running LynxOS and AIX. In later years, I ran the same benchmark on UltraSPARC, SGI MIPS, and DEC Alpha machines as well as today's dual-core Intel chips. Somewhere along the line I starting writing more in Java than C and I ported the benchmark to Java to see how it compared, and several years ago I began using BlackBerry's and wrote a Java ME version.

As you can imagine given the wide range of machines I've run it on in the past, having an iPhone was just begging to run it there too. While I have creating a proper iPhone app version on my list of things to do, thankfully a jailbroken iPhone makes it pretty easy to run the C and Java versions I already had. A sampling of results appears below, but the summary for the iPhone is that the native version is about 5 times faster than the Java one and ever so slightly faster than a 75 MHz Pentium 5 of yesteryear.

 Machine Language Math Array Sort Sieve Ackermann Total
Motorola L6 Java ME 0.11 0.19 0.23 0.13 0.19 0.17
BlackBerry Curve (OS 4.5) Java ME 0.95 2.21 2.96 1.72 2.96 1.81
iPhone 3G Java SE 12.4 4.79 4.64 3.28 5.01 4.95
Intel 486DX2-66 (Linux) C 10 10 10 10 10 10
SPARC-20 (Solaris) C 66.4 20.3 17.6 20.1 4.1 12.1
Pentium 5 75 MHz (Linux) C 21.3 19.6 28.6 23.2 33.4 24.2
iPhone 3G C 65.9 21 23.4 19.2 46.7 27.9
DEC Alpha 275 MHz (OSF/1) C 111.4 93.6 63.1 41.2 76.1 68.6
Pentium 600 MHz (Linux) Java SE 191.9 106.1 99.1 68.9 78.2 96.1
Pentium 600 MHz (Linux) C 216.4 319.3 219.8 171.5 131.2 194.1
MacBook Pro 2.33 GHz Java SE 655 1096 794 549 334 587
MacBook Pro 2.33 GHz C 1089 2413 664 800 1356 1037

You may also view the full list that I have maintained over the years.  You'll notice that I did my initial calibration on a 66 MHz 486 DX-2 so that it scores 10 in each of the tests.

Now, I'll be the first to admit that my benchmark is pretty simplistic and thus shouldn't be be the end all be all testing to compare machines or platforms. The results can also be significantly affected by the quality of the C compiler or JVM being used. However, the results can provide a rough comparison and are at least fun to look at.

For example a SPARC-20 has terrible performance with deep recursion. And as noted above the JVM on the iPhone is about 5 times slower than a native app whereas on an x86 box the JVM is about half as fast as native.

While I've run the benchmark on quite a few machines, I'd love to add more to the list.  If you'd like to run it, here is the binaries in a variety of formats:

  • Linux on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • OS X on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • OS X on ARM/iPhone - Download the binary, use ssh/scp to get it on your jailbroken iPhone, and execute with "./sci <iterations>". The default iterations should be fine.
  • Solaris on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • Solaris on SPARC - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • AIX on RS/6000 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • Java SE - Download the jar and execute it on any machine you have a JVM with "java -jar SCIJ.jar <iterations>". On most of today's faster machines iterations should be at least 5,000.
  • Java ME devices - Point your phone/device browser at the link and it should prompt to install the application. Run the app and if it executes in less than a few seconds change the iterations to a larger number to make it more accurate in calculating the benchmark.

If you do run the benchmark, please post a comment on this blog entry with the chipset, clock-speed, operating system, and results from each of the tests that the program displays. As soon as someone jailbreaks an iPhone 3G S, it would be great to add that result to the list.



Friday Jun 26, 2009

iPhone Jailbreak App Update

I blogged about upgrading and jailbreaking my iPhone several days ago and noted that several apps I had grown attached to weren't working under OS 3.0.  I'm pleased to say that 2 of the 4 that weren't working now are.

Using Cydia, the latest versions of Insomnia and Backgrounder can be installed and seem to work fine.  Of course, some of the optional features of Backgrounder aren't working yet, but the basic function to put an app in the background is.  Of course, Cydia is confused and keeps telling me there is an available upgrade of Backgrounder,

Unfortunately, Mobile Finder doesn't appear to be updated nor does LogoMe.  But Mobile Finder was more of something just to show folks for the Gee Whiz factor and I've got the boot logo I want so not having LogoMe isn't an issue.

I'll update as I uncover more. 

Wednesday Jun 24, 2009

links for 2009-6-24: Hidden iPhone Features, AT&T Improving Network, Analysts on Twitter, Zappos goes social

Sunday Jun 21, 2009

iPhone Upgraded and Jailbroken

With the release and all the hubbub about OS 3.0 for the iPhone, it was only a matter of time before I upgraded.  However, I was interested in seeing others experience with it and also having the jailbreak for it out before I did the upgrade.  Well, I went ahead and did it this weekend and here are the highlights.

First, since I had previously jailbroke and had read about potentially losing storage if one just upgraded over a jailbroke phone, I first restored to a vanilla 2.2.1.  And I did this with iTunes 8.1 as I didn't want to upgrade iTunes and cause any problems.  This went fine and as expected, I lost all my jailbroken functionality.  I also learned that doing a full restore can be very slow with the restoring apps via iTunes seemingly going slower than installing them from scratch via the AppStore.

Since upgrading to OS 3.0 requires iTunes 8.2, I went ahead and let iTunes upgrade itself and then went ahead and let it detect my phone and the OS upgrade and perform it.  This all went fine, but oddly after it was done, my battery meter had both the icon and a percentage!  On my jailbroken 2.2.1 using SBSettings I was able to have the meter toggle between the icon and a percentage but this was new.  In reading some blogs I learned that this is a feature of OS 3.0 but is only supposed to work on the 3G S, but apparently phones that were previously jailbroken also get it.  I guess restoring to 2.2.1 doesn't fully "unjailbreak" it.  Anyway, I'm glad I have this feature as I like having the percentage.


I restored from my backup to get all my apps and data back, again, very slow, and then went ahead and jailbroke.  This went smoothly other than I was unable to pick my boot logo of choice.  I wasn't worried though as I had used LogoMe in the past to change the boot logo after jailbreaking.  Using Cydia, I installed:

  •  OpenSSH - Can use ssh to connect to my iPhone
  • Cycorder - Shoot videos without requiring the 3G S
  • JamVM - Java VM for the iPhone
  • SBSettings - Shortcuts and toggles for a bunch of features that are otherwise buried in the Settings apps
  • Five Icon Dock - Allows me to put 5 icons on the dock rather than the stock 4
  • Mobile Terminal - Get shell access to the phone
  • Insomnia - Keeps the iPhone's network connection open when the device would otherwise go to sleep, however, the current version doesn't seem to work with OS 3.0 so looking forward to an update
  • Backgrounder - Allows apps to run in the background, however, the current version doesn't seem to work with OS 3.0 so looking forward to an update
  • LogoMe - Provides a way to change the boot logo that is displayed, but alas, it too doesn't seem to work with OS 3.0 but see below for workaround
  • MobileFinder - Provides a Finder app like one has on OS X on the desktop, but alas, it doesn't work with OS 3.0 either
  • Tricker ThreeG - Fakes applications into thinking they are on WiFi when they aren't so that they give the full WiFi functionality
  • Qik and UstreamBroadcaster - Apps to stream video to the web

While Tricker ThreeG seemed to work fine, it seems to hardcode the apps that it fakes out so I switched to the app I had previously, VoIPover3G which allows one to specify what apps to fake out.

On the boot logo, I went ahead and went through the jailbreak again this time taking the extra steps to get my logo in the right format so that I could include it as part of the initial jailbreak.  That seemed to work fine.

So, I now have OS 3.0 and am jailbroken, although some of the apps I like to use aren't working yet.  I'm confident they will be updated soon.  As I use it more, I'll blog about some of the new features I come across. 



Thursday Jun 11, 2009

links for 2009-6-12: MS Money done, iPhone specs, Twitter good for burglars?, EC2, Windows 7

Wednesday Jun 10, 2009

links for 2009-6-11: Google goes after Microsoft, No deal for existing iPhone customers, Oracle and Java

Monday May 11, 2009

iPhone App Store - Reality of Myth?

When I bought my iPhone around Christmas last year, I fully intended to play around with developing applications for it, but hadn't even downloaded the SDK ... until this past weekend.

So I downloaded and installed the SDK and was able to build a sample app and run it in the simulator, but now I wanted to get it on my phone to run it there.  This is where I started to learn more things than I had thought I'd wanted or needed to learn.

While I have the required Intel based Mac and am running OS X 10.5 (paid to upgrade it from 10.4), and I have an iPhone, it turns out that Apple hasn't made enough money off me yet and insist that I pay $99 to join the iPhone Developer Program to be able to put an app I develop onto a phone I already own.  Now, I'm just looking to play around with the SDK and apps on the phone and am not ready to start selling an app on the App Store to recoup my $99, so I go about researching what other options there are but in the process learn more about what would happen after I would pay my $99 if I chose to go that route, and this is where it gets more scary.

I found this record of Michael Ash's experience with going through the whole process and learn of delays and complications and other issues that all in all make the whole process sound somewhat less than what I'm looking for.  If I had an app I was ready to sell I'd probably have the incentive to wade through the whole process and figure out how to make it all work.  But for someone just wanting to try things out, Apple has put a pretty big barrier to entry in place.  And from many of the comments to Michael's experience, he isn't alone.  It boggles my mind how Apple can get away with this, but it appears there are enough developers who will endure what they have to do.

But since I'm not, at least yet, I continue looking, and as I've written about jailbreaking before, I look into what that provides for.  I discover that one can simply copy an app built with the SDK to a jailbroken iPhone, but you have to do self/pseudo signing of the app and there is a tool to do this on the iPhone, "ldid", but when I try to use it I'm getting the following error:

 util/ldid.cpp(418): _assert(0:arch != NULL)

So this isn't fully working for me yet, but I'm still working on it.

Last, it appears that if you sell your wares on the App Store and folks return your app, Apple will be taking money out of your pocket!  You'd think that the 30% they take from the sales would cover their costs, but alas, I guess not.

But the bottom line is that it would seem that for many (most?) folks, getting access to developing apps on the iPhone and ultimately getting them in the App Store may be a myth.  What are your thoughts or experiences?  And does anyone know how to get past the error above?

Friday Apr 03, 2009

links for 2009-4-2

  • Why Recession Is Causing Enterprises to Rethink Open-Source Strategy'You know, losing my job for buying big proprietary software is too risky. You guys are now in the drivers' seats; we need to buy open source,'
  • Windows Net share shrank 3.68% year to year - OS X is the big beneficiary growing 9.77% but interesting iPhone's are listed at 0.49% which seems small, but in the larger scope of things is pretty significant.
  • Get the Toshiba OpenSolaris Laptop - Portégé R600 or Tecra M10 configurations.  A similarly equipped R600 with Vista is $500 more than the $1,599 price with OpenSolaris).  A similarly equipped M10 is $200 more than the $1,099 price with OpenSolaris.  If nothing else, perhaps a way to get the hardware AND you get an OpenSolaris subscription.


Friday Mar 20, 2009

Tethering an iPhone

I wrote about jailbreaking my iPhone a few weeks ago and finally had a chance to really give tethering a try.  All in all, a success and I expect I'll use it from time to time.

Originally, I had gotten the Modem app from Cydia and gave it a quick try, but was unsuccessful in large part because I only spent a few minutes on it and I think something was confused with having both the peer-to-peer WiFi and the home WiFi router in the vicinity.  In searching for the instructions for the Modem app again I came across PdaNet so gave it a shot.

The install using Cydia was very straight forward and the instructions for using it were also very simple.  Set up a peer-to-peer WiFi network on my Mac, connect to it from my iPhone, then run PdaNet.  After a moment or two it figured stuff out and created the route from the WiFi to 3G connection and I was online from my Mac.  I didn't have to run anything or configure anything on my Mac other than the peer-to-peer WiFi network and PdaNet appeared to do its thing and then run in the background just fine.

I did a few speed tests and observed between 800Kbps and 1Mbps which I was pleased with, and browsing and retrieving e-mail seemed snappy enough.  What I did notice was that my battery meter was dropping faster than the level of the dog food when my two dogs are given unfettered access to the bag (a story for another day).  It would seem that actively using both WiFi and 3G does drain the battery so having it connected to your computer or otherwise charging is probably required for any kind of sustained use.  I did not use it long enough to see if having it "charging" actually charges it when in use or just keeps it from discharging.

All in all then, a success and I look forward to using it when needed.





« June 2016