Tuesday, August 08, 2006

The New Virus Threat

Now that the OS is getting patched up, virus writers have a new target:- Device Drivers and Application Software (including Middleware products) The shift was bound to happen. Did not think that our vicious brothers would give up the fun part of OS screwing so easily.

Let’s try to understand what these nut cases do. But before that, we need to understand viruses. So here we go down nostalgia lane.

A virus is a small piece of software that has just two purposes

  1. Survival
  2. Replication / Proliferation

These are the generic reasons. In this way, computer viruses are very similar to their biological counterparts. Both get a free ride at others expense. (A hitchhiker, a dangerous and unwelcome one) A biological virus steals the food (protein) that the host cell makes and uses it to strengthen itself, multiply, and rupture the host, after having used him up. I call him a thankless scum.

Now you may ask me what about the damage that it does? Well, of course, from a novelistic point of view, the virus has to do something (it’s called payload), and this is where the plot begins to unfold. You see, if the virus was just to do point 1. and 2. given above, I would never come to know that a virus is lurking in the innards of my immaculate machine. But like a thief who leaves a trail behind, so does a virus. There are some smart viruses which erase these bread crumbs, still their effect shows up somewhere. For e.g: say your machine has slowed down, your keyboards acting witty etc. But always remember Rule No.1 : Don’t judge a virus by its’ effect.

Sometimes people ask me a silly question like ‘Can the virus be sitting inside the image that I downloaded from the net yesterday?’ My answer is both Yes and No. Yes, because the image file might have arrived as a executable file, and if you have hidden the extension that appears when you list the file (Windows only) then God Help. It’s a good practice to run an updated anti-virus on these pests before you try to open them up. Now think about this, can there be a virus in a notepad file or any text file? Of course not! Can there be a virus inside a word file? Sure, if you have turned on the macros. (macros are simple programming language equivalents existing for power users). Now we come to Rule No. 2 : A data file cannot have a virus.

So far so good. There is a whole bunch of different kinds of viruses called worms, Trojan horses, and other funny sounding ones that are vying to get our attention, I mean illegally. We will not worry about these, for the time being. There are variants like adware and spyware, not as harmful as the mainstream, but still pester us. The best way to prevent them is to be cautious about what goes inside and outside the machine. Install an anti-virus and the Spyware / Adware Cleaner and regularly (say once or twice a week) run a scan. People talk of stealth viruses, PDA and mobile phone viruses etc. Yes the threat exists but sooner or later they will be vanquished. You know why? Good always wins over the Bad, finally. If you think, I’m giving you a one-liner from a movie, tell me a good reason why the electron is so far away from the nucleus of an atom, whereas a proton (positive charge) is inside the nucleus so close to the neutron (the meditating monk). The tools that we use for detecting viruses may not detect some of these new breeds of viruses, but the antidote is to fireproof your machine with the best antivirus that is out there and keep it updated daily. (Why doesn’t a company, insure us for virus attacks). So here’s Rule No. 3 : Never think that you are 100% safe even if you run the latest antivirus.

But remember there is hope. Recently, I read about a honey-pot concept where we catch the viruses by deliberately making a target machine vulnerable. The virus thinks that it’s a hit, but actually it’s a bait. Let’s see if the cops can run faster than the thieves. Only time will tell …

Now about the people who write viruses. They need to measure up. See the damages that they afflict on people like us. For what? Some cruel streak or a negative belief or some other reason that we need to really understand before it’s too late. I prescribe the following for these deranged people:

  1. A trip to a shrink
  2. Spiritual cleansing.
  3. Community Service.

We could jail them, like we did some of them. But let’s forgive and forget and usher them into a future where these very people would be the cops or designers of Anti-Virus (and other anti-malware software) and would outrun the other ‘sick’ fellows lurking out there, preparing the next paralyzing strike against the human race.



Saturday, July 29, 2006

Life inside our machines

Is there life on Moon? Yes and No.
No. Because we landed there and found that it was made up of nothing but a bunch of rocks. Yes. Because it affects us directly. The gravity of moon is responsible for tides. The moon also reflects sunlight and serves as a torch in the night. On a new moon night, we have to resort to artificial lighting as the starlight is not bright enough. The moon influences the mind. This is well known. In fact in Palmistry, it is said that if your line of head dips into the mount of Luna, most probably you’ll go insane.
Now let us zoom out into the microcosm. All cells have life. Viruses and some form of borderline crystals also have life. So what is life all about? Is it a DNA strand? Some viruses don’t have DNA, just RNA. Here’s my definition: Life is that which is in motion – outside or inside. Change is life. Replication is life. Achieving something by change – knowingly or unknowingly is life. And most important – survival is life.
Our body is not live. It is the changes or the movement inside the body that is life. All cells, tissues, organs etc. are nothing but made up of constituents like water, wastes and chemicals which are inert. When matter is positioned in a certain fashion, it leads to life. We are nothing but life aggregated into a higher plane.
Hardware does not change. If you have a Pentium machine, it is the same processor or the DMA chip that is present every time you switch it on. It does not change. Inside the chip is the instruction set or like the base pairs of a DNA made up of only 4 nucleotides viz. Adenine, Guanine, Thymine and Cytocine. Note that these can be considered as four instructions in a DNA molecule.
Now comes the living part. Software. Say you are loading the OS. It will go and sit in the same portion of memory or if you expand the memory it may go and sit in another place. But if you notice there is motion. There is a distinct change. The voltage levels are fluctuating. And software turns on. This software uses say ‘x’ number of instructions. Another OS may use ‘y’ number of instructions. It’s like the difference between the code of an ant and a grasshopper. The closer they are genetically, the more the instructions inside them match. Like a 32 bit AMD and Intel Microprocessor.
If you look at instructions deep down, a ‘MUL’ or multiply is nothing but a repetitive ‘ADD’. And so we can say that there are some fundamental instructions equivalent to the DNA nucleotides, like for instance an ADD instruction, a CMP (Compare) instruction or a MOV (Move) instruction. These form the core. But wait for some more. The chips are made of gates and there are not many. The simplest is a ‘NOT’ gate, and then we have a AND and OR gates. Further to that are abstractions or aggregations. WE can go further to a level of transistors, but I think we are losing focus.
Coming back to software, an accounting software has a different set of instructions than a computer game. But they are both live when they get control. Control of what? The CPU, of course. For the moment that the instructions get executed, or whenever the current flows, life manifests. Like there are so many ants, there are so many copies of say your browser sessions (tabbed or windowed). And like the ants die, the browser dies when you close the window. In fact ‘Close’ should be called ‘Die’.
As programs have more and more layers, the programs are also evolving into aggregations like ourselves. Nowadays there are so many layers of instructions, that the uppermost layers are quite sophisticated.
Consider for a moment a Lisp interpreter running on a Unix OS on a Sun Fire machine, communicating with a Windows machine using sockets over the internet. Sounds complex. This is communication, like between two human beings or cells. An exchange of information happens and the state of the machine most likely changes. In the same way, we may get altered after every tete-a-tete, although we do not consciously know it.
Like the moon, the computer has life. It is the software existing inside it. Life has given birth to life. And the soul that created is nothing but that of a human. The creation is not perfect like an Ostrich that has wings but still cannot fly. But like evolution, we are on our way making more usable programs and then probably the Ostrich wont need a wing or probably we’ll fit artificial ones so that it can claim it’s lost glory – the flight of being a bird.

The selfish 'if'

Excel is a good ‘analytic’ tool. So are some data mining tools that help us slice and dice the information into perspectives, or should I say views.

In SQL, a view is a window towards a more appropriate representation. A view result set is not stored. In this sense, it does not have a soul, unlike a table or its attribute or its bits. If views were very important, we would have seen them without limitations. It’s like taking an addictive substance – the need is met for the time being.

The purity of an instruction is suspect the moment a ‘what-if’ condition is imposed. Let me elaborate.

We like to classify things. This categorization is a strict ‘left’ hemisphere function that is supposed to make our life easier. In fact, it is the opposite. The more we classify the more patterns we store in our brain. And hence the more prejudices we have. Now, we always tend to compare, dividing the information further and further, till it is atomic. This simply is the function of Ego, which lives in fear, of being found out; afraid, for it may be wrong. The ego is actually a stop-gap measure for variety in our skill repertoire. But sooner or later, it begins to delude itself of being in control. It thrives on three things: fear, anger and lust. And the deeper the groove the more one yearns for it. All skewed personalities have an imbalance of these attributes.

This comparison or an ‘if’ that we come across calls for extra CPU cycles. ( a comparator) Look at the only 2 different kinds of jumps.

Jump based on a decision (there are many)
Jump unconditional (there is only one)

The latter executes faster and is an indication towards a natural principle. An unconditional jump, is the greatest form of love, if I may say, like un-conditional love. You jump not without thinking, but following the nature’s way. The more we have these kind of locations where we can jump un-conditionally, the more the surety of the code. Take for e.g: the POST (Power on self test) routine. All machines jump to this reserved location without any doubt. After the basic vital signs are found ok, the OS boots.

This very ‘if’ is the cause of duality, or the primordial desire. (‘And then the one, he breathed on his own’) Darkness gave way to light, knowledge burned ignorance away.

We are used to top down classifications. For e.g:

Class Fruit {Apple, Pear} and further
Class Apple {Fiber, Iron}

Why don’t we work the other way around. i.e. bottom up.

Because, all things are complete in itself. A seed has the ‘brains’ to be a tree. And vice-versa. Nature is perfect. Contradictions are in our mind.

One very good approach in KM is to start with a data-mart (department) and then progress into refinements, till such time that a probabilistic definition of completion is arrived at. In nature there is no meaning. We have to associate it.

Look around us. In the universe, the element that you will find mostly is hydrogen, which keeps combining with others (within the stars or some nebulae) to give rise to heavier atoms. The process is nuclear fusion. Why is fission not in vogue?

In the same way, I find Web Services to be the most apt phenomenon for our needs (inter-operability) than a half baked ERP (integration), in today’s context.

Organic – that’s the smart way.



Monday, July 24, 2006

Occult Sciences

Recently, one of my acquaintances told me that astrology is all cock and bull. Ditto with other occult sciences like Numerology and Palmistry. Now let me shed some light on these subjects, as I have been an ardent student of these subjects for some budding years of my life.

The premise behind all these sciences is to be forewarned or notified in advance the events that are most likely to happen in the future. Although a window to the past and present is also available through analysis, the fact remains that people are more concerned about the future. A metaphor would help: If it’s raining you can’t make the rain stop, but you can definitely carry an umbrella, if you were to know that it would rain.

It’s like Microsoft publishing a security bulletin letting us know that there are vulnerabilities that a hacker can spot and compromise the system. Watch out for those patches !!!

If you study the underlying theme among these subjects, you would find that they are all based on planetary influences. The obvious question that comes to anyone’s mind is how come the planets which are nothing but solids or gas balls affect us on our planet?

Once again the answer lies in mythology. According to this (Greek and Hindu), all the planets have rulers. These planet rulers are demi-gods. They cannot be perceived on a physical level. They are mind born. It’s like a program which uses library calls or API’s. You know they are there, although they are not fully visible in your program.

Know that mathematics which unites all these languages is God given. Why do I say that? Well, for the same reason that we believe in gravity. And more recently technology. Mathematics lies at the core of all the sciences and a field like Astrology is heavily dependent on the planetary positions at any point of time. Think about this: You know that the more the mass of an object, the more it attracts. In the same way, planets in conjunction (on one side our planet) pull together more than if they were say 90 degrees apart. Supplementary positions are called oppositions where they pull against each other. I think we can envisage this clearly. Numerlolgy is again math-driven. Ranging from the Kabalah (Jewish Branch) to the modernist versions, all depend on an ample supply of number combinations. You may be wondering, how does Palmistry fit into these state of affairs? Well for one thing , the lengths of lines, the distance between them are all numbers.

Enough about math, here’s the deal. Believing in these forces, makes us humble, to know that we are not always in control. Although free will has been given to us, we can only exercise the same up to a certain extent. It’s like Open Source. Seems great, but there is no sense of ownership. As we map the heavens to as microscopic detail as possible, possibly one day we would run our stock markets based on heavenly clocks. Automated deals (although there is no such thing as a ‘sure’ thing) accumulating funds in Cayman Islands or some other financial get-away’s without interfering in the operations. Would make Warren Buffet feel like ‘This should have been there earlier …’.

Final Call: Google Ad sense is great, but will it make you money. Know where to look, right !!!



Mystic Numbers

Numbers have been the greatest discovery since mankind found fire. The reason is simple. Numbers don't just allow us to manage. They have profound implications.They depict our genetic dispositions. (or the karmic debt)

The original number 'zero' is the fundamental principle or 'silence' akin to 'A' of the English alphabet. This is bliss. (Isaih : 'Be still and know that Iam God')

The act of creation as stated in the Book of Genesis is : 'And God said let there be light. And there was light' This was the first number '1'. In Hindu mythology the birth of 'Brahma' or the Sun Principle (proverbially speaking). We regard Brahma or the Sun as the father of all creations.

A unary number by itself can get very lonely. Hence, there was a need for a companion. This is akin to the biblical creation of woman from the man. Or the number '2'. This is the moon principle. Note that we always refer to the Moon as mother.

The number '3' was born out of the wedlock. This is ruled by Jupiter. It denotes idealism and self-sacrifice at its best.

And thus got created all the numbers till 9. After this, all numbers add up to a number between 1 and 9. Now excluding zero we have nine numbers. There are nine planets in the solar system. There are nine orifices in the body of a man. This last number ('9') ruled by Mars stands for unlimited energy of the ego that leads to destruction. It is said that the spate of wars that the Earth has witnessed have always been when Mars was in proximity to the Earth.(in conjunction).

The numbers all have a ruler assigned to them. For instance the number '6' is ruled by Venus, the godess of love and beauty. She has the power to contain the debilitating effects of Mars.

Special mention needs to be made of number '7' ruled by Neptune, the lord of the Seas. This also denotes the positIve side of Lord Indra. People whose birth number adds up to seven are a priveleged class. They have a higher chance of spiritual realization than others. Why this preferential category ? Well, the reason is the same as why Blood Group 'O' people are called universal donors.

The cosmic cycle of births and rebirths are dictated by Newtons First Law (Every action has a equal and opposite reaction). In stock market parlance, it's like issuing preference shares. The odds are : Only it happens to 1 out of 9 people.

Did you ever wonder why there are seven notes in music ? Or the fact that light also consists of seven colors. ? This is too much of a co-incidence.

John Gray in his book 'Men are from Mars and Women are from Venus' forgot to see the implications of this , numeroligically speaking. If this were true then Men ruled by '9' and Women ruled by '6' in any situation, would lead to the victory of the woman. (Add 9 + 6 = 15 = 1 + 5 = 6) This indeed is true. Because love ('6') will always prevail over ego('9'). We refer to Earth or Gaia as mother, the most beautiful creation that the world has seen. And her beauty lies in the fact that she loves our principled Father just for the reason that he is truth personified, the light that shines in every eyes and is the source of abundant strength.

Folklore says that after death our soul passes to the Moon first, if qualified, passes on to the Sun, and finally gets merged with the Super Soul. Also there is mention of the fact that if we die during the KrishnaPaksh (waning period of the moon) rebirth is guaranteed.
Ditto during the 6 months that the Sun travels south.

May he guide us all towards salvation !!!



A rose is a rose by any other name

What's in a name ?

A rose is a rose by any other name.

But still we consider rose different from say a lotus? We know that both belong to the phyla flowers, but the properties of both vary to an extent. And it is in these that we sense a distinction. An aberration. A classification which helps us remember that a rose was meant to be a rose. If for a moment, we remove the curtain and see this phenomenon as a flower, or better yet a plant, or still better, 'life' we have contemplated the real meaning.

In programming parlance, Variables have a name, functions have a name. There is a name for place where you store names. It's called memory. Names are also available for data structures like stack. This is still farther from the truth. And then comes the individual components of the program strung together in a formation called a program. And we name this program say Portfolio Tracker. And what does it consist of - an avalanche of still further names. We have names and namespaces with still more names. So many so that we could run right into the definition by using some simple semantic constructs.

In fact our liking for names is so much that we cannot live without referring to a name. A name evokes certain kind of emotions or feelings, if I may, in the tenets of our subconscious. Although, there is one thing about names - they can mean different things to different people. A rose may win you a date, or it may be a heart breaker. But one thing is for sure, we react to names. Names sound a little tricky (considering global references) but then I guess we have substitutes. Take for instance marijuana. Do we know that it's chemical name is metamphetamine; the scientific name is cannabis sativa, (the plant's extract); street names include grass, ganja, thai sticks, smoke etc.

Even the great mantras that are so promulgated in the Vedas are nothing but chants of a name. Imagine if we had no name, how would we ever refer to 'God' probably by a pictogram, or maybe a movement like a cricle - a simple one I presume, or something else, which would appeal the same to all people on this beautiful planet.

Then it will not matter whether you call your God 'Allah' or 'Krishna' or 'Wakan-Tanka'(Red Indian name for God)

Nothing to kill or die for
And no religion too
(John Lennon, Imagine)



Walk with the master

How time changes everything. It heals a wound. It also introduces complexity in the midst of simplicity.

Going back to our days of yore, when we used to program on CP/M or MS-DOS, the system was small and so were their processors (8/16 bit). When Windows came into the picture, the whole place started looking like a tavern full of fake beer bottles. I mean Windows used to run on top of DOS. OS/2 was a better technical proposition. (but it lacked a DOS box) If you trace the lineage of Windows, it actually did something real (or should I say protected) starting from Windows 98 / XP.

To open a window and manage the various contraptions within it, we had to write many many lines of code.

Just to create a window, we used to write 30-40 lines of code using the Windows SDK (From the Bible at that time a.k.a Charles Petzold) All the mouse movements and scroll bars had to be taken care of explicitly.

In a language like VC#, this is taken care of automatically. All you have to do is write 2 lines of code.

And the abstractions get better and better. In 30-40 lines we can write an entire file viewer/saver - with menu controls packed in, for free.

Is the code getting simpler? Yes and No.

Yes, because it saves time by code reusability and process abstractions.
No, because we have a choice of an exhaustive class library collection. Who is going to remember what all and now that Web Services have also jumped into this band-wagon.

A lot of the plumbing details are handled by .NET internally, as a result of which, the programmer does not have to worry about the hidden details. The days of masochistic coding are over. At-least, it seems to be with the Windows battalion. Those who feel the need to be pervasive in all aspects of ‘deep down’ programming, Linux would be a better bet.

I say this despite hacks being prevalent in Windows world. Remember, only a select few less than 1% of this community know core Assembler and/or ‘C’. The rest are bogus script kiddies.

Hence the paradigm: Complexity in the midst of simplicity (Dukh ke andar sukh ki jyoti, dukh hi sukh ka gyan)

If you ask me, has my thirst for understanding those intricacies faded out, I would be a liar, to say a no. Somewhere deep down, I do feel the urge to be in charge of my machine and assure myself the complacence of the bygone days which have passed like a breeze.

Here’s s Zen Poem, that I could reflect. This one is from Richard Stallman’s excerpts.

To follow the path:
look to the master,
Follow the master,
walk with the master,
see through the master,
become the master.