Steven may not have been a rock star but his presentation on PL/SQL Best Practices definitely ROCKED! Its been the most entertaining, informative and positively INSPIRING tech talk I’ve ever attended (and believe me, with 10+ years in the IT industry I’ve attended quite a few and given some of my own as well) 🙂

I really really wanted his slide set to convey all those high quality ideas to my team mates in office, and was delighted to see he’s so generously put them on the net: SQL Training and presentations (Unfortunately I had some trouble downloading a couple of them) Though I took down a lot of notes, I just cant wait to get my hands… er mouse… on the main thing! 🙂

His presentation really changed my perspective of PL/SQL programming, and the best part of it was packed with so many invaluable insights beyond the core topic!

What really impressed me was the huge contribution he was making to the industry in terms of books, open source tools, presentations and other material which he’s made freely available on his website – enriching the quality of his own life as well as everybody else’s. At dinner time I asked him for an autograph, and he wrote me some very nice words “Dear Sanjay, May your code bring peace and satisfaction” 😎


Also see: His younger sons art website: Chris Silva and don’t miss the artistic statement – just to appreciate the quality of life that’s possible.

Here are some excerpts from this site which I came across from Kalyan’s Doughnut Blog

Your business is not what
you sell, it’s who you serve. So…
Give 'em the Pickle!
Give ’em the PICKLE!

PICKLES are those special or extra things you do to make people happy. It’s a hand written thank you note with every order shipped. It’s walking the customer to the item they’re looking for rather than pointing… or maybe it’s simply calling them by name. The trick is figuring out what your customers want and then making sure they get it. That’s the message behind Give ’em the PICKLE!


Give ’em the PICKLE Key Learning Points…

Make serving others your #1 Priority. You work
in a noble profession, be proud of what you do.
Choose your Attitude. How you think about your
customers, is how you will treat them.
Set high standards, and stick to them. Customers
return because they like what happened last time.
Look for ways to make each other look good. In the end,
everything ends up in front of the customer!

Further reading…

The below are excerpts from a couple of websites…


We all know the drill: Don’t reinvent the wheel. Re-use code. Rely on libraries of pre-built code. And yet so few of us do it. One way to avoid “deja code”, that feeling you’d written this algorithm before, is to generate code rather than write it manually. Code generation offers tremendous promise, in terms of both productivity and code quality.

Improve productivity and code quality with QCGU

PL/SQL developers spend lots of time writing the same kind of code over and over again, much of it based on the underlying tables, views and programs with which we are working. To save time, we frequently take a “quick and dirty” approach, which is often incomplete and error-prone.

QCGU offers a new approach: choose a template from the QCGU repository (or build your own) that reflects the pattern of code you want to write. Then run that template for a particular database object (usually a table or a program). QCGU will then generate the code in a fraction of the time you would need to write it yourself.

You can think of QCGU as a “design pattern factory,” allowing you to generate virtually any sort of code you want (not just Oracle PL/SQL!). But of course most developers aren’t going to sit around writing patterns. You will most likely take advantage of QCGU in one of the following ways:

1. Generate table API packages (packages that contain procedures and functions that perform most commonly-needed SQL operations). Specifically, QCGU generated three packages: the Change Package ([tablename]_cp) to perform DML; the Query Package ([tablename]_qp) to perform queries; and the Type Package ([tablename]_tp) to provide pre-defined declaration types. You then call the appropriate program in your application code and skip writing the SQL!

2. Utilize the QCGU error management framework. QCGU utilizes in its table API packages a standard error management package named qd_runtime, which in turn writes to the log table (qd_log) and error tables (qd_err_instance and qd_context). You can use this same generalized error management framework in your own applications.

QCGU is FREEWARE! Quest Software invites you to take advantage of this powerful tool, but it offers no support for this product. Instead, press the Support tab on the top of this page and follow the link to the online community, where other users of QCGU will help you.

Also see:


PS: Note that installing qcgu creates a lot of tables of its own in the schema.

This is a pretty good program – thanks to Conan who sent me a link. It reminds us to take breaks during computer usage. It really helps to avoid the almost invisible physical strain that we are inadvertently causing to ourselves. The animated excercises are pretty cool!

I tried this software today and at first it was quite annoying to be interrupted every now and then with reminders. Takes a bit of getting used to it and understanding its value for one’s own health. A meditator can also use the breaks even more effectively. Its possible to not lose the continuity of working inspite of taking most of the breaks it suggested (sometimes I had to click on the Skip button!) At the end of the day using it, it was quite refreshing actually!


Enter the site 

Workrave is a program that assists in the recovery and prevention of Repetitive Strain Injury (RSI).

The program frequently alerts you to take micro-pauses, rest breaks and restricts you to your daily limit.

Workrave: Screenshots

Workrave Download

Btw, another similar commercial product.


See also: My own RSI Story

Sometimes we need to really ramp up during a critical phase, getting different teams to work together. That’s where a war room comes into picture. Below are excerpts from some web pages.

Working Together In “War Rooms” Doubles Teams’ Productivity, University Of Michigan Researchers Find

Teams of workers that labored together for several months in specially designed “war rooms” were twice as productive as their counterparts working in traditional office arrangements, a study by University of Michigan researchers has found.The before-and-after questionnaires showed that workers liked working in the war rooms better than they expected to and were not as distracted by nearby colleagues as they thought they would be. In interviews, the workers said they learned to tune out distractions and tune in when something important was happening. Indeed, overhearing one another’s conversations and watching one another’s activities probably had a lot to do with the productivity surge, the researchers believe. When a worker was stuck on a software-coding problem, others passing by would stop and offer help. And when one team member was explaining something to another, others could overhear and interject clarifications and corrections. The privacy issue was resolved by having a few private cubicles, equipped with telephones and computers, available near the war rooms. Workers used these mainly for making personal phone calls, such as calling a bank to check on a loan or phoning a doctor’s office for medical test results.Although the teammates were not looking forward to working in close quarters, over time they realized the benefits of having people at hand, for coordination, problem solving and learning,” says Teasley. “With the growing push for using technology to allow people to work in virtual teams, this study shows us the value of having seamless access to team members and helps us to envision how technology might best be used to support teams that cannot be radically collocated.”

“Although the teammates were not looking forward to working in close quarters, over time they realized the benefits of having people at hand, for coordination, problem solving and learning,” says Teasley. “With the growing push for using technology to allow people to work in virtual teams, this study shows us the value of having seamless access to team members and helps us to envision how technology might best be used to support teams that cannot be radically collocated.”

Software is a team sport. Rapid communication between team members is the key to quality and productivity.

This implies that the war room should be the organization for software.

These are pretty useful tools that makes my roles as a software developer much easier… will be updating this list over time…

Scite – Lightweight Powerful Text Editor: Though there are other ones like Notepad++, I found scite really comprehensive and amazingly fast, and based on screenshots only, I didn’t actually install Notepad++ to compare, I preferred scite. The link above has an installable that includes an Explorer integration – right click on any file and select Edit with Scite!

xmlnotepad 1.0: XML editor as light as notepad, with a heirarchichal list of nodes.

xmlnotepad 2007: heavyweight latest version of the above

Treepad lite: This is a pretty neat Notes-Organiser with which can organise notes in a heirarchical structure. What I do is I have a shortcut to a desktop.hjt file on my Windows Quicklaunch bar, so that I can use it. I like this much better than Outlook’s task notes, because of the heirarchy. “Award-winning Personal Information Manager, Organizer, Database, Word Processor, Photo Album, Web-generator + more!”

However for quite a while I’ve been looking for a decent heirarchichal task tracker on similar lines. Swift To-Do List Lite (freeware) came close, but the free version dosen’t allow me to export a sub-tree, which is really annoying. Did a lot of googling to come across a LOT of other software. But finally the one that’s a winner by far has got to be the ToDoList software on CodeProject created by AbstractSpoon… and on top of it, its open source (C++)!


A more comprehensive list of utilities is at Scott Hanselman’s 2006 Ultimate Developer and Power Users Tool List for Windows which includes many tools that I’ve happened to have used as well.

This is a recently launched site…

Rajajinagara Darpana

If you visit it please put in your suggestions here…

…as this site was mainly designed by my chikkappa… (literally) *

He (Mr. Vasanth Kumar) has a lot of politician friends though he himself has steered clear of getting into it afaik. His main idea is to make them more accessible (and answerable/accountable) to the public using technology.

PS: Usually in Kannada there’s a phrase on the lines of “yen nin chikkappanda adu?!” which means “is it your uncle’s?!” which is usually said in a cynical way when its none of that person’s business… but in this case, its really mainly designed by my chikkappa = father’s younger brother 🙂

Why Technical Writing?
Technical writing is one of the key skills of any competent
engineer and not just for a  “Technical Writer”. It is a means for her
to convey her ideas to other project stakeholders (other engineers/ business/
customers/ teammembers/ etc).

continue reading…

Now there are a great deal of buses from different IT companies, that run from Electronics City to the main city. The journey is typically around 1.5 hours one way, and sometimes the road is bumpy (and that’s an understatement 😉 ).

When another IT company bus passed me and I looked at the inmates and I was quite jarred…

continue reading…

I’ve come across a lot of fellow software engineers who seem to be really scared to ever admit that they don’t know anything. At different points in time, I’ve been in situations where I’ve failed to understand something that I needed to, or have ended up with colleagues whom I have to rely upon but are having difficulty seeing the point, but don’t want to acknowledge it!

continue reading…