Showing posts from 2007
Get Dropbox for online backup

Programming Language Inventor Or Serial Killer?

Can you tell a coder from a cannibal? Try to work out the quiz named 'Programming Language Inventor Or Serial Killer'!


I scored 8 out of 10.

AdvertisementGet great discounts on Textbooks

Investment Options in India

Bank FDs
Very low risk and low liquidity.Low returns, but assured. Depending on the tenure and bank, could be around 6-9%Since returns are fully taxable, the post-tax returns will be still lower.Good for very low risk investors and those in the nil or low tax brackets.As interest rate scenario seems to be peaking, one could consider investing in 3-5 year FDs.
Low risk and low Liquidity.No assured returns but depending on tenure and the MF, could be around 6-9%. (Ability to deliver the indicative returns).MFs attract much lower taxation and hence give better post-tax returns vis-à-vis Bank FDs.Good for low risk investors, but in high tax brackets. Good for investing the debt portion of one’s portfolio.
Floating Rate Funds
Low risk and high liquidity.Market linked. Today could be around 5-7%.Lower taxation of MFs makes Floating Rate funds …


jConfig is an extremely helpful utility, arming the developer with a simple API for the management of properties. Parts of the implementation are based on the idea that Properties, from Java's perspective, are a good thing, but can be better. jConfig employs the use of XML files for storing and retrieving of property information. The information can be stuffed into nice categories, which makes management quite a bit simpler. The ability to load from a URL is also a nice feature. It allows for a central repository where multiple instances of jConfig can read a single file. The nifty ability to switch between XML and Properties files isn't fully exploited yet, but will be coming soon. That will mean that the developer would take their existing Properties files and export them to XML. That means less time to get up and get going with jConfig.
My team is planning to use JConfig in one of the upcoming projects. If you have a view on JConfig, plz share that experience. Or, if you are…

Monitor and diagnose performance in Java SE 6

Java™ Platform, Standard Edition 6 (Java SE) focuses on performance, with expanded tools for managing and monitoring applications as well as diagnosing common problems. This article outlines the basis of monitoring and management in the Java SE platform and provides detailed information about the relevant enhancements in Java SE 6.

Java SE 6 provides an in-depth focus on performance, offering expanded tools for managing and monitoring applications and for diagnosing common problems. The improvements include:

Monitoring and management API enhancementsOfficial support for an improved graphical monitoring tool called JConsoleEnhanced instrumentation of the Java virtual machine (JVM)
This article outlines the basis of monitoring and management in the Java SE platform and provides detailed information about the performance monitoring and management enhancements in the latest release. It also describes the diagnostic and troubleshooting tools available in the Java SE 6 platform.

Link: Monitor …

Mash - Yahoo's Social Network

Finally, Yahoo! has introduced its next generation social-network. Named Mash, the network is in beta, and is invite only as of now.

Mash borrows some features from Facebook, MySpace, and My Yahoo.
You can load a set of modules onto your profile page and move them around drag-and-drop style. The modules include Flickr RSS, Ego Boost, Common Friends, MyMoshLog2, Blog Feeds (RSS 2.0), Asteroids, Astrology, PimpMyPet, Hover, Kaleidescope, Guestbook, and My Stuff. Seems 3rd party developers would also able to develop modules for mash soon.

One of the interesting change from the rest of the social-networking-gang is the ability to edit friends' pages. Each time you visit your profile page, you may see new modules that others have loaded for you. This capability certainly adds to the “mashing” aspect of the social network!

Though access to Mash is invite only, invites are easily available now. If you want one, just drop your name and email id in the comments.

Link: Y! Mash

AdvertisementGet A…

$4,800 iPhone Bill

Jay Levy and his family took their iPhones on a Mediterranean cruise. Now the Hewlett Harbor entrepreneur feels as if he got taken for a ride, receiving a 54-page monthly bill of nearly $4,800 from AT&T Wireless.

via Erik's Weblog Textbooks

Java 1.5 - Application Memory Monitoring Made Easy

There is a new tool called Java Monitoring & Management Console in 1.5 edition of J2SE (available as %JDK_HOME%\bin\jconsole.exe). Simply set
and start your Application Server or Servlet Container. Launch JConsole tool, and when asked for attaching, pick the appropriate process to attach.

[Pic 1 - Choose a Process to attach to.]

[Pic 2 - JConsole in Action]

I have a JDK 1.6 on W2K machine.

Here is a link from Sun's Java website. Textbooks

Copyright Vs. Contract

With the increasing use of open source softwares around the globe, multiple interpretations of the licensing is causing a lot of heart-burns. The Free Software Foundation has always claimed that Open Source Licenses are copyrights, and not mere contracts. Now, a San Fransisco court has ruled that the said license violation was only a contract violation and not a copyright infringement. The case involves Artistic License. This ruling is contrary to that belief and creates more confusion in an already confused open source license space.

This ruling indicates that the courts and the legal experts do not fully understand the concept of Open Source. What is going to be more interesting is to see how if impacts other licenses.

eWeek Article Textbooks

Replacing DisplayTag

I have been involved in an Intranet application for a big SCM client for around 2 years now. This application is being build on JBoss with Struts 1.1. Since the days of its prototype, DisplayTag has been used for the Grid type functionality. There are a couple of screens which require Grid. Some of the Grids are editable as well. Moreover, there are various complex scenarios attached with them e.g. pressing escape should bring revert the changes done to selected row or tabbing off the row should result in saving of the row among others.
However, now, we are replacing Display Tag with a Grid Applet. The reason being that it is slow to render pages (through pagination).
So, do you have a view here. Any suggestions which applets can be considered? Textbooks

5 ways to speedup javascript


1) use a compressor
JSMin is a filter which removes comments and unnecessary whitespace from JavaScript files. It typically reduces filesize by half, resulting in faster downloads. It also encourages a more expressive programming style because it eliminates the download cost of clean, literate self-documentation.

2) Minimize the number of .js files
Each .js file reference on a web page means another http request from a client's browser. Although it may decrease the readability/maintainability of your code, it is faster to have one larger .js file than multiple smaller ones.

3) use profiler and timer tools
Firebug offers a suite of profiler and timing tools that allows you to see exactly how long your scripts take to execute and gives you the ability to tweak and optimize them.

4) asynchronize your code
Browsers run Javascript code synchronously. This means that when a <script></script> tag has been…

Reference Guide: HProf

InformIT has published a user guide to HProf, the Java profiling tool from Sun.

Sun includes a profiling tool built into the JVM called HProf that can provide you with method-level response times as well as heap information. The JVM provide various programmatic interfaces that allow you to obtain runtime information, and as of Java 5.0 SE, the newest and least invasive is the Java Virtual Machine Tool Interface(JVMTI), which HProf is based on. HProf can be invoked by providing a command line option when you start your Java application and then it generates a log file as output, which you can either examine manually or programmatically parse. Furthermore, HProf executions can be integrated into a build script in order to generate reports automatically.

Using Ajax across multiple domains


XMLHttpRequest, the main component behind AJAX, does not automatically work across multiple domains. This means that you cannot make a request to an ovject on a domain that is different from the web page’s domain. There is an easy solution to this issue: apache’s mod_rewrite module.


function getXMLHttpObject() {
if (window.XMLHTTPRequest) {
return new XMLHttpRequest();
} else if (window.ActiveXObject) {
return new ActiveXObject("Microsoft.XMLHTTP");
} else {
return null;

function handleHTTPResponse() {
if (http.readyState == 4) {
results = http.responseText;

var http = getXMLHttpObject();"POST"."");
http.onreadystatechange = handleHttpResponse;

The above example will fail with both Firefox and Internet Explorer (unless you are running it on a web page located on the yahoo domain). There are other ways to a…

Secret of success

"Sir, What is the secret of your success?" a reporter asked the President of a Bank.

"Two words."

"And, Sir, what are they?"

"Right decisions."

"And how do you make right decisions?"

"One word.'

"And, sir, What is that?"

"Experience. "

"And how do you get Experience?"

"Two words"

"And, Sir, what are they?"

"Wrong decisions ."

12 skills that employers can't say no to

There is an interesting article on titled "12 skills that employers can't say no to"by Mary Brandel, listing skills, some of which are already essential to succeed on-job, some are acquiring that status, and few could acquire that status.
Machine learningMobilizing applicationsWireless networkingHuman-computer interfaceProject managementGeneral networking skillsNetwork convergence techniciansOpen-source programmingBusiness intelligence systemsEmbedded securityDigital home technology integration.Net, C #, C ++, Java -- with an

Online Hindi Radio Stations

Here is the list of Online Hindi Radio Stations. Copy the URL in your media player and enjoy !!

106.2 HUMFM - UAE ==>

AajKal - Asian Network ==>

Amrit Bani - UK ==>

ApnaRadio - USA ==>

Asian Gold Radio - UK ==>

Asian Sound Radio - UK ==>

BBC News ==>

BombayBeats FM ==>

City 101.6 FM - Dubai ==>

DDLive Video - India ==>

DesiSoundz - India ==>

Haagstad Radio - Holand ==> mms:// ==>…

Scrum Vocabulary

A Product Owner compiles all the changes planned for the product and prioritizes the possible functionalities.Sprint is A 1-6 week period in which the delivery team produces (mutually agreed)acceptable product features. Also called Iteration in the Agile methodology.The result of the Product Owner’s work is a Product Backlog. It is a to-do list that is constantly reprioritized. Before each Sprint, the highest prioritized goals are transferred to a Sprint Backlog.Together with a user, the project members form a Scrum Team. During discussions with the Product Owner, the goal of the Sprint is determined and the prioritized functionality is broken down into detailed tasks.The team is self-organized and the members have a joint responsibility for the results.The Scrum Master coaches the development team, removes any possible impediments and constantly works to ensure that the team has the best possible circumstances for realizing the goals fixed for the Sprint.

Scrum in Five Minutes - Executive Summary

In his blog entry, Jeff Sutherland introduces an exceptionally concise introduction to the Scrum development process, titled "Scrum in Five Minutes" . This document is created by Swedish consulting firm Softhouse, and gives a brief outline of the pieces and players of Scrum in whole 16 pages.

For those to Scrum, such summaries can serve as a useful introduction.

Summaries like this can facilitate comparisons between the various flavors of agile development. Some others available are
visual roadmap of Extreme Programming and
What does Lean Software Development Really Boil Down To?

What Is Dojo?

Dojo is an Open Source JavaScript UI toolkit. It makes writing JavaScript easier, building great interfaces faster, and deploying dynamic UIs at scale much easier. The foundation of Dojo is "Dojo Base", a single tiny library which contains Ajax, event handling, effects, blazing fast CSS queries, language utilities, and a lot more. On top of this Base, the rest of Dojo Core adds high-quality facilities for Drag and Drop, extended forms of Ajax and I/O, JSON-RPC, internationalization, and back-button handling.

Layered on Dojo Core is a widget system, Dijit, which makes developing and reusing interface components a snap. If you can write HTML and CSS, Dijit allows you to quickly build reusable client-side components. Similarly, Dojo can use extended attributes on HTML in order to declare where widgets should be placed and how to configure them. Placing a graphical date picker in a page is as easy as adding an attribute to an <input> element. By upgrading standard HTML inst…

Yahoo! User Interface Library

The Yahoo! User Interface (YUI) Library is a rich set of utilities and controls, written in JavaScript. It is used for building richly interactive web applications using techniques such as DOM scripting, DHTML and AJAX. The YUI Library also includes several core CSS resources.

The YUI Library components fall into three groups: Utilities, UI Controls, and CSS resources.

YUI Utilities

The YUI Utilities simplify in-browser devolvement that relies on cross-browser DOM scripting, as do all web applications with DHTML and AJAX characteristics. Various utilities are:
EventDom CollectionConnection ManagerDrag & DropAnimation

YUI Controls

The YUI Library Controls provide highly interactive visual design elements for your web pages. These elements are created and managed entirely on the client side and never require a page refresh.

YUI Controls include:
AutoCompleteContainerDataTable ControlLoggerTabViewTreeViewSliderCalendar
YUI CSS Resources
CSS GridsCSS FontsCSS ResetYUI Library is open sourced un…

New Look n Feel

I have started using a new Blogger template called TypoXP 2, all courtesy Ustadz.Net. I think it is an adaptation from Wordpress theme by the same name.
I am liking this new template a lot, especially its color combinations.
Also, it has a widget for Recent Posts. It has expandable post summaries. Author comments are highlighted. I am also liking its sidebar a lot. Just check it out!

HTTP Status Codes

In a web app, whenever there is a communication between the browser (i.e client) and (web) server, there is a back-and-forth transfer of data. The client sends data to Server for processing. Data is then processed at the server side, and a response is sent back to client, indicating the status of the sent request. The response sent by Server to browser, typically, has a status line, some response headers, blank line, and the document, e.g.

HTTP/1.1 200 OK
Content-Type: text/plain

This is an example of status codes.

Here, the first line indicates the HTTP Version (HTTP/1.1), a status code (200) and a short description of status code (ok). Second line consists of the various headers sent by Server. At mimimal, it has a content type. The data after the blank line indicates the document itself, though not all responses may have a document. If a document is present, the content type indicates its MIME type.

Given below is a list of the commonly used status codes. The status codes are all thre…

Jar, War and Ear files

Jar, War and Ear files are essentially the archived files. There are no structural differences among the three types, though these are intended for different purposes.

Jar: Jar files (Java Archive file : .jar extension) stores of Java classes, resources, auxiliary files, etc. Java source files are compiled and then distributed in jar format.

War files (Web Archive File : .war extension) are intended to contain complete Web applications. A Web Application is a collection of files, classes, resources, .jar files that can be packaged and accessed as one servlet context. Usually, sample web applications are distributed using war format.

Ear files (Enterprise Archive file : .ear extension) are intended to contain complete Enterprise applications. In this context, an enterprise application is defined as a collection of .jar files, resources, classes, and multiple Web applications.

All three types of files can be generated using Ant.

Get complete protection against viruses, worms an…

Optical Illusion

Aoccdrnig to rscheearch at Cmabrigde Uinervtisy, it deosn't mttaer in waht oredr the ltteers in a wrod are, the olny iprmoatnt tihng is taht the frist and lsat ltteer be at the rghit pclae. The rset can be a toatl mses and you can sitll raed it wouthit a porbelm. Tihs is bcuseae the huamn mnid deos not raed ervey lteter by istlef, but the wrod as a wlohe.

River Crossing in Manali

Here is a video of my recent trip to Manali. Manali is a popular north Indian tourist spot.
This video was shot at Manali Club and features me doing a river crossing.

Top Ten Reasons AJAX is Here to Stay

Andre Charland at has compiled a list of reasons that make AJAX a hot property in tech-crazy world.

Top Ten Reasons for AJAX

10. XAML, XUL, XForms...Not Yet.
9. Server Technology Agnostic
8. Web 2.0
7. Adoption Is Strong with Industry Leaders
6. Plays Nicely with Flex and Flash
5. Low Incremental Cost
4. Benefits of Regular Web Applications
3. Cross Browser and Cross Platform
2. Usability and User Experience Are King
1. Open Standards Based

Top Ten Reasons AJAX is Here to Stay

[Humor] Copy n Paste

A well known motivational speaker gathering the entire crowd's attention, said "The best years of my life were spent in the arms of a woman who wasn't my wife"
The crowd was shocked...
He followed up by saying, "That woman was my mother"
The crowd burst into laughter and he gave his speech, which was well received.
About a week later, one of the top managers of an organization who had attended the speech decided to use that joke at his house. He tried to rehearse the joke in his head. It was a bit foggy to him.
He said loudly, "The greatest years of my life were spent in the arms of a woman who was not my wife"
Naturally, his wife was shell shocked, murmuring.
After standing there for almost 10 seconds trying to recall the second half of the joke, the manager finally blurted out "... and I can't remember who she was"
As expected, he got the thrashing of his life time...

Moral of the story:
Don't copy if you can't paste JJJ

[Received in …

Show'em Who's Boss

Received this seriously funny pic in an email forward :)

How true it is!

If you just focus on fixing someone...

Rajesh Setty of Life Beyond Code has this inspiring entry about 'fixing' people.

Your spouse wants to fix you.

You want to fix your spouse.

Your parents want to fix you.

You want to fix your children.

Your teachers want to fix you.

You want to fix your teachers.

Your boss wants to fix you.

You want to fix your boss.

Your colleagues want to fix you.

You want to.. well you get the point.

Wanting to fix someone whether right or not has one problem. In your quest to fix that someone, you forget to leverage the strengths of the that person for the benefit of both.

Next time, before you attempt to "fix" someone, why not focus on what that person brings to the table and see how best both of you can benefit from it?

Java 6 Feature : Working with Derby Database

The Java 5 and Java 6 releases have introduced some significant changes. While Java 5 introduces new features (e.g. Generics, Variable arguments, Enhanced for loop, Boxing/unboxing, Type-safe enumerations, Static import, Metadata), Java 6 installation includes a lightweight database known as Derby.
Derby is actually an Apache Database project. Derby is a transactional, relational database and provides a small footprint on disk. When you install Java 6, core libraries, example programs, and a sample database gets automatically installed.
Derby has a command-line tool called ij. This tool provides a way to connect to and manipulate Derby databases.

To connect to Derby is quite easy. You need to have following jar files in the classpath to enable you to access Derby:
The derby.jar has JDBC drivers, while derbytools.jar contains the ij tool.

Once you have configured the classpath for Derby, open the command prompt, …

Developing a Spring Framework MVC application step-by-step

Recently, I started reading on Spring. I was looking for an example application code, and then, I came across this article on The article is quite old (first written in July 2003, and then revised in April 2005), but quite relavent to topic. This is a hand-holding type of tutorial and develops an application from scratch, covering various Spring components, and even talks to HSqlDB, with JUnit test cases. Ant is used for deployment. It takes not more than 2-3 hours to develop the complete application.

Application is covered in 4 steps:
Basic Application and Environment SetupDeveloping and Configuring the ApplicationAdding Unit Tests and a Form to the ApplicationImplementing Database Persistence
The tutorial assumes a Tomcat installation, but then u can develop it for any servlet engine or application server (e.g. i did it for JBoss).

it is a good exercise if u r new to Spring, or want to have a first hand look at Spring.…

Java 5 Feature: Static Imports

Static imports are another convenience feature added to version 1.5 that extends the way imports work in Java. For example, consider the code fragment shown below that calls the static ceil() method on the java.lang.Math class

// x is a number of type double such as 98.765
double y = Math.ceil(x);

With static imports in 1.5, you can ask the Java compiler to import only a class's static portions, as shown, for example, in the rewritten code fragment below:

// Import declaration at the top of the class along with the other imports
import static java.lang.Math.ceil;

// And then somewhere in the code...

// x is a number of type double such as 5.345
double y = ceil(x);

In the above fragment, I used the new static import feature to import the static method ceil() from the Math class. Now when I call the method, I don't have to qualify it with Math. If I wanted to use multiple static methods from the Math class, I could import them individually or all at once as shown below:

// Import all stat…

Free eBooks on your cell

The jkOnTheRun blog points out a mobile e-book service, in Free eBooks on your cell:
Manybooks is mobile!, which points out that " (a public domain / free eBook site) provides a mobile version of their offerings for Java-based cellphones! Point your browser to and you can download an eBook in .jar format for reading on the go. If you use Mobipocket reader on a handheld, you can also use the mobile site for Mobipocket format books."
Though these are non-DRM titles, Manybooks states that there are over 16,000 titles available.


New Features in Java 5

Several useful features have been introduced in Java 5.
Generics: A way to make classes type-safe that can work on any type, such as narrowing an instance of a collection to hold a specific object type and eliminating the need to cast objects when taking an object out of the collection.Enhanced for loop: A cleaner and less error-prone version of the for loop for use with iterators.Variable arguments: Support for passing an arbitrary number of parameters to a method.Boxing/unboxing: Direct language support for automatic conversion between primitive types and their reference types (such as int and Integer).Type-safe enumerations: Clean syntax for defining and using enumerations, supported at the language level.Static import: Ability to access static members from a class without need to qualify them with a class name.Metadata: Coupled with new tools developed by third-party companies, saves developers the effort of writing boilerplate code by automatically generating the code.

Better GMail : Cool Firefox extension

Found Better GMail firefox extension (via delicious). Adds a menu of optional extra features to Gmail (Macros, Label Colors, Filter Assistant, Conversation Preview, Attachment Reminder, Attachment Icons, Saved Searches).

Better GMail Firefox extension

Management Lessons for Developers

Others may say that developers can't be managers, but I fail to accept that; I just think developers need to get the basics about management in short, easy-to-remember doses. With that, I now offer the "Five-Minute Manager":

Lesson #1: Communication

A man is getting into the shower just as his wife is finishing up her shower, when the doorbell rings. The wife quickly wraps herself in a towel and runs downstairs. When she opens the door, there stands Bob, the next-door neighbor.

Before she says a word, Bob says, "I'll give you $800 to drop that towel."

After thinking for a moment, the woman drops her towel and stands naked in front of Bob. After a few seconds, Bob hands her $800 and leaves.

The woman wraps back up in the towel and goes back upstairs. When she gets to the bathroom, her husband asks, "Who was that?"

"It was Bob the next door neighbor," she replies.

"Great," the husband says, "did he say anything about the $800 he ow…

Process Improvement – Is it a Lottery?

The Methods & Tools newsletter has just released in its html archive section the article "Process Improvement – Is it a Lottery?" by Paul Morgan। This article provides an overview of the approach utilized to implement process improvement across its global organization without losing focus of its business drivers। It provides a practical overview of how over a four year period an organization moved from CMM® Level 1 to Level 3 and is currently transitioning to CMMI® Level 4. It will provide a candid insight including lessons learned and approaches adopted to achieve success. It will also provide examples of significant and measurable business benefits that can be accrued from adopting a documented and repeatable process improvement framework.

A common mistake made by companies when implementing process improvement is to allow the chosen model to dictate the process design. The CMMI® is a model that needs to be interpreted based upon the business environment and technical n…

Blogging in Hindi

रजनीश अपने ब्लोग पर आप का सवागत कर्ता है! अब आप ब्लॉगर पर हिंदी में भी ब्लोग्गिंग कर सकते है! आप यहाँ कुछ भी हिंदी में लिख सकते है, और हिंदी और इंग्लिश को मिक्स करके भी लिख सकते है।

Now, u can post Hindi entries on your blogspot blog.

"Blogger offers an automatic transliteration option for converting Roman characters to the Devanagari characters used in Hindi. This lets you type Hindi words phonetically in English script and still have them appear in their correct alphabet. Note that this is not the same as translation -- it is the sound of the words that are converted from one alphabet to other, not their meaning."All u r required to do is to enable transliteration option in settings, and u r all set to blog in Hindi!

This is a good step, though a bit late, by Google to allow Hindi on its products. I wish 2 see more regional languages (not only from India, but across the world) on various Google products.
थैंक्स ग…

An Overview of Object-Relational Mapping (ORM)

It is no secret that RDBMS' are the most common type of databases in a majority of organizations today when compared to other formats (e.g. object-oriented, hierarchical, network).

A majority of the software applications that use relational database and OO languages end up writing code to map the relational model to the OO model. This can involve anything from cumbersome mapping code (because of the use of embedded SQL or SP calls) to heavy-handed technology, such as EJB's entity beans.

Because most of us seem to like both relational databases and OO, Object-Relational Mapping (ORM) has become a natural choice for working with POJOs (plain old Java objects), especially if you don't need the distributed and secure execution of EJB's entity beans (which also map object attributes to relational database fields).

Although you still need to map the relational model to the OO model, the mapping is typically done outside of the programming language, such as in XML files. Also, o…

What is at is part of the O'Reilly Network.The Perl Foundation is an advocacy organization for the Perl language which maintains the web site as a general advocacy site for the Perl language. It uses the domain to provide general support services to the Perl community, including the hosting of mailing lists, web sites, and other services. The web site is a general advocacy site for the Perl language, and there are many other sub-domains for special topics, such as Mongers uses the domain for services related to Perl user groups, including the hosting of mailing lists and web sites. See the Perl user group web site at for more information about joining, starting, or requesting services for a Perl user. is the Comprehensive Perl Archive Network, a replicated worldwide repository o…

What is service-oriented architecture?

Service-oriented architecture (SOA) is an evolution of distributed computing based on the request/reply design paradigm for synchronous and asynchronous applications. An application's business logic or individual functions are modularized and presented as services for consumer/client applications. What's key to these services is their loosely coupled nature; i.e., the service interface is independent of the implementation. Application developers or system integrators can build applications by composing one or more services without knowing the services' underlying implementations. For example, a service can be implemented either in .Net or J2EE, and the application consuming the service can be on a different platform or language.

Service-oriented architectures have the following key characteristics:
SOA services have self-describing interfaces in platform-independent XML documents. Web Services Description Language (WSDL) is the standard used to describe the services.SOA serv…