Hudson CI for Testing

We are heavily using Hudson for testing a product we are working on. Other than maintenance and some instability issues, it’s been a great experience working with Hudson. We started out with just a single machine running Hudson server and then soon moved to a master-slave configuration where we have setup one master connected to four slaves. We are currently running about 10-15 jobs on this setup at one point or another during the day and use it to run pre-checkins (well in a way *post*-checkins), BATs and regression runs.

Here are a couple of screenshots that I took  when we were just getting started and were stabilizing Hudson and the product.

We have the following kinds of jobs running on this system:

  1. Pre-checkins: We provide development team with a set of tests that they are supposed to run before they commit any code. To ensure that the development team was doing this, we have a job that runs pre-checkins tests on every commit. This helps us ensure that things remain green though out the day and we come to know of failures asap.
  2. BATs: Basic Acceptance Tests as another category of tests that help us ascertain the daily quality of builds. Before the QA picks up a build for testing, we run the BATs against the daily official build and make sure that all tests pass.
  3. Regression runs: We also use hudson to run regression tests. At time of taking this screenshots, we had only about a 1000 tests and hence had a single job which would run all the tests and would take about 6-7 hours to complete. Now, we have split up that job into multiple jobs by using multiple build stages that Hudson supports. I will talk more about this in a later post.
  4. Helper jobs: We have parameterized jobs setup that help any one (dev or QA) to start any kind of test run against an official or sandbox build.
  5. CI jobs: This is how Hudson was originally intended to be used. For each branch that we work on, we poll the SCM every 5 minutes to check for checkins and build the dev and QA code. This helps us ensure that the code any checkin hasn’t broken the QA build and that users have access to the latest artifacts/distributions at all times.

For the project, we had invested time into providing infrastructure to pick up official/sandbox builds and then using these builds to setup environment, configure tests and then execute the tests. We just had to put in some more time to change or add features to make it all work easier with Hudson. Now, instead of letting everyone fend for themselves when it comes to setting up environments for testing and then reporting the results, we use Hudson to automate that process to a very large extent and make these tasks more manageable and the product quality more visible.

Hemingwayex 1.1 is finally here

I have finally found time now and then in the past three weeks and tweaked HemingwayEx to work with WordPress 2.3+ and WordPress 2.5. I have fixed a lot of small issues here and there with CSS and the PHP code. I also added few more options to make the theme even more customizable. One can now choose to enable/disable sidebars, post navigation, excerpts on homepage, font resizer. Also, I have added in-built support for Related Posts plugin.

I would really like to thank people who have use this theme and have come back to me with bugs and ideas to improve HemingwayEx. Though I didn’t look at the emails/comments for a long time, I did go though all of them while working on this update. I have incorporated many comments and suggestions into this update.

I already have ideas for the next release, but I am sure that is ages away. Work has become so hectic that I have even stopped blogging regularly now. This will be my first post in almost half-a-year.

Anyways, I hope everyone who tries this theme has a good experience.


Multiple IE on your PC

Download: Multiple IE Installer

I have been getting quite a few complaints now that my WordPress theme HemingwayEx is not working well with IE6. I had a standalone installation of IE6 that would crash every time I tried opening the slidebar on my theme and I thought that it was just a bug in IE6.

But apparently it is not. I thought of looking for another IE6 installer that would allow me to have IE6 and IE7 running at the same time. I came across Multiple IE Installer, that allows one to install any IE 3.0, 4.01, 5.01, 5.5 and 6. I used it to install IE 5.5 and IE6 after I had installed IE7.

So, now I can see that my theme doesn’t support IE5.5 at all, IE6 crashes because of a java script and IE7 doesn’t crash, but has other issues with the HemingwayEx Sildebar :-(. Well, now onto debugging the theme…

Powered by ScribeFire.

Introducing HemingwayEx for WordPress

Finally, after quite a bit of tinkering with the Hemingway theme, I have come up with HemingwayEx, an extension of the Hemingway wordpress theme. It’s sort of a beta release as I have only tested it with WordPress 2.1 Ella and CSS support is mainly for Firefox. I have added quite a few new features, which makes it very different from other themes built on top of Hemingway, but it still preserves the essence of the original Hemingway theme.

I would love to hear from WP bloggers who give this theme a try. You can learn more about HemingwayEx here.

Google Suggest

Nalin Makar in Google Suggest

It’s no big deal… and I am sure many out there wont even know what Google Suggest is ! For the noobs… Google Suggest is a service which assists users in searching by incorporating AJAX. As you type your query, it suggest what most other people are searching for; basically the most probable matches to what you might want to query.

I use Firefox all the time and there is an add-on Customize Google, that makes all Google search boxes work like Google Suggest. It helps me save a lot of time by helping form my queries better.

Anyways, I wrote this post to tell that now if you type the string “nalin ma” in Google Suggest, it shows my name as the probable words that you might be looking to search for.


Flurry: The best screensaver ever !!

I have been using this screensaver on my Linux, Windows and I go around making it default on every mac I find. It looks much better when you see it for real, rather than on a youtube video…

This is the best screensaver I have ever used. Mac always come with it… and now many Linux distros have it too… You can get the one for windows from here or download right now:

Flurry Screensaver for Windows

Note: One issue… if you set up you windows system with dual screen, this screensaver will hang your system. So be careful…


p.s. Took the video using Nokia 6682’s video cam… 🙂 I have been playing with it like a child with a new toy… I love it…

Mass string replace in MySQL

I have quite a few times needed to replace strings in my blog’s Db. One simple example is when I changed my blog address and all the URLs to the images were hardcoded. So, I had to go into the db and change the URLs from to Anyways, so a simple way of doing this is to goto the table that you want to use and open the SQL query interface. Run the following query:

UPDATE tableName SET columnName = REPLACE(columnName, oldString, newString)

so, in my case, I went into the wp_posts table and ran the following query:

UPDATE `wp_posts` SET post_content = REPLACE(post_content, “”, “”)

pretty neat… huh ??

I suffer from Downloading Syndrome

I have finally realized it… I don’t know if it’s too late… but I am going to get out of this…

First of all, please let me tell you how much I love Azureus… it’s just great… simply amazing… There’s another bittorrent client, utorrent, which is pretty kewl cause it comes in a single small file that doesn’t even need to be installed… but I prefer Azureus cause it seems to have better performance and support for plug-ins.

About a month back I installed the Advanced Statistics plug-in for Azureus. As the name suggests, it gives advanced statistics about the torrents being downloaded and the overall process… in short, a lot of figures and graphs… going though the recorded statistics, I have realized that I suffer from some serious problem. I guess there are many others out there… but I personally think, I have let things get way out of hands. To see what I am talking about, open the thumbnail below…

Azureus stats

As it shows, in the last 42 days and 11 hours, I have downloaded about 92.79 GB of data. Shame on me that during the same time I have only uploaded 55.40 GB… that works out to about 2.2 GB/day download and 1.3 GB/day upload… Also, since I installed this plug-in some 25 days back, I have downloaded about 57 GB…

Some more stats… other than a few very low values, the minimum downloaded data size has been 1.17 GB (05/11/06) and maximum around 4.78 GB (06/02/06), in a single day… Lately, since I found out about this problem, I have stopped downloading as much and just trying to see the stuff that I can.

Another thought that crosses my mind is that this is just the stuff I get off torrents… there a whole lot more downloading that keeps happening now and then on the side… 

I have decided… NO MORE of this downloading anymore… very limited and only the necessary things… don’t want to get into any kind of shit… 😉

p.s. while you are at getting Azureus installed or checking out the Advanced Statistics plug-in… also check out the 3D view and Auto Speed plug-in

Firefox Extensions

Here’s a set of Firefox extensions, in no particular order, that I really like and use regularly. I have tried to rate them and give a small description for each extension. You can click on the names and go to Mozilla’s website to get more information on these extensions and download them. Note: Most of these extensions are meant to work for windows only.

Rating: 8/10 Status: Enabled
A set of tweaks to make Firefox run faster

Rating: 9/10 Status: Enabled
Blocks out advertisements on webpages. Very very useful. Note: This extension makes Firefox crash at times when gmail is opened

Adblock Filterset.G Updater
Rating: 9/10 Status: Enabled
Updates list of servers to block. It works in conjunction with Adblock

Web Developer
Rating: 7/10 Status: Enabled
A must have for anyone into web development. A lot of features and options to make temporary changes to webpages. I have used it to check the changes by CSS and underlying structure and accessibility

Download Statusbar
Rating: 8/10 Status: Enabled
Instead of a dialog window popping open separately, now when I start a download, a bar similar to statusbar shows up at the bottom.

Rating: 7/10 Status: Enabled
Gives options to save the current open windows into a session, open closed tabs and recovers open tabs if Firefox crashes

Rating: 9/10 Status: Enabled
Amongst many things, adds Google Suggest to all the input boxes and gives a variety of options to remove ads and link to other search engines while searching on Google

Tab X
Rating: 9/10 Status: Enabled
Instead of a single close button at the end of tab bar, creates a close button for each tab. Some people don’t like it, but once you start using it, it makes life so much more simpler

CuteMenus – Crystal SVG
Rating: 6/10 Status: Disabled
Adds icons to all the different menu items. Mostly for visual enhancements

Rating: 8/10 Status: Enabled
Great extension to create reminders and to-do list. Comes with a lot of options

Bookmarks Synchronizer 3
Rating: 8/10 Status: Enabled
Synchronize your bookmarks with a file at a remote location to keep copies of your bookmarks. I use it to synchronize my Bookmarks in Windows and Linux

Screen Grab!
Rating: 7/10 Status: Enabled
Captures an image of the document being view with various options. Saves the file in a png format. I use it to keep copies of all the transaction IDs and receipt numbers etc.

Extended Statusbar
Rating: 6/10 Status: Enabled
Gives more details such as images on the webpage, size, speed and time taken to open the webpage etc. Similar to what Opera does.

View Formatted Source
Rating: 6/10 Status: Enabled
Displays the source for the webpage with HTML tag folding. A lot of options to customize the view of the source as per your needs

Groowe Search Toolbar
Rating: 9/10 Status: Enabled
Amazing search toolbar. The best that I have ever used. A must have.

Tabbrowser Preferences
Rating: 7/10 Status: Enabled
Adds itself to the options window. Has a lot options to make the Tabbed Browsing experience just the way you like it.

Rating: 6/10 Status: Enabled
Makes the Firefox menu interface similar to Office XP. It’s mainly for visual enhancement.

IE Tab
Rating: 7/10 Status: Enabled
Another great extension. It embeds IE into Firefox. If you haven’t configured Firefox to option embedded wmv files, you can use this plug-in to open them up by first viewing the page in IE. 🙂

Rating: 7/10 Status: Enabled
A good feed reader. Opens up as a sidebar.

Rating: 7/10 Status: Disabled
A good toolbar for those who have a lot of time on their hands. By the click of a button it takes you to a set of user-submitted pages based on the preferences you have set. It can get very very addictive. I have disabled it. 😉

Rating: 5/10 Status: Disabled
A Blog Editor that needs a lot of improvement. But still, the whole idea of being able to blog right out Firefox.. Great… Flock is already doing it as it has a blog editor integrated into it… but I like the fact that here I have an option

Crash Recovery
Rating: 7/10 Status: Enabled
Recovers the Firefox, as in, opens all the last open tabs with their current history, when Firefox is restarted after a crash

Rating: 7/10 Status: Enabled
A kewl extension. Shows how much of a page is loaded by converting the address-bar into a progress bar. Again… it is mainly for visual enhancement.

PDF Download
Rating: 7/10 Status: Enabled
When you click on a link to a PDF, you get an option to view as PDF, view as HTML or download it

Disable targets for download
Rating: 7/10 Status: Enabled
Sometimes, when you click on links to download files, Firefox opens a blank page as well. This extension stops it.

Rating: 6/10 Status: Enabled
Shows the IP of the site you are viewing and gives options to work with it

Rating: 6/10 Status: Enabled
A kewl extension to save webpages when you are researching a subject. You just keep saving the pages. It comes with a very good text search tool

HTML Validator
Rating: 6/10 Status: Enabled
Validates HTML pages on the fly as you view them.

Rating: 6/10 Status: Disabled
Saves the order in which tabs were viewed and accordingly takes you to the last selected tab when another tab is closed. I find this very useful.

Rating: 7/10 Status: Disabled
Fetches the forecast for your city. I have it disabled as I prefer to goto Yahoo! weather and get the information that I need

Rating: 8/10 Status: Enabled
Play and control many different applications through Firefox itself

Rating: 8/10 Status: Enabled
Gives you a lot of options for enhancing Tabbed Browsing experience. I used it for opening my tabs in multiple rows, so that they don’t get too small when I have a lot of them open. Also, I have used it to replace FLST.

UI Tweaker
Rating: 8/10 Status: Enabled
Comes with a lot of options to tweak Firefox UI to just the way you want it. One of the main reasons I use it is for displaying multi row Bookmark Toolbar.

I will probably find sometime and make this into a page so that I can have it in the sidebar at all times.