My sandbox is now live

I have finally got myself an account on github. My first fork (obviously) is ayttm. Here I'll be putting in all the major destructive changes I cannot put into the main repository right away since even I'm not sure if it is a good idea in the first place. The first commit is the revamped conversation stuff. Note that chat_room.* is out and conversation.* is in. And a lot of code has changed. And a lot of things have broken.


FOSS.in/2009 Day 4: cd

The last day of FOSS.in. Kartik wakes me up saying "You have to pack, get up". I got up, went across the hall and rang Ram2's bell a few times to wake him up.

So I packed up my stuff and got ready. This time I did not forget to wear my fedora. We had our breakfast and realized that a number of people had left early, either for the venue or to meet someone in the city. When we went out to our bus, we found that it was not there. We started talking to rickshaw drivers and bargaining with them when one guy came up to us saying that he was here to take some people from the hotel to NIMHANS. That was us. But we weren't sure, so we had him call his boss and confirmed that it was indeed us.

Susmit: "Well, if he wanted to drop us to the venue then why are we wasting time calling people? Why not just pile into the bus and go ;)".

So we finally reached the venue, only to find that it was almost deserted. People started crawling in quite late and the place eventually filled up. I sat down with Kital at the Fedora booth and fixed my package submission for Fedora. At 12:00 I went up to Lennart's FSH talk, but did not find it as useful as the previous talk. He could just have combined this one with the last talk and done one marathon talk, but I guess that would have been too long. Anyway, it was time for lunch.

I was pretty listless after lunch because there wasn't enough time to hack on anything significant, so I decided to take a nap at the booth. I woke up to find that I had only 20 minutes to say good bye to all the people I came to know during these 5 days. Wait, a phone call. An automated message telling me that my flight had been delayed by half an hour. Well, I had some more time now, so I went up to the hack centre to check out who was doing what. I bugged Gopal for the Speaker kit and he finally shooed me off with some stickers. I told him that the coordinators had done a great job, something I managed to notice this time since I was not sitting in the corner and hacking like last year.

While I was roaming about, I entered the Gnome POTD and saw Oliviere Crete giving a talk on Telepathy. I sat down and listened. And I have to admit that I was quite impressed with the layout. I remember wondering why I was working on getting ayttm and libyahoo2 up to speed when such a wonderful effort was underway to do messaging the *right* way. Now that I think of it though, it is not the only right way to do things. While ayttm may not be as extensible as the Telepathy framework+Empathy, etc, it has a totally different use case. To be able to fit into a sub-1 MB package and work well with minimal dependencies. And it can work on *BSD. The workout participation for ayttm unfortunately fizzled out since it was pulled off the itinerary and it is not popular or cool enough for people to want to contribute to it. But I managed to make some headway into the chat window stuff and will hopefully get that out of the way soon. Next week I plan to work on the webcam stuff for yahoo at Rahul's request. OK, I digressed.

I had to leave the talk halfway since I was getting late. I stepped out of the hall and managed to say goodbye to everyone I recognized and could catch hold of. I managed to find Pradeepto just as I hauled my bags up to leave. We said our goodbyes and I left for the gate, trying to find a rickshaw. But what I found was a bus, a BIAS-7 going to the airport :)

So I'm now sitting in the airport lounge reflecting back on one of the best events I've attended so far. This was very special for me because I got to know a lot of very good guys: Pradeepto, Aanjhan, Sayamindu, Joerg, Gopal, Susmit and so many others. The best part of the week was the BoF sessions all of us would have in Pradeepto's room, talking about foobar and sharing stories. I did not have too many uber hacks to talk about through this week, but a lot of cool incidents that seemed to make a big difference to the way I thought about the Indian FOSS movement and the people involved.

This was fun. I hope I get to do this more often.


FOSS.in/2009 Day 3: The blues

The penultimate day of FOSS.in/2009. And me and Kartik got up even later than usual. We managed to get ready quickly and reach on time for breakfast, only to realize that practically everyone else was late. We left for the venue (eventually) at about 10:30. Philip had already arrived at the venue and he asked me about the ayttm workout, which was to happen today. I thought it was cancelled, but we decided to go for it anyway. So we spent the time before lunch in the hack centre with Kartik and Ram 2 going about their Debian workout and Philip scp'ing his latex presentation back and forth on his server since he was stuck with his Mac.

I came up to the hack centre to work on ayttm but saw Russell Nelson teaching a bunch of people how to solder stuff. This got me excited since I remembered my my childhood, with me trying to make some weird stuff with wires and pins (yes, a couple of them exploded too :P) and trying to "repair" stuff, eventually breaking them. So I had to get up and see what he was doing. That way, I would be putting the soldering iron my wife recently got me, to constructive use.

Russell explained some basics of soldering and then went on to show a small example of attaching an LED and resistor to a small microcontroller board. I stuck around to see how soldering was done and then finally decided to skip the software part and get back to ayttm.

We sat down to hack again after lunch, but Philip vanished after a while, probably to prepare for his talk. I continued trying to get some stuff together while we also battled with a relatively unreliable wireless connection. The organisers finally pulled down the wireless in the hack centre since they were overloaded. I spent the rest of the time mucking about with nothing in particular. All the while, it was quite entertaining listening to Rahul Sundaram, Kartik and Ram2 discussing Debian and Fedora release cycles.

Finally it was time for Philip's talk. While I got up to go down to the hall, we were joined by a bearded guy who came up to talk to Ram2. I casually looked at his tag and realized that he was Baishampayan Ghose. I have only probably conversed with him or read his emails on mailing lists or heard about him, so meeting him in person quite suddenly was a surprise, which kinda left me a bit tongue-tied ;). He recognised me instantly (probably due to the tag) and became the first person other than Philip and Kartik to ask me about ayttm/libyahoo2 :). We then walked down to the hall to attend Philip's "Shut up and Hack" talk.

I thoroughly enjoyed the talk, mainly due to the spontaneity. He basically talked about reasons for which hackers hack. Not just software hackers, he talked about hackers in general. He then went on to make some useless and some other useful little snippets of code to explain how one could hack. The point was to not call a committee to decide when, where and how to scratch an itch; just scratch it now.

Bluesmoon was followed by Blues before Sunrise, which was strictly OK, because of which I walked out after the first few songs. We had a fun time with Himanshu and Kartik finally getting the better of Rahul Sundaram in pulling his leg. Pradeepto was lying down in a corner and soon after, everyone was gathered up around him and were chatting away. Gopal came up to chat too and once again managed to call me the "bakra who Philip caught to work on ayttm" :P. He had said exactly the same thing at last years FOSS.in. It turns out that Philip had asked Gopal if he could contribute to ayttm, which Gopal was able to conveniently turn down since he soon joined Yahoo! :P

All this was followed by a speakers dinner at the hotel, which was quite a lot of fun too. Kushal had 7 bowls of soup till the time I was hanging around and was probably looking to have more. There were occasional shouts of "PulseAudio sucks!", "PulseAudio rocks!", "KDE sucks" and "Lenny rocks!" just to pull each others legs. It was quite cool to watch a lot of people get a little drunk on beer and having fun in general. Me, Kartik, Aanjhan, Ram2 and Pradeepto then came down to Pradeepto's room and were chatting about foobar right up to about half an hour ago. Now here I am sitting in the hotel room with Kartik fast asleep. I'll go to sleep now.

This has turned out to be a long post. Yes, it was quite a long day.


FOSS.in/2009 Day 2: KDE ftw!

We started off quite late for the event today, just after 10:00 AM. I tried sitting somewhere to continue hacking on the chat windows but could not get myself together at all, so ended up wandering around killing time waiting for Lennart's talk. I also wanted to attend Ram2's talk on the python compiler design, but it was at the same time as the PulseAudio talk. I gave up on Ram2's talk because the PulseAudio talk seemed more relevant to what I did and promised to be quite interesting.

The PulseAudio talk was (as mentioned in the abstract) not a talk on PulseAudio at all. It was a sort of a "best practices" guide on using system calls, etc. It was quite an interesting talk. One amazing thing that Lennart pointed out was the lack of a async DNS resolver function, something that I witnessed with ayttm as well and had to work around by spawning a separate thread for connections.

Post-lunch, I decided to check out what was going on in the KDE project of the day. I entered to find the hall nearly full of people and was quite surprised. The result was that I could not sit there due to the fact that my laptop was running low on battery power — all the charging points were taken. I went back to the Fedora booth and sat there waiting for my laptop to charge up while I tinkered around with random stuff.

By the time I got back to the POTD, a lot of stuff was already done, but I managed to witness a couple of really interesting events and realized why the hall was nearly full. For one, everything seemed to be perfectly managed, with Pradeepto at the helm coordinating things and a bunch of others working together amazingly well. Companies rehearse again and again to get such coordination and I can vouch for the fact that Pradeepto and gang did not rehearse during the past few days :)

The session in the POTD that really caught my eye was the Bug fixing event. It was a perfect example of how to introduce students to more complex code and how to avoid intimidating them. Aakarsh sat down with one of the delegates to resolve a bug in KStars and then got the delegate to demonstrate to everyone how he investigated the bug. The demonstration would surely have encouraged everyone to believe that even they could contribute to the code base, small steps at a time. This was followed by Sujith's demonstration of a few bug fixes, which was also quite cool.

I ended the day chatting with Krishnakant and Anusha (the GNUKhata hackers) about GNUKhata and other random stuff and came back to the hotel room early. Now we'll go for dinner somewhere downstairs and probably gather for the usual nightly foobar BoF session.

Finally, hats off to Pradeepto for KDE POTD; it was beautifully coordinated!


FOSS.in/2009: Day 1

Got up late and rushed through my bath and breakfast. I realize that I did not talk about the hotel I am living in. Well, the bed is too small, the toilet seat is too tall and the bathroom in general is quite claustrophobic. But otherwise it is a really good, clean hotel.

OK, so we made our way to the venue and were pretty much holed up inside auditorium 3. I managed to get an app packaged as I mentioned in my past post. The upstream dev acaudwell immediately responded to my patch to update version number in configure.ac, so that hurdle is out of the way too.

The Fedora team had a blast at night with food and beer and managed to rake up a huge dinner bill. I missed out on it since I was in the mood to sit and hack on something. Well, I did not. I ended up discussing a bunch of things with Ram2 and Amit Sethi.

Oh yeah, and met up with Philip too after a long time, so that was a bit of a ayttm team reunion sans Piotr :)


My first Fedora package submission

I have created and submitted gource for review in Fedora. It's a really cool source code history visualizer. It's not perfect by any means, but a very good start. It works out of the box for git, but needs some scripts to get it working for cvs and svn. I'll be trying to write some sort of a wrapper to detect cvs/svn and invoke the scripts automagically.


FOSS.in/2009 Day 0 done

Finally back at the hotel after the first day of FOSS.in. It was a good first day despite the delays in schedule, mainly because I didn't care much about the schedule ;)

Kartik and I decided to have our workouts at the same table and it turned out to be a decent idea since we did not really have people swarming for our workouts. I assumed that the pre-workout talks were chucked out since Atul Chitnis said that we can start right away at the hack centre, but it turned out to be otherwise. The result was an unprepared /me struggling with the collar mic screeching every other minute and /me rushing through the libyahoo2 slides as if there was no tomorrow.

It was not too bad in the end as we had one person asking a few things about libyahoo2 and Debian. I was able to get some work done too; see the Progress section in the libyahoo2 workout page for details. Also, thanks to Gaurav "Tazz" Chaturvedi, who gave me a packet dump of his windows yahoo messenger 10, which included everything from regular messaging to chat rooms. I'll get around to doing something about it soon, not tomorrow.

As for tomorrow, I'll be putting on my Fedora for the Fedora Project of the Day. I'll be trying to package gource, a source code history visualizer. Kartik showed me this app today and it blew me away with the wonderful visualization of the ayttm source history. This will also be my first package submission to Fedora and my first foray into something other than coding. Let's see how it goes.


Foss.in/2009: Day 0

Started the day with a nice and heavy breakfast (idli, vada, dosa, bread/butter...) and got to the venue by bus by around 10:00. Needless to say, the event started late (we're halfway into Sayamindu's talk as I write). We spent the early part of the day sitting around the Pradeepto's "bodhi tree" and talking about emacs/git/svn/other_useless_junk.

I'll be starting with the libyahoo2 workout after I've put some food into my tummy, so that would be around 2-2:30 PM.


FOSS.in Day -1: Arrived at Bangalore

I've finally made it to the hotel after a one and half hour flight and (ironically) a similarly long bus ride. But it was quite smooth, with no delays either on departure or arrival. I've settled myself into Room 101 and am now contemplating dinner. My room-mate will most likely be coming in tomorrow morning. The Wifi signal is pretty weak at around 45-50%, so I think I'll have to settle somewhere in the lobby for better signal whenever I need it.

Day 0 of FOSS.in begins with the libyahoo2 workout for me. I've got a bunch of protocol dumps using the Gyache yahoo messenger (yes, the hideous looking buggy one). I would not dare look into the code of that nightmare of a messenger, so I'm happy with what I have so far. I think I have got a handle on the chat room packets, so I might give that a shot tomorrow. The buddy picture stuff is also pretty decent, although I think we'll have to do a bit of trial and error with the packet sequences a bit. Gyache seems to have a bug in its picture stuff and it sits in an infinite loop uploading pictures forever.

I've also got the address book update packet dump but here again gyache is buggy. I think we can get it working despite that though since gyache is buggy with both address book query as well as update. We have got the address book query right, so we're definitely on the right track.

I have a feeling ignore/unignore buddy has not changed in YMSG16 and we may not need to fix it at all. I've been too lazy to actually sit down and test it though.

Finally, I hope some people get in some Windows laptops tomorrow so that we can get packet dumps of the official Yahoo! messenger doing some stuff. If that does not work out, I'll have to go back to work and get to it by myself some day.

Update: No Kushal, that's not day one; it's day minus one ;)


Coming up soon: FOSS.in

FOSS.in begins on Tuesday next week at Bangalore. I will be conducting two workouts, one on Ayttm: Face Lifts, Porting and Hacks and Libyahoo2: Getting up to speed. As of now, the libyahoo2 workout is set for Day 1 and Ayttm is set for Day 4. This means I will miss the Debian POTD talks and workouts, which I really wanted to attend. Also, Philip has his Shut up and hack workout scheduled on Day 4 too, so we may have to try for a reschedule for either ayttm or shut-up-and-hack.

I've also started hacking on the chat windows stuff in ayttm to make them the way I want them to be. If I'm not done with them by the time I get to FOSS.in, I'll most likely continue hacking on it during the event and/or during the Ayttm workout. Those who like the dirty details may read on.

The current chat windows and chat room code is slightly bulky and a lot of code is duplicated. Also, the chat logic and UI stuff is all mixed up, which makes reading code difficult in some places. I'm trying to change this into a slightly different model. Introducing Conversation, which defines pretty much from individual chats to conferences to chat rooms. This component will be responsible for all chat logic. This in turn simplifies my ChatRoom stuff since it is just a buddy list more than the ChatWindow. Also, both ChatWindow and ChatRoom will only be passing events to Conversation and dumping HTML messages (from Conversation) to their respective chat boxes. I'm aiming to reduce the code size as well as build in some extensibility (service specific toolbar buttons for example) as a result of this rewrite. Another unintended result would be a slightly reworked UI. Read the ayttm journal or follow the ayttm-devel mailing list to know what's going on there.


Comments are closed.