Syncing / merging Thunderbird mailbox files
When I shifted to India seven months ago I took my netbook with me and sent my work horse desktop computer by cargo. Due to several circumstances - one of them being the trouble of getting reliable broadband access - I kept reading and writing my mails from the netbook, even long after the desktop had arrived.
Now was the time to do the transition back to the desktop. I had kept all my mails on the mail server during the whole time, so my inbox would be in sync just by downloading all mails. But I wanted to have access to those mails I had sent as well.
Thunderbird has no inbuilt option to migrate or merge messages from a file into your existing account. Worse, there are no provisions to keep two Thunderbird installations in sync.
Luckily Thunderbird uses the mbox file format to store the mails of a folder such as the Inbox or Sent in a single file. The format is widely used, especially in the *nix world.
With a bit of research I found that I was not the only person with this problem and even better I found the blog by Paul Betts containing an article "Merge Thunderbird / Evolution style (mbox) folders".
Startup Saturday Bangalore
Title: Startup Saturday Bangalore
Location: North Pergola, NSRCEL, IIMB
Link out: on headstart.in
Description: I can't join myself (on the road) but anyway this is worth spreading. Finally I find another professional meeting in Bangalore
The December 2009 edition of Startup Saturday Bangalore will focus on the topic "Hiring and retaining people in Startups." People management is one of the hardest and most critical area in a startup. To address some of the common problems entrepreneurs face with attracting, retaining and dealing with talent effectively, this month's SSB will hold a panel discussion. The participants of the discussion include founders of successful startups who will share and discuss key people related issues and concerns they have experienced and the way to handle them.
Start Time: 10:00
Date: 20090-12-12
End Time: 13:00
Finally, a contact form
It took me a while but now this website finally has a contact form. Most of the plugins available on Wordpress.org are either too simple, insecure or do not support reCAPTCHA which in my opinion is by far the best and most useful CAPTCHA service out there.
After a lot of research I found the "Secure Form Mailer Plugin" by Dagon Design. Many thanks to @lewayotte (blog, website) and @glennansley for the pointers.
The power of free gifts
I'd like to share an experience with you that I had a couple of days ago. Although this happened in the physical world I believe there are a few lessons to learn for online business and online marketing / sales.
I own a bike here in India, the Royal Enfield Bullet. The apartment I live in provides each tenant with a (car sized) parking lot. So my bike spends quite a bit of time next to an Innova van owned by a business man.
The sheer number of people in India makes labour really cheap. Not to have a maid for house keeping is rare. Even employing a maid, a cook and a driver does not raise many eyebrows when you're in the middle management.
While I have none of those yet, the gentleman owning the Innova does employ a driver. The driver also washes the car every other day. That guy is a nice fellow and although his English is really bad, we're greeting each other and have a three half-sentence long chat every now and then.
My experience I'd like to share started on the day where he started washing my bike.
Optimize your Wordpress Blog Performance
The famous blogging software Wordpress has always been my tool of choice when setting up a blog-like website. The usability of the backend and the number of available themes and plugins make it ideal if you want to see quick results.
However, when it comes to SEO and bandwidth optimization and standard compliance many of the plugins fall short and require some additional attention. The good news is that usually many plugins are available to scratch a single itch. Picking the right one often avoids many glitches.
Social network plugins and social bookmarks
I want to reach out to people with this blog. This includes enabling my honored readers to quickly share my articles with their community through the various social networks.
TweetMeMe Button and Facebook Share are two plugins that put nifty buttons in your blog that include counters to boast about how many people shared your content. Both are really great and work perfectly, but I encountered some issues due to which I removed both from this website after a test period of a couple of days.
I had to remove the TweetMeMe Button simply because it loads content from the tweetmeme.com server which is currently very slow, thus slowing down my website as well. There is nothing the author of this plugin can do about it I guess.
Facebook Share on the other hand was removed because it uses an id="" attribute for the button it displays, even if the button is on the page multiple times. Since this is violating W3C compliance this plugin had to go, too.
In addition to that, both plugins cause my layout to look a little bit messy and 'cheap', which I try to avoid. Again, that is nothing that can be fixed by the plugin authors since it is just my personal opinion. I really liked both plugins but these minor glitches made me move on to...
Tweet This - CSS sprites
I found another nice extension for social bookmarks called Tweet This. The author Richard X. Thripp did a really great job on this, offering bookmark icons for not one but many social networks. That covers my bases.
However I enhanced this plugin slightly in order to utilize CSS sprites for the social bookmark icons. My friend Chris recently talked about CSS sprites on his blog SwiftLizard.com. Here is the concept in a nutshell:
If you display ten icons on your website the traditional way the browser has to request ten files from the server - one for each icon. Since usually browsers do only a handful of requests at a time this slows down your website. With CSS sprites however, you can utilize CSS and one single graphic containing all icons to achieve the same effect with only one image being requested. This results in website response times that are much lower, thus enabling a smoother surfing experience.
Further optimization of Social bookmarks [added]
Since I posted this article I further enhanced the way I handle social bookmarks in this blog, you might want to check that out.
WP Super Cache
The plugin WP Super Cache almost needs no introduction. Written by Donncha O. Caoimh it enables us to circumvent PHP completely and serve static content in many cases. Naturally, this is much faster. The plugin is a must for anyone taking performance seriously. WP Super Cache alone reduced the initial response of my blog (time-to-first-byte) by 80%.
iPhone and mobile browsers
As the owner of a technology related website I believe it is reasonable (and my access statistics seem to agree) to believe that some of my visitors will visit the website from a mobile device such as the iPhone or a Blackberry. While technically the layout I chose for this blog looks ok in my iPhone, there is a lot of clutter that I don't want to wait for on my mobile device.
Thankfully there is a plugin called WPtouch which displays the blog in a highly stripped down but yet good looking manner when viewed with a recognized mobile browser. Not only do mobile visitors get their content faster by removing clutter, the usability is also highly increased. Perfect.
Combining JavaScript and CSS files
Similar to what I said earlier about many images slowing down a website, the same is true for many JavaScript or CSS files. Regardless of the file type you should keep your number of requests as low as possible. With Wordpress and its many plugins that is next to impossible though, unless you want to rewrite every plugin you install.
But there is hope. What CSS sprites achieve for icons, the Head Cleaner plugin does for JavaScript and CSS files. It can combine all JavaScript files into one and do the same for CSS. Further, JavaScript can be minimized and both file types can be compressed, reducing not the number of requests but the bandwidth as well.
Image size
This is a classic. Double check the images you have on your website for size - the size measured in bytes, not pixels. If you're not sure how to reduce images byte-wise, there are online services like the one on dynamic drive which can guide you (and save you lots of manual trial-and-error time).
General rule of thumb is that a png will be smaller than a gif and images with only a few colors should never be stored in a jpg. For example the ScrumMaster badge you see on the upper right was initially a jpg of 25kB. My all means the png I use now looks identical and is only 13kB.
Results
Given all the measures above, I was able to save over 50% of bandwidth and 75% of requests on the frontpage of my blog. No matter how fast your broadband connection is, you feel the difference. Even better, the website is still W3C compliant.
When in doubt what else you can do, I can recommend registering for Google Webmaster Tools and install their Page Speed Firefox plugin. It will hook into the famous Firebug plugin and provide you with an additional tab that gives very useful hints how to improve your website speed.
Attempting Scrum in a SDLC environment, pt. 2
In the first part of this article series, I covered the aspects of the real life office environment. This included the lack of physical space for pinboards etc. Go check it out.
In this second part I will focus more on the virtual environment, the tools typically used by a company following the traditional waterfall approach / SDLC and how you might still be able to use these tools for Scrum.
Bug tracking system
Let me start with the bug tracking system. Most likely your organization will have one of those. Typically issues can be categorized, prioritized and assigned to a person as well as tagged or grouped into releases. To make this tool work for you in a more agile way you could create a couple of additional categories and put everything (!) into that system: Don't put only issues into it. Also add things like feature requests, enhancements, documentation, testing and refactoring tasks. I'm sure you can come up with more with a bit of thinking. Just be careful not to make this more complicated than required...
Well, that looks pretty much like a product backlog to me. You can do a printout of the overview and pin that to the board for better clarity. Stick it to the window with Scotch Tape if you don't have a pin board. In any case you should make this virtual backlog physical, otherwise the transparency will suffer. Only with a physical product backlog the team will have a clear idea about the big picture.
The overhead to maintain that printout would be minimal. You effectively avoid having two independent lists (in my experience always a recipe for disaster) and your not-so-agile management will probably be pleasantly surprised by the transparency you introduce.

