PyCon India 2009

Warning: Rambling, unedited, 7 month old recollection ahead. Proceed at your own risk.

Ah, PyCon India 2009. My first solo bit of travel outside Chennai. What fun it was :) Though it was almost 7 months ago, most of the memories are still fresh. Compare that to college, where I struggle to remember what happened last week…

Anyway, it was fun. I went off by bus with the rather interesting Anirudh – a profitable startupeer and someone I met when working with Busroutes.in. He has a finances related degree and his startup deals with (rather cool) car electronics. He was also a KDE contributor, and is a very interesting travel partner for reasons too numerous to mention here.

I spent some time at Lalbagh, roaming around by myself (and texting classmates with my legs hanging off a cliff-type place). Was fun! I’d definitely do that again – the place was extremely peaceful.

I stayed at Sudar‘s place. Staying at a bachelor’s place was fun – guess that was how my room would look like if I was left all to myself. It was, however, definitely too organized for my tastes – you could actually walk without accidentally stepping on stuff ;) He’s grown up too fast – he actually dragged me to a food place and forced me to have breakfast!

Hung around mostly with mech-yet-wannabe-geek Kausik (who once famously said that he ‘doesn’t want to use LaTeX for resumes because most people ask for docx or pdf’), Anirudh and Sudar (who was there only for Day 1). Had a longish talk with Kenneth, who I later found out was quite a celebrity on IRC/Mailing Lists. Meeting people you knew onlyine online IRL is unsettling at first.

The event itself went well. I was inside only for a couple of major talks – the one about waffle by cnu is the only thing I could remember. I was mostly out in the corridors, typing out code in (one of the many) laptops that Sudar has. The lightning talks were way more fun – because they were only 15 mins or so long and packed a lot of tech (I particularly remember the one about Python internals by artagnon and one about a GAE app by ideamonk. I gave one too – the last one, so I had no projector, no working laptop, no mic, oh and Kausik who was supposed to present with me ditched me in the last minute :P It still went exceedingly well – it was my first time ever talking on a stage of any stage outside college and the practice I had from giving them in college (Thanks to Dorai and the iCell) helped a ton. I even cracked quite a few jokes that was recieved well. Fun times – and I guess it finally killed the last remaining bits of my ‘shit, you aren’t really expecting me to go up there and talk, are you?’ feelings developed from school days :)

Before I left, I visited planemad at NID. Awesome place. Someday, I hope someone established a National Institude of Programming at such a scenic place, where people can come together and learn about programming rather than engineering (which is just college-management-speak for IT Industry Zombie Production Factory)

There you go! That’s a rambling account of my PyCon India 2009 experiences. Next one is probably going to be in Chennai – looking forward to that!

Webfaction Review

I’ve been running yuvi.in and busroutes.in on my [Webfaction][3] account for a while. I got the account for free – after Remi Delon from Webfaction noticed one of my tweets.

Review: I’m going to save that when my free one year plan expires, I can upgrade to one of their better plans. It is so good :)

Highly Reccomended!

Samsung N210 Review

I bought a brand new Samsung N210 Netbook about two weeks back – and have been using it almost non-stop since. I’ve been taking it to college every day, using it at every oportunity I get – on the college bus, on MTC buses, on the train, while waiting for the train, hell even during a rather very boring class!

The Great

  • The Screen! The matte screen is totally awesome. Viewable under all conditions – full on sunlight during a train commute or at a weird angle snuggled under the desk during class. It is sharp, and IMO has enough resolution (1024×600). The bezel is small and not very distracting.
  • The Keyboard. 94% of a full size keyboard, I’m told. It is extremely comfortable, and I don’t miss too many keys. I do find the right shift absolutely useless though. The chicklet keys look great too
  • The Looks. One guy asked me if I was carrying a white MacBook.

The Good

  • The Touchpad. It is large and the mouse buttons are not bad. I don’t know if it supports two button finger scroll on Linux – but it does work on Windows. My hands do accidentally touch it often while typing, moving my cursor unexpectedly – but I have been able to stop that by using my right thumb for space instead of my left.
  • The Battery. I seem to get around 8 hours of usage under varying circumstances and conditions – while nothing to laugh at, I was expecting more. Might be because I haven’t been able to figure out a way to turn off the wifi chip from Linux.

The Bad

  • The Heat. The fan isn’t very noisy, but the heat buildup is appreciable. I can’t really work with it directly on my lap.
  • The inbuilt webcam. 0.3 Megapixels. Bleh!
  • WiFi. Drops very often, and not very sensitive. Ubuntu Autodetected it though.
  • The SD Card Slot. It has a cover that comes right off, and I guarentee I’ll lose it in a while.
  • Many of the Function Key functions aren’t supported on Linux. Was able to make the Brightness keys work after a hack though.

The Awful

  • The ugly black sticker ad for “Phoenix Hyperspace(tm) Instant-on”. Ewww! Atleast there is only one big sticker spoiling this white beauty

Was it worth the 20k bucks I paid for it? I’m typing out this blog post while waiting at my Doctor’s, so I’d say it is well worth the 20k bucks paid :)

“We must take [India] as it is” – Jules Verne

I’ve gotten back to reading fiction ever since I got my netbook (review comin up!). Project Gutenberg has been very helpful. Jules Verne’s Adventures of a Special Correspondent was the first one I completed. It is a good book – but not phenomenal. It does have a few very good moments, and one of them hit extremely close to home.

Towards the end, when Claudius Bombarnac rumbles about how the Chinese do not make full use of the engine’s power – always keeping it running at 40 mph even though it could be pushed to do way more.

“I agree with you, but where you have a railway you might as well get

all the advantage out of it that you can.”

“Bah!” said Pan-Chao carelessly.

“Speed,” said I, “is a gain of time–and to gain time–“

“Time does not exist in China, Monsieur Bombarnac, and it cannot exist

for a population of four hundred millions. There would not be enough

for everybody. And so we do not count by days and hours, but always by

moons and watches.”

“Which is more poetical than practical,” I remark.

“Practical, Mr. Reporter? You Westerners are never without that word in

your mouth. To be practical is to be the slave of time, work, money,

business, the world, everybody else, and one’s self included. I confess

that during my stay in Europe–you can ask Doctor Tio-King–I have not

been very practical, and now I return to Asia I shall be less so. I

shall let myself live, that is all, as the cloud floats in the breeze,

the straw on the stream, as the thought is borne away by the imagination.”

“I see,” said I, “we must take China as it is.”

India too, as I see it from where I am, is pretty similar. Practacality can go shoot itself in the head.

What do I gain by copying stuff from the board to the notebook? Nothing, but do it anyway because that is how it has always been done.

Why should I go back 10 years by not using a mobile phone? Because we aren’t good enough to hold your attention long enough, so we are going to force you to not do anything else even if you are going to be bored to death (even if literally).

Why should I use Turbo C, even though it is extremely antique and doesn’t really conform to any standards? Because that is what the people setting the syllabus learnt! (Nothing personal, TC.exe – just that I hope people stop believing Windows was written in Java/VB because you can do GUIs only in those!)

Doesn’t matter if there is a better way, if it is not the way it is done. Conservatism. Bah

I’m talking only from my point of view, from where I have been (apparently) hurt. I am sure this is not the only place – this happens everywhere. Anti-Change Conservatism. Which I am told, is not even the true meaning of the word conservatism. I hope someone sometimes explains to me what the word was supposed to mean, and how it came to represent parents who won’t let their kids out to have fun with their friends.

Good news is, trains in China are no longer run at a max of 40 mph. Change does occur, but it takes time, and hurts those who live during it. We are those people. I hope.

First Binary Dream

I had my first ever dream in binary today.

The cycle moved like this:

Borg -> nanoprobes -> a scene in Minority Report when nanobots go around looking for John Anderton (Tom Cruise), who was hiding in a bathtub full of water -> Will Smith and his Dog cuddling in a bathtub in I am Legend -> the climax of I am Legend when Will Smith blows himself up to save the others -> A column of binary numbers came up, showing state of Will Smith as ‘SAD’ AND MSB FLIPPED TO ZERO, and then he has this epiphany (Realization of God Moment) and becomes ‘HAPPY’ and the MSB FLIPS TO ONE.

WTF? Shouldn’t he be sad when the MSB is at one (Negative) and happy when it is at zero (Positive)?

Note for Non-CS folks: MSB -> Most Significant Bit, the left-most bit in a binary sequence. Usually, setting it to zero means the number is positive, and setting it to 1 means it is negative.

Measure of Learning: Epiphanies per Session

The measure of code quality is WTFs/minute.

I just realized, after a rather intriguing facebook conversation with Shiva, that the only true measure of learning is Epiphanies per Session.

My latest Epiphany was a couple of days back. And the one before that was a month or so back, when I was ‘pairing’ with Sid. I think the one before that was quite some time back – when I understood the true meaning of closures. And a few “Yes, it is not just me” moments when talking with SriramK.

College is yet to give me a technical one. It has given me a lot of emotional ones though. Maybe someone could chuck the totally pointless part of what we call college (the supposedly technical part (where they give you xeroxes of shittily written programs that often don’t compile and give you a banana if you are able to copy it perfectly on to the screen (a task at which, many CS students fail))) and keep just the useful parts.

2010 – The Beginning, the bicycle ride and external dependencies

I was writing a post on how 2009 ended. Here is the tl;dr version: It was my ‘growing-up’ year in Tech, and ‘roller-coaster’ year in personal stuff. There! I’m certainly significantly wiser at the end of 2009, and that is due more to my state at the beginning of 2009 than at the end :) Good enough

So how did I celebrate? By joining the KPP competition at Kurukshetra. That’s what I did at around 12 on New Year’s. Not intentionally, mind you. Just happened.

Then, on 2nd Jan, I did something interesting. On a whim, I took my bicycle, and rode an hour in traffic. Alone. To Marina Beach.

And then I spent the next hour sitting near the waves. Looking around. Just enjoying myself. And then rode back home, and for the first time in over 4 years, slept before 12.

I did it again the next day. With a friend this time. My knees were already killing me since I practically had no physical activity before this. But I still did it again. My knees would literally kill me now if they had a way to.

I’m happy. Teen Angst has taken a break :)

Let this year be the one when I remove external dependencies on my happiness :)

The Python Workshop

We had a python workshop at college a week back.

One hellova workshop it was! Kausik conducted it, and about 14 people turned up (We picked 15, one girl had to miss it ‘coz of fever). Every single one of them was there because they wanted to be there. This happened during semester holidays, so they came to college just for this. And from the feedback (and the actions that followed it) I got, it was worth their while.

Teaching Python

Kausik did all the hard work, with me just going around helping people get unstuck. Watching people when they suddenly get it is a really amazing feeling.

The hardest part for many people was not the significant whitespace (most intuitively got it, we didn’t even have to repeat it once). It was the concept of explicit self. And the biggest (though not exhaustive) selling points were, in no particular order: Lack of the semicolon, no boilerplate code (type declarations, etc) and support for arbritarily large numbers. pointers are conspicous by their absence.

So, what did you guys cover?

Day 1

  • "Hello World!"
  • Conditionals, Looping constructs
  • Functions
  • Lists, Dictionaries and Tuples
  • Basics of OOP (Classes, Objects, and explicit self)

Day 2

  • Using Google to find docs
  • The datetime module
  • Using easy_install to install external libraries
  • Exploring docs of python-dateutil module

Pretty much zero time was spent lecturing, and most time was spent actually doing things. Just as how things should have been :)

Following up

The best thing about this workshop was it did not end at closing time Day 2. It went on. We are now planning on a weekly programming competition at college, with cash prizes (sponsored by the college and Mr. Dorai Thodla). And several people have taken up solving problems on Project Euler, and we have a working game done by one of the students. That isn’t the end – one team is hoping to replace the antiquated VB6-ish management system in our library with one built in django, while another is trying to automate attendence systems using SMS.

Inspiration

So, how did it all get started? The inspiration? Hackfest. Huge thanks to vimzard, kstar and the rest of the Hackfest team who were our inspiration. I hope there is a Hackfest next year too, and that some (a lot!) of our students are more than good enough to attend and make meaningful contributions. It changed me this year, and it should continue to shape and change more people throughout the years :)

And ofcourse, no small thanks to Dorai Thodla, who helped get this entire iCell thing off the ground, and Ms. Sumathi Poobal & Mr. Ramanayagam from our college, without whose participation the iCell would’ve died a silent death. (What’s this iCell thingy anyway? A post for some other time :) )

I didn’t happen to forget someone whose name began with a K, did I?

What I lack

Commitment.

I keep jumping around. My GitHub profile is proof for that. So are the large number of projects I’ve taken up only to leave in the middle. Unless and until I fix my commitment issues, I’ll be just-another-guy-who-learnt-to-code-in-his-teens, not the-guy-who-changed-the-world. Just reading a lot of stuff isn’t going to do me any good unless I actually get off my ass and do something.

Hopefully, putting this up in public will make it more real. Maybe I’ll be shamed into being more committed to whatever I choose to commit to.

It is good to jump ship when it is sinking, as long as you know where you want to go.

Block cursor vs Post Cursor (gVim vs Emacs)

Here is an approximate timeline of the editors I’ve used so far:

  • Turbo C++ (4th grade to 8th grade)
  • Visual Basic 6 (8th grade to 10th grade)
  • Visual Studio 2005 (10th grade to 11th grade)
  • Visual Studio 2008 (11th grade to 1st year of college)
  • gVim (1st year of college)
  • GNU Emacs (after gVim)

Now, the one thing, maybe even the only thing I miss is the fact that gVim gives me the I-Bar cursor, while Emacs by default gave me the block cursor. I like the I-Bar better than the block, and so far, couldn’t figure out how to change that. It’s not helping that I don’t have access to the internet.

So what does a sane man do?

He stops using the GTK version of Emacs, and switches to the console version :D