I'm off facebook, after 9 years of ignoring friend requests.
This was not some voluntary choice to spend less time on useless things.
Facebook in its infinite wisdom, locked me out and demanded my driver's license (or green card, that will also do) to unlock it.
I really wish they'd just delete everything instead of holding it in some deep archive limbo.
--Nobody exists on purpose, nobody belongs anywhere, everybody's gonna die. Come watch TV.
Friday was my last day in Zynga.
Zynga has been a very different place for me to work in. Coming from Yahoo, where the tech folks had sway over the company, to a place where the product managers were the core of the company was jarring to say the least. But adapting to thrive, indeed succeed there has polished off a few rough edges that I had.
I've sat at the cliff's edge between what's management and the frontline. I've stared into the abyss and stared it down. I've seen exactly how incentives work and more importantly, when incentives tend to work against you. I've learnt to temper my competitive spirit to skip the usual pitfalls of meritocracy. I've understood how to work with people who are not engineers.
I've known the difference between talking & persuading. To effectively bring people over to your side of the debate - whether it is with statistics or merely by running experiments. In some sense this is more diplomacy than being technically right every time - but there's no value in actually being wrong. And I got better at saying No.
I've learnt what risk looks like. Very early in this "game", I learnt to play offense. To gauge a risk, take it and occasionally clean up afterwards if it blew up in my face. And in some sense that's the general motto around there. I became quicker at churning out a solution, battle testing it and minor setbacks weren't really a deterrant anymore. And I was brave.
I got to treat crisises differently. I was on the on-call rota. Instead of panicking and hyperventilating, I started treating them as merely opportunities to offer solutions. And in my spare time, I prepared for these crisises which turned out to be massively productive moments of innovation. I tried to get some of it opensourced, but a lot of it is locked up in the paperwork that I never finished.
I've had my moments of frustration too. There have been scenarios which were charged with egos and people politics, which are probably no different in any other workplace - people trying to play schedule chicken, folks trying to delay others with scope creep, territorial engineers telling me to keep off their turf & avoidable meetings where people duel with power point slides full of promises they can't keep. I've occasionally gotten demoralized about all that, but I've managed to move beyond that and build out a stronghold around me.
And finally, the best thing that's happened to me was working with the senior technical folks in the Bangalore office. People like Binu, Prashun, Prakash & Jayesh have been a big part of my development at Zynga. And not just them actually, the whole team is full of fun folks who don't really consider work as the end-all of their daily life.
It felt like I was part of an uber startup!
--The world hates change, yet it is the only thing that has brought progress.
-- Charles Kettering
Censorship is bad, mmkay?
Free speech is not any different just because there's the internet involved. And any country attempting to close its internet borders in the name of censorship should be defeated, for the fear of setting a precedent. Censorship anywhere is a threat to freedom everywhere.
Otherwise very soon, the internet will turn into a series of █████ which will only be used by █████████████, unless ██ take action and stop the █████████.
So, visit ███████████████████ to learn more about what's going on.
--Censorship reflects a society's lack of confidence in itself.
-- Potter Stewart
eiπ + 1 = 0
Euler's Identity. 'tis a thing of pure beauty.
Three very suspicious numbers in a menage-trois, creating something real. How can two irrational numbers and an imaginary number work together to make a very real integer? It boggles the mind entirely. Somewhere in a past left behind, this was the first equation to make me sit up and consider imaginary numbers as something more than a trick.
The standard wuss way of explaining this (as happened to me) was that of pre-cooked trigonometry.
eiϑ = cos(ϑ) + i sin(ϑ)
But that is just a completely arbitrary equation, when you really think about it. And I'm an incorrigible skeptic. But that's where that lesson ended and Math is not taught as much as lectured on. But somewhere during my engineering, I learnt about the Taylor series, for approximating sine and cosine values. Except, it's not really an approximation, but an infinite series and the partial sum, is used for approximation.
ϑ3 ϑ5 ϑ7 sin(ϑ) = ϑ - — + — - — + ... 3! 5! 7! ϑ2 ϑ4 ϑ6 cos(ϑ) = 1 - — + — - — + ... 2! 4! 6!
Remember, that works on radians, not regular 'ol degrees. So ironically, when you throw the magic number in there and spend an eternity calculating it, the sin(π) works out to be one huge zero. And it has to, because looking at it from pure geometry and sine as a pure fraction.
Now, I never understood how an infinite number of operations could ever result in a finite number. Well, it's the ghost of something familiar - Zeno's Paradox. And well, Archimedes debunked it, way before I could even attempt it.
Now if you shift a little from geometry of lengths into the world of co-ordinate geometry, you suddenly realize that imaginary math is literally co-ordinate geometry in disguise, except with imaginary numbers (woooo ...). Pull that very Eucledian right triangle into a unit circle on the imaginary plane, the boundaries between the disciplines start to disappear.
The imaginary pixie dust sprinkled on e results in another taylor series expansion, which ironically just shows to go how you can really go mad learning mathematics. Now, the taylor series expansion for just plain 'ol ex goes like this.
x2 x3 x4 ex = 1 + x + — + — + — + ... 2! 3! 4!
Now, here's the clincher. If x just happened to be i, the alternate coefficents would be negative. Oh, yes ... that's pure imaginary pixie dust, but once you get hooked on it, there's no getting off it :)
Now, we get to the final and crucial equation all over again.
eiπ = cos(π) + i sin(&pi); eiπ = -1 + 0 i eiπ + 1 = 0
Time to run out on the streets and yell out that ... "they were right, eiπ is REAL!".
--That's not right! Heck, that's not even wrong!
-- Wolfgang Pauli
I thought I'd done this once already. I guess I have no recourse other than to follow the crowds wherever they go - follow the herd and keep up.
So, twitter gets a new t3rmin4t0r. And the countdown into obsolescence begins anew.
--It would be illogical to assume that all conditions remain stable.
-- Spock
It's finally happening. My friends are slowly drifting away in different directions. There aren't going to be any more sessions of midnight pool, no more late night balcony conversations, no more weekend hack sessions - 'change' happens, but I can live with that. But to actually lose such friends in the milling crowd is a sad thought.
These people seem to have fallen off the planet. They've stopped blogging, have unsubscribed off many of the mailing lists and even their flickr streams are devoid of actual life, tending towards art & technique.
And reluctantly, I turned to facebook to 'bookmark' them. Despite using an online social networking site, I'm trying to keep in touch with people whom I used to meet every day.
Ironic, but completely Web 2.0.
--Friendship needs a certain parallelism of life, a community of thought, a rivalry of aim.
-- Henry Brook Adams
Driving a car in the US seems to be a complete peice of cake. There's none of the hassles of a stick-shift/clutch system with an automatic shift, the roads are wide and nearly all parking lots are easy to pull a car out of. The new-fangled GPS thingys ensure that I'm never lost and the most reassuring phrase you'll ever hear is "recalculating ...", when you realize you've missed your exit.
So far, I've driven once to San Francisco and a fair bit of the freeway to Mt Diablo. In both of the trips, the hardest thing I had to do was drive up there in the seventy MPH speeds. Driving in India has given me a sort of "expect the unexpected" sixth sense which makes me slow down as I expect merging traffic to cut across my path. Just pure speed does not bother me that much, as I have driven at higher speeds on Indian roads. But that was mostly a dare, combined with suicidal insanity, on home turf - but maybe I'm not that young anymore ?
And then in downtown, I suddenly started driving on the left side of the road. Half a second and screams from premshree & bluesmoon later, I swerved back onto the right. Still have to unlearn a bit of muscle memory that serves as my driving. To actively apply my attention on driving just takes too much effort. The task of getting from point A to point B, possibly passing through point C, can be accomplished with a combination of VTA, caltrain and BArt. And that's the plan, going ahead.
In short - been there, drove that and nearly got a ticket.
--Left is right and right is wrong.
-- Drive-in India
Recently AfC wrote a HOW post on linux & open source, but the question I'm more often asked is WHY.
Most of the content in this entry comes from the similarly titled GNUnify 2006 BoF session with inputs from spo0nman, premshree, lunatech, pradeepto, G0SUB and the students at the conf. And it attacks the topic from the other side of the problem - what more does a F/OSS programmer bring to the table at a job than the other guy.
Not Technical Talent: For a long time, I had assumed that it was the proven technical competency which has been tested in the real world. But in the recent past, I've met enough technically adept folks from both sides of the divide to take that assumption to peices. People from the proprietary code land are equally capable and just because your code is open does not make it any better by default. Having your code out in the open does make it easier to judge your ability for a third party - but that'd be end of this blog entry if a programmer was merely a code producing machine.Co-operation: The transition from college to the workplace is rather jarring. Having spent the last fifteen-odd years in constant competition with your peers, suddenly you are thrown into a world where you need to co-operate with, rather than screw over, the next guy. Most people who work in a successful open source project with multiple contributors have gotten past that particular hurdle much more earlier and the transition into a workplace where the focus is on getting things done rather than merely doing your own part is much more easier.
You got Bugs ! (and users): I've often been shocked by the way people deal with bugs and criticism. The immediate 'full power to shields' reaction is probably understandable, but rather unpleasant. But for someone who has worked with other people in a serious project, criticism from your peers is easier to handle or at least something they have handled in the past (or you'd think so). Also bugs from end users gives a developer some level of user focus which is totally absent in the college graduate. Seeing the user and his problems as one of the factors while coding is hard to acquire if you've written code for a college professor to run once.
Communication Skills: Most f/oss teams are spread across the world. Their communication happens mostly through filtered channels such as mailing lists, irc or bugzilla. It does take some effort to involve yourself in such a global environment when communication can be easily misinterpreted for tone and context. Working in such an environment easily carries across into the modern world of distributed development required for global product development.
Consensus: Have you ever been in a technical argument at work ? There are always people who have a hard time accepting someone else's point. If you've worked on a real peice of code long enough with a group, you've had one of these hard-to-swallow decisions to deal with. It does come as a nasty surprise to most graduates out of college when they run into one of those. Having gone through the standard sulk phase for the first few such run-ins, most f/oss developers are more understanding and less obnoxious about accepting someone else's idea.
Oh the humanity !: Somehow, getting involved with a project, working with different people and enjoying the experience does result in a more rounded work persona. The whole community effect can easily seperate the assholes from the good guys as easily as it seperates the men from the boys (uh... women from the girls too). In general, it also selects for a person of the community rather than the brilliant loner and most employers prefer the former.
There are many more qualities which are quintessential to the f/oss hacker ethos - passion, commitment and plain old curiosity. But they are not unique to the group - anybody who has run into a mac fanboi would agree on the passion part at least :)
I'm by no means the first guy to say that F/OSS hackers are better hires - virtual referral and loudthinking do reinforce my conclusion - but someone needs to tell the students.
--Yacc owes much to a most stimulating collection of users. Their irritating unwillingness to learn how to
do things my way has usually led to my doing things their way; most of the time, they have been right.
-- S.C Johnson.
One of the first thoughts which crossed my mind when I was writing Migration Patterns of Codemonkeys was how ill-prepared I was for such a migration, at that point. I had decided that I would fix that deficiency as soon as things settled down. But during the tumultous times that followed, that TODO item has lain un-noticed in the pile of higher priorities. But no more.
So yesterday, my resume has risen on stepping-stones of its dead self to higher things. In keeping with the whole semantic markup fad, I've tried to keep to the hResume microformat while peicing together this. The presentation - both print and screen - is all done in css.
The content has been slightly trimmed to fit into a single A4 page - but it does indeed provide a big picture view of my non-achievements over the last 6 years or so.
--The closest to perfection a person ever comes is when he fills out a job application form.
-- Stanley J. Randall
As I headed back from the dentist in an auto, I was surprised to feel that my purse (in my backpocket) was vibrating. Totally puzzled, I took out my purse and just couldn't explain why an auto should vibrate. Somewhere nearer to Brigade Road, I realized that the Hello Moto which kept repeating was actually from a couple of cellphones lying between the seats.
When I flipped open the phone, there were 31 missed calls from someone. I was still not able to speak clearly and eventually picked up the phone after reaching office. First line off the phone - can you come to Forum ?. Then, apparently the girl realized that she should probably try to get the phone without inconvenincing me.
To cut a long story short, She came to my office. I gave her the phone and asked her to buy me coffee for all my trouble - after all, the two phones together were well worth over 40k.
Good deed for the day - done and Done !
--I hope you're not pretending to be evil while secretly being good.
That would be dishonest.
Somebody has attempting a reality distortion by showing off how shiny smart folders are in Mail.App. As novel as that may seem, what I hadn't realized was that a lot of people don't know that the nearly the same functionality has been available in thunderbird for a while. So, here's a cool feature of Thunderbird 1.5 I've been using for quite a few months now (got me a nightly build, thanks to one bug-fix).
If you look at the thunderbird message pane, you'll notice a combo box named View. You can create custom views with its customize option. For example, here's how one of my custom views look like.
Now, there are a lot of cool things about filters and views. One of my favourite options in there is the Age in Days option. Combine that with a List-Id or [Bug filter, you get interesting sources of information for status reports.
But views are a true bitch to use. The view isn't reset when you switch folders and a view set for a bugs folder makes no sense when you switch back to your Inbox. But that's where this killer feature comes in. The second last option in the View drop-down is titled Save view as a folder - and that's exactly what it does.
Voila ! There you have your smart folder - no swapping views or anything, just visit the folder and you've got everything you need. Well, it does more than just filter a folder - you can even aggregate multiple folders, with this feature. And I hear that there is tagging in thunderbird 2.x - making it truly web two point OH! compatible.
And before you ask, I've become a GUI weenie :)
--How do I type "for i in *.dvi do xdvi i done" in a GUI?
-- comp.os.linux.misc
After climber over enough mountains, I'm now planning to take a dip & see some corals. Current plan involves a week in Lakshadweep in mid/early November - seems to be a good time to visit, the sunshine shouldn't be too hot and the weather mild. I am planning a single week trip with the weekends to take the slack of the trip. December is actually when the circuit gets really really expensive - which puts this in a nice bracket.
The current budget is about 15-17k INR (which should basically take care of November's paycheck). Current plan is to take a helicopter one-way from Lakshadweep and the other way on the boat - as far as possible on the budget. Current plans involve taking the MV Tipu Sultan which plies between Cochin and the islands (3,400 INR). The helicopter ride is a lot more expensive and costs (7,400 INR).
The only airport in Lakshadweep is on the Agatti island, which is a pretty awesome coral formation. Here's how it looks from Google Earth at maximum magnification - the straight dark strip is the airport. But as far as I can understand, there is only room for one hotel on the island - the Agatti Island Beach Resort which looks to be more than slightly on the expensive side.
After the point-to-point travel, there's a maximum 6,000 INR to do the sightseeing + stay in the islands. So that obviously rules out the expensive hotels (2000+) for more than a single night.
Totally I have 5 islands to hit: Agatti, Kadmat, Bangaram, Minicoy and Kavaratti. Three of them come up in the standard "Coral Reef" tour package and now I've got to find out how to visit the other two (one of them is uninhabited wilderness).
So far the trip plan is not totally set in stone - I'm still debating the possibility of taking a tour package instead of planning out my own trip. Either way, I want that helicopter trip over to Agatti, if not from Cochin, then from somewhere else.
So, if anybody's interested in pooling along with me, please let me know. A group of 4 will be ideal to get at least a few discounts along the way (heh, did I mention that people speak Malayalam in Lakshadweep ?).
And if someone had any advice, that'd be even more than welcome. Leave a comment here, I'll be watching.
--A good traveler has no fixed plans, and is not intent on arriving.
-- Lao Tzu
This came out of recent conversation -
Failure is not defeat; Defeat is when you stop trying.
I can be lucid on occasions.
--I often quote myself; it adds spice to my conversation.
-- G. B. Shaw
Never before in my life have I managed to run through my entire salary before lunch on the 1st. Not even when I got my first 6,600 INR paycheck from Wipro did I actually spend it all, least of it in one day.
This would've made sense if I was paying for last month's credit card purchases, but I don't have a credit card. Except for 4,500 spent on books, none of the other expenses are what I'd consider as luxuries.
What gives ?
--We're living in a golden age. All you need is gold.
-- D. W. Robertson.
Rob Levin of freenode is no more. But lilo still lives on over the wires of irc for us.
[freenode] /who lilo * * i=levin freenode/staff/pdpc.levin irc.freenode.net lilo G :0 Rob Levin--
A man’s not dead while his name is still spoken.
-- Terry Pratchett (Going Postal)
Nobody expected Steve Irwin would be killed by anything other than an aussie salt water croc [1]. I mean, this was the man who'd put down Eaten By Croc down on his epitaph by choice - struggling with crocdilians in all four continents. And it was quite a surprise when I woke up to this news that he was dead, from a sting ray barb through his heart [2] - a very painful way to die, indeed.
For someone who'd maintained a general irreverance to nature's deadliest creatures (most of which live in Australia, by some weird coincidence), I personally thought him to have aura of invincibility - a firm confidence that these animals mean him no harm, even when they were capable of snapping him into two bits without even trying. Crocodile Hunter wasn't just a nature documentary, it was reality tv with stunts and a fair bit of nature thrown in.
His antics might not have won him any respect from other wildlife experts, but he did manage to get a whole new generation interested in wildlife. If you watched a David Attenborough documentary about spiders and saw a spider in your backyard, you probably wouldn't hesistate to smush it out of existence. But if you'd watched a Steve Irwin special, you'd go looking for someone to throw it out. This guy put animals in your backyard, robbed them of their dignity and in some strange way, let us empathise with the animals. To the less ecologically sensitive masses, he put animals in a different perspective - one that made sense to them.
I'm sure he died doing what he loved, talking about things which could kill you, and him. I mean, I think that Douglas Adams is probably sitting up there wondering why he had to die while on the way to gym. Steve's got it much better, in comparison. Though it's Crocodiles:0 Stingrays:1 right now.
With condolences to Terri & the kids. Rest in Peace, mate.
[1] - /private/gator-baiter.avi
--When I die, I want to be hit by a meteorite while I'm coding.