Monday, July 17, 2006

Blog ban in India!!

Do you remember your childhood?.. when people used to tell you what to do and what not to do.. You always thought that once you grew up, you wouldn't have to take orders from anyone. After growing up, you realize that you have to take orders from your boss... no matter how high you are, there is always someone higher than you. The mind wants to break free and wants to lead its own life. To stiffle this outrageous mind we have societies, we have government and we have rules. Their sole purpose is to stop the civilization from decaying. They are like the fence on the periphery of a steep cliff. The trouble arises when people start living by the fence, leaning on it and believing that fence is their nirvana.

This is what the current world we are living in is like. People are so scared of their government, yet so dependent on it, it's pathetic. It's like hiring a chef and then believing that you will die of hunger without the chef.

The reason of my rant is the current ban on blogs in India.
The preamble of Indian Constitution reads
We, the people of India, having solemnly resolved to constitute India into a Sovereign, Socialist, Secular, Democratic Republic and to secure to all its citizens:
Justice, social, economic and political; Liberty of thought, expression, belief, faith and worship;
Equality of status and of opportunity; and to promote among them all.
Fraternity assuring the dignity of the individual and the unity and integrity of the Nation; in our constituent assembly this twenty-sixth of November, 1949, do hereby adopt, enact and give to ourselves this Constitution.
India has joined the "blog-blocking" group of China, Pakistan and Saudi-Arabia. The article was a frontpage article on digg.com today. BoingBoing reported this article today and provides ways to get around it. In a nutshell, the action was taken because the DoT believed that the terrorists were using blogs to communicate. I am surprised they did not ban telephone, cellular services, postal services, television and radio. I guess the Indian government finds porn sites to be more educative and more helpful to the society than blogs as it decided to ban blogs instead of porn site. By banning blogs, Indian government is not just blocking some websites but nipping the very form of expression, expression of beliefs,faith and liberty. So much for being the biggest democracy in the world. Many people are claiming that this is just a 48 hour operation and not a complete ban. I hope so too....


Tags:,

Saturday, July 08, 2006

10 deadly sins a C++ n00b commits...

I am a passive user of a lot of news groups and communities. I rarely reply and seldom do I ask questions, but I keep an eye open. In case I have a better answer to a question I do jump in, but that is rare.

Of all the groups/communities I'm a member of, C++ groups seems to have the maximum number of flame wars. The reason: People think that the code their compiler compiles is great. Lately I have found myself clenching my teeth and counting till ten after reading a post. Here is my compilation of 10 great sins you can commit while coding in C++ and posting related queries in C++ groups.

  1. Use #include < iostream.h > instead of #include < iostream > : People are not aware of the fact that iostream.h does not provide you with the namespace goodness. They completely trash the warnings generated by any modern compiler. The standards were introduced in 1998...its 2006 people, GET A BRAIN.
  2. Use the old Turbo C++ compiler: Almost all the Indians (I don't know of other people) are taught programming on this compiler. This was just a toy compiler...meant to be a toy compiler. It does not complies with the standards and introduces its own header like conio.h which were never a part of standard C++. There are plenty of free C++ compilers on any imaginable platform. E.g g++, Visual C++ Express, dev C++ etc.
  3. Asking stupid questions like "What will be the output of printf("%d%d%d",++i,i++,++i)" : It obviously depends on the way the parameters will be pushed onto the function stack. The output will be different on different machines. It is really irritating when they ask the same question again and again and are stubborn about an answer just because their compiler gave them that output.
  4. Posting job vacancies: I don't know which part of the sentence "C++ users group" they don't understand.
  5. Posting links: More often than not you will see postings like "Hey check out this cool link" or "awesome video"... I would punch their faces if I could.
  6. BGI graphics: This library was developed for MS-DOS ... I don't know why on earth do universities in India still make students do project on it. Another Turbo C++ induced crap.
  7. int86(): Hail Yashwant Kanetkar for this. Without doubt it was one of the best book for introductory C, but its outdated. Modern operating systems DO NOT provide direct access to the hardware (which was not the case with Win98 and MSDOS).. It might be a good learning tool but thats that. No body uses it professionally. Beginners are all excited about controlling the hardware... turning the keyboard lights, tuning the beeper.. all of us know about that silly function as much as you do so don't expect any help... do expect flames. Also C queries on a C++ group!!!
  8. System( ): this function is like the fail safe. Windows people do system("PAUSE")... new linux programmers do system("clear"). Maybe your executable looks pretty, but its not portable and makes you code less elegant.
  9. Using abusive words: Well this is acceptable sometimes but I have seen queries like... " I have a @#$%%% program which uses some @#$$ library and the damned thing crawls" also some replies like " Who the @#2! you think you are?"... come on guys this is a @#$%$ C++ user group.
  10. n00b questions: E.g "What is a class?", "Who wrote C++?".... Google it out buddy. We are not your tutors.



Tags:,

Sunday, July 02, 2006

Another thing to keep me busy..


My life... atleast for the past 5 years seems to be wired with the computer. The first thing I do in the morning is boot my PC and check my mail. Then I check my blogroll (which is really huge.. check out the link on your left). By the time I finish going through all the entries, I become aware of my stale breath and hunger...after freshening up, I dig down to the links and scrap out pieces of useless trivia. Sometimes I ask myself as to how did man survive without computers?... what did he do? If you are reading this blog, then chances are you don't know the answer to that question either. The only topic I can discuss with non-computer people is movies.

To do something besides meddling with computers, I got myself a tin whistle. Now this was not a random foray into the music world. I had learnt tabla for two years and I have vague recollection of learning carnatic music and hindustani music. I like music but don't listen to it often because it stops the number crunching part of my brain (well melodious music does... hard rock and heavy metal turns it on).

To cut the long story short, I have been learning tin whistle (or pennywhistle). I can play few Irish folk tunes. But I must say, its really easy in comparison to other instruments I have tried. It has a really sad sounding melody attached to it that I have grown to appreciate... or maybe its just the notes I am playing.

PS: On a totally unrelated note I got 3.83 GPA this sem. last sem it was 3.4 :( ... so my cumulative GPA is pumped up to 3.667... yay

Thursday, June 15, 2006

The One...

The past few decades saw exponential increase in the usage of computers. This was made possible by two geniuses (evil if you prefer...), Bill Gates and Steve Jobs. If the world was left to the academic world and nothing was done for a profit motive then all the smart people would be writing smart papers and devising smart products, but without the likes of Gates or Jobs widespread adoption of such products is next to impossible. It is due to them that we know and use the "mouse". It is because of them that we have our own personal computers... They were the forerunners of a totally new generation. I would say that they marked the end of industrial age and the starting of an information era because the other computer giants like IBM functioned much like industrial powerhouses.

Gates will be retiring in a few years and market is full with the rumors about Jobs' retirement. You would say that Microsoft and Apple have enough money to sustain themselves... well they do have money but they wont be able to sustain themselves. Apple had to rehire Steve Jobs to make a market standing. The CEO of Pixar was rehired by Disney to stop the plunging stock prices. Even though these firms are outrageously big, it takes only one man to run the show. 96% of the computers have Mac or Windows on them, i.e 2 out of 6 billion people in the world govern how millions of people worldwide use their computers.

With the retirement of these two people I see the death of two powerhouses, I see the opportunity to capture 96% of the market. Of course this will happen in a period of 10-15 years. The powerhouses will collapse, there will be a momentary period of lull and then a new market leader will emerge with a totally new product which will revolutionize the way we live. Considering the explosive growth in the hardware sector, I am thinking that the product will be far beyond anything we can comprehend now. It wont be google,and it wont be yahoo. I don't think that it would be Linux either... something with a totally new cybernetic interface.


This is the time to throw your sleeping bags and think something radically different. We have been given a "once in a lifetime" opportunity. We can make millions doing what we are doing but if we grab that 96% of the market, we would be billionaires and have our names in history books, probably have a Discovery channel episode on us. Lets see who'll be "The One"



Tags:

Thursday, June 08, 2006

Google Calendar on your phone? Cost analysis

As I had mentioned earlier, I got a Nokia 6682. Its more of a computer to me than a cell phone. I have spend sleepless nights getting accustomed with the set... believe me if you are a geek/power user, this phone is definitely for you.

Coming to the point directly, I am a heavy calendar user... particularly after the much awaited release of google calendar, all my machines run gcal directly or have clients sychronized with gcal. So with the release of GCalcSync, I was enthusiastic about getting the google calendar to work with the smartphone. Now there were two issues:
  1. I do not have wifi... well wifi phones are too clunky to carry around.
  2. I don't have data access enabled on my cell phone... am still a student and every single buck counts.... call me scrooge if you want to.
I couldn't do much about the first issue but I was ready to spend max $2/month on any application that could synchronize my cell phone calendar with gcal. The cheapest data access plan provided by Cingular (my carrier) is $5 for 5MB/month. This was out of question. Next I called the customer care rep and asked about the pay per use scheme and was informed that 1 penny/kb had to be paid. I could actually get away by paying less (as gcalcSync would be my only web app... i think :P) . All i needed now was a way to know the amount of data that would be downloaded.
I downloaded this simulator from one of the nokia forums. Just installed it on my system, started it and was presented with a mobile like UI. Then it was pretty easy to pull the jar files directly from web using the phone simulator's browser. Looks something like this:

Now I had to check the amount of data it would download in 1 synch cycle. I did not find any statistic collector on the simulator..ethreal came to rescue again. I started ethreal without any filters as I din know what to filter out or what to would the packets look like.
Next I started GcalSync, which nicely downloaded entries from gcal and updated the calendar on the simulator:


There is an obvious bug in gCalSync as it gives same the timing to all the entries...(spending even a penny on a buggy software is out of question... but what the heck, lets see what would have happened if it was not buggy).

Stopped the ethereal capture and checked out the expert info (click to enlarge):


As you can see in the figure that entries #52 and #57 is where we GET the data. If you look around, you would find that the whole transaction took place between entries #49 and #73 where the connection was established and disconnected respectively. Now we know that the transaction happened at port 3343 using TCP.... great!!!. I just plugged in the filter "tcp.port == 3343" and and got all the captured packets during the transaction.

Next I opened the statistics window which gave me the following info:


Only 5 entries were updated on the calendar (probably it gets stuff for only the next day each day) and according to the above figure the amount of bytes captured was 35989=35.14 kb. If it is synchronized everyday then I would download 1089.51 kb/month =$10.9/month ... to only synchronize my calendar with gcal!! I don't think so....
US telephony should learn something from TRAI and Indian telephony about cost effectiveness.


Tags: