Pages

Friday, October 7, 2011

7 Things to Convince Me to Switch to the iPhone 4S [REVISITED]

I previously wrote about the possibility of switching from the Android world to the iPhone world.  Now that the iPhone 4S has been announced, and will be released next week, I figured it would be a good opportunity to revisit the demands I made in order to make the switch a no-brainer:

1) The iPhone 4S must be released on Verizon at the same time as ATT
Check.  Plus, it's being released on Sprint.

2) The iPhone 4S must be capable of utilizing LTE
Fail.  However, as I mentioned in my previous post, there was a little bit of wiggle room on this one, and now that I have seen what the current generation LTE chips do to battery life on the existing Android handsets, I'm happy to stay away from it for now.

3) The iPhone 4S must have a dual-core processor
Check.  It will include the A5, which will supposedly increase general processing performance by 2x and graphics performance by 7x.

4) The iPhone 4S must include an NFC implementation
Fail.  I must admit that I figured that NFC, in general, would have come a lot farther this year.  Google just recently introduced Wallet, which is currently only available on one phone on one carrier.  We have a ways to go before this really goes mainstream.

5) The iPhone 4S must use a better notification system
Check.  iOS 5 includes a notification system very similar to the existing Android implementation.  It looks good to me!

6) The iPhone 4S must have a dependable, free (or inexpensive) turn-by-turn Navigation application
Check (TBD).  I have discovered Waze and Mapquest to be two free options, and there appear to be a few not-too-expensive options.  I'd have to test them out to determine their quality though.  Any suggestions?

7) Along side the iPhone 4S, Apple must provide free MobileMe access
Check.  iClould will be free, and available this coming Wednesday (October 12th).

So, there you have it.  The only two fails were for LTE and NFC, which were definitely my least critical concerns for the new iPhone.  Without further ado...

iPhone here I come!

Wednesday, September 28, 2011

Why the Kindle Fire Will Defeat its Android Counterparts, but not Kill the iPad

When Steve Jobs took the stage earlier this year to unveil the iPad 2, he made a claim that this would be the year of the copy cats.  While that has claim has been materialized in devices like the Motorola Xoom,  RIM's Playbook, and even Barnes and Noble's Nook Color to a certain extent, there is a new challenger in town: the Amazon Kindle Fire.

While I would argue that it's not really "correct" to compare the iPad 2 with the Kindle Fire, it's bound to happen, and as consumers are shopping for a tablet device this holiday season, the question is going to come up.

Although it's too early to come up with final judgements, as the product won't even be released until November, we can at least make some early speculation as to how this will affect other tablets on the market, and whether or not we may have an iPad "killer" on our hands.

First, this is why the Kindle Fire will defeat, and most likely destroy its Android counterparts:
Its focus is narrow, and its goals are specific
Unlike the majority of Android tablets on the market today, the Kindle has a very specific purpose -- above all else, it is an e-reader.  Sure, it's also a media consumption device, but when it comes down to it, users will want a great reading experience.  When you pick up a Xoom, or a Playbook there's not as much direction or purpose -- it's simply there for you to guess what you should be doing.


It has more and greater content available
The Kindle Fire will have the Amazon Appstore for Android and while it's not as comprehensive as the general Android Market, there is a great selection of apps.  (PS -- it was a very smart move to establish that Appstore in the world of Android before the release of the Kindle Fire).  Where the Kindle Fire truly shines is in the media available: Movies, TV Shows, Music, Magazines and of course, books.  Obviously you can download the equivalent Android apps for some of these things on other devices, but the experience will be nowhere near what you find on the Kindle Fire.  Couple that with the seemingly incredibly fast web browsing, and a casual user has everything they need.


It's priced right
If I was the maker of an Android tablet right now, I would be afraid.  Very, very afraid.  Barnes and Noble (which took a hit to their stock value after today's announcement) has to be especially concerned.  At a price point of $199 (which is currently $50 less than what the NOOK Color costs, which is significantly less than other Android tablets) it makes for a very attractive package -- I mean, we all saw what happened with the $99 TouchPad, right?


Second, this is why the Kindle Fire cannot, and will not, kill the iPad:
It has a different target market
These positive points are all well and good, but does it add up to an iPad killer?  I think not.  From what I've seen of the presentation made today, there was a little jab at syncing a device using a wire, but it didn't seem focused on what the Kindle Fire could do that the iPad can't (like Flash, for example, which other companies have tried to make a major selling point).  Instead, it focused simply on what the Kindle Fire does well.  And while it does many things very well, there was no mention of certain things the iPad excels at -- like content creation, for example.  Not to mention the hardware differences that equip the iPad to be a useful tool in more situations (thinking of GPS, cameras and a microphone specifically).

The Kindle Fire is no laptop replacement
Along those same lines, the ways the iPad and Kindle Fire have been presented are different.  Steve Jobs considers the days we live in to be the "Post-PC era" and that the iPad is the new personal computer.  In many cases, an iPad can easily be considered a laptop replacement, and has the specs and apps to back that claim up.  The Kindle Fire, on the other hand, is presented more as an entertainment device.  While its hardware specs are nothing to balk at, it's lacking in some key areas (screen size not being the least of these).  Likewise, I've never heard of anyone buying an iPad for the sole purpose of reading books.

Content is still king
It's great that Kindle Fire users will have access to the Amazon Appstore for Android, and to the TV and movies available through their video services (including cloud syncing services) -- but the content available via those venues pales in comparison to what iPad users have at their disposal in iTunes.  Not only that, but the issue of few apps designed and developed specifically for tablet use still plagues the Android Market at large.  Until this changes, it'll be hard to sway users toward Android tablets.

So where does this leave us?  Will/Should consumers own both devices?  I find this highly unlikely and unnecessary.  Instead, I think consumers will fall in one camp or the other for the reasons mentioned above.  Sure, some households may contain both devices, as each person's needs and preferences are different, but at the end of the day I think it can be settled by answering the following question: do you need a low-cost, focused but potentially lacking tablet (but stellar e-reader), or do you need a premium laptop replacement with less limitations?


Wednesday, September 21, 2011

XenApp 6.0: Printers Fail to Autocreate on a Mac

I got a call from one of our users that has a Mac at home and connects to our Citrix XenApp farm through our Access Gateway.  Apparently, everything was working fine, except that the printers locally attached to his Mac would not auto-create in his Citrix session.

While I enjoy using my Macbook at home, we have no Apple gear here in our office, so I was unable to do any tests in our lab environment.  That's when I decided to call on the power of Google for help, and stumbled across the following Citrix article: Printers Defined on a Mac Client Fail to Auto-Create when Connecting to XenApp 5.0 on Windows 2008

Basically, the issue was that a printer driver (the HP Color Laserjet 4500 PS for XenApp 5, or the HP Color Laser Jet 2800 Series PS for XenApp 6) was no longer installed on our XenApp servers.  Early on, before we learned about the pains of printing in Citrix, we freely installed drivers for printers.  After finding out that was a very bad idea, I went on a driver purging spree, only allowing battle-tested drivers that were absolutely necessary to be installed on our farm.  I must have deleted the required driver in this process, as it is apparently installed by XenApp automatically.

For those curious, the reason why you need these HP drivers in the first place is because, for the time being, the driver that Citrix uses for their Universal Print Driver is not compatible with Macs.  So -- if you find that your Mac printers are not auto-creating, double check to make sure the required driver is installed!

Thursday, July 21, 2011

Moving to OS X Lion with a Clean Install


As I am sure you Mac users are well aware, OS X Lion was made available yesterday morning as a purchase through the Mac App Store.  There are a few tutorials out there in regard to doing a clean install, but I thought I would document my process since it may help someone else.  My existing setup:

  • White Macbook Core 2 Duo, 2.16 GHz
  • 120 GB 5400 rpm hard drive
  • iLife '09
  • OS X Snow Leopard
My goal by the end of the day yesterday:
  • 500 GB 7200 rpm hard drive
  • iLife '11
  • OS X Lion
For the hard drive upgrade, there are two great sites:
  • For the purchase: Other World Computing.  Their site allows you to pick your Mac model and then pick from compatible hardware.  I settled on this which gave me the hard drive, as well as an external USB enclosure to put my existing 120 GB drive in for back up and data transfer purposes.
  • For the hard drive replacement: iFixit.  I used the steps found here to replace my hard drive in about 5 minutes.  Super easy!
Before swapping in a new hard drive though, there are a few things that I had to do first:
  • Export browser bookmarks
  • Export Contacts
  • Consolidate my iTunes library.  I followed the steps from this Apple KB article (specifically the part about consolidating if I wanted to copy it to an external drive for the transfer).  This will move everything iTunes (music, etc.) into your iTunes folder.
  • Download OS X Lion from the Mac App store and burn a bootable DVD.  I followed the steps found here to do this.  When done, you can leave the DVD in the drive.
  • Make sure I know where saved application/game data was stored (I didn't want to lose my Plants vs. Zombies progress!).  In general, it seems like the path to application data on a Mac is /users/[username]/Library/Application Support/[application_or_publisher].  For example, the Plants vs. Zombies data I was looking for was located in the directory /users/matt/Library/Application Support/Popcap.
  • Backup anything else crucial in the event that this existing hard drive dies in the swap process
  • Deauthorize/Deactive licensed software (including iTunes... although I did this last)
Now, after shutting down, swapping hard drives and leaving the OS X Lion DVD in the drive, I did the following:
  • Hold down the 'c' key upon boot, this should allow you to boot to the DVD
    • Note: It took a LONG time for me to reach the actual Lion installation screen -- so you may need to be patient.
  • Once at the Lion installation, I had to run the Disk Utility.  This allowed me to format the new drive as Mac OS X Extended (Journaled).
  • After the format completed, I installed Lion -- so far so good!
  • NOTE: I'm not sure if this affected moving my iPhoto or iTunes library (as mentioned below) but I named my hard drive and username the same as my previous install so that all of my file system paths would remain in tact -- so if you have the option, I would recommend doing the same.  If you end up going with the external hard drive for your old one though, you will need to rename it upon connecting it to your Lion install -- my machine got a little confused with two drives with the same name!
Now for the unknown -- how do I get my photos from iPhoto '09 to iPhoto '11, and how do I transfer my iTunes Library with minimal fuss?  This ended up being A LOT simpler than I expected:
  • Since I had a brand new install of iPhoto '11 with no existing photos (this becomes way more complicated if you do have existing photos, so don't try this if you do!), I was able to simply remove the new iPhoto Library, and just copy over my iPhoto Library (the entire package) into the Pictures directory.  Then, upon launching iPhoto it let me know that it would need to upgrade my photo library, and it would no longer be accessible by older versions of iPhoto.  Fine with me!  When it opened, all of my photos, and events were in tact.  Victory!
  • Similar process for iTunes: I simply replaced the existing iTunes directory in my Music folder with the one from my old hard drive.  When iTunes launched, it briefly displayed a message that it was updating my library, but when it was done, all of my songs, album art, playlists, etc. were there! NOTE: I purposefully named the new drive the same as my old one, and also used my same username so the paths to my files would be the same.  So, I'm not sure if this would work if they weren't.
Beyond that, it was just copy/pasting data and setting preferences... not bad at all!

Hopefully this makes sense, but feel free to ask questions in the comments.  As always -- I will not be responsible for any damage that may occur due to following steps outlined in this post.  Your mileage may vary!

Friday, July 15, 2011

This is the XenApp 6.0 Hotfix you are looking for

Basically, this is just a quick update to my previous post on Citrix servers freezing.  In looking at the dates, I now realize that I have been waiting over two months for this hotfix!

Anyway -- the hotfix to resolve a LOT of stability issues was released this morning (XA600W2K8R2X64046) and can be obtained at the following site:
http://support.citrix.com/article/CTX128342

Happy patching!

Monday, May 9, 2011

Citrix XenApp 6.0 Servers Freezing

When we finally made our way through our XenApp 5.0 farm freezes, I never thought that I would revisit such a problem so quickly.  When we made our upgrade to XenApp 6.0 and Windows Server 2008 R2 I thought for sure we would be jumping into a much more stable environment.  Unfortunately, I was wrong.

Shortly after making the upgrade we noticed that our Citrix servers became unresponsive at random times throughout the day: you could ping them, but that's about it.  Any attempt to RDP or log in even at the console level was an absolute failure.  If you are experiencing this problem, I would recommend upgrading your servers to Server 2008 R2 SP1, and applying the following Microsoft Hotfix: KB 2465772.  In addition, you're going to want to install at LEAST this Citrix Hotix as well: CTX127023.  But really, I would install as many Public Hotfixes for XenApp 6.0 as possible that apply to your environment.

If that would have been the end of the freezing saga, I would have been content.  However, the freezing dragon decided to rear its ugly head again: whenever we tried to shut down a Citrix server after having a decent amount of load on it, it froze.  Basically, it would sit on the Windows "Shutting down..." screen with the spinning circle to never fully shut down or recover without a hard power off.

After working with Microsoft and Citrix, it turns out that there is a Citrix Hotfix that's working its way toward becoming public (supported by Citrix), that should be available in the coming weeks.  If you are experiencing this same issue (freezing when shutting down) you're going to want to keep your eye out for Hotfix 46 (full name: XA600W2K8R2X64046).

UPDATE: I've added a new post that provides links to this hotfix.

In the meantime, there are a couple pages you should be keeping an eye on:
  1. The list of Public Hotfixes currently available for XenApp 6.0
  2. A list of recommended Microsoft Citrix Hotfixes for XenApp 6.0 and Server 2008 R2
Both of these get updated from time to time, so you'll want to bookmark them and see what's new whenever you get a chance.

As always, this is what worked for me, in our environment, so your mileage may vary and I won't be responsible for any problems this post may cause :)

Wednesday, April 6, 2011

How to Work on an Android Project from Multiple Computers

Note: I would never recommend this solution for an actual development company.  This really is intended for personal projects, or developing a small-scale app with one or two developers at most. As always, try this at your own risk, as I will not be responsible for any lost, corrupted or otherwise broken projects.


When I started developing my first Android application, I quickly found that it would be really nice to be able to work on the same source code from multiple computers, without having to copy things to an external hard drive, or uploading it somewhere and then downloading it and hoping that everything is in sync.

I already had a free Dropbox account (available here) that I had been using to sync a small number of files on separate computers, so I started thinking -- why not keep my Android project in my Dropbox?  Would it work? Would there be any "gotchas"?  If nothing else, I thought it was worth a try.

So, when I created my Android project in Eclipse (available here) I decided to set it up in my local Dropbox folder.  I added a few files, built the project and ran it -- so far so good.  I then opened the Dropbox app on my computer and let the syncing do its thing.  In my case, not only was I dealing with two different computers, I was also dealing with two different OSes.  My desktop computer is running Windows, while my laptop is running Mac OS X.  I figured if anything could go wrong, it would in this scenario.

Before I go any further, I'd like to mention that I also wanted to use some kind of Source Control (the ability to check in and check out files, and mark certain versions of projects as version numbers that corresponded with the versions of my app).  Eclipse seemed to have some built-in functionality for using CVS Source control, so I started on the hunt.  In short, I ended up using WinCVS / MacCVS (available here).  Setting up the CVS server isn't too complicated, so I'll leave that to you.

After you have the CVS portion set up (Server and functionality within Eclipse), you should be able to Right-Click on your project and select Team -> Share Project.  Once you do this, you'll have to step through the wizard, but when you're done, you should have a version-controlled Android Project sitting in your Dropbox.

Now for accessing that project from your second computer.  In my case, I installed Dropbox, Eclipse and the MacCVS server and configured everything similar to that of my Windows PC.  After everything finishes syncing in your Dropbox, open Eclipse and go to File -> New -> Project.  From the list of options, select CVS then Project from CVS.  Select Use existing repository location (which should have your local repository after setting up CVS), choose your local repository and click Next.  Select Use an existing module, and select the project you created on your first computer and click Finish.  This should create a new Project in your workspace complete with the current versions of your source code.

So -- you should now be able to work freely on your code from both computers, and commit changes as you make them, and watch them sync to your Dropbox.

Potential Gotchas:

  • Each time you log into a different computer from the last time you committed, you'll need to Update your project by Right-Clicking on the project, and then select Team -> Update.
  • In my case, running on one Windows computer and one Mac, I had very different build paths for my projects.  If you're doing something similar, you may or may not want to check in your project as a whole (instead, just check in individual files as you change them).  If you do happen to check in your project as a whole, you'll just need to remember to update the build properties on your other computer the next time you use it.
  • When you actually build your application and install it on a phone through Eclipse, the apk will most likely have different signatures from each computer, so you'll also want to uninstall any previous versions on your phone before switching computers.  If you just use the simulator, this is a non-issue.
  • Speaking of Signatures -- when you go to Export a Signed APK, you'll have to create (or use an existing) keystore.  I also keep this in my dropbox so that no matter which computer I'm on, I can always export an APK ready to be uploaded to the Market.
In general, I imagine this technique could also be applied to iPhone/iOS development (between Macs obviously), or other Java-based projects, and more.

Monday, March 21, 2011

Setting up KMS for Windows Activation on Server 2008 x64

We initially set up all of our Windows Servers using MAK keys.  For those not familiar, MAK keys are very simple: you copy them from your licensing agreement with Microsoft and paste them into Windows activation, and then you're done.  Simple right?  The only trouble with using MAK keys is that you can only use them a limited number of times before you need to call Microsoft to increase the number of times that you can use them.  In our Citrix environment, I regularly image about 10 servers at a time when we make changes -- so you can see how I'd chew up the limited number of activations very quickly.

Enter KMS.  With KMS, you need to set up one server on your network as a KMS host, and then all of your Windows machines can activate against it an unlimited number of times as KMS clients.  The only potential "gotcha" is that each of these KMS clients need to periodically check in with the KMS host to remain activated.  Since our Citrix farm is all on the same network and never gets shut down, this would not be a problem for us.  To understand more about KMS please check out this article.

Our current Citrix farm is installed on Server 2008 R2; however, the domain controller that I made to be the KMS host, is running Server 2008 x64.  Setting up the KMS host was pretty straightforward: Change the current license key to our KMS B license key (B is for Standard and Enterprise edition servers), and then restart the Software Licensing Service.  By default, if you have Dynamic DNS enabled, this should create some new records on your DNS server to let clients know where the KMS host is listening.  If you don't have Dynamic DNS enabled, you'll need to create these records manually.  Plenty of information on that and other fun KMS topics can be found in this article.

Now for the client side of things.  By default, Windows installations are KMS clients (I didn't know this before, so that's a fun fact) -- they will check in with the DNS server to see if there is a KMS host out there, and then try to activate against it (note: for Windows Server, the KMS host must receive at least 5 activation requests before it will start activating).  I had a little more work to do since I had previously entered our MAK key for activation.  In order to switch the server back to a KMS client, I had to type in the following command from an elevated command prompt:
slmgr.vbs /ipk KMSSetupKey


where KMSSetupKey is a key that is provided by Microsoft that is not part of a licensing agreement -- it's just a generic key.  I pulled the one I needed from this site.  Then, to attempt an activation, you can type in the following command from an elevated command prompt:
slmgr.vbs /ato


Unfortunately, my attempt was not very successful.  Instead, I was prompted with the error "The key management service is unavailable."  This can mean a number of different things, but to get to the bottom of it, I pulled up the Event Log on the KMS host and noticed the following error number: 0xC004F042, which according to this site of common activation errors, means that there is a mismatch of some kind between our KMS host and our KMS client.  After a bit of digging, I discovered that I needed to apply an update to our KMS host running Server 2008 x64 to allow KMS clients running 2008 R2 to activate against it.  If you are in need of this update, it is currently available here.


Now, that's not the end of the story.  After applying the update and rebooting the KMS host, I was still unable to activate our 2008 R2 Servers.  In order to complete the update process, you must install the Server 2008 R2 KMS host key using the same command (slmgr.vbs /ipk KMSSetupKey) as mentioned above, except you'll need to use the KMS key from your license agreement with Microsoft.  Then, I just needed to activate it (slmgr.vbs /ato) and restart the Software Licensing Service one more time.  Now we can activate R2 servers against our KMS host.


Next stop will be determining how this all affects my Altiris imaging process...

Tuesday, March 15, 2011

Installing Red Hat Enterprise Linux 5.5 on a Multipath Device

Note: Most, if not all, of the tips I'm providing in this post are available in Red Hat or IBM documentation.  It took me awhile to find it though, so I thought it may be nice to save for a quick reference.

This week, our team was tasked with installing Red Hat Enterprise Linux (RHEL) 5.5 on an IBM server.  This server connects to two different drives provided by a DS8100 storage system, and has two paths to each drive.  In our first attempt to install RHEL, we had to use the text-based installer since this server does not have a video card, which made this entire process a little more fun.

In going through the installer, it detected the two paths to each of our two drives, so instead of showing just the two drives it showed four (counting each path as an individual drive).  We went through the motions and targeted one of the drives it detected for the install.  Unfortunately, when we rebooted the machine, it didn't see that drive as a bootable device, marking our first defeat.

To make things a little easier on ourselves, we decided to go with the recommended graphical installer.  How did we do this without a video card, you may ask?  With our friend, VNC.  If you're interested in using VNC to connect to your install, the documentation mentions the TigerVNC client, so that's what we went with.  In order to get the installer to start a VNC server, you need to add the following option at boot when prompted:
boot: linux vnc
You'll be prompted to configure the IP address for the server to run VNC on the machine, but once it's up and running you will be presented with the display to connect to.

Now that we had a graphical installer to work with, we were feeling much better and went through another install.  It failed.  So, we tried again testing various disk layouts.  They failed.  We made a few more attempts before the end of the day, but just couldn't get this installer to lay down a bootable OS on the drive.

In the back of my mind, I was thinking it had to do with multipath aspect.  If we could somehow get this installer to only see two drives, instead of four, maybe our luck would change.  After doing a little research through the Red Hat documentation, I discovered that if you try to install to a multipath device, it's probable that it will fail and/or it won't be bootable.  The key to solving this problem: adding just one additional boot parameter.  So, in the end, our boot parameters looked like:
boot: linux vnc mpath
Then, in the installer, it detected two multipath devices, we installed the OS to the first multipath device, and like magic, we had a working installation of RHEL 5.5!

The following section only applies if you are running an IBM Storage System, specifically something in the DS6000 or DS8000 series.  So, if that doesn't apply to you, feel free to move along :)

After the install, there were a couple additional steps to make sure multipath was configured correctly for our DS8100 system.  You will need to make sure the following packages are installed:
device-mapper
device-mapper-multipath

Next, you'll need the multipath config file from the IBM website (currently located on this page in the section labeled "Device Mapper Multipath Configuration File for ESS DS6000 DS8000 and SVC".  Make sure you grab the one for the RHEL 5 Platform).  After obtaining multipath.conf, back up your existing one under /etc/multipath.conf and then simply copy this one into the /etc directory.  In order to get my system to recognize the new config, I had to run the following command:
multipath -r

You can then confirm that the drives are discovered with the following command:
multipath -l


Hopefully this post will save you a little bit of time and heartache!

Friday, February 25, 2011

7 Things to Convince Me to Switch to the iPhone 5

UPDATE: I have published a follow-up post to this article here.

A couple of disclaimers first: I currently own the original Motrola Droid on Verizon.  I like my Droid, but there have definitely been times that I've wanted to throw it out the window.  As a loyal Verizon customer, I've never had the option of an iPhone, but with my contract renewal coming up in July, it appears as though I may have a choice to make.  Now, I am not necessarily a "phandroid" even though I've developed Android apps and while I own a Macbook and an iPod, I'm not really an iFanBoy either.  I'm just a fan of using the best technology that simply "works" while providing the best features for me at the time.

With that out of the way, I've started thinking about the possibility of the iPhone 5 coming out this June -- which is a good possibility, right?  I've been wondering, what would it take for me to switch over to "the dark side"?  I have come up with a list of things that if completely implemented, I wouldn't hesitate to buy the next iPhone.  However, if only some (or none) of the following are included, I'll have quite the dilemma on my hands:

1) The iPhone 5 must be released on Verizon the same time as ATT
I would assume that this would be the case going forward, but since we haven't seen this happen yet, I have to include this as a possibility.  If the iPhone 5 gets released on Verizon much later than ATT, it will be a no-go because I don't like starting with outdated technology at the beginning of a 2-year contract.

2) The iPhone 5 must be capable of utilizing 4G / LTE 
I don't currently live in a city that is blanketed with LTE, so there may be a little bit of wiggle room here. However, I am trying to future-proof for 2 years, and I would think that by then my city will have that coverage.
3) The iPhone 5 must have a dual-core processor
One of the major benefits of an Apple product is that the hardware and software are coupled together very nicely, which virtually ensures that users will have a pleasant experience with the device. So, if they achieve the results they want without including a dual-core processor, I could understand; however, I'd like to see it included, again, mostly as an insurance policy so that as mobile apps and games start getting developed with two-cores in mind, I can enjoy them to their full potential, even 2 years from now.
4) The iPhone 5 must include an NFC implementation
If you have no idea what NFC is, ReadWriteWeb has put together a very nice write up on it here. As the article mentions, this technology is not huge right now, but it is poised to take off very, very soon.
5) The iPhone 5 must use a better notification system
In my opinion, this is one of the places where Android completely shines. I love the way notifications are handled in Android with the notification bar -- it brings all of your notifications to one place and you can pick and choose what you'd like to respond to in any order, without interrupting what you're currently doing. I would love for Apple to introduce a similar centralized way of handling notifications. Also -- I also like the idea of the use of a notification light on the outside of the phone. It's not intrusive, and alerts you when your screen is off.

6) The iPhone 5 must have a dependable, free (or inexpensive) turn-by-turn Navigation application
This is another thing that I think I take for granted with Android. The Google Navigation app is great -- I've used it on several trips, and I don't think that's it's ever really let me down. From what I understand, there are some free crowdsourced apps available for the iPhone, but that doesn't cut it in my mind.
7) Along side the iPhone 5, Apple must provide free MobileMe access
Now, I must confess that I didn't think of this one on my own. A few articles, like this one, have recently surfaced pointing to the possibility of this very thing. I currently use Google for a lot of things: calendar, email, contacts, etc. and I'd like to see a similar type of functionality available, for free, in the Apple world. The possibility of MobileMe being reintroduced as a media storage locker for music, pictures, video and the like is even more intriguing.

Well -- that's my list for now. What else would I be missing with the move from Android to the iPhone? Has anyone made that transition (or visa versa) and regretted it?  Perhaps I'm just suffering from "the grass is always greener on the other side" syndrome?
I'd love to hear your thoughts in the comment section below.

UPDATE (3-3-2011): In light of the iPad 2 announcement, a few updates:
Item 1) The iPad 2 will be available on both ATT's and Verizon's networks on the same day. This bodes well for a simultaneous iPhone 5 release. Interestingly though, iOS 4.3 will only be available for the ATT iPhone 4 at launch.
Item 2) Surprisingly, the iPad 2 does not have any tie ins to 4G networks. Does this mean that the iPhone 5 won't either? Not necessarily, but I don't like seeing this one.
Item 3) With the release of the A5 processor, which happens to be dual-core, I would say that there is a very good chance that this chip will land in the iPhone 5.
Item 7) There was no mention of MobileMe at all. Perhaps this was wishful thinking to begin with? Only time will tell!

UPDATE (3-28-2011): WWDC 2011 was formally announced today with the tagline: "Join us for a preview of the future of iOS and Mac OS X." Now, a few sites have published articles like this and this that take this (along with some information from their 'sources') to mean that there will not be an iPhone 5, or any kind of hardware announcement for that matter, this summer at WWDC. In fact, they believe that the soonest that we may even see a new iPhone would be this Fall. At this point, I'm not sure if I'd like to see some kind of 4GS minor refresh of the iPhone 4, or just see them wait to announce the availability of the iPhone 5 and iOS 5. I'm hopeful that if nothing else, we'll have a REALLY good idea of what's in store (in terms of features and timelines) for the iPhone 5 and iOS 5 during WWDC so that I can at least determine if it's worth waiting for, even if it's not available yet. Otherwise, it may make it an easy decision to stay on the Android train.

UPDATE (4-22-2011): On Apple's Q2 financial results conference call, COO Tim Cook made it sound like 4G/LTE is still a relatively immature technology (which it is), and that Apple is not willing, at least at this time, to make the design compromises required to include 4G/LTE in the iPhone. If it's anything like the HTC Thunderbolt, that would likely mean requiring two chips -- one for 3G and one for 4G. I've also heard pretty bad things about battery life in regards to using 4G on the Thunderbolt -- also not a good sign that the technology is ready for prime time. So, at this point, wishing for 4G/LTE in the next iteration of the iPhone seems like an incredible long shot. Here's an interesting discussion on why.

UPDATE (5-19-2011): Verizon's CFO confirmed Item 1 (that Verizon and AT&T would release the next iPhone at the same time). See the confirmation here and check one off of the list!

UPDATE (6-13-2011): The week of WWDC 2011 has come to an end, and a LOT of features were revealed regarding iOS5. Among these were my points 5 (a better notification system) and 7 (iCloud). So, check those off of the list as well! That leaves the question of 4G, NFC and Navigation. I did discover MapQuest as a free Nav app, but I have no idea if it's any good -- so if anyone has any experience in that department, I'd love to hear about it. Either way, unfortunately, it looks like the next iPhone won't be available until September!