Jun 20

iPhone 3Gs: “S” for responsiveness, but also subordination?

Apple, iPhone with tags: 7 Comments »

smoothlikebutter

Imagine this scenario. Say you worked for a company that had a top website and a new browser came out. There were some known bugs when said browser used your website, so you would obviously change the website ASAP. Chance are that you are ahead of the game and already had the fixes ready as you tested with release candidates. Your users grab the latest and greatest browser and use your website with glee.

Now imagine if the following happened: the browser vendor was in charge of your website and you had to ask nee plea with it to update your site. The vendor refuses at first and you have no control at all! All of the users that have upgraded their browser are now getting a sub-par experience. It’s your site, but you have no control. You curse as you know that the fix is RIGHT FRIGGIN THERE but hasn’t been applied.

This is crazy talk. You would never cede control like that. But wait, isn’t that what can happen with the iPhone and Apple? Facebook is one of the most popular applications on the iPhone, yet I read the following from poor Joe Hewitt, the guru that single-handedly created Facebook for iPhone, as well as the original Firebug, worked on Firefox, and much much more:

Submitted an update to the Facebook app a few weeks ago to fix OS 3.0 issues, still awaiting approval.

As of right now, if I am running Facebook on the iPhone 3Gs there are known bugs that Joe has fixed. I can’t run it. This is how they treat THEIR TOP APPLICATIONS which has a brand name company behind it? Imagine how they treat the poor lowly buggers on the totem pole.

Well, actually, we don’t really have to wonder too much. How gutted are you if you bet a year of your company on something with some amount of apparent blessing from Apple, and then see it thrown back in your face with some rule cited … when you know that the guy next door got his work in even though he is doing the same or worse!

Back to Joe. He got the latest 3Gs and talked about how smooth it is. This is great news. I feel like I often have a frozen UI on my 3G (typing, scrolling, any interaction) and it bugs me. If Apple has gotten their device “responsive enough” where the average user doesn’t notice these glitches, they have gone a long way, and as Joe mentions…. will give him time to work on features and not tweaking his code to try as hard as possible to keep his UI responsive (which in some circumstances was proving impossible). Ben has told me “It’s like the PowerBook G4 to MacBook Pro upgrade dude” which is great to hear since recently all upgrades have felt like a wash (e.g. recent Macbook Pro upgrades).

Also, I took another look at the applications that I have installed on my phone, and quickly realized that I use ~5% of them. I have a huge number that I have probably run once. When I look at the ones that I do use, I also quickly saw that the vast majority could easily be web applications, especially with the HTML5 features of Mobile Safari. If Apple continue to open up the API to the WebView (or PhoneGap / Titanium Mobile continue to thrive) then it will be so easy to create a large swarth of applications using simple Web tech. Sure there will be reasons to go closer to the metal, but for a lot…. you won’t have to. That is exciting stuff. I would also love to chat more with Joe about his experience using Cocoa vs. Web tech for layout etc. We have chatted a little, but I would love to talk more.

I went back and forth on getting an upgrade this time around. I was a definite “No” at first due to the pricing, and then AT&T came out saying that they would be helping out, so Ben and I went to check it out. Note: we both were in the same line for the 3G last time around, and at the store we found out that HE got to get the phone for $200 (as a “valued customer”) whereas I would have the pleasure of paying $300 more. I couldn’t whip out my credit card and walk out with the same hardware as him for a shed load more. So, now he will get the chance to lord over me until I do make the upgrade “wow this compass is amazing. wow the responsiveness is fantastic. How did I live without video right in my pocket.” Or, maybe I will jump to a Pre and start hacking on the native SDK that is just Web itself?

Nov 22

Being a “power user” really sucks sometimes as iPhone 2.2 reminds me

Apple, Tech, iPhone 7 Comments »

Being a power user sucks, as you are often in the minority. The marketing folks are drooling over the middle of that bell curve, and you are clustered at one end with a few of your mates.

I got reminded of this again with the iPhone 2.2 update that gave me this:

iPhone Safari

I get it, some people didn’t know that the search icon would do what that huge block on the right hand side now does. Make it like the “normal” browser and maybe they will get it. For me though, the space that they gained with the reload/stop URL bar integration is destroyed by the huge search box which does nothing for me.

If you could change it back, that would be OK. about:config away. But Apple doesn’t do this for us. We live in a Jobsian society where his vision is our vision. One more gripe with the iPhone even with this update…. I keep expecting the team to give us a decent friggin cache. PLEASE let me give the iPhone as much space as it needs to keep my stuff around! A mobile browser that is often on a crap network needs this more than anyone else! Cache more aggressively. Save my JavaScript and CSS! At the very least, don’t let me hit the back button and wait for the entire bugger to be grabbed again for the love of god! Why can’t I about:config and up the caching space and rules :(

I find this common with the Apple tools in general. They often get away with it as the engineers hide things in Apple prefs that we can change. The UNIX sometimes gets a chance to shine through for us there. Developers can sneak in a few more settings that don’t show up in the UI that Mr. J probably looks at with a fine tooth comb.

Argh. So close. Does anyone else feel this way? Maybe it is time to check out Linux? Nah, I am not that crazy ;)

Nov 16

iPhone Web applications and the Record API

Mobile, Tech, Web Browsing, iPhone with tags: 3 Comments »

As we watch and wait for the update to the Google Mobile iPhone application we are once again aware of the gatekeeper situation on that platform.

Google doesn’t know when it will launch, Apple does. Google had great PR into the launch (which they were told would be Friday… at least at some point). I had the pleasure to see the voice feature and was actually kinda gobsmacked with it when I saw it at work. It isn’t like we haven’t seen voice recognition apps for years. However, this one seemed to actually work, and not just for simple words but for complex queries. Random place names were picked up. Wow. Maybe the work behind GOOG-411 is paying off :)

But, the iPhone app isn’t out there, yet. If this was a Web application, the Google engineers could cut a release and be on their way. But, how would you read in the audio? You could go for Flash or a custom plugin, but it reminded me of the audio API support and Gears. When you think Audio API you think of the HTML 5 audio tag and the API that goes with it… specifically the “play” support. What interested me from the first design doc in Gears was the other side of things and the support for “record”:

// an object of this class can be got from 
// google.gears.factory.create('beta.audiorecorder')
AudioRecorder class
{
  // ---- error state ----
  readonly attribute AudioRecorderError error;
 
  // ---- recording state ----
  // says whether recorder is currently recording or not
  readonly attribute boolean recording;
  // says whether recorder is paused or not
  readonly attribute boolean paused;
  // the amount of sound detected by the microphone
  // 0 - no sound detected to 100 - maximum sound detected
  readonly attribute int activityLevel;
  // specifies the length (in milli seconds) of the audio recorded
  readonly attribute float duration;
 
  // number of channels, currently can be 1 (mono) or 2 (stereo)
           attribute int numberOfChannels;
  // sample rate for the recording
           attribute float sampleRate;
  // sample type for the recording, possible values need to be defined
  // signed 16 bit little endian linear PCM
  const unsigned short S16_LE = 0;
           attribute short sampleFormat;
  // audio file type (container and codec), possible values need to be defined
           attribute string type; 
 
  void record();
  void pause();
  void unpause();
  void stop();
 
  // ---- controls ----
  // 0.0 - silent to 1.0 - loudest
           attribute float volume;
           attribute boolean muted;
  // the amount of sound required to activate the microphone
  // 0 - capture even minutest sound to 100 - capture only loudest sound
           attribute int silenceLevel;
 
  // ---- cue ranges ----
  // provides ability to set callbacks at specific points in playback time.
  // similar to API in Audio class. Look at HTML5 spec for explanation.
  void addCueRange(in DOMString className, in float start, in float end, 
                  in boolean pauseOnExit,
                  in VoidCallback enterCallback, in VoidCallback exitCallback);
  void removeCueRanges(in DOMString className);
 
  // ---- access blob ----
  // returns handle to the blob object containing the audio data
  Blob getBlob();
};

I can’t wait to get full audio support available in the Open Web itself. Yet another barrier knocked down. Of course, the publicity around the Google Mobile app is nothing but good in many ways :)

Nov 03

Why I am bullish on iPhone Web; Looking at my wifes iPhone

Tech, iPhone 4 Comments »

iPhone Old School

I picked up my wifes iPhone today and wasn’t at all surprised to look at the AppStore icon and see a bazillion updates showing in the badge icon. To explain, I will pick up Emily’s laptop and find Software Update bouncing for its life. “Look at me! Please, it’s been months!” Em doesn’t seem to notice this: “I don’t look down there.” Huh :) If the leaping icon doesn’t do the trick, a badge on an icon that is never touched won’t do the trick.

This is why I am bullish on that Web thing on the phone. Emily is using an old Facebook.app, but imagine if she was going to a Facebook website that had access to APIs for the camera and address book. With these APIs, Joe could build everything that he has done on the native app, yet auto update my wife since this is all just behind a URL!

PhoneGap is there to allow you to take your Web app and throw it in the App Store so people can find it there. You can also access native APIs too through PhoneGap, but hopefully Apple opens up more and more to Mobile Safari itself.

I hope that the AppStore will offer a “keep up to date” option so it can auto download new versions for me. I wish that other products did that too, especially browser nightlies. I want WebKit and Firefox (Minefield) nightlies to keep updating themselves.

The big question: Location API. HTML 5 has it. WebKit is notoriously good for implementing these APIs, but Location is a key feature for apps and the AppStore. Hmm.

Aug 20

Frustrating User Experiences: iPhone Mail.app

Tech, iPhone with tags: 14 Comments »

One of the most common tasks that I have as I check email on my phone, is jumping between work and personal email. This breaks down for me on the iPhone due to the menu system.

When you are on one inbox:

iPhone Inbox

you then have to go back, through the list of folders, to the accounts screen:

iPhone Accounts

At this point you then have to go back into the other account. This makes 4 animated clicks to go from Inbox to Inbox, and even more if you are already in a message.

Since this is so common for me, I would like to be able to bypass the menus and have something like a dropdown to go directly from Inbox to Inbox. Here is an incredibly crude visualization:

iPhone Dropdown

Maybe a nice gesture… a swish… which sends you back and forth :)

Other Frustrating User Experiences

Aug 05

Tough Love: How Steve could make us all like Flash more

Adobe, Tech, iPhone 2 Comments »

I was reading Om Malik’s interview with Kevin Lynch of Adobe, and mulling over the mobile question.

After reading, I popped online to view the menu for the Tandoori Grill in Boulder (I love that place!). They use Flash for the menu, which doesn’t make the iPhone happy. I cursed again, as their is no work around until either:

  • It gets on the iPhone (and I think it will)
  • Someone does the crazy Flash on the server hacks

After cursing, I sat down and realized that the tough love that Steve Jobs is giving Adobe could actually be a good thing for everyone (including Adobe!). You have to bet that the Adobe Flash / mobile teams are working their arse off getting Flash small and compact in a way they never have had to before. I am sure they will get there, and the day that Steve can pop open the debug Safari build and see that it runs Flash nicely without sucking the battery life, he will give it the OK. When that happens, we will not only have Flash on the iPhone, but also a much leaner and meaner Flash that can run on the desktop. A true win-win?

Jul 30

Nintendo DS, I never even got to know you; When the iPhone convergence story wins

Apple, Tech, iPhone with tags: , 2 Comments »

I have been wanting a Nintendo DS for quite some time. I have watched friends with their special ROMs that have every game under the Sun on them, and some of the games have phenomenal game play. I always love a device that focuses on that rather than raw graphics.

I don’t know why I didn’t get around to getting one. I think that the reason partially lies in the fact that I had bought a PSP when it first game out. It was great fun to play, but since I had a child quite shortly after, I think that my nephews have played it more than I.

There lies the rub. For me, the only real time that I get to play something like that (including a DS if I had one) is on a flight. In those times when boredom sometimes strikes, the Internet isn’t there to help, and you are stuck in cabin where the idea of doing anything useful on the flight disappears.

So, I never have got a DS. I don’t think I will end up with one now, because I can just download games to the iPhone. There aren’t any that I love right now, but I can enjoy a short period playing Tetris and trying out some free / very cheap new games that try to use the gyros.

I trust that the same will go for the Amazon Kindle too. I really like it in theory, and I am waiting for the next version to come out. But by then we may have a MacBook Touch that will illuminate the need.

Sometimes the convergence play doesn’t work. The bulky “I do it all” stops making sense, and you just want something that does that one thing really well. Apple is nailing it though, and I think that the iPhone is actually going to be THE computer in the years to come.

Bluetooth to headsets, glasses that show the screen directly on your retina, voice controls, magic keyboards, and a hell of a lot of processing in the cloud.

I am sorry that I will only be buying a few devices in the future. I always remember my iPhone. I often forget the PSP etc.

Jul 21

A tale of two iPhone 3G buyers

Tech, iPhone 7 Comments »

Last night I was talking to a chap who had also gotten the new iPhone 3G. He was so excited. He loved it! He seemed surprised that I wasn’t as enthusiastic, but we quickly found out why. He had never owned an iPhone before, so he had gone from the dark world of Windows Mobile to iPhone. I can understand why he was so excited. He had the great iPhone UI, with all of the apps, and ActiveSync there to not make him sad.

For me though, the new phone has been a non-event.

Why did you buy the darn phone?

The main reason that I bought the new phone was not a shiny black back with a curve, it was actually for the hope of a better signal at home. I read reports of the 3G network being better in Palo Alto than EDGE. I get 1-2 bars way too often at home, so the very thought of a decent connection was enough to make me giddy.

VOIP on the iPhone via one of the applications is one option, but what about incoming? Also, subtle things bug me. When I use Skype to call people they see “0123456789″ or something like it in their caller ID. I wish I could map in my real number. UPDATE: It can! Praful Mathur in the comments gives the info:

  1. Goto skype.com
  2. Login to Account section
  3. Click on Call Identification
  4. Tell Skype your number
  5. It takes 24 – 48 hours to update your account

Back to the network, there was no 3G network at all at home. Nada. It made no difference. When my phone is at home all I get for it is a battery that goes down faster as it checks for a 3G connection :) In fact, it is even worse than this. I am often turning off 3G as an option, as I have found there are many places with 1 bar 3G, and full bars EDGE. It picks 3G and that 1 bar doesn’t give you any connectivity. It needs to be smarter and know that full EDGE > 1 3G.

GPS is nice. Seeing the blinking blue button the Maps application is very nice, but you can hardly use it as a car tool since it doesn’t do either voice directions, or move through the steps (you have to click on “next” to get it to go through). Overall not that useful unless you are walking, and then you could probably quite easily keep up with yourself.

What does this leave me with? The only cool part of the new phone is the push of iPhone 2.0 software, which I could get on my old phone. Even there, with some good new apps, I get constant crashes and a bunch of the apps that I enjoy don’t work well. NetNewsWire can’t seem to deal with my amount of feeds, and I can’t seem to be able to tell it “dood, just grab the priority 1 items.”

Eh.

iPhone.Next will hopefully get me excited again, if it has a decent camera with zoom, video, full bluetooth support, the magic tactile feedback electric zapper, updated hardware, over the air syncing, and more.

Jun 16

Why we need Skype on the iPhone

Tech, iPhone 2 Comments »

iPhone Wifi and Cell Coverage

Above is a picture of my iPhone at my house right now. It is infuriating to have ridiculously poor coverage living in Palo Alto. I have had full bars at the top of mountains, but in the center of Silicon Valley I have one? Are you freaking kidding me?

This is why I can’t wait for VoIP on iPhone 2.0, so I can stick my nose at AT&T as I make decent quality calls from home.

Mar 11

Mono and Java on the iPhone

Comic, Java, Tech, iPhone with tags: 15 Comments »

Mono Java iPhone

Talking with code is powerful. Miguel posted screenshots of Mono running on the iPhone whereas Sun talked about Java running on it.

I always feel like I would like a reason to get into Mono, but never find one.