Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Announcing my new dev2dev blog

I’m very pleased to announce that I’ve been selected by BEA to be one of their featured bloggers on dev2dev, BEA’s product community site for developers by developers. You can read my dev2dev blog for all the Plumtree/ALUI tips that you’re used to finding here, but continue to check this space for news about bdg.

Also, stay tuned for a new Plumtree/ALUI podcast . . . coming soon!

Categories
dev2dev Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Hello World + Portlet vs. Native Navigation

Hello world! This is my first post on my shiny new dev2dev blog and needless to say, I’m very pleased to be blogging here and to be given the opportunity to contribute to this prestigious and active community.

That being said, I hope you’ll find my contributions worthwhile. I plan to address mostly technical topics pertaining to AquaLogic User Interaction or ALUI (pronounced ah-LOO-eee by those in the know) with the occasional foray into the business side of ALUI and portals in general. I’ve been working with the ALUI (formerly Plumtree) products now for almost 10 years, but I also know a bit about Weblogic and I want to learn more about the other products in the AquaLogic family. So watch this space for news about all your favorite BEA products!

Okay, on to the topic at hand — navigation. Once upon a time (pre Plumtree 5.0), UI customization meant hacking through layers of ASP or JSP includes to find the right file and then changing this and that and trying not to break anything. And then when upgrade time came, you somehow had to merge all your changes out of the old UI code and into the new. It was a black art at best, a total goat rodeo at worst.

Enter Plumtree 5.0, which introduced the concept of header, footer and content canvas portlets along with “pluggable navigation.” For the first time, you could code your navigation against a supported and documented API and bundle it into a separate DLL or JAR file. When upgrades came along, you simply installed the new code and everything in your old DLL or JAR just worked. The only problem was that writing a pluggable navigation was really hard.

So, in ALUI G6 (the current version), you can easily make a navigation using a remote portlet and few lines of HTML, CSS along with a few handy XML tags. However, the old pluggable navigation model is still in the product, which begs the question: how do I know what form of navigation to use (native or remote)?

A lot of times you’ll hear me say, “it depends” i.e. it depends on your goals or it depends on your architecture. But, in this case, with 100% certainty, I can say that you want to go with remote navigation. Why? Because it’s about 1000 times easier to code, maintain and deploy, you can change it on the fly and in a breeze, you can include Javascript and CSS just like you would in a normal web page, you don’t have to work with confusing HTMLElement classes, you don’t have to know Java or C# . . . need I say more?

If you’re not sold yet on the concept of remote, XML tag based navigation over native pluggable navigation, consider the following example. Say I want to get all the mandatory with tab communities and display them in an unordered list.

Here’s the native code for that:

CListURLMediator mediator = new CListURLMediator(m_asOwner,
m_model.GetCategoryLinks(NavCategoryType.MANDATORYTABS,
false));
HTMLList ul = new HTMLList(1);
while (mediator.Next()) {
  HTMLListItem li = new HTMLListItem();
  li.AddInnerHTMLElement((HTMLAnchor)mediator.GetEntry());
  ul.AddInnerHTMLElement(li);
}
return ul;

And here’s the remote code:

<ul xmlns:pt='http://www.plumtree.com/xmlschemas/ptui/'>
  <pt:ptdata.mandtabcommsdata pt:id='mandtabcomms'/>
  <pt:logic.foreach pt:data='mandtabcomms' pt:var='c'>
    <li><pt:core.html pt:tag='a' href='$c.url'><pt:logic.value 
  pt:value='$c.title'/></pt:core.html></li>
  </pt:logic.foreach>
</ul>

The code speaks for itself. (If you never have to learn what a CListURLMediator is, consider yourself lucky.) Not to mention that you have to worry about the NavType and deployment issues and that you have to restart the portal any time you make a change to your navigation code.

So, is remote, tag-based portlet navigation the solution to all your navigation needs? Not exactly. With pluggable navigation, you can control six navigation areas: the top bar, above the header, below the header, the left side, the right side and above the footer. It’s easy enough to suppress the top bar and replace the first three areas with your header portlet. Same goes for the footer. But what about the left and right sides? You can’t really replace those with portlets unless you use the two narrow columns, which leaves you with only a single portlet column for content.

So you’re in a pickle — you read this post and you’re now the world’s biggest remote navigation fan — but you can’t use them in left and right navigation. There is a solution. If you read this post in the newsgroups, you’ll see that it’s possible to write some code that will load a remote portlet into the left and/or right columns. (The only thing I would change about this code is make sure you put the portlet ID in a VarPack instead of hardcoding it.) Using this fairly simple approach, you can have your cake and eat it too.

Comments

Comments from BEA dev2dev are listed in date ascending order (oldest first)

  • were doing UI customization to modify the top nav section, but would like to move to remote portlet with tags instead for reasons you mention.
    If i understand correctly, we have to do this in header portlet. How do we enforce that that the same top nav is used across the portal if the community managers are able to change the tag code in the header portlet?

thanks
steph
[email protected]

Posted by: sviau on July 9, 2006 at 7:04 AM

  • That’s a great question and I’m glad you asked it. First let me clear something up: community managers cannot and should not change the tag code. However, they can change which header portlets are being used for the communities they manage (and thus choose a whole new set of tags or no tags at all).

    Fortunately, there’s a easy way to prevent this from happening using community templates. There’s a check box on the “Header and Footer” page of the community template that says “Force Community to use Header and Footer from Experience Definition.” You’ll want to check this box. Then, as the portal administrator, you can mandate which community templates your community managers can use. Set it up so that your community managers are forced to use the community template with this box checked and you should be good to go.

    Posted by: bucchere on July 10, 2006 at 2:38 AM

  • Hopefully this is applicable here…I am trying to brand (or customize) the title bar of a portlet(s). I have determined how to change the text on the title bar (PortletResponse.setTitle) but cannot find nothing on changing colors or adding colors to the title bar. Can this even be done? Is there a CSS class somewhere or can it be done programmatically? Thanks for your assistance.

    Posted by: jayparker on January 2, 2007 at 12:28 PM

  • This should do the trick:
    .platportletHeaderBg {
     background-color: red;
    }

    Posted by: bucchere on January 10, 2007 at 7:13 PM

  • is the remote code supported in 6.1 mp1? I attempted to run it and nothing is generated. Has mandtabcommsdata gone away? I notice it also is absent from the current edocs http://edocs.bea.com/alui/devdoc/docs60/Portlets/Adaptive_Portlets/Using_Adaptive_Tags/PlumtreeDevDoc_Portlets_Adaptive_Navigation.htm

    Posted by: geoffgarcia on October 2, 2007 at 11:26 AM

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

The Plumtree founding fathers — where are they now?

The short answer: one is retired, two are involved in real estate (one as a business and one as a hobby) and one is seeking his next adventure while investing in promising Web 2.0 start-ups.

Joe McVeigh

I heard through the grapevine that Joe has invested part of his personal fortune in Skobee (web site, blog), a Web 2.0 online community where you can organize events, sort of like evite meets MySpace, I guess. Honestly, I still haven’t quite figured out a use for it, but to its credit, it has a nice UI, well-written copy and a very cool intelligent e-mail integration that gromms out keywords from e-mails and uses them to create events.

Joe and his wife Julia recently had a baby girl (Jacqueline). Joe and his family still reside in the San Francisco Bay Area and Joe claims to be seeking out the next big thing. If anyone can find it, he certainly can.

Glenn Kelman

Glenn moved to the Seattle, WA area and recently got married. He’s now the CEO of Redfin, a real estate company that focuses on San Francisco and Seattle. They’ve been getting some pretty good press lately — I’ll be keeping my eye on them for sure. According to his bio on the Redfin site, Glenn also serves on the board of Naviance, a hosted service for schools and colleges.

Kirill Sheynkman

Far and away the most enigmatic of the three founders, Kirill is officially in retirement, although I suspect he’s also looking for something to keep him busy (as people with his IQ probably don’t much enjoy watching the grass grow). He currently lives in NYC and as a hobby, seems to have put together a real estate calculator of sorts called House Math. He also smokes a pack a day, blogs (although somewhat infrequently) and rants about various topics from Bali and Saddam to the financial outlook for MSFT and GOOG.

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Presenting at the DC BUG (BEA dev2dev User Group)

I’m very pleased to announce that I will be the featured speaker at the Washington DC BEA dev2dev User Group on May 11th. You can read the official invite, but here are the basics:

BEA AquaLogic User Interaction Development, Demo & Roadmap

Date: May 11 2006

Time: 6:30pm – 9:00pm

Location:

Tenleytown Ballroom
Embassy Suites Hotel at the Chevy Chase Pavilion
4300 Military Road N.W.
Washington, D.C. 20015 (map)
Metro Red Line – Friendship Heights (take the hotel exit)

Description:

Back in October of last year, BEA purchased the market-leading pure-play portal vendor Plumtree Software to provide a user interface to their AquaLogic product line. Hear former Plumtree employee and 10-year portal industry veteran Chris Bucchere explain how Plumtree fits into the AquaLogic framework, how to configure and develop for this revolutionary new platform, and what the future holds for ALUI, including integration with BEA Workshop and the WL Portal. See a demo, do some real-time ALUI portlet development, and get your technical questions answered.

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Watch for deprecated methods in the G6 server API

We’re doing a G6 upgrade at one of our customer sites and we noticed that one of our PEIs (that used to set a user preference) was dying due to our use of APIs that worked in 5.0.4 but no longer work in G6.

(Just for the record, I guess I have a different idea of the meaning of deprecated when it comes to APIs. I thought that if you deprecate an API it means “please don’t use this as it might be removed in future versions of the API.” For BEA AquaLogic, I guess it means “this method just doesn’t work any more.”)

Here’s an example: AddPersonalSetting has been replaced by AddPreference.

public Redirect OnAfterLogin(Object userSession, ApplicationData applicationData)
{
IPTSession session = ((IPTSession)userSession);
session.GetMyPages().OpenPage(0 - userId)
.AddPersonalSetting("UserSettingName", "UserSettingValue");
}

Here’s the new G6 way to do this:

public Redirect OnAfterLogin(Object userSession, ApplicationData applicationData)
{
IPTSession session = ((IPTSession)userSession);
session.GetSessionInfo()
.AddPreference("UserSettingName", "UserSettingValue", 0);
}

Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Mingle posted on the BEA/Plumtree Code Share

I’m very pleased to announce that Mingle, a prototype of a BEA/Plumtree Web 2.0 social networking application, has been posted on the BEA/Plumtree Code Share!

Mingle was bdg’s winning entry in Odyssey 2005’s Booth of Pain competition.

Mingle features a set of adaptive portlets that work together to help people find one another and form social networks based on personal interests, physical proximity, etc. The portlets consist of:

Adaptive User Search (JSP): each keystroke issues an EDK/PRC search API call to help people find other people quickly and easily. Clicking on a person re-focuses the Network Browser, causing the browser to center on that person’s network.

Network Browser (Java/JSP): built as a Java applet leveraging an opensource hyperbolic graphing project (HyperGraph), this portlet shows the physical connections between people and allows you to browse the network.

Featured Person Profile (JSP): when a person double-clicks on another person in the Network Browser, this portlet shows that person’s complete user profile, include all the EOD attached to that user (Name, Address, Hobbies, etc.).

Del.icio.us Hobby Links (C#.NET): when a person clicks on the featured person’s hobby of choice, this portlet makes an adaptive request to del.icio.us to download social bookmarks relevant to the hobby.

Google Map Locator (HTML/Javascript): when a person clicks on the feature person’s address, this portlet makes an adaptive request to a free geocoder and then to Google Maps to display an interactive map of the person’s address in the portal.

Mingle is bdg’s second open source offering to the BEA/Plumtree community. You can download the source and install it on your own BEA/Plumtree deployment.

Have fun, and if you run into problems, please don’t hesitate to contact us.

Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Podcast Episode 3: Plumtree Washed Away by AquaLogic

bdg-podcastI just cut the third episode of the bdg Plumtree Podcast. I’m very happy to say that I’ve worked out a glitch in the connection between the mixer and my laptop which eliminates that awful high-pitched hum you hear in the first two episodes.

In Episode 3, I talk about the name changes that resulted from the merger between Plumtree and BEA Systems and the impact of these changes on the portal market.

I also talk about a thought-provoking podcast I heard yesterday given by Medsphere Systems Corporation’s CEO Larry Augustine. You can read more about the podcast or check it out on iTunes.

As always, we end with a trivia question.

I’m interested to hear your feedback — please send your comments to [email protected].

Categories
bdg Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Benefits of an open source model

I rode public transit today (always good for the soul) and had a chance to listen to some of the many podcasts that I’ve downloaded to my iPod. One I found particularly interesting was a recording of Larry Augustine’s talk at the Open Source Business Conference held in San Francisco in April of 2005.

If you want to hear the podcast yourself, you can check it out in iTunes — it’s Episode 12.

Basically, Larry argued two things — one is that large applications (CRM, ERP, etc.) are the “next wave” of open source development and the other is that the open source business model can actually lead to more profits than the traditional “broken” model of selling enterprise software for large license fees.

bdg already offers one product as open source — the PHP EDK, but this podcast made me start to rethink our model. Perhaps all of our products should be free and we should continue to make our money off services, maintenance and support.

bdg-podcastI ruminate (publicly) on this topic in the third episode of the bdg Plumtree Podcast, which also covers the Plumtree->AquaLogic name changes.

I’m interested to hear your thoughts as well.

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Same old products, fancy new names

With the acquisition of Plumtree by BEA in the books, all of the Plumtree products we know and love have received new monikers.

Here’s a cheat sheet to help you map the old names to the new ones:

Portal/Foundation –> AquaLogic Interaction
Collaboration –> AquaLogic Interaction Collaboration
Studio –> AquaLogic Interaction Studio
Process –> AquaLogic Interaction Process
Content/Publisher –> AquaLogic Interaction Publisher
Analytics –> AquaLogic Interaction Analytics
AWS/PWS/CWS/SWS, Portlets & EDK Extensions –> AquaLogic Interaction Packaged Integration Services

I also heard (from someone on the inside) that no new releases of the newly branded AquaLogic family are planned until 2007.

Categories
Plumtree • BEA AquaLogic Interaction • Oracle WebCenter Interaction

Official transition date/time

I heard from someone on the inside that at noon on Thursday, October 20th, Plumtree officially becomes the AquaLogic devision of BEA.