Auto-generate Flow Chart from Java/C++ Codes:

Raptor Flowchart Tutorial For Beginners

Thursday, May 15, 2014

Thinking Inside The Box - The Netscape Example




I absolutely thought we were a software company - we build software and put it in boxes, and we sell it. Opps Wrong. He was so busy focusing on technology for the sake of technology that he never saw the obvious opportunity to develop Netscape's web browsing business.

Extracted from : The Wisdom of Failure: How to Learn the Tough Leadership Lessons

Wednesday, May 14, 2014

Installing WebSphere Developer Tools

copied from: https://www.ibmdw.net/wasdev/docs/install-websphere-developer-tools-8-5-5-1-release/
--

Installing V8.5.5.1 of WebSphere Developer Tools

You can install the developer tools into an existing Eclipse workbench from downloaded installations files or from Eclipse Marketplace. You can also update IBM WebSphere Application Server Developer Tools for Eclipse installed into an existing Eclipse workbench.
Ensure that your Eclipse workbench meets one the following requirements:

Installing from a remote repository

Use this installation method to use your workbench to locate and install the installation files for WebSphere Application Server Developer Tools for Eclipse V8.5.5.1 from Eclipse Marketplace. The procedure is defined in the help section Install from a remote repository.

Installing from downloaded installation files

Use the following installation method if you want to download the installation files for WebSphere Application Server Developer Tools for Eclipse and then install the product into an existing Eclipse workbench. To install the product while not connected to the internet, you must download additional prerequisite Eclipse files.

Before you begin

Important: If your computer will not be connected to the Internet during the installation, then you must download and install prerequisite Eclipse files before you install WebSphere Application Server Developer Tools for Eclipse.
  1. Download the following prerequisite files depending on your version of Eclipse IDE for Java EE Developers
  2. For each compressed file that you downloaded in the previous step, extract the contents of the file into the Eclipse directory of your Eclipse IDE for Java EE Developers. Ensure that you preserve the structure of the extracted contents.
    Tip: You can overwrite any files that have the same name.
    For example, if your Eclipse directory is located in the file path C:\eclipse-jee-kepler-SR1-win32-x86_64\ , then you must extract the contents of each file into the directory C:\eclipse-jee-kepler-SR1-win32-x86_64\.
    When you are finished, the extracted files will be in the existing directories of your Eclipse IDE:
    • eclipse (For example, C:\eclipse-jee-kepler-SR1-win32-x86_64\eclipse.)
    • eclipse\plugins (For example, C:\eclipse-jee-kepler-SR1-win32-x86_64\eclipse\plugins.)
    • eclipse\features (For example, C:\eclipse-jee-kepler-SR1-win32-x86_64\eclipse\features.)
  3. From a command line, restart your Eclipse IDE for Java EE Developers using the -clean option. For example, C:\eclipse-jee-kepler-SR1-win32-x86_64\eclipse\eclipse.exe -clean
Procedure
  1. Download the .zip file of IBM WebSphere Application Server Developer Tools for Eclipse to a directory on your computer. The .zip file is available at:https://www.ibmdw.net/wasdev/downloads/websphere-application-server-developer-tools-v8-5-5/.
  2. Start your Eclipse IDE for Java EE Developers workbench.
  3. Click Help > Install new software.
  4. In the Add Repository window, click Archive.
  5. Browse to the location of the .zip file of IBM WebSphere Application Server Developer Tools for Eclipse. Select the file and then click Open.
  6. In the list of results, select IBM WebSphere Application Server Developer Tools for Eclipse V8.5.5.1. If you do not want to install all features (for example, you are installing only the WebSphere Application Server V8.5 Liberty Profile Tools feature), then expand the IBM WebSphere Application Server Developer Tools for Eclipse node and select the features that you want to install.
    Tip: Ensure that you do not select IBM WebSphere Application Server Liberty Profile Server Adapter.
  7. Click Next.
  8. On the Review Licenses page, review the license text. If you agree to the terms, click “I accept the terms of the license agreement” and then click Finish. The installation process starts.
  9. When the installation process completes, restart the workbench.

Installing Eclipse Web Tools patches (Kepler SR1 only)

Patches are available for a couple of bugs in the Eclipse Web Tools Project V3.5.1. For details, see Bug 419804 & Bug 419889. Apply these patches if you are using the developer tools installed into the Kepler SR1 release of Eclipse for Java EE Developers. Download the patches from patches32x-P-3.5.1-20131023203751.zip, then apply them similar to installing prerequisite Eclipse files. See steps 1 through 3 of the “Installing from downloaded Installation files” section.
Additional Information:
--

Testing and publishing Java projects on a WebSphere server

copied from: http://pic.dhe.ibm.com/infocenter/radhelp/v8r5/index.jsp?topic=%2Fcom.ibm.websphere.wlp.nd.multiplatform.doc%2Fae%2FwdtV855overview_ga.html
--

Testing and publishing on a server

This page provides a starting point for finding information on how to integrate the workbench with a server.
You can test an application that is running on the development workbench prior to publishing the application into the directories of the server. Publishing involves copying files (application, resource files, and deployment descriptor files) to the correct location for the server to find and use them.

Overview

You can read the following topics before testing and publishing an application on a server. They provide planning overview information that may be useful if you are new to working with a server in this development environment.
Conceptual information iconResources used to test and publish on your server
Learn what is a server, server project, server runtime environment and server configuration. Learn what server resources you need to define in the workbench to communicate to a server. In addition, learn what types of servers are supported with this development workbench.
Conceptual information iconServers view
Learn how you can manage the server within the workbench.
Conceptual information iconThe WebSphere® test environment
The commonly used application server with this product is WebSphere Application Server.

Getting started

If you are already familiar with administering your application server the following topics will help you set up your workspace for integrating your application server with the workbench, and guide you through the configuration and management process.
Task information iconDefining the server runtime environments preferences
This task directs the workbench to use a specific runtime environment of an application server for compiling, testing, or running your application.
Task information iconCreating a server
This task adds a server to the Servers view.
Task information iconConfiguring servers
If you are working with a WebSphere Application Server, this task sets up options and settings between the workbench and a WebSphere Application Server.
Task information iconManaging servers
This task enables you to control a server in the Servers view, such as add a project to a server, stop and start a server and many more.
Task information iconTesting artifacts on a server
This task describes the Run on Server option available in the workbench used to test application artifacts on a server.

Web resources for learning

In addition to the information found in this infocenter, the following links provide additional learning material.
Rational® Application Developer for WebSphere Software V8 Programming Guide See Chapter 23: Cloud environment and servers configuration
--

What is WebSphere Application Server Developer Tools for Eclipse?

copied from: http://pic.dhe.ibm.com/infocenter/radhelp/v9/index.jsp?topic=%2Fcom.ibm.rad.install.doc%2Ftopics%2Ft_install_wdt.html
--

Installing WebSphere Application Server Developer Tools for Eclipse

IBM® WebSphere® Application Server Developer Tools for Eclipse is a lightweight set of tools for developing, assembling, and deploying Java™ EE, OSGi, Web 2.0, and mobile applications to WebSphere Application Server.

About this task

To install WebSphere Application Server Developer Tools for Eclipse, refer to the following topics:

What to do next

To learn more about WebSphere Application Server Liberty Profile, see The Liberty profile topic available in the Information Center for WebSphere Application Server.
--

The Great Java Application Server Debate: IBM Liberty Profile

copied from: http://zeroturnaround.com/rebellabs/the-great-java-application-server-debate-ibm-liberty-profile/
--

The Great Java Application Server Debate: IBM Liberty Profile

Update: Since this post was published, RebelLabs has completed the full version of The Great Java Application Server Debate with Tomcat, JBoss, GlassFish, Jetty and Liberty Profile. Feel free to check it out!
***
This is the first blog post of a series in which we test-drive application servers from a developer’s perspective, and give our opinion on how they perform through our developer-oriented tests. This is more of a ‘how it did’ than a ‘how-to’. We start our series with a relatively new offering from IBM, the Liberty Profile.
Caveat – Yes, I’m an ex-IBM employee (who used to work on WebSphere Application Server) but hey, ZT pays my way now, so this is an accurate, genuinely non-biased, opinionated blog post which does not take my past into consideration – True Story.

The Liberty Profile is both part of the full IBM WebSphere Application Server image and a standalone download. It’s an Application Server that targets developers needs in an environment where the full WebSphere product is not ideal or appropriate. It was first available in WebSphere Application Server v8.5, released in 2012. Let’s be fair, WebSphere Application Server hasn’t had a good image among developers in the past, due to performance, size of download and complexity reasons. In fact, it has been referred to as WebsFear in some circles in the past. The Liberty Profile set out to change that image, so let’s see how it did.

First contact – Download and Install

Usual downloads with large corporates require you to give information such as your shoe size, pet’s name and BMI in order to download, but the Liberty Profile flips this on its head quite substantially for two reasons. Firstly it offers two download options – you can just grab the runtime directly, or download the tools and get the server through your tooling, neat. The second ‘shock’ is that you don’t have to provide any information to download or install, you just need to accept the licence agreement, which we’ll talk about later. IBM have really lowered the barrier to entry here and I’m sure it will pay off for them. Well done IBM!

Read the complete Java Application Server Report where we discuss the pros and cons of App servers such as: Tomcat, Jetty, GlassFish, IBM WAS Liberty Profile and JBoss (aka WildFly):

Back to the install… As I wanted to download the tools as well, I decided to go down that route. Indigo is the suggested level of eclipse (for some reason) but Juno is also supported, so I went for the latest and ‘greatest’ version of eclipse, Juno. The tooling takes the form of an Eclipse plugin that took just over 7 minutes to install including an eclipse restart, which was all a bit boring but p2 should take a quite a bit of the blame for that (13MB content.xml file and more). Hang on… back up – The tools are an eclipse plugin. They’re now lightweight, free, sit on your existing eclipse installations and don’t require you to download and install a gazillion GB of Rational Application Developer on a development machine, which is almost the polar opposite of what a developer wants on their development machine.
Once the tools were installed and eclipse restarted I could download and install my server (41.4 MB) in just over a minute – I expect most existing WAS users are quite shocked at this, but most other lightweight appserver users are shrugging their shoulders. Either way, I’m sure you’ll agree this is great progress for a large corporate which has done things very differently in the past.

Startup performance – restart/redeploy

Note to JRebel fans – app server restarts and app redeploys are the things other people do when they want to waste their time ;o)
The Liberty Profile is constructed in a modular and dynamic way such that its runtime is constructed to suit the applications running on the server. This means if your app doesn’t use specific functionality, your runtime doesn’t load it or start it. This leads to a much faster startup time.
We need an application to test on the Liberty Profile, so we’ll try a couple in varying sizes. Firstly the petclinic application which has the spring framework, hibernate libraries, and others.
On my macbook air (spec shown below) the petclinic app took approx 15 seconds from “Run As->Run On Server” till my petclinic application was visible. This includes deployment, application server startup and initialization time. A redeploy (including reinitialization) of a change took just over 5 seconds. Not bad for a small app.
aboutthismac
Let’s now look at a bigger application. Jenkins is a 53MB web app, which I copied across to the hot deploy folder that the Libery Profile supports and the app is installed and started as soon as it sees it. From the console log, the application starts in 0.73 seconds and after 4 seconds of initialization, the app is ready to use. Pretty impressive.
[AUDIT ] CWWKZ0001I: Application jenkins started in 0.73 seconds.

Tooling support – how good is the best, how good is the worst

The Liberty Profile tools, named “IBM WebSphere Application Server Developer Tools for Eclipse” (a product name that almost needs punctuation) is only supported on the Eclipse platform. One of the things I’ve realised since leaving IBM is how many IntelliJ IDEA and NetBeans users there are out there. While IBM do want to cater to it’s own audience I do think it’s a kick in the teeth to all other developers who don’t use eclipse to force people to use the tools which IBM dictates you should use. The tools let you download and install the whole server easily, and provides feature rich development for the programming models which the Liberty Profile supports. It also provides rich editor support for server config changes in a similar style to a deployment descriptor editor which you’ve likely seen/used.
Overall the tooling is good, on Eclipse, although there were a number of times the server state was out of sync with the tooling which got annoying as there were lengthly delays in waiting for the tools to catch up, which stacked up my other user actions and made my dev environment useless. This happened more than once and is very painful as it does bring development down to it’s knees as everything is dependant on the previous task completing.
servernotresponding

Open standard’s compliance

IBM is pretty hot on compliance and standards (often more so than anything else) so it’s no surprise to see the Liberty Profile following the same path. Although version 8.5 of the Liberty Profile is not compliant with Web Profile, the latest Beta is. The Liberty Profile also supports standardised OSGi applications and allows users to create bundles and applications they can deploy and run on the server.

Ease of Config change

The Liberty Profile really does excel when you look to the config. I feel like I always want to compare the Liberty Profile to the full profile of WebSphere purely becuase parts of it are soooo much slicker and, well, generally better. This is probably more of as a result of the poor config model the full WebSphere server has, but the Liberty Profile is more than comparable to other lightweight servers out there today with config. Let’s take a look at the config we get generated from a newly created server:
 description="new server">
 
    
    
        jsp-2.2
  id="defaultHttpEndpoint" host="localhost" httpPort="9080" httpsPort="9443" />    
Let’s give existing WAS users a moment to pick up their bottom jaw… This is the only config the server has. It’s simple, to the point and uses convention over configuration. As new ‘features’ are added to this config file, they are added to the runtime dynamically, without a server restart required. ALL config for the server can go into this file, and it can optionally be split up for ease of management or sharing.

User Interface

This sucks! The Liberty Profile does not provide an administrative console to perform useful actions like updating the server config or installing/uninstalling applications etc so you’re stuck with the eclipse editor to update the server.xml, or just going in manually. There is a web app called the Liberty Profile Admin UI Tech Preview, which is a admin console beta download. I had a quick play but it has extremely basic functionality and for some reason provides it in a mobile app look and feel even on the browser, which simply isn’t good enough in todays environment when browser fronted applications can provide such a rich interface. All in all, the Tech Preview feels more like a very light on features status app which you might want on your mobile device, rather than any useful kind of usable management console.

Config Change & Turnaround time

WebSphere users who are used to multiple and large config files scattered across numerous directories will be very pleasantly surprised with the new config model, not just being a single file, but so small, as mentioned earlier. The dynamic runtime allows the server.xml file to be altered, reloaded on the fly (JRebel likey) and visible to the application instantly.

Feature richness

The lack of EJB and CDI support in Version 8.5 is very noticeable, as well as the lack of inbuilt messaging. As a result the Liberty profile doesn’t support the full Web Profile technologies, but interestingly additional effort has been put into OSGi application support instead. I think many would have preferred EJB and CDI support, particularly looking at the requests on the WASdev forums. The latest beta of the Liberty Profile, however, does contain increased support including EJB, CDI, WebServices and some really interestingly product extension support, which allows users to create their own ‘feature’s in the server.xml file, but this is still in Beta.

Team effectiveness, Documentation & Support

The Liberty Profile is a sharable developer app server. By this I mean it allows for great collaboration among other developers in the same team by providing the following:
  • A server.xml that can be moved to any other Liberty Profile server instance
  • Support for server.xml snippets that can be imported into an existing server.xml. The snippet takes the same format as the server.xml and can be shared across the team
  • The eclipse tooling creates a new project in the workspace, per server, which allows you to check in config files to your favoured repository easily.
  • Servers can be ‘packaged’ into an archive and extracted onto other machines to easily share with other developers in the team, or even other test stages etc if you just wanted to duplicate your environment
Documentation can mostly be found on the new community site wasdev, which is non-typical in terms of the traditional IBM sites, but still suffers from the hangover of developerWorks performance and format. It’s run by the development team so isn’t full of the usual marketing/sales. There is also the traditional IBM information center, which people typically love or hate, that provides more formal documentation for the product. You can get support from the wasdev forum which is reasonably active, and again, you’re talking with the development team, this is on a best can do basis. If you choose to pay the big bucks you’ll also get the full IBM support where you can even afford to scream and still expect help :o)

Things that didn’t fit into other sections

One feature which is pretty nifty is minify, which takes your Liberty Profile server and removes everything your application doesn’t need leaving you with a much smaller footprint. This sounds like a feature you could use once you’ve finished making your dynamic development changes and just want to reduce the footprint and make the server as fast and small as possible.
You’re now able to use the Liberty Profile on a mac, which most devs wouldn’t be too shocked at, but most existing WAS (and mac) users might have just broken into tears (in a good way).
There is no migration story from the Liberty Profile to the full profile of WAS, which means if you wanted to develop your application on the Liberty Profile to make use of its lightweight nature but use full WebSphere app server in production, you’ll need to map the server config yourself. It would be nice to see a tool which mapped your server.xml to a bunch of jython scripts that could create the same environment in full WAS.
The Liberty Profile is free to use, but only in development. If you wanted to move to production with the Liberty Profile you’ll need to pay the usual WAS bucks. Sadly there is no license for using the Liberty Profile outside of development for your hobby usage. So if you wanted to run an app server for a home project, you’re not licensed to do so with the Liberty Profile :o(

Summary

Overall, the Liberty Profile is one of the fastest changing and most interesting app servers to watch on the market today. Don’t look at it as just another WebSphere app server, take a look at it with a fresh and open mind and I really think you’ll be impressed with it. The new Beta is just as exciting with some great new features.
On the downside, it comes at a cost. Yes, development is free, but the world doesn’t stop at development and the cost curve to use it outside of development is very steep, particularly in comparison to other lightweight servers out there today, many of which are free.
As the Liberty Profile is new and rapidly moving, it looks like the biggest focus is on feature and technology support rather than some of the fluffier aspects such as UI and migration, but it needs to focus on these aspects because in reality, devs will be comparing this server to Tomcat and Glassfish which have already been around for many years and the Liberty Profile is playing a catch up game to these servers.
It’s important to IBM there is a good answer to the question, “Why would I use the Liberty Profile over Tomcat”. Ease of use, particularly around config, is one of the big reasons here for me, but it realistically depends on the requirements of your application and if the Liberty Profile doesn’t support the features you need, it’s not even in the equation. The most compelling reason to use the Liberty Profile, in my mind, is if you’re already decided to use WebSphere in production. IBM have put together a doc comparing the Liberty Profile to Tomcat.
It’s certainly one to keep an eye out for going forward. I personally know the main developers and architects on the Liberty Profile such as Ian Robinson, Alex Mulholland, Alasdair Nottingham, Erin Schnabel, Tim DeBoer and many more. They should take a lot of credit for the changes you’re seeing in the Liberty Profile and are individually responsible for the great new direction and results it has already achieved.
It will be interesting to see how the Liberty Profile handles the increase functionality with both footprint and size and what this means to the wider portfolio of WebSphere Application Server products as the Liberty Profile improves and increased in scope in the future.
I hope you enjoyed this post – let me know what your thoughts are around WebSphere and the new Liberty Profile in the comments below or tweet us @Rebel_Labs. Existing WebSphere users – What do you make of the new changes? Non WebSphere users – Would you consider looking into/using the Liberty Profile?

--