PROGRAMMING

Yesterday I gave a presentation at Xebia India office on MapReduce. It really went well and audience was able to understand the concept of MapReduce (as per their feedback). So, I was happy that I did a good job in explaining MapReduce concept to a technical audience (mainly Java programmer, some Flex programmer and few testers). After all the hard work and a great dinner at Xebia India office I reached back my home. My wife (Supriya) asked me “How was your session on …” , I repl...

I’ve taken and marked a lot of programming tests in the past. I love doing them as it’s always good to see what challenges different programmers have come up with when designing them. Unfortunately, however, most of them aren’t very good. Below is a list of general ideas to help increase the quality of programmer tests.
1. Keep it relevant
Too many of the tests have questions on content that simply isn’t relevant to the job. The whole idea behind a programming test is making sure the ca...

I have been programming for a number of years already. I have seen others introduce bugs, and I have also introduced (and solved!) many bugs while coding. Off-by-one, buffer-overflow, treating pointers as pointees, different behaviors or the same function (this is specially true for cross-platform applications), race conditions, deadlocks, threading issues. I think I have seen quite a few of the typical issues.
Yet recently I lost a lot of time to what I would call the most stupid C bug in my ca...

Wouldn’t it be great if you could create web apps using your existing C and C++ code? Native Client lets you do just that, and it is now enabled for Chrome Web Store apps in Google Chrome’s beta channel. Native Client apps live on the web platform, so you don’t need to create separate versions of your app for each operating system. Rather than relying on OS-specific APIs, Native Client apps use Pepper, a set of interfaces that provide C and C++ bindings to the capabilities of HTML5. This m...

Programming language trends come and go. First, Java is the hot new language, then it's Python, then Ruby steals the limelight, then it's back to JavaScript. But the latest language darling is probably the last one anyone expected. Believe it or not, 2011 could be the year of C++.
Last week, the latest version of the ISO C++ Standard was approved by unanimous vote. It's the first major revision of the language in 13 years. Now officially known as C++11, the new standard introduces features desig...

If someone asks you to recommend a good programmer, who comes to
mind? Do you consider yourself a good programmer? What criteria do you
use to judge?
In thinking about this, I realized that there are different ways that a programmer can be good. So I present to you The Four Kinds of Good Programmers. And in celebration of Whyday, I include quirky Why-styled illustrations* for your viewing pleasure!
The Philosopher
The PhilosopherThe
philosopher loves to write well-defined, well-structured...

We want to foster a creative environment. We love it when employees hack on
side projects. It gets people excited. Excitement is contagious, and
spreads easily from one project to another. Even if we’ll never make money on
that side project, the excitement generated from it can bleed into things that
will make us money.
Alcohol
It’s no secret that there’s more than a few people at GitHub who like to drink.
I mean, we have four beers on-tap at the office in our kegerator.
But alcohol is m...

This is — by far — my favorite aspect of working at GitHub. Everything is
asynchronous.
Chat
GitHub didn’t have an office for the first two years. Chat rooms (in our case,
Campfire) is where things got done. Today we’ve moved into our
second office, and Campfire is still where we get things done. There’s a
reason for that: chat is asynchronous.
Asynchronous communication means I can take a step out for lunch and catch up
on transcripts when I get back. Asynchronous communication mea...