PMI Certified Project Manager,
Java/J2EE, SOA, IBM WebSphere Portal, Open Source Portal and Application Servers
North Bay Area, CA

PMP Preparation The Easy Way

If you are only interested in PMP Formula sheet, click here


Some useful Mac Softwares

  • 1Password: encrypted password/web form/banking info product that reads RoboForm data (roboform is a similar tool for Windows)
  • Gantt Project: A very free and simple MS Project clone and even exports to Project format.  (also runs on Windows.)
  • Growl: provides notifications from various applications
  • KeyFixer: makes your extended keyboard home and end keys work like Windows home and end keys
  • Mail Unread Menu: provides menu bar notification of new OS X mail
  • OmniFocus: Great task management tool that integrates with iCalendar
  • OmniGraffle: Visio like product for Mac
  • OmniOutliner: Note taking/outlining too
  • Papers: Tool for archiving/annotating PDF documents with links to ACM digital library
  • Saft:  Adds “full screen” (among other) features to Safari
  • Synergy: Allows you share a mouse and keyboard between a PC and a MAC
  • Widemail: Program that moves Apple Mail’s preview window to the side to take advantage of widescreen monitors
  • Witch: allows you to alt-tab between open windows (similar to Microsoft Windows)
  • QuickSilver for mac
  • Adium - chat
  • iTerm - better than terminal
  • AppDelete
  • Aptana Studio - Ajax + js + css dev
  • Cyberduck - ftp
  • GetTube - download youtube photos as mp3 or avi

Outlook vs. Entourage

It’s been a while now that I’ve become a proud Mac user. I totally love my Mac; however there are few essential softwares that don’t really deliver upto the mark (or as they do on Windows) which makes me retrurn to my Windows VMImage. Entourage is one of them!

Here are the issues I found with Entourage:

  • Although the UI has some useful Mac only features (MyDay and projects), it’s generally inferior to Outlook in just about every way
  • Tasks in Entourage don’t synch with Outlook
  • Only some contacts in Entourage sync with Exchange (distribution lists do not).  See this link for more info.
  • Calendar invites in Entourage don’t show up on your calendar until you accept them
  • Calendar invites don’t let you know if you have a conflict or not
  • Calendar labels/categories from Outlook don’t carry over
  • I’m sure there are many, many more issues, but I gave up before I found them all

The word is that, more Windows equivalent features will be added in future releases of Entourage. Fingers Xed!


How to generate a SSL Private Key File

The openssl toolkit is used to generate an RSA Private Key and CSR (Certificate Signing Request). It can also be used to generate self-signed certificates which can be used for testing purposes or internal usage. The first step is to create your RSA Private Key. This key is a 1024 bit RSA key which is encrypted using Triple-DES and stored in a PEM format so that it is readable as ASCII text. The following command generates the private key file:
openssl genrsa -des3 -out <keyname> 1024  
Dos prompt will display following information:
—————————————————————
Generating RSA private key, 1024 bit long modulus
…………………………………………………++++++++++++
e is 65537 (0×10001)
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:
————————————————————— 
You can enter any PEM pass phrase (password). This will require to enter when you create a Self Signed Certificate.


JBoss WSDL Consumption using wsconsume

If you have a valid WSDL URL and need to invoke web service method(s), here is what I compiled in order to consume a WSDL in JBoss environment.

  1. Use “wsconsume” utility supplied by JBoss WS (available under <JBoss Install Dir>/bin) to generate necessary glue code and stubs/interfaces.
  2. Type-in following command on the command prompt. Make sure that you have working WSDL URL before executing following command: wsconsume -k http://myhost.com:8080/search/searchservice?wsdl
  3. The “-k” option provided to the utility, wsconsume, generates respective Java source files from WSDL URL for your reference.
  4. The “wsconsume” utility compiles all the Java files extracted out of WSDL and create respective classes.
  5. You will need to include generated classes in your classpath when you compile the client
  6. Also, you will need to include the classes in the final JAR file for the client.
  7. If you develop the service and the client on the same machine, make sure that the client does not have visibility to the files that make up the Web service. If both are available to the compiler or the runtime, the wrong one might be used.
  8. Once you have the interfaces, you can write the client.  
  9. The client is nothing but a Java class that you are going to use to invoke web service method(s) to receive and store the response from it.
  10. There are three important steps in order to code a web service client: (I’ll attach a client code screen shot for the reference shortly)
    1. Create the service
    2. Obtain the service endpoint
    3. Invoke the service method
  11. In order to successfully compile and run the web service client, make sure you have following JAR files in your classpath:
    1. jaxb-api.jar
    2. jaxb-impl.jar
    3. jaxb-xjc.jar
    4. jboss-jaxrpc.jar
    5. jboss-jaxws.jar

At the end, you’ll not find much difference between using a local library of classes in a JAR and using a Web service. The stubs or interfaces and the JAX-WS implementation within JBoss WS handle all of the plumbing code, enabling you to concentrate on implementing a client code which is nothing but a starting point to implement your specific business logic.


Installing JBoss Portal 2.6.4

I recently happened to work on Open Source Portal Server, JBoss. If it’s your first shot at JBoss Portal Server, this post will help you get started with JBoss Portal server installation – from nothing to make it working on your workstation.

If you are interested in getting it work with JSF, please post me a comment and I’ll be more than happy to help you.

1. Verify JDK 1.5+ Is Working

The JBoss Portal bundle contains everything needed to execute JBoss Portal with the exception of Java itself. The JBoss Application Server in the JBoss Portal bundle requires either JDK 1.5 or JDK 1.4.

Make sure to have JDK installed on your development environment and JAVA_HOME is set into the environment variable. To verify,

• open up the DOS Command prompt by clicking on Window’s Start – All Programs – Accessories – Command Prompt
• type - java –version and hit return key

If you see the Java version is less than 1.4 please consider updating your JDK to 1.5. If there is an error running “java -version” command, it is quite possible that either you may not have JAVA_HOME set properly or you don’t have JDK installed at all.  To install JDK please see next bullet point.

2. JDK 1.5+ Installation (Optional)

If you do not have JDK 1.4 or 1.5 on your development machine that JBoss Portal will be running on, please download it from here: http://java.sun.com/javase/downloads/index_jdk5.jsp

Once you download and install JDK, please set your JAVA_HOME into Environment variable. To test whether installation was successful please follow previous step.

3. JBoss 2.6.4 Installation

Once you have Java (JDK) installed, you are ready to download the JBoss Portal bundle. The following link has the list of downloads for JBoss Portal: http://labs.jboss.com/portal/jbossportal/download
 
Download the “JBoss Portal + JBoss AS” bundle by clicking the “Download” link on the right of the page. From here, you will need to unzip it to your machine (Note: If you do not have a ZIP utility, please go to this link to get it: http://sourceforge.net/projects/sevenzip).

Once you have unzipped it, you should have a directory structure with the following folders under, jboss-portal-2.6.4:

• bin -  Contains the startup/shutdown commands for the JBoss Portal
• client -  Contains client libraries
• docs -  Contains documentation for the JBoss Portal
• lib -  Contains libraries
• server -  Contains JBoss Application Server configuration and the jboss-portal.sar file in the “deploy” directory

4. Starting JBoss Portal

Go to the bin directory and double click on the run.sh (or run.bat). A command window should come up displaying the startup messages for JBoss Portal.

Note: If the database tables do not exist, you may see a lot of messages the first time the portal runs and it creates the tables. This is not an error.

Now, bring up your web browser and enter following URL: http://localhost:8080/portal. You should see the default page for JBoss Portal. Enjoy and haffun!


WebSphere Portlet Factory (WPF)

It’s been couple of months now that I’ve started looking into Websphere Portlet Factory (WPF). My previous experience of developing portlets is using JSF, Struts, Hibernate and SPRING with the help of Rational Application Developer (RAD). While it’s true that Portlet development using these open source technologies give you more control on the low level programming artifacts, WPF is much simpler to get started with (with minimal Jave/J2EE knowledge), for developing portlets.

I could build a simple portlet application to display client’s sales performance data with fancy graphs and beautiful user interface within a matter of few minutes. Basically a few builders in a portlet factory model would do the job. WPF provides standard view and displays all the fields in the document. It would take more work to customize the application per various requirements. Definitely, there are multiple ways to integrate custom Java code, for example, JSPs, Java Classes, Beans etc, into WPF. A set of builders help you integrate customized implementations. And when it comes to integrating customized Java pieces, I would say some basic Java knowledge is required.

I’m going to spend some more time learning WPF. Definitely it is much easier to learn WPF than building portlets in RAD using Open Source technologies. I feel, it’s just that you need some patience as the online documentation for WPF is not at par yet. I’ll update all my experiences and findings pretty soon. Stay tuned!


Do I smell a victory here?

Good luck, Team India. No matter, you win it or loose it from here on, you’re gonna be a part of a new record! One good thing that has happened though - Zaheer is injured and can’t do any damage offering flurry of runs at this crucial time (It’s sad though he is injured and I feel for him… but looking back at his record in the world cup and other crucial games, he is unfit for such a game…just my opinion! There could be many more ppl who agree.).  Anyways, what a series so far! All the best Irfan, RP, Ishant and Jumbo! You can do it…yet again!


Oracle’s WebLogic occupation

So, is it a threat to IBM’s long standing Portal practice?

It’s good news to all loyal Oracle and WebLogic customers (and for developers too for that matter). Oracle can now go head to head with other companies such as IBM and SAP in offering SOA infrastructures to the largest enterprises. BEA AquaLogic provides a unified, agile platform for creating and managing business processes, portals, collaborative communities, and composite applications. It opens new channels of collaboration within and across organizational boundaries, so business can grow with the flow. Now, with the support from in-house giant relational database solution, they CAN walk a mile ahead of IBM selling their portal suite of products.

Should I be worried being an IBM Portal follower? Hhhmm, not really, I don’t think so.


Ozumo – Taste of Nirvana!

Gazing at the beautiful panoramic bay view from the back-end, long queue of few Maserati, BMWs, Mercedes and likes on the front door, we stepped into this unknown (unknown to us of course) upscale Japanese restaurant in downtown San Francisco for a Tuesday night team dinner.

The place was surprisingly crowded for a Tuesday night. Good that we had a reservation for six of us. Ozumo’s interior was a unique combination of sleek and contemporary. The layout was such that various spaces had contrasting characteristics to a stunning effect.

While we were waiting for other guys to join us, Michael, Don, Ravi and Digant ordered drinks to start with. I’m a moody drinker and wasn’t feeling like drinking anything but plain water.

We all thought it would be like any other team dinner until we realized that we were so close to Nirvana when we were done feasting at Ozumo! We were unaware of the fact that Ozumo is famous for its melt-in-your-mouth sushi.

All that we ordered apart from traditional Japanese sushi, had integrating elements of French cuisine and pristine ingredients to such a level that my mouth was salivating even after eight hours of deep sleep when I got up in the morning!

(A family order of Toto – Tuna belly, Maguro – Tuna, Totate – Scallops, Edamame Soy Beans, Gindara (Black Codd) was a finest selection of dishes. The dessert menu was mind blowing. Yuzu crème brulee, warm choco-azuki mochi and sufle. While brulee was great, sufle stole the entire show on desert menu.)