Sunday, November 4, 2012

Windows 8 Unleashed Hackathon

I spent most of this lovely fall Saturday in the basement of Microsoft's office here in Boulder Colorado. The goal: learn about how to create applications for the new Windows operating system.

First, let's look at the lovely offices.  Though we were in the basement, it was a very nice basement.  There is a locker room with showers, and even a bike repair shop.  And since this office focuses on Bing maps, there were stunning outdoor images on all of the walls.  Not a bad place to spend the day!


Key ideas: developing for win8 is very similar to developing for Windows phone 7 in that your app needs to be able to go into a suspended mode and behave appropriately when it is "tombstoned".

The biggest surprise for me was the Microsoft Windows Simulator.  It is a Win8 runtime that VS2012 launches to run your application.  This allows you to see your app running in a realistic environment.  You can cause it to suspend, and can even simulate touch events using your mouse.  You can change the size of the simulated screen to see how you app looks on various sized tablets.


Note that this is a very realistic Win 8 environment.  There is a Start button.  You can press it and get to the main screen of Windows 8. There you will see the standard apps alongside your own.  You can open these apps and play around like you were on a real device.  Then you can bring your app back up.  This is a great way to test that your app not only starts smoothly, but can smoothly transition as the user jumps from app to app.


The day went by pretty quickly.  Fernando Cardenas first spoke, going over the architecture and design considerations for building these apps.  Then John Brunnings went into more detail over lunch.

The big fun part of the day was the hackathon itself.  We were invited to create an app on the spot, with the reward of gift cards for the top three winners.  I had no idea what I was going to do when I got there, but during the morning I began talking to David Kilmoyer about issue-tracking apps.  He mentioned that Jira has a nice REST API.  And that inspired both of us to attempt to write apps would that talk to Jira and get a simple list of issues.

David took the bold route of creating his using the HTML5/Javascript front end, while I chose to stick with XAML, a technology which I'm no expert in, but am at least more comfortable with.  In the end, neither of us won prizes, but we certainly learned alot about the Jira API, and serialization of JSON.  And later on that evening I was able to get my app to save and restore its state properly.

In all, it was a very fun day.  Good to meet other .NET developers, and to take on the challenge of learning alot of new technology quickly and tearing out all stops to build a new app in that new technology.

Tech setup:  I was hesitant to install windows 8 on my own system.  Instead, I installed VirtualBox, and then created a Win8 VM.  On that VM I installed Visual Studio.  This was all done on a new work laptop, a Samsung QX411.  We got it for an Oracle Primavera workshop a few weeks ago, with the express purpose of running VMs on it.





Sunday, October 21, 2012

Upgrading P6 Professional 8.2 with Service Pack 1







Upgrading P6 Professional 8.2 with Service Pack 1


It's time for me to apply the new SP1 to P6 professional.  This came out in the fall of 2012 and is Patch 14409478, Release 8.2 SP1 (8.2.1.3763).  Information about what is in this pack can be found on support.oracle.com, then doing a search for ID number 1480818.1
From this page you can also get to the download page.

What version am I on now?


If you're not sure what version you are on, open up P6, and choose Help->About to get the following screen:








     

 The upgrade

The upgrade is not simple, as there is not a one-stop "upgrade.exe" file.  Instead, the upgrade consists of replacing a number of files manually and then running a script to upgrade each database you use.




1) Replace Files

First you  replace a number of files that exist on your local machine where P6 Profssional is installed.  You may first want to back up your current P6 folder.
On my local desktop, the folders where P6 is installed are found in:
"C:\Program Files (x86)\Oracle\Primavera P6\P6 Professional"

Here is what the file structure there looks like:




1.A Replace PM.exe
This goes directly into the P6 Professional folder.
  • P6.exe => P6 Professional

1.B Replace the 3 files starting with "OraclePrimavera..." 
Copy these into the "P6Tools" folder beneath your "P6 Professional" folder.

  • OraclePrimavera.ApplicationLogic.dll    => P6 Professional/P6Tools
  • OraclePrimavera.ApplicationLogic.PM.dll => P6 Professional/P6Tools
  • OraclePrimavera.Core.Utils.dll          => P6 Professional/P6Tools


 1.C Replace the "prm-..." files.  These each go into different sub-folders beneath the "Pro" folder
  • prm-cd.jar             => Pro/ClaimDigger
  • prm-xslt.jar           => Pro/Java/lib
  • prm-updatebaseline.jar => Pro/BaselineUpdate
  • prm-importexport.jar   => Pro/ImportExport
  • intgserver.jar         => Pro/java/lib  
1.D Replace java SDK file:

If you use the SDK, then you will need to replace PMSDK.dll in the main P6 Professional folder:
  • PMSDK.ddll     => P6 Professional

2 Update database


Run dbsetup.bat




Then, using SQL Server studio or your favorite db tool, run the following script:

DBScripts\SqlServer\ss_projwbs_obsproj.sql

Then run this command:

sqlcmd -S <server name in full> -U <user name> -P <password> -d <database name> -i <file name and location>

For example:
sqlcmd -S bombur\sqlexpress -U sa -P sa -d P6_Pro_Sample -i ssppm_src.plb

This will perform many actions on the database, including updating triggers, as in the following screen:



Once you have finished, log into P6, choose Help->About and voila!  You are on the latest and greatest version of P6 Professional.


 

One annoyance I noticed after the upgrade is that the menus are once again set to only show me the most recently used menus, and hide the rest:




Personally, I do not like this. Just right-click near the menu, choose "Customize..." open the Options tab and un-check "Menus show recently used commands first".






Happy scheduling!