Saturday, February 26, 2011

Why Plagiarism Hurts?

I recently attended a so called "online programming contest" of one of the premier institutions in the state (not mentioning the name to not stir any arguments over it - I tweeted it here and here though). I have been attending this contest since the past 3 years and was highly disappointed about this year's event.

The reason is, as the title suggests, it was nothing but a blatant ramp of plagiarism. There were totally 8 questions to be solved out of which 4 questions were mere "copy-paste" jobs from spoj. Such events need not be perfect, but when you conduct an event of such stature you are atleast expected to make sure that google doesn’t give an exact match for the questions you give. As i mentioned in the tweet, the other 4 questions were very poorly worded and more or less dumb. Anyways, i am not going to ramble about the contest in this post. But it got me thinking, plagiarism can really hurt. It can hurt both the ends of users badly.

First things first, what is plagiarism? Sounding like a fancy GRE word, it has a simple meaning: Copying someone else’s content without their consent. I know spoj doesn’t mind if their questions are being copied, but it should either be altered so that it doesn’t look like the original question or (even and) spoj should have been properly cited.

When someone writes something on the internet these days, it has become like they have lost complete ownership over it. Plagiarism is a very big problem these days. It exists on all levels. Starting from a simple online programming contest to industry definers like Microsoft. Google even launched an algorithm change to their core search engine algorithm this week that ranks plagiarised pages lower than pages with original content.

My point is, when you plagiarise something without consent and citations, its not just a matter of two keystrokes in your computer. You hurt people’s feelings. And you will never understand those feelings unless you start writing something on your own and someone else copies and pastes it without your consent. It takes very little effort to cite the original source of any content you use, but that gesture will make your users respect you more than they did before.

There are even licensing policies that helps you prevent plagiarism and at the same time lets you use others content (one such license is Creative Commons License).Always place appropriate citations. If an author is writing content on the internet, then he’d sure respond to you via email/twitter if you want to use pieces from his article. Be gentle and place the credit to the work where the credit actually belongs to rather than stealing it. You will definitely be insulted when the plagiarism is spotted. So why not place credit and not screw up your reputation? You may have loads of original content. But even a small piece of plagiarised content is capable of bringing you under the spotlight (the recent Ankit Fadia scam for example - Fadia may have saved a war or billions of rupees for the indian government, but now he’s been registered in my mind as the guy who copied a book in the name of authoring it).

To sum up things, The world has evolved, Internet has become commonplace but what will always remain is the human values that we possess. If you copy content without consent, you are violating the human values that morally governs the internet.

Take a stand, Say no to plagiarism, Innovate the planet together!

-Vignesh

Friday, February 4, 2011

IPv4 is dead!

IPv4 is dead.

What this means is that, no more IPv4 addresses are remaining to be alotted to systems that will be connected to the internet. This marks the end of the protocol that has been running the internet since 1981. This is similar to how IRCTC recently moved to a 5 digit train number, as there have been too many trains to be numbered with 4 digits and the existing conventions (2 prefix for superfast and such). So IRCTC moved to a 5 digit train numbers (mostly adding 1 prefix in front of all major trains).

The same story holds on when they say "IPv4 has been exhausted". All the computers in the internet are uniquely identified by so-called IP Addresses (Internet Protocol addresses). When you want to communicate with other systems on the internet, you make use of IP Addresses to accomplish that. Now that the internet has had too many systems, the IPv4 scheme of numbering is no more sufficient. IPv4 used 32-bit addresses (yeah computers talk in bits). So, a typical IPv4 address would look something like 208.43.209.220 (with each number between the dots represented as an 8 bit integer).

Ok, now what? How do new systems get added to the internet if there are no more addresses left? In comes one of the major changes that is going to be incorporated into the internet in the near future, IPv6. It might sound as simple as adding a 1 prefix like IRCTC did. But it runs the entire internet, so its a bit more complicated than that. Of course IPv6 addresses are longer than the v4 counterparts in that they consist of 128-bits (an example of an IPv6 address is fe03:ff34:ab34:1235:2932:6bdf:22af:23aa). As you can see, these are hexadecimal represented numbers. Each part consists of 4 hexadecimal digits amounting to 16 bits and there are 8 such parts, totalling to 128 bits.

IPv6 is not just IPv4 where you have longer addresses. Since this is going to be a major change that requires modifications in working of almost all the devices connected to the internet, the developers of IPv6 decided to do try and clean up all the drawbacks that were incurred by IPv4 (mandation of IpSec, elimination of need for NAT to name a few). Things would be much simpler if IPv6 had just been interoperable with IPv4. Unfortunately, it is not so and hence the transition phase is not going to be very easy.

However, there have been software level solutions to make it look as if IPv6 is interoperable with IPv4. Yeah, you guessed it right, Tunneling! Imagine you have a shipping company that allows only red colored boxes to be shipped. What will you do if you need to ship a blue color box? Simple isn't it? Just wrap the blue colored box into another red colored box and ship it and make sure that the recipient throws away the red box when he receives it. This is called tunneling. Our shipping company is nothing but the backbone network of the internet (majority of which consists of IPv4 only devices), red box is analogous to IPv4 and the blue box is analogous to IPv6. So the internet is going to rely on tunnelling for majority of its functioning until IPv6 gets well established among the devices in the internet.

So, lets all take a second to thank IPv4 that has been making our lives easier for almost the past three decades. Also, major software giants are joining hands to celebrate World IPv6 Day on June 8, 2011.

P.S.: I conclude with the hope that the IPv4 to IPv6 transition among Indian ISP's will not be as un-smooth and scandal-driven as the 2G to 3G transition.

P.P.S.: This post was drafted during my college lab hour and posted using lynx. :-)

-Vignesh

You'll never walk alone!

Whenever i was in a distress or my mind was away from being normal, there's been one song that would always revive me whilst running on a continuous loop. I always loved each and every word of the lyric and it amazes me how a bunch of words can change your whole mindset to a very great extent.

I just felt like sharing the lyrics of the song. Try listening to it and it may help you too like it did to me.

When you walk through a storm,
Hold your head up high..
And don't be afraid of the dark..

At the end of the storm,
Is a golden sky..
And the sweet silver song of the lark..

Walk on through the wind,
Walk on through the rain,
Though your dreams be tossed and blown..

Walk on walk on with hope in your heart,
And you'll never walk alone..
You'll never walk alone..

You'll never walk alone..
You'll never walk alone..



-Vignesh

Monday, January 10, 2011

InstaShare - Facebook Extension for Google Chrome! :-)

InstaShare - Share everything you find interesting on the web as and when you browse to your Facebook profile! The web you surf daily is now just a single click away from your facebook profile!

This is a mature version of yet another script that i have been using personally so far.

Features include:

  • Post status updates through an always-present browser icon

  • Share any image in the pages you visit in a single click

  • Share any link in the pages you visit in a single click

  • Share any piece of text in the pages you visit in a single click



Download You can download the extension from here: http://www.foamsnet.com/instashare

Screenshots
Sharing Images





Sharing Links





Sharing Selected Text





Posting Status Update




You are sure to find a lot of bugs. Feel free to contact me at vig...@gmail.com (Please click to view the full address) for any bug reports or suggestions!

-Vignesh

Sunday, January 9, 2011

Why you should tweet?

I am one among the many millions out there who belong to the social era. The world is socializing much more than it ever did before. If facebook were a country, it’d be third largest in terms of population. Facebook (and even the damned orkut) is really famous in India. Twitter is a similar service with even a simpler goal, share all you can in 140 words.

I have found many teenagers (especially college goers) not use Twitter. It is not really surprising considering twitter doesn’t have many entertaining’y things like photo tagging, liking every damn comment, etc. Twitter is the best example for “simplicity”. The inception of twitter has rendered many bloggers lazy to even blog regularly, as they start tweeting more about things rather than writing lengthy blogs.

In this post, i want to publish my opinions on why teenagers should tweet or atleast use twitter.

Source of Information
Twitter is really a great source of information. Let it be technical information or some interesting news from/about your favorite celebrity, the first place where you can find it is twitter. If some hot news is being flashed in the tv channels worldwide, then you bet its definitely trending on twitter. You really get an instant, unbiased view of many people all around the world on any topic. This kind of rapid fire spread of a news is more common in twitter than in facebook because of twitter’s short and sharp nature.

Social Media is a fancy term used these days to indicate the facebook, twitter and co. Not only social media provides entertainment and helps you kill your time in the form of facebook, it also gives your brain some real value additions in the form of 140 characters.

Enterntainment
Many teenagers (atleast my friends) have the opinion that twitter is for geeks. Whenever i hear someone say this, i go WTH. Twitter is definitely much more than a source of useful information. You have entertaining discussion going on between not just your friends, but also with many other people with whom you might have just dreamt of before. (For example, i have got one or two replies from my favorite singer Chimayi).

Short lifetime of tweets
You post a status update in facebook, and it definitely lies around in your homepage (in the form of notifications, etc.) for a minimum of one day (mostly more than that). Whereas lifetime of a tweet is much shorter than that. Your tweet will remain in your followers’ home page for hardly a few minutes. So all the communication and sharing remains up to date and instant. This point could be argued either ways as both advantageous and disadvantageous. But in facebook, after some 50 odd notifications over a period of week, i’d regret why i liked a status in the first place.

I am not coming to say that facebook is bad. Facebook has its own use case. The status messages in facebook are meant to be lingering around one’s homepage for a longer period of time. Hence twitter should be the real tool that shall be used to post real time updates, where people can comment on it instantly too. Also, tweets come up in what is called Google Realtime Search results.

Internet is huge and a few years back Google revolutionized it by organizing the information available in the internet. That was purely an algorithmic approach, whereas today, twitter is trying to generate and organize information based on one’s personal context, supplemented by algorithms. So, join twitter today and i promise i’ll follow you :-P

You can follow me in twitter here.

-Vignesh

Sunday, December 19, 2010

Improved IRCTC Ticket Booking - Google Chrome Extension

*Note: This extension does not work anymore and I have stopped updating it. Please do not contact regards to this*

AutoIRCTC! - A Google Chrome extension that helps in speeding up the IRCTC ticket booking process.

Scripting has always interested me and being a reasonably active member of the internet community, i always tried to customize the road of web i travel to my likes and needs. This is one such script that i thought will be helpful if shared. So i have added minimal features to the script i have been using personally for quite a while now. It has really helped me speed up the ticket booking process.

Features include:
  • Automatic Login
  • Swap from and to stations in a single click
  • See all the trains availability in a single screen
  • Pre-fill the passenger details


Download: You can download the extension from here!

Instructions and Screenshots
  • Accept the warning and click on continue

  • Click on Install

  • After the installation is complete, You will see a confirmation like this:

  • Also, you can view AutoIRCTC in the list of extensions in chrome://extensions
  • Now, when you visit www.irctc.co.in, you will see a small icon next to the bookmark star. Clicking on that icon will give you a pop up where you can configure your settings. If you leave the login credentials empty, then auto login will be disabled. Click on "Save Settings" after you have entered your details.
  • Now, when you reload your page, you will be automatically logged into IRCTC. And instantly, you will be able to notice the "Swap from and to" option under "Plan my travel". This button helps you to swap the from and to cities without making an unnecessary server request.
  • Enter your travel city and date. Now you will be able to see the availability of all trains matching your criteria in a single screen. Also, the page has been cleaned up to now show First class AC and First class (if you are making a first class booking, then disable the extension and go ahead as usual). The default class to check availability for can be changed by clicking the page icon near the bookmark star.
  • Now, in the passenger details form, you can see that it has been pre-filled with your data thereby avoiding your need to type your details every time (Note that pre-filling senior citizen is not supported in this version).
  • The quick book form too will be pre-filled with your data.
  • After these steps, proceed as usual for payment options and complete your ticket booking.


Disclaimer
The purpose of this extension is to increase the ticket booking experience of a common man and it no way intended to be commercial. Using this extension does not guarantee your ticket booking. Its just a minor enhancement to the ugly IRCTC user-interface.

Footnotes
I am still a beginner to the world of Google Chrome extensions. So you are sure to find a lot of bugs. In case of any feedbacks/issues, please write to me at vig...@gmail.com (please click to view the full address).

-Vignesh

Tuesday, December 14, 2010

Why Computer Science should not be taught with Python!

Every Computer Science student begins his academic travel with the first stop being C. It is really a good language to begin with and it helps the student to grasp the fundamentals of how a computer program works. And (atleast in India) most of the Computer Science courses just revolve around C/C++ almost the entire of the curriculum. All the laboratory classes usually mandates the student to develop programs in C/C++ or Java in some cases.

Any student who has worked for a reasonable amount of time with a language like Python or Ruby will be against this system. He will be frustrated in writing tens of lines of C code when the same can be accomplished in very few lines in Python. I have a strong opinion that this should not be the case and undergraduate courses should insist on students using C/C++ as their primary language on the academic curriculum side.

C is a programming language that requires very verbose form of writing programs which will be highly helpful in learning and understanding the underlying concept thoroughly. Consider an example of quick sort. It is a single line of code in Python. But what does the student really understand out of that single line? Whereas when you write the same thing in C, it really forces you to understand the algorithm line-by-line, thereby making the student more knowledgeable about the actual working of the algorithm rather than just getting the thing done. Getting things done is top priority in an industry. But when it comes to academia, learning the underlying working is more important than getting things done.

Another good example would be writing a simple socket program. In python its a maximum of ten lines. Whereas in C you work very closely (almost with actual system calls) and hence you thoroughly understand the whole process of how a socket connection works.

More the abstraction, better the survival. This definitely holds good, but not when you are undertaking a course to become a computer engineer. Abstraction is good once you have completed the learning process. But when you are in the learning process, less abstraction is more helpful in making a student better.

-Vignesh