bliss of ignorance

In my oscillating cycle of interest, now I am switching back to non-fiction – that too more related to building skills required in my trade. This is leading me into some self help style books which I wouldn’t want to read normally. But the current book I am reading has great tips on promoting oneself, how to build more visibility, build a good brand, network and loads of tips – it is written by somebody who has cracked the secret of getting inside the skip of people without their knowledge. It is probably one secret which could give you ability to sell anything and get you those millions. Being cynical about this maybe a case of sour grapes.

But letting people like me in on those kinds of secrets is like giving me a clue to recognize people who use those tricks. For example, I started blogging to just write about what interests me at the moment – I had known only one use of it then. It can also be used as a tool for the “entrepreneurs” to deliver value and get recognized – so that their prospects recognize them. It is part of a branding exercise. While reading a blog post, I am now reluctant to click on a link which is referring to another post in the same blog – I have started considering it as a cheap trick to increase readership. I somehow feel manipulated or I find the information tainted or planted to trick me. What if you know the little secret, that the people who are volunteering for a charity event are really looking for expanding their network? Always suspect the motive if something is given away for nothing.

I think sometimes it may be better not to know certain secrets – those which change a pretty view into some mask. Like a doctor who has seen how it looks under the skin or a psychologist who can analyze what you really mean when you say something (like being funny is a subconscious trick to hide insecurity or something) – you would wish if you hadn’t known that. Leave some things as it is, don’t look under the rocks or peek behind curtains. If you are in on certain secrets maybe then you will have to rediscover happiness or peace in spite of knowing that, whereas you were happy in the beginning without knowing that. It might be better to steal a view of a beautiful place and just leave with that pretty picture in mind than get into the dirty streets and meet its mean people. Sometimes it is good to keep things simple, but no, we have to explore, cut, split, expand, extend and complicate it so much so that the original beauty is lost forever. It might be better not to get into details sometimes. It might not do us any good to know that what we call pretty is just a play of light or trick of geometry or make-up or something that may not look good in a different light or different time of the day. It makes me happy when the salesman/owner of a local store back at home gives me a genuine smile or recognizes me after a long time – he doesn’t know the persuasion/influence/manipulative-still-ethical/networking skills of a trained and successful sales person in a corporate chain store in a big city. If with more knowledge men can be more successful at making money, but staying ignorant preserves some natural goodness, what should we choose?

today's article: self-healing programs

Today I read about IBM’s self-healing programs.
I don’t expect it to be as smooth as it is made out to be, but this is adventurous. I was first of all wondering why terms like autonomic computing, artificial intelligence, regenerative systems etc gives a kind of thrill like a fantasy or science fiction. Anyways, it need not be a macro phenomenon, but the principles could be applied in minute way in routine applications as well. Systems doing preventive maintenance sort of checks (like the on-board diagnostics of car and “check engine” warning light) – it should be possible to put in pre-coded periodic self-checks. Systems trying to do some basis error correction before throwing it out to the user (the very first data format error need not be thrown and program aborted – it could try to correct the format and continue). Systems could learn from how it is used and present better ways – frequent navigations, frequent combinations of data made available. Systems doing self auditing on a periodic basis and sending reports. Not only finding problems, but suggesting solutions for it.
las vegas

It was all about cold weather, TV, lots of lights and travel for the past week. It was a long weekend for Thanksgiving which got appended by one additional holiday and with one additional sick leave, I got almost a week off. Weather is playing tricks here – one day it stings any exposed part and couple of days after I can walk out without a jacket.

First two days went in Harry Potter’s latest episode and lots of TV. Finally I ventured out to West side of US – Las Vegas and Grand Canyon. Las Vegas was as expected – lots of pomp and glitter. You can feel the Presence of Money like God. We stayed in Fremont Street which was like a relative cut off from the family with new money – it must be still doing okay with night lit up like day and all night music. It is a crazy town with all sorts of people doing all sorts of things – crazy ones and those who want to go crazy for some time before retuning to normal world.

Drive to Grand Canyon was probably one of my best so far – really picturesque. There were too many views which could have been made into wallpapers. Some turns reminded me of “RoadRash”. Five hours drive ended in an awesome view - you can just look and wonder what happened here.

After 6 flights, walking the strip twice end-to-end and messed up sleep, inevitably I crashed for one day before getting back to regular routines.

user interface prototyping

Read an article in Slashdot on tools for UI prototyping. This question used to come up many times during project initiation phases, but due to lack of time, never gets done properly.

I have used Microsoft Excel in the past and found it useful to give an idea to users about how the application will look. It has some advantages:-
• Need not write unnecessary code during prototyping. Sometimes things may wither at prototyping stage itself, so the time spent at this stage may not be that useful.
• Faster prototyping – the interest may wane if we linger on the prototype for too long.
• Easier to change – It should be possible to change the prototype (after all it is only a prototype, so it shouldn’t take a day to make the changes that the user specified). Better yet, it should be possible to change the prototype while sitting with users.
• Hands-on by users – It should be possible for users to comment or even change the prototype by themselves. Cell comment in excel may be useful in this as well as to specify some special logic on certain parts/fields in the UI.
• Change of existing UI: Can copy the existing UI, color the portion which is about to change – good way to communicate the change.
• It also solves the confusion that users might think the prototype is the actual thing. A prototype which is made in HTML might give that impression that now that the prototype is done, it shouldn’t take time to release.

While all this is good, I would still like to try out something which is easier and faster to use, easier to change and doesn’t require me to learn a new programming language altogether.

I am also on the lookout for better stencils or templates or tools to make process flow diagrams. Visio is good enough, but I need to spend time to spruce it up – it is the basic problem, just conveying the meaning in the crudest/easiest way possible is not enough for the interest to stay in the diagram for a moment more – if colors and jazz can work, I am all for it.
spanglish and sideways

I watched two movies recently – spanglish and sideways. Spanglish for the second time - first time was in a marathon movie session in a flight. This movie has even Adam Sandler acting decently – I mean, the guy made too many bad choices (films like Waterboy, I couldn’t even watch the ads). But he gives a controlled performance, within limits and makes it bearable. I think Tim Robbins and Tom Hanks are of that variety – not overdoing it, but wins it by keeping it simple, the handicap of not being flamboyant is used as strength. Movies which are filled with lot of quirky stuff, strange characters and situations (which makes me think how they came up with it in the first place) are fun to watch. Supporting cast in this movie was very genuine and was given some meaningful lines – they were not invented to push the story forward or fill in time.

Sideways – I thought it was a real ride, stuff for which people should be going to movies for. Paul Giamatti is a real worker. Even in a part time job in Negotiator, he had made an impact. I am no movie critic, so I won’t attempt to do that. But there were couple of thoughts – even though it was kind of obvious that wine was being used as a metaphor for all sorts of things, it made some sense. Miles reminded me of people who are really good at some specific things or passionate and knowledgeable about some topic like sports or technology, but generally numb otherwise. Geeks can be fun if you can find something in common with them.

Also it sort of made me think about the friends we take along with us. Most of the times you know what is wrong and with very few of them you can get it out in the open. You can be friends with a person for really long time, probably life time, even without actually talking about certain issues. There are certain boundaries which are not crossed and still being a genuine friend in the marked enclosure. And there are other kinds who cannot understand you, but still you carry them along without even thinking about making an effort to make them understand your thoughts. They may really be in for a surprise. There are some about whom you don’t really think about consciously any more, they have become a part of the habit called life with all their good and bad. There are some whom you can fight with using tooth and nail and still it can make the relationship sane and not superficial. And then there are some who do not see you when they look at you, but still give you a feeling that you are the center of their universe.

software plumbing

I used to be impressed by the dexterity of the maintenance men who come around to fix things around house – about how neatly they accomplish things like fixing a leak or checking the wiring etc. Most of them have ability to make the things work with a quick fix, common sense and knowledge of the tools to use to fix something and they don’t make a mess.

This post is not about the house maintenance, but about putting together a software solution to the immediate need, having the knowledge to select the best tools for the job and to reach a quick solution, not building a house from ground up. In “Zen and Art of Motorcycle Maintenance”, there is a passage about making a replacement part made from a soft drink can for a friend’s expensive motorcycle – when you tell them that it is made from tin can, they may not allow you to put it in. I think it is a natural tendency to buy the packaged/branded/expensive product from a super store and expect that it is the best solution.

This is inspired by something I read today. It talks about “Actual Capabilities over Intended Use”. I loved the idea of using components for what they could do, not what it is documented to be able to do. Find ways to use components where they seem to be perfect and natural fit. I had once made a solution to execute a java component from a code which will be called by Unix script which will be called by java stored procedure which will be called by pl/sql procedure embedded in oracle report file. I had a natural choice path – I couldn’t use certain combinations because of certain system restrictions which leads me to the next natural choice.

Examples over Documentation: for anyone who has gone through endless pages thinking that “all this is good, but how do I do it” might identify with this. Having a Ten Minute Test is a great way to start using something by first seeing how it works – they don’t show you the user manual of a plasma TV in the shop, but they display it out front and give you a remote, may it should be the same with software also – give a chance to test drive. If I am not able to make something work, then I can go into documentation or even the next step – source code. Reading code is the final truth than reading a manual and wondering whether it meant what it said.
lost in translation

Is it possible to express the same feeling in two different languages and mean exactly the same thing? I was reading a bit of translation last week and was thinking how distorted it gets. Book translates a polite but strong, formal but bit sensitive writing in English to Malayalam – I happened to see the English version also and there is noticeable difference. Also I read something this week that messages conveyed by human beings has the context info or meta message (message about the message) also embedded in it, we are able to understand the metamessages with a lot of experience. Variety of information is required to fully understand the meaning of something that is written – we would need some cultural background, syntax of language and local usage and even some idea about geography. Translation of a Malayalam novel like “Chemmeen” by Thakazhi, a complex story set in coastal kerala, might look very odd in English. Somebody who hasn’t seen fishermen in Kerala coasts or walked those beaches may not be able to construct the mental image necessary to go through the novel.

I think authors give enough descriptions of landscape, stage, characters and features to help the readers form the idea, but I think we can construct images only with what we have seen, heard or felt. For example, I had my own image of the location and people for a book like “To Kill a Mockingbird” while reading it (now I have image from the movie). Given that nobody can learn enough to enjoy a classic in a new language and anyway we internally translate the characters and stage to what we already know, translations are not that bad. But I can’t help but feel that translations are distorted material.

Ajax

I have been meaning to start checking out Ajax with a little hands-on for quite some time and today I had my “hello world” with it.

AJAX: Getting Started: gives a quick way to start testing. XMLHttpRequest seems to be the key to this. Rest is all about constructing the presentation layer at runtime using javascript than to change the content from server.

Rasmus' 30 second AJAX Tutorial - A wanderer's journal: Pretty much the same as above. I saw this argument at multiple places that Ajax is nothing but hype and people were using DHTML + XML way back etc. I am not yet sure about the extent or power of Ajax, but I liked the idea behind it. It seems to me as something that can be termed as “perception change” – the idea that request-response processing can be done without interrupting the user interaction is great.

Today morning I attended a session on innovation management – it was said that creative ideas which works can be extended, like computers invented for financial calculations now running our whole life or idea of flight getting extended to even space tourism. I think in pre-internet era, a scientist may work on a thesis on his own for his lifetime and may publish some papers in a boring symposium – but with the rate of collaboration these days, it may not take ages to change the world. I think this is sort of revival which is happening right now with open source and new internet – ideas are not restricted to a small group who invent it. Idea should be marketed to get contributors – this may be the “hype” factor. By getting many creative minds taking a swipe at it and finding new ways of using the idea thereby extending it, good durable ideas will find many different uses. If I reject a new idea without much analysis just because I am not feeling comfortable, I may have to consider the possibility that I am getting old.

Ajax: A New Approach to Web Applications Now that I have tasted a small bit of Ajax, I decided to read some more. It seems the name Ajax originates from here. This gives a formalized explanation with the help of good diagrams. Terms like Ajax Engine are a little intimidating, but I think technology is not that complicated. One burning question is – how much can be done in asynchronous way? Only that much which won’t take too much time in server processing – in that case users will anyway have to wait.

Dynamic HTML and XML: The XMLHttpRequest Object : Same example as first two links with a listing of object properties of XMLHttpRequest. But for the first time, I understood that “request destination must be same as the one which serves up the page containing the script”. I need to check whether it is still possible to access webservices in third party domain using this.

What’s Ajax? Some more interesting points and links to learn more.

Ajax Mistakes: Compilation of Ajax mistakes. Some of those may have been put here just because somebody looked for faults, but this puts a thought in mind to caution against overuse and to avoid breaking the application with it. I think Ajax may not be used to solve all problems, but definitely something that may become part of the solution.

Very Dynamic Web Interfaces: One practical example here.

Other pages I whizzed through:-

Three forms of AJAX: solid, liquid and gas: some perspective on levels of usage.

XMLHttpRequest Usability Guidelines and Usable XMLHttpRequest in Practice
: warns against pitfalls in overusing the tools

To investigate more:-

XMLHttpRequest & Ajax Working Examples: links, found something about Java and Google API.

Ajaxian: one scan threw these terms at me - Dojo, Flock, ShrinkSafe, suggestion, autosave, autocomplete, IFrame, XHR, Remember the Milk, Google Reader

Top 10 Ajax Applications: useful to see some examples

Weighing the alternatives: comparisons and adding more arguments to support the claim

Ajax in Wikipedia: More links to go through

Ajax Matters: More links.

local search APIs and mashups

I was working like crazy for last couple of days with Yahoo and Google search APIs. I was trying to qualify/clean sales lead records using the local search for businesses. I naturally expected Google to do better, but their webservice is really Beta, it is not really able to do local searches and give me back the result set with address information – it can only give back the search result snippet. At the same time, Yahoo exceeded my expectations – it gave me a resultset with address, phone number, URL and a details URL which is really cool- it shows the map for business, category of business etc. I am able to specify sort criteria – relevance, distance or rating.

This experiment sort of initiated me to the power of webservices as well – within matter of seconds, I was able to run a list of 1000 businesses through Yahoo local search API and get results back with standardized addresses, phone number, URL etc.

I attempted this because I saw another one which was using Google API to do spelling suggestion in their application.

This word mash-up was coming up in my radar for some time and now I know for first hand what it is. It is fun to do, powerful and as long as the grey areas of security, limit of usage etc are within control, it can add real value to businesses.

Open source initiation – still going on..

Not dead, but not exactly running yet.

• I had registered in three projects – one of them almost dropped me since it is going at an amazing pace, I can’t even think about catching up now. I will have to be patient, setup tools and familiarize, do something small on my own. Two others are still alive.
• I am using Eclipse a lot these days and in the process of falling in love. I have poked around many of the features and almost familiarized it, but still haven’t formed habits around it.
• Need to learn refactoring techniques and concepts. So far, refactoring hasn’t been in the picture, even if I had written a piece of code which I know is not the best. But now I am more or less interested in writing something and getting it working fast, then if I can find fun in improving the code, it will be great.
• Installed MySQL 3.1. After a long time, I am meeting another database. I had brief encounters with IMS, DB2, SQL Server before making Oracle as the One. Even though I know that a ton of features exist in Oracle which I haven’t explored, there is new energy to find out how things work with new gadget.
• Generated SSH key using PuTTY and posted to sourceforge.

Next Steps
• Learn MySQL some and probably use it for some primitive purpose of my own – that is the only way to learn. It is boring to read documentation.
• Experiment with CVS, check in/out, commit.
• Practice the use of ant, Maven and JUnit.

I was struggling through Gregory Bateson’s “Step to an ecology of Mind” for 2 months. One snippet stuck with me – when we learn something and make a habit of it, it slowly sinks to the unknown and we won’t have to even realize that we know it (second nature or subconscious?). I need to get to that stage with this.
attention span

I can imagine myself as Spaceman Spiff, the intergalactic explorer. I start my expedition from a corner of the world by opening my mozilla firefox and clicking on bloglines | my feeds in my bookmarks toolbar. There are 800 unread News items, 115 Tech and unrelated, 734 del.ici.ous feeds, 25 Misc, Sports 25 and checking out 2 and some more folders which I have don’t have energy to list. Luckily I am not much interested in photography and flickr. When there are 38 Dilbert and Calvin & Hobbes to be read and I just go and click on it to remove the annoying (38) from reminding me, I feel desperate. How often can you wipe your slate clean, condemn all those wonderful things to oblivion and start fresh again? I am one who attends to every mail in my mailbox as soon as it comes in, even if it is to mark mail from Roberto Somebody about easy mortgage as junk mail or deleting CNET news on sight. I lost track of the newsletters to which I have subscribed – I no longer do that even if there is a glimmer of hope that I can read something interesting. Newsletters are a thing of the past for me – there is now a Newsletters folder in my Personal Folders to which all my unread Newsletters go. Some I delete on sight, some I don’t have the heart to do so, so just avoid for the moment. I also lost track of the sites to which I have registered with my email id, so there is another Subscriptions folder to which all those go – when I am old, I can look back at all those wonderful sites to which I have subscribed with my youthful energy.

I have my personalized Google page with all the cool stuff – a news section for Kerala (Customized section), World, Business, Sci/Tech, Weather, Word of the Day and Quote for the day. I could resist Yahoo 360 degree. I have one page full of tags in my del.ici.ous, with 44 items in various categories many of which are in toread or a variation of it. How many times have I visited my bookmarks? There is a feature in Add Remove Programs and Desktop Cleanup Wizard in Windows – shows last used date. Probably there should be a tag with last used date or even going one step further a personalized rule to trash items older than a month – that would be neat. I won’t have to worry anymore about the backlog – it will empty itself.

Question is how to manage the information overload and the subsequent pressure and anxiety of not catching up with every thing that is happening out there? Some of it I can gladly let go – I am not worried about politics unless there is some immediate threat to daily life, I am not worried about Entertainment at all because it is now like a stabilized business or circus show where you can expect same act even if you visit once in a while, I am not even worried about Indian Cricket now – see, we can let go of things. Of late, one thing I am not able to let go is technical trends and my inability to catch up with it all. I hop on to one link and it points me to another and like the inter-galactic hero, I am worried that I missed the sights back there somewhere. I have to consolidate my trusted sources, form a habit of quick scanning and reading only some of it, without clicking on too many links, not keep the rest as read later and don’t increase the number of sources unless my time allocated to read also increases proportionally. And I know I had reached this resolution earlier too.

Also sometimes I think people should practice self-control in hyper linking – if it is not important for your reader to go someplace else or you do not trust him to come back, then why sprinkle hyperlinks like landmines. Hyperlinks are kind of like temptations, you would like to just click and see. Keeping a tab on attention span is going to be my responsibility.

This is probably one of the reasons why hardcopy will never go out of fashion. You have to hold it with your two hands and give it all your attention. Browser has infinite possibilities and a Google toolbar to take you anywhere you want – so it will be for short rides, but longer journey should be taken though a book itself.

open source initiation - continued

Continuing with my open source initiation, I am still preparing with setups and tools installation for couple of projects hoping that I will use them and learn – hope it will not end up like a preparing and rehearsing for a marriage only to find out that it is not going happen.

Anyways, just putting down the tasks, notes and my thoughts so that this will serve as my future reference:-

- Installed WinSCP as the file transfer tool and WinCVS for CVS client. I am still working from WinXP machine; hope someday I will be able to repeat such installation for a Linux machine.

- Installed Oracle JDBC drivers, this time a new jar (for 9i). I had
worked with classes111 and classes12, but didn’t know that a new one, ojdbc14, has come out. I am sure even that has been overridden by 10g drivers. Another generation gap thing going on.

- Installed Maven 1.0.2, build tool. I am still overwhelmed with the number of frameworks churned out from Apache project; it will take some time to get my head around these. Often I find that reading through user guides which starts from bottoms up or dwells too much on details is a slow process to learn. Maven had a Ten Minute Test which gave me some idea about what is involved and now I have a peace of mind that I have understood something and can go back and fill in the gaps as I need.

- There seems to be too many jar files around which I know too little about and that worries me.

- Installed Java Advanced Imaging API 1.1.2_01 and Java Image I/O Tools 1.0_01 and read the top two paragraphs from documentation, more study required.

There are some more terms which come up too often which I don’t have much idea about, but may be good to add to my general knowledge – md5 checksums, JTS, Velocity, Subversion and Turbine. I have a general idea about JUnit and Ant, but haven’t used these – again something which I need to read some more about.
grown up

Today morning, in context of a session, following was presented by a colleague:-

According to a UCLA study, at age five, we engage in creative tasks 98 times a day, laugh 113 times, and ask questions 65 times. By the age of 44, however, the numbers shrink to 2 creative tasks a day, 11 laughs and 6 questions.

Furthermore, the UCLA study found a 91 percent negative response rate among adults exposed to new ideas.

I thought even 11 laughs is bit exaggerated. Anyway this is a symptom to watch out for.

open source

After a lethargic period, I have started some more activities which kind of elevated me to another excited level:-

- I have registered in couple of open source projects. Work hasn’t started on anything yet, but I am excited to be in between those terms which were so vague to me so far. I have been reading so much about open source development for last couple of years, but never mustered enough courage to wet my feet. Initially I thought it was only for linux hacks which is a whole different world to me, I had started looking towards that path (reached only the stage of buying the brochures, but didn’t even plan the trip). Now I have enrolled in couple of projects which were looking for Java developers. I am sure it will be a good experience, but hope I can find enough time to work, at the moment I don’t think energy should be a problem.

- Installed Eclipse (another one of those candies I wanted to have for some time) and browsed around. I think having a good IDE goes a long way in terms of productivity. Coding using a textpad will be advisable to learn the nuts and bolts initially, but after a stage it will just slow you down. So learn programming with textpad (otherwise IDE will be too confusing, will hide too many things that we may not understand the basics), but move on to a good IDE before long. I think in a project environment it is extremely important to decide on a good IDE to improve the productivity and enforce standards – I came up with only two uses as of now, but there should be more. Also minor hindrances like start/stop servers, upload/download sources from CVS – if these can be integrated well into IDE then it helps developers to focus on the core task. I haven’t done too much with Eclipse yet, but the plugin development is an exciting functionality.

- Installed Java 1.5, CVS and Tomcat plugin for Eclipse.

- I have got a first hand look at open source development, the way team is communicating to develop a design and got some emails which gave me a surrealistic view of another planet in terms of software development. Putting down the thoughts about design at a high level, getting team’s input – the way things evolve rather than planning the activities using a Microsoft Project, assigning tasks with a strict deadline, one person working on a task, another reviewing it and each knowing some aspects of project. I am not outright rejecting the so called “Cathedral” way of development yet because I think both the scenarios differ. Open Source is a community of developers working mainly out of love of work and as far as I see, there is no lack of motivation and no resistance because it is voluntary. But when organizations need a software developed for its purpose, it is given to a set of developers who do not have a control on requirements, but a hard deadline in front of them, there has to be a way to manage the tasks (limit the chaos) and be predictable in delivering good quality – so the processes involved will be different. But I think it will be advantageous to conventional development to adopt the best practices of open source development.

- One impression I get is, doing conventional development, I was falling behind in terms of better and latest tools for development – For eg: I haven’t touched ant, junit etc. In conventional development or as I read somewhere “mass market development”, tools to develop software is determined by customer or project management and standardized for the project. They cannot have developers wasting precious time on tools. Doing open source sort of development, developers are looking for better tools, improving the tools if something doesn’t work and maybe more productive as a result.

- I realize it is a long way before even I write one line of code, hope I stay that long since that is the next milestone or the next lifeline to continue this interest.
Today I listened to an inspiring and very interesting talk by Adam Bosworth given in Salesforce.com’s annual event – Dreamforce. It is titled Intelligent Reaction. Summary of the talk is that companies should react to customer needs and use the customer data to evolve rather than going with a grand plan. It is in line with couple of things I am following nowadays – Agile development and Using customer/transaction data to make better decisions (I wonder whether there is a term for it).

I caught a lot of phrases maybe clich̩s but good to keep focus, so spewing it out here Рtalk to people, listen carefully, Iterate, evolve, intelligent reaction vs intelligent design, start small, lots of releases instead of one grand plan, change with times, follow your customer in real-time, learn and change, nothing is perfect.

This is the changing way of software development, but I wonder how many organizations adapt to this. I think it is probably easy to track the usage, listen to customer and change rapidly to the better ways in an application which is lightweight, but what about applications like CRM or ERP which dealing with business, revenue, people and life in much more real way. Will the sales reps working on deals which directly affect their compensation (who may not understand the working of software) be open to start with an application which is barely good but adaptable to change thereby constantly changing the process? It is a different case when your applications audience is internet savvy and understands software in a hands-on way when it comes to adaptability. But as he said, instead of a grand plan, it is exciting to try it out and learn from mistakes, change, improve and evolve.

Extreme Programming vs. Interaction Design

I am interested in learning more about extreme programming, but haven’t been able to read in detail or practice any part of it so far – I will get back to that sometime soon. Interaction design – that’s a term which I came across for the first time and at the outset it sounds like a fuzzy concept to me. Following are some of my thoughts (quotes from article are in Italics):-

• I think the deepest tacit assumption is that we have a significant organizational problem, but we can't fix the organization. I believe that in order to create quality software, you have to change the organization.
• It's my experience that neither users nor customers can articulate what it is they want, nor can they evaluate it when they see it. Neither the people who buy software nor the people who use it have the capability of visualizing something as complex as the behavior of software. They also don't have the ability to analyze what appropriate behavior is.

I started my career with software development which is transferring a written piece of requirements into design and code. It will only add to the quality of the software if you know the requirements first hand from the person who is going to use it – it will give a whole different perspective to the development of product. To someone transforming requirements document to code, idea of defining how your customer/user should be doing business and build software for that is paradigm shift. It requires a cultural change to go to a mode where we understand what user actually wants or rather needs and suggest it back to him.

• I believe that defining the behavior of software-based products and services is incredibly difficult. It has to be done from the point of view of understanding and visualizing the behavior of complex systems, not the construction of complex systems.
• The way the industry works right now is the initial cut at a solution is generally made from the point of view of a feature list that comes from the marketing people or the in-house customer, then given to the developers, who then synthesize a solution. It's not a construction problem; it's really a problem of design—not interface design, but behavior design.
• Usually, the architect at the sketch level will know enough not to design something that's an engineering problem.
• I think it's wrong when phases are abused, namely when phases have arbitrary boundaries and when there's no recourse and the people who are participating in the various phases are not working together.

There is an argument that there is logical side to software development which is essentially programmer’s domain and there is a human side where we understand users and business and there has to be a bridge of Interaction Designer who could define the behavior of the system and then translate it to Developers. Compared to this I tend to agree more with XP’s argument that software development shouldn’t be composed of phases and appropriate social structure is not a hierarchical one, but a network structure. I think it is not possible for every developer or designer or architect to be involved in the requirement definition to gain insight into the actual use of the product - but it need not be a segregated job function. It must be coming down to job profiles and competencies. Best programmers or architects may not be best communicators and hence may not have the tact to elicit the requirements from the customers. But there may be people who excel in this area but do not understand or have little interest in workings of software as such. To have the capability to define the requirements/product behavior/organizational complexity and architect the solution and understand the technical feasibility at the same time is the right combination at this stage. Building design is taken as example – I may have flights of fantasy when it comes to building my house, but some may not be possible to do technically or there may be better ways to do it – it is architect’s job to suggest a cost-effective, structurally good design. Interaction design is trying to alleviate this split/phase of design and development by suggesting that interaction designer links up with developer during the development phase. But in my experience that may not be enough. Breaking down the hierarchical structures of management, customer/user, technical architect, developer and having them interact and having open bi-directional channels of communication will definitely help.

From my understanding so far there has to be a better way to manage change in software development and by incremental cycles of development and better involvement of customers/stakeholders in the process of development it is possible to achieve much better quality. I guess the challenge is to do this without introducing more chaos and to institutionalize the practices to have more predictability.
I have come across couple of situations in last few days where guys boast about their achievements, talents in a manner that evokes a temporary dislike like a bad taste or a sour smell. Maybe sometimes it is essential for a person to establish himself and make it known to others, if need be by telling it himself, that he is capable. Somehow it feels endearing if a person who is talented speaks about through action than by actually thrusting out his chest and bragging about it. How does it feel when a friend in a casual conversation just lets it slip that he is the indispensable to his company because he is oh-so talented? It is slightly awkward if it is in a direct conversation because I don’t know how to respond to that with a straight face and these situations are not rare. It maybe our ultimate need to feel appreciated or the times are such that without marketing no products can sell.

I had come to an agreement with the theory that ego is not a bad thing and it is self which should be satisfied first to be able to spread the joy to others. Those who do not hesitate to spell out their achievements and publicize themselves are either truly talented people confident in their ability or those who are insecure about it and find pleasure in self adoration. I hope it is possible to recognize first category because of honesty and second can be tolerated within limits.
Today’s greatest idea: Why don’t I maintain my thoughts on the articles I read? I do sample some out of the flood of online articles published everyday and may have some thoughts of my own which I may follow up later on – for all that matters, something might stick with me for a lifetime and add to my ongoing quest to expand the perspective. So starting today I decided to keep some notes here, let me see how long I can keep this up.

Versatilists
I have been toying with the theory of jack of all trades vs master of something for some time now – I haven’t made up my mind yet and may not ever. This one is giving a name to the types – Specialists, Generalists and Versatilists. Being a specialist, knowing something in depth and to be fully confident will be a great feeling and probably we will all do this with the subjects which appeal to our passion. It need not be the field I am working in, it could be anything. I maybe interested in Ford Mustang, I may know its history, its features, latest models and ton of cosmetic information which just appeals to me tremendously. If I can find such a passionate subject in the field I am working in, it will be great. But at the same time, I do not want to get restricted to one flavor alone. But then if you are passionate about something, you will not feel restricted and will voluntarily amass more experience and information and it will not feel like a burden. But knowing other areas will just increase of knowledge level and give you more ideas to work with. Too many Buts.

There is another bit – what good can it do if a person working in software industry reads about totally unrelated area like philosophy or football. My feeling is everything is about systems and relationship, coordination, communication of parts to finally get it working. How can a team of 11 disparate people with different skills coordinate on the fly on the field and perform a miracle connection which results in a goal. It is pure beauty and there can be something to learn from that. So maybe learning about anything that appeals to my sensibilities may add to my world-view and make me wiser. I just read yesterday in some interview about kids reading just about anything – something somewhere will stick.

Versatlists maybe the middle ground between specialists and generalists – authority in certain fields, knows enough of other related areas and adaptable to change. I think being a specialist in one area gives you enough idea about how things work and that experience can be applied easily to learn new things as you go – only the fear of unknown can prevent you from learning new things, but just keep going, we can find ways to apply our past experiences to find footholds and climb faster.
Autumn is sneaking up on us. Slowly it is announcing the arrival - yellow tinge on leaves, temperature is dropping and sun is setting early now. The good days of summer are almost over and this gives me a kind of desperation. I think this time of the year is always going to bring this feeling - of having lost something too soon or something slipping away. Even when I enjoy the fall colors, it comes with a sense of imminent loss. I am not looking it up, but I am sure they would have categorized and named this feeling under some sort of anxiety.

----------------------------------------

Scribbled down some things sitting through a long meeting and other random bits (true rambling):-

Seek, find and chase opportunities. Nowadays it won't bother to knock even once.

Have a hold on yourself like a pet on a leash. It may misbehave, try to take a piss on somebody's yard, bite an innocent bystander - but take a step back and check/force yourself to behave as you think you should and probably would under normal circumstances.

With this much experience in this trade called life, it is now very well possible to recognize people just making dishonest statements. Anybody with this much experience will have acquired that talent, but still forced to do it under pressure. Trick is to keep a straight face, cut through the smoke fast enough and understand the facts and do what is right.

There are two kinds of people; naturals and actors. Naturals cannot lie without showing it, hurt others without feeling bad, can laugh without sounding fake and share without holding back. They will make for a good friend. It will be useful to recognize the others quickly.

There is no right and wrong, there is only fair and unfair. It is unfair to cheat somebody you love because you may be taking advantage of the trust, but it is fair (not wrong) to trick an adversary who is not playing fair in the first place. You feel wrong if you do something which is unfair and feel right if it is fair – maybe that is the litmus.
I was reading an article in Reader’s Digest on trends that are changing life – one trend they spotted is personalized media in the form of customized news, blogs, personalized TV etc. In my line of work, they call grandfather systems which we are upgrading to newer technologies as legacy system – like that, the legacy media keeps reporting about blogging and internet as a new phenomenon in a funny way. One of their arguments is, if you are filtering news and customizing it based on your preferences, you might run the risk of some sort of tunnel vision. You choose what you like or the system start choosing what it thinks you like (sounds like science fiction). I don’t really have a problem with that – in fact I would like to build that into systems to have capability to monitor my actions and help me out by pulling up suggestions about what I am looking for. It is more human approach – if I go to a shop and ask for product which is not there, a good salesman will try to pitch for other similar product which may satisfy or exceed my expectations – if he is really trying to help me out instead of generally being desperate, it will be fantastic. For example, I use Amazon.com in many different ways than to actually buy something. I can compare products which I am going to buy from a store anyway, read reviews, search for my favorite books/music/movies and look up their lists on “Customers who bought this also bought..” and other lists. Most often I find that the items it shows match my taste. It can build my store based on the things I browse. But you have to break out the habit of restricting yourself to personalized information because you need to change continuously to avoid getting bored with life and its routines.

But with this information explosion in the web, it is very difficult to keep up with even my own interest areas even if I have personalized tools. I started marking so many articles as unread in bloglines that it is impossible now to finish the backlog of the articles I may be interested in. On the top of that I started adding bookmarks to del.icio.us account which I am sure I will never be able to get back to. It is like a kid collecting smooth looking pebbles and stashing away only catch dust in the attic. I need to figure out a way to read what I want in limited time I have every day and let go of mildly interesting stuff instead of archiving for later.
everyday is a winding road..

Nowadays I drive for almost an hour everyday between home and office. Drive is quite relaxing actually - with three different single lane routes to choose from, each offering different view and feel. First is a very curvy road with many ups and downs, so it is labeled as "ride". It has two schools, one or two colleges, some farms, almost half the way covered completely by tall trees on both sides of the road and few lavish houses. Sometimes deers cross the road, once with its kid walking across the road very casually, mom waiting for the naughty kid to catch up. This road could get nasty if it rains. Another one is almost all the way covered by trees, less curvy, some stretch feels like proper forest. Last one is more or less going straight through two or three hills, going up and down, with one or two golf courses and horse stables in between and a very nice view of the whole region. Except for morning rush hour, I get all three roads to myself most of the times.

So I have this one hour dedicated to music. After discovering free CD rental from a fantastic public library system, I am just trying out all the names which I have heard even once. Tried Aerosmith, Bruce Springsteen, Rollingstones, Elvis Costello, Shania Twain, Sheryl Crowe, Ricky Martin, Patty Smith, U2, Elvis Presley, 3 Doors Down etc so far - two albums clicked well so far - Rush of Blood to the Head by Coldplay and Singles 1992 - 2003 by No Doubt. I liked almost all songs in these two albums. I had similar experience with Savage Gardens and Metallica while in college – listen to the same cassette endless times continuously so much that you can sing along almost involuntarily.

I think common features are honest and meaningful lyrics (not sounding fake, not about only one subject, some mild philosophy, some smart lyrics, some lines which must have been written with real feeling and fit in even if not rhyming completely), fresh music (not regular, not repetitive, something sounding new, even just a taste of difference) and bit of variation (not screaming or not crooning all the way through the album - there are times when you can listen to continuous screaming and continuous moaning, but this gives something for all moods). I have the theory that if you listen to the same album multiple times patiently, you can befriend some music and even like it a lot - so I bear with some miserable music searching for a hook to hang on, but most of them are disappointments.

I have the definition of my kind of music - not too fast, not too slow, not obnoxious (I am not able to identify with the rap, hip-hop and crap however I try - I can listen to country, urban, soul, blues, soft/hard rock, pop, R&B and I have favorites in all of these. I can try up to metal, maybe not acid, if I have got the correct lingo) and bit of heart (even if tends to be soft, it should be okay). Once in a while there comes along a beautiful one which leaves you wondering how it all clicked together - it must be the moment of pure genius when they came up with those kind of marvels - no wonder they say that it was written in under 10 minutes etc. Most of the geniuses are basically simple (simple lyrics, not complicated music). Interestingly I can probably say these things about people I happen to like also.

Sometimes I feel mixing all favorites and listening to only those over and over again is boring and unfair to those favorites because soon it will become familiar and regular. So let go, explore and find new additions to favorite list, still be loyal to old favorites by coming back to it once in a while (when you come back to old favorites after listening to miserable music for days, there is a unique feeling, some sort of relief or comfort). So the search continues through library and FM stations and an hour of it everyday.

formal learning

I am considering going for Sun Certified Java Programmer – just trying to come off the inertia. My core competency in programming can be ascribed to Java, but I never studied it completely using a book or a proper training course. I am involved too less in actual software development these days and sometimes that frightens me to think that I would soon loose the authority/hold on whatever knowledge I have and become redundant. It is actually very difficult to start studying for something without expectation of any external reward.

Over time, I had tried to learn certain things on my own, mainly leisure stuff – went for guitar classes for two years while in college, tried to learn chess with text books etc. Programming should be learned by more practice than theory. One of my friends used to say that to learn keyboard (music), first you start hitting on the keys and learn for yourself what makes agreeable noises and then you will proceed to develop a sense of what feels good. It is like a baby tries to crawl, go on all fours, stand up holding something and tries to walk despite falling down. Then you can try to mimic popular songs all by yourself and when you get something right, it will give you tremendous satisfaction. After a certain level, I think it is better to start formal education to fill in the gaps. You would have made some headway into how all the pieces fit together and you can see how it makes more sense. I think what this gives is better perspective or “big picture”. It is like checking the map first and getting an idea about where you are going, which direction, what are the nearby towns instead of going by written directions. I used to like Maths a lot and while in pre-degree, I used to work out graduate Maths. There is more fun in learning this way – hack on your own and then later formalize the learning.

Initial progress will be slow and it will be frustrating, but you will have the sense of adventure and joy of discovering things for yourself. You can refer the documents and all-powerful-google if you get stuck, don’t try to figure out everything by yourself – intention is not to discover the language, but to learn it.

I think some things should not be learned in this manner even if you may learn something in the process of doing it – for example, surgeons won’t hack at bodies first, they must be read enough and watch somebody do it, attempt it on cadavers before even holding that scalpel. I hope this is the case though.
news

Yet another topic that I do not have a strong opinion or clear perspective: politics. I must say I am mildly interested and sometimes my interest heightens and then for months I don't even read newspapers. When I was in college, I used to devour the local newspaper from first to last page - everything from politics, economics, sports and local affairs. I was in no particular hurry in the morning to get to college, I could park the breakfast on to the paper and go through every inch. But after I moved out of there, I have never managed to read a newspaper or magazine from cover to cover. I can attribute that to a lack of care about what is happening around me (unless something drastic which demands attention), bulky newspapers which are very clearly meant for a serious study rather than daily news, internet newspapers which don't have a definitive path to follow (side bar, top bar, snapshots, summaries and in between a small strip of news strewn with links - I am compelled to click on something else before finishing one story) and news channels. The old way still seems better - I can just catch the 10 o'clock news, which will give me relevant news of the day - instead of a 24-hour news channel, which stretches the bits of news beyond imagination to fill in the time. I am tired of the expert’s analysis of statistics of past occurrences of hurricanes that seem to be going up from category 2 to 3 and back to 2.

I am still in the process of discovering the best way of reading news. Latest on that is rss feed - my initiation is with bloglines. But I would at least like summaries of stories, most sites give me headings and I don't want to click too many links. Since we have reached so far, I would like my customized news page with latest and relevant news from Kerala (not about thunder strike by postal workers and flood in Trivandrum bus station), Indian politics and business, cricket, British football, general tech and world news (no, for me, world doesn't mean just US). I think such a newspaper is not far away from making. I should be able to rate stories and say what I don't want to read about from tomorrow onwards and what I would like to monitor more.

Coming back to where I started, last when I had a little bit of interest in politics was during UK election. It was less entertaining than Indian elections where they will surely make me memorize and eventually gag over the name of the candidates by shouting through loudspeakers from morning to evening and putting posters in every inch of available space. I had to make an effort to learn the candidate's names in UK for local constituency. But then even they are becoming more of presidential election with 2 and 1/2 candidates and an enviably low number of major parties. I think the most interesting thing for me was multiple talk shows with the candidates themselves with opportunity for public to probe. It must be incredibly difficult for the leaders to answer all the questions (about education fees, immigration issues, taxation, international affairs, health, environment etc - I have to give them credit for attempting to answer). If not get a satisfactory response, you can at least make out which of them is genuine, still has a trace of sincerity and bit of intelligence. I don't think except for designated spokespersons, most of the ministers back home can perform well under that microscope.

Again, back to my original thought - why do I want to fill up my unused memory cells with obscure views about world peace? Maybe it is the process of my ageing. I think I really feel and want to know the real stories, but am tired of the very standard and pristine news products coming out of news processing industries - I don't want to read "Suicide bomb explodes in hospital - 20 killed." followed by a standard description about where and when it exploded, the counts and such. I think news is getting very unemotional and too high level to comprehend what is really happening. I no longer know whether anything is really true or just a publicity stunt or fed by the PR agency or staged hysteria. I think the current way is hallucinating, creating a world that exists mostly in paper. Lock us up and give a daily sample of celebrity gossip, terrorist attack etc - we might not even notice the change. But does it really matter whether the news is nothing but truth?
luck

Yesterday was a hot sunny day - there won't be many days like this, but being incredibly lazy about making most of it, I mourn the passing of each day. In the afternoon, I called an old college friend - main topic of these calls has become gossip about old classmates - who got married, who else is on the line, tracking people around the globe. Nowadays I wait for being in the right mood to call friends. Most of the times I am really not in a mood to talk to anybody at all. I think I can muster enough energy to call someone when there is absolutely nothing else I can do - when there is not even crap on TV and I don't feel like reading. I can even be a bit talkative then.

Anyways, I took the car to go out for shopping, still talking to him on mobile and got out to the single lane road out of the apartment. It was a 35 mph road and I must have hit the customary 40. Suddenly out of nowhere, a van pulled into my path from left. Within a fleeting second, I hit hard on the brakes, avoided the van narrowly, turned hard to the right to the sidewalk, before hitting it, took it back on to the road. I was surprised that I got out of that situation without a scratch. I continued talking to my friend, he wouldn’t have noticed any difference but if he listened closely, I think I babbled a bit for couple of minutes. It was a genuine “thank god” situation. Much afterwards I was happy with myself about my presence of mind and good reflex.

Later I was wondering how that pleasant afternoon would have gone upside down if I couldn't react fast enough or the van was bit faster or I hit a post or something. That feeling is the more dreadful than actually seeing the van looming in front of me. I guess all misfortunes like that hits pretty fast and we will be amazed how fast it will all be over.

Software Deployment

I read a bit on Environment Tests and Deployment tools and it got me thinking. In my mind if there is a picture of deployment tool, it is InstallShield. If I need to install an application in my PC, I would ideally like to get a package which tells me exactly which exe to double click to start installation (No, I don’t want to do 10 things before starting my installation), essential information I need to know (I don’t want to choose a thousand attributes which can be probably defaulted) and a neat and complete way to uninstall the application (it should remove every bit of itself – I don’t want to pollute my PC with unnecessary stuff). Now, the application I am developing can be deployed like this? Probably no. I assume my job ends when I have a perfectly working application satisfying all user requirements and more. Deployment should be easy and it is left to system administrators.

Deployment or Implementation would seem like an insignificant task for most developers. We burn so much energy into designing an application, build, test, fix and make it ready for the user to test it or to implement it in production – a minor problem in the implementation can create bad vibes for the product at the outset. In my experience, most often the initial implementation problems were minor in nature (as far as I am concerned) – it usually takes less time to fix and more time to explain. It is very frustrating for the developer than anybody else when somebody totally unaware of application starts screaming that it is not working! At least for the peace of mind, it is important to have the steps for installation of the product and the pre-requisite and post implementation tasks documented and as much as possible automated to reduce the risk of manual error.

In the systems which I have worked on, as soon as it goes for production implementation, system administrators take over the implementation tasks. It is like you go through all the pains of developing your baby and as soon as it is the delivered someone who may not even care as much adopts it. When it starts crying, they become angry and frustrated and you know exactly what it needs and you can only explain what to do. Suddenly you have limited access and you are required to guess what is wrong with it. A compilation sequence has gone wrong and a package did not get compiled or after implementation couple of packages became invalid and needs recompilation – just this much could make it unusable. That is probably one more reason for me to consider this step as important.

So far, in my experience, following were tried out-
1. Environment Documents: - Document every single bit (configuration file changes, directory setups) and keeping the focus that a third person is going to configure the system.
2. Installation Documents (Readmes etc):- Pre-requisites:- Make sure that everything which is needed to even start code installation is already setup in the environment; sequence of installation of various types of code. Post installation setups.
3. Automated Installation Scripts: - As much as possible automate. It will simply reduce the chance of manual error and you don’t have to answer any questions.

At this point, I did a bit of research and following are some points, which I may be doing, but not put into a structured thought process.

Other systems should still work after your implementation. We could be so much concentrated on getting our software installed on to the target machine that we may forget it already has something which may get affected by our installation. Make sure such impact is tested earlier.

Generating logs of installation: - Success as well as failure of installation should be logged and log should be verified before starting to use the system.

Pre-cursor steps: - Check whether instance is even ready to take application in. It could be multiple steps ranging from verifying application server setups, presence of database objects to checking whether required directories are present with required permissions.

Installable in multiple host instances: - Often we design the installation scripts knowing the target system specifically. If there is a chance of the scripts being used for multiple stages (probably user testing, acceptance, production type of scenario), keep the scripts and configuration documents generic.

Versioning could play a very important part in a system where continuous software upgrades happen to the system and the code base progresses through multiple stages before reaching production.

There are two distinct dependencies: - Run-time and Install-time. Just because of the files are installed successfully may not mean that application will work. It would require run-time configuration steps to be completed. It is possible to write a script to verify whether all nuts and bolts required for the application to run are already put in place. Another handicap for developers is, once application is live, you cannot run it through a set of test data and make sure that all its functionalities are proper.

Deployment involving change in system configuration could take backup of the existing configuration files and then perform the new steps.

Packaging the builds: - To refer to what version of the build is currently deployed, it is important to wrap the different set of sources into one (usually compressed format to transfer safely and completely) and refer using a naming convention. There could be initial installations, upgrade releases and hot fixes – depending upon the complexity of environment it may be useful to name the packages used in each case appropriately.

If the development and deployment teams are well separated, then complete transition becomes key to successful implementation. It is too easy for something to go wrong if the development team’s assumptions about what they are building is not documented and known to deployment team.

File-conflict detection: - Bit more advanced. This could make sure the existence of a lower version of the file when a new build goes into the system.

De-install scripts: - what will happen if installation breaks down in the middle? System can’t remain down until you fix the installation? If there is a chance of incomplete installation harming the host system and existing applications in any way, plan for it by keeping any de-install script or steps ready.

This whole process should be well integrated with the build process itself. If you wait till the last of the features are tested, close your books and hang up your boots and then remember to make up some installation scripts, first of all, it will be a grunt work and second, you probably don’t have any way or patience to test your deployment scripts.

Deployment plan (level of automation, mode of deployment, usage of tools) should be made well ahead. Typically, the race will be to meet the deadline for the development of the application, but on the designated day if you give hundred files to system administrators, it would probably take another week to get it implemented and effectively there will be project delay.

Deployment process could have following steps:-
Validates prerequisite dependencies
Checks for file conflicts
Executes and pre-installs scripts
Installs the files
Records the installed files in a database
Executes post-install scripts

The level of automation or planning for deployment will depend upon the scope of the project, frequency of upgrades, complexity of environment etc. It could range from simple readme for installation to full-scale deployment tool to be used.

There are variety of deployment tools available which I haven’t had an opportunity to use and have a prejudice that it will probably not meet 100% of my requirements and I may have to then find ways around it which will in turn reduce the effectiveness. But then again, it is just a prejudice.

References:-

1. Software Deployment and Configuration
2. Towards automated software component configuration and deployment
3. The Software Deployment Mystery – Solved
4. Agile Deployment: The View from the Inside
Sometimes I feel I am the most gullible, impressionable by anything and agreeing to both sides of any debate alternatively without being able to make up my mind about something. Either I can console myself that I am finding good in everything or I can accuse myself for being a weakling who cannot differentiate good from bad. That is what I am searching for - my day of emotional maturity - then without running around mirages of ideas, dreams and goals, I can relax in the comfort that my thinking is right and this is what I want. I have been thinking of one quote for couple of days - it is from "pretty woman". Mr. Gere says that rarely people surprise him and Ms. Roberts replies that "good for you. Most people scare the shit out of me most of the times" or something in the similar line. Yes, I think that sometimes - I haven't made up my mind yet about most things in life. I fancy myself as good at recognizing patterns and making theories - in work and outside. I have my subconscious categories of people and pre-judge most of them into some bucket. With careful observation, I must have built a catalogue and approximate mental pictures of people in different categories. If I just trust my instinct I will be mostly true about some person. Like that I must be furiously collecting data on life and what should be believed in and what must be the true pattern of a good life. But so far I don't have a clue. What should you pursue to be content? In any case it won't make any difference to me because I have caught on to the tail of life and it is going on a wild ride without a care in world about me bumping into boulders on the way. It doesn't seem to care that landscape is not usually scenic and I don't seem to be able do anything about it. Irony is, I can change anything about this life anytime I wish - but I don't know what to change or whether to change. Have been listening to Coldplay for last two days continuously and the line "I’m gonna buy a gun and start a war if you can tell me something worth fighting for” lingers. That is pretty scary. Is finding happiness in whatever you have now is an ambitionless attitude, sweet pill given to the weak? Not that I am practicing that, it is just a thought. Sometimes people make me think that not having a goal in life is the worst thing that can happen to you and then I make my short term and long term goals and short term and long term plans to reach that goal. There will dozens of fancy thought screaming across by wonderful little brain that if you have a general direction sense about where you are going, you can eventually find it, so get that idea and that at least going towards something gives a sense of purpose and avoids the boredom of running in circles. And then the next day I conjure up a new theory that having an aim takes the energy out of life and concentrates it on one purpose while thousands of other opportunities for happiness pass you by. Like this I jump from one boat to another. The ultimate irony is that these are just thoughts - I am just fantasizing. I have always followed life and was generally happy about wherever it took me (oh, that must be the destiny theory) and let me see what is has in store. I will there in my couch, eating potato chips out of family size Lays bag and watching CNN's made up news of the hour. I am pretty content actually…
I have a very peculiar behavioral problem – if I postpone something repeatedly, I may end up never doing it. I know very well about this but like with an invisible wall, I timidly knock against it, but just don’t seem to break it. Around three months back, a friend had called me during office hours when I was about to get into a meeting, I told him that I will call him back. Every weekend, I make a mental note to call him, but I put it off for later and finally I returned back from UK without calling him at all. I have minor to major activities in terms of seriousness in such hanging status – it is like going through life with a lot of frozen activities which I will probably never get back to. This blog was becoming one of those. So this post is to break the silence and get back.

Quite a lot of things happened in my life since my last post. My assignment in UK came to an end, I traveled back home, stayed there for three days and came back to US of A. It has been hectic for some time and I am not really sure whether I still complete understand what I am doing. Anyways, time in UK was great – I got to visit four countries, added quite a lot to my pile of scrap called experience and lost a lot of weight (I didn’t know that I lost this much until everyone I see here exclaims as soon as they see me). I somehow found time to read enough, travel enough, donate more money to Blockbuster and improve my knowledge about European football.

Only regret in recent times is that I couldn’t get to spend enough time at home. It is feeling more and more great to be back at home than anywhere else in the world. I got to know what the rest of the world looks and feels like which might have changed my way of looking at things back home, but just the content feeling of walking through those streets makes things clear – a sense of belonging, that’s what it is.

Anyways now I have a new home, car and changed set of routines. It always gives me a kind of funny feeling when I move to a new place, go to a new office and meet new people – a mix of apprehension and expectation. The place looks new – I always maintain that the image which registers when I first lay my eyes on some place is unique. After some time I stop noticing many details, the thing called familiarity settles in and then I can sleepwalk through it and it becomes comfortable. So now I am patiently waiting for things to get comfortable.
Finally I got my hands on Da Vinci Code. Popularity of this book has become some kind of myth in recent times. Undoubtedly it has become a worldwide best seller. After it was recommended to me by a friend, most days I see some mention in newspaper or people reading it in trains. In my circle of acquaintances, only new films, TV shows and music gets discussed and never a book – this may be the rare one. How many times have you discussed a new book release, checked reviews and tried to read it hot-from-the-oven not like after 50 years from the time of publishing? I watched a TV documentary called “Real Da Vinci Code” which visited all the sites mentioned in the book and ended up refuting many of the claims made in the book. I walk by a 175 year old Mary Magdalene church every morning and have visited Rome, Vatican, Paris, Lovre and London in recent times – that must be all the reasons to read this book.

I did contemplate buying it, but somehow decided against it, tried borrowing from friends and borrowing from library. Library had very few copies and they said another ten or so copies have been ordered, so finally placed a reservation and got it.

Against my best judgment, I described the quest for the book in so much detail to start with saying this – it didn’t live up to my expectations. In the same breath, I have to say that it was an interesting read, a very light one at that. I imagined it would be one of the best narratives to catch attention of so many people, but it was rather like a delicious sounding dish gone sour at places.

This one would definitely make you wonder why it has attracted so many people. Story plays the main role, it is something like you got a meaty idea for a story and then you invent some characters – professor to explain the concept, students to get suitably impressed hearing the hackneyed stories about PHI and produce adequate oohs and aahs etc. Narrative will have to compete hard against children’s books and still might find it hard to win. It is just a regular “thriller”.

Some of the ideas seemed preposterous to me. About the V formed by two people indicating sacred feminine, reverse V indicating male and the whole structure saying M and hence indicating Mary Magdalene etc. I think this is the problem of anything which is not scientific – anything can be proposed and there is no way somebody can prove or disprove. It is like somebody trying to find sexual connotations of 90’s America by analysing Friends TV series.

As to the question of faith and whether it catches somebody totally off-guard and makes them think whether all through their life they might have been founding their faith on a lie etc, somehow I am not able find the shock element in that. Probably because marriage, bloodline, goddesses are not new concepts when it comes to my religion. We have all imaginable combinations of mortal lives reflecting on to fables of gods and goddesses. I have read somewhere that Sita/Ram story is based on a real king who was loved by his subjects (not sure whether it is with supporting evidence). It is a very tricky thing to start discussing faith, but I think belief in god need not be tied down to certain symbols abolishing of which crumples everything you ever believed in.
Somehow I could pluck myself away from the imaginary clutches busy work and went on a trip to Italy and Switzerland. We rummaged through Rome, Pisa, Florence, Venice, Interlaken and Geneva in 6 days. Except for rather tired legs, it was smoothest trip irrespective of so much travel through trains, buses, flights and even boats. It couldn't have been smoother if not for Google and internet - booking hotels, finding places to see, buying even intercity train tickets and planning the whole trip without leaving home even once. We have truly come of age in our use of Internet.

Rome was another version of London and Paris with its share of monuments, art, museums, palaces and cathedrals. We went to Vatican first, stood in 2 km queue for security check, had our fill of Michelangelo and all others - they have painted, sculpted, sewn so much that after Sistine chapel everything starts to look the same. I don't have a very keen eye for art, but basically it looked grand. One thing I realized is I have my own fictional images of places stored away which I haven’t seen but just heard or read about. For example, in my mind's catalogue, I have pictures of Goa stored, whenever I command "Goa", it brings a view of beach with a bamboo hut by the side (probably from dil chahta hai), long clean beach, some coconut trees, laid back, happy people etc. The actual picture might be nothing like it. The trips like this just helps in replacing those fictional catalogues with something real. Now I have the picture of Rome as a place with some history, art, crowded metro/buses, and not so much complicated people.

We went to Colossuem, Pantheon, admired some of the grand piazzas and walked through the streets just enough to get the fill of it city. Somehow it has gotten into my head that just the monuments is not enough to credibly say that I have been to some place – need to get out into the place and see for real what it is at the present age than to get some wrong idea by looking at monuments built in 1500. I have spent 21 years of my life in Trivandrum, I have never been to Kovalam Beach which is a huge tourist attraction or Padmanabhaswamy temple which is grander than many foreign attractions I have seen – universal fact maybe. But I can vividly remember almost every small and large street in Trivandrum inch by inch and that is real.

From Rome, we traveled by train to Pisa. Got a glimpse of vast country sides. Pisa was nice, small, less crowded, regular Italian town. We got a hotel room almost the size of our apartment, bit old, but nice and cozy. Only thing to do was to go to the leaning tower, inspect from all possible angles, tried to push it straight and clicked photos from all sides. It was 20 minutes walk from the hotel through the labyrinth of narrow streets. It was a rainy Sunday and rain clouds were a constant threat, giving us a wet, dim lighted, almost deserted town. I think places looks distinctly different on a crowded Saturday afternoon and a deserted, drowsy Sunday night.

It is surprising how nice people are whom we see for a fleeting moment on the road. In fact some of them went out of their ways to help us with directions, walk us to hotels, making sure that we catch right trains and patiently sparing a moment from their busy lives to click a photo and say sweetly to “Come closer and Smile”. Everyone can be good nice people they are for a moment or two - it is only when confronted with situations with little choice to act in certain ways, they become nasty.

Florence was another variation, buildings with various shades of brown and old, magnificent cathedrals. It snowed a little when we got out of station after breakfast in McDonald’s (omnipresent fallback option). Churches in Florence had some different quality, something which I couldn’t place exactly – something more natural. Quite a lot of Chinese guys were there - in fact they are everywhere. Indian’s penetration in European countries might be just limited to London. In US, every "standard" long weekend spots will be filled with desis. I think I saw less than 10 guys in 6 days which is quite unusual. At the same time, Chinese are everywhere. In the lighter side, I was thinking that it is the most populated country in the world, so it is only natural that they are seen everywhere. I am quite impressed with their photography skills (proof of common sense?) and their interest and proficiency in using gadgets. Something made me realize that I have good amount of prejudice when it comes to Chinese guys - I can't tell between Chinese, Japanese, Korean people so all are Chinese to me. We know all about American dream, rap/pop/jazz/hip-hop, NBA/NFL, Prince Charles/Camilla, inside stories of British monarchy and Premiership Football. It is amazing how much general knowledge we gather about American/British, but very less about oriental other than those martial art films and that everything you buy from Wal-Mart is made in China.

Off to Venice on the fourth day. It had started snowing heavily on the way, but next day was more or less clear. Initially I thought in one day I may not be able to get a feel of Venice and we made a mistake of staying only a day in Venice. But in one day, you can really see enough of a place and may be that way we can leave with that good feeling before starting to find faults. Venice was vastly different from anything I have seen so far - kind of a "waterworld" feeling. Apart from Alappuzha in kerala, I have never heard about boats as the means of public transport. It must be horrible to live in a place without real trees and raw land to freely walk around. Nevertheless, for a day we had most boat rides as we had in our entire lives in a place resembling Hollywood movie sets. it was a wonderful romantic day, we walked through almost all of Venice, got really lost in the maze of streets even with a street map, had margherita for lunch in a sweet little pizzeria, enjoyed the hospitality of one of the friendliest of hotels we have stayed in and walked till we couldn't walk anymore.

Next destination was Switzerland and Interlaken. It was overnight journey by eurostar train. It was comfortable and we had a pleasant italian-swiss lady for company who was trying to speak English. By morning we reached Brig and started the most beautiful real life tour I have ever taken in my life so far. Using only two ingredients - whitest snow and endless mountains, nature seems to have created an amazing display. It is any day better than anything man made. Even the journey from brig to Interlaken was so beautiful that by the time we reached Interlaken our eyes got accustomed to the black and white display. Locked our bag in the luggage locker at the station and started on yet another dream like journey to top of Europe – Junfraujoch. It was a clear day and two hour journey to the top and back was unforgettable. White, untouched, pure snow almost flowing like a vast river between endless mountains – idea about what paradise might look like might have come from there. Last piece of surprise was extremely courteous hosts in Interlaken. Hotel owner had been to Trivandrum!
Back to Geneva which was boring after all this, but still paid a visit to UN and followed one trail into the city. A smooth flight back and when we reached Croydon it was snowing as if to complete the pieces of a riddle.
beam of light through autumn trees
warm on the cheek, lighting up inside
feeling light on feet, wanting to fly
a song playing in background of my soul, faintly
is there a hint of involuntary smile?

joy without any reason, like for real
would have danced if I was a kid
live this moment, not fear the next
don’t think, just live, maybe that’s an idea
“just feeling happy, don’t know why”

tired of feeling blue, dreaming up all ghosts
conscious of self, meeting expectations
trying to be nice, acting polite
analysing, criticizing, cursing and lying
somebody tell this kid, “that toy is not so great”
Came across article in Guardian about “What are friends for?” something in the lines of which I also have been thinking about for some time. I was taking inventory of how many friends I think I have and why I don’t have “best friends”. I seem to have a steady supply of friends but then losing touch with them in the course of this long trip called life and finally becoming just a memory relived once a year accidentally. Around every corner, you find new acquaintance, out of desperation to be in touch with humanity you make them friends, and then they fade away into the jungle of life like somebody departing on a train on a long journey.

Long time ago, when I still hadn’t discovered the “reality” of adult life, I used to think that friendship is the ultimate thing in a sentimental kind of way. Life is sweetly happy when you sit around doing nothing trading joking with them. If you take a joke out that context and repeat to yourself after sometime, it looks so silly, but you have laughed so hard earlier – it is amazing. All my friendships have been based on those silly jokes, is that the reason why none lasted for a long time?

I think there is certain frequency at which each individual operates. When you find somebody with same quality and when your liking is reciprocated, there is a chance of a friendship. Some people can never be friends how much ever time they spend together and some never can be anything more than formal.

In high school, you write pacts in blood that you will never break the friendship and on last day when somebody asks whether I will remember him after 10 years, it seemed so impossible. But I am not in touch with even one of my old school friends for over a decade. Only hint of friendship remaining is from engineering college and those four years have sealed some friendships, which you just cannot seem to break fully. Even those are bound to be worn out after couple of “How are you? How is life? How is work?” and then after a long time just a marriage invitation saying “Hi.. Cordially invite you with family to the auspicious occasion.. Regards..”.
Stories of childhood friendships or lifelong best buddies are just too good to be true.

It may be a cliché, but wise thing to do is not make best friends, then you don’t have to break up, worry about them not paying attention, not sharing their secrets or big news with you first and all that sentimental baggage. Or you don’t have to get conned by some “friends” with whom you seem to have a great time and then come crashing down to earth making you realize once again that there is no such thing.

I totally agree with the notion that friendship is kind of that lightweight relationship where you are not demanding anything and not expecting anything, so anything you get is just a bonus – be it some humorous moments or receptacle for venting some frustration. This relationship does not enter into a level where you start talking about big words like commitment, trust, loyalty and such. As long as everybody understands that and operates within the same guidelines, there is less chance of getting hurt.

Especially when the culture is changing into a “competitive work environment” and “performance based appraisals”, it will be difficult to make friends in office. With friends, we may not end up judging/rating/comparing and jotting down his positives and negatives or think how to outperform - when it gets to that, what you have is no longer called friendship in traditional kind of way. Maybe the ideal times you can enjoy friends is when you are not too much into reality of life (money, job, priorities) and once you have played all the games, get back to take the rest of the life easy. In between, it will only be transient friends.
I am becoming somewhat nostalgic about bright sunshine and blue sky. I can't seem to shake off the thought that precious moments or prime time of my life is getting wasted inside office, under artificial light, facing a wall cabinet or a cubicle separator, like a chicken waiting to hatch an egg. I happen to go out today morning, it was good day, cold but sunny. I felt bit envious of people who were walking in the streets - nobody is in a hurry to reach somewhere by some fixed time. It is absolutely liberated feeling - to travel in an empty train just looking out, without worrying about anything. I am having dreams about going out on a long ride with soft music playing in the background through deserted straight roads, landscapes changing from vast harvested fields, beautiful lawns with a sprinkle of autumn leaves on vibrant green grass or filled with mountains, valleys and occasional lakes - all taken out of movies, but it need not be that perfect. Nowadays my "happy place" is where I lie down without moving a muscle for a long time.

I wrote the above paragraph a week back, now I think I get a rotten smell like something kept out in the open for too long. I have rejected quite a lot like this now and the blog breaks are getting longer, almost at the verge of stopping it altogether. This blog is exactly one year old now, I was planning an anniversary blog some time back, but now just this will do. I haven’t been able to find a clear direction about what I want to write or why, but I think I will just do justice to the apt title which I had chosen. Meanwhile I got a professional feedback that I need to be more succinct. I just don’t like to edit, it is like trying to perfect something by cutting off some parts and adding something that seems more appropriate or beautiful thereby polluting the pure product. If I do that, sometimes the end product will be unnatural. I do like to ramble and maybe I am thinking that my only audience is myself. For a long time, I used to think that I have developed this companion inside me whom I can talk to, argue with, criticize and who can see everything that is tactfully hidden to outer world. Now I think sometimes as I am writing in the blog, going back over the text and correcting some thoughts, clarifying to myself, like keeping a never-ending autobiography. Unorganised thoughts may be my characteristics, I am hoping that one day it will all crystallize dramatically and be clear to myself and then I will attain my dream of that mature, rugged man – content and at peace with the world.

I really need to learn "writing with heart and then going back and rewriting with brain".

listen

“You should go home and sleep.” “I am listening to these guys talking.” “From this far away?’ “I am not sure what they are saying,...