Yuvi Panda

JupyterHub | MyBinder | Kubernetes | Open Culture

Functional Programming Geekweekend at Thoughtworks

[Note: I’ve a rather large backlog of blog posts to do, will push them out as soon as I can]

Saturday (22 Jan 2011) was spent at Geekweekend, organized at Thougtworks Chennai. The event had awesomeness written all over it, even before it started – how can any event where you register through a (rather limited, but still) command line interface on a website be not good? :D

I was late as usual (damn living so far away from everywhere) – and found my way walking through the underbelly of the Kathipara junction thanks to Google Maps’ Walking Directions :P


Missed the first session. Turned up for the clojure session – it was good. I’ve been meaning to learn one of the OMGPARANTHESES langueages, and from the tooling/library support – clojure seems to be the way to go. Spent time during the talk setting up my machine to do clojure dev (took forever to setup – it is a netbook, afterall). Wanted to build something small before the end of the event (like a URL Shortener!) but too late for that.

I do plan on writing something with clojure in the short term though. Looking for ideas.


Lunch. Met the usual group of geeks around. Fun, as usual :D Lunch was excellent. Me and Superkiddo continued the tradition of stealing sweets from Kishore‘s plate :D


Then came the session on Monads. I still don’t understand them. But that’s okay – the discussion was rather intellectually stimulating. It also reminded me that my mathematical/theoretical-cs foundation is incredibly weak (by geek standards) and needs updating/pushing up. Should start on SICP (again).

Purely Functional Languages on the fringe

The discussions were the most fun, productive part of the day, IMO. Most people who weren’t fully interested had already left – so the self-selected crowd was rather intense. Nobody there was actually using any purely functional language in production – which was expected. My opinion is that purely functional languages will always be on the fringe – as they should be. But features from them will trickle in slowly into mainstream, blub programming languages (even PHP has lambdas now!). Learning to think in a functional way will expand your mind, and make you a better programmer – even if you’re not programming in a purely functional language.

My Irrational Hate for Java

I’m not sure from where — perhaps the fucked up Java GUI apps, or my early stage semicolon/case-sensitivity hate (hey, I was 14, what do you expect!) or the fact that Java the language is way too verbose — I’ve had an irrational hate of all things Java/JVM. But that’s just that – irrational. So I’m taking a concerted effort to learn myself some JVM – hence clojure. I still don’t like Java the language (C# FTW!) – but the tools and libraries around JVM seem to be pretty good. Let’s see how this experiment at de-biasing turns out!

Functional Programming Users group

The idea of a Functional Language Users group was floated around. Waiting for it to turn up!

Update: Here you go. Join up and keep posting. I’m not sure how the idea of posterous groups will work out though.

Thoughtworks ‘crowd’

I’ve generally found that events organized at Thoughworks/by Thoughtworkers have higher average audience quality than most other events. Thanks for putting together events guys :)

Trip to Kerala

I, along with about a 100 other classmates of mine, went on an Industrial Visit to Kerala a few weeks back. It was a 3 day, 4 night affair – and was incredibly fun and refreshing. New friendships were forged, old ones rekindled, temptations resisted, a thousand pictures clicked (thanks to @RohitP’s camera), group dynamics studied and incredible fun had. It was very refreshing (for the most part), and I realized just why vacations are important.

I plan on visiting [Athrapalli Falls][afalls] again as soon as I possibly can. Being in fast moving, (relatively) cold water is an incredibly experience I’m glad I didn’t miss. You shouldn’t either.

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!

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.


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 learnt from the Hackfest at IITM

I was about to just type a list of stuff here, but that doesn’t do the topic justice. So here I am, at 3:30 in the morning, sleep cycle screwed up by the Hackfest, typing out a post on what all I learnt from there. I spent pretty much my entire awake-time at the IIT, so it helped me a lot.

Your college doesn’t matter much

IIT Envy. Every non-IITian has that. I spent a lot of time at IITM during the Hackfest, and while my IITEnvy did go up during the first few hours, it initially came down well below normal as I got to know the people better. What was cool about them was not where they were studying, but what they were doing. I could do what these guys were doing. Anyone can do what these guys were doing – there is nothing special about the IIT except maybe for the fact that it aggregates naturally dedicated people into pools. You don’t need an IIT for that – IRC will do :) I’m from a teeny college that nobody has heard of – that would have been a problem when people judged people by where they studied, rather than by what they did. Should not be a problem for me now :)

Real C isn’t hard

I was utterly clueless about GTK+ when I landed up at the IIT. The first thing I told Arun was that I was clueless about C and maybe would like to hack on something in C# or Python.

I thought I was clueless about C. All I had done was TurboC – which I had not really considered as real C till that point. However, an hour into the hackfest, I realized something – Pointers and Structures are all you need! Read the docs, read some good code, and you are done. I will probably do what I usually do to learn a new language – write a significant amount of useful code in it – in C very soon.

Code talks

I don’t have any patches against my name. The only significant piece of code I think I have written so far is this blogging engine you are reading. That needs to change.

Doesn’t mean I have to churn out code like a copier machine – I just have to have enough things to point to and be able to proudly say ‘I did that’. Great Documentation, proper deployment options and a little evangelism helps too. None of my code has any of that. That has to change too.

Know tools well

I use Emacs. But not to its fullest potential. Same thing for pretty much all of my tools – Bash/Powershell, Build Tools, etc. Heck, I can’t even write a shell script to save my life! That has to change, and change fast. I smell perl.

People on IRC are friendly

I’ve always been a lurker on IRC, just listening and not daring to speak. That changed drastically once I actually met these really nice people in person – so I can see my IRC usage going way up! It has also expanded my horizons quite a bit – meeting new people, getting to know people better, constantly being challenged to actually get off my ass and write some stuff, etc.


  • Read more code. File bugs. Try to fix bugs.
  • Learn Perl. Learn C. Learn C++. Get much better at Python.
  • Go through my code, document all the necessary parts, create home pages for the significant ones.
  • IRC more. I have been – the last two days have seen my IRC usage skyrocket.
  • Stop cribbing about my life and get on with it!

Hackfest ’09 – Expectations

I’m going to participate in Hackfest at IITM’s Shaastra, starting tomorrow. Will hopefully be a lot of fun – and may I be able to contribute my first ever patch during the event ;) Got permission to not get back home – but wondering, where would I stay? Probably pass out in front of the computers :)

I’ll be hackin on GNOME Apps – hopefully Banshee (since that’s one app I love), or write a newish, smallish app with PyGTK. Anything would do but :)

Will be blogging more – Sadly, no camera, so no pictures :(

Anyone else coming along?

Lessons learnt from working with the Symposium

  • Document Everything! On paper. Will save you from hell later.
    • There is never enough time. Start earlier than you think is early enough.
    • Sell people things. Make them want it. Think from their point of view.
    • Prioritize.
    • Delegate. Responsibly. And follow up.
    • Know when to stop. Recognize when something is good enough.
    • Printing takes a long time. Very long timeE. And is boring.
    • People often do not mean what they say. Very often
    • Indoor photography requires a good camera.
    • Old people think in weird ways.
    • Different people prioritize differently.
    • Promises are worth shit. Usually.
    • Fight. It’s worth it.