Thursday, December 22, 2011

Create RSL for 3rd Party SWC using FlexMojos

In FlexMojos 3 there was a goal for taking an installed swc artifact and installing a swf that could be used for the RSL.  The goal was called install-rsl.

Here is a sample execution:
mvn org.sonatype.flexmojos:flexmojos-maven-plugin:3.9:install-rsl -DgroupId=org.as3commons -DartifactId=as3commons-lang -Dversion=0.3.1 -DoptimizeRsls=false 

This requires that you have the swc installed in your local Maven repository.  Once complete you will have the swf installed on your local repository.  You can then deploy this to Nexus.

UPDATE:  I revisited this recently and ran into some difficulty which I assume was related to now using a 64-bit JAVA SDK on my machine.  I ended up doing the swf creation manually using a 32-bit JAVA SDK and the actual binaries that shipped with the specific version of the Flex SDK I was using.  Great instructions for this at FlexMojos Wiki

Tuesday, November 8, 2011

Quick Mac OS X Lion Tips & Tricks

As it seems is the case with most Apple products the latest version of OS X, Lion, has some early adopter difficulties.  Here are a couple helpful tips I have picked up to overcome some issues.

iPhoto Full Screen Issues 
I am really starting to get used to the Full Screen mode for apps.  However, I have found the occasional bug in apps when toggling in and out of full screen mode.  For example, iPhoto has been stuck in some sort of full screen limbo a couple times now.  Basically, the main app view thinks it is in full screen mode, but the app and OS don't seem to think so.  You know you are in this state if the app doesn't have its own Space/Desktop, the menu bar always stays on top and the view menu shows "Enter Full Screen" mode as an option. If you get in this state it is hard to navigate because all the navigation is covered by the menu bar and you can't import photos because for some reason you have to leave full screen mode to import photos.  Restarting the app doesn't help because in Lion the state of the app is stored in memory

UPDATED: Solution
1. Close iPhoto using Command+Option+Q. This will cause it not to "Resume"
2. Open iPhoto (it should be fixed)

Safari Address Bar Bug
It seems that I seem to be using Safari more in Lion.  I think it started when we were having some stability issues with Chrome.  However, I am now starting to really appreciate the auto-complete functionality and also the native multi-touch gestures for forward and back.  One problem I keep running into is with the address bar.  I try to use keyboard shortcuts whenever possible and always use Command+L to go to the address bar.  However, if the URL that is in the address bar is really long typing over the selection only removes part of the URL. So you end up with a bunch of extra crap at the end of what you just typed.

Solution err... Workaround
1. Hit Command+L to get into the address bar
2. Hit Command+Shift+Right Arrow to select the entire line

That's all for now.

Sunday, October 16, 2011

Upgrading to iOS 5 (4 of 4): iCloud

On Wednesday, October 12, Apple is going officially released iOS 5. This is a very significant upgrade, with several fundamental changes to how your iPhone or iPad synchronizes and backs up data.  Over the next few days I am going to show you the simple steps involved in upgrading to iOS5 and also provide some details on some of the new features and how to take advantage of them.  Check out the new features on  iOS5 is only supported the iPhone 3GS, iPhone 4, iPad, iPad 2 and iPod Touch (3rd generation). 

Here is a link to the other steps:
Upgrading to iOS5 (2 of 4): iTunes 10.5
Upgrading to iOS5 (3 of 4): iOS 5

What is iCloud?
By now you have probably heard some mention of iCloud.  It actually means a lot of things, but basically it is Apple's way of storing things in the "cloud" for you.  This includes simple things like: 
Mail, Notes, Calendars, Contacts, Reminders and Bookmarks
Find My iPhone - The ability to find your iOS device should you lose it via "Find My iPhone".  
Photo StreamThis basically means any pictures you take on one iOS device are stored in iCloud and available on any other iOS device (including Apple TV) or Mac nearly instantaneously without you having to do a thing. 
Documents and Data - iCloud also includes a similar functionality which allows apps to have their data shared across devices.  Say you are working on a word processing document on your iPad, you can instantly see an up to date copy on the same program on your Mac.  
Cloud Backup - All of your settings, accounts, camera rolls and documents are automatically backed up when your device is plugged in, locked and connected to Wi-Fi
App Store Apps & iTunes Book, Music and TV Shows - Any of these media types you purchased from the iTunes store or App Store can be downloaded again free of charge.  You can also configure all your devices to auto download music, books and apps you have purchased on other devices.
iTunes Match - A service that cross references all of your music in iTunes and matches it to music already in the store.  This also includes music imported from CD.  After processing your entire library it will upload anything it couldn't find a match for in the iTunes Music Store.  Ultimately you end up with access to all the music in your iTunes library from any iOS device or Mac.  For example, you could link your work computer up via iTunes.  You would see your entire library just like at home, and clicking play on them will trigger a download of the song and almost immediately it will start playing. (Early November and cost $25 a year)

Some of these features are then available to you at including: Mail, Contacts, Calendars and Find My iPhone

iCloud Account Confusion
Setting up iCloud on an iOS device is pretty easy and you will actually be prompted to set it up when first using your iOS device after upgrading to iOS5. The tricky part is figuring out how to handle the situation where you currently share an Apple ID with somebody else in your household so you don't have to buy the same music twice.  

Now if you don't share an Apple ID then you can go right ahead and set up an iCloud account for your Apple ID. Just say yes when prompted after upgrading or just go to Setting > iCloud and convert/activate your existing Apple ID to iCloud (more on whether or not you want to use the different parts later.

If you are in the same boat as me and do share an Apple ID between more than one person this is what you have to do.  In my case all of our purchases are under my Apple ID so I set my devices up to use that Apple ID for both the Store and also converted/activated iCloud using this account (just as was done for people that don't share).  Now for the other person that shares with you they have to use the same Apple ID for the store, but when setting up iCloud they will have to set up a new Apple ID to use iCloud.  This will give them their own 5GB space for calendars, contacts, reminders, PhotoStream and iCloud Backups.  

I found the easiest way to do this was to set my wife's devices up initially the same as mine, using my Apple ID.  Finally, I went in to Settings > iCloud and clicked the "Delete Account" button at the bottom to essentially log out of my iCloud.  I then went through the process of getting my wife an Apple ID and converting/activating iCloud using this new account.

If I were to do it all over again I would probably have set up an Apple ID just for purchases and then created two separate Apple IDs for my wife and me.  It might have been a little cleaner this ay especially as the kids start getting devices and would then might end up with access to my personal account.

Setting up iCloud
As I mentioned before you can set up iCloud in Settings > iCloud.  From there setting up the actual account part is straightforward.  If you want to change the account you have to tap "Delete Account" first.

Once the account is logged in you then have to decide which features of iCloud to turn on. Here is the breakdown.
Mail & Notes - Leave this OFF. This will give you a new email address, but since you probably already have one somewhere else and probably don't want to get locked in to an Apple only email account I would leave these two off. (Notes requires setting up a Mail account)
Contacts - Depends.  I have been using Google Contacts exclusively and have my iOS devices set up to use this as the source for my contacts.  However, if you basically keep all your contacts on your phone and want to start a central cloud based contact list this could be a good choice for you.  You would be able to access from and can also set your desktop mail clients like Outlook and Mail to load synchronize those contacts.
Calendars - Depends.  Once again Google Calendar is my single source for calendars and my iOS devices all point to it.  However, if you only use the calendar on your iPhone you might want to try using iCloud instead since it is more cloud based than what you are currently using.
Reminder - Turn this ON. There is a new app called Reminders that let's you set up Reminders. There are other services out there that do this, but they can't be fully integrated into iOS. The Reminders app has a simple to do list, but each item can also be set up to remind you at a certain time OR even cooler when you arrive or leave a certain location.
Bookmarks - Turn it ON. If you use Safari on your home computer turning this on will sync bookmarks between your desktop and iOS devices.  If you don't there is no harm in turning this on.
Photo Stream - Turn it ON. Even if you don't have another iOS device or a Mac you ca configure a Windows PC to download the photos from the Stream into folder.
Documents and Data - Turn it ON. This allows apps to store their data in the cloud for you.
Find My iPhone - Turn it ON.  To quote my mom, "Of course I want to turn it on who wouldn't want to use that."
Storage & Backup - Turn it ON. Don't worry about backing up to a computer ever again.  Your iOS device will be backed up online automatically when you plug in at home and the device is locked.

A Few More Things
Here are a few things I recommend doing while you are in there tweaking your settings.
iMessage - The old SMS app has been replaced with a new Messages app.  This is where you go to do your texting and MMSing.  However, if you are messaging with another iOS 5 device your messages will not be sent as SMS, but instead will be sent over your data plan (much cheaper). 
To set it up just go to Settings > Messages.  Turn on iMessages. Go to the Receive at and use your iCloud account and enter your email address.
If you have an iPhone you will already see your number. Setting this up means that if Apple receives an iMessage to your number or any email address you specify it will forward the message to any iOS device linked to your iCloud account.  So you can now receive texts on your iPad.  Note: You can tell SMS messages because they use green bubbles.  The iMessages messages use blue bubbles.

Find My Friends - Apple release a new app to the app store called "Find My Friends". Now don't get to freaked out about privacy just yet. It includes some good and clever ways to keep your location secret when you want it to be. You can invite followers via email and there is a single switch that you can use to hide your location from your followers.  At the current time you can't hide your location from specific followers, but hopefully that will come in the future. There is also a really cool feature called Temporary. It allows you to send an email to a set of people and they all agree to share there location, but only until a certain time.  So if you were meeting five people for tailgating at a concert at 7pm you could send them a temporary invite that expired at 8pm. As you were driving to the concert you could see where everybody else was and once you got there you could see there location in the parking lots for meeting up.  Once 8pm hit all locations would once again be hidden.  So download the app, and log in using your iCloud account.  As for the "Following" feature it is kind of limited to all or nothing, which doesn't work well in my case.  You see my wife and I want to share our location almost all of the time (it's handy), but I wouldn't want to share that much with anybody else and it isn't configurable so for now I just have one follower.

Thanks For Reading
Thanks again for following along feel free to post comments and/or ask questions.

Wednesday, October 12, 2011

Upgrading to iOS 5 (3 of 4): iOS 5 Upgrade

On Wednesday, October 12, Apple is officially released iOS5. This is a very significant upgrade, with several fundamental changes to how your iPhone or iPad synchronizes and backs up data.  Over the next few days I am going to show you the simple steps involved in upgrading to iOS5 and also provide some details on some of the new features and how to take advantage of them.  Check out the new features on  iOS5 is only supported the iPhone 3GS, iPhone 4, iPad, iPad 2 and iPod Touch (3rd generation). 

Step 3: Upgrading to iOS 5
It's official iOS5 is now officially released to the general public.  Hopefully you have been keeping up to date with my previous posts, if not there are links above for backing up your iOS devices and also upgrading iTunes to 10.5.  If you are ready to make the leap here we go.

  • Once you have confirmed that you are at iTunes 10.5 it is time to download and install iOS5.
    • Open up iTunes 10.5
    • Connect your iOS device to your computer using the USB cable
    • Select the Device in the left panel of iTunes to load the information screen for the device
    • Right click on the device and select "Back Up" to create an up to date back up prior to the upgrade
    • Click the "Check for Updates" button. 
    • You will be prompted about a new update being available and should click on the "Download and Install" option
      • The upgrade will do the following:
        • Download the actual iOS5 upgrade
        • Upgrade the firmware on your iOS device
        • Synchronize your device
    • If you are prompted to set up as a new iPhone or choose from back up just choose the back up you created earlier.
    • After the upgrade is complete I recommend hitting the Sync button one more time for good measure.  This will create a fresh back should something go wrong.
  • Congratulations you have successfully upgraded to iOS 5. More on the new features later.

Now let's turn on the wi-fi sync feature.  This feature will allow you to sync your iOS device without actually plugging it in to your computer. 
1. Go back in iTunes and plug in your iOS device. 
2. Once it appears in the Sidebar at the left click on it to see the Summary information for it in the right hand window.
3. You should notice a new option to "Sync with this iPhone/iPad over Wi-Fi"

4. Check this check box
5. Click the "Apply" button in the bottom right hand corner

6. Make sure you see this message at the top confirming that the iPhone/iPad sync is complete and/or that it can be disconnected.
7. Now just unplug the device (don't hit the eject button in the sidebar).

The first time you unlock the new device you are going to be prompted about a few things.  One thing it will ask is your Apple ID.  Use the same id you use for buying music, this will set it as the default Apple ID for several things.  Next it will ask you if you want to set iCloud.  I recommend saying no and reading my next post on configuring iCloud and Messages.

You should notice that the device stays in iTunes, even though your device is not connected.  Now as long as iTunes is open and your device is on a sync can occur between your devices without being connected.  If you want to try it out add a new artist under the Music tab and hit the Sync button in iTunes.  You can also trigger a sync from your iOS device by going to Settings > General > iTunes Wi-Fi Sync.
This also means that if iTunes is open on your computer and you plug your iOS device in to charge, it is locked (via it sleeping or you hitting the sleep button) and it is on the same network it will automatically back itself up.

See my post of the Top 10 Minor Features in iOS 5 to get started.

Tuesday, October 11, 2011

iOS 5 Top 10 Minor Features

My Top 10 Minor Features in iOS 5
There are a lot of new features in iOS5, I think Apple says something like 200.  Everybody knows about the iCloud integration, Notification Center, Messages, Photo Stream, Reminders app and Newsstand, but I always think the little things are what really end up making the big difference.  Here is my list of the top 10 minor features in iOS 5.
  1. Ringtones - All sound alerts including text messages can now use any ring tone. Settings > Sounds
  2. Text Shortcuts - You can now use your own acronyms as shortcuts for expanded text. For example you can add: omw for "On My Way!". If you type omw with the keyboard auto-correct will pop up "On My Way!".  Settings > General > Keyboard
  3. Twitter Integration - You can now log in to your Twitter account at the iOS level and Tweet from the Photos and Safari apps.  Plus it does a cool bird tweeting sound when you do Tweet, but this is configurable see item 1.
  4. iPod Split - The iPod app is no longer and instead there is now a Music and Videos app.
  5. Rich Text Formatting in Mail - Mail now has rich text formatting capabilities like bold, italics, underline and also quoting.
  6. Split Keyboard on iPad - The iPad keyboard is can now be dragged into two smaller keyboards.  This makes it much easier to type when holding it up.
  7. Multi-Touch Keyboard Gestures on iPad - Using 4 finger gestures you can now switch between apps (4 finger left or right swipe), go to the home screen (4 finger pinch) or bring up the dock (4 finger swipe up)
  8. Multiple Routes in Maps Application - Doing a search for directions will now return multiple routes that you can toggle between by selecting the number label on the route.
  9. Camera Improvements - In the Camera app you can now use the Volume up button to take photos.  You can also double click the home button on the lock screen to go directly to the camera without unlocking the iPhone.
  10. iPad 2 and iPhone 4S AirPlay Mirroring - The output of both devices can be output directly to the TV. Not exactly sure when this is useful, but it could be cool for gaming.

Upgrading to iOS 5 (2 of 4): Upgrading to iTunes 10.5

On Wednesday, October 12, Apple is going to officially release iOS5. This is a very significant upgrade, with several fundamental changes to how your iPhone or iPad synchronizes and backs up data.  Over the next few days I am going to show you the simple steps involved in upgrading to iOS5 and also provide some details on some of the new features and how to take advantage of them.  Check out the new features on  iOS5 is only supported the iPhone 3GS, iPhone 4, iPad, iPad 2 and iPod Touch (3rd generation). 

Here is a link to the other steps:

Step 2: Upgrading to iTunes 10.5
As of Tuesday, October 11th, 2011, iTunes 10.5 is officially available.  This is the first version of iTunes to support wi-fi syncing of iOS 5 devices.  One new feature is the ability to automatically download music, apps and books purchased on iOS devices right to your computer.  You can also download any books, apps, music or tv shows you previously purchased from inside the iTunes Store without having to pay for them again.

Once again here are the steps for upgrading iTunes:
  • On the computer make sure you have the latest version of iTunes and upgrade if necessary. 
    • Open up iTunes
      • Check for updates (the current version is 10.5)
        • If you have a Mac select the "Check For Updates" item under the iTunes menu
        • If you have a PC select the "Check for Updates" item under the Help menu 
      • If any updates show up proceed with the upgrade to the new version.
    • Once you have confirmed that you are at iTunes 10.5 it is time to back up your iOS device
      • Open up iTunes 10.5
      • Connect your iOS device to your computer using the USB cable
      • Select the Device in the left panel of iTunes to load the information screen for the device
      • Sync the device to create an up to date back up prior to the upgrade
That is all for now until tomorrow when iOS 5 is officially released.

Sunday, October 9, 2011

Upgrading to iOS5 (1 of 4): Getting Ready to Upgrade

On Wednesday, October 12, Apple is going to officially release iOS5. This is a very significant upgrade, with several fundamental changes to how your iPhone or iPad synchronizes and backs up data.  Over the next few days I am going to show you the simple steps involved in upgrading to iOS5 and also provide some details on some of the new features and how to take advantage of them.  Check out the new features on  iOS5 is only supported the iPhone 3GS, iPhone 4, iPad, iPad 2 and iPod Touch (3rd generation).

Here is a link to the other steps:
Upgrading to iOS 5 (2 of 4): iTunes 1.5

Step 1: Getting Up To Date
One big issue that is going to be addressed in iOS5 is iOS device owners not keeping their software up to date or synchronized/backed up with their computer.  So let's go through the steps you should take prior to Wednesday, to prepare your iOS device for the upgrade.  This requires your iOS device and the computer you used to set it up.
  • On the computer make sure you have the latest version of iTunes and upgrade if necessary. 
    • Open up iTunes
      • Check for updates (the current version is 10.4)
        • If you have a Mac select the "Check For Updates" item under the iTunes menu
        • If you have a PC select the "Check for Updates" item under the Help menu 
      • If any updates show up proceed with the upgrade to the new version.
    • Once you have confirmed that you are at iTunes 10.4 it is time to make sure your iOS device is up to date.
      • Open up iTunes 10.4
      • Connect your iOS device to your computer using the USB cable
      • Select the Device in the left panel of iTunes to load the information screen for the device
      • Sync the device to create an up to date back up prior to the upgrade
      • Click the "Check for Updates" button. The current version for the iPhone 3GS, iPhone 4(GSM), iPad and iPad 2 is 4.3.5. The iPhone 4 (Verizon) is at 4.2.10
      • If you are prompted to upgrade your device then you should proceed with the upgrade.
        • The upgrade will do the following:
          • Download the actual iOS5 upgrade
          • Upgrade the firmware on your iOS device
          • Synchronize your device
That is all for this step. In the future this is going to be much easier, but that is for another day. Stay tuned for the next post where I go over the steps for upgrading your computer to iTunes 10.5, your device to iOS5 and finally setting up wi-fi syncing. 

Wednesday, September 7, 2011

Loading Flash and Java Applets via Javascript

Working in Flex can help build really great for building very rich internet applications, however, when it comes to working outside of the Flash Player sandbox that is when things start to get a little more interesting.

Case in point... the application I have been working on required the ability to call a Java Applet.  The applet was required because there had been a lot of Java code written with very complex algorithms for generating a certain type of image.  We were concerned with the bandwidth usage required for going back and forth to the server for the images and also with the responsiveness of the Flex application as it waited for the response from the server.  The application in question involved a WYSIWYG editor and these images were generated at the end of a drop.

To execute the call to the applet there was a javscript function that would get called using the ExternalInterface class in Flex.  A call back was added that would then notify the Flex application when the image was generated.  The thing I spent the most time figuring out was the proper way for loading the applet into an html page, while supporting both browsers and also attempting to stay compliant to the latest html standards.

What I found is that the good old html tags that are thrown about for this are: <applet>, <embed> and <object>. Now depending on what browser you are developing for will dictate which tags get used.  My understanding is that for IE you use <object>, while for Mozilla you need to use <embed> tags.  The <applet> may work for both, but is considered deprecated.  Now this is where it gets really confusing because in order to support both browser types you have to add both sets of tags and in turn have to put a bunch of duplicate parameter definitions, etc...

So after banging my head against the wall adding tags and parameters inside the tags and then actually adding parameter tags, I went back to the internet and tried searching some more.  What I finally came across was an official Java page with instructions for using Javascript to dynamically add the applet at runtime based on browser type. Here is the page Java Rich Internet Applications Deployment Advice . Oracle provides a Javascript file you can drop in your web application and then add a couple simple lines of code to your html file and voila magically the applet loads correctly for your browser.  The Javascript files also include functions for validating the Java version and also downloading the latest version of the plugin.

Once I switched to this method it not only made my html much cleaner, but it also made the code xhtml compliant.  I did have some difficulties checking for a specific version of the Java Plugin, with it always just returning the major and minor version and not the revision/update version.  However, if you are looking to just add the applet this is the way to go.

It turns out there is a similar problem for embedding Flash Player applications inside html.  It all comes back to the <embed>, <object> and <applet> tags.  There is a specific set of parameters you have to put in and again have to use two sets of tags to support multiple browsers.  Again somebody realized this was a problem and said, "Hey lets just right a javascript function to dynamically add the correct object to the html dom."  Oddly enough Adobe actually includes this functionality as the "html wrapper" template in Flash Builder.  You will see a call in the html to AC_runActiveContent(), this is very similar to what the Javascript does for embedding a Java applet, but in this case it takes in the parameters required for a Flash movie.

Now this works well, but I did a little more searching, because "who wants to use the Adobe Standards" and found the SWF Object project on Google Code. It pretty much does the same thing as Adobe's recommended way, but is a little more robust and has what seems to be a pretty active community. Also one of the deciding factors was the ability to have the cursor and focus on a field in my application and also be able to type in it without having to click on the app. (That is for another post though)

So in summary embedding applets or Flash applications in html is really outdated and involves some really old and hard to use tags.  However, thanks to the smart people of the world, we now have some very easy to use javascript libraries that can be used to dynamically add these "RIA" objects inside our html documents.

Wednesday, August 3, 2011


When using the psql command line interface for PostgreSQL here is the command to get a list of all the tables in the database for a particular schema.

SELECT tablename FROM pg_tables WHERE schemaname = 'someschema';

Just replace someschema with your actual schema name and fire it off.  Voila a list of all the tables. #commandline4eva

Tuesday, August 2, 2011

Maven 3 and Nexus Incompatibility

Just a quick post on something I came across today.  We are in the process of upgrading to Maven 3 and everything worked fine on my local machine and even on our build server using Continuum.  However, when attempting to download the artifact generated as part of the build process I was getting an error about the artifact not being found.  I looked in Nexus and the artifact was there and the build results showed that it had indeed been deployed.

After a little searching I found the problem to be caused by a change in Maven 3 during the creation of the metadata that gets deployed to the repository.  Maven 3 has added some more information in the metadata than Maven 2.  In my case the version of Nexus we are using (1.6) has some issues with this change and doesn't correctly notify clients of the version.

Here are three possible fixes:
1. Upgrade to Nexus version where the issue has been fixed. (
2. Stay at an existing version of Nexus but replace a library with a patched version ( see Maven 3 Metadata section for link)
3. Add the following parameter -Dmaven.metadata.legacy=true to your execution of mvn deploy. (

I went with the 3rd option because it was the least intrusive and now all is well.

Sunday, July 17, 2011

Time For An Upgrade

Over the last few months I have been thinking a lot about our computer situation.  We have been busy with iPads, iPhones and all sorts of other devices, but haven't done anything about our computer.  We have owned our late 2006 MacBook since the spring of 2007.  We seemed to have purchased it at just the right time.  It was the first MacBook with the Core 2 Duo chip which is the bare minimum for running Mac OS X Lion.  We have upgraded the RAM to 4GB and also upgraded the internal drive to a 500Gb unit.  Overall the computer is still running very well with a rare hiccup here and there, a battery that doesn't hold its charge and a fan that tends to run all the time.

The two things I would like to improve upon are the amount of storage space on the computer and also some performance improvements.  No matter how well its running it is now over four years old and doesn't run as fast as the latest greatest.  With regards to storage the 500Gb drive is now almost 80% full.  This includes about 60Gb for iTunes (music, movies, tv shows and apps), 150Gb for photos, and about 200Gb for videos.  This doesn't include the 200Gb of videos stored on an external drive.  For some reason I am obsessed with getting all of my media on a single drive, of course I never really go back and look at videos from four years ago, but also don't like the idea of plugging in an external drive in order to do it.

So my current thinking is to purchase a Mac Mini as our central media computer with the iTunes library, and all of our photos and videos.  Its a reasonably priced machine and I can easily leave an external drive hooked up to it for backup and when adding more space.  We would keep the MacBook and remote into it if we wanted to access or manage the media.  Our documents are all stored in DropBox so they would just synchronize regardless of where we keep them.  As for the MacBook I would like to try to attempt one more round of improvements and see how it goes.  I would first replace the slow hard drive we have now with a 64Gb SSD drive.  They have come down in price and since I wouldn't be storing much stuff on it 64GB should be plenty.  I could then use the MacBook for doing work stuff or developing (not exactly sure what this means exactly).  I don't know for sure if the SSD will make things faster, but it is very likely it will be much faster than the 5400RPM drive we have now.  If it turns out that the computer is just too slow still then the next step is to decide if I want a 13" or 15" screen.  If 13" then I would have to choose between the MacBook Air and the MacBook Pro.  That will come down to wanting to pay for performance or not.  If 15" then it means I am going with the MacBook Pro.

Of course all of this hinges on the specs for the new Mac Mini that is expected in the next couple weeks.  Hopefully it comes with some bigger drive options and ThunderBolt. All I can do now is wait...

Sunday, June 26, 2011

The Cloud Goes Mainstream

Several weeks have passed since the Apple WWDC and I am finally starting to wrap my head around the new iCloud product and also the bigger picture of how cloud based computing is going mainstream.  Initially after the keynote I was lukewarm on iCloud because my expectations shot for the moon. It was foolish of me to think that Apple was going to dramatically shift the computing world with one product. History has shown that they prefer the route of baby steps as was seen with the original iPhone in 2007 that was released without a developer API and only included 14 apps out of the box.  Of course every year since giant chunks of new functionality have been added to each iteration of iOS and now the "missing" feature list is negligible. Now that I have put things into perspective it seems like this is just the early stages of what is to come from Apple.

Browsers are the Future
In early 2008 it looked as though software inside the browser was the way of the future. Most users had migrated completely to online email clients thanks to the rich user interfaces of Gmail, Hotmail and Yahoo! mail.  Online photo management via Picasa, Kodak Gallery and Flickr also started taking off.  Online word processing and spreadsheets existed, but they were still very raw and hard to use because of the limitations of the browser (darn keyboard shortcut interception). Besides the move towards web apps nobody (besides gamers) was running out to the store to buy software in a box, beyond the staples of Microsoft Office, Quicken, TurboTax and a few assorted random applications.  The move by consumers towards using a single application, the browser, also lessened the importance of the operating system as well as the need for getting the latest and greatest hardware to run multiple applications.  Simply put you could plop down at nearly any computer with an internet connection and a browser and take care of most of your computing needs.

The Apps Arrive
All of that changed in the Spring of 2008 when Apple released a developer API for the iPhone operating system (now known as iOS) and announced that they were putting the App Store on every iPhone and iPod Touch.  Once the App Store opened things changed and people started buying software again.  Nearly overnight companies of one were releasing games that would rocket to the top of the App Store and put these developers on the map.  It seemed at one point like everybody was releasing apps from big retail companies like Gap and Target, to dads like me who just wanted to get their kids to sleep through the night. Of course there was controversy around the closed nature of the store and certain apps getting declined for sometimes what seemed like random reasons, but that is for a different story. What's important is that the clear future of browser based software all of a sudden became a little fuzzy.

Disposable Hardware
I didn't have much luck with my first iPhone 3G, I had a hardware problem that caused the orientation of the phone to get locked in one direction until I restarted.  Thankfully Apple is relatively understanding when it comes to issues of this type and after a brief conversation at the Genius Bar I was given a new iPhone 3G on the spot.  I was pretty psyched about this and headed home ready to set my iPhone up again.  Once I got home I plugged the phone into the computer and iTunes asked if I wanted to restore from a backup. I wanted to say, "Hell yeah I want to back up", but the button only said "Ok", so I clicked it.  Within minutes my new iPhone 3G was, well my old iPhone 3G minus the hardware glitch.  With this new device Apple had made the device itself disposable in some way.  Computers didn't work this way.  If for some reason your computer hard drive crashed, putting it back together typically involved several late nights of copying files, tweaking settings and never getting back to exactly where you had been.  The new iOS devices could be returned to their original state within minutes all with negligible user interaction.

Introducing iCloud
By June of 2011 the App Store had become a huge success and had expanded to the iPad and even the Mac.  Steve Jobs took the stage to finish out the keynote at the WWDC and started talking about iCloud.  Now prior to this I was expecting we would all just put everything on Apple's servers somewhere and magically stream things wherever we wanted.  Instead Mr. Jobs said iCloud will provide free push email, calendars and contacts (yawn). iCloud will sync your camera roll across your iOS devices and Macs (rubbing eyes). iCloud will let you download any music you already purchased onto any of your devices (focused). iCloud will let you backup your iOS devices settings (nodding off again). Finally, we will be providing an API that will allow developers to save their applications data to the cloud (fell asleep). Sadly the one I was most dismissive about has the most potential.

The Key to iCloud
The success of the App Store makes this one of the more important features of iCloud.  Users currently using apps are for the most part limited to working with "documents"within that app on a particular device and due to the lack of a file system can't easily access those "documents" from anywhere else. iCloud changes that buy allowing you access to the same "document" across devices both iOS and Mac OS.  Again the device becomes irrelevant.  With iCloud you could throw your Mac into the ocean, buy a new Mac, download your purchased app and immediately resume work as if nothing happened.  Voila the feeling of a browser based world, but with rich native apps.  With more and more apps coming from the App Store, more and more apps will be able to save in iCloud, all with little change in user behavior. The user basically continues to use the app as they always have, but behind the scenes it is getting saved and backed up for them. Oh yeah and lack of an internet connection is no big deal, because it will just back up when it gets the chance.

The Other Approach
While all this app craziness is going on Google hasn't just been sitting around waiting Apple to lead the way they have continued to push the envelope with browser based computing.  The Google Chrome browser is an ever evolving "platform" which is blurring the lines between native application and browser based application.  The quality of browser based applications has improved dramatically thanks to newer html5 standards and improved robustness of first generation applications.  The Google documents of today is a far cry from the first iteration and gmail has added so many features in the last couple years it is hard to shut them off fast enough.  Google also rolled out its own web app store which has provided users with access to many of the titles found in the Apple app store. The strategy they are taking is to get people to work in the browser and make the operating system and hardware irrelevant.  They even have created their own operating system called Chrome OS, which is essentially an operating system in a browser.

How The Story Ends
It is hard to say how the story ends.  I like Apple's strategy of near transparency when it comes to the cloud.  In my experience the less a user has to think the better for everyone.  Users need things to be really easy for them, they can't be worried with backups, they can't be concerned with a file system  (or trusted with it). They want to open up an app and be able to easily start something new or continue where they left off.  One difficulty I see is the restriction to iOS and Mac OS devices. While Mac sales continue to improve they still represent a very small share of the market.  Of course this only makes the sales pitch for getting a Mac that much easier.  "Hi Mr. Customer, you say you have an iPad and you use Pages to do word processing. Well if you buy a Mac and link it to your account you can download Pages for free and will also immediately have access to all the documents you created on your iPad. Oh yeah an all the music you bought in iTunes will all just be downloaded."  Switching to Mac has never been easier.

Google's strategy of getting everybody to work directly in the cloud is also pretty strong.  I spend a majority of my day in a web browser and with Google Chrome's syncing of settings across computers it is easy to just log in and continue where I left off.  The big hurdle with anything browser based is getting the average user to understand how it all works.  First of all the internet address (URL) thing still confuses people.  Raise your hand if your parent always goes to google to do anything. Why do you think Facebook gets so many Google hits?  As simple as it may seem the browser is just too complex for some people to use. Native apps on the other hand are concrete things users can click on and once loaded are isolated to their own little world.  Oh yeah and I forgot to mention getting somebody to download a new browser to use is next to impossible especially on a Windows machine.  I think my dad still uses the MSN browser.  Bottom line as long as somebody has to type an address to do something it is going to be difficult for the simple users. As for the Chrome OS, I think the likelihood of anybody I know going out and buying one is slim to none.  I only know a handful of people who have upgraded to Windows 7, most people are sticking with XP until they can trust 7 or have a Mac running the latest and greatest version of Snow Leopard.

Unanswered Questions
Lots of questions have been answered with iCloud and recent offerings from Google and Amazon.  My music is going to be stored in the cloud in one of two ways: The right to download it (iCloud) or the right to stream it (Google and Amazon).  Okay I am good with that.  Documents will be stored one of two ways: Locally with a backup in the cloud (iCloud) or accessible in the cloud (Google).  Apps will be taken care of either: Locally with rights to download (iCloud) or directly in the cloud.  Okay that takes care of most of the types of things I store on my computer, but what about personal photos and videos.  There really isn't a fully baked solution with iCloud, but there are lots of online options outside of the Apple universe like Picasa.  Movies and tv shows were left off the list of iCloud supported content.  Alternatives for those on the internet include things like Hulu, Netflix and YouTube.

It seems that Apple still has a little bit more work to do in order to make the computer as disposable the iPhone, but they are well on their way.  Now I just have to wait and see how things pan out.

Monday, June 6, 2011

The Latest Apple Announcement Recap

Most people know there was a big Apple event today, unfortunately only a couple sound bites will make it out to the average person via the mainstream media.  So I am going to attempt to break it down for the masses.  I am going to go in order of how it effects people and also what they are going to care about most.

iOS 5

The operating system of the iPhone, iPad, iPod Touch and Apple TV has now been around for 4 years and is getting a ton of new features this fall in its fifth major version

  • Notification Center - One of the most annoying features in iOS up until now has been the notifications that pop up over everything and require a quick tap in order to do anything else.  Notifications will now flip  up in a little area at the top of the screen.  The Notification Center is a centralized spot for all notifications that can be easily accessed by swiping down from the top of the screen.  The lock screen will also give list out your notifications and give you one touch access to the app with the notification.
  • Camera - The camera app is getting a couple improvements. The up volume button can now be used as the shutter instead of just the onscreen button.  Camera will now come with some built in editing tools.  Camera can now be launched directly from the lock screen
  • Reminders - A brand new app is joining the out of the box bunch and it is a To-Do list/Tasks app.  You can add items and uncheck them as you complete them like a regular task list, but you can also set up reminders by time and also by location.  For example, if you are out to dinner and remember you forgot to close the back windows you can set a reminder to pop up as soon as you get home regardless of when you get home.
  • WiFi Sync - Ever since the first iPod the only way to get anything from your computer to your iPod was to connect a cable and sync via iTunes.  In iOS 5 you can now sync over wifi.  Just plug your iOS device into a power source at home and it will automatically sync with iTunes, backing up your device to iCloud and getting the latest and greatest information from iTunes.
  • iPad Usability - The iPad is getting a couple cool new features of its own.  A special split onscreen keyboard for typing while you hold the iPad up with two hands. Multi-touch gestures for switching between apps, going to the home screen and other basic navigation.  Tabs in Safari.
Of course this is only a subset of the many features, like full Twitter integration, iMessages, Newsstand and many more which can be found at the Apple iOS 5 Page

I think iCloud is one of the most interesting things to be announced today, but also probably one of the most confusing.  Up until now Apple has offered an online service called, MobileMe. It is a paid service that provides users with an email address, and also access to a cloud based calendar, mail service and contact application.  It costs $99 a year and had limited success.  The service did integrate well with iOS and provided one of the first methods of getting data pushed out to iPhones.

The new iCloud is MobileMe reborn, but with a couple new features and its free!! Once again you get email, calendar and contacts as with MobileMe, but with iCloud you also get storage of documents and the backups of your device contents.  You can also download any apps, books and music you have purchased from Apple from any of your devices whenever you want.  So if you own the latest Lady Gaga album, but don't have it on your iPhone you can go to the iTunes app and download it to your phone for free.  Finally there is a new PhotoStream feature that will sync your Camera Roll across all your devices including your Mac.  So if you take a photo on your iPhone it will automatically go to the cloud and then appear in the PhotoStream album on your iPad and also in iPhoto on your Mac.

Okay so that's all good, a bunch of stuff will automatically get saved somewhere and then be synced across multiple devices.  I am looking forward to syncing photos across devices and also being able to download purchased content, but as for the documents (I don't use any of the iWork stuff) and mail stuff I don't think I will use it.

It doesn't stop there though... there is one more thing which you will probably hear the most about in the news, but will not be reported on correctly.  The iTunes Match service is going to read all of the music in your iTunes library including all the stuff you spent hours and hours ripping and will match it to music in the iTunes Music Store.  For the price of $25 a year you will be able to access all of that music from any of your devices.  So if you were a huge Aerosmith fan and had 15 of their CD's imported into iTunes you will now have access to all of the CD's from your iPhone without having to actually have them on your iPhone.  The best part is you actually have access to the songs on the iTunes store which are most likely in a better quality format than what you have.

The big question with iTunes Match is; What happens if you decide not to renew your subscription?  Will you get to keep the new and improved quality versions of the song?  I am still on the fence about this, but it would be nice to get more up to date audio quality and also would be great to have it all backed up to the cloud.  More information can be found at the Apple iCloud page.

Finally I will briefly talk about the latest updated to Mac OS X, called Lion.  I don't think there is anything new to report since February.  The big deal being made about this release is how Apple has taken functionality from iOS and brought it back to the Mac.
  • Mission Control - A single view to see what apps are open on your Mac.
  • Multi-Touch Gestures - The entire operating system is now full of lots of multi-touch gesture support.  Oh yeah and they got rid of scroll bars.
  • Auto-Save - Apps will now be able to auto save with support for revisions, reverting to old revisions and duplicating.

Wednesday, May 18, 2011

A Computer-less Vacation

My wife and I recently decided to go on our first parents only vacation to Puerto Rico. Now like any true geek dad, near the top of the required list for any vacation is the camera and the laptop (anything else can easily be replaced). Over the years each of these items has improved to bring us to the killer pair of a Canon Rebel T1i and a late 2006 MacBook, today.  Since we were trying to pack extra light I thought it would be the perfect time to try to go laptop free for a vacation. Note I said laptop free, but not tablet or smartphone free.  The iPad 2 and iPhone 4 rarely leave my sight and this trip would be no exception.  The iPhone would help us navigate the island and also let me tweet all about our vacation.  The iPad 2 would be my all purpose media source (books, movies and games) and more importantly using FaceTime we could video chat with the boys back at home.

So the first problem of video chatting was solved, by the iPad 2.  However, I still had two other problems to overcome before I would truly be able to enjoy my vacation.

Problem 1: No WiFi
It may be hard to believe, but after calling the hotel we found out that each room had free wired internet access, but WiFi was only available in common areas.  As much as I would love to do all my video chatting from the lobby of the hotel and all my web browsing on my phone over 3G; I had to get WiFi in the room.  I quickly ruled out lugging my Airport Extreme on vacation, so I quickly searched for travel modems and found the Zoom 4506 3G Travel WiFi Router.
It is a small WiFi router with an internal battery and also relatively native support for 3G data modems.  Most of the reviews were good plus it was only like $75 so I took a chance.  Once I got it home I set it up and began testing.  It was pretty easy to set up and after all my testing I was ready to go.

Problem 2: Downloading Photos from the Camera
The one thing I like to do on vacation is to upload photos while we are on vacation, to show friends and family what we are up to and also to take care of the work of doing while I have spare time.  Again the iPad 2 doesn't have native support for uploading photos from a camera.  Of course there is the Apple Photo Connector from Apple for $40, but I make it a point to avoid buying Apple brand adapters if possible (too expensive).  Lucky for me the Eye-Fi company had just announced a new version of their iOS application that would allow "Direct Mode" transfers from certain Eye-Fi cards.  Basically what this means is if you were out in the middle of the woods the Eye-Fi card can set itself up as a WiFi base station and the iOS device can connect to the network for transferring photos.  The previous version of the app supported transfer of photos, but it would only work if both devices were on the same wireless network. Since I also needed more storage space for my camera this seemed to be the best route.  For only a little more than a standard 8GB SD card I picked up the Eye-Fi Pro
Once the Eye-Fi card arrived I also did some dry runs with it at home.  The setup on this was a little more complex and took me quite a bit longer than the wireless router.  The one thing I found most frustrating was the apparent limitation of linking the card up to only one iOS device in direct mode at a time.  I was able to get both the iPhone and iPad configured to connect in Direct Mode with the card, but once I shut down the wireless network only one of the iOS devices would receive photos.  I don't exactly know why it works this way, but I have to assume there was some good reason for it.  In the end I had it working as I wanted prior to leaving.

In The Field
I packed all my essentials, made it through the stressful process of security at the airport and made it to our hotel in Puerto Rico. In practice the Eye-Fi worked flawlessly, the iPad quickly found it and the photos whizzed over the 802.11n connection.  When we were in the airport I actually turned on the camera, fired up the app and let the iPad download the photos while it was in my bag.  I think it took about an hour and a half to download 300 photos in RAW format (~15-20MB each).  I was very impressed with it and found it to be a great investment.

I didn't have the same luck with the Zoom modem. Initially when I plugged it into the ethernet port in our room it was connected, the iPad could get on the network, but couldn't reach the network.  I played around with the IP settings and eventually got it to work.  However, the next morning it didn't work again.  Let me disclaimer here that I think the problem was not with the router but instead with the network settings in the hotel.  In the end we were able to pick up WiFi in our room from the lobby so it worked out okay.

In the end I did drop the ball by not uploading any photos (sorry friends and family), but that was mostly because I was too busy relaxing.  I never really laid out a plan for how I would have done it, but I think Alex(@alexredsox) would say something about people having figured out how to do that and it would probably involve Picasa and email.

Oh yeah and we did have a great vacation, although sitting here two weeks later and it seems like we never went.