Thursday, March 17, 2011

Tip for System Admins: Install XMarks

Do you manage a lot of servers and rely on web based documentation, configurations, and multiple system/server websites?  If you answered yes to any of those then you might want to consider installing XMarks on your server.

Xmarks stores bookmarks on their servers and allows you to synchronize them down to your browser.

I have a fairly good list of about 30 complex URLs that I need access to when I login to each of the servers I work on.  Manually keeping them up to date and synchronized is a pain.  But that pain is gone thanks to Xmarks - I just installed a new server and immediately have access to all of my configuration and documentation URLs!
Thanks Xmarks!!!!

http://www.xmarks.com

Wednesday, March 9, 2011

Oracle WebCenter Interaction: Customizing Collab Subscription Emails

Changing the subscription emails from Collab is super simple and can go a long way in getting users to actually read the emails.  I'll admit that after a few years of getting them I've learned to tune out the content once I open a subscription email and see the standard heading it has.
By removing the top table and doing some reformatting the emails can look just like any other email and, fingers crossed, maybe more folks will read them!

The email templates are located in \bea\alui\ptimages\imageserver\plumtree\collab\templates.
The discussion board message post template is called: DiscussionPostNotification.nst

Here is how our discussion board message post emails now look:





This is the code that makes that happen:
## Collaboration Server Notification Template
## Type: Discussion Post
## Channel: Email - HTML

## content type
#set( $contentType = "text/html" )

## sets the subject line for the email
#set( $cns_subject = "$projectName Discussion Board Post" )

## Body Start
#parse ("/plumtree/collab/templates/header.inc")

<table width="100%" border="0" cellspacing="5" cellpadding="3">
   <tr>
      <td class="customappText"><b>${rootMessageName}</b><br><i>${messageAuthorName}</i><br><div>${messageBody}</div></td>
   </tr>
   <tr>
       <td class="actionbarDirBtn"><A href="${messageReplyURL}"><img src="$imageServer/plumtree/collab/private/img/actionMsgReply20.gif" align="absmiddle" border="0"><span class="actionbarText">Reply</span>&nbsp;&nbsp;</a></td>   
    </tr>
   <tr><td height="100">&nbsp;</td></tr>
</table>

<hr width="100%">
<table width="100%" border="0" cellspacing="5" cellpadding="3" >
   <tr>
      <td class="customappText">Workspace: <A href="${projectOverviewURL}">${projectName}</a>
      <br>Discussion Board: <A href="${rootMessageURL}">${discussionName}</a><br>${messageCreatedDate}</td>
   </tr>
   <tr>
      <td class="customappText">Why am I receiving this email?<BR>You are subscribed for email notification when new messages are posted to the ${projectName} discussion boards.</td>
   </tr>
   #parse ("/plumtree/collab/templates/attachment.inc")
</table>

#parse ("/plumtree/collab/templates/footer.inc")


One final tip - if you get annoyed with all of the subscription emails for deletions, just DELETE the .nst files associated with content deletion! Problem solved! (yes, your log file might grow faster with error messages about the missing file, but that is better than the annoyance of these emails!!!)

Wednesday, January 19, 2011

Oracle WebCenter Interaction: Developing a custom login page

One can find some public WebCenter Interaction sites by simply googling "portal/server.pt".  In looking at a lot of public sites (and a few that are password protected) is that many don't bother to change the out of the box login UI.

Recently we turned on our adaptive page layouts, and while they aren't required for creating a custom login page, they do make it very simple.  The process involves the following:
  1. modifying the loginpagelayout.html file which is located in \ptimages\imageserver\plumtree\portal\private\pagelayouts
  2. creating a web service to point to the custom loginpagelayout file
  3. enabling adaptive layouts for your guest experience definition and selecting your new loginpagelayout file
That's it!!!

Depending on how customized your existing login page is, you might also have to change the header/footer associated with the guest login, change the experience definition navigation options to portlet-ready navigation and possibly modify the basepagelayout file.

All in all, creating a custom layout is fairly straight forward in this manner.
Creating unique layouts for various sites using the same portal install can be done based on experience rules (URL, User-Agent, IP, Group, etc) and additional login page layouts.  Fortunately I didn't have to do that today, but it looks like it should be another fairly straight-forward change.

What do you think of our new login page?

Thursday, January 13, 2011

Oracle WebCenter Interaction: Improving the user search experience

Recently we enabled adaptive layouts in our 10.3 WCI environment with the goal of redesigning the search results layout.  Out of the box the results screen is overly cluttered and out of date with modern UI's.

What we removed and why:
  • Advanced search - unfriendly tool for users that are trying to find things quickly and easily
  • Save this search - another unfriendly tool where a user would have to know to add the "Saved search" portlet to their My Pages
  • Sort by - a world of options that no user takes advantage of
  • Created date - modified date is good enough
  • KD breadcrumb (on documents) - added clutter
What we added/modified and why:
  • Categories - as a nod to the advanced search features, Facebook/Google/Bing/Yahoo side navigation we chose to add categories for All, Documents, Folders, Collab Items and Web Content
  • Pagination - we chose to modify the UI of the pagination area to be more like Bing and other modern UI's which use mouse over boxes
  • Search result row - by taking the modified date out of the column, moving it below the description and coloring it green, a more recognizable design is achieved
The final look:

Wednesday, December 8, 2010

Oracle WebCenter Interaction: Page Flyout Navigation

The out of the box navigation options bundled with WebCenter Interaction use dated designs and leave something to be desired.  Like many other customers, we decided to create a custom navigation when we began implementing our portal in 2005.  We utilized a header based community navigation and a left column page navigation portlet - a design common across many websites.  After some time we noticed, through analytics and feedback, that users were struggling with the page navigation.

To remedy this problem we decided to redo the typical "My Communities" dropdown navigation so that when a user hovered over a community in the dropdown the pages from that community would "fly-out" to the right.
After some searching we settled on the Superfish jQuery plugin which has a pleasing display.

The coding wasn't very challenging and required just adding an extra loop in the forEach Community section to gather and display the pages.

The final result has been praised by our end users and has led to an increase in sub-page views across communities.

Lessons Learned:
  • Our previous communities were built with announcements on their home pages however now that users are able to skip the home page they sometimes miss important news.
  • We are now getting demands for the occasional sub or related community to display as if it were a page.  If this were an across the board demand we could simply gather and display those but because of the infrequency of this request we have opted to create stub pages which contain a single portlet which does a URL redirect to the associated community.  The solution is ugly (as redirects are) but gets the job done. A prettier alternative would be to code an if condition into the loop that displays the pages so that when the particular community it appears it gets an additional faux page added.
Update after nearly a year:
  1. The concept of flyout is wonderful but there needs to be governance around how many items should appear in the dropdown.  We are now at the maximum that will fit on a monitor at 1024x768 resolution and find this to be exceptionally limiting. 
  2. I've always been against fly-out navigation from a usability perspective, especially when there is more than one level of fly-out.  However, limiting yourself to one level of fly-outs essentially limits your navigation to only two levels in depth which is exceptionally limiting.
  3. We are a mid sized company (1200 employees, 2000 extranet users) with 150 communities.  If it were my choice I would completely redo our navigation away from fly-outs and away from dropdowns.
  4. I strongly recommend not using fly-outs.



Code:
<li><a href="#" class="tab" ><img src="pt://images/plumtree/custom/DimensionHeader/images/tab_comms.gif" border="0" /></a>
   <ul><!-- loop through each community -->
      <pt:logic.foreach pt:data="sortedComms" pt:var="element">
      <pt:logic.collection pt:key="subpages"/>
      <pt:ptdata.communitypagesdata pt:id="subpages" pt:commid="$element.objid" />
      <pt:logic.variable pt:key="showpage" pt:value=""/>
         <li>
         <pt:core.html pt:tag="a" href="$element.url"><pt:logic.value pt:value="$element.title" /></pt:core.html>
         <pt:logic.collectionlength pt:data="subpages" pt:key="length"/>
         <pt:logic.intexpr pt:expr="($length) > 1" pt:key="boolvalue"/>
         <pt:logic.if pt:expr="$boolvalue">
         <pt:logic.iffalse>
         </pt:logic.iffalse>
         <pt:logic.iftrue>
            <ul>
            <pt:logic.foreach pt:data="subpages" pt:var="sp">
               <pt:logic.stringexpr pt:expr="($showpage) == a" pt:key="boolvalue"/>
               <pt:logic.if pt:expr="$boolvalue">
               <pt:logic.iftrue>
                  <li>
                     <pt:core.html pt:tag="a" href="$sp.url"><pt:logic.value pt:value="$sp.title"/>
                     </pt:core.html>                      
                  </li>
               </pt:logic.iftrue>
               </pt:logic.if>
               <pt:logic.variable pt:key="showpage" pt:value="a"/>
            </pt:logic.foreach>
            </ul>
         </pt:logic.iftrue>
         </pt:logic.if>
         </li>
      </pt:logic.foreach>
   </ul>
</li>

Friday, December 3, 2010

Congrats to Oracle on setting a new world record in TPC-C

TPC-C simulates a complete computing environment where a population of users executes transactions against a database. The benchmark is centered around the principal activities (transactions) of an order-entry environment. These transactions include entering and delivering orders, recording payments, checking the status of orders, and monitoring the level of stock at the warehouses. While the benchmark portrays the activity of a wholesale supplier, TPC-C is not limited to the activity of any particular business segment, but, rather represents any industry that must manage, sell, or distribute a product or service.[1]

They set the record using a Sparc T3-4 server running a whopping 108 processors with 1728 cores, for a gigantic total of 13,824 threads!  The system was equipped with Oracle 11gR2 Database running Oracle's Solaris 10. [2]



References:
  1.  http://www.tpc.org/tpcc/default.asp
  2. http://www.tpc.org/tpcc/results/tpcc_result_detail.asp?id=110120201
  3. Results: http://www.tpc.org/tpcc/results/tpcc_perf_results.asp

Tuesday, November 23, 2010

First Steps into Oracle WebCenter 11g: Part 1

I've worked on Plumtree portal (aka Oracle WebCenter Interaction, WCI) installations in both .NET and Java environments for the better part of my career.  My current employer selected the portal bundle five short years ago and two vendor take-overs later it appears as though the time to migrate to another portal is on the horizon.  While WCI still has seven years on Oracle's continue and converge track the main issue is that the Publisher web content management package doesn't work (at all) on the IE9 beta, and doesn't work on Firefox, Safari, Chrome, etc.  Replacing just the content management package is an option, as is staying on IE8 for the next 6 years (laugh), but what better time to start afresh with an evaluation of new portal systems!

Even though I've seen WebCenter (mostly Spaces) in action at the past 2 OpenWorld conferences, and through a few webinars, the normally text heavy presentations haven't given me much of a sense of how the product looks or works.  WCI was built to empower non-technical business user's to do build communities, pages, portlets and content through a simple GUI interface.  WebLogic portal (from my experience installing and prototyping it) requires much more technical skill and developer interaction.
Why do I mention WebLogic portal? because that is the basis on which WebCenter framework was built.
To find out what changes WebCenter has implemented over WebLogic the best approach is to get the system up and running and kick the tires for yourself!

To that end I've recently been reading all of the material I can find on WebCenter 11g.
Navigating between the Fusion Middleware and WebCenter content to find basic information such as hardware and compatibility requirements has been a bit more tedious than I had expected.  Just as my frustration level peaked there was a part in the clouds and things have begun to come together.

In a few days I'll be in possession of a pair of VM's and hopefully will be able to get WebCenter on it's feet soon after.

Based on our existing infrastructure and the documentation I've gone through, I'll be using a pair of VM's from a Citrix XenApp server (Xeon x5670 processor, with 6 cores and 2 threads per core - 12 total) running XenServer virtualization (unsupported by Fusion 11gR1).

Both will have 100gb of hard disk, 4-6gb of RAM, and will be running Windows Server 2008 x64
VM1 will be used to host the web and middle tier components
VM2 will host SQL 2008 Standard Edition and the version of UCM that comes with WebCenter Suite

Keep your finger's crossed for me, and stay tuned for part 2 of this series when I'll be posting my experiences with the installation.


Here are links to the most helpful resources I've found: