Thursday, October 27, 2011

How can we Learn something from people who are smarter than us ?

Quite often , we happen to barge on to people who knows more than what we know about a particular subject. If the subject happens to be something which we consider ourselves as something , then , It is
more disconcerting. 

A natural defense mechanism triggers in such situation and we will try to pose as something by hiding the inherent dis-belief.

The common reactions are

                            1) Be on the guard , speak less ( Posing ourselves  as an expert )
                            2) Projection of our strong points and guarding the soul
                            3) Ignore the person in question by moving out ASAP.

I think , the best strategy is to acknowledge to ourselves that the person in front of us know more than us about the subject. By swallowing our pride , we should engage the person in conversations,to understand his strong points and how he has achieved better expertize. By asking good questions , you can make him speak and some of the idea will percolate to you and you can close the gap.

To do this , one needs Intellectual humility and should be able to acknowledge the sheer complexity of life.




Why dynamic languages are popular with startups ?

I have seen people using Ruby on Rails , Groovy on Grails or PHP frameworks for writing sites , especially , if they are a startup. While discussing this matter with a friend of mine , his observation seems to be correct , for me.

He was of the opinion that the people who invest the money know that , all startups are not going to take off. By using these languages for the development , they can bootstrap very fast. If fails , failure is known pretty early. This is another instance of "Fail Fast" model.

Saturday, October 22, 2011

After Adam & Eve and Countless others , It was my turn to sin with Apple

At the Andechs , I saw apples hanging from the trees and nobody seems to care about the fruit. Till this day , I have not seen apples on a tree. I was hungry as well. We could not find a restaurant at the place Initially.



Then,I saw the above. Apples were placed in front of a house in  a basket and a sheet of paper was also there. I think it is some kind of free takeaway for the pilgrims visiting Andechs. If you can read German , pls. help me to understand what has been written.



I told my intention to pluck an apple from the above tree to my colleague. He distanced from the stuff. I reached to a branch and plucked one !.

It was very tasty as It was taken from the tree. At least , I felt it so.




Eating a illegally plucked apple was risky , but , It was tasty as well.

Unforgettable Journey to Andechs ( a Catholic monastery cum Brewery !)

I heard about Andechs only after coming to the Germany. A person here told that It is a good place to visit and  also advised us to take S8 train and get down at Herrsching railway station. As per him , either one can walk or take a bus to the monastery.

Around 10.00 am , we started from Ostbahnof railway station to Hersching. We at first took U6 lane to reach Klinikum Grobhadern.We thought the place is walkable distance from there. But, It turned out that place is far away. So, we came to MarienPlatz and took S8 line to Herrsching. At a particular railway station just before we reached Herrsching, we saw nobody in the train. So, we got down there. Then , we were transported to Herrsching by a bus by MVG. The MVG ran a trip just for us two !

Around 12.30 , we reached Herrsching. We asked a lady about the way to Andechs from Herrsching. She told us that It is roughly eight or nine kilometers. But, I had heard that It was only five kilometers or so. We decided to walk .
 The above picture is a lake at the Herrsching . The call it Ammersee. We took close to one hour to travel to Andechs through the woods. The bio-diversity of the landscape is great.


The above place is the entrance to the woods.


At the above place , we had almost walked five kilometers.



The above picture was taken at the entrance of the monastery.


The above picture is front view of the dome of the church.


The above picture was taken from the front of the monastery and one can see Alps in the background.







We ate at a restaurant very near to the monastery. Then, we visited the church itself.  It was beer all around here. Even the statues seems to sip beer here. I was wondering whether it is a pilgrim center or It is a holiday maker's destination.



Around 4.45 pm , we decided to return from there. we began to walk back to Herrsching . On the way , my colleague and I had a difference of opinion regarding the  way to take. We decided to part ways. He walked through the woods and I chose the journey via the road. In the end , I reached 12 minutes before him. So, he might have walked one kilometer more than me. Walking alone five or six kilometers in those kind of areas are little bit tricky. Finally , we managed to reach Herrschig railway station.

Including the walks inside the Andechs , we might have walked close to fourteen kilometers !

We met an Indian (who is settled in the US ) who had come to Munich for a business discussion. We got along nicely with him and discussed a lot of stuff about India , US and Germany. In the end , I am back in my hotel safely.


Tomorrow , we are planning to visit Neuschwanstein Castle.

Friday, October 21, 2011

Why I consider Mono is important for FOSS people ?

In the past one year , I am hearing a silent appreciation for  a Seattle based company for it's attempt to bring various programming models to the main stream from people who dislike the company, for some reason.. What has surprised me is most of them were either from the Java camp or the C++ camp.

Yesterday , while I was discussing different models with some programmers here in Germany , they also resonated the same. I did some thinking after this incident.

The Seattle based company's attempt to add new features at the platform level is a sure winner compared to other attempts to add features by "Syntatic Sugar". The implementation of Generics is one good example. The .NET has got support for Generics at the platform level. The Java , for compatibility reasons , chose "Erasure" ( they erase the generic code and substitute the Object based code there ) to implement the feature. It is not that Java Community Process do not have people to do it. The team which implemented Java Generics had members like Philip Wadler ( A leading authority on Functional Programming )

If you trace a look at the evolution of C# language , one thing is visible

C# 1.x - a Robust Java equivalent (and more ).
C# 2.0 - Generics Support
C# 3.0 - LINQ  &  Lambda ( Lambda can be considered as backend for LinQ )
C# 4.0 - Dynamic Typing support
C# 5.0 - REPL , Compiler as a service etc

I view C# as a multi paradigm programming language

It has support for
           Procedural Programming - make all methods static and classes just become namespaces
           Object Oriented Programming - classes
           Functional Programming - Lambda , First class functions
           Logic Programming - LINQ ( DataLog is subset of prolog ,equivalent to SQL )
           Native Programming - unsafe block , P/Invoke
           Dynamic typing - C# dynamic keyword.
           Generic Programming - Generics
           Aspect Oriented Programming - Attributes & Reflection
           Language Oriented Programming - Reflection , Compiler as a Service

In one language , you have got support for most of the programming models invented in the last sixty years !. There are other benifits like Occaml derived F# , C++ integration to name some more.

If you are a FOSS enthusiast , you can get everything through Mono Project. Mono is an Open Source Project , but it is not GPL licensed. But, in the name of licensing , would you rob the opportunity to become a better programmer ?

To learn all these stuff , through other channels (than Mono ) will force you to learn LISP, Scheme, Occaml , Prolog , Python , C++ and Java. This can take a lot of time.

Try to learn C# through Mono and Profit from It !

     


Monday, October 17, 2011

Single Assignment C - A functional programming language

I happen to come across a functional language by the name SAC , aka Single Assignment C. It is good for array processing and has got a functional/dataflow sementics.

When I get time , I will just explore . If you have time , go to http://www.sac-home.org/


Sunday, October 16, 2011

Trams - The best way to see the City of Munich

Yesterday , I happen to board a tram which is supposed to go to a place which I did not have a clue. Since I have got a MVG pass which can travel four rings (of the possible 16 rings ) , I was confident that the vehichle will pass through some S-Bahn or U-Bahn station.

In the end , It was a nice ride where we saw new open squares (yet to be visited - i mean ) and parks.
Since Trams travel through the main road , you can see places.


Deutsches Museum (German Museum ) - I am dumbfounded

Last week , When Yogeshwar (my colleague ) and I had gone to the German Museum , It was about to be closed for the day. Today , we went there around 10.00 am and entered the museum around 10.15 am. The Entry fee is 8.5 euro.


For the next five hours , we were inside the museum. Initially , I started clicking at the specimens which shows German maritime tradition. After that , It was air powress. By this time , I stopped clicking and understood that It is futile to document all the stuff out there (It is too much stuff to be documented ). Then , I moved to Aerodynamics , Optics , Physics , Chemistry , Germany in the 50s , Printing , Space , X-ray , Glass , Ceramics and each of the section is worth watching for a day.

I felt like going back to the school to relearn all the basic physics , chemistry which was part of the syllabus. This museum can transform even a fool into a scholar !. After a while , I stopped watching and took some rest.

The curators of the museum has done some excellent work here. Not even a single dust particle on the specimen. I saw portraits of Gottfried Wilhelm Von Leibniz , Carl Frederich Gauss , Herman Von Helmotz and other noted scientists.

The most important part of the museum is /that It shows 80% of the 19th century science happened in the German speaking world !. I felt like learning German to understand what has been written out there.

The Web site of the museum is http://www.deutsches-museum.de/en/information/

Saturday, October 15, 2011

It is time to re-define Knowledge and Skill

For the past one week , I have been fiddling with various software codebase from different sources. Some of them are David Eberly's WildMagic Engine , LLVM compiler infrastructure source , VTK source code base , Ogre source code base and OpenSceneGraph, to name a few.

I can understand the lingo of each of the source code base by the virtue of having worked with CAD/CAM systems , Real Time visualization , Compiler/Interpreter for DSLs , 3D rendering engines etc. I have implemented 2D rasterizers, 3D software renderers, computational geometry routines , Compilers which have gone into production code (These were solo projects )

When I started programming , It was possible for a programmer to know the crux of most of the stuff really well. I do not think that it is possible now a days.

Take the case of Wildmagic Engine source code. I do not think that a single Individual can master all of the concepts which has been translated into high quality C/C++ code. It might require 1000 man years of work to come up with such a code collection. All we have got is 50 years of productive life.
It is hard to combine 1000 man years of collaborative work and 50 man years of an Individual. The cognitive capacity of a single human is  much limited. How can he learn Good C++ Software Engineering , Multiple Compiler Scpecfics , Build systems , Advanced Calculus , Computational Geometry , Real time Rendering , Physics , Collision detection and  Polygon specifics in a thorough manner to produce such a code base ? I doubt, it is possible even for a smart person like David Eberly.
He has got intellectual capacity to understand the stuff , but to master it in the old world sense is
a sheer impossibility.

As another example , take the case of LLVM compiler infrastructure project. At least 100
bright people might have worked on it to produce such a code base. How am I supposed to understand everything that is happening over there?

Same goes with the VTK source code base as well.

A strategy to navigate such a terrain is
               
A) Learn the fundamentals like Graphics pipeline , Lexing and Parsing methods , CPU assembly language , Virtual Machines , Computational Geometry , Data Structures ( General and Domain Specific Data Structures ) , General Purpose Algorithmics including Computational Complexity,
Domain Specific Algorithms , Software Engineering and  C++ based library design etc

B) Write Toy implementations of Compilers , Graphics Rendering pipelines , SceneGraphs ,
Polygon packages and  Algoritms, to name a few,to gain the necessary vocabulary and confidence
to work with Industrial strength code base.

C) Try to improve mathematical sophistication by learning and relearning concepts from Discrete (Combinatorics , Logic etc )  and Continuous mathematics ( Calculus , Differential Geometry ),whenever we get time. Always try to understand the mathematical underpinnings of the stuff you
are dealing and have enough meta-knowledge to engage in a discussion.


D) Hack production quality code bases to understand the design , current issues , possible improvements in those projects and try to contribute stuff in a small way. At least write some
toy application programs or trivial/non-trivial extensions, to learn the stuff.

E) Try to network with the Individuals having similar interests.


The moral of the story is fool around with  stuffs and have a base from where we can dig deep issue depending on the context.

There is no possibility of Cognitive Closure. Gottfried Wilhelm Von Leibniz who lived 300 years ago might be the last person who was alleged to have  posessed that.


Compiled LLVM for Windows using Visual Studio

Three years ago when I had tried to compile LLVM ( http://llvm.org ) code base with Visual studio 2005 , It had failed. I have compiled LLVM on Fedora 10 and Debian Lenny to play with it , two years ago.

Today , after some sight seeing in Munich , I just out of curiosity , tried to install LLVM on my laptop. After three hours of searching and fiddling with the code base, I managed to compile and run simple tests to see whether installation was proper.

I also tested pre-compiled binaries of LLVM for Mingw32. When I installed Qt creator , I did get Mingw32 along with it.

I am planning to hack the LLVM source base and might port my compiler SLANGFORDOTNET ( http://slangfordotnet.codeplex.com ) to work with LLVM. In the process , I will have a C++ port of SLANGFORDOTNET along with a JIT compiler which generates X86 and X86-64 code on the fly.


Friday, October 14, 2011

Germany and Japan - a Parallel

I happen to notice a curious thing when German Programmers speak about Computer Programming between themselves. They never switch to English . I  have noticed similar pattern in Japan as well.

One plausible reason could be the fact that most of  English books gets translated into the Native language of these respective countries. So, words might have been coined to reflect the meaning .


If you see the computer programming lingo or for that matter management lingo , most of the words are borrowed from Physics. I suspect Germany and Japan has got evolved vocabulary in these areas.

I think , we need to think about Czech , Greek , Italian and French along these lines. Since I have not visited those countries , I am not in a position to comment on that.

Dennis Ritchie - How he has impacted my life ?

The demise of Dennis Ritchie , the creator of C Programming Language did not seem to get the attention which should have been due.

His book ( C Programming Language along with Brian Kernighan aka K&R ) and the language he created has helped me to earn a good living . (It has helped countless others too ! )

In the year 1993 , a guy by the name Mohammed told me that You cannot learn C yourself. In those days , If you know C , you are considered as some one at the top. People did scare me about the language by telling me that it is machine specific , not portable and unix centric etc.

The compiler which I had access was a pretty old Microsoft C ( which they co-developed with
Lattice and Lifeboat associates ) compiler. I happen to get the first edition of K&R ( incidently , Microsoft/Lattice compiler supported only old style function declaration ) book. The programs were very small and I found it difficult to comprehend. When I keyed those blindly , It seems to produce the correct output as per the textual description.

I still remember the Word count program in it. I took close to one week to understand it. I never had full time acess to a PC in those days. I purchased 2nd edition of K&R and was reading it every day. I did work with pencil and paper a lot.

Then , I got access to Turbo C 2.0 compiler where documentation was better and had a superb editior as well.

To this day , I wonder what would have happened to me as a programmer had I did not come across K&R book and the C language.

Studying C language from the K&R book was one of the best decisions I have made in my life. The Word count program , Shell sort , Quicksort , implementation of FILE using io.h , memory management , Reverse Polish notation , qsort routine , C declaration parsing are some of the memorable programs which I have come across.

Skills in C fetched me a career in Computer Programming .  I consider myself to be a malloc/calloc/realloc/free guy.

I consider C's pointer notation as one of the remarkable notational breakthrough human species had and putting one's name against it as an inventor of that is a remarkable achievement.



This is an example where some one's work can have huge impact on others.


Thursday, October 13, 2011

C++ - I'm happy when I am in Control !

In the 1990s, I have programmed mostly in C/C++ with occasional forays into Assembly Language , Clipper , Delphi and Visual Basic. The advent of Virtual machine platforms like Java and C# , coupled with arrival of scripting languages like PHP,Python and Perl diminished the importance of C++ in my life.

Every now and then , I get to work with C++ projects. I even switched to Linux , so that I can work with some C++ projects. The arrival of MAC OS X through iPhone development gave me some opportunity to work with C++ and It's cousin Objective C.

Even when working with Virtual machine platforms , I had occasion where my knowledge of C/C++ helped. To use JNI and .NET Platform Interop , requires good skill set in both.


After a long time , I am working with C++ as the solo language in my project. Personally , I prefer to work with C++ than any other programming language. You feel like , You are in Control. I'm happy when I am in Control of the things around.

Dennis Ritchie passed away

Just now , I happen to open my mail box and in the friend list , I happen to see "exit(0)" under Aashik's name. The link pointed to http://aashiks.in/blog/?p=270

C's pointer notation is one of the best discovery ( or invention ?) a human can have his name against. what more to say about him ?


Monday, October 10, 2011

A good/funny quote about the C++ language from StackOverflow

C++ is like teenage sex:
* It's on everyone's mind all the time.
* Everyone talks about it all the time.
* Everyone thinks everyone else is doing it.
* Almost no one is really doing it.
* The few who are doing it are
      o doing it poorly;
      o sure it will be better next time;
      o not practicing it safely.

Some Must read books about the C++ language

Now a days , I am seeing a trend where within the C++ programmer fraternity, there is difference in lingo while discussing the language. When I look back , I am seeing lot of possible reasons for this.

People like me (still ) prefer to see C++ as C/C++ and will use C subset of C++ , If possible. This is the same case with thousands of Linux/Unix developers. They mostly use C subset of C++ and call themselves C++ programmers.

Personally, I have forayed into Java , C# , Python for writing production code. I have seen a curious phenomena there as well. I program C in C++ , C++ in Java , Java in C# etc... That means , I use a venerable subset of the new language where my old idioms can be carried over.

In this post, I am implying "Idiomatic C++". 

That is using C++ as a
                    1) Template based Object Oriented Programming Language
                    2)  Template based Generic Programming Language
                    3)  Template based Meta Programming Language

Actually , C++ can be considered as two languages in one. It has got a turing complete static language which is based on C++ templates , template specialization and partial specialization. It has got a dynamic language which does computation during run time ( usual C++ , you know ).

So , C++ can do
                     a) Compile Time Computation (Static meta programming )
                     b) Run Time Computations ( C++ proper )

How do you bell a cat which has got awesome power ?

Fortunately , C++ community had it's own share of good authors .

Here , I am going to list some important books which every C++ programmer should read.

1) Effective C++ by Scott Myers
2) More Effective C++ by Scott Myers
3) Effective STL by Scott Myers
4) Exceptional C++ by Herb Sutter
5) More Exceptional C++ by Herb Sutter

6) Modern C++ Design by Andrei Alexandrescu

7) C++ coding Standards by Herb Sutter/Andrei Alexandrescu

8) of course , C++ Programming Language by Bjarne Stroustrup.


The above set of books will give you good grounding regarding the language. There are some more books you should read

1) Design and Evolution of C++ ( dated , still good ) by Bjarne Stroustrup
2) Inside the C++ Object Model  (How stuff gets implemented ) by Stanley Lipman
3) C++ Templates in depth by David VanderMode/Nicolas josuits
4) C++ Template MetaProgramming by David Abrahams/Alexey Gutrovy
5) Applied C++ by Philip Romanik /Amy Muntz

Another book which I would like to suggest is

Generative Programming by Krzysztof Czarnecki/Ulrich Eisenecker. (2000 AD)

It covers then nascent topics like Aspect Oriented Programming , Meta Programming in C++,
Intentional Programming , Generators , Domain engineering. All the code snippets are in C++.

Perhaps the last book on C++ design. Then , C#/Java madness engulfed the world.

There are (books on ) topics which I have not covered like
             a ) Mixed Language Programming
             b)  Windows Programming using C++
             c)   GNU Linux Programming using C++
             d)   Cross Platform Programming using C++

Sunday, October 09, 2011

RMS , Steve Jobs and i

Today morning , I happen to see a post in the ILUG ( or iLUG! )Cochin  mailing list regarding the statement made by Richard Stallman about Steve Job's early exit from the planet.

This is what RMS wrote. 

Steve Jobs06 October 2011 17:30

Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died.
As Chicago Mayor Harold Washington said of the corrupt former Mayor Daley, "I'm not glad he's dead, but I'm glad he's gone."  Nobody deserves to have to die - not Jobs, not Mr. Bill, not even people guilty of bigger evils than theirs.  But we all deserve the end of Jobs' malign influence on people's computing.
Unfortunately, that influence continues despite his absence.  We can only hope his successors, as they attempt to carry on his legacy, will be less effective.


As per the person who posted the message , when the whole world was mourning and praising Steve Jobs, Stallman is happy that Jobs is gone.

This was what I replied to the post

  It is an "awkward" reaction from RMS, as it can drive away people from FSF. Earlier ,  his "fanatic" followers
were doing the stuff and I am seeing this as another instance where leader has to echo the sentiments of his followers.

As far as I am concerned , Steve Jobs brought back MAC OS X into the mainstream and It has helped lot of people
in Kerala to make a good living through it. Now , there are close to five thousand iOS developers in Kerala alone.

Ideally , we programmers should love people like Bill (for making computing ubiquitous ) , Stall ( for paving way
for Linux to become a Industrial strength OS through GNU tools) and Jobs (for making computing a pleasant activity ) for  making 
this world better for us.

Let us look , how RMS and Steve Jobs have affected my life.

I do not own a MAC OS X machine  or a iPhone/iPad/iPod. I am not a person who is fond of gadgets or aesthetics of some machines. I am not a FSF member and I do not have anything against proprietary software companies.



a) Primary influence was through  Steve  Jobs and Wozniack build Apple GUI system. In a way , It is a precursor to Windows OS which I did bulk of my programming.

b) RMS and his Free Software Movement is responsible for making Linux a viable operating system. I have used GNU tool chain and GNU utilities to consult on Linux based projects. A Port
of GCC to windows (MingW ) has been used in at least three projects. 


c) I learned Objective C language through GCC tool chain under Linux and this gave me opportunity to work with iPhone/iPad development. 


d) I did program iPhone/iPad and MAC OS X for close to an Year to make a living. I am thankful to Steve Jobs for making such a fantastic platform.


At a personal level , I am indifferent to Steve job's death ( all good and smart people die early , I have seen it happening time and again ) or Richard Stallman's remark on Steve Jobs. I have profited from their efforts to make a difference to the world we live.




Some snaps of Munich Marathon 2011

I happen to be at Marian Platz (City center of Munich ) when Munich Marathon run was going on. Here are some snaps taken by me with my blackberry.






A Scary Escalator in the Munich Suburban Station !

Munich has got undeground train station ( U-Bahn ) and suburban railway station (S-Bahn ). Some times , we need to commute through both to reach a destination.

One particular escalator was having an angle of 60 degree and I was bit scared to take that.


Allianz Arena , Munich Marathon , Olympic center @ Munich

Yesterday (09-10-2011) , being a Sunday , I along with Yogeshwar visited Allianz Arena. I have seen this stadium in television during the 2006 soccer semi-finals between France and Portugal.

We took the U6 (U-Bahn ) lane and landed at the Frottmanig station.






After visiting the stadium , we came to the city center ( Marian Platz ) and Munich marathon was passing through the City center. During the morning , traffic was regulated and the reason became known when we saw the event.

Later , we took U3 lane to visit BMW headquaters , BMW museum and Olympic stadium .









Saturday, October 08, 2011

First Weekend in Munich

This is the first time , I am visiting Germany . Today , My colleague and I visited couple of places in Munich . First , we visited English Garden , one of the world's biggest urban public parks.

In the afternoon , we visited German museum as well.










Godel , Escher and Bach @ German Museum


"Godel , Escher and Bach " is one of the best book on symbolic manipulation (and reasoning ) which I have come across , so far. I am having Douglas Hofstadter's  "I am a strange loop " as well as "MetaMagical themas" with me. In the German museum book stall , I found lot of books on Escher paintings , Escher fifteen puzzles and even a german edition of the book , "Godel Escher and Bach ".




Dummies (Wiley ) does discriminate !

I am a big fan of dummies series of books and I am having quite a few of them in my shelf. I have not seen Indian editions of Calculus for dummies , Advanced Calculus for dummies etc.

In Germany , most of them are translated and It costs around 20 Euro per copy. I wonder when such titles will be available for me @ Kochi or @ Bangalore.



Who is Leibniz ? or What is Leibniz ?

Gottfried Wilhelm Von Leibniz is great mathematician and philosopher in the 17th and 18th century. He invented Calculus ( independently of Issac newton ) and he is father of mathematical logic as well.

In Germany , there is a biscut brand which bears his name . ( It is like Bajaj or Mahindra , Lebniz might be a clan name of sort )


Found the german edition of "What is life ?"

Erwin Schrodinger is a great physicist of the last century. He is well known for his wave equation. But , another little known fact about him is his book , "What is life ?". Some say it is responsible for most of the breakthroughs in genetics. I am having a copy of the book in my shelf. At the German Museum in Munich , I found the German edition of the book along with  Schrodinger's cat. (Katze is the german for cat )


Some Gyan from my colleague

A colleague of mine and I were discussing about technology , science and why some people are better than us in these things. I was opposed to emulating those people through brute force approach by concentrating on some limited area.

I equated brute force approach with Rape. We should seduce a subject than Rape it. I quipped.


He explained the stuff in a metaphoric way quoting from vedas.

There are three gan (pack ) in this world viz.

               a ) Asur Gan ( Daemons )
               b ) Dev  Gan ( Devas )
               c ) Manav Gan (Humans)


Manav Gan falls between Dev Gan and Asur Gan.

Asur Gan gains the stuff through brute force ( or hard work ). Dev Gan gets the stuff through seduction ( or flirting with the stuff ) .

In the case of Manavs (humans ) , they can resort to rape or seduction. It depends upon the context.

I was dumbfounded by his plausible explanation.

What is a consensus ?

We always stress for consensus while resolving any dispute.

"Consensus is a  state where both parties agrees to tolerate each other's bullshit without qualm" - Praseed Pai , circa 2011 (@ Munich , Ostbanhoff bus stand )

Friday, October 07, 2011

Eating rice - a nostalgic encounter !

Yesterday,Yogeshwar Singh  (my colleague )and I  went to a Chinese restaurant in Munich to have  lunch with some of our German colleagues. The ethnic Chinese man was taking orders in German and we ordered through our colleagues. It so  happened that the dish I ordered was rice based and there was one additional bowl with white rice.

For a person from Southern India , Rice is everything. Yogeshwar , being form north did not have the same craving.  I enjoyed the meals and ended up eating bulk of the white rice. I did tell them the importance of rice for us ( to avoid embarrassment of my affinity towards it ).

This reminds me of an event happened in 2005. One Johnson Fernandez and I were walking through the streets of Ithaca,Newyork. We spotted an Indian restaurant there. I vividly remember Johnson's smile after taking the rice (after four weeks ). I used to take a dig at him for this. Now, I became "Johnson" here.

How to gain Knowledge and Skill ?

Now a days, Specialization is the name of the game. By collaboration , people have started producing amazing things.

When you are in the midst of people who have produced great things , you might feel yourself to be lagging behind. It is quite natural that you would want to emulate some of their achievements. Then , the person in question will recklessly work hard to gain skill in the area which  he has come across and some kind of gain will be there for sure.

For the sake of argument , let us think that this person has succeeded in achieving his or her goal of emulating feats of people in the new environment. Other than , a self-satisficing nirvana, how can he have some  take away for his future endeavor ? At a personal level, I have found out that attacking new things with brute force is counter-productive and have other side effects.

IMHO,Attacking intellectual and skill "gap" issues should be done with a broad intellectual framework. It should be done in a gradual manner.

Most often ,  organizations which has produced remarkable things does consist of people with deep knowledge of the particular subject and majority of them can speak from first principles. For this , one needs to study theory behind what they practice. This takes time and for each additional hour spend on this will be really rewarding .

Some traits of these guys are
           a ) They have analytical/conceptual frame of mind
           b)  Most of them are having a broad spectrum of interest
           c)  They go deep and sideways to understand things
           d)  They have got their fundamentals right
           e)  Good meta-mathematical skills
           f)  They are focused
           g)  They learn from peers as much as they learn themselves.
           h)  They are philosophically inclined ( Philosophy of science ! )

To close the gap , one needs to attack things in  a slow and steady manner. Some of the stuff above takes years of study to be "literate".


Thursday, October 06, 2011

Who is a geek ?

"A geek is a nerd who understands what he speaks !" - I happen to come across this today at a Lunch time chat .

Wednesday, October 05, 2011

Stepped into a Bi-cycle lane and It was almost fatal.

The day I landed in Munich , I was taking a stroll through the adjacent area of my apartment. I was walking along the pedestrian way and got side stepped into the bicycle lane. I had a "altercation" ( a mild form of collison ) with a bicycle.

The stuff would have been nearly fatal. Now, I am very careful with the stuff.

"Punjabi" Fun @ Munich

Yesterday , I went to a suburb called Ostbahnof in the Munich city , along with a colleague of mine. We went there to purchase travel pass (within the city of Munich ) for the month of October.

While we were at a restaurant , there was some kind of heated argument between two Individuals in the German language. One of them , seemed to be like a person of Caucasian descent and other one seemed to be a "Desi" guy.

Suddenly , one of them passed an obscene remark about a group of girls hanging out  (and about us as well ) there in Hindi. Impulsively , I asked , "Did you speak Hindi ?"

The reply with a laughter was , "No,It is in Punjabi". It turned out be that both of them were from Lahore,Pakistan.

Reading the "Generative Programming" Book !

I got hold of a copy of the book , "Generative Programming" written by Krzystof Czarnecki and Ulrich W. Eisenecker .

It is a fantastic book , considering the fact that it was published in the year , 2000. There is good coverage of C++ template meta-programming , Aspect Oriented Programming and Domain Engineering.

Monday, October 03, 2011

Everything is fun , If you do not do it to make a living

My colleague  (Yogeshwar Singh Bisht ) and I reached this conclusion   just now watching a group of air cabin crew moving towards the flight at Bangalore Airport. He initially observed that their profession is cool one. Go around the world and make a living. It is "Mauj Masthi" all the day.

Then , in the ensuing discussion we reached a "compromise" resulting in the observation , "Everything is fun , if you do not do it to make a living ".

Saturday, October 01, 2011

Prithviraj "English" contorversy - My thoughts in Malayalam

à´ª്à´°ിà´¤്à´µിà´°ാà´œും, à´…à´¦േഹത്à´¤ിà´¨്à´±െ  à´­ാà´°്യയും , à´œോà´£്‍ à´¬്à´°ിà´Ÿ്à´Ÿാà´¸ുà´®ാà´¯ുà´³്à´³ à´…à´­ിà´®ുà´–ം  à´•ാà´£ുà´µാà´¨്‍  ഇടയാà´¯ി . à´…à´¯ാà´³ുà´Ÿെ à´µേà´±െà´¯ും à´…à´­ുà´®ുഘങ്ങള്‍ à´žാà´¨്‍ ഇതിà´¨ു à´®ുà´®്à´ª്  à´•à´£്à´Ÿിà´Ÿ്à´Ÿുà´£്à´Ÿ് . 

à´…à´¯ാà´³്‍ പരന്à´¨ à´µായനയും, à´šിà´¨്à´¤ാ à´¶à´•്à´¤ിà´¯ും ഉള്à´³ ആളാà´£്‌ à´Žà´¨്à´¨് à´Žà´¨ിà´•്à´•് മനസിà´²ാà´•്à´•ാà´¨്‍ à´¸ാà´§ിà´š്à´šിà´Ÿ്à´Ÿുà´³്ളത് . à´…à´¯ാà´³്‍ പറയുà´¨്നതിà´¨് à´…à´¤ിà´¨്à´±േà´¤ാà´¯ à´¯ുà´•്à´¤ി ഉണ്à´Ÿ് à´¤ാà´¨ും .  ( à´…à´¯ാà´³ോà´Ÿ് à´šോà´¦്യകര്à´¤ാà´µിà´¨ു "à´šോà´¦്à´¯ à´¸്à´µാതന്à´¤്à´°്à´¯ം" ഉള്ളത് à´•ൊà´£്à´Ÿാà´£് പല à´µിà´µാദങ്ങളും ഉടല്‍ à´Žà´Ÿുà´•്à´•ുà´¨്നത് )

à´…à´¯ാà´³െ à´¸ംബന്à´§ിà´šിà´Ÿിà´¤ോà´³ം ഇന്നത്à´¤െ à´¸ൂà´ª്പര്‍ à´¸്à´Ÿാà´°ുà´•à´³്‍ à´’à´°ു à´¶à´²്à´¯ം തന്à´¨െ ആന്à´¨ു. അവര്‍ à´ª്à´°ായത്à´¤െ  à´®ാà´¨ിà´•്à´•ാà´¤െ à´•ോà´³േà´œ് à´•ുà´®ാà´°à´¨്‍ à´®ാà´°്‍ ആകുà´¨്നതു നമുà´•്à´•് പലപ്à´ªോà´´ും ആരോà´š്ചകമയിà´Ÿ്à´Ÿു à´¤ോà´¨്à´¨ിà´¯ിà´Ÿ്à´Ÿിà´²്à´²േ ?. à´Žà´¨ിà´•്à´•് à´¤ീà´°്‍à´š്à´šà´¯ാà´¯ും à´¤ോà´¨്à´¨ിà´¯ിà´Ÿ്à´Ÿുà´£്à´Ÿ് .

നമ്à´®ുà´Ÿെ à´…à´¤ിà´°് à´•à´µിà´ž്à´ž à´®ാà´¤ൃà´­ാà´· à´¸്à´¨േà´¹ം നമ്à´®ുà´Ÿെ à´†ംà´—à´²േà´¯ à´­ാà´· à´•ൈà´•ാà´°്à´¯ം à´šെà´¯്à´¯ാà´¨ുളള à´•à´´ിà´µിà´¨െ à´¸ാà´°à´®ാà´¯ിà´Ÿ്à´Ÿു à´­ാà´¤ിà´š്à´šിà´Ÿ്à´Ÿു ഉണ്à´Ÿ് à´Žà´¨്à´¨് തന്à´¨െ ആണ് à´Žà´¨ിà´•്à´•് à´…à´­ിà´ª്à´°ാà´¯ം പറയാà´¨ുà´³്ളത് . à´…à´™്ങനെ à´’à´°ു à´µിà´·à´¯ം à´ª്à´°à´¸്à´¤ുà´¤ à´…à´­ിà´®ുഘതിà´²്‍ വന്à´¨ിà´Ÿ്à´Ÿുà´£്à´Ÿ് à´Žà´™്à´•ിà´²്‍ നമ്മള്‍ à´…à´¤ിà´¨െ à´—ൌരവത്à´¤ോà´Ÿെ à´•ാà´£േà´£്à´Ÿ à´µിà´·à´¯ം ആണ്.

à´’à´°ു à´¸ാà´®ൂà´¹ിà´• à´ª്രസക്à´¤ി ഉള്à´³ à´µ്യക്à´¤ി à´’à´°ു ജനതയെ തന്à´¨െ അപമാà´¨ിà´•്à´•ുà´¨്à´¨ തരത്à´¤ിà´²്‍ പറയാà´¨്‍ à´ªാà´Ÿിà´²്à´² à´Žà´¨്à´¨് à´žാà´¨ും à´µിà´¶്വസിà´•്à´•ുà´¨്à´¨ു . à´Žà´¨ിà´•്à´•് മനസ്à´¸ിà´²്‍ ആക്à´•ാà´¨്‍ à´¸ാà´§ിà´šിà´Ÿിà´¤ോà´³ം à´…à´¯ാà´³ുà´Ÿെ à´­ാà´°്à´¯ ആണ് à´…à´¤് പറഞ്à´žà´¤് à´Žà´¨്à´¨് ആണ്. à´…à´¤് തന്à´¨െ à´•ൂà´Ÿി à´•ാà´´്à´š്à´šà´¯ുà´Ÿെ à´•ാà´°à´£ം à´Žà´¨്à´¤ാà´¯ിà´°ുà´¨്à´¨ു à´Žà´¨്à´¨ à´’à´°ു à´šോà´¦്യത്à´¤ിà´¨് അവര്‍ ഉത്തരം പറയുà´®്à´ªോà´³്‍ ആണ് അവര്‍ à´…à´¤് പറഞ്à´žà´¤് .

അവര്‍ à´‡ംà´—്à´²ീà´·് à´­ാà´· à´•ൈà´•ാà´°്à´¯ം à´šെà´¯്à´¯ാà´¨്‍ à´…à´±ിà´¯ാà´µുà´¨്à´¨ à´¤െà´¨്à´¨ിà´¨്à´¤്യന്‍ à´¤ാà´°à´¤്à´¤െ à´•ുà´±ിà´š്à´š് à´¸െà´°്‍à´š്à´š്‌ à´šെà´¯്തപ്à´ªോà´³്‍ à´ª്à´°ിà´¤്à´µിà´°à´œിà´¨്à´±െ à´¨ാà´®ം വന്à´¨ു à´Žà´¨്à´¨് ആണ് പറഞ്à´žà´¤് à´Žà´¨്à´¨് ആണ് മനസിà´²ാà´•ാà´¨്‍ à´¸ാà´§ിà´š്à´šà´¤്. ( ഇത് à´žാà´¨്‍ à´¯ൌà´Ÿുà´¬ിà´²്‍  à´¨ിà´¨്à´¨ുà´³്à´³  ഹസ്à´° à´šിà´¤്à´°à´¤്à´¤ിà´¨്à´±െ  à´…à´¦ാà´°à´¤്à´¤ിà´²്‍ ആണ് പറയുà´¨്നത്. à´šിലപ്à´ªോà´³്‍ à´žാà´¨്‍ പറയുà´¨്നത് à´®ുà´´ുവന്‍ à´¶േà´°ിയവന്നമെà´¨്à´¨ിà´²്à´².
à´¤െà´±്à´±ുà´£്à´Ÿെà´™്à´•ിà´²്‍ ദയവാà´¯ി à´¤ിà´°ിà´¤ുà´µാà´¨്‍ à´…à´ªേà´•്à´·ിà´•്à´•ുà´¨്à´¨ു . )

à´žാà´¨്‍ മമ്à´®ൂà´Ÿ്à´Ÿി , à´®ോഹന്‍à´²ാà´²്‍  à´Žà´¨്à´¨ിവരുà´Ÿെ à´‡ംà´—്à´²ീà´·് à´…à´­ിà´®ുà´–ം à´•à´£്à´Ÿà´ª്à´ªോà´³്‍ à´…à´¤ിà´²്‍ à´’à´°ു à´šെà´±ിà´¯ à´¶േà´°ിà´¯ിà´²്à´²േ à´Žà´¨്à´¨ ഉല്‍à´ª്à´°േà´•്à´· à´¤ീà´°്‍à´š്à´šà´¯ാà´¯ും ഉണ്à´Ÿാà´¯ി .

à´ª്à´°ിà´¤്à´µിà´°ാà´œിà´¨ു à´²ോà´•à´µിവരം ഇല്à´² à´Žà´¨്à´¨് പറഞ്ഞവര്‍à´•് à´•ുറച്à´šു à´šിà´•ിà´¤്à´¸ à´µേണമോ à´Žà´¨്à´¨ാ à´¸ംà´¶à´¯ം à´¤ോà´¨്à´¨ാà´¤ിà´°ുà´¨്à´¨ിà´²്à´². 

ഇപ്à´ªോà´³്‍  തന്à´¨െ à´…à´²്à´²്à´³ൂ  à´…à´°്‍à´œുà´¨ുà´¨്à´±െà´¯ും  , മഹേà´·്‌ à´¬ാà´¬ുà´µിà´¨്à´±െà´¯ും à´¸ിà´¨ിà´® à´•ാà´£ാà´¨്‍ à´¨ിà´°്à´­ാà´¨്à´¤ിà´Ÿà´°à´µുà´£്à´£്‍  നമ്മള്‍à´•് à´ª്à´°ിà´¤്à´µിà´°ാà´œ് à´Žà´¨്à´¨ നടന്‍ à´’à´°ു à´…à´¨ുà´—്à´°à´¹ം തന്à´¨െ ആണ് à´Žà´¨്à´¨ാà´£് à´Žà´¨്à´±െ à´µ്യക്à´¤ിപരം ആയ à´µിà´¶്à´µാà´¸ം . 

à´žാà´¨്‍ à´Žà´¨്à´±െ à´•ുà´Ÿുംബത്à´¤െ à´ª്à´°ിà´¤്à´µിà´°ാà´œ് , ആളു à´…à´°്‍à´œുà´¨്‍ , മഹേà´·്‌ à´¬ാà´¬ു à´Žà´¨്à´¨ിവരുà´Ÿെ à´®ൂà´µിà´•്à´•ു  à´•ൊà´£്à´Ÿ് à´ªോà´•ാà´±ുà´£്à´Ÿ് . 

മലയാà´³ മനസ്à´¸ിà´¨് à´’à´°ു à´¸്വല്à´ªം à´®ാà´±്റത്à´¤ിà´¨്à´±െ ആവശ്à´¯ം ഉണ്à´Ÿ് à´Žà´¨്à´¨് ആണ് à´ˆ à´µിà´µാà´¦ം à´µിà´°à´²്‍ à´šൂà´£്à´Ÿുà´¨്നത് .

Ich bin nach Deutschland

From Tuesday  , I will be visiting Germany for the first time for a business purpose. I will be traveling to Munich form Bangalore, via Paris.

In a way , there is a  personal emotional connect  with this visit.


Television appeared (reached some penetration ) in our part of the world in the year 1986. Incidentally , that year happen to be the year of the 1986 Soccer world cup. I still remember the quarter final match  between Brazil and France ( In which France won). I also remember an excellent movie which was screened just before the match by DoorDarshan viz "Pirates of the twentieth century". This was the first match which I saw the complete game.

I could not see semi-finals, because of the timing (The world cup was in Mexico ). I did hear that France was trounced by Germany and Argentina beat Belgium for Argentine/German encounter in the final.  I had not seen any German match before that ( I have read in news paper that Germany was a previous edition finalist and I had seen ten minutes of Scottland vs Germany match in which Scotts scored the first one and Germany equalized ).

We were matching the game at a friend's home. There were close to fifteen people watching the game together. My friend's father and I were the only two supported Germany. All were in "Maradona fever". The first goal was scored by some Jos Louis Brown ( who got 1500 cup of wine for this feat or so ) and Argentina scored one more. I liked the way Schumacher (Goal keeper, I used to call him Shoemaker ) , Rummenigae ( for his blonde hair ) and Voeller, for their skills. In the second half , Germany equalized very quickly and Unfortunately , Argentina scored third goal ( Still, I consider it to be a off-side goal ) to clinch the Cup. The Next day , for being a German supporter
I had to suffer great humiliation in the school.

I forgot about Germany for a while and It was Dutch fever during the 1988 euro ( I had more consciousness about the things around, at that time ). I was in dilemma whom should I support. I liked both and finally the match was won by Dutch. This event , made me read about Germany through books and periodicals. I began to watch UGC programs in DoorDarshan which used to air programs from German TV channels ( programs of science/literature/management nature ). I came to know about people like Otto von Bismarck , Gottfriend Wilhem von Leibniz , Adolf Hitler , David Hilbert (mathematician ) , Herman von Helmotz , Munchausen (a myth ? ) etc.

Another thing was emergence of Boris Becker as a formidable tennis champ. I began to take note of German hockey team because of their skills. My "shock" was the emergence of East Germany as the second place holder ahead of US in the 1988 seoul olympics. In those days , for every Indian , Soviet Union is the most powerful force and then , America. I am hearing Germans in between them.

I became a German fan and began to support Germany in most games ( partially because, supporting Germans was easy as they used to excell in most games and other is because of admiration of their Soccer , Hockey , Tennis and Athletic skills ). The 1990 world cup was a turning point as most people in my vicinity were also convinced about German football ,because of their Victory in the world cup.

Shortly , after the world cup , German unification happened. I still remember the live pictures from DoorDarshan which used to show changes in Romania , Poland , East Germany etc. Helmut Kohl was the chancellor during that time. I was also an avid reader of Time and Newsweek magazine.The German unification prompted me to study about previous unification attempts by Bizmarck (1871) , Adolf Hitler (1933 ) etc. I learned that German Language is spoken in Austria , Switzerland , Czech repulic etc. as well.

The "obsession" for Germany subsided as I matured . Still  , I always want Germany to win in most of the Games which I watch. I have read about Munich , Hamburg , Berlin etc. in print and have seen Visuals. I might see some of these cities by being there ( I am sure about Munich !).

I might write about my visit , If I get time !.

Levels of Description about a Project

I and an erstwhile colleague  of mine were discussing about knowledge transfer regarding a project where primary architectural and implementation decisions were made by me. I was there in the project for the first six months of  it's  development.

The colleague in question has got a varied background with exposure to such technologies like Java/Spring/Struts/Groovy, .NET/C#/WCF and iPhone/Android development. He is the person to whom I transitioned the project know-how.

Since , he is also moving out (now the application is in production ) , he has to do the KT to a new guy with five years experience in .NET. The application in question contains a iPad client and .NET server infrastructure . The system uses various patterns from Gof , POSA , DDD (Eric Evans )  and POEAA (Martin Fowler ) to structure it's business logic. Moreover, It is an Ocassionally Connected Application ( OCA ) with deep synchronization issues.

From our discussion , Knowledge transfer has to happen from  different perspectives viz.
(not in the same order )

              a ) Operational perspective ( Bug fixing , tweaking app code ,module description )
              b ) Technology perspective (Technology ingredients )
              c )  Platform perspective  ( Choice of development platform , libraries , language )
              d )  Architectural/Integration perspective
              e )  Domain/Functional perspective
              f )  Data model perspective
              g )  Delivery model  perspective ( Product , Application service provider )
              h )  Configuration perspective