Monday, June 21, 2010

10 constructive ways to spend time on internet

Internet has infested our life to an unseparable extent. Most of the people feel they waste their precious time on the internet on social networks(read Facebook). For all such people I'm suggesting some constructive ways to INVEST(not spend or waste :P) their time. Constructive in the sense that these actions will lead to your personality/knowledge/IQ/skills growth. :)
1. Yahoo! Answers
Man, what a wonderful platform they've created for knowledge sharing!! You can ask questions and provide answers. The questions are available in myriads of categories, from Arts to Sciences, from Humanity to Relationships, from Cooking to Religions etcetera etcetera... In fact, any question you can think off can be put to a suitable category. Especially for students they have Science and Mathematics, Computers & Internet, Arts and several other fields. So you're stuck at an assignment or homework? Just ask! Or, you think you are one among the intellectual force of your country? Then answer others' questions according to your interest in relevant categories. This not only improves your knowledge but also gives self satisfaction as well as entertainment. When someone rates your answer as the best answer, you feel proud :) Click here to visit Yahoo! Answers. You need a Yahoo! ID to access Yahoo! Answers.
2. Are you a programmer?
Well yeah, if you are and you think you are one of those rare programmers with all the fundamental concepts of programming then a perfect place for you is stackoverflow.com. The site doesn't require registration. You just need an account with any OpenID provider. A GMail account is perfect :) Once you get in, you can answer questions from fellow programmers/students all over the world from all kinds of languages. As you answer perfect replies, your reputation increases and you earn badges. Its such a fun!!! Click here to check it out.
3. Read blogs
Blogging is a boon to the Web 2.0! People got a way to express themselves, with a true freedom of expression. You can just go to Google blog search and find blogs of your interest. You may also search good blogs from popular blog directories like TechnoRati, BlogCatalog, BlogHub and BestBlogs. If you are a technology lover here are some must read blogs:
http://lifehacker.com
http://gigaom.com
http://mashable.com
http://techcrunch.com
4. Research
Did you get stuck at something some day and left midway? Then start researching on the topic using the web and complete your venture! It happens sometimes with all of us. We start doing something and due to a problem encountered midway we are unable to accomplish the task and leave it incomplete. For me, not finishing an in-progress work is sin!!! So, I just use te web, search for solutions and finish the work.
5. Contribute to an OpenSource project
So you are that self-proclaimed great programmer? Go and give a chance for your skills to come outta your brain! You can contribute to any open sopurce project for the betterment of mankind at sites like Google Code or SourceForge
6. Edit a WikiPedia article
WikiPedia makes our life easier. Any thing new pops up, we just get to its WikiPedia page and find extremely high quality information on the topic. But who makes this possible? Yeah, we the users. WikiPedia is driven by the community of people who add and edit articles on it. If you have a flare for writing good quality, precise and clear english then start or edit an article on WikiPedia. For this you need to create an account with them. The account creation link can be found at top right corner of their main page.
7. Start a blog
If you already have a blog then skip this paragraph. Most people think they can't write and thats why they don't start blogs. Everyone can write!!! If you've an year or more experience of using internet then chances are pretty high that you can endup writing good quality original content on your blog. Choose any particular motto of your blog and start. Once you start, you will have several ideas for posts that you can create. Just don't be lazy, thats the only condition. Try this at least once! For blogging, Blogger, Wordpress and Posterous are awesome and free platforms. Just give it a try and jump into the blogging arena!
8. Translate facebook into your language
Facebook has a pretty good translation application through which you can easily translate it into your language. The users themselves can translate and help facebook be available in their language. I actively translated it in Hindi for a few weeks but currently due to being away from broadband access, I'm on a halt and resume it once I get hold of fast internet access. The translation application can be accessed at http://www.facebook.com/translations/ For inputting text in Hindi you can use Google Transliterate where you can write phonetic spelling of a non-english word in english and it will display the word in your language for you! Or even fast is the desktop application for transliteration which can be downloaded from http://www.google.com/ime/transliteration/ through which you can directly input in your language by typing its phonetic spelling in English. Go, give it a try!
9. How about some entertainment?
Entertainment energizes the mind. So, isn't it a catalyst for being constructive? Go and read failblog.org You won't be able to stop your laughter!
10. Be nostalgic
So, everything failed? Be nostalgic! How? Go to your GMail inbox and start reading the mails from the last page!!!! This really works(provided you have a fairly old account). Or you may also start reading last page of your orkut scrapbook or facebook wall.

Thursday, June 10, 2010

Wind powered cellphone charger

While travelling with Indian Railways, sometimes especially during long journeys I experience my phone's battery falling short of electron flow. Although in AC boggies they provide charging points near every berth but not everyone always travels in AC boggies. In sleeper boggies, in most trains they do provide 4 charging points in every boggy but they aren't enough and occupied most of the time by rogues who keep listening to music in full volume with their phones' speakers while charging, hence not letting others charge their phones.
One such situation at hand, and the inquisitive me started thinking of something cool that would work perfectly. I stood at the gate of my boggy feeling the wind at 100KM/hr(that was train's direction in east, so wind's velocity for me was 100KM/hr in the west) with my palm, and then came the EUREKA moment!!!! A smile spread throughout my face. Yeah, I had got the idea! Why not someone build a portable wind powered mobile charger?
How will it work? There can be a wheel with blades which will rotate fast when wind strikes it. The wheel and axle machanism should be connected to a dynamo, a small one used in bicycles for lighting. A 12V/3W will work perfectly. Now the passenger can take his/her hands out of the window or may even stand at the exit gate holding the whole thing in his/her hand. When wind falls on the wheel, it rotates, in turn rotating the dynamo axle which produces an alternating current. Using a rectifier it can be converted to DC. A capacitor with appropriate specifications can be used to smoothen the waveforms produced by the rectifier. This output can be fed to a IC7805 which stabilises the voltage at 5V DC which is required by most mobile phones for charging. Take this output, connect it to a multi-model pin connector which can be used to charge any brand's phone. Now pack this whole makeup in a cool looking case, label it and sell it!!!! Done! Earn loads of money.
It will be very helpful for the travellers who can very practically stay online during long journeys keeping their cellphones charged :)

Sunday, June 6, 2010

IIIT-Allahabad M.Tech selection process

With this article, I'll acquaint the reader with the full interview process of IIIT-Allahabad M.Tech Course in Software Engineering, linking with my own experience of my selection.

If you are just preparing for GATE, you should solve more and more questions. And for that I would recommend GKP Publisher's Question Bank. Although there are some mistakes in the book for solutions to some problems, but I recommend this book solely for the huge collection of problems it has.

After an initial shortlisting based on GATE scores, names of 148 students were posted on their site who were called for the Written Test + Coding Test to be held on 1st of June and Interview of qualified students on 2nd. I received my admit card 7 days before the test. Kudos to Bharatiya Daak for their crappy service, a friend of me had received 15 days ago.

I reached Allahabad on 31st May night, and stayed at a relative's residence. On 1st June I reached IIIT-A campus at around 8:30. The auto-fare from station is just Rs.5 so don't think that being in the outskirts of the city it is very far as mentioned in Admit Card that the fare would be Rs.70-100. I guess, it is around 7-8 kilometers from railway station.
I was greeted by the guards, who were very co-operative. I was directed towards the boys hostel. I entered the mess. To my surprise, it was completely Air Conditioned and very well maintained and clean. I drank some water and cooled myself, as the North Indian heat had struck me on the way hard! Yes, at 8:30AM it was very hot in Allahabad! I believe, the temperature was 42+ at that time! In the mess itself I met my net friend Shailesh Sharma who too was shortlisted and had arrived for the admission process. We had got introduced to each other through this blog itself through my post GATE-2010 Solutions. I got introduced to his friend Vipin and we were now a group of three! At 9:30 we headed out towards the academic campus. Our written test started at 10.
The paper consisted of 100 objective questions to be solved in three hours. There were tricky questions from C, followed by Java, some very easy questions from data structures, some easy ones from SQL, and then from software engineering. Overall, the paper was deviating 80% from the provided syllabus. In first 20 minutes, C questions had trapped me and I had solved only 10 of them. Later I changed my gear and by the end of 50 minutes, I had marked all 100 questions. There was no negative marking so there was no fear of wrong answers. Marking the answers on the answer sheet took me another 40 minutes because of bigger bubbles and use of ball point pen for filling the bubbles. The question paper lacked quality standards. There were inconsistent questions, and weird ones too. Some seemed to have wrong options too. Anyways, we finished. I believe, I must have got around 70 questions right. We headed out for lunch.

At 2PM we went for the coding test. The lab had computers running Windows and Linux(Ubuntu 9.04). Student was free to choose his/her environment. I chose windows thinking that they may put me on vi editor if I chose Linux and as I am not much comfortable with vi, as well as touch typing. I saw that there was no CUI, but a GUI environment had been provided on Linux systems so I switched to a Linux system thinking about the added advantage of synatx highlighting of gedit. Windows people had option to use Turbo C++, or Microsoft Visual C++ or Dev C++. Linux users had good old GCC.
All the computers were on LAN and we had to open a URL in our browsers where Online Judge software was running. The software was coded in PHP. We had to upload the source file after coding. The compilation and evaluation on random inputs was to be done by the software itself. If the software was satisfied with our code it would give us points. But there was a catch. The way of giving input was pre-specified and exactly the program was required to receive input that way only. And the required output too was given in a pre-specified manner. This was because the code was run by a script, not a human being. Being dumb, a script can't accept anything deviating even slightly from the specified standards.

There were three questions in the paper. First was of 20 marks. Second one of 35 and third one of 45 marks. The time alotted was 3 hours. The questions were easy but I felt that I'll have problems in designing the input module because the language to be used were C or C++. I thought, if I were allowed to use PHP, I would churn out these questions within 5 minutes each. explode() function in PHP would easily let me process the input, the way I wanted. But I had to work with C and there was no explode. I was unable to take the input in required form and put it into a data structure for further processing and output. I coded the processing and output modules for 1st and 3rd questions but couldn't code the input module. Then I attacked the 2nd question and cracked it easily. I was sweating heavily in the Air Conditioned lab. As soon as my 2nd question's answer was accepted by the script I took a sigh of relief.

I checked the time and 2 and half hours had passed already. I checked the current results. This facility was provided by the Online Judge software. We could see which student had submitted correct answers. There was one girl at rank 1 who had solved 2 questions i.e. 1 and 3. She had 65 points. I was at rank 2 with 35 marks because 2nd question was worth 35 marks. There were 15 students behind me, each with 20 marks, who had solved the first question. Out of the rest, noone else could solve any program!!!
I re-attacked the 3rd question to process the input anyhow. I cursed myself for forgetting the strtok() function's syntax which would easily let me solve the 1st and 3rd questions. Strtok() works a bit similar to the explode() function in PHP. I thought I should code my own explode() function in C and I started off for the same. I reached very near but the time was up, by then! I checked current rankings. I was still at rank 2, behind that girl.
The authorities announced that those whose programs were running manually but were not accepted by the Online Judge software could get their programs verified by invigilators and get some marks. Many students who were not in Online Judge's ranking list raised their hands and were getting their programs verified. Some claimed that they have solved all three but none was accepted by online judge. I thought in my mind, even if they get more marks and I get rejected I'm still a better programmer than them because my program followed the standard defined in the problem. Anyways, the process ended after sometime. We were advised to wait for an hour for the declaration of result. We roamed through the college. At around 7PM the result was declared. Out of 148 appeared, 56 were shortlisted for the interview to be carried out next day. I was there in the list!

Shailesh and Vipin too were there. We bid good night and parted away happily thinking about the next day.
On 2nd day, we reached for the judgement day! Everyone was in formals. We were made to sit in the auditorium from where we were called for the interview one by one based on the roll number. My roll no. was 142 so I was relaxed that my interview will take time. First Vipin was called, being early in the sequence, followed by Shailesh. Finally my turn came. My interview went very pathetic. When I was asked 'tell me about yourself', I mentioned about IndiFun. Then I was asked 5 questions from the theory of social networking each going well above my head.
Then I was caught by another interviewer who was a guest lecturer from IIT Khargapur. He asked me my favourite subject. I said - databases! He asked me to define functional dependency. I spoke: an attribute B is said to be functionally dependent on an attribute A if for each unique value of A there exists a unique value in B. Then he asked, what is the mathematical term for that. Within a fraction of second I recalled about functions and two obvious answers came to my mind - one one, and one one onto. I was also frustrated due to the early 5 questions that had gone beyond me. I spoke one one onto and felt that I've made a blunder!!! He asked, where did you read this? I said Elmasri and Navathe. Then after a pause of a second, I continued, I read about functional dependencies in Elmasri and Navathe but not the fact that this is one one onto function. Then he asked, considering functional dependency define 3NF. I got confused over 3NF and BCNF. I started speaking about BCNF then stopped, beg pardon and said a table is in 3NF if it is in 2NF and every non-key attribute is non-transitively dependent on all the candidate keys. He said go.
I went out thinking about those 5 questions that hit me in a row. I thought I don't need to see the result, as I won't be selected. But a hope kept me on. The result was declared at 7. Out of 56, there were 15 selected in General category! My name was there at 9th position in the alphabetically sorted list!

I had a sigh of relief! Finally I got into an India level institution. Shailesh and Vipin too made into the 15 lucky people list. I believe the final result was made up based on GATE score, written test score, coding test score and interview, where interview had a lesser weightage. If it had higher weightage, I would have definitely been ousted!
Our classes are going to start from July 9th. That was my experience with IIIT-A selection process :) Will keep you posted with the further developments in my life/career.

For Indian Railways

This is to draw the kind attention of competent authorities in Indian Railways.
I, on behalf of student community, and as a proud and aware citizen of India, want to draw the attention of proper and competent authorities towards the fraud and corruption looming large in IRCTC catered service which is leading to the plight of passengers, especially those travelling in Sleeper Class. I'm also incorporating some suggestions, which if implemented will result in better customer satisfaction.

1. Water: As far as I know, it was made mandatory that IRCTC would sell only Rail Neer branded mineral water bottles in the train. May be I'm wrong about this fact, I've experienced personally that the water/drink vendors are selling all brand waters except Rail Neer. I ask for Rail Neer and they say, it's not available, take Bailey or IceLing or Yes. I won't mind if the quality of water is good for the same price of Rs.12. But, the striking thing I saw that those small kids, powered by a racket of anti-social people, who collect thrown water bottles from railway track on stations, fill water from anywhere they like, get it sealed and pass to the IRCTC approved vendors. The vendors as well as the racket involved in this share half of the revenues. What the customer is getting? Unhygienic water in unhygienic bottles paying Rs.12. The mistake is from customer side also. As mentioned on the bottles please DO CRUSH THE BOTTLE AFTER USE IF YOU AREN"T CARRYING IT HOME. This is for your own good dear common man!

2. Tatkal Seva: Your tatkal reservation scheme is completely wtf!!! The first and foremost thing is that, at 8AM IST irctc.co.in stops responding so internet reservation is next to impossible for the stupid common man. What I see is 503 SERVICE UNAVAILABLE. Now, you railway guys would say that you can get the reservation on the station. Ok, I agree. But see what happens. When I reach the station at 7:00 AM and stand in the queue, I see at least 20 people ahead of me. I repeated the same experiment next day at 6:00AM. Then too I had at least 15 people ahead of me. So, I thought let me be a good citizen and wait for my turn. Finally I reached to the front of the queue at about 8:10 and the teller told me the status is W/L 60. What the -? A man roaming like a pig in the vicinity came to me and offered the ticket for Rs.1200. I identified him and was surprised that he was in the queue when I had reached there at 6AM. I refused and headed towards exit without getting a ticket. During the next 20 meters of walking I was offered ticket for prices ranging from Rs.900 to Rs.1200. And they were all those who were in the queue at 6AM. To sum up, there is a racket which keeps its agents at stations from time varying between 4AM and 6AM to be in the queue for tatakal tickets for most sought for destinations. How can you control this blackmarketing?? Can't you get your IRCTC server right, so that people may get tatkal e-tickets? And then it will be very difficult to black e-tickets because the traveller has to present his/her ID card with name matching with the name on the e-ticket and reservation chart. This step will put a check on those ticket blackmarketer rackets. All the crap in your tatkal seva is especially frustrating students and other people who get to travel urgently very often.

3. Recently you've introduced the fares in front of each train in the list of trains that come up when anyone queries for Availability of seats(in case you don't know station codes) on indianrailways.gov.in. One suggestion from me, can't you show the availability as well along with the fair? If you can't, then freaking upgrade your servers and start doing right away you public money looters!!!

4. On indianrail.gov.in, any action I perform, even clicking a text box to put the cursor into it, results into opening up of an ad from admagnet.com. Have you designed the site for public convenience or public harassment??? You earn from our ticket fares and you the greedy lot want to earn more and more by giving us inconvenience in the form of those nasty popups??? And who the freaking fool gave you WebRatna-2009 award for public service? 'sab ek hee thaili ke chatte batte hain'. Cut this crap in good faith right away!!!

5. This is for Mrs. Mamta Banerjee, honourable Rail Minister. Lalu uncle did only one good reform during his tenure, and that was putting up a middle berth between side upper and side lower berths in sleeper class. It was itching you at the back, and you got all those removed saying that this causes inconvenience to passengers. Have you ever travelled in sleeper class? The people in the waiting list travel by sleeping in front of lavatory doors and in the space between the entry gates of every boggy. Thats not inconvenience according to you. Right? And sleeping on the side middle berth is inconvenience according to you. Very good IQ you have ma'm! Salutes to you! If there had been this, side middle berth thingy, per boggy 8 passengers and per train more than 100 waitlisted passengers would get a confirmed berth to sleep in the night, instead of laying their bedsheets below water basin between the two gates in every boggy.

6. This mobile charging point thing, at the gates of every boggy in sleeper class has become a menace. Rogues only charge their mobiles. They start the travel with their mobile's batteries discharged thinking 'Bhartiya rail hamari sampatti hai'. This is total inconvenience to the needy passengers who don't want to talk to those rogues. Can't you get those charging points in every compartment, just like they are in AC boggies?

7. This one is for Amul. Have you guys ever thought that why Pepsi/Coke/Thumsup/Sprite sell 100 times more than your lassi, in trains even though your lassi is tastier and nourisher than those MNC carbonated water? Give a thought! Lower your prices. You are selling them at Rs.20 for 200ml. They sell for Rs.10 for 200ml. Can't you lower your prices? Don't say that it won't be affordable for you. Nandini lassi in Karnataka is available for Rs.5 for 200ml. Instead of trying to earn more by higher margins per unit, you should keep lower margins and sell more units instead. This will give you better returns. I hate those cola companies who are drawing Indian water and selling to Indians for high prices.

I'll keep coming up with more whenever I feel like finding something new with Railways.