Sunday, November 29, 2009

IBM Timeline

IBM has done some pretty neat things over the years.

Friday, November 27, 2009

Yet another blog post

Ok, documenting some four letter acronyms that I have been using for some time now.

YALD - Yet another long day

YALN - Yet another long night
Do not get any wrong ideas :). This just refers to another night spent in office while writing/debugging/cursing/etc some code. And of course listening to Pink Flyod at 5 in the morning... I have become comfortably numb...

YAIP - Yet another impromptu presentation
Something funny always happens in a last minute presentation/demo. You find a bug in the code at the last minute which breaks everything (and you need some hacks to get things going), or during the presentation you are staring at a slide (given to you by someone just before the presentation) and trying to make some sense out of it :)

Looks like I have come up with another acronym while writing this - YABP (see the title)

PS: My favorite hack.. so far
for( String name : Names ) {
if ( name.equals("ABC") ) {
// do something meaningful now :)

Monday, November 23, 2009


What is hashing?
Hashing can be thought of as a mapping of a set of values(S) to a set of discrete points(k1-kn) on a line (one dimension).

Generally the range of S is much larger than n, but count(S) is lesser than n. As a result most hash functions will try to distribute elements of S uniformly among the available keys. But there are bound to be collisions as in most situations perfect hashing is not possible.

Perfect hashing is possible when you know S in advance (a rare scenario). In this case you can simply have k1=1, k2=2 and so on.

Hashing in 2-D, 3-D... n-D
With hashing in one dimension collisions are inevitable. But if you think in 2 dimensions, then you are trying to map S to discrete values in a rectangle ( 32 bit squares in practical implementations). What this really means is that you generate 2 keys for the same element Si. The chances of collision decrease significantly in this case. For instance two 32 bits hashcodes used together are going to be much better than a single 64 bit hashcode.

In a similar way 3 hashcodes can be thought of as mapping S to a cuboid (32 bit cubes), and so on till n dimensions.

Saturday, November 21, 2009

Rational Insight on the IBM Developer Cloud

Demo of the usage of Rational Insight on the IBM Developer Cloud

Why IBM Developer Cloud ?
The cloud saves costs in aquiring, installing, configuring and managing software

Integration between Rational Focal Point and Rational Project Conductor

This video demonstrates the integration between portfolio and project management. See how a project proposal created in Focal Point becomes a project in Project Conductor and how the two applications share data.

Demonstrates a project's round trip journey between Focal Point and Project Conductor. Projects are prioritized and approved in Focal Point, sent to Project Conductor for execution, and finally reviewed back in Focal Point.

Rational Project Conductor is built on the Jazz Foundation and is available for download from

An overview of Rational Project Conductor

Thursday, November 5, 2009

JavaScript Development Toolkit (JSDT) – Getting Started

What is JSDT?
  • A JavaScript IDE for Eclipse based on the Java Development Tools (JDT)
  • Has many of the rich editing features of JDT, facilities for error detection and correction, detailed flow analysis etc
How to get it?
  • As part of Eclipse IDE for Java EE Developers (since Eclipse 3.4)

  • By adding ‘Web tools platform’ to plain Eclipse

  • Also part of Rational Application Developer (RAD)
Pain Points in JavaScript Development
  • Text editor, firebug and browser refresh were the best tools available
  • Minimal content assist
  • Minimal static validation
  • No refactoring support
  • No source code navigation support
JSDT Library mechanism
  • Library mechanism to manage common objects, variables, and types in a project
  • JSDT library : prototyped object/class definitions and JSDoc
  • Prepackaged libraries
  • User defined libraries

  • Content assistance

  • Script validation and error detection

  • Quick Fix

  • Refactoring

  • Same-word highlighting

  • Source code navigation