Drinking the Apple Juice
http://blog.drinkingtheapplejuice.com
Drinking the Apple Juice

Two years later - comment.

Two years later and yes I am still enjoying my iPhone!

In that time I have upgraded to the iPhone 4G, purchased my wife a 4G,  gave my 4 year old my old 3GS (as an iPod Touch configuration), and purchased a iMac for the home. So I think it would be safe to say that I am truly drinking the apple juice. 

I am disappointed in the extra cost for iPhone tethering and that fact that I would have to give up my unlimited data plan. With that said I have yet to have a real need for it. If I need immediate access to email or data I just use the iPhone as is or go find a WiFi hot spot for my laptop. 
 
As far as Apple keeping up I would have to say yes, Apple is doing a solid job and I respect their one hardware refresh a year model. I still laugh at the press with their constant flip-flopping on who is the best Apple, Android, Blackberry etc. With development, especially hardware, everyone will take turns being ahead and behind at some point in time. So for me I never look at it from a single snapshot in time on who the leader is. I look at the long term tends.

One trend I see with Apple is how they are slowly working their way into controlling every aspect of multi-media in your home. Right now there are many high-end digital receives with built in support for AirPlay (one of which is on my to purchase list). This is where Google, BlackBerry and even Microsoft don't get it - it' s not just about the phone.

However, as I predicated, Android has taken the lead in sales volume simply because of the number of manufactures cranking out devices - and some of these devices are quite compelling. But If you were to compare one specific Android model to the iPhone there would be no comparison. 

I also predicted (like others) that Android OS versions would become fragmented and it indeed has. The latest charts (http://developer.android.com/resources/dashboard/platform-versions.html) show that most devices are running 2.1 or 2.2 not the latest 2.3 which on the surface may not be that bad. But what the chart does not show is how many of those devices can't upgrade yet and which ones will never be able to be upgraded. Let's face it the carriers really don't care if a phone can be upgraded because they always want to sell you the next best thing. AT&T is already spinning up the Android marketing machine in the wake of Verizon selling the iPhone. Android device manufactures are so busy cranking out multiple different models at a neck-breaking pace that if an older model (last month's) is not a big seller there is no incentive to keep supporting it. This, in my opinion, will be what keeps Apple on top. 

The Android store is also suffering, based on feedback from many colleagues who have Android phones. They tell me how difficult (not impossible) it is to find quality software. I guess there is something to be said for the App Store approval process 

I also find interviews from the likes of John Carmack interesting: http://arstechnica.com/gaming/news/2010/11/post-8.ars/

Android is here to stay for sure but I plan to say with my iPhone. 

Thanks everyone for the great comments and I will do my best to keep posting!

DAJ


Disconnecting VPN on Sleep

I have been experiencing an constant annoyance when I forget to disconnect from my Corporate VPN. In this case when the Mac goes to sleep for an extended period of time, on wake it thinks it is still connected to the VPN and tries to reestablish a connection at which point  (I assume) our Cisco VPN server detects this as an attempted hack and disables my account for a period of time.

I know this may not be a common issues for all VPNs however for me it is annoying. My solution was to write a small AppleScript that would disconnect from the VPN on shutdown.

1. Create /Library/Scripts/DisconnectVPN.scpt
2. Add the following script logic

tell application "System Events"
    tell current location of network preferences
        set VPNService to service "Corporate VPN"
        if exists VPNService then disconnect VPNService
    end tell
end tell

3. Note that "Corporate VPN" is the name of the network connection found in the left pane of the "Network Preferences" page.

The next step is to have this script execute on sleep. This involves creating a hidden .sleep file in your home directory. Be careful if you use TextEdit to create the new file as it will append an additional extension to the file name and thus it will not work properly.

1. Create ~/.sleep
2. Add the following script

#!/bin/sh
osascript ~/Library/Scripts/DisconnectVPN.scpt


Note, that because of the leading . this file will be invisible in the normal finder window. You can use the terminal command ls -al to show all files or follow the below link to show hidden files in finder:

www.brooksandrus.com/blog/2007/03/23/mac-os-x-show-hide-hidden-files-in-finder/

Apple deprecates Java on Mac OS - Ouch, this is going to hurt!

Apple deprecates Java on Mac OS - Ouch, this is going to hurt!

http://adtmag.com/articles/2010/10/27/analysts-on-apple-java-mac.aspx

Looks like good old Steve is going back to his old tricks and making Apple a truly closed system. I guess he does not realize (or care) how incredibly popular Macs are among the Java developer community - even if the applications they write are deployed onto other operating systems.

With this decision, I only see Apple as the real loser. This will not stop or slow Java development it will only stop people from purchasing Macs for Java development - way to go Steve! Oracle makes no money on Mac sales and Companies will not move away from Java just because they can't develop using Macs so their investment does not make sense. Although I am hoping Larry does step up and make a version of the JVM for Mac just like they do for Windows but again I am not holding my breath here.

I predict a flood of Java developers moving away from their beloved Macs in favor of another OS and then running the hacked version of Mac running under VMware or Hackintosh (http://www.hackintosh.com/) for any necessary iPhone/iPad development.

DAJ

The Problem with Android Phones


Android has been picking up quite a bit of steam lately as the next biggest threat to the iPhone. There is no doubt that there are some great Android phones out there and many more on the way. However, as a major platform for developers I see a bumpy roads ahead and here are my personal thoughts.

Because the Android OS is open source any handset manufacture can take it and do what ever they want to it. In fact they almost have to in order to complete with the other manufactures to make their phone stand out from the rest. They will completely change the way the UI works, they will add additional features that are not available in the base Android OS, they will add different calendaring, contacts, email, different screen resolutions, etc. and here is where things go very bad.

Once Google releases an update to Android it does not mean that every phone running Android can immediately download the latest and greatest update. Some phones may be able too but many won't and I predict it will only get worse. EnterpriseMobileToday is just one place where you can read about these delays: www.enterprisemobiletoday.com/news/article.php/3873376.

What happens if the Android phone you love was not a big seller for the carrier? My guess is that you won't be seeing many Android updates for it so you will be forced to buy a new phone and when you do let's hope all of your Android application will run on the new model.

With the iPhone when an update is available it is available for every iPhone at the same time - yes their servers may be overwhelmed but it is available.

As a developer it is quickly going to be difficult to keep up with all the different Android variants. For example, what happens when a manufacture modifies Android to provide a totally new swipe gesture interface? I can write my application to use their custom APIs but then my application will only run on that one Android model. I could disable the features by checking the model at runtime but that would mean I would have to code in a default gesture interface as well. Then how do I deal with all of the custom APIs from all of the different handsets? I will soon be writing more code to deal with the different models at runtime than the actual application code itself.

Yes, Apple has the same problems as they move from one iPhone OS version to the next (OpenGL ES being one of them). The difference is that it is an evolution step from one manufacture rather than a shotgun effect coming from many handsets manufactures at once each trying to out do each other.

Just look at the problems with Linux as a desktop replacement - there are just too many distributions for any one to make a serious run against Microsoft or even Mac OS. Then think about all of the Android Linux handsets that are going to be coming out each month. With each model being based off a different fork of the Android source code. There will soon be enough forks to feed all of the homeless and unfortunately this is not a good thing.

Android, will most likely win in total number of units sold over the iPhone or even Windows 7 phones but let's compare Apples to Apples (i know) and compare a specific Android Handset model against the iPhone and see what the numbers really come out to be.

With that said, I am a fan of both Android and Java. I like the open source concept. I think there are going to be some amazing Android phones, but there are going to be some real challenges ahead to make it become a leading developer platform at the level of iPhone and the soon to be released Windows 7 platform.

I could be totally wrong on this and that would be ok but only time will tell.

Good luck Android!

P.S. I don't plan on moving off of my iPhone 3GS any time soon (except for maybe the next iPhone)

Dealing with iCal Import Problems and Errors


If you are using iCal then you inevitably have come across problems (errors) when importing .ics or .vcs files you may receive via email. Almost all calendar invites from Microsoft fail to import into iCal (at least for me). The good news is that you can work around almost any import problem. The bad news is that it takes just a bit of grunt work (I am working on a solution for that too).

What is the problem?

Surprisingly Apple is not adhering to the iCalendar specification. Apple's web site (http://developer.apple.com/internet/appleapplications/icalendarfiles.html) will point you to the Internet Engineering Task Force site where the specification lives (http://www.ietf.org/rfc/rfc2445.txt)

1. The iCalendar specification states that the property and parameter names are case-insensitive (unless specifically noted) while Apple appears to require them to be upper case.
2. Apple also does not appear to like a space following the property colon.
3. Apple requires VERSION:2.0 and will not import VERSION:1.0 files

The fix is quite simple:

1. Change all property and parameter names to upper case.
2. Remove the space after the property colon
3. Change the VERSION to 2.0
4. Sometimes is helps to rename .vcs files to .ics

This alone has cleared up over 98% of my issues.

If you are still having problems here are a few more tips:

1. After an import fails, open the Mac OS X Console application; select DATABASE SEARCHES -> Console Messages and look for iCal errors. Console can be found at Finder -> Applications -> Utilities -> Console.
    1a. If the Console reports that a property or tag is invalid then simply remove it - which might also include a closing tag and all of the content in-between

2. Verify that you did not introduce any typos into your converted file by validating it at this web site: severinghaus.org/projects/icv/ />
3. I am working on a utility (it will be free) that will automatically correct these problems.

Hope this helps and happy iCal'ing!

Example Before (TrainingEvent.vcs)
BEGIN: VCALENDAR
VERSION: 1.0
BEGIN: VEVENT
DTSTART:20100324T190000Z
DTEND:20100324T200000Z
Location;ENCODING=QUOTED-PRINTABLE:
DESCRIPTION;ENCODING=QUOTED-PRINTABLE:Sponsored by NaviSite, Inc. and SaaS-it Consult, in conjunction with Microsoft, this one-hour webinar will give ISVs and application developers the opportunity to learn more about the benefits of SaaS, Managed Hosting and Managed Cloud Services as a future business and IT delivery model. The webinar will also include key factors to include when you evaluate your ISV business and how it will fit into the new era of IT delivery. =0D=0A=0D=0AAttendance Url:
www.msdev.com/Directory/Description.aspx?eventId=3D1764 />SUMMARY:SaaS As a Business and IT Delivery Model - Webinar Event Sponsored By: Microsoft, SaaS-IT Consult, and NaviSite
END: VEVENT
END: VCALENDAR
Example After (TrainingEvent.ics)
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTART:20100324T190000Z
DTEND:20100324T200000Z
SUMMARY:SaaS As a Business and IT Delivery Model - Webinar Event Sponsored By: Microsoft, SaaS-IT Consult, and NaviSite
DESCRIPTION:Sponsored by NaviSite, Inc. and SaaS-it Consult, in conjunction with Microsoft, this one-hour webinar will give ISVs and application developers the opportunity to learn more about the benefits of SaaS, Managed Hosting and Managed Cloud Services as a future business and IT delivery model. The webinar will also include key factors to include when you evaluate your ISV business and how it will fit into the new era of IT delivery. =0D=0A=0D=0AAttendance Url:
www.msdev.com/Directory/Description.aspx?eventId=3D1764 />END:VEVENT
END:VCALENDAR

6+ Month Update

So far my overall opinion of the MAC OS X is very high - so much so that I am already planning to replace one of my home servers with a new MAC. The system is very stable, I really enjoy the UI and having a Unix kernel under the covers is simply excellent. I was able to find native equivalents for just about all of the applications I used on Windows to the point where I no longer use my Windows XP home system any more.


Windows Development


As far as using the MacBook for Windows development, I must admit that It has also been excellent. I actually think that XP (running under VMware Fusion)  is  faster, more reliable and stable.

Now I am sure there are many of you out there shaking your heads in disgust saying that it is just not possible - but hear me out. In my earlier  posts I stated that my plan was to install only Microsoft Visual Studio (and any other required development tools) into the VM - everything else is native MAC (Mail, Calendar, Office Suite, VPN, Web Browsing, Video Production, etc.) which I have managed to do. I also uninstalled every optional component under my Windows XP VM that had a corresponding native MAC component.

I attribute this phenomenon simply to the fact that the more software you install on Windows the slower it becomes - even if the software is not running. In my mind the registry and active-x are two of Microsoft's biggest blunders. If you never ran a registry monitor and watched what is going on with not applications loaded you should as you would be amazed. So simply by the fact that I am installing almost nothing under Windows keeps it running lean and mean.


Summary


Is my MacBook and MAC OS X perfect - no. But then again neither is Windows or any software I have ever used for that matter. Read any forum for any OS or application software and you will find people that claim it to be perfect and others that can stand it. It is all a matter of personal taste and requirements.

I am not sure if my new found enjoyment is simply my natural desire to keep learning new technologies, or that I really am just tried of Windows. What ever the reason I am very happy and have no plans to return to a pure native Windows environment any time soon.

DAJ

Time for Microsoft Office :(

This is a sad day for sure but it looks like I am going to have to purchase Microsoft Office for MAC. Although I really like Keynote vs Powerpoint and Pages meets my minimum needs just fine - Numbers is just not cutting the mustard. Excel, over the years, has become so much more that just a spreadsheet application. It can be argued that it is also its own development environment  and this is where the problems arise.  I simply have too many spreadsheets that require many of the enhanced capabilities of Excel such as custom controls and forms that are just not supported under Numbers. So I will be forced to switch. Yes, I am quite aware of Open Office but I do not like the fact that there is no native UI for MAC and I still believe that I will have the same problems with the spreadsheets.

DAJ

iPhone is Getting Better

After several iPhone firmware updates, I must say that it has been more stable and the number of dropped calls has been greatly reduced - I will keep a closer eye on this and post some more later.

DAJ

IPhone 3G GPS: Are you kidding me?

Sorry but this is just another one I could not let sit. Here is a quote from Apple's web site regarding the iPhone's GPS capabilities:

"Find your location, get directions, and see traffic — all from your phone. Maps on iPhone 3G combines GPS, Wi-Fi, and cell tower location technology with the Multi-Touch interface to create the best mobile map application ever."

I find this quote worthy of another law suit as the mobile map application is laughable. Yes, you can get your current location, yes you can get directions. However, it does not support voice turn by turn directions. It does not even support auto advancing from one step to the next you have to manually keep advancing it your self  - are you kidding me?

I was purposely postponing buying a standalone GPS navigation device based on the planned iPhone 3G capabilities and based on other GPS navigation application I have seen on other mobile phones - what a disappointment.

Steve, how could you ever let this piece of junk mapping application ever leave your engineering department? You must be getting soft.


DAJ

iPhone 3G - The worst mobile phone I have had in years

First let me clarify - when I refer to the iPhone being the worst mobile phone I have had in years I am talking directly about the using the device as a phone itself. My reason is quite simple, the coverage is terrible and I have had more dropped calls every day and failed connections than I can ever remember having with any previous mobile phone.

The first thing people say is that it must be AT&T and if I had not been an existing AT&T mobile phone customer for years I might believe them. However, my previous AT&T phone, a Blackberry Pearl, had excellent coverage and I almost never dropped a call and never had a problem initiating calls.

I now have to stand near the front windows of my house or wose stand outside to get reliable coverage.

Another co-worker was in town with his iPhone and had the same problem in the same areas I had - again areas where my AT&T Blackberry worked flawlessly.

Something is definitely wrong with the iPhone's phone capabilities and I have already recommended to people in my area to stay away from it.

Now, the iPhone's phone may work perfectly in other areas of the country but when I had a previous AT&T phone then upgraded to a new only to have less quality and covergae I find that completely unaccetable.

DAJ