Sun Alumni Blogs

"Nissan regards the following three issues as paramount: reducing carbon dioxide (CO2) emissions; minimizing emissions to preserve the atmosphere, water and soil; and the recycling of resources (reduce/reuse/recycle). The Nissan Green Program is a mid-term environmental action plan with focused objectives and activities meant to tackle these three key issues. We achieved virtually all of the objectives we set for the previous plan, Nissan Green Program 2005. The Nissan Green Program 2010 sets new objectives and plans between now and 2010.


read more


Image courtesy Nissan (Sacramento, CA, Nov 24, 2009) Nissan North America announced today he lease of an X-TRAIL Fuel Cell Vehicle (FCV) to Sacramento Coca-Cola Bottling Co.  This is Nissan's first commercial lease of an FCV in North America.&n...



In September 2008, when fledgling vehicle
manufacturer Aptera named Paul Wilbur president and CEO, the 27-year Detroit auto
executive set forth a series of financial goals and product deadlines. “Aptera’s
production and delivery will be tied directly to funding,” said Wilbur.
During the past 12 months, the company’s initial offering – the aerodynamic Aptera 2e,
an all-electric, three-wheeled two-seater that gets the equivalent of 200-plus mpg – has
evolved from concept to near reality.


read more


Burdens of past should not drag the wishes of future. Ram Temple is a similar issue that has become a playground to gain political mileage. Its in the news again and of course thanks to Congress for giving BJP an issue, once again. You would be politically naive to believe BJP leadership had no knowledge of plans of bringing the disputed structure down while in power in the state where it

An elite division of Blackwater plans targeted assassinations of suspected Taliban and Al Qaeda operatives in Pakistan. And everyone's denying it. At a covert forward operating base run by the US Joint Special Operations Command (JSOC) in the Pakistani port city of Karachi, members of an elite division of Blackwater are at the center of a secret program in which they plan targeted assassinations of suspected Taliban and Al Qaeda operatives, "snatch and grabs" of high-value targets and other sensitive action inside and outside Pakistan, an investigation by The Nation has found.


read more


Recently I decided to add Google Adsense to my website at, it has four frames - logo, banner, left-side navigation and the right bottom main frame:

|Logo Frame | Menu Bar Frame|
|                       |                                  |
|Navigation  |Main Frame           |
|Frame          |                                   |

I first tried the "Open results within my own site", and put the Navigation page as the URL, it doesn't work, putting the home page of http://www.openl10n.org doesn't work either, and obviously "Open results on Google in the same window" is not what I want since the results will be shown in the narrow left side frame, then I decided to open a new window by selecting the "Open results on Google in a new window", but after investigating its source code, I found a target = "_blank", that sounds very familiar, why not try it using target = "main"? And it works!

So here is what to do: Select "Open results on Google in a new window" and generate the code, after posting the code to the navigation.html, I changed the target="_blank" to target="main", that's it! See http://www.openl10n.org for the actual codes.

As discussed in a few previous posts, I’m on a mission to get my project’s SOA Suite builds to work without having to rely on a local installation of JDeveloper 11g with the added SOA Extension.

I’ve continued to make progress (with the help of Mayur – thanks) and we’ve now got compilation, packaging, deployment, and Unit Testing to work. We’ve still to tidy up our scripts so that they’re ready for publishing for public consumption, but in the meantime, I thought I’d put out some snippets which will help the enthusiastic to get to where we have.

Getting your Jar dependencies into Artifactory

My aim was to depend on Maven (and JFrog Artifactory) for our dependencies as much as possible. Where we could use publicly available Jars from the standard repositories we did. Sadly this turned out to be very infrequent. It did mean however that there was another reason to download and install Artifactory. This was very simple. We downloaded the Standalone version and ran it using the embedded Jetty. The only thing I needed to change from the default settings was to set a proxy (we’re behind a firewall.)

I then had to manually add all the Oracle dependencies which I had identified to ext-releases-local (Artifactory’s default Local repository for third party libraries). I had logged in as an Admin, and using the “Deploy” tab added them one at a time.

When I’d finished, it looked like this (apologies for the crappy screen grabs):

artifactory-structure-1 

artifactory-structure-2

artifactory-structure-6 artifactory-structure-3

artifactory-structure-4

 artifactory-structure-5

NOTE: It might be nice to bundle all these up as an artifacts bundle. I’ve not had the time to do this yet.

This meant we were now ready to link Ivy up to all of this.

Connecting Ivy and Artifactory

Next we had to tell Ivy to use either its local cache, or Artifactory, for all its dependency lookups. To do this, I created a new ivysettings.xml file with the following content:

<ivysettings>
    <settings defaultResolver="chain" />
    <resolvers>
        <chain name="chain" returnFirst="true">
            <filesystem name="local">
                <ivy pattern="C:/Documents and Settings/aharmel/.m2/repository/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            </filesystem>
            <url name="shared">
                <artifact pattern="
http://build-xp-10:8081/artifactory/repo/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            </url>
            <url name="public">
                <artifact pattern="
http://build-xp-10:8081/artifactory/repo/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
            </url>
        </chain>
    </resolvers>
</ivysettings>

This meant that when an ivy:resolve target was called, the local Ivy cache would be looked up first, and if that was not successful, then artifactory would be checked for both shared and public lookups. This meant that we would cache those dependencies which were available publicly in Maven, speeding up the second, and all subsequent lookups.

Using Ivy to get the dependencies in the Ant files

Penultimately (is that a word? I doubt it), we created an ivy.xml file containing all our dependencies and different configurations:

<ivy-module version="2.0">
    <info organisation="example" module="example-dummy" />

    <configurations>
        <conf name="base" description="Jars required at both compile and runtime" />
        <conf name="taskdefs" description="Jars required for Ant Taskdefs" />
        <conf name="compile" description="Jars required at compile / package time" />
        <conf name="deploy" description="Jars required at deploy time" />
        <conf name="test" description="Jars required at test time" />
    </configurations>

    <dependencies>
        <dependency org="oracle/soa/bpel" name="orabpel" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/soa/bpel" name="orabpel-validator" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/soa/bpel" name="orabpel-common" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/soa/bpel" name="orabpel-thirdparty" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/soa/fabric" name="fabric-runtime" rev="11.1.1" conf="compile,taskdefs->default" />
        <dependency org="oracle/soa/mgmt" name="soa-infra-mgmt" rev="11.1.1" conf="compile,taskdefs->default" />
        <dependency org="oracle/soa/fabric" name="soa-infra-tools" rev="11.1.1" conf="compile,taskdefs->default" />
        <dependency org="oracle/soa/fabric" name="testfwk-xbeans" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/fabriccommon" name="fabric-common" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/xdk" name="xmlparserv2" rev="11.1.0" conf="compile->default" />
        <dependency org="commons-logging" name="commons-logging" rev="1.0.4" conf="compile->default" />
        <dependency org="commons-digester" name="commons-digester" rev="1.7" conf="compile->default" />
        <dependency org="commons-beanutils" name="commons-beanutils" rev="1.6" conf="compile->default" />
        <dependency org="commons-collections" name="commons-collections" rev="3.2.1" conf="compile->default" />
        <!--dependency org="commons-cli" name="commons-cli" rev="1.1" conf="compile,deploy->default" /-->
        <dependency org="oracle/commonj-sdo" name="commonj-sdo" rev="2.1.0" conf="compile->default" /> <!-- This is a hack as the Oracle JDeveloper one is different from the one in M2 repositories -->
        <dependency org="oracle/logging-utils" name="oracle.logging-utils" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/dms" name="dms" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/webservices" name="orawsdl" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/mds" name="mdsrt" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/jmx" name="jmxframework" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/adf/share" name="adf-share-base" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/adf/share" name="adf-logging-handler" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/odl" name="ojdl" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/http-client" name="oracle-httpclient" rev="11.1.1" conf="compile,deploy->default" />
        <dependency org="oracle/wsm/common" name="wsm-policy-core" rev="11.1.1" conf="compile->default" />
        <dependency org="oracle/classloader" name="oracle-classloader" rev="11.1.1" conf="compile->default" />
        <dependency org="com/bea/core" name="com-bea-core-apache-commons-lang" rev="2.1.0" conf="compile->default" />
        <dependency org="com/bea/core" name="com-bea-core-xml-xmlbeans" rev="2.2.0.0" conf="compile->default" />
    </dependencies>
</ivy-module>

NOTE: I haven’t managed to get Ivy to load configurations for the taskdefs yet (see below). I’ll update this post when I get it to work

NOTE: Only the configurations for compile/package and deploy are included in this. It’s pretty easy to add the declarations for the other paths you need to set. I’ll repost this once it’s complete.

The final step was to add Ivy support to the out-of-the-box ant files.  To do this we;

  1. Added the ivy.jar to our ant/lib directory
  2. Added the Ivy namespace to the ant file: 
  3. <project xmlns:ivy="antlib:org.apache.ivy.ant"
             name="ant-scac"
             default="scac">

  4. Removed the elements setting all classpaths (e.g. scac.tasks.class.path in ant-scac-compile.xml)
  5. Added a new path declaration just for the taskdefs. E.g.: 
  6. <!-- Set the Path we need for the Ant Taskdefs -->
        <property name="oracle.ant.taskdef.path" refid="oracle.ant.taskdef.path"/>
        <path id="oracle.ant.taskdef.path">
            <fileset dir="${applications.home}/lib">
                <include name="fabric-runtime.jar"/>
                <include name="soa-infra-mgmt.jar"/>
                <include name="soa-infra-tools.jar"/>
            </fileset>
        </path>

  7. Updated the taskdef declaration elements to use this new path. E.g:  <taskdef name="scac" classname="oracle.soa.scac.scac" classpath="${oracle.ant.taskdef.path}" />
  8. Added a new “init” task which sets the path we removed earlier (e.g. scac.tasks.class.path in ant-scac-compile.xml):
  9. <target name="init" description="Sets up the compilation classpath">
            <ivy:resolve />
            <ivy:cachepath conf="compile" pathid="scac.tasks.class.path" />
            <property name="scac.tasks.class.path" refid="scac.tasks.class.path"/>
        </target>

  10. Updated the targets to have a dependency on “init”. E.g.:
  11. <target name="scac" description="Compile and validate a composite" depends="init">
            <scac input="${scac.input}"
                  outXml="${scac.output}"
                  error="${scac.error}"
                  appHome="${compositeDir}"
                  failonerror="true"
                  displayLevel="${scac.displayLevel}">
            </scac>
        </target>

And that’s it. Unfortunately there’s not a zip file you can download with a few bat/sh files to run, but maybe I’ll get there one day. In the meantime, this should help you to get where we have.

Yesterday, I wrote my first major exam at NTU and it was a new experience all together. I have to say that the way the exam was conducted was not much different from what it was in India. There was the same final minute preparations from the students outside the exam hall, the same sound of frantic flipping through pages, which makes you more nervous than the person flipping the pages actually is, and the similarities dont end there. I feel that these similarities actually exist because, these are some things which are universal. Where ever you are in the world, students are nervous about exams, some are confident and make the people who are nervous even more nervous, students have a feeling they have forgotten what they have studied over the course of the semester and hence try to recollect everything by browsing through the complete notes within 20-30 minutes, etc, etc.

Having said that, there were some marked differences between exams in India and exams in Singapore. First difference is that in India, we used to write the exams in the same classrooms where we attended lectures over the semester. But here, there are dedicated exam halls which have an 'aura of an examination' emanating from them. These exam halls are not just a room with desks and chairs, they are multi-leveled halls. There are toilets WITHIN the exam hall. The ground floor is where the students sit and write the exams and the first floor houses the toilets. This saves considerable time for students who want to use the toilets during the exam (not that I used it).

Secondly, here, you are allowed to take you cell phones inside the hall, but in switched-off mode. I know that the result is the same, but it was worth mentioning to highlight the fact that the were no restrictions on what the students carried inside the exam hall as long as they didnt use them in illegal ways. You cannot imagine the invigilator allowing you to carry a cell phone inside an exam hall in India.

Thirdly, in Singapore, the halls get freezing cold as time progresses. Not that it is unique to an exam hall as every room here is air-conditioned, I felt cold for the first time in Singapore inside an air-conditioned room. For the next exam I will be carrying my jacket with me, just in case...

Finally, one of the most important differences lie in the fact that, the questions in an exam in Singapore are more application oriented, i.e. they consist of problems which require some amount of thinking to solve. In India, 70% of the paper used to be filled with theoretical questions. So, most of the people used to answer them correctly and hence if you were not able to answer all the questions, it would be sign of bad omen. But here, you can always be sure that not everyone will be able to solve all the problems as they 1)require time to think, which is a resource that you cant enjoy, and 2)There are bound to be some really tough problems which test your ability. So, you can still come out of an exam having a good feeling about yourself even though you were not able to answer all the questions. But, me being a perfectionist, find it hard to accept that not being able to solve a problem should not be much of a concern.

So, to sum up, there are some notable differences between how the exams are conducted in Singapore, but in the end, one thing remains the same whether it is in India or Singapore. Students are stressed about exams and the pressure to do well will always be there!
Anthropogenic Global Warming (AGW) has been exposed as the greatest hoax since the Piltdown Man.

In a caper reminiscent of the Pentagon Papers, a hacker broke into the computers at the University of East Anglia’s Climate Research Unit (aka Hadley CRU) and released 61 megabites of confidential files onto the internet.

These emails, now available for all to read on the Internet, expose conspiracy, collusion in exaggerating warming data, possibly illegal destruction of embarrassing information, organised resistance to disclosure, manipulation of data, private admissions of flaws in their public claims and much more.

Google ClimateGate and AGW hoax for more data than you can read in one sitting.

Perhaps the Global Warmists will quietly fold their tents and leave the true environmentalists to saving wetlands and safeguarding water supplies.

I do not see a great future for Al Gore's carbon credit trading schemes.

Photo courtesy NissanThe Nissan LEAF was first disclosed to the public on Aug 2 and it is expected to be for sale on the market in late 2010.  This fall and winter Nissan is taking the LEAF on a tour of the U.S. to raise awareness about this ve...



The workflow module allows the creation and assignment of arbitrary workflows to Drupal node types. Workflows are made up of workflow states. For example, a workflow with the states Draft, Review, and Published could be assigned to the Story node type.

Transitions between workflow states can have actions assigned to them. In our example, we could assign an action so that when the story moves from the Draft state to the Review state an email is sent out.


read more


And Ricky Gervais proves it with the “truth” that is in the book of genesis……It’s ten minutes, and it’s hilarious. The title is pejorative, not really true…..




Reno has a great local FM radio station KTHX branded as 100.1 The X. The X has been in Reno for 19 years. Last night they celebrated their birthday  by having a concert for charity. Stones For Bones featured 19 local bands, one for each year The X has been in business. Each band played a different Rolling Stones song.The concert benefited The Nevada Opera, The Reno Chamber Orchestra, and The Washoe County School District's "Music In Schools" program.

Blue Haven at Stones for Bones 

It was a great concert. You would think that with 19 bands it would drag but you really have to give credit to the people who organized the show. It moved quickly and was fun! In addition to the bands there were also a couple of Rolling Stones songs performed by people from The Reno Chamber Orchestra and The Nevada Opera. There was even a performance of  You Can't Always Get What You Want by a choir from a local elementary school with the opera singers and the chamber orchestra.  They all seemed to be having a great time and the audience loved it. To hear kids, opera singers, and violins playing The Rollings Stones was funny and great!

Not only was the music great but the whole event was just plain fun. Reno has always had a great music culture. It started back when every casino had an orchestra and it continues today. All 19 bands in this concert were good and some of them were great. It sounded like what was happening back stage was amazing too with the musicians connecting, talking, and generally having a good time. The audience of 500 filled the Nugget show room and we had great time too.

Guitar Woody & The Boilers