About Jerry

Jerry has been a technical person all his life. He started blogging from 2006. An active barcamper and lover of web technologies, he loves to code and hack for fun. His current work profile is in the Middleware portfolio where he is mainly dealing with XML and security.

10 years of Linux and Red Hat Linux 9 (Shrike) is the best OS i have ever used

It was back in 2002, in my second year of college, that i picked up my first Linux distro. Back then, we were all children of Microsoft. Most of us had some pirated (yes, you heard that right, pirated!) version of Windows 98 or XP. We were not ready to move away from the easiness of Windows.

Our Head of Department, whom i thank to this day for what he made us do, wanted all of us to learn Linux. He wanted us to install Linux and start using it. His recommendations were – Red Hat 7 and Red Hat 8. There was a huge disagreement on moving to Linux. We were simple not ready to unlearn Windows and learn a real operating system. Installing Linux meant, to start with, learning how to install the OS, then learning how to use it. For almost everyone, it was the hassle, of installing a new OS and setting up a dual boot system.

RHL7 and RHL8 adoption took almost a year and didn’t really see many people moving to Linux. I didn’t move to Linux at that time because the system i had was a Pentium MMX, 64MB 4BG desktop and it was barely able to run Windows 98.  Later the next year RHL9 was introduced and our Head of Dept. gave us strict instructions to move to Linux. What our Head of Department did was essentially kicking piracy out of the front door and teaching us what Open Source Software is and telling us who the hell Richard Stallman was. And he was quite effective in his method.

I still remember the first time i had to install RHL9. It was on my new Pentium-IV 256MB 80GB desktop. I needed a dual boot system, so the first step was to re-install Windows XP to occupy 60GB of space. Then install RHL9. If we had happen to install RHL9 first and later installed Windows, the MBR would be rewritten by XP and RHL9 would be inaccessible at boot time.

Image courtesy Wikipedia

Once the system was set up, most of us who still use and swear by Linux to this date, discovered the power of the terminal or gnome-terminal as it is still known. Knowing the right commands and proving the mastery over the system was a matter of pride. So auto mounting the Windows partition in Linux at boot time by editing /etc/fstab was regarded as uber-geekiness in a class of 48.

Then there was the period when we were trying to mount a USB storage drive. I guess what we did was to look for the result of the command fdisk -l before and after plugging in the device. Then creating a directory and mounting it. Playing our favorite music was the one of the hurdles. MP3 plugins for XMMS was not there by default. So what that meant was numerous trips to the internet cafe to download plugins and packages to get mp3 working. The best part was installing MPlayer and MEncoder for video.

That brings me to the countless number of times we had to do - ./configure, make and make install. It was the sheer joy of getting something to work that kept us going. Unfortunately, most of the Linux distros these days take that fun away. In most cases, new packages are installed by a graphical package manager, yum, apt or something else. Well, chasing usability in Linux has taken away some of the fun that we used to have.

I have long moved away from RHL9, to FC4, 5, 8, 9 and now i’m with Ubuntu 11.10. Every time, i plug in a USB drive and it auto mounts, i miss RHL9. If the mp3 plugin for Banshee is missing, well the software does a look up by itself and gets the plugins. Want to play video, well install VLC from the Ubuntu Software Center. Just to be clear, i don’t hate Ubuntu. It is a neat little OS that still manages to fit in a CD (CD? who the hell uses a CD these days).

The whole joy of something not working and you sitting in front of the system for hours at length to get it working is something i truly miss. Ten years ago, to get something to work on RHL9 meant, frequent trips to the internet cafe. Downloading some new tar.gz package, coming back to the hostel room, firing up a tar -xzvf <package_name>.tar.gz, configure-make-make install only to realize that the some damn .so file is missing. The worst part is when you realize that it’s the middle of the night and there’s nothing that you can do.

If i had a choice, i would have still had a machine running RHL9. I would have kept it just to have the kick out of trying something new on it. Most things that work today, wouldn’t have worked anyway. But, i would have spent sometime behind it learning something new on the way.

Looking back, i’m happy that we had to use RHL9. The commands that we picked up, the debugging steps that we had to do to make things work, all have definitely come in handy over the course of my career. Thanks to RHL9 it has been an amazing 10 year journey with Linux.

The Tester’s Attitude

Couple of weeks ago, while i was having the monthly one-on-one discussion with my manager, she told me about a new project that was coming up. It looked like there was an opportunity for me and she wanted me to take that up. Taking up this work would mean, i would have to move temporarily to the other team and stop the QA work that i was currently responsible for. The next question, naturally, was who would be owning the piece of work that i was doing?

It quite so happens that at around the same time, there were two new people joining our team. Well, one person was new to the team, the other used to work as a contractor, before he was offered a permanent post. So he was re-joining our team.

I suggested, that we give it to the guy who was re-joining us. I had my valid reasons. He knew the product, knew the people and the process involved etc.. But to my surprise, my manager suggested the new guy. She went on to say that she knew the contractor-turned-permanent-employee to be more of a developer and lacked, what she called as, ‘the tester’s attitude‘.

I have been a QA guy all my career and what she mentioned struck me. What did she mean by a ‘tester’s attitude’?

I always knew that testing was not for everyone. Testing is something that is quite different from development. It’s easy, as well as tough at times. It takes a lot of ‘courage’ to stand up against a veteran developer and fight for that Sev-1 defect that you raised. It takes effort to raise quality defects. One needs to think like a customer or an end user and uncover defects. Testing, it’s an art!

But what did she mean by a tester’s attitude? The thought was nagging me for the last couple of weeks and today i understood what tester’s attitude meant.

Continue reading

The ‘Wrong’ Email

There are a lot of posts and discussions around on what gets classified as a good email and what doesn’t. Well i don’t really recall any of that. But over the last 10 years i have learned a few things about writing a email the ‘correct’ way.

Here are a few of those things that i try and make sure goes into each email that i write.

KISS. (don’t know KISS, look it up)

Just by typing an email in English is not enough. The mail should convey the message the first time a person reads it. Just by vomiting some ‘cool’ terms into the mail doesn’t make it any better. If the recipient has to read the mail thrice and more to understand, it is the problem of the sender. What’s wrong in sending an easy to understand email? No one will look down up on you like you committed blasphemy. Email is a means of communication so keep it simple.

The other day, i was assigned some new work and i had to mail the concerned person about the finer details and tasks. The mail that i received proved to be tougher than the work that was assigned. Read the mail twice in the morning, took a coffee break, read it again twice and by noon it started to make sense. That was half a day’s of productive time spent reading one single mail.

Here’s the rule i follow – If you can’t really explain something in simple terms, then you have no idea what you’re trying to do and have no real understanding about it. Period!

If it is more than two pages long, schedule a meeting.

This follows from the previous point. Even after you have made the mail simple and easy to understand, if it runs for more than two pages, then it is better to schedule a meeting with specific agenda. No matter how simple the mail might be, the recipient would be far away from the message by the time they reach the bottom of the mail. Now they have to start all over again. Then there will be follow up queries and clarifications and the cycle will go on.

Wouldn’t it be simpler to mail someone with the highlights and then schedule an informal meeting instead. A 10 minute meeting, even over the phone, is better than 2 days of emails flying around. Well, if it is something that has been documented, send them the link for god sake! No one cares about your explanation.

If you have to spent more than 10 minutes on an email, you’re definitely doing it wrong.

Even after following the last 2 steps, if you are still going to spend more than 10 minutes to compose an email, then obviously you’re doing it wrong. But, how the hell can you get it wrong? After all it is just an email.

If you can’t narrow down on what you want to communicate, then obviously you are going to have a lot of information (in simple sentences) and would end up confusing yourself. Here’s the thing, apart from mailing someone who is important (like your boss or CEO), if you find yourself asking, “does this mail serve the purpose?” or “is this correct?” then chances are that you have got it wrong somewhere.

So the next time you have to send an email to someone, just think for a moment what you want to convey and concentrate on that single message.

U shud not do tis.

It’s not like we are charged per character for an email. The situation is not even such that and extra character or two is going to choke the network. So please stop using all the lingo you picked up by posing as a girl in a public chat room. I can understand using this while text-ing someone. But even that is lame after some time.

There are some acceptable acronyms that you can use in an email. Like the name of the a product, user pointers like F.Y.I., descriptors like FUBAR etc. But a like that goes, ‘I thot v shud meet 4 cofe’, is simply lame. Even the argument that you were in a hurry doesn’t sell here. How hard was it to lift the damn finger and punch in two more letters?

——

Feel free to share your thoughts and experience.

A NullPointer

Well if you have been on my twitter stream, you would know that i had an issue with a NullPointerException getting thrown in a Java program.

The program was part of a quick and dirty proof-of-technology or PoT. The aim here was to have a program listen to the events from a broker and based on the events the program was required to get the details from the broker environment. The events that were of interest to me where create, update and delete.

The standalone program was structured like this:

The initialize() function returns a broker connection object and is used by the retrieveDetails() function to get the details from the broker.

The program worked perfectly for update and delete events. But when the create event was triggered the broker object was unable to get the details. It always returned null thus throwing the NullPointerException.

Well the solution to this was to create a new broker object within the retrieveDetails() function if the event is create. And it worked.

I have no idea why it didn’t work the way it was designed initially. It might be because the broker object was already created before the create event. But that could not be the reason as the broker object is only used to retrieve the details about the flow from the deployed broker and doesn’t really hold any information. It is similar to the database connection object which is used to query the details from the database.