Sciology = Science + Technology

Religious Programming (Eclipse; AJAX; SOA; Mashups; XP + SCRUM).

Archive for March, 2008

My JDeveloper Training

Posted by sureshkrishna on March 27, 2008

I have been undergoing the Oracle ADF and JDeveloper training for a future project. It was pretty hard for me to accept that i am undergoing this training considering my strong belief in eclipse-as-a-platform. I started the training by asking, if all/many of the JDeveloper features are available in Eclipse and soon realized that JDeveloper does have a strong set of database feature set.

There are some discrete set of database features that are available for Eclipse. These 2 projects do provide good plugins to improve the productivity of the database developer on Eclipse.

OK, but dont feel happy about it. For the set of features that JDeveloper has, its difficult to compare the feature set with Eclipse. In my view we should not even compare. At the end of the training, i am sort of started believing that its apt to call JDeveloper as Integrated Services Environment (ISE). Its has many things inside. For me it looked like the concepts of Application, Project, Module, Entity Object and View Objects are tightly integrated with JDeveloper. I cant imagine to build a complex application “-which is tightly integrated with DataBase and ADF-” without JDeveloper.

Of-course i “think” its possible to develop some decent ADF applciations without JDeveloper. We can still develop the UI with the help of the ADF Faces and JSF in Eclipse, but there is no support (as i know) of ADF BusinessComponents in Eclipse till date (03/27/2008). I guess people can still develop some good Oracle ADF applications with the help of EJB3 and JPA stuff.

In the end JDeveloper does many things with Database/Class Diagrams, ADF Components, Business Rules, EJB, Toplink, WebServices, Database Connection, SOA Stuff (not sure what exactly it does with SOA), JSP, JSF, Struts and much more. Some of the features can be pulled into the eclipse and one can use pulse to do this.

As an Eclipse lover, i am just waiting for a good ADF plugin into the Eclipse world. ahem….

Posted in Eclipse, JDeveloper, Java | Tagged: , , | 1 Comment »

EclipseCon 2008 - I loved it.

Posted by sureshkrishna on March 21, 2008

EclipseCon needs no introduction. Its been happening from past 4 years and each year it has a lot of interesting news and updates. I was very excited to meet my ex-colleagues from Germany. Its been refreshing for me to talk to these guys [Peter Kirschner (Robert Bosch, Germany), Stephan Eberle (Geensys, France), Frank Gerhardt (Gerhardt Informatics, Germany)] after a long time. I got to meet Jens Eckles from Pulse, looks like they released a new version, i need to check it out. Its one of good products i like for eclipse users. After a long time i got to meet Ralph Mueller from Eclipse foundation and also Ed Merks from EMF project.

This time there are very good sessions about the OSGi, Equinox, RAP, Mylyn, EclipseLink and Jazz. I am personally very impressed with Jazz. I attended the Jazz workshop and looked like a perfect fit for many of the sw engineering problems. I immediately registered and would want to try this out in the next few months. When i was working with Robert Bosch, we were trying to solve similar problems Jazz is trying to solve.

(I heard that GM and Ford are doing some nice and cool things with Eclipse. Hummmm…. i think i am missing this action.)

I had great time presenting my sessions and the audience response was great.

I had lot of fun all these 4 days. From tomorrow the reality comes,  need to go to Office :)

Anyway, i had lot of great things to take back from EclipseCon 2008. Hoping to see all of you in the next year with some more great stuff.

Posted in Uncategorized | Tagged: , , , | 1 Comment »

JFace Dialogs : which one is right for you ?

Posted by sureshkrishna on March 15, 2008

JFace framework of Eclipse provides many standard and useful dialogs and a framework to build custom dialogs and wizards. When the standard dialogs seems to be too simple for your plugin or RCP developement, one can extend the standard dialogs to suite their own needs. The aim of this article is to provide example oriented approach to dialogs and see in depth of all frequently used dialogs. I am hoping to have this article as the point of reference for many developers to get Dialogs overview.

Dialogs are modal UI components which would do some user interaction tasks. Traditionally Dialogs are used to enter a simple input, to select a choice from a list, to select multiple nodes from a tree, to inform about a success/failure from an operation, to input confirmations from the user, etc…

Eclipse provides standard dialogs from two different frameworks, SWT provides very basic dialogs like FontDialog, ColorDialog, DirectoryDialog, FileDialog and FontDialog. These SWT dialogs are coming out of the SWT as they are very basic and has close connection to the OS. All these Dialogs are available from org.eclipse.swt.widgets package from the org.eclipse.swt.<platform>.jar.

JFace provides a variety of Dialogs for the implementers to extend or to use them directly. Its interesting to look into variety of dialogs provided by JFace and i would leave the usage to your imagination and context. Rest of this article is mostly code, screen shots and less of textual description. I tried to keep the short, sweet and simple.

FileDialog: This is a SWT Dialog but worth mentioning under the general concept of the Dialogs.

“Instances of this class allow the user to navigate the file system and select or enter a file name. Note: Only one of the styles SAVE and OPEN may be specified.

IMPORTANT: This class is intended to be subclassed <em>only</em> within the SWT implementation.”

File Dialog

Information Dialogs: These dialogs are used to inform user about some event and take some necessary action. There are different Dialogs under this category.

ErrorDialog : A dialog to display one or more errors to the user, as contained in an IStatus object. If an error contains additional detailed information then a Details button is automatically supplied, which shows or hides an error details viewer when pressed by the user.

Error Dialog

MessageDialog : “A dialog for showing messages to the user. This concrete dialog class can be instantiated as is, or further subclassed as required.

Information Dialog
Question Dialog

InputDialog: This Dialog is used for a very general paradigm to process some input from the user. Generally its not recommended to use this for input of complex data and for large number of input fields.

InputDialog

PrinterDialog: “Instances of this class allow the user to select a printer and various print-related parameters prior to starting a print job. IMPORTANT: This class is intended to be subclassed only within the SWT implementation.

Print Dialog

ProgressMonitorDialog: This is a very important Dialog component most of the applications would use. This Dialog is used to represent any time consuming task or to provide a long running workspace task to the user. Proper care must be taken to show accurate information of progress information to the user.

Progress Dialog

TitleAreaDialog: “A dialog that has a title area for displaying a title and an image as well as a common area for displaying a description, a message, or an error message. This dialog class may be subclassed.

This is the class that i often use for “About MyCompany” kind of dialogs.

TitleArea Dialog

ElementListSelectionDialog:A class to select elements out of a list of elements.

ElementListSelectionDialog

ListDialog:A dialog that prompts for one element out of a list of elements. Uses IStructuredContentProvider to provide the elements and ILabelProvider to provide their labels.

ListDialog

TwoPaneElementSelector:A list selection dialog with two panes. Duplicated entries will be folded together and are displayed in the lower pane (qualifier).”

TwoPaneElementDialog

List SelectionDialog:A standard dialog which solicits a list of selections from the user. This class is configured with an arbitrary data model represented by content and label provider objects. The getResult method returns the selected elements.

ListSelectionDialog

ElementTreeSelectionDialog:A dialog class to select elements out of a tree structure.

ElementTreeSelectionDialog

CheckedTreeSelectionDialog: “A dialog class to select elements out of a tree structure”

CheckedTreeSelectionDialog

Some Notes :

  • YesNoCancelListSelectionDialog has been Deprecated in 3.3 of Eclipse.
  • RCP Product extensions and custmizations can be done via AboutDialogs.
    • AboutDialog
    • AboutFeaturesDialog
    • AboutPluginsDialog
    • AboutSystemDialog

    Note : Above Dialogs are internal dialogs and not APIs. They are mentioned only as a reference.

  • PrintDialog is intended to be sub-classes by the clients and use it for identifying the printers and other parameters for print job.
  • SaveAsDialog is not available in Eclipse 3.3

Conclusion: Dialogs are a great way to present simple data and receive user input. Its very important to understand several Dialogs provided by JFace and use them appropriately.

References:

Posted in 343278, Eclipse, Plugin, RCP, Uncategorized | Tagged: , , , | 2 Comments »

Videos as Next generation documentation

Posted by sureshkrishna on March 6, 2008

Have you ever spent hours and hours, reading a document and to get some help to accomplish a simple task. I am sure many of us did this. Many of the product and training material that we have are predominantly in the following category.

  • Word Documents
  • PDF Documents
  • Post Script
  • CHM File
  • HTML Files
  • and others (which i have not used)

We normally take a printout of the document to know the system, functionality, how-to, etc… At the end of the 2-3 hour read, we are still not sure how to accomplish a task and what are the new features in the product. With one of my previous client that i worked with, we did a lot of videos, which seemed to be a very effective way and customers love them. Taking videos of some speaker/presentation and some special demos have been in the industry for a long time. Making a video can be particularly suitable for the following scenarios.

  • Task focused training material for a larger audience
  • Showcase the preview of your product
  • Complex installation instructions
  • Knowledge transfer to colleagues (in a geographically-distributed environment)

Following are some of the practical benefits for the company and the end-user.

Product Company :

  • Its easy. Instead of spending the $s on the huge documentation, its easy to do a professional quality screen casts.
  • Many corporate users are task focused. Its easy to make small screen casts, focused on a single task.
  • With the Audio and Video built in, its a value addition in the “Documentation” process.
  • Its a pain to make the “screen shots” of the software and then describe each and every step that you would want to do. Screen casts makes it easy as its simple to perceive and understand.
  • Installation of a product could be tedious and error prone, if not done carefully. When there is a screen cast describing the installation steps, its not easy to go wrong.

Customer / End user :

  • Reading material to find out a specific information is time taking. Task focused screen casts can reduce this time.
  • No one would like to repeat installations. Its no fun. Screen casts can avoid this.
  • Its easy to grasp certain steps to complete a task by LOOKING at a screen cast rather than reading documents.

Its very important to differentiate the Podcasts, Webinars and Documentation Videos (Podcasts and Webinars are NOT documentation videos). This might not be suitable for the source code and API documentation.

Following are some of the companies that have a very good documentation via videos.

I am sure some of the above mentioned points are applicable for your organization too. I would be glad to see your comments and experiences on “Videos as Next generation documentation”.

Posted in Uncategorized | Tagged: , , | 6 Comments »

Wikis for your Organization

Posted by sureshkrishna on March 4, 2008

I have been trying to select a Wiki for our business group and i came across this cool site. I worked with MoinMoin and MediaWiki and this site can compare any/all of available wiki systems.

http://www.wikimatrix.org/compare/MediaWiki+MoinMoin

http://www.wikimatrix.org/compare/JSPWiki+MoinMoin+PhpWiki

If you want to find wikis that best suits, you can start a…

http://www.wikimatrix.org/wizard.php

Hope this site would be helpful for everyone searching for Wikis.

Posted in Uncategorized | Tagged: , , | 1 Comment »

Eclipse Help vs Cheat Sheets ?

Posted by sureshkrishna on March 1, 2008

Did you ever got into such an argument from your boss or colleague ? During the documentation time, many categorize the tasks/topics into either of Eclipse Help Content or Cheat Sheets. Depending on the task, domain and business at hand, its very tricky to decide if a topic falls into the category of Cheat Sheet or Help. Oops… i am not sure, if cheat sheets are used by many organizations, but i did use them in couple of projects and customers loved them. Its been quite easy to decide what goes into Cheat Sheets, if we follow a task based approach.

Following are few hints and tips, that i use to decide when to use Help and when to use Cheat Sheets.

Cheat Sheets :

  • Let the user accomplish a TASK using a cheat sheet.
  • Cheat sheet assists the user in a step-by-step manner.
  • When there is some Dynamic Data to be filled-in, use cheat sheet.
  • Cheat sheet is more appropriate to accomplishing a task might take…
    • Invoking a Wizard
    • Filling the Data in Multiple Wizard Pages
    • Use a search criteria to get data from DataBase, do data/wizard validations
    • Invoking a View, etc…

Help Content :

  • Explain the system/modules with the help of Help
  • Describe the specific Views, Perspectives, etc… with in Help
  • Describe the content, allowed values of a Wizard or Action with the help of Help
  • DO NOT describe steps to accomplish a complex task in Help (there are high chances that users might ignore it). Instead, do it in Cheat Sheet.

When we follow the above hints, i guess there is no argument on what to use when. I hope many of you would have used help and cheat sheets in combination and i would love to hear your experiences.

Posted in Eclipse | Tagged: , , | No Comments »