Thursday, December 28, 2006

Reviewing the W3 basics

Some nice basic tutorials at http://www.w3schools.com/. Each tutorial only takes 10-15 minutes and they provide a quiz at the end. I found the XSL-FO and XLink/XPointer information to be a good introduction. Only bad thing about the site is that it seems to favor .NET (in ads and some tutorial paths) over Java.

Monday, December 25, 2006

Liferay vs Stringbeans open source portals

Took a quick peek today at open source enterprise portals Liferay 4.2 and Stringbeans 3.2. Also wanted to try out uPortal 2.5.3 quick start but had no success (page not found). Below are my 5 minute reactions (5 minutes to download the software bundled with tomcat, start it up, log on and poke around).

Liferay 4.2 impressions

Very polished looking with nice animations when loading portlets (showing off the multi-threaded rendering). Very disappointed with user management features and lack of portlet configuration support in the admin portlets. When assigning roles to portlets or users it was just free-form typing (i.e., you are given an edit box and asked to type in each role name on a new line). Web services were also not readily visible while logged in as an administrator.

Stringbeans 3.2 impressions

While less polished looking (Liferay seems to have better graphic artists on the project) I was impressed with the admin portlets. You can configure new portlets online without editing the various xml files that are normally involved in plumbing a portlet. It also had nice stats portlets that displayed portlet and web service usage. Besides the ability to configure portlets online it also had a portlet dedicated to web services, though I didn't test any out at least you can tell they put some thought into it. It was going good until I tried to add multiple roles to a user.

Summary...

I realize that in an enterprise setting there is probably (has to be) some way to hook up these portals to a directory, but I found their lack of built-in user administration features a show stopper. I also did a quick 5 minute review of the source code for each and in my uneducated opinion found the Stringbeans source to be easier to read and seemed to make more logical sense in terms of classes/interfaces used. For now, if I wanted to setup a quick portlet test or test WSRP production/consumption I think I'd go with Stringbeans.

I also wanted to try out the open source Sun Java portal server, but thought otherwise when the system requirements listed 1.5Gb as the required RAM. Maybe when I have time for a 5-day instead of 5-minute test...(why can't BEA, Sun, Oracle and IBM put quick start packages together).

Sunday, December 24, 2006

JSR-168 portlet and PeopleTools 8.46

Today I tried installing an open source JSR-168 portlet in our PeopleTools 8.46 development environment just to get a feel for how much work it takes to integrate a standards based portlet with PeopleSoft. I used the NotepadPortlet from the Java.net repo of free portlets:

https://portlet-repository.dev.java.net/public/Portlets.html

First hurdle was that it required a CVS client so I had to download WinCVS which is a nice GUI frontend for CVSNT (but SVN still beats CVS hands down). Second hurdle was that I wasn't able to do "maven war" on the project to build because it failed to download some jar dependencies. I personally don't like Maven (much prefer plain old Ant) so I just fired up JDeveloper to build the war file. Both issues of course were due strictly to the project I was trying to use and had nothing to do with PeopleSoft, but does illustrate that there are still many different ways in which software is distributed and each can present its own challenges even before you start the real work.

The installation in our PIA environment running WebLogic 8.1 was pretty straightforward following the PeopleBooks steps and the delivered helloportletapp example. There are several xml files that need to be created/edited, so it's pretty old-school compared to most PeopleTools setup.

For now, I think my feeling is that writing JSR-168 portlets is probably best when developing a general utility application that you may at some point want to use in another portal project. The drawbacks I see currently to using portlets (besides the required knowledge of Java) are with database access and security. I'm still pretty fuzzy on the persistence mechanism that portlets use and how best to integrate security into portlet applications. It's kind of cool to be able to write a portlet and run it on any compliant portal container, but for now PeopleTools still offers the best RAD environment for developing applications.

Now to produce my newly added portlet using WSRP...

Thursday, December 21, 2006

Reporting with REST webservices

The Collegenet R25 application our campus runs now provides REST style webservices that look promising for developing reports. XML.com has a brief but decent article on REST Reporting that I think provides a decent overview.

I like the idea of using standard XML along with XSLT in order to produce web-based reports and is definitely an improvement over non-standard reporting tools like Crystal Reports. The best is that XSLT can be applied in other areas so learning it will be applicable in a wider range of applications (as opposed to being a Crystal Reports guru). Found a decent XSLT tutorial article also at XML.com.

Wednesday, December 20, 2006

Program to the extreme!

One philosophy that I'm beginning to really appreciate from Extreme Programming is to not try to code features not requested. You still have to code what's required and have to code in a way that will be flexible enough to handle future requirements, but don't try to anticipate and code features that aren't asked for. It's still sometimes very tempting to throw in a cool feature not requested but that you know would be fun to develop. But I sometimes find that one cool feature eats up the bulk of development time and takes away from time that could be spent testing the features requested.

That's where test-driven development comes it, you should code only so you can test. If you don't have good mock data to test with in an environment you will never be able to validate how well your coding is going. So I've been trying to practice coding just enough so I have something to test and repeating that process until the development is complete.

Oracle SQL Developer 1.1 out of beta

This happened last Friday, but we didn't have the blog up yet, so.....

Get the software here

If you haven't heard of this software and use Oracle products, think of it like Toad, but free.

Making Firefox more like Opera (what!?)

After playing around a little with the latest version of Opera (it was a weak moment) I decided I had to have an extension that would do the tab previews. After fumbling around awhile, I came upon Tab Preview (http://ted.mielczarek.org/code/mozilla/tabpreview/). This extension will display a quick thumbnail of what is on a tab when you hover your cursor over it. While searching for that extension, I also came upon Colorful Tabs (https://addons.mozilla.org/firefox/1368/), another cool extension that breaks up the monotony of the Firefox color scheme. I know, I know, why not theme the browser? I have yet to find one I like and that is consistent enough across the tabs and toolbars to continue to use. The one that I do like a little is macfoxIIgraphite, but it is a Mac theme and I will get tarred and feathered by my fellow contributors for using that theme.

Tuesday, December 19, 2006

Document Conversion: Open Source saves the day

I am currently working on a project that requires converting documents in various formats (but mostly MS Word) to PDF. I reviewed several commercial offerings, but most were several thousand dollars.

Open Office 2.1 and the JOOConverter open source projects saved the day. While I was hoping to accomplish the conversion completely in Java without having to run an extra service somewhere, the cost savings were well worth it. The JOOConverter project walks you through the steps of setting up OpenOffice to run as a service and provide Java classes that allow you to interact with the service either locally or via TCP. And best of all it delivered a quasi-webservice that would run on any servlet container (such as tomcat) as well as a webapp that can be deployed to allow users to upload a file and convert it to various formats.

More on my document conversion project later...