|"Cold War cartoon defending the profit motive against anti-capitalist critics." Cartoon in public domain and available at Archive.org. 1948.|
Monday, December 18, 2006
|from mercury to vv cephei. This is amazing. It puts in perspective two very important things:|
1. Physically, we are hugely, hugely insignificant
2. But, mentally, we have been endowed with this awesome capability to discover and appreciate this insignificance
Friday, December 01, 2006
The six disaster types are:
- The Train Wreck
- The Death March
- The Sisyphus Project
- The Ten-Foot-Pole
- The Kitchen Sink
- The Painless Upgrade
Thursday, November 30, 2006
Monday, November 06, 2006
The five principles mentioned there are:
1. Fail Fast
2. Write Less Code (and Don’t Repeat Yourself)
3. Computer Programs Are For People
4. Do The Right Thing
5. Reduce State
And finally, the author gives a piece of advice that I think is very valid, especially if you don't have a comp-sci educational background (even for the comp-sci folk, good list to revisit outside the exam-cram-season):
1. Learn a functional programming language
2. Learn how operating systems work
3. Learn how databases work
4. Learn how to read a computer science paper
5. Learn as much math as you can (but which math…)
Go read it.
Tuesday, September 19, 2006
If most of the apps are anyway destined to be toolkits/platforms/frameworks, then we better bear this in mind while designing them in the first place, even if the application was never intended to be so. Interface centric, Object Oriented, Test Driven development would go a long way in ensuring this. These three paradigms are more about discipline than some cutting edge tech stuff.
Interface Centric: This is one of the most preached, and least practiced paradigm. Design your interfaces BEFORE you design your application. Look at the Façade pattern, for help. This is not difficult, but just a matter of habit.
Object Oriented: Ok. You have read a lot about it since the days you spent programming in your diapers. So, I won't repeat all that. Just keep all the good things you learnt about OO in mind- aim to improve reusability, decrease encumberance and judiciously manage relationships between various programming entities. There is only one way of improving in this area- practice. Make lots of mistakes, get lots of crap from experienced souls and don't commit those mistakes again. And yes, one last thing- pleeeeeease document your OO thoughts. Take your pick on how to do it- UML, design docs, code comments (or a combination of these), but DO IT.
Test Driven: So, you have designed your interfaces. You have designed your application around those interfaces. Now what? Write code. Right? Wrong. This is when you should define your test cases and automate them using unit test scripts. Application programming should just be a mode to pass these tests. Some argue that the Test Driven approach gives Development Myopia and people fail to see well into the future. My take on it is, if you use it along with the paradigms I cited above your myopia is prevented. You may or may not use tools like NUnit or JUnit. You may just write your test scripts in shell script or Perl. As long as you have a well maintained test bed that ensures good coverage of your code (there are tools for that too, like Ncover for .NET), you are safe and sound. In practice, the challenge is not in writing the unit tests but maintaining them through changes and across versions. That takes lot of discipline and…nothing else.
But, all this homily is easily forgotten. The only way to ensure that your development automobile doesn't get hijacked (by deadline pressures, for example) is to put it on well designed rails, guarded by controllers and traffic signals. Those rails are called "Processes". Those controllers are called "Reviewers". Those traffic signals are called "Management Checkpoints".
In conclusion, if you have processes that promote Interface Centric, Object Oriented, Test based software development that is guarded by Reviewers and controlled using carefully designed Management Checkpoints, your project may still go to dogs, but the chances are vastly reduced. Vastly.
PS: Please also read two of my earlier posts (linked below) in conjunction with this one to get a good view of what I preach as sound and sane software development practice:
Seven Rules to Guarantee Project Failure
12 Steps to better code
Friday, August 04, 2006
And while we are on that topic, here is an essay on Economist about why America gives unconditional support to Israel.
I guess we should see the middle-eastern crisis and the recent unfortunate events of West Asia in the right context.
Tuesday, August 01, 2006
I loved the first How-To I read on it- How to Eat With Chopsticks.
Thursday, July 27, 2006
1. Deliver, Deliver and Deliver
2. Planning is for Wimps
3. Whip Your Team to Higher Performance
4. Communication is for Losers
5. The Big-Bang Effect
6. Common Sense Rules!
7. Rub your lcients the Right Way
The above list may not convey much, but the interesting, entertaining and short (just two pages) article has a lot to say. While reading through it, I had several deja-vu moments that made the reading even more interesting. I suggest all Software Developers/ Leaders/ Managers read it, at least once.
Tuesday, July 18, 2006
After the Mumbai blasts, the Indian government feels an urge to stop blogging sites. Including blogspot.com. Why? Because terrorists use blogs. What? Really? I mean, are you serious? I guess they also use e-mail, so will Mr. Singh's government stop all e-mails? How about Orkut? Afterall, they can create terrorist communities online. Right? What about online chat? That is something the terrorists could use heavily to plot more bomb blasts, so lets stop that. What the heck...lets get rid of computers altogether. Alternatively, get rid of this sick Government.
I understand that it is natural to panic after something as devastating as the 7/11 blasts in Mumbai. The Bush led government in the US panicked similarly after 9/11, and attacked Afghanistan and Iraq apart from making lives of so many others utterly miserable. But, US is a BAD example to follow when it comes to governance and policy making. I can only hope that our Government sees the absurdity in this step and lifts such non-sense sanctions.
Anyway, there are ways and means of circumventing this ban. Please go through the India Uncut blog for more.
Monday, June 19, 2006
I was reading an interesting article about (or, rather, against) Robert Kiyosaki and I stumbled upon a link in it that pointed to "The 48 Laws of Power", by Robert Greene and Joost Elffers. To say that I loved those laws and the way they were put together would be an understatement. Go and read it all at http://www2.tech.purdue.edu/cgt/courses/cgt411/covey/48_laws_of_power.htm
And yes. Don't forget John Treed's take on Kiyosaki in the article I mentioned at the beginning of the post.
Talking about Kiyosaki, money and all that, I have another blog to refer to: http://theinvestorblog.blogspot.com. Go read it, but if you are from (or in) Indian, I would specially suggest you study his Real Estate Cash Flow Calculator. But, read about it on his website first.
Phew. Those are too many links for one post. So, here I end.
Tuesday, June 06, 2006
I stumbled upon an uber-cool website that renders a nice little service- a cheatsheat to those irritating automated telephone response systems. It tells you the keystrokes or phrases you must use on the telephone to get to the operator directly instead of waiting endlessly on the phone line. Alas, it is helpful only for people in US and UK. I hope it will expand to include other places, like India. Meanwhile, my American and British friends will find it useful.
While you are at it, be sure to read their blog too. One funny post, copy-pasted, from there:
Hello, and welcome to the gethuman psychiatric hot line.
* If you are obsessive-compulsive, please press 1 repeatedly.
* If you are co-dependent, please ask someone to press 2.
* If you have multiple personalities, please press 3, 4, 5 and 6.
* If you are paranoid-delusional, we know who you are and what you want. Just stay on the line so we can trace the call.
* If you are schizophrenic, listen carefully and a little voice will tell you which number to press.
* If you are manic-depressive, it doesn't matter which number you press. No one will answer.
Wednesday, May 31, 2006
Go try it out. I will try it myself sometime.
While we are on the subject of airplanes, here is an amazing video I found. It is a radio controlled plane flown with superb skill, to say the very least.
Tuesday, May 23, 2006
I encountered the Sapir-Whorf hypothesis when a friend forwarded an article about it some time ago. In short, it asserts that "thought is constrained by language"- a very interesting and 'thought' provoking idea.
Researchers and practitioners of systems theory, especially the kinds of John Warfield, George Chandy (of OPMS fame) and yours truly, believe that language is more than mere words and sentences- somewhat like that cliche "the whole is bigger than the sum of the parts". The various parts of speech in a sentence, what the specific words mean to the audience, how the sentence was presented, by whom and the context in which the sentence was used are all equally important. You just CANNOT look at any portion of communication in isolation. Ok. How does all this relate to the Sapir-Whorf hypothesis? It relates because, further to my discussion couple of sentences ago, language is not just a group of words. If it were so, you could mug up a French dictionary and talk like a native Parisian. We all know that we can't. Still, how does this relate to the hypothesis I started this article with? Elsewhere (I can't recall where), I read some people's conclusion of the hypothesis that "we can't understand ideas that we do not have words for". I disagree. And quite strongly so. Let me try a pseudo-mathematical/ logical proof:
1. Lets assume that I am Einstein and this is early 20th century
2. Lets assume that we really can't understand what we don't have words for.
3. Can I come up with the theory of relativity? Think about it. I don't have a word for the theory yet.
4. Well, I do come up with the theory AND THEN invent word or words to describe the theory.
5. Because I can do (and Einstein, like so many others before and after him, has done this) the above, assumption 2 MUST be wrong.
Anyways, language is more than just vocabulary, which is just a cog in the communication machinery. And how this cog works 'with' the rest of the machinery is important to understand anything. Lets return to the original Sapir-Whorf hypothesis. Can language really limit our thought? Let us see how these two things are related. Think of language and thought as a dyad (put simply, dyad is any two unit combination towards something meaningful- refer to works of Charles Sanders Peirce). We can depict the dyad as in Fig 1 below:
How are they related? Language contributes to building mental models and mental models contribute to linguistic models depicted as sentences in a language. Hence, limitation of one can (and will) seriously inhibit the other. No rocket science in there.
Ah...mental models. What are they? They are, put very simply, the way our brains structure information to make "sense" of it. It makes models of everything it perceives, including sentences. Its model of a sentence includes lot more than mere array of words- context, prior experiences, notions, assumptions and a myriad other components come to play. Roughly, it is akin to how a computer operating system converts a binary executable to low level constructs the processor understands. Thus, the network of mental models is (loosely) an operating system of the human brain. We even have a word for it- mind. If brain is a biological entity consisting of neurons and other physical components, the mind could be thought of as a meta-model of various mental models, and their interactions.
Lets return to our dyad of Language<=>Thought from Fig 1, and our assertion that one's limitation affects the other adversely. How does the mind get out of this negative loop? It uses another faculty that probably only humans possess- Imagination. Along with Language and Thoughts, Imagination forms a "Triad" (sets of three ideas that are applied collectively and integratively) shown in Fig 2 below. A Golden triad, in fact.
Together, they give rise to many marvels of human intelligence like Creativity, Problem Solving, Decision Making, Learning etc. The power of such Triadic constructs has long been established since Peirce.
Ok. Once again, how does all this related to the Sapir-Whorf hypothesis? The above discussion was aimed primarily to put forth my idea that
1. Language is lot more than just words
2. There is a specific relationship between language and thought
3. Mental models are a crucial mechanism of human intelligence and thought process
4. A meta-model of mental models serves as one way to think of 'mind'
From which, I derive that the limiting "language" the hypothesis talks about is words and mental models, and not just linguistics. Even using a common language, some people understand things others have difficulty in grasping- only because of the way the two groups prepare their mental models.
1. If we could change our conventional communication style to use prose+pictures effectively, we will come quite close to depicting, communicating and working with mental models effectively
2. Such a style will help communication processes rise a tad (yes, just a tad but that makes hell of a difference in the real world) above pure linguistic dependencies in communication
3. While Sapir-Whorf hypothesis is worth its weight in gold, people who have mastered the art and science of systems thinking coupled with prose+picture style of communication are at a significant advantage
One of the best and most effective of methods of working with mental models (in isolation as well as in groups) are Warfield's graphical modeling techniques (like Interpretive Structural Modeling, Field Representation etc.) and George Chandy's extension of these models into meta models in his One Page Management System.
Read the full story, and some interesting comments on it, here: http://www.kuro5hin.org/story/2005/9/27/95759/4240
One of the most read-worthy comments comes from a certain Leonard Lee, a Senior Consultant with IBM. He was on the project described in the article. Make sure you read his point of view as well. Another one comes from a Kuro5shin user "LeglessMarine". He speaks of a similar experience.
Tuesday, March 07, 2006
Anyways, it is a toolbar (called Blogeverywhere - no, the link is not working as of today) that does two things:
1. Better Hotmail experience: Provides option for offline viewing of mail, faster mail access etc. What I don't understand is what additional value does it add over Outlook Express? Any ideas? Apart from revving up Hotmail, Blogeverywhere’s application software will help you access blogs and retrieve real site syndication (RSS) feeds faster.
2. You can comment on any website/ webpage. There are two buttons: read and write. Clicking on the 'Read' button will let you view what others have posted about a particular site while clicking on the 'Write' button helps you write your own comments. Sabeer says that this will help in democratization of web. I think this is a decent idea. But, how many people will be inclined to read 'about' the site rather than the site itself remains to be seen. I mean, why do you visit a site? To view it, right? How many times would you want to read what others think of it? How many times did you have that inclination? Personally, I can think of a few instances but they were few and far between. Having said that, people have a strange way of throwing surprises so I won't be surprised if general 'junta' love this idea.
Financial Times has some details: Bhatia has invested $5 million from his personal fortune to develop blogeverywhere over the past two years. The idea was initially conceived by Shiraz Kanga, an Indian former software developer with Cisco Systems.
I think, I still like Voifi. VoiFi (Beta), is an instant messaging (IM) service and a peer-to-peer telephony software that also offers calls for Re 1 from any part of the world to India. This is like Skype or Yahoo! with entertainment added in.
Thursday, February 16, 2006
Rida and Rayan (my daughter and son, respectively) are the best things to happen to me in my life. Nothing comes even remotely close. Anything that I feel should be remembered about them goes into a blog. I will post prose and photographs on it, so it should be interesting.
Now, the challenge is to keep that blog going.
Wednesday, January 25, 2006
I guess we should encourage such initiatives and prevent corruption of core-values from destroying them and their revolutionary ideas. The party has a website at http://paritrana.org
Please share (in the comments section) your views.
Tuesday, January 24, 2006
1. What are the most important problems in your field?
2. Are you working on one of them?
3. Why not?
In other words, his question is "What's the best thing you could be working on, and why aren't you?" It is such a slap-in-the-face question, that most of the people would shy away from it. And for good reason- the other alternative is so much tougher. The rest realize that the other alternative is more fruitful, so what if it is tough? The latter are the achievers, the ambitious, the courageous, the famous and the uber-rich. Every famous scientist, businessman, politician has done just that- identified the most important problems in their field and worked on some of them 'diligently'. To me, the appeal of his talk is that it applies to Nobel Prize winning scientists as well as to more ordinary folks who want to excel in their careers.
Read it. I strongly recommend you read it all (it is pretty big) no matter over how many days:
Thanks Richard for sharing such valuable stuff (I hope he gets my thanks in heaven), and thanks Paul for sharing it with all of us.
Congress Plenary was in full swing and there were khaki men all over the city, more so on the roads leading to the venue. I was happily driving away in my Hyundai Santro on Banjara Hills road no. 3. The traffic was a bit slow, but smoothly moving and I was on the left-most lane. I wanted to get into the middle lane. My indicator went winking and I was about to turn the wheel when a cop standing on the side motioned me to a stop. He came hurriedly to me:
Constable: Saab. Right turn do kilometer ke baad hai ("Sir, the right turn is after two kilometers").
Me: Jaanta hoon. Main tho sirf lane badal raha tha ("I know. I was just changing lanes")
Constable, turning away: Indicator daal ke logon ko confuse nakko karo saab ("Don't confuse people by blinking your indicator")
Will someone please kick this guy's ass and put him in a driving school where they actually "teach"? I mean, here is a traffic cop asking me not to confuse people by indicating that I want to change lanes. Ass hole of the alpha kind (pardon my french).