Miles to go …

October 20, 2009

Comparing GlassFish and JBoss: Helping you decide!

Filed under: General — arungupta @ 10:29 am
The majority of developers building Java applications will find that the GlassFish application server offers distinct advantages compared with JBoss. This paper summarizes the features and capabilities that make GlassFish a superior choice for building, deploying, and managing enterprise-class Java applications and Web services.

Here are some other recently published GlassFish white papers:

  • The GlassFish Advantage for Small Businesses
  • A Guide to Cost Savings with the Sun GlassFish Portfolio
  • Getting Started in the Cloud with the Sun GlassFish Portfolio
  • Strategies for Leveraging Leading Application Server Technologies Alongside Open Source
  • Deploying Sun GlassFish Web Space Server 10.0 For High Availability and Scalability
  • Developing Software Collaboratively with Hudson
  • Java EE 6 Overview
  • Turbo Charge your AMP Deployments with GlassFish Web Stack
  • First Steps to Develop and Deploy Ruby on Rails Applications with GlassFish

A list of white papers & webinars published earlier this year is available here. An updated list is always available in the Resources section of GlassFish Portfolio.

Technorati: glassfish jboss whitepaper

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

October 19, 2009

MacBook Pro Cycle Count – Too High ?

Filed under: General — arungupta @ 4:33 pm

MacBook Pro Cycle Count means the number of times a battery’s entire power is used up. It’s formally defined as:

A charge cycle means using all of the battery’s power, but that doesn’t necessarily mean a single charge. For instance, you could use your notebook for an hour or more one day, using half its power, and then recharge it fully. If you did the same thing the next day, it would count as one charge cycle, not two, so you may take several days to complete a cycle.

It can be easily determined by clicking on "Apple", "About This Mac", "More Info…", "Hardware", "Power", "Health Information:". MacBook Pro with a replaceable battery retains 80% of its original capacity after 300 cycles as mentioned here. But in all practical cases, I’ve heard users replacing the batteries closer to 300 counts. This number goes upto 750 for MacBook Air and 1000 for newer MacBook Pro so there is relief already.

My MBP cycle count hit 283 on Friday and the scary part was "Full charge capacity" was down to 258 mAh. In usage terms, a fully charged battery was getting drained out in 10 minutes :(

A new battery was rushed, installed and the new count is certainly the expected number:

Here are some more relevant docs:

  • Calibrating your computer’s battery for best performance
  • Replacing the battery in your MacBook Pro   
  • 8 Ways to Help Your MacBook Battery Last as Long as It Can

Technorati: osxtips battery cyclecount

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

October 16, 2009

Oracle Open World 2009 in Pictures

Filed under: General — arungupta @ 11:17 am

Enjoy a collage of different pictures from the recently concluded Oracle Open World 2009 (Day 1, 2, 3, 4):

The complete album is available at:

Technorati: conf oracle openworld oow glassfish javaee otn bloggers arnold

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

October 15, 2009

Oracle Open World 2009 – Day 4 with Larry, Arnold , and Aerosmith

Filed under: General — arungupta @ 3:01 pm

Day 4 of Oracle Open World 2009 (Day 1, Day 2, Day 3) was all about about spending time at the Java EE 6 exhibit, attending Larry’s keynote and finally the Appreciation Event.

Larry talked about Oracle Enterprise Linux, Exadata v2, Oracle Enterprise Manager, and Fusion Apps.

Exadata v2 runs Oracle database faster than any other machine on the planet. With Exadata v1, the advantages were pretty obvious with customers reducing query times from 24 hours to 30 mins and 30 min to 1 min and some observing 10x – 72x improvements. Exadata v2 is much faster and bigger than v1 with 400 GB of DRAM + 5 TB of flash gives spectacular random IO memory (1 million I/Os per second).

Arnold Schwarzenegger made a surprise appearance during Larry’s keynote to talk about the technology innovation. Watch him speak in the 2-part videos below:

Watch Arnold’s endorsement of Oracle/Sun merger starting at 1:15 in part 2 video above.

This was my first experience to watch Arnold speaking live at a conference and must say I was truly impressed, and feel honored, by our esteemed governor. He is a great business men who did not deter from the opportunity to sell "Kaalifornia" to all the conference attendees. And he still very much carry the charm & persona from his previous life as a superstar.

The Appreciation Event had an impressive lineup of rocks bands including Aerosmith and Roger Daltrey. There was a boardwalk carnival with Ferris wheel, thrill rides and a games arcade. And of course there were exotic treats to feed you. One thing was clear, Oracle certainly knows how to take care of their customers!

Here are some pictures from yesterday:

And the complete album at:

After attending Oracle Open World 2009 for four days, I’m more than eagerly waiting for the merger to complete now. Now whether they keep me or not, I’m confident that they’ll be able to turn Sun around and make money out of it. If they keep me, I’m part of that success. If not, I’ll get job elsewhere but at least will be happy to see Sun’s products generating revenue :-)

Cmon EU!

Technorati: conf oracle openworld oow glassfish javaee otn bloggers arnold

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

October 13, 2009

Oracle Open World 2009 – Day 3 Report

Filed under: General — arungupta @ 9:49 pm

Day 3 of Oracle Open World 2009 (Day 1, Day 2) started on an adventurous note for me. The San Francisco Bay Area got hit with the strongest October storm in 47 years and so the ride from home to Moscone Center took almost 30 extra minutes, because of flooded roads, strong winds, other accidents, and hydroplaning multiple times. Anyway only missed first few minutes of Thomas Kurian’s keynote. Kurian is no stranger to the Java crowd because he is a regular keynote speaker at JavaOne. However it was totally impressive to see customer endorsements (both quality and quantity) and how they are using Oracle to solve operational problems.

Some more observations from the floor:

  • The last session gets over at 6:30pm and Moscone halls are closed after that, no late night BoFs or AfterDark events.
  • The game lounge is in the Moscone West only, not sure why. May be because that’s where the Middleware stream is and that’s where the developers are attracted ;-)
  • There is a dedicated slots for Exhibitor Hall where no other formal activities are happening.

I spent some time on the Java EE 6 booth talking about the technology and showcasing GlassFish features such as monitoring and Rails deployment.

Enjoy videos of marketing gimmicks by some vendors at the show floor:

The evening ended with the OOW Bloggers Meetup at LJ’s Martini Club & Grill. It was good to meet fellow bloggers from Oracle and other companies. OTN folks arranged a game to promote social networking. Basically, everybody was given a tee-shirt to wear and whoever has the most signatures from other bloggers wins an HP notebook. A MacBook would’ve been a better incentive to compete for me ;-) Anyway there was beer and muchies to keep the bloggers happy. Thanks to Justin (aka "King of OTN") for picking the bill!

Here are some pictures from earlier today:

And the evolving album at:

If you are not able to attend in person, then you can follow OOW Blogs, Open World Live, @OpenWorld (twitter), Community tweets with #oow.

Looking forward to see Arnold Schwarzenegger discussing technology innovation with Larry Ellison tomorrow.

Technorati: conf oracle openworld oow glassfish javaee otn bloggers

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

Hudson Webinar and Q&A – 10/14, 10am PT

Filed under: General — arungupta @ 11:53 am

Koshuke (aka "Mr Hudson") is giving a webinar and a live Q&A session on Hudson tomorrow.

Please register now!

Technorati: glassfish hudson webinar

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

October 12, 2009

Oracle Open World 2009 – Day 2 Report

Filed under: General — arungupta @ 10:07 pm

Following from Day 1, the Day 2 started with Charles Phillips and Safra Catz keynote. The keynotes at Open World are significantly different from JavaOne or any other developer conference I’ve attended so far. Of course they are expected to be because Open World is not primarily a developer’s conference. Oracle Develop (OD) certainly closely mimic any of the conferences I’ve typically attended. My "exhibitor" badge restricted me from attending any of the sessions at OD though :-(

Here are some interesting statistics about the conference:

5 content streams (Database, Applications, Industries, Management & Infrastructure, & Middleware)
314 demo kisosk
401 partners & customer exchibiting
1966 educational sessions (10% more than last year)
4500 Oracle developers/experts for you
81,266 hotel room nights
170,000 cups of coffee
182,000 online participation

Here are some interesting sightings from the Open World exhibitor pavilion:

  • Tata Consultancy Services, Infosys, HCL, Wipro, Mahindra Satyam, Birlasoft, Cognizant and a host of other companies based in India are exhibiting in the pavilion. This is a pleasant surprise from JavaOne which typically does not see these many companies out of India.
  • Poker, Ducati, Glider, Beatles Guitar, Sumo wrestler, Callaway Golf, Mini Cooper and other similar sightings were spotted. Check out complete set of images here.
  • Lot more attendees are wearing a suit, quite unlike JavaOne or RailsConf which is typically denim/t-shirt rich.

On a personal front, everything that possibly could went wrong as part of the demo installation yesterday and rehearsal for my talks earlier today. NetBeans was not able to connect to the Oracle database (couple of machine restarts solved that), GlassFish Tools Bundle for Eclipse was timing out attempting to start GlassFish (removing workspace solved that problem), NetBeans’s RESTful tooling not recognizing JPA entities, and also found a blocking bug (issue #10166) in deploying Rails app to latest GlassFish promoted build. These demos have worked seamlessly for me all the time time and fortunately worked well during the talk.

My talk at the Unconference on Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBeans/Eclipse went well. It was truly an unconference event with no projector or mic in the presentation room. But the small attendance allowed us to huddle around the table and luckily all the demos worked seamlessly. The slides are available at:

Several demos shown in the talk are available at:

The slides have pointers to several other demos as well. Also showed the simplicity of Java EE 6 development using Eclipse in Java Platform, Enterprise Edition: The Foundation and Future of Your Enterpise.

The day concluded with OTN Night in Howard St tent. Check out a brief video from the event:

Here are some pictures from earlier today:

And the evolving album at:

If you are not able to attend in person, then you can follow OOW Blogs, Open World Live, @OpenWorld (twitter), Community tweets with #oow.

Back tomorrow on Day 3 with more pictures :-)

Technorati: conf oracle openworld oow glassfish javaee netbeans eclipse

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

October 11, 2009

Oracle Open World 2009 – Day 1 Report

Filed under: General — arungupta @ 11:08 pm

Sun Microsystems is the innovation sponsor of Oracle Open World 2009. And that’s what was the theme of Scott McNealy‘s keynote on a "Sun"day. It’s been a while that I’ve seen Scott on the keynote stage and it truly was an enjoyable experience. In his characteristic way, he gave top 10 reasons that "Engineers have gone wild" as:

10. Who needs thumb drive in the shape of sushi ?
9. "Noble prize" recently awards for gas mask bra – no more ridiculous than other noble prizes recently awarded
8. OS/2
7. Patent awarded for face mask with voice modification capability
6. I could do an entire top 10 of worlds strangest keyboards (strangest being iPhone, "Friends don’t let friends type on iPhone")
5. Windows 7
4. Man uses SPARCstation for his ashses
3. New market in "family size’ plots
2. Mainframe running Linux
1. Some one came up with this crazy idea for a ‘Java Ring’

And then on a more serious note, and keeping with the keynote theme, top 10 innovations from Sun:

10. NFS/PC-NFS Technology (1983)
9. SPARC (1989)
8. Open Source Software (Berkeley Unix, "Red Hat of Berkeley Unix", #1 contributor to OSS community)
7. BSD + UNIX System 5 = Solaris
6. Java (Java card, EE/SE/ME, JavaFX)
5. E10K (64-way Solaris, no longer mainframe required)
4. ZFS/Open Storage/Flash (Exadata)
3. Project Blackbox, world’s first modular datacenter
2. SunRay
1. Chip multithreading "CoolThreads"

And the biggest innovation from Sun:

Kicked Butt
Had Fun
Didn’t CHeat
Loved our customers
Changed computing for ever

Scott explained why SPARC, Solaris, MySQL, Java are here to stay. "Kick Butt, Have Fun" is truly the spirit at Sun :-)

James Gosling, the father of Java, showed up on the stage to talk about Java’s relevance for Oracle. Also showed "The Gospel of Java according to James" and the video is shown below:

John Fowler talked about several brand new Sun/Oracle world-record benchmarks. A key point from these benchmarks "Oracle and Sun were able to set the world record using 1/8th the hardware that IBM used for its largest benchmark". And we also announced F5100 Flash Array, the world’s fastest solid-state flash array.

And here are some quotes from Larry Ellison‘s keynote appearance:

  • "SPARC is a fantastic technology"
  • "All Oracle software runs reliably and faster on Solaris, than ever before"
  • "MySQL competes in different market", "We are going to spend more, not less, on MySQL", "Increase our rate of contribution to that product"
  • "Not only invest in Sun technology, also in Sun business"
  • IBM: Slower, Costs More, Not Fault Tolerant, Not Very Green (from a slide)
  • 25% more throughput, (can do lot better), 16x better response time
  • "IBM’s processor is called "POWER", we know why ?" (because it’s consumes the entire power of your data center ;-)
  • "I’m not fair on IBM because they are not here to respond"
  • One mans’ SUNset is another man’s SUNrise, We think this is SUNrise time"

It totally reminded me of Scott McNealy’s "dot-not" (as compared to .NET) and "c-flat" (for C#) quotes from JavaOne :-)

Check out related articles about Sun’s presence at Open World:

  • GlassFish and Friends
  • Java at OOW
  • Solaris at OOW
  • SDN Article
  • Sun Bloggers at OOW
  • Sun Microsystems at OOW
  • Sun sessions (PDF or live list)

Here are some pictures:

And the evolving album at:

If you are not able to attend in person, then you can follow OOW Blogs, Open World Live, @OpenWorld (twitter), Community tweets with #oow.

On a personal note, this is my first Open World and am totally amazed by the size of attendees, and it’s only a Su
nday. The entire Howard St is shutdown and tents are installed to accommodate the conference. All 3 Moscone halls (North, South, and West) are used. A scale down replica of Larry’s "Rising Sun" is also displayed on Howard Street. And for the first time in 10 years, I’m getting only an Exhibitor badge at Moscone :-)

Also installed GlassFish, NetBeans/Eclipse demos on the booth machine and ready to wow the audience with Java EE 6 in the exhibitor hall for the next 3 days! And of course, I’m talking at the Unconference tomorrow at 11am on Creating Quick and Powerful Web applications with Oracle, GlassFish and NetBeans/Eclipse. Get ready to see lots and lots of demos!

Back tomorrow with more pictures :-)

Technorati: conf oracle openworld oow glassfish netbeans eclipse

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

October 8, 2009

TOTD #112: Exposing Oracle database tables as RESTful entities using JAX-RS, GlassFish, and NetBeans

Filed under: General — arungupta @ 9:53 am

This Tip Of The Day explains how to expose an existing Oracle database table as a RESTful Web service endpoint using NetBeans tooling and deployed on GlassFish.

Lets get started!

  1. Configure GlassFish v3 10/7 or a later nightly in a recent NetBeans 6.8 build (latest nightly). As issue# 9885 is fixed, so copy ojdbc6.jar in the "domains/domain1/lib/ext" directory.
  2. Create a Web application
    1. Create a new "Web application" and name the project "RestfulOracle":

      click on "Next >".

    2. Choose the newly added server and "Java EE 6 Web" as the Java EE version:

      and click on "Finish".

  3. Create JPA entities for "HR" schema. The steps outlined below uses NetBeans solely for creating the JPA entities. Alternatively, TOTD #108 explains how to define a JDBC connection pool and JDBC resource using "asadmin" CLI and then use that resource from within NetBeans. Either way, the JDBC resource is stored in the underlying "domain.xml".
    1. Right-click on the project and select "New", "Entity Classes from Database…".
    2. In "Data Source:" select "New Data Source…" as shown below:

    3. Specify the JNDI name as "jdbc/hr" and choose the pre-configured database connection as shown below:

      TOTD #107 explains how to configure Oracle database in NetBeans.

    4. In the list of "Available Tables:", select "EMPLOYEES" and click on "Add >" to see the following:

      Notice the list of related tables are included as well. Click on "Next >".

    5. Specify the package name as "model".
    6. Click on "Create Persistence Unit…", take the defaults, and click on "Create":

      and click on "Finish". Notice EclipseLink, the reference implementation for JPA 2.0, is used as the persistence provider. This generates POJOs that provide database access using JPA 2.0 APIs. These APIs are included as part of the Java EE 6 platform.

  4. Create RESTful entities
    1. Right-click on the project and select "RESTful Web Services from Entity Classes…":

    2. Select "Employees (model.Employees)" from "Available Entity Classes:" and click on "Add >" to see the following:

      click on "Next >", take the defaults, and click on "Finish". This generates a bunch of wrapper classes using JAX-RS to expose the JPA Entity classes as RESTful Web services. JAX-RS 1.1 is also included as part of the Java EE 6 platform.

  5. Run the Web service
    1. Right-click the project and select "Test RESTful Web Services":

      This deploys the created Web application on the selected GlassFish build and displays the following page in the default browser:

    2. Click on "deparmentss" and then on "Test" button to see the output as:

      Clicking the "Test" button issues a GET request to "http://localhost:8080/RestfulOracle/resources/departmentss". This uses the generated JAX-RS wrapper classes to talk to the database using JPA entity classes and query the first 10 rows from the "DEPARTMENTS" table. The response is then JSON formatted using JAX-RS wrapper classes and is returned to the requesting page which then displays it nicely formatted in the table. It also shows l-level deep department’s relationship to other entities. If the "expandLevel" on the above page is set to "0", then the following output is shown:

      The "Raw View" (JSON data) of the original output looks like:

      Notice this is the raw JSON output generated by the JAX-RS wrapper classes. The "Http Monitor" traffic looks like:

      The format of data returned can be changed from "application/json" to "application/xml" as shown below:

      And even a POST reque
      st can be generated.

Do you have the need to expose your Oracle database tables as RESTful entities ?

A complete archive of all the TOTDs is available here.

This and other similar applications will be demonstrated at the upcoming Oracle Open World.

Technorati: totd oracle database glassfish v3 netbeans javaee jax-rs jpa rest

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot

October 7, 2009

TOTD #111: Rails Scaffold for a pre-existing table using Oracle and GlassFish

Filed under: General — arungupta @ 10:31 am

TOTD #110 explained how to create a brand new Rails application using Oracle database and run it using GlassFish v Gem. This Tip Of The Day explains how to create a scaffold for a sample schema that ships with Oracle database. Even though Rails Scaffold are good for, well, scaffolding but they do get you started easily. This blog will use the sample HR schema that comes along with Oracle database.

Lets get started!

  1. Copy the reverse_scaffold script in the "script" directory of your application created in TOTD #110. This script generates Model and Forms from a pre-existing database table. More details about this script are here.
  2. Edit "config/database.yml" and change the "development" section to:

    development:
    adapter: oracle_enhanced
    host: localhost
    database: orcl
    username: hr
    password: hr

    The changes are highlighted in bold, only the username and password values are changed to reflect the default values used with the sample database.

  3. Generate the models and forms for "departments" table as:
    ~/samples/v3/rails/oracle/bookstore >~/tools/jruby/bin/jruby script/reverse_scaffold departments department
    JRuby limited openssl loaded. gem install jruby-openssl for full support.
    
    http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
    
    JRuby limited openssl loaded. gem install jruby-openssl for full support.
    
    http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
    
    exists app/models/
    exists app/controllers/
    exists app/helpers/
    create app/views/departments
    exists app/views/layouts/
    exists test/functional/
    exists test/unit/
    create test/unit/helpers/
    exists public/stylesheets/
    create app/views/departments/index.html.erb
    create app/views/departments/show.html.erb
    create app/views/departments/new.html.erb
    create app/views/departments/edit.html.erb
    create app/views/layouts/departments.html.erb
    create public/stylesheets/scaffold.css
    create app/controllers/departments_controller.rb
    create test/functional/departments_controller_test.rb
    create app/helpers/departments_helper.rb
    create test/unit/helpers/departments_helper_test.rb
    route map.resources :departments
    dependency model
    exists app/models/
    exists test/unit/
    exists test/fixtures/
    create app/models/department.rb
    create test/unit/department_test.rb
    create test/fixtures/departments.yml
    
  4. Edit "app/models/department.rb" and specify the primary key to "department_id" column by adding:
    set_primary_key "department_id"
    

  5. Run the application as:
    ~/samples/v3/rails/oracle/bookstore >~/tools/jruby/bin/jruby -S glassfish -l
    Starting GlassFish server at: 129.145.133.197:3000 in development environment...
    Writing log messages to: /Users/arungupta/samples/v3/rails/oracle/bookstore/log/development.log.
    Press Ctrl+C to stop.
    Oct 6, 2009 2:14:19 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
    INFO: Listening on port 3000
    . . .
    

    The application is now accessible at "http://localhost:3000/departments" and looks like:

  6. Similarly, create the model and forms for "employees" table as:
    ~/samples/v3/rails/oracle/bookstore >~/tools/jruby/bin/jruby script/reverse_scaffold employees employee
    JRuby limited openssl loaded. gem install jruby-openssl for full support.
    
    http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
    
    JRuby limited openssl loaded. gem install jruby-openssl for full support.
    
    http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
    
    exists app/models/
    exists app/controllers/
    exists app/helpers/
    create app/views/employees
    exists app/views/layouts/
    exists test/functional/
    exists test/unit/
    exists test/unit/helpers/
    exists public/stylesheets/
    create app/views/employees/index.html.erb
    create app/views/employees/show.html.erb
    create app/views/employees/new.html.erb
    create app/views/employees/edit.html.erb
    create app/views/layouts/employees.html.erb
    identical public/stylesheets/scaffold.css
    create app/controllers/employees_controller.rb
    create test/functional/employees_controller_test.rb
    create app/helpers/employees_helper.rb
    create test/unit/helpers/employees_helper_test.rb
    route map.resources :employees
    dependency model
    exists app/models/
    exists test/unit/
    exists test/fixtures/
    create app/models/employee.rb
    create test/unit/employee_test.rb
    create test/fixtures/employees.yml
    

    Specify the primary key to "employee_id" by adding the following to "app/models/employee.rb" as:

    set_primary_key "employee_id"
    

    The scaffolded table is now available at "http://localhost:3000/employees" and looks like:

So we created a simple Rails CRUD application accessing information from a pre-existing table in the Oracle database server.

Thanks to @mediachk for all the help!

A complete archive of all the TOTDs is available here. The complete list of Rails blog entries are available here.

This and other similar applications will be demonstrated at the upcoming Oracle Open World.

Technorati: totd oracle database glassfish v3 jruby rails oow

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot
Older Posts »

The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
Powered by WordPress