In the pub on friday the subject of geek pilgrimages cropped up. Trips to MIT, One Infinite Loop, the Googleplex, that sort of thing. I've yet to partake myself, but I can definitely see the appeal.
In a similar vein, I mentioned Code Rush, only to be met by blank looks all round.
A documentary from the close of the nineties, about crunch time at Netscape in the run-up to the release of Mozilla. If you haven't seen it and those words evoke anything for you, then you should. Jamie Zawinski, Brendan Eich, history, pathos, what more do you need?
(Credit due to Andy Baio who was fairly instrumental a year or two ago in re-kindling interest in the film and inspiring the film-makers to re-release it under a Creative Commons license.)
I haven't posted in ages, so I might as well use this to break radio silence. It's a solution to this little programming brain teaser from Dustin Diaz. I don't think it's as much of a puzzle as he seemed think, given by the responses in the comments and how long it took me, but regardless:
var listA = ['a', 'b', 'c', 'c', 'd', 'e', 'e', 'e', 'e', 'e', 'f', 'e', 'f', 'e', 'f', 'a', 'a', 'a', 'f', 'f', 'f'];
var listB = [];
var count = 0;
listA.forEach(function(val,key,arr){
var matchPrev = (val == arr[key - 1]);
var matchNext = (val == arr[key + 1]);
count = matchPrev ? count+1 : 0;
if (count == 2) {
val = '<span>' + val;
}
if (count >= 2 && !matchNext) {
val += '</span>';
}
listB.push(val);
});
console.log(listB.join(' '));
As some of the commenters' solutions show, it can be done in a one-line regular expression, but I was sticking to the "rules" implicit in the original post.