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.

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

PiTiVi

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.

PiTiVi

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.

Cheese

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

Clojure

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

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

Monads

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

Enthusiastic Teachers and Naive Implementation of Gauss Seidel Approximations

This semester, one of our so called electives (despite the fact that we have no real choice in them) is Numerical Methods. I don’t quite like the actual way the subject is taught – mind numbing, error prone calculations with a calculator. However, the methods are pretty awesome.

The staff explained Gauss Seidel yesterday, and it seemed a straightforward recursive solution to me. So in the break, I cooked up a small python script that gave me all the intermediate answers as well – so for any assignments I could just run them through this and copy it to paper.

What happened after that was more interesting. The staff made an offhand remark that she hates the subject, since it involves so much mindnumbingly repetitive calculative work, and not something fun like probability theory. I picked it up, and we had an interesting conversation that ended up with me showing her a 3-function version of the above code and explaining to her how I got this. She was incredibly interested – and asked me how to explain each line properly.

Was a lot of fun. Sad that this is the first time in 3 years that I’ve had someone who is actually interested in what they’re teaching, rather than treating it as just a normal 9-5 job not much different from herding sheep. What exactly can we do to change this?

Serendipity

I’m back at home after travelling almost ten days – ACM ICPC at Coimbatore, One day at Ooty, the last FOSS.in at Bangalore, Nonameconf at Bangalore, and finally chilling out losing at XBox 360 Takken at the [Zynga][z] office.

One thing I’ve realized sharply is that “Life will take you to interesting places and make you do interesting things, if only you let it

I realized that my days were being pretty much the same all day. I’ve shook up a lot of things – quit many ‘safe’ stuff I was doing so I could go try stupid, freaky things – I don’t know what. Should be fun and interesting.

What stupid, crazy, freaky and incredibly interesting things you have done?

Moving to Vim from Emacs

I moved to Vim from Emacs a while back. I realized I was not using emacs to its fullest extent – I was using it as ‘just a text editor’, and alt-tabbing to gnome-terminal for most of my work. I was using one tool per job anyway, so why not go all the way and use a text editor for a text editor instead of yet another operating system :P

Also, and perhaps more importantly – on my rather small Netbook, pressing combos felt awkward to me (I know it shouldn’t have, but it did). Much better (atleast so far) with vim than Emacs. Since most of my coding these days seems to be done on this small and underpowered machine, and my wrists were hurting anyway, I switched.

Muscle memory is still set to emacs (hit C-k several times when it should’ve been d$), but I guess I’ll eventually get back to being fast enough in vim :)

Last time I was on vim, I was just getting used to Linux, and switched to emacs a few months after. I wonder if I’ll switch again in the future.

TL;DR: Moved from Emacs to Vim ‘coz I felt like it.

How to increase Cheese’s Burst Mode Photo Count

“Why does Cheese have a maximum photo count of 100 in burst mode?” questions have popped up quite a few times on the cheese list. It is just a teeny, tiny bug – fixed in master.

The work around is simple:

Till Cheese 2.32

Raise it to whatever value you want in line 8 of /usr/share/cheese/cheese-prefs.ui.

(If you don’t know what version you are running, check Help -> About)

(Fix is just raising the limit from 100 to something that most people will likely not hit. If they do hit it – well, line 40 on /usr/share/cheese/cheese-prefs.ui :D)