Yesterday, Sri Lankan bowler Muttiah Muralitharan playing his last Test Cricket match became the first ever to reach 800 Test Wickets, a record that other greats hailed as unmatchable . Murali, as he’s fondly known, is widely considered to be a true gentleman both on and off the field, and that’s almost certainly a big part of the big online support he had going yesterday. I’m guilty too – I made 15 tweets with the #murali hashtag (partly to help make it a trending topic!). He became twitter’s leading trend topic at one point, and even had both “Murali” and “Muttiah” as trending topics together at one point.

The internet response was definitely very interesting, but I think it also highlights an aspect about Sri Lanka that seems to be frequently overlooked. Recall that Sri Lanka recently defeated LTTE terrorists fighting for a separate state for the 15% Tamils of Sri Lanka. This does not, of course, mean that the majority Sinhalese were out patrolling the streets hunting down ordinary Tamil people. Yes, the underlying issues will take time to sort out (the US still has race issues,  and my birth country Belgium’s Dutch vs. French issues have resulted in them not having a stable goverment since 2007 with speculation of partition) but most folks see us all as Sri Lankans and want to live and let live as Sri Lankans.

Coming back to the topic at hand, Murali is Sri Lanka’s first Tamil international cricketer. But Murali’s ethnicity as a Tamil is not something most Sri Lankans care about. Sinhalese, Tamil or otherwise, we consider each other Sri Lankan, and this was all the more apparent in the internet response yesterday. In the middle of that a hate-spewer from India finds it ironic that the man who led the military victory over the LTTE terrorists awarded a special prize to Murali. Dear Mr. Sardesai and others like you, there’s nothing ironic there – Mahinda Rajapakse and Muttiah Muralitharan are both SRI LANKAN first and foremost, and fighters and beacons of our nation. Thank you very much for trying to ruin Murali’s great achievement with your petty attempt at igniting hatred; too bad you couldn’t pull it off though.

All that we Sri Lankans care about is that Murali is a Sri Lankan and that Murali, gentleman and legend made us proud and we all got to share his joy.

I’ve been using Evernote for a little over a year. No, it’s not a new IDE or a text editor. It’s a note-taking  software alternative to Microsoft’s OneNote, and it’s free (as in “free beer“, but proprietary).

And no, Evernote isn’t a revolutionary new way to deal with software, it just makes a few routine things easier to do, like

  • I take tons of screenshots when I need to, either with Evernote’s screen clipper, or the old fashioned way and paste in to a note. Evernote does OCR on them so I can search for text in the screenshots. I don’t have to have an elaborate directory structure or think of descriptive filenames.
  • I put test code that I don’t think I want, but don’t want to delete. I put URL’s, test plans and other notes and give all the notes a single title, for example the Jira issue number. Search for the issue, and voilà, all my notes and screenshots are there.
  • Almost a moot point, but the notes can have checkboxes. Makes awesome TODO lists.
  • Did I say I love the search?
  • It’s in the cloud, so I can access it from anywhere.
  • And yeah, work is only part of life, so it’s a much nicer way to jot down quick thoughts, TODO, links much more conveniently than e-mailing it to myself. Notes can be tagged too, so I can track ideas, financial things, work and personal notes easily.

I just cannot imagine a life without a diff tool, but this comes pretty close too 🙂

Sri Lankans elect their next president today.

Judging by what I’ve seen on the net, I’m not alone in despising the election campaigns and politics itself, but it is a necessary evil.

For me, it boils down to the one candidate who stands to get the vote in spite of those around him, and the other who stands to lose the vote because of those around him.

And so, I too spent about 30 minutes standing in a long queue and cast my vote this morning. If the queues aare any indication, this time the turnout is good (as echoed by Samisa too).

Let’s hope we have all made the right choice for our future.

It’s been over 7 months since my last post, and a lot of things have happened since then.

Most important, perhaps, is that the Sri Lankan government managed to defeat the LTTE terrorists. I shall leave the political commentary to those more qualified than I am; but I can certainly comment on my beliefs.

Like everyone else I know from Sri Lanka, I was no proponent of war. I have tons of Tamil friends myself, and I believe we can all live together as citizens of one united country. Being a minority in Sri Lanka myself (as a Catholic), I understand that minority communities might not always feel that their rights are protected. The problems may have been there, but democracy is unfortunately not perfect and for me the terror campaign of the LTTE can never be justified. If the JVP joined mainstream politics, and so did Karuna Amman (the LTTE defector who is now effectively the 2nd in command of the President Mahinda Rajapakse’s party, the SLFP), I don’t see why the LTTE could not lay down their weapons and take things up politically.

While I was fortunate enough to not be in the midst of the war, I certainly saw its impact. The anxiety anytime someone stepped outside; the killings of moderate and well respected Tamil leaders like Lakshman Kadirgamar    because they did not say the things the LTTE wanted Tamils to say; the horrific slayings of civilians around the country – and towards the end the killings of innocent Tamil civilians escaping from the LTTE areas. 

In the end, I completely believe that the Sri Lankan government’s actions were correct and timely, if not long overdue. The world has been ridded of a most terrible cancer, but certainly a long road of reconstruction, integration and dialogue is ahead of us.

Secondly, since January I’ve been on a 6-month internship at SeaChange International, the leading Video-on-Demand and Advertising solutions provider. The work experience has been great so far too.

A reading group at work was discussing Andy Hunt‘s excellent book Pragmatic Thinking & Learning: Refactor Your Wetware, and one of the ideas in it was to constantly write down thoughts and ideas. I started using EverNote, and wanted to resume blogging, but it just took me way too much time to put enough thought into a proper post, and so I was thinking of micro-blogging for a while. Finally it was Scott Hanselman‘s howto that pushed me over. Anyway, I am tweeting now, and hopefully I’ll be able to sustain that as a regular habit.

I was greatly saddened to hear about the death of Michael Crichton after a “courageous and private battle” with cancer.

I still remember the first time I read one of his books (three in fact, The Andromeda Strain, Congo and The Great Train Robbery in one volume), some ten years ago, and I absolutely loved it. Of course, I was a huge fan of Jurassic Park already, but I hadn’t read the book back then.

His writing, especially with works like Timeline and Prey (and of course Jurassic Park and its sequel) had enough of science in there that he had me believing I could actually see them come to life in my lifetime.

I ended up reading at least 9 of his books, and seeing the movie adaptations of 5 of them, the most recent being The First Great Train Robbery on Hulu last Sunday evening – some reminiscence of a great storyteller lost.

My grad school lets me access ACM publications whenever I access them from an internal lab computer. When I’m home and I want to read something though, I had two options so far: hope that they had copies on public home pages and search via Google Scholar, or get the link and use wget to fetch the PDF’s over an SSH terminal and then SCP it across. Both were no fun, and the solution turned out to be simpler than I thought.

The easiest approach I could think of is to tunnel HTTP requests over SSH so that the other party (ACM etc.) sees the requests as coming from a lab computer and gives me access. On PuTTY this was pretty straightforward: we just need to add a forwarded port from a local port (I picked 3129) with a blank destination and “dynamic” for the connection type.

Configuring PuTTY to proxy web traffic

The only gotcha I noted in configuring Firefox was that I had to give (localhost, 3129) as the SOCKS host, and not the HTTP proxy, and had to ensure that the SOCKS version was 5 (default choice).

Proxy configuration in Firefox

Speaking of tunnels, I also used Stunnel recently for a project and found it to be quite nice as well – giving some features PuTTY doesn’t give like logging the individual connections. Firefox remembers the last proxy settings, so enabling and disabling the proxy is not difficult. For those not so fortunate, there are numerous proxy manager plugins for Firefox like SwitchProxy and FoxyProxy. Can’t vouch for either, but I think I used SwitchProxy some time back and thought it was neat.

I found this article to be very helpful in figuring things out. Another article shows a slightly more complicated approach with proxy auto configuration scripts and using Netscape Navigator’s profiles for managing proxies.

Workplace colleague Sukitha showed me a couple of neat tools. Nothing fancy, but just adding a little more productivity to an otherwise boring life.

First, a wrapper for the Windows Console (or any other shells you might be running) courtesy of Console, featuring multiple tabs, resizeable console area (I really missed this in cmd.exe), configurable copy/paste options (I’m on Shift+Select to copy and Scroll button to paste), transparency and the ability to link any shell or command line tool as the shell.

Second was Launchy, a cool tool that’s like a totally revamped Run dialog box. Features skinnable UI, plugins (it does Google and Wikipedia search, among others) and the ability to show you a list of available commands / folder locations etc when you’ve typed in the first few letters.

I’ve been bored at work, and figured I could search for a way to perform CVS operations from inside VS.Net. Nothing fancy, like the kind of integration VS does with VSS, just a way to maybe do a CVS diff from inside VS without having to browse to that directory and do it.

Since we use TortoiseCVS at work, it makes these things a lot easier, but still the part about locating a file inside a huge directory structure is a real time killer. I started by looking at what cvs.exe in the TortoiseCVS directory could do, but it required the server and CVS Root to be specified, didn’t like absolute paths and had pathnames the Unix way. Even if you hardcoded those and call cvs-diff, it still shows you the diff in the console, and not in my diff tool. Getting that done would involve writing a macro to check out the file to a temporary location and then calling the diff.

Then I happened to come across TortoiseAct here and then in a mailing list thread. And guess what, all we need to do is pass the required action and the filename to TortoiseAct, and it takes care of everything: the CVS server and root,  authentication, checking out to a temporary location and opening my favourite diff tool.

The next step is to add it as an external tool in VS.Net. For example, to invoke CVS Diff, you must create a new External Tool with the Command being the path to the TortoiseAct exe (which for me is “C:\Program Files\TortoiseCVS\TortoiseAct.exe”), and the Arguments being “CVSDiff -l $(ItemPath)”. The file TortoiseMenus.config has a list of other commands that TortoiseAct can run. Now it’s just a matter of opening a file in the VS.Net editor, and starting the CVSDiff external tool!

It would have been quite difficult to not know about the Cricket World Cup that just finished at Barbados.

Sure, we Sri Lankans were not the only ones looking forward to the Lions crushing the Aussies, but the Australian line-up was, without a doubt, strong and near-flawless. But one thing that I am confident about, is that the Sri Lankan Cricketers will receive a hero’s welcome – reaching the finals was no piece of cake, and they fought all the way even when the odds were stacked against them.

Which brings me to another point. The commentators, both on the live telecast and elsewhere, were so worried about how the Sri Lankans did not simply concede the game when the umpires offered the chance to stop the game due to bad light (which also implied that theoretically, the match should have been continued the next day). While it is true that there was no chance to win, and I do realize that playing was near impossible, it is preposterous to expect a team to just give up a game on the finals of the biggest event of the Cricketing calendar. Three hearty cheers to the team (and also to the Aussies, who did in the end oblige to play along) and the umpires for holding up the sport – not the victory celebration.

On a related note, and touching a topic I usually prefer to avoid, the LTTE terrorists chipped in with an aerial attack on the city, attempting to bomb the main oil refinery and a private LPG storage facility. The terrorist’s web site incidentally reported these as “oil storages that supply fuel to Sri Lanka Air Force” even though they supply for the whole of Sri Lanka (which is where they too steal from). By attacking civilian targets on a day when all of Sri Lanka, regardless of ethnicity and other shallow bounds, were united in wishing the team well, the terrorists once again proved that they are not ready for any compromise. It’s time the world takes note that the LTTE are terrorists; nothing more and certainly nothing less.

Debugging is itself not too bad, but when you have to attach your debugger to a running task, it can become a pain. Faced with this problem, I found a neat little macro (probably from here, but I can’t be sure) that could attach the debugger to a known process. I managed to add that to my custom toolbar along with another custom toolbar action that launched my application’s EXE (I work on the DLL’s, not the app itself). Now, launch and debug are right there in VS.

A workplace colleague also pointed out how to search for any bit of text (i.e. Code, error message etc.) on Google from within VS.Net. The comments there had a few other nifty ideas too.

Looking to send a Audio clip to a friend, and not having a decent MP3 encoder around, I came across Media-Convert which promises to covert files between various types of audio, video, mobile phone ringtone formats, image, document, archive and some more that I’m sure I missed.

Instead of downloading the Wav file in question (who keeps around uncompressed audio, anyway?) Media-Convert let me simply point to the URL of the source file, specify my output format and presented me a link for the MP3 file, active for 24 hours.

I personally found the MP3 file size (at 44KHz / 128kbps / CBR) to be too big, but I didn’t really get much of a chance to test out the encoder. It did seem to work though, and I’ll probably get the need to test it out again some day in the future. More details will have to wait till then.


Some welcome news, at last, came 4 days ago in the form of an article announcing Microsoft’s budget software strategy.

This echoes sentiments that my dad and Tariq, among many others, have expressed for a long time. If publishers of books (especially Computing etc.) can make a not-so-fancy-but-complete edition of their books available for sale inside the subcontinent at a reduced price, a lot of people would buy them. The spread of software piracy in this region is more likely the result of software priced beyond the reach of the average consumer, rather than a purely sinister desire to obtain a product illegally. Finally, it seems that Microsoft is also picking up these vibes. While I have never been Microsoft’s biggest fan, I think this is one of their smartest moves. Make it affordable, and then you have a serious tool to market your stuff with. A little healthy competition never hurt anyone, now did it?

Engadget ran an article on Hitachi’s new 1TB Hard Disk drive. According to the comments, in spite of its supposed 400$ price tag, it’s still the same price per byte as any other drive out there, but in a single unit. For those who are wondering what they can do with 1TB, the CEO of Seagate has some ideas.

Much has happened since my last post in mid-February.

For one, I was at my College‘s annual Limited-over Cricket encounter with our brother school, St. Joseph‘s on the 10th of March, when I was informed around 5 that my Grandmother, who was living with us since 1987, had passed away earlier in the afternoon. Similar to my Grandfather, who passed away peacefully in 2001 with all of us around him, she too had passed away peacefully with my parents and my sister with her as she left us. The funeral was held on the 12th, at a cemetery nearby.

The next weekend I joined my team-mates on our annual 2-day outing, this time to Amaya Lake (formerly Culture Club). Had a lot of fun, played cricket after a break of a few years, and gorged myself at every meal (and broke my red-meat abstinence too).

In spite of my worries, I managed to do well in my TOEFL, scoring 115 out of 120 in the Internet Based Test. Lectures are also progressing well, and I am very close to the end of my 3rd teaching assignment, after which I plan to take a break from teaching. I have also started working on the latest project at work, working on the Framework for our Centura-to-DotNet port – a challenging, but very interesting project.

The Minor was also out of its body work repairs, but is still not completely done. The silencer needed some work, which I managed to get done last Saturday, but its lights etc. are not properly wired yet, and I’ll put it in for that work tomorrow. Seats and interior upholstery was also re-done, and we’re waiting for the front buffer to come from Chrome Plating.

Yahoo Mail presented me with this

Chat inside Yahoo! Mail - Thumb

when I logged in today. Not too suprising too, but Yahoo!, once a leader in web applications seems to have ended up playing second fiddle to Google.

I was one of the first to get the 100MB upgrade (in 2003 if I remember right), and then the 1GB upgrade, and the upgrade to the new Beta interface, and looks like my early-preview luck still holds. Came across some reviews too.