YuviSense Codin Kid

An 19 year old guy from Chennai, India who codes, photographs & has fun More...

Six Years of Blogging and Eleven Years of Coding

It was exactly six years ago that I started blogging. My first blog post ow seems to be rather childish, but considering I was 14 then, maybe it is excusable :)

I've moved across several blogging platforms and urls in the meantime (Blogspot, wordpress and now my own custom engine. I've sadly lost a good portion of my blogs thanks to a domain loss and a server crash. Sigh.

Also, looks like I've been writing code for almost eleven years now! Not counting my turboC years, that would be 8 years now. Not bad, eh? I've been coding for more than 60% of my life :)

SICP and BrainFuck

No, I'm not going to blow your mind by telling you I'm going to do the SICP exercises in BrainFuck :)

I just wrote my first brainfuck program. Might as well be my last, but not sure. Tape-based turing-ish programing seems fun, so maybe I'll try that again with something more expressive than brainfuck (or maybe that is pointless?)

And I'm doing the SICP Exercises. In MIT-Scheme. I've put them up on GitHub. I'm doing this with the FPUG-C SICP Study Group, so hope I'm able to complete it all this time :) Big props to Balaji for organizing it, and letting us get away with the free coke and coffee!

Orwell and Huxley

I just finished 1984. Had finished Animal Farm and Brave New World a while ago. Orwell is scarier, but Huxley seems to be closer to real life already - I know several people (perhaps too many) who wouldn't flinch at all at the world Huxley created. Scary.

Sanity is not Statistical

DevLog: April 2011

I've started keeping devlogs, recording productive activity every day in an attempt to publicly shame myself into doing productive things. This is the delayed april edition

Apr 30

Impromptu talk at ChennaiPy meet. Then fun discussions at Nerd Dinner. No code, sadly.

Apr 29

Google Instant mostly works on yenWikipedia. Made a release. More exams.

Apr 22 - 28

Nothing much done. Exams and stuff.

Tecoholic forked yenWikipedia and created a Firefox extension. Adding features faster than me. Yay! :)

Apr 21

Started exam mode. Two units in OOAD done. Fixed proto.in.

Apr 20

Long discussions with Kishore about data model for BRi. We're going with the simpler one. Also, spent a lot of time discussing ideas for his new project with @notnarainan. Was fun!

Scraped entire Pune bus data into neatly structured JSON files and sent 'em to Planemad. Let's see how that turns out.

Started using SIO. Installed Variables Extension and started on Loop Extensions.

Apr 19

Updated ShortURL to use base64 instead of 36. Helped Kishore start writing tests. Nothing productive much

Apr 18

Removed / private / from LoadBalancer and Title. Patch got through. hexmode believes I'll not have any problems getting commit access. Nice :)

Met gsathya, genghiz9, stattrav, superkiddo and idlecool at bessie beach today. Was fun.

Apr 17

Not so productive day. Finally applied for commit access after more prodding. Removed one more / private / from Title.php. And that's about it. Incredibly unproductive day today.

Apr 16

Slept through most of the day. @since calculator turned into a statistics generator, and lead to discussions about removing / private / declarations. I poked around, found a change to $wgLanguageNames that tstarling had made that had broken a few extensions. Went in, fixed them (except one of them, which was so incredibly broken beyond repair). bawolf committed them (YAY!). Unlike the UtfNormal patch, which was second hand, this was my own code so felt good :)

They (Happy-melon and bawolff) also suggested that I apply for commit access, since I seem to 'not break things too often' :) Let's see if I can keep that reputation.

Have work lined up for tomororw - get rid of as many / private / bits as possible.

Woke up, checked/fixed visibility modifiers in 3 more files. My sleep schedule is very messed up.

Apr 15

Meat of code for @since calculator ready. Not many people enthusiastic about it in ###mediawiki though. Sigh. Think I'll sleep early today.

Apr 14

Chrome extension close to v0.2. Options page now pretty. Learnt some more awk. Slight IRC stats mentioned on ###mediawiki (Reedy came out on top!). Have my own bug to fix now. Might have to resort to awk and grep skills (hope it won't come down to that though).

Kishore came home. Fun time. Spent lots of time discussing BRiWiki and how it fits into the new architecture. He tried to build out 21H with his 'Segments' idea, but (as I had predicted :P) it was rather very complicated. Let's see how this turns out.

Apr 13

Chrome Extension for adding links to other language wikis works! Took me a while to figure out the entire thing, but finally! Wheee! Have it 'released' on Chrome Extensions site. Srikanth paid the one time 5$ fee for me (Thanks:D). Wrote an email to wikimediaindia-l, should wait till tomorrow for response.

Learnt quite a bit about Chrome extensions. Not bad at all. Also started learning awk. Useful tool.

Apr 12

Working on Chrome Extension to add links to other language wikis when english wikipedia link turns up in google results. Reasonably working (with Instant turned off, that is). Need to figure out a few more things and I can get it to 'run' and release.

Discussion about Extension:ShortUrl on wikitech-l. Apparently IDs aren't exactly unique 'identifiers' in MediaWiki. Need to find a way around.

Fixed a bug in the MediaWiki API documentation. Yay!

Apr 11

After long winded attempts to fix Extension:ShortUrl's toolbox functionality ended with me banging my head repeatedly on dead ends, I finally fixed it. The issue was addHTML not doing what I thought it would (add HTML to current position), misunderstanding what die() does (kill output at current location, not output in general) and not asking clear enough questions on ###mediawiki. Also hit a bug when it wasn't documented when (version) a particular method was added to a class. While I was able to workaround, might work on a script that adds 'since' information to all functions.

Chat with PlaneMad about good things for briwiki. Kishore is doing wonderful work with the recursive RDF export. Should be fun, the days ahead!

Also, fixed audio issues on desktop by moving to PulseAudio.

Apr 10

Slept most of the day. Fixed mwclient issues and made 0.6.5 available from PyPI. Tried installing GNOME 3 again (via jhbuild, released moduleset). Failed miserably again.

Apr 9

Played Cricket with Kishore. I won (HAHAHAHA).

Spent the night there. Packaged mwclient 0.6.5 to fix login bug. Kishore wrote code to import current stage data into briwiki. Yay.

Apr 7-8

Frantic last minute grab to get GSoC proposal done. It still has typos and style issues I didn't have time to fix :(

Everyone has their GSoC proposal in. Madhu's went in after a bit of late drama about her application status being set to 'withdrawn' in mentor's dashboard. Intervention by _ke fixed things up, and everyone lived happily ever after :)

Apr 6

Madhu's patch was accepted :)

Wrote good amount of GSoC proposal. awjr says it's in good shape. Sumanah suggested I fix more bugs, so on the lookout. Had a skype convo with awjr about the current, twisted manual workflow that I'm going to help automate.

Apr 5

Helped madhu write a patch. Pointed karthik in right direction for sound systems.

Started writing proposal. First long chat with awjr. Helped Kishore a bit with his GSoC proposal.

Apr 4

Helped Madhu with GSoC a bit more. Started working on the wikipedia offline bits. Finally got in touch with awjr.

Apr 3

Speech at GNOME.asia. Best I've given so far. Hall of around 100 poeple was full, and people were actually sitting on the damn stairs! I was damn in the zone, and it was quite well receieved. Even the jokes went over well! After the GStreamer talk, I gave a pitch about GSoC. Then there were lots of questions. Fun!

And then hung out with people from #h-i. Super fun :D Then spent a few hours at jace's place, trying to coax mwclient to work.

Left bangalore and landed in chennai in a bus.

Apr 2

Nothing at all. Developed parts of my presentation for GNOME.asia. Missed first day 'coz I overslept.

Apr 1

Went to bangalore by unreserved general compartment for GNOME.asia. Fixed up CV on the way - stealing template from lut4rp. Also talked on IRC to apergos from the train - prompting her to tell me to 'set a Hitman on her'.

Wrote Extension:ShortUrl, my first mediawiki extension. Works, and was well received in the Indian Wikimedia community.

DevLog: Mar 2011

I've started keeping devlogs, recording productive activity every day in an attempt to publicly shame myself into doing productive things. This is the delayed march edition

Mar 20 - 31

More contract work for more money.

My dump patch to meidawiki got commited, then blasted during Code Review. This is what I get for trusting other people's code blindly, especially after 5 years. Lesson learnt. Fixed all issues, and now waiting for a review before commit.

More help for Madhu's GSoC, on and off. Same for Arun and Karthik.

Decide to give up on dumps (no concrete work found) and pick up wikipedia offline, after post to wikitech-l by the offline guy saying he is looking for people.

Channels #mediawiki and #wikimedia-tech are quite fun, actually. Not bad at all.

Started writing php code. Not that ugh, actually.

Spent 3 days at In50Hrs. Prototyped the CollegeReviews thing I was always dreaming about. Concepts were fleshed out really well. Need to spend more time on this thing.

Mar 15 - 20

Almost got fix to Mediawiki that made dumps 5% faster. Now just need to prove it on a larger scale before it gets accepted.

Did contracting work for some decent money. Feels pretty good.

Started helping madhu with her gsoc. She's darn smart.

Mar 14

Did bits of resume.

Mar 1-13

Some amount of Mediawiki work - getting it to run, learning how to profile it, profiling the import and export process. Identified a hotspot in the export process (UtfNormal), need to try to get a fix in.

Moved main system from Ubuntu 32 bit to Debian 64 bit. Yay. Tried to jhbuild gnome-shell and failed miserably. Boo.

Started helping other folks with their GSoC. Yay.

DevLog: Feb 2011

I've started keeping devlogs, recording everyday productive activity in an attempt to publicly shaming myselfinto doing something productive everyday. This is the delayed february editin

Links: 32HourStartup, PiTiVi, TEDxSSN

Feb 26

Initial work on Busroutes.in wiki import script.

Feb 25

Audio Save Dialog mostly works now.

Feb 23

Started implementing Audio Name dialog box in PiTiVi. Dad fixed laptop - new Ethernet port, and working speakers.

Feb 22

Started doing layouts for WhyKCGRocks.com

Feb 18 - 21

Spent at NIT Trichy. Gave GNOME Talk. Started on briclient. Discussed various models with Kishore (for the wiki). Helped lut4rp compile gstreamer. Started contributing to PyLINQ

Feb 16

Worked on pitivi a bit more. Once recording is done, the track gets inserted into the timeline.

Feb 15

Worked on pitivi a bit. Moved recording inside main pipeline itself. Started #chennai-hackers for people from Chennai who are planning to do GSoC. Madhu, Karthik, Arun, Bala, Feroze on it so far. Fun!

Wrote a simple color changer in gtk that is controlled by the wii. Roll controls hue and pitch controls s and v. Fun!

Feb 9 - Feb 14

TEDxSSN, Banagalore, etc. Nothing got done.

Feb 8

'Open House Project Day' demo at college. Showed off gstreamer based video streaming via nn ad-hoc network, then wii+torcs. Fun with gibberwocky :P

Feb 5-6

32HourStartup. Ran around helping people out. Worked with Karthik and Madhu on a PHP/FB app. Fun :)

Feb 3-4

More 32HourStartup stuff. Busroutes.in still down.

Feb 2

Read ~100 pages of the libc manual. Worked on badges for 32HourStartup.

Busroutes.in is down. DNS issue. Out of our control - We're trying to bring it to our control.

Feb 1

Wrote 'Functionalish' C# to be posted in response to the Accumulator in Java thread at fpug-c. Haven't posted it yet.

GStreamer 101 at GNOME Asia 2011

My GStreamer 101 presentation at GNOME.asia was very wel received. I was quite happy with the way it turned out. Thanks to Ford_Prefect and Bharath Acharya for pulling me in :)

My very minimal slides are here. You can reuse them if you want to.

Sadly, missed the week long hackfest :( Next time!

DevLog: Jan 2011

I've started keeping devlogs, recording everyday 'productive' activity I do everyday. Publicly shaming myself into doing something productive every day. Just records for this month, next month on should provide time spent as well. There's an entry for every day when I've touched a computer. I'll be continuously refining this format, so feedback welcome

Links: 32HourStartup, Busroutes.in Wiki, PiTiVi, Geekweekend

27 Jan

More of nothing productive. 32HourStartup is eating into my dev time.

26 Jan

Nothing productive. Ugh. 32hourstartup website.

25 Jan

Nothing productive. 32hourstartup website finally properly done.

24 Jan

PiTiVi can now record audio into proper temp files, and insert them into the sources list when done. Also have a neat, complicated looking (:() VUMeter integrated.

Worked on the 32hourstartup website. Deployment is a bitch.

Couldn't sleep. Woke up, fixed site. Fucking slow.

23 Jan

Not much code. Worked on 32 Hour Startup website. Read more clojure books.

22 Jan

Attended Geekweekend. Was fun. I'm now gonna learn myself some clojure. Setup a clojure dev environment. Trying to kill my JVM Biases.

21 Jan

Read more PiTiVi code. Refactored the audiorecord bits off. Registered and put up a landing page on 32hourstartup.com

20 Jan

Did nothing today. Read parts of PiTiVi code. Built up my ohloh profile a bit more. That is it. Sad

19 Jan

Busroutes.in wiki

Nothing major got done. Unable to figure out easy way to start out on chennai (the center and zoom properties don't seem to work - maybe parser caching?). Need to spend more time on this


Finally settled on a UI that both me and @nekohayo liked ('inspired' in no small way by iMovie :P). Should start working on the actual implementation now. Sent first email to the FSF folks with some semblance of 'work done'. Feels good.

Misc Sysadmin Stuff

Setup server for Mohan.

18 Jan

Busroutes.in Wiki

Got Semantic Forms to work with Map input. Pulled in @kidbees (Bala) who did most of the Train routes entry. Templatized 'Type' for host. Need to find easier way to geocode.


Preliminary UI work/discussion with the PiTiVi guys. The dialog box approach didn't quite work out, so we're now moving to something more elegant and simplistic. It's fun working with a responsive community (@nekohayo)

12-17 Jan

Busroutes.in Wiki

http://wiki.busroutes.in is up and running, thanks to AWS Free and @logic's credit card. Semantic Mediawiki and a few extensions on. Getting to work figuring out all the templates and the extensions that turn SMW into something rather close to a programming language (It has conditionals! And templates can really be thought of as retarded functions). Started adding MRTS data - aim to complete Chennai Suburban Rails too fully and expose that data.

Tamilbeat.com Script

Simple python script that scraped Tamilbeat.com, located all songs for all movies and spat out a shell script that used wget to download them into properly organized folders. The script also used eyeD3 to set artist information on the songs. The script produced was incredibly dirty (no error checking, HUGE fuck you to 'seperation of code and data') - but worked wonderfully. Too wonderfully infact - I quickly used up 20G of my 25G allowance per month of usage, and it shows no sign of quitting. Will re run once I cross 25G.

The template output method was neat (template contained in .py file as triple quoted string, jinja2 template). Should rework it to seperate code and data.


Planning on helping out with the port to gtk3. Spent good few hours on 17th setting up a gtk3 env (no jhbuild, uses --prefix and a custom activate script). Maybe I should try and learn how to use jhbuild - but my experience (and that of others in general) seems to be one of pain. Maybe next time I need to setup something custom.

Work that needed to be done, but not done

PiTiVi. I'll give it more love next week. The Backup Thingy. I do need to do this. But when? Personal Domains. Ugh.

Misc. Sysadmin stuff

  • Setup SSN's Lakshya website on my server (webfaction). I personally found http://ssnlakshya.cloud10.in hilarious ;)
  • Setup PHP for Sriram on pirayalpha. Need to setup wsgi for him. Also gave him ownership of his nginx conf file, so he can actually do edits - but I've to be around to restart it. Proved a good decision, as he accidentally left out a } the first time he edited anything and bought the server to a halt. He's incredibly remarkable for a 12 year old.
  • Tried upgrading my system to Natty. Botched. Main system getting more and more fucked by the day. Fresh install of Maverick, or is it finally time to move to Debian on my main system too?

Till Jan 12th

NEN First Dot work too much to let me do much else.

NEN First Dot 2010 - What I learnt

I was part of the team that organized NEN First Dot - a student startup showcase. I was involved from day 0, so I was able to see it evolve from a high-in-the-sky concept to something that actually did happen. It was an incredible experience, to say the least.

What I learnt

I was the 'tech' guy - working with a few people (Karthik, Arun, Madhu, Dinesh, etc) to take care of most things tech. The entire team that organized this was rather huge - and I was pretty much interacting with them all the time. This was the first time I felt "part of something larger than myself" - part of a large Team for real. It was an incredible learning experience, to say the least.

Here is a partial list, written a few weeks after the event ended. By no means complete.

  • "A small group of dedicated individuals will always be able to bring about large amount of changes"
  • When you see your boss work on till 3 AM, then get up at 6 AM to get back to work - it almost fills you with a sense of pride just to work with someone like that. I'll be damned if I let myself slack off! This is incredibly important - it's hard to respect someone who asks you to work when he is busy playing poker & partying all the time.
  • Your team is incredibly important. Dedication matters more than talent. Who isn't part of your team is almost as important as who is.
  • Flaking is what marks you as unreliable and childish - and it's very hard to shake that kinda reputation off.
  • Assigning blame is absolutely pointless. And counterproductive.
  • Email is an incredibly shitty way to be the sole medium of communication when organizing anything. We should've tried something like Basecamp. Our mailing list degenerated into unusable levels well before the event - most stuff was done via private mails with millions of people CCed - resulting in knowledge gaps and why-was-I-not-CCed-syndrome. A lot of money is there for the guys who figure out how to replace email in this context.
  • JFDI is incredible underrated.
  • NEN is doing an incredible job of what the education system is supposed to be doing - making men out of boys (and women out of girls).
  • The social landscape is rather very diverse - and major parts of it are still absolutely unexplored from my POV. While at a much better position now than I was 3 years ago, I'll still file this bug as #needinfo
  • MBAs aren't all useless. Some of the time. There - I said it.
  • Being in a college which doesn't impose incredibly stupid rules frees up your mind to be worried about other things that might matter at some point (or not), rather than things that absolutely do not matter at all, in any universe. For example, you don't have to worry about being caught and treated as a criminal for wearing a shirt with Two Pockets.
  • Don't judge people. Don't jump to conclusions. The world isn't deterministic.
  • If you trust people, and give them responsibility and authority, they will often surprise you with the amount of work they are willing to put in. Don't underestimate people.
  • You can't hold yourself responsible for other people's actions.

I could probably expand each of these points into a post on their own - and maybe I will someday :) This post, however, should make sure I don't forget much of these next time around!

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 :)

View complete archives