Posted by
Stacy Weng on January 21, 2009
The Obama administration is marked by a promise of Change. That Change starts with the new WhiteHouse.gov. Just like his campaign strategies, Obama is incorporating Web 2.0 into how business will be conducted in the White House. Macon Phillips, the newly appointed Director of New Media for the White House, is steering WhiteHouse.gov in a whole new direction, one that centers around, and puts citizens first.
According to Phillips’ blog, their initial new media efforts will center around three priorities: communication, transparency, and participation, which will be conducted through Web 2.0 strategies.
Lines of communication are being opened through blogs, and government business will be made public for Americans to review.
“Citizen participation will be a priority for the Administration, and the internet will play an important role in that. One significant addition to WhiteHouse.gov reflects a campaign promise from the President: we will publish all non-emergency legislation to the website for five days, and allow the public to review and comment before the President signs it.”
This citizencentric methodology shows a movement towards what this government was fundamentally created for…. a goverment of the people, by the people, for the people.
This Change is off to a promising start…….
Posted by
Alaaeldin El-Nattar on January 13, 2009
If you’re a web application developer you know that today’s market demands that web applications make use of Web 2.0 features and a rich user experience on the web is becoming more and more the “expectation” rather than a nice-to-have. The applications I’ve design recently adopt some powerful development frameworks like JBoss Seam and rich JSF component suites like RichFaces and ICEFaces and the results have been quite good. So what about portals? Do the same expectations exist? The answer is yes, and the question on many portlet developers’ minds is; “can I build rich Web 2.0 portlets, and if so, what are the tools at my disposal?”
Well, we know that for quite some time now we have been able to build portlets that are AJAXable (if that is really a word) using RichFaces, ICEFaces and other JSF component suites. What didn’t use to be doable (not easily anyway) was to have those rich portlets communicate with one another in a standard way that is portal agnostic. Some might say “who cares?” or “why would you want them to communicate in the first place?”
Imagine this; what if you had a series of rich Web 2.0 portlets that are nothing more than wrappers of one or more rich UI components that did something and did it quite well. For example, let’s say I decided to build a CMS client using a data table to display contents of a folder, a tree sructure to represent an Explorer like view of folders, and a preview panel to preview the selected document. Let’s say that I also wanted to build a search capability within this client. I can do all this in a web app. I can also do all this in a portlet. But wouldn’t it be nice (and powerful) if I was able to break each one of these UI components into different portlets that communicate with one another? Wouldn’t it be even nicer if each one of those portlets was a standalone portlet with a published interface describing how to make it do things? Let’s say you see the potential in this approach to building portlets, how can it be done?
JSR 286 defines how portlets should communicate, and Liferay portal is one of the leading open source portals that support JSR 286. For the sake of the point I’m trying to make in this post I’ll just mention that JSR 286 allows portlets to communicate using events that are triggered and consumed during the portlet lifecycle. So if I had a data table portlet that listened on a predefined event and expected certain arguments to tell it what to do, I can build it to be independant of who is using it. Just give it a list and it will display it. Using the same approach I can have a tree and a preview panel. Now here’s the kicker; I could then use another instance of the same data table portlet to display search results in another portal page or even on the same page. Now your portlets are highly reusable.
A visual representation could look something like this:

In this case My Folders is one portlet and Folder Contents is another. The same Folder Contents portlet could be used to show search results. This (I believe) is a powerful concept that can be used in a variety of creative and intuitive ways to provide a new breed of reusable portlets that are - in IoC terms - unaware of what they will be used for.
Posted by
Alaaeldin El-Nattar on January 12, 2009
Recently I needed one of my JSF portlets running in JBoss Portal to know some information about itself. The information I needed was:
- Window name
- Page name
- Portal name
Surprisingly it was not easy to figure out how to do this. Not because it’s not feasible, it’s just that the information was simply not there for the common developer to find (forums, Google, etc.). So I thought it would be worthwhile to share my findings.
This is what you need to do:
// Get render request object that contains needed info
JBossRenderRequest req =
(JBossRenderRequest) FacesContext.getCurrentInstance()
.getExternalContext().getRequest();
// Extract window name for this portlet
String windowName = req.getPortalNode().getName();
// Extract page name for this window
String pageName = req.getPortalNode().getParent().getName();
// Extract portal name
String portalName = null;
PortalNode portalNode = req.getPortalNode();
PortalNode rootNode = req.getPortalNode().getRoot();
while (true) {
portalNode = portalNode.getParent();
if (!rootNode.equals(portalNode)) {
portalName = portalNode.getName();
} else {
break;
}
}
Posted by
Stacy Weng on January 02, 2009
Looking back on 2008, we’ve seen several trends in the web space. The web has transformed from a place to look for information to a place to share information. Social networking tools and applications exploded, with the release of the Facebook Platform and Google’s OpenSocial. Enterprises also saw an increase in the adoption of collaboration and social networking tools such as blogs, wikis, and LinkedIn. Mobile web usage became increasing mainstream with Apple’s iPhone 3G and Google’s Android. Open source software gained popularity as the economy took a downturn.
So what’s in store for 2009?
Here are just a few things to watch out for in the coming year…
- Semantic web - what good is information if it can’t be organized? contextual web utilizing semantic technologies will be huge
- Web 2.x - in preparation for Web 3.0, the new wave of “intelligent web”, we will see an increased adoption of technologies such as semantic web, OpenID, and SaaS to name a few
- Cloud computing - will cloud computing gain enough momentum to be the next big thing?
- Facebook domination continues
- Open source continues to gain popularity within the enterprise
- Friend synchronization tools - to help ease the information overload from the social media revolution