Thursday, March 24, 2011

My programming history

The following is an autobiography of events relating to my programming knowledge. My programming adventure started at the age of 14 with VB and has transformed into a way of life at the age of 21 with c, python and ruby.

"VB was so cool":
When I started my first year of engineering, I already had a growing list of half-completed Visual Basic projects(about 15 odd experiments). VB was in my school syllabus and I picked up an interest in programming because of the ease with which magic can be created in few mouse clicks. Sadly I lost a few projects when my harddrive failed(I had no idea what the word opensource meant at that time).

"TurboC was a good IDE":
It was only near the end of first year I got into c(turboc to be accurate) programming. I didn't know, when I started, that TurboC and C programmming are different things. I remember solving my first c puzzle in under 5 minutes, swapping two variables without using a third variable. Data structures lab and System software lab helped me learn TurboC and its debugger. I used to create my own versions of college given programs and have version controlled few of them.

"Java was a real programming language":
I spent most of my second year loving the beautiful object-oriented world of Java. I remember modeling chess game elements in Java and re-using some of the code to solve N-Queen's problem. I learnt c#.NET through NIIT despite my recently found love towards Open-source world of Ubuntu. I started believing that Java is more powerful than c(I regret it now).

"I am a proud pythonista":
I met yuvipanda in my third year and it is amazing how much I have changed since then. It was almost the same time when the icell was formed. Since my college's website was awful I decided to take it up as an icell project. When I asked yuvi for the way forward, he suggested me to use django. Thus I became aquainted with python and since I am comfortable at learning through examples, I forked the busroutes.in code and started looking at the code. I used BRI to develop most of my web development skills. I contributed to BRI by implementing A* routing, little changes in UI, fixing bugs and server maintenance stuff.
Yuvipanda encouraged me to attend the unconferences happening too often in Chennai. Attending the unconferences brought me more contacts than I had saved all my school days. Our friendship grew steadily and I got busier and busier doing more "off-academic learning".

"Ruby on Rails 3 is a nice pet":
After having an year of django experience, I wanted to learn RoR way of doing things. I joined a startup as an intern and learnt rails programming by developing an in-house project. I should remind myself to continue with rails 3 in the near future.


"I have great respect for gcc":
I regret that I should've started with gcc instead of turboc. The difference dawned on me when I started building source of software in Ubuntu. Using Ubuntu was a learning experience every day. I was exploring TORCS and Flightgear when I realised that the final year projects need to be decided very soon. I proposed to improve TORCS by implementing machine learning. The funny thing was TORCS source code is in C++, the language which I never tried learning. Having completed the project's stated objectives early, I helped one of my classmate with his project(PCICV) redone in C using ffmpeg library and a GTK+ frontend. This drill, though ate through my busy schedule, gave me opportunity to learn GNUMake and other gcc friendly programming practises.

PS: Motivation for this post is two-fold. First is that it has been long since I updated my blog and felt I should register the memories before the harddisk becomes full. Another reason to do it today is that I am going to apply for GSoC this time and need to keep an updated version of my programming history to share with my would-be mentors.

Monday, April 12, 2010

Beware, the "Imperius curse"

          Today, I learnt something. And, it was a bitter experience too.. I used to think rationally. And, so the story happened a few weeks back when my class had to choose electives for the VII semester and I had to get the collective opinion.
          I conducted an elaborate poll taking a piece of paper and noting down the choices for all 63(including myself) people, by putting a neutral cap on my head in efforts to make it an unbiased poll. After a week, this process was complete and I arrived at a list of papers that gained the maximum number of votes.
          At numero uno was the "Total Quality Management" which was a theory oriented paper and which my friends considered an easier paper to clear(I personally dislike what-you-call a theory paper).
          At number two was "Cryptography & Network Security", which imparts *basic* knowledge of encryption and decryption.
          And then the confusion. At numbers three and four are "TCP/IP Design and Implementation" and "C# and .NET framework" out of which we needed to select one. As I'm quite comfortable with Programming, I preferred C# to TCP/IP(which is again, an easy-to-clear paper). Those who chose C# were my fellow cse students who found a momentum to learn a language than to study theory. And, the interesting thing was that, the choice between TCP/IP and C#.NET was almost disjoint. So, it occurred to me that we needed to split the batch into two, one half studying theory to clear the paper, the other half studying C#.NET and get more software knowledge.
          I spoke with the HOD today, who resisted initially, but agreed to split the batch after finding the statistics. I was asked to get the signatures of all students under the batch they want to be in. My fellow Class Representative, who is not so amiable person when it comes to a disagreement, wanted "Information Security"(which was 5th favourite in the poll conducted weeks before) because one staff has mentioned(not directly to her but through students) it as a Easy-to-clear paper and a theory paper.
          So she took off TCP/IP and replaced it with "Information Security" in the choices. After a little conversation("you want to clear the paper or what?") and advice, almost all the students went with choosing Information Security. I ended up in the side that included just 4 others like me. The whole idea of separate batches was dropped. In the end, I felt like I just lost a chess match.
          Why did I feel so? Did I really lose something, I cannot find. But I learnt something valuable:
  • I learnt that people's decisions can be influenced pretty much easily. If I knew this before, I could've saved a week's time by not conducting all this poll.
  • I learnt that representing for people who can change their decisions in two weeks time can land you up in writing a sad blog post.

Monday, March 1, 2010

A Day at Infosys

Here i am, with an overdose of pleasant memories I acquired today. Today, I and my team participated in State Level Finals of "Aspirations 2020" conducted by Infosys at Infosys DC, Mahindra City. To begin with, we were to report at Infosys at 8:30AM but were late and so were panicking. Mr. Buhari welcomed us and directed us to finish the breakfast. The breakfast was really good, not to mention the hot coffee. After that, we went to Building-2 where the contest(whoa, that's the prime thing) was to take place.
The friedmann hall had some 60 systems and a black white board. Again, the hospitality was awesome(Mr.Buhari supplied water bottles to every participant). The three hours contest was challenging in terms of both time and complexity. I wish I memorized the backtracking algorithm.
After the contest, we went back to the third floor of B3 for Lunch. I and my fellows were late again(we spent more time admiring the lawn, building, lift, etc...) and the result the dining hall was full when we entered. So, we were forced to sit in the adjacent hall(conference hall) and eat the lunch alone. Did I mention, earlier we had the breakfast also with no company.
When we finished the lunch and came to the dining hall, it was empty. Whoa, late again. We hurried to B1 searching for the hubble(Video Conferencing  hall).  Slight humiliation when everyone were waiting for us. At the other end was Dr.Ramesh Babu, from Infosys, Pune. He briefed 'what', 'why' and 'what else' about the Aspirations contest.
After the Monologue concluded, we went back to friedmann, where the results were to be announced. DC head, Mr. Suresh raghuraman gave an inspiring talk on 1.Taking the Initiative, 2.Lateral thinking, 3.Articulating, 4. Leading a team, 5. Following.
The moment came, and results were announced after the usual job of mounting pressure. My team didn't get through to the finals, yet I felt like I'll never forget this day. We won the Sony IC Recorder. Soon after the results and prize distribution, we went to have Snacks & Coffee.
 Now that I have a Voice Recorder in my hand, I'm yet to figure out a way to *use* it. Any suggestions?

Saturday, January 30, 2010

Day 1 of Django

        This day, my opinion about creating websites changed forever. Thanks to Django. I started experimenting with a quick tutorial(http://docs.djangoproject.com/en/1.1/intro/) of a Poll application using Django. The MVC(Model-View-Controller) concept was new to me. This reminds me of the MFC(Microsoft Foundation Class) Document/View Architecture that I learnt in my VP(Visual Programming) Lab.
        I'm determined to push my learning further than just the tutorial by writing my own Django application in the near future.
        At the end of the day, with satisfaction of learning something useful, I retire to bed thinking of my First Django project.

Thursday, January 7, 2010

The OS chooses the Person

      So, today i made a brief talk on the topic "Free & Open Source Software" during the Communication Lab hour in my class. Following is a gentle recap into my past and how i entered this open source world.
      Like everyone of my age, my computing experience started with Windows 98. When I used MS Word for the first time, I was surprised it caught the spelling errors and also suggested the correct spellings. Wow, Computers have started to become intelligent.
      I felt myself in alien land when I first controlled my Windows XP desktop. Little did I know it would became the most popular pirated Operating System. A few of years passed by..
      I was already in college. Vista was released and soon almost all my friends had a Vista CD. I didn't show any interest in using it because I felt guilty. My cousin asked me,"Do you use Fedora at college?". "What is Fedora?", I asked. After that productive conversation, i was determined to try it out. But all i could find were three cds Ubuntu8.10,Kubuntu8.10,Edubuntu8.10.
      Initially when I stepped into the Ubuntu's GNOME desktop, right-clicked the mouse, WHAT? No 'Refresh' option? I was disappointed. But now i can laugh, or even criticize Windows for that 'Refresh' syndrome it inflicted on me(and many like me). Ever since i borrowed those Ubuntu CDs from my friend, I'm learning something new everyday, and it has transformed my thinking about an OS.
      Using a Linux Operating System has enabled me to advocate against piracy. I transformed a lot. I mean, Ubuntu transformed me. In my view, where there is proprietary software, there will always be piracy.
      Why did I give such a meaningless title!? That's one of my bad habits to use dialogues from books(In this case, Harry Potter),Movies..

Friday, January 1, 2010

My First Blog - How it all starts for me

             So, this is me entering into the blogging world! 

             Initially, when i started to think of a New Year Resolution, i came up with well.. let's try and keep a personal diary. Some one said It's a good practice, deja vu, blah blah blah... Then my mind started drifting towards a Digital Personal diary. That way, all my content will be secure.. 

             Being an open-source enthusiast, i searched through sourceforge and launchpad sites hunting for a digital diary software. The response was not satisfactory. Of course, i could have used any text editor, word processor, or just about any software that can store text. Then, it struck my mind!

             I can Blog. I had been in a long dilemma whether to blog or not. Because i found no impulse to jump into the blogging world, i deferred the decision. 

             This "web2.0 - The Social web" concept has brought in bitter experiences with myself rejecting invitations to join some social networking site almost everyday. A friend pushed me into Orkut during the end of schooling. Year and a half later i volunteered into facebook, and few others(forgot the name) mostly trying to spend my Idle time exploring things. I always tried to limit the personal information i display to others because i assumed 'hacking' is inevitable.

             This inert feeling about web2.0 prevented me from making a decision on blogging. But then, blogging seemed a little different from the web2.0's chaotic world. I subscribed to blogs from my college senior, then his friends, some developers. It seemed like blogging is a better way of writing reviews, expressing thoughts, making tutorials.. 

              Atlast, this decision to start blogging came as an impulse just because today is a New Year's day.. Thanks for taking time to read through my experiences. Just hoping to blog on a more useful post next time... Oh yes, pls comment....

Happy New Year!!!