Wednesday, February 27, 2008

So your computer doesn't work or crawls

This is sometimes the most common complaint of someone who shelled out a good amount of money for a computer. The problem lies in the fact that configuring a computer is as much a science as an art, and even experienced computer scientists may (and mostly :D ) get it wrong, or not the best possible one for the amount of money you've paid. One of the big reasons I want to write this post is the deluge of poorly configured and doomed-to-fail configurations I see being sold in India.

Now the interesting part, computers aren't that compilcated, it's just that the people who design and develop things like to show they're doing something, and some are mathematicians (shock,horror). Now I have nothing against mathematicians, but most of them have this obsession for things called "correctness" and "completeness", which is what causes a lot of your problems. This tends to create complicated terms for simple things, which in well, obfuscated english, is called obfuscation, or simply unnecessary complication. Want examples? try googling some of the common acronyms your hear. But it's not like computer scientists are mad to complicate things, some of these definitions carry extra meaning than what their english meanings imply.

So lets get back to what I meant in the title. The most common problem is computers running slow. And I don't mean running slow later in its life, I mean slow to start with. I'm writing this on a computer with a 1.6Ghz processor with 256MB of ~200Mhz RAM, which (to anyone who knows anything about hardware) is a joke. The bigger joke is that the computer is an IBM Thinkpad. Now the standard Windows XP installation after bootup requires around 380MB of memory. So why are global corporations selling computers which will run excruciatingly slowly? If you haven't realised by now, the excess 120MB or so will be swapped in and out of disk, which is about a 100 times slower than memory. And, the even more wonderous, Windows Vista uses about 750MB at the first boot onwards. So how big does that leave your 1GB (or 1024MB) of RAM? not too big eh? Add to this, even your run-of-the-mill internet browser uses around 20MB of memory. To do what you might ask, well only the programmers know. But even this is after endless rounds of optimization, so it's not as bad.

I was introduced to computers on a 8086 which ran at something around 1Mhz, and the first computer I owned was a 386 (at a lightning fast 20MHz), with 4MB RAM and 80MB of disk. I've seen Windows grow from it's very first avataars to the behemoth it is today. I concede, it is still the easiest to use even today, amidst the onslaught of Linux, even I prefer it to Linux. It's again become pretty stable (Windows 3.1 never crashed in my lifetime :D) but it's still too big. So the best you can do, is get sufficient amounts of RAM(memory). Processors have become fast enough that lower megahertz don't hurt as much as lower MB of memory. Keep an eye out for 1 biggest number that's never advertised, cache. Most current processors have 2MB (of L2 cache, I might add for purists sake, ignore if you're a layman), and Celeron's have less of it. Even 1 MB less of this hits, and hits hard. Why? Your processor is like this guzzler, and memory and cache are the carts that get stuff to it from your disk, that larger they are, the more chunks you get to the processor, as simple as that. The guzzler has grown faster than the carts, and only very few people in the world can write programs for very few problems that keep the guzzler occupied at all times. In your usual computer, your processor does useful work for very little time, i.e. uses a small percentage of its thinking power, like we use our heads, only about 10% (it's true).

And if computers scare you, don't be, they've been designed by idiots like me and you, and just confidently use your common sense. In all the time I've experimented, I've never lost any data of worth, which you won't if you do your homework, and don't delete or format things mindlessly. So the next time you see a cryptic error, try googling it rather than call tech support, don't understand the terms? google them as well. You'll find that the answers you find will be better than what techsupp will give you. Any normal person can fix most of their problems if they just pay a little attention and devote a little time, and think what they would do if they designed something like this.

Friday, February 8, 2008

The things that ail the education system

Any Indian would be familiar with the pivotal exams of one's academic life, the boards, entrance exams, and seemingly to a lot of the press, DU entrance exams. Bear in mind, that I'm from the north so forgive me if I focus on the region's torture chambers. Students go through hell to try and succeed at these tests, and they tend to become the focus of one's life for long periods of time. I have myself gone through some of these trials by fire, and emerged, on the surface unscathed and relatively successful. And I believe, this gives me an authority to comment on these milestone in academic life. I'm personally not a fan of these tests, because, contrary to what u might believe, these tests are not always the best indicators of 'intelligence' and are not designed by hallowed individuals who can do no wrong. Actually, once you get to the higher echelons, u realise that these tests are simply a reflection of what the people at the top of academia, feel, is necessary to succeed at a something. And the execution of their best laid plans are never something to be proud of. Which is why I feel there's something wrong, because these exams tend to stratify all test takers into atleast 2 categories, our lauded winners, and the forgotten losers, and so it's essential to ensure that everything right, cause u're scarring a child for life here.

Just the other day, I was reading in the papers, an article about cracking the boards, quoting last year's topper, a girl who'd scored somewhere around 97%(that's crazy marks man!). She told her formula for success was mugging up the entire NCERT books word to word, and vomiting them on the paper. Now, in computer science, this phenomenon is called a linear file traversal, i.e. u store stuff in a file (like a web page) and simply get the section that matches the stuff u're looking for, and outputting everything around it. That's a simple picture of how search engines work. Hmmm, so our tests reward being a computerized search engine, so where's the test of excellence and intelligence? It would seem our educators are turning a generation into mugging machines. But saying so would be sacriledge, anyone would agree to that.

Turning to entrance exams, I gave the engineering ones. It's quite well known that IIT's are the most reliable way to increase the quantum of ur first paycheck, which is what drives the 'best' minds there(forgive the sarcasm). problem is, that's how most students perceive it as an option. 14 years of training about the importance of mugging, doesn't quite develop a great love for any subject. Coupled with the livelihood issue, this compells the students to choose by money. And after 4 years, they choose money again, in this case, the best paying jobs, who's title has recently been taken over by investment banks, where astronomical amounts are promised to the top performers. Now this, expectedly irks the faculty, as their efforts in teaching are seemingly pointless, if u're gonna leave the field anyways. And the answer to the question of how to encourage the children to stick on, still eludes all. The problem is, the government expects IIT's to feed the growing IT industry with new computer science graduates. Problem is, the industry does little to improve it's image to fresh graduates. The pay is meagre, the job description is quite dismal, there's none of the intellectually challenging work u'd expect. Instead, the people they expect are coders, quite simply, they don't quite need ur analytical ability. That's like a frill, but that's not what they're shopping for. Which is why they lobby for 'vocational' training, aka make them coders. Ministers, then push faculty to make children go to these companies. This, interestingly, has resulted in a practice in a few IITs that some of you might find shocking, others quite right. It is to restrict the internships(and even jobs in some cases) to indian locations only, that too in companies. Now people expect that this would encourage the students to join these companies. But, if u're read Freakonomics, u'll appreciate this. After these measures, I saw even less people going to the IT sector in India. People going abroad for further studies also decreased, because now students don't have the recommendations of people from abroad, and no research project experience.

Interesting hmm? things at the premier institutes are not as hallowed as one would imagine. but the source of the problem lies at the roots, not here. The problem is, while earning a livelihood is an issue, people will choose money over everything else. Another problem is that, most people don't know anything about the branches of engineering u offer, how in hell do u expect children to choose then??!! or even have a semblance of interest, when choices are made purely on the basis of rank. so getting into textile imprints that stamp of being in a not so good branch. That obviously will hinder any further development.

More importantly, our system places quite too much importance on mugging and pure hard work. Not that it's bad, but the crux of engineering is to develop new solutions, you remember einstein and newton, because they gave solutions that no one else saw, solutions so simple, yet powerful. which is why, i feel, creativity is also essential for being successful, and even at a younger age, students must be encouraged to think creatively. because making someone mug up 21 points about Raja Ram Mohan Roy's contribution to society will not enthuse him to the actual impact of his work, showing him the impact will. because eventually, Roy will mean 21 points to him, not his work. I do understand this is hard work, but that doesn't mean it's impossible to fix. People usually counter with, why don't u do something to fix it, but understand this, I can show you a mirror, I'm not a plastic surgeon.

Sunday, February 3, 2008

The Gaussian paradox (?)

As computer science students, something that we encounter very often is the gaussian curve a.k.a. the normal distribution. The bell shaped curve fits the behaviour of most large scale phenomenon, including human behaviour, among other things. It says that out of some observations of something (anything measurable), most will near the average value, while only some will differ by a large amount. Laymen know this as the herd mentality, if we talk about people. The more interesting part is, that there is a small percentage will be far away from the mean, equal percentages towards the left and right ends of the scale. The paradox that I talk about, comes into being when you try to apply this to human intelligence. Now, what intelligence means is slightly controversial, but i'll stick to the usually accepted paradigm. What I intend to look at is people who we call 'geniuses' and 'luminaries' as compared to others who are deemed 'psychotic' and 'anti-social'. This is where the gaussian curve gets interesting. The simple fact is, the curve doesn't differentiate between + and - around the mean, it only cares about the magnitude of this deviation. It is we who assign the + and the -. This takes an interesting connotation to this question of accepted intelligence and socially acceptable behaviour. It is society that assigns the tag of good or bad. Keep this in mind that the currently acceptable norms of good or bad won't remain the same over time. A few hundred years ago, black slavery was acceptable to most white people, before the world wars, even Hitler wasn't considered evil. Even nowadays, every goverment doesn't call all dictators evil, even the torchbearers of democracy tend not to criticize certain absolutist regimes, while reserving their contempt for others. Which brings us back to our gaussian curve. As I said, it simply measures the magnitude of deviation, not the nature of the deviation. Problem is, that deviation can be of many types, and some are more visible than others. Over time, we have assigned different worth to different deviations, and even at any time, the measure is different for different people. Killing people is accepted for soldiers, whilst not for other people. Not that I support people killing each other, but the fact is that we overlook certain things based on certain justifications. A generalist decision on all such factors is impossible, and so pointless.

What I'm essentially trying to imply is that look at differences with a fair eye, without the views society puts on you. You never know how society might change tomorrow.