Saturday, December 8, 2012

The Official Solomon Says blog

Here's announcing  the official blog for Solomon Says.

I am no hotshot blogger, but I understand when Robert Scoble complains about noise. We follow blogs for some particular topics, and if the author starts spamming us with a whole bunch  of  other stuff, it becomes outright annoying.Over the last few months, I have devoted all of my time and energy to building Solomon Says into a useful website, and consequently my blogging has also taken on the form of a journal of my efforts. This was not a conscious decision, but I write what I am thinking about, and what I was thinking about was the site.

On the other hand, I felt compelled to share with my readers what I was planning with Solomon Says and the reasons for doing what I was doing. Since this blog was the only web destination I had at that time, this is where all the posts came. But some of you may be reading for entirely different reason and do not care about what changes I am making to the homepage. Other may only be interested in the progress of Solomon Says.

To avoid alienating both set of reader, I decided to separate the two data streams. Starting today, I am moving all blogging related to Solomon Says over to its own home, which will be the hub for all news, discussions, and brainstorming.

Go check it out, and subscribe if you would to stay abreast of what's happening in the world of online reviews.

Friday, November 23, 2012

Alway keep a backup. Of everything.

Let me tell you a story of failures and backups and pain.

So last night I finished a bunch of changes to Solomon Says.  After the regular load of testing (that lasts 15 minutes and includes opening a bunch of pages on Firefox and Chrome), I uploaded the changes and tried to bring the server back up. Everything exploded in my face at about the same time. The only reason we are still in business is that I had backups. In decreasing order of importance, the following backups saved the day:
  1. Database
  2. Code/Configurations
  3. Images
So pretty much everything :)

At this point, a note on the deployment process is in order. Here’s how it goes:
  1. Stop python fcgi process and nginx service.
  2. Delete the production code.
  3. Run the DB migration script.
  4. Upload the entire code from my laptop to the production location.
  5. Start python and nginx
#2, #3, and #4 didn’t go too well.

#2 – My dev. environment is Windows, but production is on LINUX.  So there’s a bunch of stuff related to path handling (‘/’ vs ‘\’ etc.) that I change just for development. This is automatically handled in production by using a different configuration file. Alas, I ran the delete for #2 from one level higher in the directory structure. Boom goes the config. And on bringing the server up, I get a load of ‘access permission denied’ errors. I spent a half hour analyzing the arcane debug messages, then give up and restore the entire code base file by file and change by change.

#3 – I missed selecting a couple of ‘where’ conditions when running the migration script. Result – 2 of the main table got randomly changed. Considering how crappy the day had been so far, I realized it only on restarting the server. So bring the server down again, restore the DB to its previous avatar from the backup, and run the migration with extra precaution.

#4 – My development copy did not have quite a few of the images related to the newer reviews I had posted. And since I had deleted the production data in #2, the server started throwing ‘Suspicious Operation’ exception (What the hell is that? It should have said ‘File not found” or something). In view of the blunders I had made for #2 and #3, I assumed a mistake in the new configuration I had created and spent another hour debugging, then gave up and copied over the image folders from the back up to production.
 
All told, something that should have taken 15 minutes took 4 hours.
 
Lesson learnt. Always keep a backup. Of everything.

Wednesday, November 7, 2012

Looking just a little bit better

A lot of the feedback that I have received on Solomon Says (a big thank you to everyone who spent time and effort providing it) has been regarding the styling and design aspect of the website. Or rather, the lack of it styling and design aspects in the website. Now, I am no designer. CSS3 and templating were not quite my fortes when I started working on it. So operating out of my ignorance of these fields, I have been forced to improve the design of the site in increments. Get something working, make it usable, and put it out there. Then improve what it looks like in the next iteration.

I'd like to share with you some of the changes I'm currently working on to the layout of the review pages. This primarily involves improving the data panel just above the text of the review. For the uninitiated, this is what it currently looks like on book and travel reviews respectively.


Both look very cramped and difficult to interact with. The huge orange rating section is sort of a waste of space, and the images don’t get due prominence (especially harmful on travel reviews). So I thought through these problems and came up with a small redesign which hopefully makes everything cleaner and easier to access. Check it out.


The new version is only slightly different from the current one but I think it lends a much more spaced-out feel to the whole page. You would also have noted that there is a small panel of image thumbnails right above the ratings section. These are the images that currently show up below the text of the review, like so:



I never really this design because pics are cool and everybody loves them. So I moved the images right to the top in a combination of sliding thumbnail carousel and Fancybox. Now they are easily accessible, and clicking on the thumbnail gallery blows them up to full size too! Like this.


A lot more groovy, even if I say so myself! I am planning to roll out the changes in about two weeks after a few minor tweaks and testing.

So what do you think? Like the new look? Not quite? Let me know in the comments or drop me a line at solomonsaysindia@gmail.com. Suggestions/flowery words of praise/hate mail are all welcome.

Solomon Says at ISB

First things first – Please fill out this short survey. This will help me in assessing what I can do to make Solomon Says more exciting and useful for its users. I really, really appreciate it.

Now for the news of the week.

Solomon Says is currently the subject of a marketing project/case study in a course on Entrepreneurial Decision Making (EnDM) at ISB (Indian School of Business). The project is being conducted by Varun Jain (a very close friend of mine from my undergrad days at NSIT) of the ISB class of 2013 under Prof. Arun Pereira. Over the course of the project, I will be working with the two aforementioned gentlemen (mostly with Varun) to conduct market surveys, audiences analysis and other analytical wizardry to refine SolomonSays into an even more awesome product.

Quick background on how this came about. Essentially Varun was looking for a start-up to whet his new-found marketing chops on.. I was going around writing reviews and hacking away to glory with no time for reaching out to the wide world and finding a place in it. We discussed the website one day, and agreed that it could use some MBA lovin’. So starting this week with survey mentioned above, we’ll be doing some basic scoping exercises to (hopefully) understand out audience and define our market with a lot more clarity than before. These efforts will also try to discover how readers interact with the website and what we can build into it to make that experience smooth.

I have written before that I do not have a proper business plan yet for SolomonSays. Throughout this ISB affair, my focus will continue to be on how to make this the best, most helpful reviews website on the web. No doubt there are parts of the project which demand an emphasis on revenue streams and sustainability, but those come later. Till then, the spotlight, my dear readers, is on you.

Don't forget the survey.

Tuesday, October 23, 2012

Meet SolomonSays : All the review you will ever need



This post has been coming for a few months, but somehow I could never get around to writing it. But a certain milestone has been reached today that makes me want to sit down and write this. A minor milestone, no doubt, but something is better than nothing right? Over the last 10 months or so I have been working on a website called SolomonSays. This is a blog-in-website-shape where I review books, travel destinations, and eateries (though I am yet to get any traction on the last one). The milestone – 100 likes on the facebook page.

I have referred earlier to the broken-ness of the crowd-sourced or community driven model of getting reviews of products. It is great at getting lots of info and scales insanely, but none of this data is in a very usable form (short of going through tons of reviews). And apparently, I’m not the only one cribbing either. The other problem is that one has to go to so many different sites to get reviews on different things despite the fact that all these websites are doing the exact same thing – gathering user generated review content.

I first faced this problem while looking up book recommendations and reviews. So I set out to do what I thought was the right of reviewing things. Which, I believe, is the old fashioned way of having a team of dedicated reviewers writing comprehensive reviews about whatever it is that is being reviewed. I believe that no one should have to go through 300 one-off personal experiences to get an idea what a new restaurant or car is like. These are critical elements of a discussion, but do not comprise a coherent review. Combining the two approaches, i.e. getting a community to offer their individual opinions around a central review, is the clear winner IMO.

My original goal was extraordinarily ambitious – SolomonSays.in would review absolutely _everything_ that can be reviewed. Books, Restaurants, Home appliances, vehicles, were all fair game. While I realized that actually doing this wouldn’t be possible all at once, that was where I believed I wanted to get to. Such a website, if it could be created, would occupy a unique position between Wikipedia and Amazon – the reviews would be free, and we would be able to facilitate any purchase the reader wanted through affiliate partners. But the content would be the business. Data would come first. ALWAYS. I still hold to the original unbounded scope of the website - but getting there is being done only in baby steps.

All MBA and otherwise savvy reader will have seen that the above isn’t much of a business plan – write reviews till you have enough content to drive steady traffic through SEO, and then try to convert that traffic into sales. In all honesty, I didn’t think too much in terms of a business idea (I still don’t). I was extremely excited by the idea of having all this data under one roof, the day job wasn’t too interesting at the time, so I just ran with it. One of my friends whom I initially discussed this with still hasn’t stopped harassing me about monetization.

The time spent working on this has been very exciting, and very tiring. I essentially have two jobs, so I get to hang out with my friends a lot less that I used to. For all that, the learning has been tremendous (I have written earlier about the technical experience). But now I am paid to read books (not yet really, but soon will be, I hope J), and writing about what I read clears things up in my head too. Besides, there’s no better feeling than when drops a line saying how useful they found something that I wrote. 

At this small occasion, I thank everyone who has supported me thus far (Special mention – Aditya Mangla, Sid Reddy, Sreejith, Kalpana, and Sin City). Do drop me a line with your ideas, suggestions, and review requests (or if you are willing to share your beer). Random gossip and philosophical musings are welcome too. 

Whatever I code or write is only half the answer. The rest of the awesomeness comes from your experiences and participation. I will continue to bring more information to this party. Hope you’ll stay. Let’s clean up this morass of online reviewing!

Wednesday, August 29, 2012

The problem with crowdsourced content

We have whole lot of sites featuring reviews written by their readers on pretty much all topics. Of these, at least the front runners attract large traffic volumes, have a devoted user base, and are, I assume, making money. However, I want to discuss what I think is wrong with them.

The problem is the method of generating content. All these sites rely on a bevy of users to come write reviews on the products/service that the site focuses on and that they have used/experienced. This can be restaurant, book, travel, gadgets, or whatever else. Via friendly UIs, facilitated social media interaction etc., users are encouraged to contribute data for each others benefit. This strategy is very effective in generating large amounts of data. However, it is very bad at generating cohesive data.

In general, I have three somewhat interconnected problems with this:
  1. Data is of poor quality – Since the website wants readers to submit reviews, it can rarely hold them accountable to the quality of their writing. The aim is to lower the barrier to writing and social media sharing. Get him to write. No matter he writes, get him to write. To be fair, most of the reputed website will intervene if you write inflammatory or profane material, but apart from that, pretty much anything goes. As a direct consequence, the quality of review in terms of both the content (what is written) and the form (how it is written) goes down. Most people write unbalanced reviews, either giving full marks and endless praise or griping about a very bad experience.This can be avoided to some extent by making sincere efforts at moderating and community building (StackOverflow is a great example), but none of the major commercial websites seem to be doing so.
  2. There is just too much data – This is the explicit result of successfully inducing readers to submit content to a site. Since anyone can submit anything, the data volumes are large, and it becomes well-nigh impossible to find information. This is what I like to call the Problem of 500 reviews. What I mean by that is that on any successful reviews site, today you can find 500 reviews for pretty much every single item. Too much data is not much better than no data. The best this deluge of disjointed reader inputs can give us is a general sense of how people like something. As an experiment, choose any famous book about which you know nothing, and try to find out about the book using only GoodReads reviews. I am fairly regular on the site, but I mostly do it for the bragging rights, and to let my friends know what I am up to.
  3. Data is without structure – I totally agree that a successful travel site of the kind that we are talking about will have all data about some destination. But how do we find this data? Since it is broken up across a large number of unconnected reviews, it is very difficult to present the information in a coherent, intuitive manner. It is now left to the reader to sift through the data that each reviewer has provided and collate the data he needs (when to get there, how to get there etc.)
The crowdsourced content model is like a group discussion where everyone is talking at the same time. There is no anchor or reference around which a discussion can be built.

IMO, a far better alternative is to have an informed member write one review, and then use that to gather all sorts of varied and personalized experiences regarding the topic of discussion. It may seem so up front, but such a model (critic-driven model, if you will) is not about classroom style information broadcast. The Expert has not spoken. It is about providing a structured core, the basic information, and then inviting the readers to extend that into a wider body of information. If you want people to spend time and effort sharing their opinion, it is only fair that you offer them something in return.

Monday, August 27, 2012

A sample Ladakh itinerary and a vote of thanks

So yours truly went to Leh two weeks ago. It was, as expected, a mind-blastingly awesome experience.

It is not the most routine of trips, so I pulled up my Google socks and got down to business. Although data is widely available on each individual destination in Leh, I found difficult to plan an itinerary since no one was very clear how long each place would take (I found Nubra Valley estimates from "Dont even bother going there" to "It will definitely take 4 days"). The tour operators will certainly make one for you, but the geeks (and the jock for that matter) _has_ to work it out for himself, right?

I eventually had to call up friends who had been there to get their itineraries. Not cool. I don't want to be real life social when I can be online social. So to save all you worthies this trouble, here is my itinerary:
Day 1
Arrive Leh and overnight Stay. Check out Leh Palace and Shanti Stupa. Chill in random cafes.
 
Day 2
Leh-Like Monastery - Gurudwaara Pathhar Sahib - Lamayuru Monastery-Ule :  
You can actually visit Alchi the same day and come back if you rush somewhat, but why bother? The nice Ule resorts are built overlooking the river. Ergo, overnight stay.
 
Day 3
Ule-Alchi-Leh : Alchi monastery is nice and old. You can visit Basgo Palace on the way back, but it is really just a pile of mud and stone now and not worth the climb. Also see Hall of Fame - an army memorial/museum for our high altitude warriors. Respect.
  
Day 4
Leh to Nubra Valley - The drive is awesome. Bragging rights are earned by clicking pics at Khardungla (the highest motorable pass in the world at 5600-ish metres). Then bactrian camel ride at Diskit. It's  beautiful here and a hard ride back, so stay overnight.
Day 5
Drive back to Leh. Relax.
 
Day 6
Leh - Chang La - Pangong Lake : Changla is the third highest motorable pass in the world (14500 ft. Reach camp around lunchtime. Sit on the banks of the beautiful lake. It's frikking cold and windy.
 
Day 7
Pangong Lake - Leh. Enroute visit Hemis, Thikse Monasteries and Shey Palace.
 
Day 8
Go home
 
Everything was done at a mellow pace, no rushing. Spending less time than this would not be doing justice to them IMO. Also, this is a fairly touristy plan, since this was my first time.

For all the research, we still booked a packaged tour (I'll hulk out the next time, I promise) via Escapades India. That almost got effed up due to the recent flash floods. We were stuck in Manali for 2 days, and missed the first two days of our itinerary. But the folks over at Escapades were EXTREMELY helpful, stayed in touch constantly to find out if we were doing okay. I called the unputdownable Mr. Parag more times than I called my family and he just might have done the same! A mail of theirs said "On adventure trips, you want to worry more about the reliability of your operator rather than what he is charging you" (paraphrased). Parag and Co. certainly came through on that front.

We extended our trip by two days to compensate for the things we had missed, and Escapades arranged it for no extra charge. Read that again. Slowly. No extra charge.

So all in all I strongly recommend anyone looking for the arranged travel option to go to Leh (or elsewhere, but I'm not very sure of  that) to get in touch with Escapades India.

Monday, May 28, 2012

Chance knowledge and the cumulative effect

As I was driving past a park this Saturday, I saw that a section of it was burning. I suddenly had a vivid image of the entire park burning with high flames (It is a very large park). This then caused a thought about how Rome would have looked to Nero as it burnt. The revelation – I now know why Nero (the software) is so named.




This sort of random revelation is not an unusual thing. The most important part here was that I wasn’t thinking about computers at all. The experience was quite Sherlock Holmes-ish – When he gives voice to Dr. Watson’s thoughts by saying “Such a waste” and then proceeds to explain the chain of thought in the latter’s mind. Richard Bach compared ideas to fractures running in a crystal – any could lead to any other. Others have referred to the oneness of knowledge – that given one thing, everything else could be discovered. Both seem somewhat limited ways of explaining the experience.

Chance discoveries happen in science all the time. Microwave background radiation and radioactivity  are but two examples.

I’m thinking now of the cumulative nature of scientific knowledge. Both socio-economic theorists (Farcis Fukuyama, Fareed Zakaria etc.) and scientists (Francis Bacon) assert that with the invention of the scientific method (hypothesis-experiment-prove/disprove), scientific knowledge has become cumulative. That later generation inherit the knowledge of their predecessors. And it is intuitively true. We don’t have to rediscover the gravitational principle, although we may have to prove it several times over (damned CBSE exams!).

This is brought into somewhat contrary focus by the revelational experience. The cumulative nature of the scientific method no doubt holds true when the steps are small. Not to belittle any discoveries, but some _are_ greater than others. It took a Newton to get us to gravity, and even more drastically, an Einstein to get to relativity. Both works are quite out of the league for their times. The tools they used were there, as was the a-priori knowledge. But the power of the method seems to wane when we consider efforts where accepted first principles have to be discarded.

The cumulativity assertion says that given a state of human knowledge and the scientific method – the future can be worked out again. But how does this apply when the prior knowledge has to be discarded by a leap of faith.  When accidents force the next step forward, how does the scientific principle handle it? We can say that the geniuses use informed intuition (Kekule and the structure of Benzene). But that would lead us into the myriad definitions of genius and intuition.

And that’s a discussion for some other time.

Thursday, May 24, 2012

Technology, not activism, will save the environment

A lot of people are interested in preserving the environment. I admit I don’t do much about it (I’m more the armchair sort), but I am interested in it. To those who are out there doing it (planting trees, spotfixing etc.) - more power to you!! You have my respect. This post has nothing to do with you. This is about the people who are corporate bitches of the “sustainable business practices” variety. I will say this out loud and clearly – That shit don’t work. Let me explain why.

What does “sustainable business practices” mean? It means that we will continue to do business with just about enough tweaks to it so that it allows the self-same business to run a little longer. If the tagline gets us a few tax breaks, so much the better. I don’t know of any company which has drastically changed business models or made business decisions on the basis of sustainability. Sustainability is good PR, but it is faaaaaar down the table from the bottom line. The jobs I referred to exist for posterity, and to employ mavericks who are willing to work for low salaries and pointless objectives.

Think about it. In the first place, the concept that we can somehow undo the damage we have done to the environment is kind of suspect. We can stop it from getting worse if we abandon all polluting activities right this instant, but the ecology of a planet is an immense beast, and is not easily turned from its path. Apart from that, the scale at which we are screwing things up is huge. Optimizations to the existing products/processes can only buy some time before the jig is up. Besides, let’s face it – corporates don’t truly care about environment. This is not to say that people working there don’t care, but usually when “The firm comes first”, clean air comes last.

Henry Ford (the first) said – “For an idea to work, it has to be right in time, and it has to be right in price”. Meaning someone making very expensive horse-buggies in 1900 would be wrong in price, and someone making very cheap horse-buggies today would be wrong in time.  Neither would work. Today, the idea of environmental conservation is right in time, but I think that it is still wrong in price. We simply do not have economically viable substitutes for most of the stuff that is going wrong. This is why I firmly believe that the tide will turn not by activism, but by technology.

Activism is a fine thing, but it is not the solution here. It simply does not scale well. What we need is new, clean technology that performs at least as well as the current polluting setup. Only once we have these alternates is when the battle can be joined in the earnest by switching businesses to use them and making the enterprises actually sustainable.

New products that are cheap and yet eco-friendly will be immensely disruptive to the existing system. This is historically consistent (significant changes in living conditions occurs with significant change in technology) and the only hope that we have of turning the development juggernaut on its head and setting it in the right (or at least somewhat) direction. But since it is disruptive, it will face opposition, and THEN we will need environmental managers to carry the standard into boardrooms. But first that solution(s) that can be peddled has to be discovered.

So, here’s my tuppence – If you truly, deeply care about environment, go study the sciences. Try to actually solve the problem. Don’t waste your time and effort getting a corporate degree in Environmental Practices (or whatever they call it). It will be irrelevant and useless.

Tuesday, May 22, 2012

Intelligence and Wisdom

A trip to a forest resort the last weekend set me thinking about the differences and intelligence and wisdom. Nothing obvious happened to cause this. Our host just mentioned that he dropped out of college to live in the wilderness which he has now done for 32 years with his family. For all that, he seemed to be a happy. That set the ball rolling. So let me set out what I think about these two characteristics.

Intelligence is the ability to learning skills that allow for solution of specific problems. It is the ability to apply abstract concepts to some tangible ends or to discover further new concepts (that could also be considered a tangible end, but those who think of philosophy as unproductive are likely to differ). Intelligence manifests itself in smartness and incisive analysis. But these are only how intelligence expresses itself.

At its essence, intelligence is an outward seeking force. Given an intellect and a limited amount of knowledge, it seeks to push the boundaries of our understanding by adding new concepts and generalizations. It is the origin of rationality and of science. It causes progress (in the usual, materialistic of the word at least) – the evolution from monkey to man and from poor man to rich man. There is no point in asking Intelligence to stop. It is an ambitious force, and its march is relentless. It is its own fuel.  Its own fruits feed it to become ever greater. In a way, it is the yang that drives the world.


Wisdom is the ability to make the best, but not necessarily the most efficient choice, in a situation. It is not intuition (which is, IMO, another word for internalizing something so deeply that it comes without conscious thought – martial arts uses it, so does guitar playing), but rather an ability to judge the importance of things. It expresses itself in patience, far-sightedness, and restraint. Not that these qualities are deprived to intelligence, but wisdom is the true master of them. But these again are expressions.

On the other hand, Wisdom is an inward seeking force (Not in any mystical way, though). It tries to contract our world, reduce it to its basics. Intelligence wants the world and what lies beyond, but wisdom makes its business the setting of priorities. It allows us to stay focused on the things that truly matters to us. It is born of temperance does not invest its energy in exuberant causes. Neither is it bothered by trivial detail. Its nature is to be still. It is the yin of the world, stability incarnate.




Though either or both may be had in various degrees, it would not be correct, I think, to choose one over the other. We need one to control the other, one to move ahead and the other to restrain a headlong rush into madness. An intelligence tempered by wisdom or a wisdom powered by an intellect are formidable forces indeed.

Balance.

Thursday, May 17, 2012

Because we need them



I absolutely loved Avengers. But here, I don’t want to talk about the complete absence of plot, the kickass action, Robert Downey Jr.’s Tony Stark, or the God who got bullied (Note that I just slyly did talk about all these things).

I want to talk about power. And I want to talk about free will.

The movie ends with Samuel Jackson saying – “(The Avengers will return…) Because we need them”.  No one seems to notice it, but I find it to be an extremely disturbing thought. This bunch of extremely powerful personages is to be at our beck and call because we need them!

What is it that makes a hero (in the sense of DC or Marvel)? Is it a unique ability? Is it the desire for adulation? I don’t know. But what is clear is that the motives lead to vastly different actions. Anyone seeking public admiration will of course have to perform acts of public welfare. The greater the hunger for admiration, the greater will have to be the services rendered and the possible cost of them. And the reverse works too, the more the people love you, the more you are expected to deliver. It seems fine thus far unless we realize that this is also the clear highway to megalomania. But we know that Captain America is not a megalomaniac. Neither is Iron Man (Stark is, but not his steel clad avatar), or Hawkeye, or any of the others.

What about their unique ability? This is where the question of free will comes in. Anyone with a unique ability is just that-nothing more. Does this situation rob them of the choice to not participate? Is a quirk of birth or fate enough to necessarily deprive a person of choosing what they wish to be committed to? Should Bruce Banner give in to the all-devouring god of our need and embrace “the other guy” (whom he hates, BTW). If he wishes to withdraw into the medical profession and never “Smash” again, is that not his prerogative? But alas, society gives no such choices to its mighty.

And in all this, let’s see where Nick Fury stands. He does nothing in the whole damn movie. He originally rejects Stark from the Avengers initiative because of instability. And then has the cheek to pull him in as soon as fighting begins. There is no indication that Tony Stark is any more stable at this point. He deigns to command a team of people who are infinitely greater than him in all aspects. And why does he expect them to obey? Because he needs them. It's a confidence ploy, emotional blackmail to abuse power that is not his own. The ends, however noble, do not justify the means.

”Is there trouble? Let’s call in the band of poor sods whom we insulted when we didn’t need them. Of course they will come. Don’t we need them? Our need comes before their free will.” Flashes of Atlas Shrugged anyone?

“With great power comes great responsibility” seems to me to be an incomplete statement. It is the willingness to wield power which brings responsibility. The mere possession of power is a triviality, a happenstance. It changes nothing about who or what we are. It is when we choose to exercise this power is when we face the choice of how to do it. The use of power is an ethical dilemma, which may make one a hero or a villain (again depending on who is writing the story).

In short, I found the concept reprehensible and I left an excellent movie with a rather bad taste in my mouth. I have written thus far in the context of the movie and that one line in it. But generalize and see if it isn’t true of the world and our society in general. Imagine an acquaintance, powerful in some way, but who didn’t grant you a favour because he doesn’t care enough about you. Would you feel cheated simply because you think he should do it?

Then pity the avengers.

Wednesday, May 16, 2012

Reductio ad absurdum

Today I had a most interesting conversation about religion with my friend Tarun Runwal. He is a confessed agnostic, I am a militant atheist. When the two meet, you know who was defending god. Both of us were slightly drunk on Urban Asia’s excellent LIITs too.

A point that Tarun repeatedly made that I found both effective and exasperating was that of the first cause. It is not a novel argument in favour of deism, but I have never personally seen it used so doggedly. For the uninitiated, it goes like this – scientifically speaking, there was a beginning. Who/What caused it? If it is explained in the first degree, then the argument can be repeated to the n-th degree without losing any validity (at least superficially). If the n-th degree situation can’t be explained be explained rationally, then what right do we have to completely dismiss god from the equation? He/She/It could have caused it.

I would like to approach this by considering the nature of questions in general. A question is valid if it is answerable, at least to some extent. A chicken-egg question is not a valid question, IMO. If every possible answer of a question can be the subject of the original question, then the question is invalid. Some readers might liken this to a situation where some senior manager asks a junior guy something. The junior guy starts from an answer that is relevant in detail to his level of expertise. The senior fellow keeps on repeating the question, the junior keeps moving to a lesser and lesser detail in his answer. This happens till both are satisfied. This is a fairly familiar scenario (at least where I come from). If no answer of the junior would ever be high-level enough, then this exercise would never end and we are forced to conclude that the line of questioning is wrong in some way.

This is the nature of a scientific inquiry. We are trying to explain phenomenon at a suitably high level. We start with an empirical hypothesis and push it outwards based on observed or proven facts, and generalize it to the level our information allows us (no more – A junior who reported imaginary things to his manager would no doubt be fired soon). If, however, we see that no amount of data or analysis is going to explain a phenomenon, we should perceive that there is a problem with the statement of the phenomenon itself.
Religion these days finds its last stand in such reductio ad absurdum kind of questions. The theologians realize that there is no logical way to solve these, and house there gods in their shelter. My argument against these is that the universe is what it is. You cannot gainsay the nature of nature. The aim of science and reason is not to indulge in endless logical frivolities, but to reveal to us the underlying laws that govern nature. As Richard Feynman famously put it, it is like watching a game of chess, of which we can only see some parts at some times. Our understanding needs to be reverse engineered from these glimpses. That being said, there is only a certain level to which this understanding can be reduced or generalised (Just like there are only so many ways to explain the move of a pawn in chess). Beyond this, causality becomes meaningless. “Why moves the knight thus?” would have no meaning in chess. The same is true in physics.

Reductio ad absurdum is a useful technique, but it should be applied in context. This is why the anthropic principle is such a powerful and effective technique in physics – it allows us to separate the crap question from the relevant ones.

Infinite regression is the refuge of the morally and intellectually bankrupt. Anybody who wants to have meaningful philosophical discussion about anything should avoid it.

Tuesday, May 15, 2012

Michelangelo Antonioni's "The Passenger"


I watched Michelangelo Antonioni’s The Passenger recently. The movie features Jack Nicholson who is by any account a living legend of cinema. Both Hollywood and Bollywood are full of stars but deplorably lacking in actors. Even in that league of extraordinary gentlemen, Nicholson is a force to be reckoned with. Neither Michelangelo Antnioni’s genius nor his fame need an introduction. So far so good.

With this movie came the crushing realization that I don’t have the ability to critically watch cinema (the critics’ choice works, so to say). I have watched a lot of movies (like A LOT of movies – thank you Aditya Mangla, thank you TPB) and fancied myself knowledgeable in such matters, but now the bubble has been burst.

While watching the movie, I was too involved with what was happening to understand what the producer meant by all that. Kind of goes back to when I was a rookie developer at Shaw and some soft-skills training tried to teach the difference between listening and active listening (listening between the lines).My impressions was the cinematography was AWESOME and the way the environment dominated an actor as dominating as Jack Nicholson was impressive (SRK would no doubt have a sad song with lots of close-up shots in the damn desert). Apart from that, I saw only the slow-ass chase, the strange female character, and the predictable ending.

True, I sort of realized what the essence was, sort of got the feeling about the movie was all about, but I had no words to put to it then. I realized I liked the movie (in a way), but I wasn’t sure why. Not until I read this excellent review that I realized what I was missing. The words ennui, escapism, identity, destiny, coincidence, existential malaise, did not occur to me as I saw the movie. All I had was the feeling that there was something behind the curtain of a rather tame mystery. I guess that is what critics are paid for – articulating concisely what others feel vaguely. I just expected better of myself.

I guess I’ll get better with practice, so am planning to watch a lot more non-mainstream movies now.

I strongly recommend The Passenger movie to everyone, but if you are a normal mortal like me, just read the review I linked above before you watch it. There can’t be spoilers for this movie; the things that get spoilt already suck here. It is the other bit which is superb.

Monday, May 14, 2012

The Great Indian Political Circus

I usually don’t think about politics, but a recent re-reading of Freedom at Midnight and The Great Indian Novel gave some interesting insights into the current Indian political circus. As is usual with my insights, it isn’t really an insight. It’s just a general mess of thoughts, cleared up and come together in one statement – Our politics is messed up because we know how to protest, but not how to govern.

I believe this is due to our political legacy.

Freedom at Midnight relates how immediately after independence, our revered leader proved absolutely incapable of administering their new found nation. They knew how to protest, how to hold rallies against government laws, but they had no experience in making and enforcing laws themselves. So when the communal backlash of the partition refused to abate, they were forced to call in Lord Mountbatten to contain the violence. Only with his behind-the-curtains intervention did normalcy return. Jawaharlal Nehru deserves every bit of credit he is given today as a leader of Independence struggle, but he is not quite the role model of leadership and governance. He, however, is the paragon of politics whom our leaders choose to emulate today.

The second part of my thought process came from The Great Indian Novel and the Anna Hazaare movement. Both refer to periods where people took to the streets in direct opposition to policies of the government (Anna ji’s case being that of protests against an absolute lack of policies from the government). Both battles were fought on the streets, and both were wildly successful in mobilizing the public against the government (actual results notwithstanding). On neither occasion did the protesting party offer a viable administrative alternative (The Janata Party government formed of Shri Jaiprakash Narain’s movement died without a whimper).

This is not to suggest that protesting is wrong or that someone who can’t be a great prime minister should just shut up. Citizen activism has its part to play in the balance of power. The strange problem is in when concept of activism and its success are hijacked. It gives the impression that whoever can muster the most people on the street can govern regardless of who holds the majority in the parliament. It is a parallel democracy where “for the people” is taken literally to be the headcount of a rally. I am not well versed with the politics of many countries but I believe that this may be unique to the largest democracy in the world.

The problem is in the complete abandonment of governance in favour of protests. Neither the ruling nor the opposition parties today choose to use the parliament as the forum for decision making, nor are election the favoured means to oust a party that has lost the popular mandate. The chosen means of everything is a “popular” circus. But as a correspondent wrote about Baba Ramdev’s dharna, when you organize a circus, sooner or later the clowns will arrive.

The business of politicians is to make policies. This is best done by sitting down and deliberating, not by shouting on the streets. Our politics is messed up because we know how to protest but not how to govern. Our political role models did not know how to govern either, and their legendary status has left an incorrect but lasting impression that their way is the way. It isn’t. 

Thursday, February 23, 2012

Random Ranch - That. Not this.

I would like to thank my unofficial partners and traffic sponsors "Random Ranch" - The largest country bar in Barrie's, Ontario.

For the record, I have no affiliation with this place, nor am I trying to 'hijack' any web-traffic intended for them. I have had this blog for about 5 years now, and till very recently (okay not THAT recently - about 2 years ago) I had no idea of the existence of such a place in remote Ontario. I only discovered it when the blog promotion/traffic monitoring bug bit me and I noticed the entries sitting above mine in Google searches. I also found an inordinate number of visitors visiting this blog from Ontario.

The place seems to have shut down of late, but hey, considering the significant amount that has come my way courtesy this bar, I feel that a formal mention is the honourable thing to do (besides, I love bars).

So here's to Random Ranch. That. Not this. Or Why not? This too!

Thursday, February 16, 2012

Respect the infrastructure teams

For some background on what is coming up, I work on project which involves various (often unrelated) teams plugging their components (pun unintended) into a central framework thereby resulting in one of the largest data access portals in my company. For over 4 years I have hammered away, doing my own stuff, worrying only about my own code and pretty much expecting the "framework" to do everything else seamlessly.

In such a scheme of things, the team tasked with maintaining and enhancing the framework are the bad guys - applying controls, managing approvals, adding/removing jars, and generally messing around with honest middle-class developers like me. Any issue outside of my code is always their problem - missing functionality, poor performance, lack of flexibility and what have you. Their design choices are poor, they use reflection with impunity, and are generally an ugly lot.

So for a little hobby project of mine, I decided to set-up something from scratch. A Java web-based web project, with the fairly standard jsp-Struts-Spring-Ibatis stack. As I mentioned before, I had never done this before but figured it must be easy enough.After all, the great and wise Mr. Hannibal has said - "What one man can do, another man can do." (-from "The Edge")

Bad call!  As you would have guessed by now, it wasn't long before I was drowning in jars and configs and a confetti of components that refused to get glued together. Let's start with the project structure. I had a general idea of my class hierarchies, but how to layout the structure, where goes the source and where the
binaries. Well, simplistic problem that got solved by copy pasting a sample Struts project.

And the jars!! Ah the jars! Sometimes they are missing, sometimes there are too many of them, sometimes they work only with certain version of other jars (which in turn are incompatible with other jars still), sometime they work only if you colour them red in Ecplise...But as before, my perseverance and awesomeness prevailed and everything (a dummy action class and jsp) started compiling.

I swear I am wiling to work for free for any company whose aim it is to rid the internet of outdated technology tutorials. There should be law against them. You read an authoritative sounding "how to..." article ,try to do it, fail, try again since you are convinced that you are the idiot, and then in some obscure comment on the tenth Google page or in some deeply buried change log (I had never read a single change log till about 2 months ago) find that it has been deprecated or drastically modified.

And I hadn't even written any REAL code yet !

Lesson learnt - When it comes to code, never believe you can do something till you have done it at least twice before. And respect the people who are doing it today.

All infrastructure teams I work with - I still hate a lot about what and how you do many thing, but accept this post as a token of my gratitude for doing the dirty work for a lot of us :)

EDIT: I just came across this excellent article by Ryan Tomayko which neatly sums up my frustrations with setting up a Java web stack.

Thursday, January 5, 2012

Taking a break

Somehow I have never quite understood this concept of coming back to work rejuvenated from a holiday. I have always heard and read of people who took a break and are now "raring to go". This doesn't seem to work for me.

Not that I don't like my work. I really really enjoy what I do, and I tend to think of my work as "problem solving" than (merely?) programming (I wish they had designations like that - Senior problem solver etc.). I never have Monday morning blues (unless I am hungover) and a challenging day at work is actually more enjoyable than a duh day.

But every time I take a long(-ish) holiday, I find myself totally detached from what I was doing before I left. I find that I have no memory of what was happening and have to go back almost to the beginning, familiarize myself my own work (re-reading your ownn code sucks BTW) and re-motivate myself to get into the problem solving groove. I want to kick-start from day one, I'm not tired, but there is always this massive inertia.

Likely it is due to my working style. I tend to over-focus and binge-code rather than pace out my work. I'm fairly obsessive about whatever I am doing and some of that intensity takes time to return after a break. But I guess no programmer has ever been guilty of working without a looming deadline so I don't know how valid this argument is.

Just one of those thing I am feeling strongly after a week long break.

A very happy new year to everyone!