Archive for December, 2007

h1

Scandalous Sports

December 16, 2007

This century, we have seen sport survive scandal after scandal and continue to thrive. I don’t know any other industry where this might happen. Here’s a recap, then, of sports that I follow and some of the major scandals that’ve plagued them recently (in alphabetical order):

Athletics: Drugs and steroids, with Marion Jones the latest casualty in a long line of athletes.

Baseball: Drugs and steroids again. We all know about Bonds, McGwire, Giambi, Canseco and Palmeiro, but with the Mitchell Report now implicating 80 players in all, including Roger Clemens, the sport is sure to hit a new low.

Chess: Even though drug testing is being talked about in chess, I doubt the existence of any chess-performance enhancing drugs. Chess has been plagued by numerous cases of electronic cheating. And who can forget the infamous Toiletgate? And lets not forget the President of FIDE either.

Cricket: Cricket is still affected by the matchfixing scandal, with the establishment constantly having to monitor any suspicious activity.

Football (the American kind): By instituting a stricter policy on drugs and catching players before they create records, football has avoided the same issues that baseball’s going through. Michael Vick has been an embarassment of late, though.

Tennis: Even though men’s tennis is going through a golden period during Federer’s unbelievable run and his rivalry with Nadal, matchfixing and drugs (and several men – too many to name) are having their say as well.

Notable mention: Golf has had no real scandals yet, but with drug testing imminent and quite a few players expressing suspicions that drug users are present, we may not be too far off.

h1

Another game

December 13, 2007

Disclaimer: I haven’t run this against any engine whatsoever, so if there are obvious blunders in there, then so be it 🙂

1.e4 d5

rr-stejam-1.jpg

The Scandinavian or Center-Counter.

2.exd5 Qxd5 3.Nc3 Qe5+

rr-stejam-3.jpg

Slightly unusual. Much more common are Qd8, Qa5 or Qd6, where its much harder for white to chase black’s queen with gains of tempo.

4.Be2 c6 5.Nf3 Qc7 6.d4 e6 7.O-O Nf6 8.Ne5 Nbd7 9.f4 Nxe5 10.fxe5 Nd5 11.Ne4 Be7

rr-stejam-11.jpg

A dream position for white. I get to plonk my knight on d6. And since its so wonderfully placed there, my opponent has to trade off his good bishop on e7 and allow a monster protected passed pawn on the same square.

12.c4 Nb6 13.c5! Nd5 14.Nd6+ Bxd6 15.cxd6 Qb6

rr-stejam-15.jpg

His best attempt. Try and create some counterplay by attacking the back of my pawn chain. Hopefully, if I can be tied down to defending my pawns, he can gain some activity in the process.

16.Kh1 O-O 17.Bh5 Bd7 18.Qf3 Qxd4

rr-stejam-18.jpg

19.Bxf7+ Kh8 20.Qh5 Be8 21.Bg5?!

By this time, I had lost the plot a little bit. My queenside was very weak, I was having trouble guarding my central pawns and was unable to activate my queenside minor pieces without making more concessions. But my opponent helps me out with his next move:

21 … Nb6??

rr-stejam-21.jpg

What is this move? It was essential to grab the pawn on e5 (picture below), severely weakening the d6 pawn, followed by grabbing the bishop on f7. After this, black is really struggling.

rr-stejam-21a.jpg

22.Be7 Rxf7 23.Rxf7 Bxf7 24.Qxf7 Qxe5 25.Rf1 h6 26.h3 Qxb2

rr-stejam-26.jpg

Unnecessary pawn hunting. It was crucial to keep the queen in the center of the board where it was controlling proceedings. The above move allows white to grab the e6 pawn and control the center.

27.Qxe6 Nd5 28.d7 Qb5 29.Rd1 Qa4 30.Re1 Nf4 31.Qe4 Qxe4 32.Rxe4 Nd3

rr-stejam-32.jpg

Black’s last attempt at a swindle. If white queens, then after giving up his rook for the queen, Nf2+ wins the white rook right back.

33.Kh2 1-0

With no other tricks to stop white from queening, black resigns.

h1

How many patents do you own?

December 11, 2007

I don’t own any, but I recently read about US Patent number 6,389,458*:

Obvious algorithms are being granted patents. Klemens’ best example is this snippet of JavaScript for pop-up browser windows, granted patent 6,389,458 on May 14, 2002:
function onExit() {
popup = window.open("pop.html", "Don't go!");
popup.focus();
}

Is it really that easy to own one?

* The original writer refers to the material in Math You Can’t Use: Patents, Copyright, and Software by Ben Klemens.

h1

Work-life balance

December 8, 2007

You constantly hear people mention it. Kent Beck talks about the importance of the 40-hour work week in his book. Most of us recognize its importance in keeping us sane and avoiding burnout.

Yet, how many of us are able to keep that balance in our lives? If you want to be good at something or have a passion for it, the best way to move forward is to work hard. Most people I respect (no matter what their field) work incredibly hard. I find myself constantly coding, catching up with what other people have been blogging about, or playing chess, at all hours of the day and night. If I regularly take time off after work to just “chill out and relax”, I realize I’m being left behind in the rat-race while everyone else is constantly moving forward.

Working from home helps in that it saves me a tiring commute, but I have trouble switching off in the evenings. We are all encouraged to constantly learn, to be at the cutting-edge, to have a meaningful life after work, to not over-work and yet deliver the best possible product in the shortest possible time.

Am I the only one who (especially on days like today) feels like I’m swimming against the tide? How do the rest of you cope with it?

h1

This is so funny

December 6, 2007

If you are a geek and you like geeky humor, this is for you:

h1

Deja vu

December 6, 2007

Earlier this week, I won a game of chess that reminded me of my first round win at the 2004 World Open. The games themselves were very different – the 2004 game was a Nimzo-Indian while the recent one was a Najdorf. What it shows is that it pays to calculate exact variations in endgames. Also, in equal endgames with rooks and pawns on both sides of the board, it isn’t always wise to ignore everything else on the board, just to queen one pawn. Connected passed pawns can be too much for a rook to handle, especially if the king is on the other corner of the board!

The pictures below tell the story quite well. The ones from the left are from the WO game (after Black’s 54th, 68th and 72th moves – the final position). The ones on the right are from this week’s game (after Black’s 47th, White’s 53rd and Black’s 57th move – the final position).

brianrosner-raghav-54.jpg thorr-rr-47.jpg

brianrosner-raghav-68.jpgthorr-rr-53w.jpg

brianrosner-raghav-72-final.jpgthorr-rr-57-final.jpg

h1

Pair Programming: what works for me and what doesn’t

December 4, 2007

Pair programming was one of the two biggest challenges I encountered when I started my current job (the other being TDD) . How would I react to someone staring at my screen 8 hours a day – would I be distracted, or driven to working better? How would I react to staring at someone else type for 8 hours – would I stay focused or would my mind drift of its own accord?

It took me about 2 months to get reasonably comfortable with the practice. Now I enthusiastically recommend the practice to anyone who will listen to me (and the same goes for TDD). The list below are general practices that work and don’t work for me, but there are exceptions to the rule. The dynamic you establish with each pair is different – what’s important is that the pair is comfortable with the understanding between each other. So, without further ado:

The Good

  • The code is never written by one individual. Share the knowledge, share the joy, share the pain.
  • Programmers are inherently lazy. If they can skip good programming practices to finish a task early, they will. Your pair keeps you honest.
  • You learn tons of tips and tricks by watching someone else code – IDE shortcuts, plugins you never knew existed, new programming techniques, understanding the way someone else thinks.
  • Someone to talk things over with when you don’t know how to proceed.
  • Debugging a problem.
  • If you aren’t driving, pairing lets you think ahead.
  • If both individuals are on the same page, I generally prefer the “passenger” to stay two steps ahead and constantly offer suggestions or directions. Alternatively, to stay quiet and observe the action.

The Bad

  • Like anything, pairing can become a dogma. You don’t have to, not for very trivial tasks.

The Ugly (ie. my personal quirks or things I need to work on)

  • On average, I need about 4-6 hours a week working on tasks by myself. Without that personal time and space, I get cranky.
  • There are moments when I need to think quietly to clear thoughts and ideas in your head. If I’m not driving, I get the chance to. If I’m driving but my pair understands how to proceed, I let him drive. If I’m driving and neither one sees a clear path to the solution, the general approach is to discuss an approach with each other. I am not a “thinking out loud” kind of person; so I cringe at these moments.