Friday, May 18, 2012


I had a hard drive issue the other day and decided to upgrade and re-install my OS on a new drive.  I started by installing OSX Snow Leopard and then upgraded to Lion 10.7, which immediately prompted some updates to the OS, leaving me with 10.7.4. My machine is a Mac Pro running 2 X 3 GHz Quad-Core Intel Xenon processors.

To my horror, when I went to install Sorenson Squeeze 5, which is market on the outside package as "Universal" install for Mac meaning it runs on both PPC and Intel architectures.  When you open the folder, there are two installers - one for Intel based Macs (like mine) and one for PPC based Macs.

PPC is no longer supported but to my horror, when I tried to install the Intel version, I got the following message.

I got the same behavior with several other "universal" installs so I set up a call with Apple to discuss this, thinking it is obviously a bug.  The call took place at 9:00 AM PDT and I am going to share with you what was said to me.  BTW = if anyone from Apple wants to know who the person was, the case was Express Lane Case 315474064: Scheduled Support Call.    First  the Apple guy told me it was because Lion no longer supports PPC.  I told him that up until the day before, I had my Final Cut Pro and Sorenson running on this same machine with the Lion OSX.  He was unapologetic and told me I just had to just pay Apple to upgrade to a newer version of Final Cut Pro.  My reaction was to put my hands up and say "don't shoot" but I politely suggested this sort of behaviour was not appropriate given the stamp "Universal" means it runs on Intel.   I also told him that by him telling me I had to go and upgrade all my software was akin to robbery.   I told him I was going to blog about this and he got really worried and said he had not said anything and I should refer to the website.    He said "I didn't say that and anything you say you are making up".

Sorry pal.  The truth is the truth and this blog stays here!  That's final.  Nio court gag order will take this down.

Well, I am blogging about because other people might want to know about this.  There is an error and I hope someone from Apple reads this and sorts it out.   Please be warned! 

Dear Apple:  Please explain what "universal" really means?  From their website:

"Now every new Mac ships with an Intel processor. Experience delightful responsiveness from the smallest Mac mini to the most beefed-up Mac Pro. Use one of more than 7,000 universal applications that take full advantage of the Intel chip."


Wednesday, May 16, 2012

Adobe LiveCycle ES3 (version 10.0) Download

Adobe has recently announced that Adobe LiveCycle ES3 is available as a download.  This announcement was met with some great enthusiasm by the community, none less than us here at Technoracle.  The brand itself had been subject of much speculation regarding it’s future and we are happy to see the investment into LiveCycle continue.  This re-invigorates our own investment to work with this excellent SOA platform.

Having now been accepted into the Adobe Enterprise Solution Partner Program, we are extremely excited to be amongst the first in the world to offer you, the customers, the ability to purchase Adobe LiveCycle ES3 and professional services around it, starting from initial project consulting to complete project management.  In case you haven’t heard, there are several new features that many enterprises have asked for.   Our great former colleagues Jeff Stanier and Dave Welch have done a spectacular job of making this release a “must have”.

LiveCycle ES3 first and foremost incorporates the Data Services ES3 module (version 4.6.1), an optimized Java server framework that can enhance and simplify the development of rich, data-intensive enterprise and mobile applications.  This includes several mobile platforms such as iOS, Android etc.

ES3 also offers a new SAP to Java connector for creating front-end interfaces to SAP systems. Alongside this update are connectors for FileNet 5 and easier SharePoint server farm deployment and integration.

Our favorite new feature is within LiveCycle Designer.  When you add a new submit button, Designer allows you to select an encryption method and choose from from several XML encryption/decryption algorithms.   This will help with many accounts we are currently working on.
Out mobile MEAP-lite platform is also a good way to add custom mobile functionality for wireless device integration into business process.  Companies like Uberity have already released a great free and open source mobile SMS module including the full source code and binaries at

So why wait?  Get started today.   Contact us, a company founded by former top LiveCycle ES rock stars and engineering managers.  Leave a omment if you wish to inquire about our services around LiveCycle ES3.

Tuesday, May 15, 2012

Neo4J Tutorial #4: Registering a shutdown hook

In the previous tutorials on Neo4J, we discussed what Neo4J is, how to start it and use Cypher for basic queries and getting started with Neo4J and Java.  In the third of these, we had hinted there are some things you should do that are best practices in a proper environment.

To start this tutorial, please first follow the 3rd of the series from

You' notice that on Neo4J's pages, they discuss a shutdown hook.  So what exactly is that and why would anyone use it?

If you examine the code on the previous tutorial, you will see that you can shutdown a database by simply calling grapDB,shutdown();  These lines of code are shown above.  Note that calling shutown() only tries to shutdown the database.  The Shutdown hook simply ensures that the database shuts down cleanly.

To add a shutdown hook to the code in the previous tutorial, navigate to the createDB() method and register a shutdownhook handler right under the line where you create the database.  With the new line added, your code should look like this:

At this time, you may notice red X's as this introduces errors into the project.  We have registered a shutdown hook which takes a single argument of  the graphDB instance it will register the hook for.  Now it is time to write the hook.  

registerShutdownHook() is a static method that returns nothing (void).  The syntax above is a bit confusing given line 91 calls addShutDownHook on a new thread and closes around line 99, hence the erroneous looking but much required "});" syntax.  This essentially encapsulates the functionality.    The shutdown hook ensures that the Neo4j instance shuts down nicely when the VM exits (even if you "Ctrl-C" the running instance before it has finished running.  Try running this example now with the modifications and you should see the following print out in your console.