Miles to go …

May 30, 2008

GlassFish and jMaki @ RailsConf Today

Filed under: web2.0 — arungupta @ 6:42 am
I was originally planning to give my first talk at Rails Conf on “Rails powered by GlassFish and jMaki“. But I cannot travel for personal reasons and instead Craig McClanahan, who is an excellent speaker, has graciously agreed to speak. Craig has been involved with Rails, GlassFish and jMaki for a long time so feel free to poke hime at the talk, in the exhibit hall and afterwards.

Thanks Craig for the wishes! I had a great time @ RailsConf 2007 (here and here) but life is about priorities :)

More information about support for Dynamic Languages and their Frameworks on GlassFish can be found on glassfish-scripting.dev.java.net.

Technorati: conf railsconf railsconf08 jruby ruby rubyonrails glassfish jmaki webtier

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

May 29, 2008

Screencast #25: Project SocialSite – Enabling Social Network in your Application

Filed under: web2.0 — arungupta @ 9:47 pm
Project SocialSite makes it easy to add social networking features to your existing web applications or community sites (running on Java, PHP or Ruby) and turn it into an OpenSocial container. It comes with a comprehensive and highly scalable implementation of social graph, integrates seamlessly with existing identity and authentication mechanism, make it easy to plug into existing directory server or other user management systems.

This screencast shows how to add social networking features such as Friends, Activities, Profile and an OpenSocial-compliant gadget to your application using NetBeans IDE.

This is a preview of the technology that will soon be released at socialsite.dev.java.net.

Enjoy it here!

Technorati: screencast glassfish socialsite web2.0 netbeans

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

May 28, 2008

JRuby 1.1.2 released – Getting Started with v3 Gem

Filed under: web2.0 — arungupta @ 11:45 pm

JRuby 1.1.2 was released yesterday – download here!

The highlights are:

  • Startup time drastically reduced
  • YAML symbol parsing >100x faster
  • Performance, threading, and stack depth improvements for method calls
  • Fixed several nested backref problems
  • Fixed bad data race (JRUBY-2483)
  • Gazillions of bigdecimal issues fixed
  • 95 issues resolved since JRuby 1.1.1

Getting started is really simple, just follow the steps listed below.

Unzip JRuby 1.1.2 zip bundle …

~/testbed/ >unzip ~/Downloads/jruby-bin-1.1.2.zip
Archive:  /Users/arungupta/Downloads/jruby-bin-1.1.2.zip
   creating: jruby-1.1.2/
   creating: jruby-1.1.2/bin/
  inflating: jruby-1.1.2/bin/_jrubycleanup.bat 
  inflating: jruby-1.1.2/bin/_jrubyvars.bat 
  . . .
  inflating: jruby-1.1.2/share/ri/1.8/system/Zlib/crc_table-c.yaml 
  inflating: jruby-1.1.2/share/ri/1.8/system/Zlib/zlib_version-c.yaml 
  inflating: jruby-1.1.2/share/ri/1.8/system/created.rid 
  inflating: jruby-1.1.2/share/ri/1.8/system/fatal/cdesc-fatal.yaml 
~/testbed >

… and then install Rails and GlassFish v3 gem …

~/testbed/jruby-1.1.2 >bin/jruby -S gem install rails glassfish –no-ri –no-rdoc
JRuby limited openssl loaded. gem install jruby-openssl for full support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
Bulk updating Gem source index for: http://gems.rubyforge.org/
Bulk updating Gem source index for: http://gems.rubyforge.org/
Successfully installed activesupport-2.0.2
Successfully installed activerecord-2.0.2
Successfully installed actionpack-2.0.2
Successfully installed actionmailer-2.0.2
Successfully installed activeresource-2.0.2
Successfully installed rails-2.0.2
Successfully installed glassfish-0.2.0-universal-java
6 gems installed

… and verify …

~/testbed/jruby-1.1.2 >bin/jruby -S gem list g

*** LOCAL GEMS ***

glassfish (0.2.0)

… and now host any of your Rails application on v3 Gem (such as Redmine) …

~/testbed/redmine >../jruby-1.1.2/bin/jruby -S glassfish_rails redmine-0.7
May 28, 2008 12:07:19 PM com.sun.enterprise.glassfish.bootstrap.ASMain main
INFO: Launching GlassFish on HK2 platform
May 28, 2008 12:07:19 PM com.sun.enterprise.glassfish.bootstrap.ASMainHK2 findDerbyClient
INFO: Cannot find javadb client jar file, jdbc driver not available
May 28, 2008 12:07:20 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
INFO: Listening on port 3000
May 28, 2008 12:07:20 PM com.sun.enterprise.v3.services.impl.GrizzlyEmbeddedHttpConfigurator configureSSL
WARNING: pewebcontainer.all_ssl_protocols_disabled
May 28, 2008 12:07:20 PM com.sun.enterprise.v3.services.impl.GrizzlyEmbeddedHttpConfigurator configureSSL
WARNING: pewebcontainer.all_ssl_ciphers_disabled
May 28, 2008 12:07:20 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
INFO: Listening on port 3131
May 28, 2008 12:07:20 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
INFO: Listening on port 3838
May 28, 2008 12:07:21 PM com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter setContextRoot
INFO: Admin Console Adapter: context root: /admin
May 28, 2008 12:07:21 PM com.sun.enterprise.rails.RailsDeployer registerAdapter
INFO: Loading application redmine-0.7 at /
May 28, 2008 12:07:21 PM 
INFO: Starting Rails instances
May 28, 2008 12:07:26 PM 
SEVERE: JRuby limited openssl loaded. gem install jruby-openssl for full support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
May 28, 2008 12:07:32 PM com.sun.grizzly.jruby.RubyObjectPool$1 run
INFO: Rails instance instantiation took : 11481ms
May 28, 2008 12:07:32 PM com.sun.enterprise.v3.server.AppServerStartup run
INFO: Glassfish v3 started in 12787 ms

Below is the screenshot from a previously deployed Redmine application, now on the GlassFish gem:

Simple isn’t it ?

If your Rails application does not work on the gem, file bugs here with “jruby” as “subcomponent” (default version is “v3″).

Alternatively, you can download GlassFish v3 TP2 and deploy your applications to leverage complete Java EE functionality.

You can also configure JRuby 1.1.2 as a Ruby platform in NetBeans 6.1 as described in TOTD #27.

Technorati: jruby ruby rubyonrails glassfish v3 gem redmine netbeans webtier

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

May 27, 2008

Sun GlassFish Enterprise Server Solution

Filed under: General — arungupta @ 6:00 am

This video explains What (is the solution), Why (this solution will meet your enterprise needs) and How (to obtain the solution) of Sun GlassFish Enterprise Server Solution.


Read all about Sun GlassFish Enterprise Server Solution.

Technorati: youtube glassfish solution

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

May 25, 2008

My Pet Street – Using the net to protect your pets

Filed under: web2.0 — arungupta @ 7:21 am
I never had a pet and will probably never do :) But this blog is about a noble cause for pets.

One of my ex-colleagues, and a good friend, Connie Weisss founded MyPetStreet.com. This site connects the Web 2.0 social community with the real-life needs of pets such as support, services and resources in a physical community. My Pet Street is developed and hosted on several open-source technologies including Apache, My SQL, and Drupal.
 

Some key features of the website are:

  • Pet News – Selected News, Pictures and Videos that are “best of the best” on the web
  • Pet Needs – Local and locally-rated service providers. Take some time to rate your favorite providers. If they are not listed, let us know and we can add them.
  • Pets 411 — quickly accessed and efficiently organized expert opinions, pet owner insights, and question/answer forums giving you the best information available for your pet.
  • PetALERTZ – A free Neighborhood Watch  that helps pets return home quickly and safely.

If you are a pet owner, visit the site today (FREE membership) and register your pet, even if they are microchipped, so they can get back to you as quickly as possible.

You can also read the latest news in Connie’s blog.

Technorati: mypetstreet pets

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

May 23, 2008

YouTube, Amazon, Flickr, Google Architectures

Filed under: web2.0 — arungupta @ 4:00 pm

Some interesting reads of highly scalable architectures …

  • YouTube Architecture
  • Amazon Architecture
  • Flickr Architecture
  • Google Architecture
  • PlentyOfFish Architecture

And another interesting piece of information (not sure about authenticity) …

Twitter’s downtime and Average response time

Enjoy the long weekend!

Technorati: architecture scalability website

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

Redmine on GlassFish – Ruby-on-Rails Project Management Application

Filed under: web2.0 — arungupta @ 6:00 am


Redmine is a flexible project management web application written using Ruby on Rails framework. The feature list is pretty comprehensive from the usual suspects like multiple projects, role-based control, forums/wikis/SCM for each project to enterprise level features such as LDAP-authentication and multiple languages. It is cross-platform and cross-database and deploys very nicely on GlassFish v3.

GlassFish v3 modularity and extensibility allows Rails applications to be deployed without any modification (no WARing). This blog explains the steps on how to deploy Redmine on GlassFish and shows some screenshots later. More documentation is available in Redmine Guide.

  1. Check out the most stable release of Redmine by giving the command:

    ~/testbed/redmine >svn co http://redmine.rubyforge.org/svn/branches/0.7-stable redmine-0.7
  2. Configure the database
    1. Start your MySQL server 

      ~/testbed/redmine >sudo mysqld_safe –user root
      Starting mysqld daemon with databases from /usr/local/mysql/data
    2. Create the database as:
      ~/testbed/redmine/redmine-0.7 >../jruby-1.1.1/bin/jruby -S rake db:create
      (in /Users/arungupta/testbed/redmine/redmine-0.7)
    3. Migrate the database as:
      ~/testbed/redmine/redmine-0.7 >../jruby-1.1.1/bin/jruby -S rake db:migrate
      (in /Users/arungupta/testbed/redmine/redmine-0.7)
      == 1 Setup: migrating =========================================================
      — create_table(“attachments”, {:force=>true})
         -> 0.2840s
      — create_table(“auth_sources”, {:force=>true})
         -> 0.0540s
      — create_table(“custom_fields”, {:force=>true})
         -> 0.0430s
      — create_table(“custom_fields_projects”, {:id=>false, :force=>true})
         -> 0.0080s
      — create_table(“custom_fields_trackers”, {:id=>false, :force=>true})
         -> 0.0500s

      . . .

      == 90 ChangeVersionsNameLimit: migrating ======================================
      — change_column(:versions, :name, :string, {:limit=>nil})
         -> 0.0220s
      == 90 ChangeVersionsNameLimit: migrated (0.0220s) =============================

      == 91 ChangeChangesetsRevisionToString: migrating =============================
      — change_column(:changesets, :revision, :string, {:null=>false})
         -> 0.0210s
      == 91 ChangeChangesetsRevisionToString: migrated (0.0230s) ====================

      == 92 ChangeChangesFromRevisionToString: migrating ============================
      — change_column(:changes, :from_revision, :string)
         -> 0.0130s
      == 92 ChangeChangesFromRevisionToString: migrated (0.0150s) ===================

  3. Download, Install and Configure GlassFish v3
    1. Download GlassFish v3 from here.
    2. Unzip the downloaded bundle.
    3. Add the following fragment as the last line in “glassfishv3-tp2/glassfish/config/asenv.conf” file:
      JRUBY_HOME=”/Users/arungupta/testbed/redmine/jruby-1.1.1″
  4. Deploy Redmine as:
    ~/testbed/redmine >./glassfishv3-tp2/glassfish/bin/asadmin deploy redmine-0.7
    Command deploy executed successfully.

    … and the GlassFish console shows:

    May 21, 2008 4:58:30 PM com.sun.enterprise.rails.RailsDeployer registerAdapter
    INFO: Loading application redmine-0.7 at /redmine-0.7
    May 21, 2008 4:58:30 PM 
    INFO: Starting Rails instances
    May 21, 2008 4:58:37 PM 
    SEVERE: JRuby limited openssl loaded. gem install jruby-openssl for full support.
    http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
    May 21, 2008 4:58:42 PM com.sun.grizzly.jruby.RubyObjectPool$1 run
    INFO: Rails instance instantiation took : 11979ms
    May 21, 2008 4:58:42 PM com.sun.enterprise.v3.deployment.DeployCommand execute
    INFO: Deployment of redmine-0.7 done is 12091 ms

That’s it, your application is ready to be used! Here are some screen snapshots from my trial run:


Rails powered by the GlassFish Application Server provides all the good reasons on why you should consider using GlassFish instead of the traditional deployment models for Ruby-on-Rails applications.

This application is also covered in LAB 5539 as part of FREE 20-week Ruby-on-Rails course by Sang “with Passion” Shin.

Technorati: web2.0 rubyonrails jruby ruby glassfish redmine

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

May 22, 2008

Socialsite @ Enterprise 2.0 Conference – Add social networking to your community

Filed under: web2.0 — arungupta @ 6:00 am


Sun Microsytems is a sponsor of Enterprise 2.0 Conference (Jul 9-12, 2008, Boston).

The conference has regular tutorials, keynotes and general sessions, multiple tracks and pavilion (even a free pavilion pass). They also have Launch Pad that allow companies developing new social networking products to compete for the chance to present them in front of the largest audience in the Enterprise 2.0 community.

There are 8 companies in Round 2 and each one of them has submitted a video highlighting their offering. One of the semi-finalists is Project Socialsite – an offering from Sun Microsystems.

Project SocialSite makes it easy to add social networking features to your existing web applications or community sites (running on Java, PHP or Ruby) and turn it into an OpenSocial container. It comes with a comprehensive and highly scalable implementation of social graph, integrates seamlessly with existing identity and authentication mechanism, make it easy to plug into existing directory server or other user management systems.

The submitted video shows how easy it is add social networking features (such as Profile, Friends and Activity) to MediaWiki by adding simple tags. We hope you like the functionality shown and give us a higher rating to help us qualify for finals :)

Follow the conference blog, Facebook group or participate using conference wiki.

Technorati: conf enterprise2.0 socialsite web2.0

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

May 21, 2008

Embeddable GlassFish in Action – Servlet in a Maven project

Filed under: web2.0 — arungupta @ 11:45 pm

Kohsuke announced the embedability of GlassFish v3 – this is really cool! Now you can run GlassFish inside an existing JVM, without the need to start it externally. The API javadocs are available here. This blog explains how to host a Servlet using these APIs and write a simple Maven test to invoke the Servlet – all within the same VM.

The blog creates a Maven project using NetBeans but Maven CLI can be used as well.

In the NetBeans IDE, if Maven plugin is not already installed, then install it using “Tools”, “Plugins”,”Available Plugins”.

  1. Create a new Maven project
    1. Create a new project in NetBeans IDE and select “Maven” types as shown below

      Click on “Next >”.

    2. Take the default “Archetype” as shown:

      Click on “Next >”.

    3. Enter the “Project Name” and “Artifact Id” as shown below:

      and click on “Finish”. The following output is shown in NetBeans Output window:

      This confirms the successful creation of the project.

      The command-line equivalent for all the above steps is:

      mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=org.glassfish.embedded.samples -DartifactId=webtier
  2. Update pom.xml with repositories & dependencies
    1. Expand “Project Files” and open “pom.xml”. Add the following repositories (right after <url>…</url> tags)

      <repositories>
          <repository>
            <id>glassfish-repository</id>
            <name>Java.net Repository for Glassfish</name>
            <url>http://download.java.net/maven/glassfish</url>
          </repository>
          <repository>
            <id>download.java.net</id>
            <name>Java.net Maven Repository</name>
            <url>http://download.java.net/maven/2</url>
          </repository>
        </repositories>
    2. Add the following fragment after “<repositories>” to set the target JDK as 1.5:
      <build>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>2.0.2</version>
              <configuration>
                <source>1.5</source>
                <target>1.5</target>
             </configuration>
           </plugin>
         </plugins>
       </build>
    3. Add the following dependencies (inside “<dependencies>” and after “</dependency>”)
      <dependency>
            <groupId>org.glassfish.distributions</groupId>
            <artifactId>web-all</artifactId>
            <version>10.0-build-20080430</version>
          </dependency>
          <dependency>
            <groupId>org.glassfish.embedded</groupId>
            <artifactId>gf-embedded-api</artifactId>
            <version>1.0-alpha-4</version>
          </dependency>
  3. Add Servlet class
    1. Right-click on “Source packages”, select “New”, “Java Class…” and enter the value as shown below

      and click on “Finish”.

    2. Replace the template class with the following Servlet
      package org.glassfish.embedded.samples.webtier;

      import java.io.IOException;
      import java.io.PrintWriter;
      import javax.servlet.ServletException;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;

      /**
       * @author Arun Gupta
       */
      public class SimpleServlet extends HttpServlet {

          @Override
          protected void doGet(HttpServletRequest request,
                  HttpServletResponse response)
                  throws ServletException, IOException {
              PrintWriter out = response.getWriter();
              out.println(“Wow, I’m embedded!”);
          }
      }

      This is a simple Servlet class.

  4. Add deployment descriptor (this step could be made optional with possibly a default mapping)
    1. In the “Files” window, expand “src”, “main”, right-click and select “New”, “Folder…” as shown below …

      and give the folder name as “resources” as shown …

      g style="width: 724px; height: 498px;" alt="" src="http://blogs.sun.com/arungupta/resource/images/embed-gf-resources-new-folder-name.png">

      … click on “Finish”.

    2. Using the same mechanism, create a new folder “WEB-INF” in “resources”. Right-click on “WEB-INF” and select “New”, “XML Document…” as shown:

    3. Enter the name as “web” as shown

    4. Click on “Next >”, take defaults and click on “Finish”. Replace the content of generated “web.xml” with the following …
      <?xml version=”1.0″ encoding=”UTF-8″?>
      <web-app version=”2.5″ xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>
          <servlet>
              <servlet-name>SimpleServlet</servlet-name>
              <servlet-class>org.glassfish.embedded.samples.webtier.SimpleServlet</servlet-class>
          </servlet>
          <servlet-mapping>
              <servlet-name>SimpleServlet</servlet-name>
              <url-pattern>/SimpleServlet</url-pattern>
          </servlet-mapping>
      </web-app>

  5. Add a new test to invoke the Servlet
    1. In “Projects”, expand “Test Packages” and open “org.glassfish.embedded.samples.webtier.AppTest” as shown:

    2. Add the following fragment at end of the class:
          private final String NAME = “AppTest”;

          public void testServlet() throws Exception {
              int port = 9999;
              GlassFish glassfish = newGlassFish(port);
              URL url = new URL(“http://localhost:” + port + “/” + NAME + “/SimpleServlet”);
              BufferedReader br = new BufferedReader(
                      new InputStreamReader(
                      url.openConnection().getInputStream()));
              assertEquals(“Wow, I’m embedded!”, br.readLine());
              glassfish.stop();
          }

          private GlassFish newGlassFish(int port) throws Exception {
              GlassFish glassfish = new GlassFish(port);
              ScatteredWar war = new ScatteredWar(NAME,
                      new File(“src/main/resources”),
                      new File(“src/main/resources/WEB-INF/web.xml”),
                      Collections.singleton(new File(“target/classes”).toURI().toURL()));
              glassfish.deploy(war);
              System.out.println(“Ready …”);
              return glassfish;
          }

    3. Right-click in the editor window and select “Fix Imports” as shown

    4. Take all the defaults as shown

      and click on “OK”.

    5. The complete project structure looks like:

  6. Run the Test (mvn test)
    1. In Projects window, right-click the project and select “Test” as shown:

    2. The Output window shows the result as:

      Notice how GlassFish v3 started in 598 milliseconds (around 0.5 sec) and all the tests passed.

This is a work in progress and we would like to hear your feedback at and GlassFish Forum.

How are you using GlassFish embeddability ?

Technorati: glassfish v3 embedded servlet netbeans

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

May 20, 2008

FREE 20-week Ruby-on-Rails Programming Course – with Passion!

Filed under: web2.0 — arungupta @ 6:45 am


Sang Shin and Brian Leonard are starting a new free online course of “Ruby, JRuby and Rails Application Development (with Passion!)”. The course is taken online and will start from Jul 15, 2008.

The objective of this course are “This course will go through briefly the basics of Ruby (and JRuby) programming language first.  The rest of the course will be devoted to learning Rails functionality such as Active Record, Active Controller, and Active View.  Attendees will acquire sufficient knowledge in order to write reasonably sophisticated Rails application upon completion.” Read more details here.

In this course, you’ll learn various NetBeans and GlassFish tricks for Ruby-on-Rails development and deployment.

Read the Registration FAQ and send a blank email to to register.

This course runs very much like a regular college course in which the students are expected to do weekly homework after studying the learning material and doing the hands-on
lab. By registering with the email address above, students can ask/answer questions. Some quick links …

  • Course Homepage
  • Topics
  • FAQ
  • Class Forum

It is FREE and can be taken online, so what are you waiting for – !

Technorati: rubyonrails jruby ruby glassfish netbeans web2.0

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