Tuesday Mar 24, 2009

EclipseCon 2009 Day 2 in Pictures

Here are some pictures I took at EclipseCon earlier today:

Meet us at the Sun booths in EclipseCon and learn all the goodness about GlassFish, GlassFish Tools Bundle for Eclipse, Open Solaris, and Java FX! And we got nice schwag too ;)

And the evolving photo album below:

Technorati: conf sun glassfish opensolaris javafx eclipse eclipsecon

GlassFish Beanie, Open Solaris CD, Cool shirts, 2 GB SD Card - Goodies at Sun booth in #eclipsecon

Meet us at the Sun booths in EclipseCon and learn all the goodness about GlassFish, GlassFish Tools Bundle for Eclipse, Open Solaris, and Java FX!

Technorati: conf sun glassfish opensolaris javafx eclipse eclipsecon

Monday Feb 09, 2009

TOTD #68: Installing Zones in Open Solaris 2008/11 on Virtual Box

The TOTD #64 describes how to install Open Solaris 2008/11 using Virtual Box. This Tip Of The Day (TOTD) is going to explain how to install non-global zones (aka Solaris Containers) on this Open Solaris image. Containers provide an operating-system level virtualization technology.

Thanks for the extensive discussion at zones-discuss forums, Bill Walker for lots of off-line support, and last but not the least Marcelo Arbore's nice blog showing how to install GlassFish in an Open Solaris zone.

This blog is going to focus on installing couple of non-global containers/zones in the Virtual Box image with all gory details. A later blog will show how to leverage these zones to demonstrate GlassFish High Availability.

Lets get started!

To begin with, there is one global zone always installed as shown below (user inputs highligted in bold):

arun@opensolaris:~# zoneadm list -vi
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared

Lets install the zone. The IP address is specified in 192.168.0.XXX range ...

arun@opensolaris:~# zonecfg -z zone1
zone1: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:zone1> create
zonecfg:zone1> set zonepath=/export/home/zone1
zonecfg:zone1> set autoboot=true
zonecfg:zone1> add net
zonecfg:zone1:net> set address=
zonecfg:zone1:net> set physical=e1000g0
zonecfg:zone1:net> end
zonecfg:zone1> commit
zonecfg:zone1> exit
arun@opensolaris:~# zoneadm -z zone1 install
A ZFS file system has been created for this zone.
  Authority: Using http://pkg.opensolaris.org/release/.
      Image: Preparing at /export/home/zone1/root ... done.
      Cache: Using /var/pkg/download.
 Installing: (output follows)
DOWNLOAD                                    PKGS       FILES     XFER (MB)
Completed                                  52/52   7862/7862   72.41/72.41

PHASE                                        ACTIONS
Install Phase                            12939/12939
PHASE                                          ITEMS
Reading Existing Index                           9/9
Indexing Packages                              52/52

       Note: Man pages can be obtained by installing SUNWman
Postinstall: Copying SMF seed repository ... done.
Postinstall: Working around http://defect.opensolaris.org/bz/show_bug.cgi?id=741
       Done: Installation completed in 165.652 seconds.

 Next Steps: Boot the zone, then log into the zone console
             (zlogin -C) to complete the configuration process
arun@opensolaris:~# zoneadm -z zone1 boot
arun@opensolaris:~# zlogin -C zone1
[Connected to zone 'zone1' console]
Reading ZFS config: done.
Mounting ZFS filesystems: (6/6)

Specify the type of terminal ...

What type of terminal are you using?
 1) ANSI Standard CRT
 2) DEC VT100
 3) PC Console
 4) Sun Command Tool
 5) Sun Workstation
 6) X Terminal Emulator (xterms)
 7) Other
Type the number of your choice and press Return: 1
Creating new rsa public/private host key pair
Creating new dsa public/private host key pair
Configuring network interface addresses: e1000g0.

Configure NIC ...

- Host Name for e1000g0:1 ------------------------------------------------------
  Enter the host name which identifies this system on the network.  The name
  must be unique within your domain; creating a duplicate host name will cause
  problems on the network after you install Solaris.

  A host name must have at least one character; it can contain letters,
  digits, and minus signs (-).

    Host name for e1000g0:1 zone1

- Confirm Information for e1000g0:1 --------------------------------------------
  > Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.

    Host name: zone1

No Kerberos ...

- Configure Security Policy: ---------------------------------------------------
  Specify Yes if the system will use the Kerberos security mechanism.

  Specify No if this system will use standard UNIX security.

      Configure Kerberos Security
      [ ] Yes
      [X] No

- Confirm Information ----------------------------------------------------------
  > Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.

    Configure Kerberos Security: No

Specify the name service, domain, and domain resolver ...

- Name Service -----------------------------------------------------------------
  On this screen you must provide name service information.  Select the name
  service that will be used by this system, or None if your system will either
  not use a name service at all, or if it will use a name service not listed

  > To make a selection, use the arrow keys to highlight the option
    and press Return to mark it [X].

      Name service
      [ ] NIS+
      [ ] NIS
      [X] DNS
      [ ] LDAP
      [ ] None

- Domain Name ------------------------------------------------------------------
  On this screen you must specify the domain where this system resides.  Make
  sure you enter the name correctly including capitalization and punctuation.

    Domain name: sfbay.sun.com

- DNS Server Addresses ---------------------------------------------------------
  On this screen you must enter the IP address of your DNS server(s).  You
  must enter at least one address.  IP addresses must contain four sets of
  numbers separated by periods (for example

    Server's IP address:
    Server's IP address:
    Server's IP address:

The value of IP address for your DNS server is copied from "/etc/resolv.conf" in the global zone. Specify DNS search list and confirm the information ...

- DNS Search List --------------------------------------------------------------
  On this screen you can enter a list of domains that will be searched when a
  DNS query is made.  If you do not enter any domains, DNS will only search
  the DNS domain chosen for this system.  The domains entered, when
  concatenated, may not be longer than 250 characters.

    Search domain:
    Search domain:
    Search domain:
    Search domain:
    Search domain:
    Search domain:

- Confirm Information ----------------------------------------------------------
  > Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.

          Name service: DNS
           Domain name: sfbay.sun.com
    Server address(es):

No need to create an address entry for the zone ...

- Name Service Error -----------------------------------------------------------
  Unable to find an address entry for zone1 with the specified DNS

      Enter new name service information?
      [ ] Yes
      [X] No

Specify and confirm NFSv4 domain name ...

- NFSv4 Domain Name ------------------------------------------------------------
  NFS version 4 uses a domain name that is automatically derived from the
  system's naming services. The derived domain name is sufficient for most
  configurations. In a few cases, mounts that cross domain boundaries might
  cause files to appear to be owned by "nobody" due to the lack of a common
  domain name.

  The current NFSv4 default domain is: "sfbay.sun.com"

      NFSv4 Domain Configuration
      [X] Use the NFSv4 domain derived by the system
      [ ] Specify a different NFSv4 domain

- Confirm Information for NFSv4 Domain -----------------------------------------
  > Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.

    NFSv4 Domain Name:  << Value to be derived dynamically >>

Timezone ...

- Confirm Information ----------------------------------------------------------
  > Confirm the following information.  If it is correct, press F2;
    to change any information, press F4.

    Time zone: Pacific Time

Specify the root password and then see the comment as:

System identification is completed.

This comment indicates successful creation of the zone.

Login to "zone1" as:

zone1 console login: root
Feb  8 16:12:10 zone1 login: ROOT LOGIN /dev/console
Sun Microsystems Inc.   SunOS 5.11      snv_101b        November 2008

Check the network configuration ...

root@zone1:~# ifconfig -a
mtu 8232 index 1
        inet netmask ff000000
e1000g0:1: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS>
mtu 1500 index 2
        inet netmask ffffff00 broadcast

After "zone1" is completely installed, then it can be viewed as:

arun@opensolaris:~$ zoneadm list -vi
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   1 zone1            running    /export/home/zone1             ipkg     shared

And then install "zone2" using the steps described above and check it's network configuration as:

root@zone2:~# ifconfig -a
mtu 8232 index 1
        inet netmask ff000000
e1000g0:2: flags=201000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4,CoS>
mtu 1500 index 2
        inet netmask ffffff00 broadcast

And it's shown in the list of zones as:

arun@opensolaris:~# zoneadm list -vi
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   1 zone1            running    /export/home/zone1             ipkg     shared
   2 zone2            running    /export/home/zone2             ipkg     shared

OK, so we installed 2 non-global zones in an Open Solaris image running as guest in Virtual Box.

Typing "~." takes you back to the global zone.

Please leave suggestions on other TOTD (Tip Of The Day) that you'd like to see. A complete archive of all tips is available here.

Technorati: totd opensolaris zones containers solaris virtualbox glassfish

Monday Jan 12, 2009

TOTD #64: OpenSolaris 2008/11 using Virtual Box

Here is a blog entry that was sitting in my Drafts folder for a long time (just because I didn't realize :). Anyway, it shows how to install Open Solaris 2008/11 on Virtual Box. The original install was done using Virtual Box 2.0.6. I installed Virtual Box 2.1 this morning and the image was easily recognized by the updated Virtual Box.

Here are the basic steps.

Create a new VM ...

As part of the previous step, create a new Virtual Disk mapping to the downloaded Open Solaris image ...

The generated VM settings are shown as below:

Click on "Start" and configure for the first run as:

Boot the Virtual Macine from the LiveCD shows the following GRUB:

Take the default for Language and Keyboard and then the following screen is shown after the boot:

Click on "Install OpenSolaris" ...

Clicking on "Install" starts the installation ...

And finally the install is completed.

Click on "Reboot", select "Boot from Hard Disk" and press Enter ...

And then select if "full boot" or "text boot" is required as shown:

And the welcome screen is shown as:

Now you can develop your Rails applications using the NetBeans IDE and deploy them on GlassFish and MySQL easily as explained here. There are multiple updates to the stack described earlier - JRuby 1.1.6, Rails 2.2, MySQL Alpha 6.0.x, GlassFish v3 Prelude, and Virtual Box 2.1.

So go ahead and develop, deploy, and debug your Rails applications as described in screencast #26. You can even manage your Rails applications using JMX as described in TOTD #61, #62, and #63.

Hwo do you follow the latest on each technology:

And, of course, this blog talks about all of them :)

Please leave suggestions on other TOTD (Tip Of The Day) that you'd like to see. A complete archive of all tips is available here.

Technorati: totd opensolaris virtualbox glassfish netbeans jruby rubyonrails mysql

Sunday Oct 19, 2008

Relevance of Open Source during Financial Crisis - GlassFish, MySQL, OpenSolaris, VirtualBox, NetBeans, ...

CIO published an article highlighting 5 cheap (or free) software that can be afforded during financial crisis. Their recommendations are:
  • Open Office ($0) instead of Microsoft Office ($110 for basic version)
  • Mozilla Thunderbird ($0) instead of Microsoft Outlook (lots of security issues)
  • GnuCash ($0) instead of Quicken ($30 for starter edition)
  • Alfresco ($0) instead of Sharepoint ($5K for five licenses)
  • Linux instead of Windows (non-zero cost, always virus-prone ;)
All the recommendations are open source and can be downloaded and used without any hidden clauses. In all cases the open source version is at par and sometimes better than the commercial version. And of course there is always the agility factor. You enounter a bug, somebody in the community fixes it (on priority if you have support subscription), patch available in the nightly and you are back in business.

Here are some more recommendations ...
  • GlassFish instead of Oracle Weblogic or IBM Websphere
  • MySQL instead of Oracle Enterprise or IBM DB2
  • OpenSolaris instead of Windows
  • NetBeans instead of IntelliJ
  • VirtualBox instead of VM Ware or any other virtualization software
  • and many more here
All these options are completely open source with a full enterprise support available from Sun Microsystems.

Now some actual price comparisons using GlassFish and MySQL Unlimited ...

That's $3 million savings over a period of 3 years!!!

And if the number of sockets/cores go up, that's just additional money you are wasting during this financial crisis. With GlassFish Enterprise Unlimited starting at $25,000 - no counting cores, sockets, support incidents, servers or auditing - you can deploy unlimited GlassFish instances for the same price charged for one WebLogic Enterprise Edition. GlassFish for Business explains the value of buying subscription for your deployments.

Here is another comparison for Total Cost of Ownership for MySQL compared with other databases:

Can your apps scale more than Google, Facebook, Yahoo or Wikipedia ? All these sites are powered by MySQL. Do they need to be more reliable than telco vendors such as Vodafone ? Again powered by MySQL.

In an open source world, why have a "30-day" evaluation period ?

In the times of financial crisis, why spend extra money when there are other better options available with HUGE savings ?

Open Source software is indeed a great way to cut costs. And Sun Microsystems offer a wide varitey of open source offerings (GlassFish, MySQL, OpenSolaris, VirutalBox, Linux, NetBeans and many others) that can help you during this financial crisis!

Technorati: opensource glassfish mysql netbeans opensolaris sun

Tuesday Jul 22, 2008

FREE Hosting for Facebook & OpenSocial Developers - Social App Program

Are you developing Facebook and/or OpenSocial applications ?

Would you like to deploy them and monetize before spending any money on infrastructure ?

Social App Program is a new collaborative offering from Sun Microsystems and Joyent that allows you to do exactly that! It allows you to leverage Scalability and Cost-effectiveness of Joyent's cloud powered by OpenSolaris on Sun's renowned reliable servers and storage for deploying critical applications. And all this completely FREE for 12 months.

This program is also accompanied with FREE Sun-Joyent Social Developer Days planned for 8 cities (San Francisco, Los Angeles, Seattle, Vancouver, Chicago, Boston, New York and Austin/Dallas) in the US later this year to learn and get hands-on experience on writing applications which can scale to million of users. Learn how to architect, develop and deploy web-scale applications on Cloud infrastructure.

All details are available here. Also read the official press release.

FREE infrastructure with FREE training for YOU to write Facebook/OpenSocial apps - cool!

Is yours a startup company and under-equipped on infrastructure ? Join Startup Essentials today for FREE and discounted enterprise-class software, discounted partner hosting & storage and much more - apply online and membership FREE! Very minimal eligibility requirements and you can join inside the US or outside the US.

Technorati: sun joyent facebook opensocial social web2.0 cloud opensolaris startup startupessentials

Monday Jun 23, 2008

JRuby-on-Rails and MySQL on GlassFish on OpenSolaris in Virtual Box VM

My primary development machine is Mac OS Leopard on Intel Core 2 Duo (read osxtips). But the beauty of virtualization is that I can run multiple Operating Systems on a single powerful machine. And what better virtualization product than Virtual Box. And  Open Solaris has crossed leaps and boundaries making installation and getting started extremely simple :)

So here is an application stack that I tried:

Rails 2.1 + My SQL 5.0.51a

JRuby 1.1.2

GlassFish v3 TP2

OpenSolaris 2008.05

Virtual Box 1.6.2

Mac OSX Leopard

Intel 2.4 G Hz Core 2 Duo

You can easily deploy your Rails applications using MySQL database on GlassFish installed on OpenSolaris in a Virtual Box VM on Mac OS Leopard running on an Intel 2 Duo processor machine. Overall a happy experience :)

The complete instructions to install OpenSolaris using Virtual Box are very useful.

Here are basic steps ...

Create a new VM (settings given in the instructions):

Once all the options are chosen, the generated VM settings are shown as below:

Booting the Virtual Machine from the Live CD shows the following GRUB:

Pick the default options (GRUB, Keyboard & Language) and then the following default screen is shown:

Read and Close the license screen. And then click on the "Install Open Solaris" icon to continue the installation process. This step is important otherwise you'll keep booting from LiveCD every time (I messed up on this few times ;).

After choosing the Region, Location & Timezone and taking other defaults, the summarized installation options are shown:

And finally the installation is complete:

After the installation is complete, shutdown the VM by either selecting "System, Shut Down..." or click on the X on the VM window and selecting "Power off the machine". Change the boot sequence order to bring "Hard Disk" at the top by clicking on "Settings", "Advanced" tab and changing the order as shown below.

And finally, you can easily deploy a Rails 2.1 application on this newly configured machine as explained in Rails 2.1 on GlassFish.  TOTD #35 explains how Rails Database connection need to be configured on Solaris.
The final output of the application looks like:

Here are some pointers for you to get started:
Did you know the 3 keywords for GlassFish v3 - Modularity (OSGi compliant), Extensiblity (non-Java apps) & Emebeddability (runs in-VM) ? Read more on GlassFish v3 main page.

Stay in touch with us by posting your questions/comments/concerns to GlassFish Web Tier Forum or webtier@glassfish.

Technorati: rubyonrails jruby ruby opensolaris virtualbox mac glassfish v3

Sunday Jun 22, 2008

TOTD #35: Rails Database Connection on Solaris

Are you deploying your JRuby-on-Rails applications on Solaris (or any variety of Unix) and not able to connect to the database ?

I experienced it last week so thought of sharing the tip here. Luckily it's really simple.

Here is the default generated "config/database.yml"

  adapter: mysql
  encoding: utf8
  database: runner_development
  username: root
  socket: /tmp/mysql.sock

The only required change is to add "host: 127.0.01" for the required database configuration. The updated fragment is shown below (with change highlighted):

  adapter: mysql
  encoding: utf8
  database: runner_development
  username: root
  socket: /tmp/mysql.sock
  host: 127.0.01

Even though "host" is required for TCP connections but the database connection does not seem to work without this entry. The exact same application works without "host" entry on Windows and Mac OS.

Alternatively, you can always install the JDBC adapter as explained here.

Please leave suggestions on other TOTD (Tip Of The Day) that you'd like to see. A complete archive is available here.

Technorati: totd rubyonrails jruby ruby opensolaris mysql

Monday Nov 05, 2007

GlassFish Day Beijing 2007 - By the Community, For the Community

Nov 3rd was the Community Day events as part of Sun Tech Days, Beijing. GlassFish, Open Solaris and NetBeans Day were conducted as part of the event. This blog provides a report on GlassFish Day.

The GlassFish Day started with approximately 100 people in the room. I personally enjoyed the entire day because I had to give only a 10 minute welcome session and no other talks :) However the emphasis of this particular event was to empower the local community about GlassFish so that they can help us spread the word further. And that was served very well. Most of the speakers were local and thus the title - By the Community, For the Community.

It was very nice to meet Jim Jiang, Ada Li, Wang Yu, Liang Yan (Left to Right in the first picture) and Jason Huang (the second picture) who co-authored the first GlassFish book in Chinese. You can order the book from here.

The audience was very interactive through out all the sessions. Next is a list of the questions asked in each session (along with their answers).

Ada Li presented on GlassFish, Java EE 5 and their Future. The slides are available here and the questions are:

  • Is GlassFish supported on AIX ?

    GlassFish v2 is supported on Solaris Sparc, Solaris x86, Windows, Linux and Mac. The next Update Release (scheduled next year) will be supported on AIX.

  • Is GlassFish v3 modular architecture based on OSGI ?

    Read the relationship between v3 and OSGI here.

  • What is the difference between GlassFish v2 and Application Server 9.1 ?

    The codebase for GlassFish v2 and App Server 9.1 is exactly same. However there are two differences between them:

    • GUI-based installer

    • You can buy support for App Server 9.1

  • How is GlassFish v3 different from v2 ?

    GlassFish v3 is the next version of GlassFish v2. Here are the main differences:

    • Smaller (<100 KB kernel)

    • Faster (starts in < 1 second)

    • Modular (starts up only the required container)

    • Will be Java EE 6 compatible

    • First stable version will be available next year

  • Can a J2EE 1.4 application be deployed on Java EE5 ?

    Yes, a J2EE 1.4 application using only the standard features can be deployed on Java EE 5 compliant App server like GlassFish.

Key-Yoe presented on OpenESB. The slides are available here and the questions are:

  • What are the timelines for next release of the product ?

    It is scheduled mid 2008.

  • Are JBI components supported in Eclipse ?

    JBI components can be supported in Eclipse through extensions or plugins.  Efforts are either in progress and have been demonstrated.  One such effort can be referenced at http://incubator.apache.org/servicemix/extending-eclipse-wtp-to-support-jbi.html

  • What is the difference between JBI, SCA and SDO ?

    SDO (Service Data Object) is included in the SCA (Service Component Architecture) standard.  There are differing views on the differences between JBI and SCA/SDO and listed at: http://www.osoa.org/display/Main/Relationship+of+SCA+and+JBI

  • Can Open ESB be deployed in a container other than GlassFish ?

    Yes.  It is possible to deploy OpenESB on JBoss, but it requires some tweaking.  OpenESB can also be deployed on WebSphere.  Refer to this entry,

  • What are the main difference between OpenESB and Service Mix ?

    Service Mix is an open source ESB based on the JBI specification, as well.  So, the JBI concepts in the presentation apply to Service Mix, too. So, the primary difference is implementation and the platform it supports. Service Mix runs on more platforms than OpenESB.  But, Open ESB has more emphasis on tools and has a more comprehensive environment using Netbeans IDE for creating SOA/Composite applications that run in Open ESB environment.

Wang Yu & Jim Jiang presented on the Special Features of GlassFish. The slides are available here and the questions are:

  • What is the mechanism behind Comet ARP ?

    ARP (and Comet) allows for "parking" a request when some conditions are not satisfied, and "continuation" the request processing at the later time. Based on NIO, ARP will keep a HTTP connection open for a long time, but will not hold a thread on the connection, which is more scalable.

  • How Comet can be enabled ?

    By adding <property name="cometSupport" value="true"/> property to HTTP listener.

  • How much is the performance impact because of enabling Comet ?

    There is no performance impact.

  • How to build Comet apps ?

    They are very rich API for Comet application. Read more details here, here, ICEfaces supports Grizzly Comet natively, and GWT will soon as well.

Vihang Pathak presented on Open Portal. The slides are available here and the questions are:

  • How to contribute to the community ?

    There are many ways to participate and they are documented at https://portal.dev.java.net/public/GetInvolved.html.

  • What are the next steps for Open Portal ?

    The next release is 7.2 which will happen from the source thats in the open. The roadmap for post-7.2 is in works and will be finalized and communicated shortly.

  • What are the Advantages of Open Portal as compared to BEA's ?

    Open source is the first and biggest but not the only advantage. Sun's Portal (which is now open source) has been rated in the magic quadrant for many consecutive years by Gartner. It is enterprise class, true to the definition here, http://wiki.java.net/bin/view/OpenPortal/EnterpriseClassDefinition.

  • Will SSO work between Open Portal and existing applications ?

    Yes, if the existing applications are already using the same SSO solution (Access Manager).

  • What JSRs are supported ?

    JSR 168, JSR 286, JSR 170

Jason Huang presented on Open MQ. The slides are available here and Jason continued the discussion with attendees after the session finished just in time.

Tao Li presented on Metro - The Web services stack in GlassFish. The slides are available here and the questions are:

  • Is there any performance comparison with the current version of Axis2 1.4?

    The current performance benchmarks are with Axis2 1.1.1 and available here. Some more performance improvements have gone in Metro since then but no results are available.
  • How can I manually edit the configuration file to change the enterprise features ?

    The recommended way is to enable/modify any of the enterprise features using NetBeans IDE. Hand editing the configuration file requires to understand the syntax of policy assertions and the inner workings of Metro.
  • How does Metro compare with XFire ?

    A matrix comparing several Web services stacks is available here.

And the complete album from all the community events is available here:

All the presentations are also available here.

The event staff was meticulous and very helpful. They took care of all the details including getting the room ready on time, lining up the attendees and making sure the door is closed at all times. It was a great experience in all.

Next stop @ FOSS.IN.

Technorati: conf suntechday glassfish webservices netbeans opensolaris

Monday Oct 15, 2007

Web 2 Summit - Cool Applications on Industry-grade Operating System

Sun Microsystems is a gold sponsor of Web 2 Summit (nee Web 2.0 Conference). Registration to this conference by invitation only. If you are an attendee, here is one session that you don't want to miss:

Betting on OpenSolaris for Success

In this session, Sun Chief OS Platform Strategist Ian Murdock, Joyent CTO Jason Hoffman and Director of Systems Ben Rockwood will show that the latest innovations in operating system technology are happening in OpenSolaris and will explore how even though the OS is invisible to developers much of the time, it very much still matters for writing cool "Web 2.0" applications.

Technorati: conf opensolaris web2summit web2.0


profile image
Arun Gupta is a technology enthusiast, a passionate runner, author, and a community guy who works for Oracle Corp.

Java EE 7 Samples

Stay Connected


« June 2016