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 ;)
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.
A great event to go to if you want to know exactly how many and how much Indians are contributing to FOSS. Major contribution seems to be coming on the KDE and the Linux kernel front.
Workouts must have been great -- didn't get a chance (nor was I adequately prepared) to go to any of them since I was busy with my own little workout -- trying to get asynchronous connection going on ayttm. It's almost working now, except for SSL stuff. It has nothing to do with connection management really. It has something to do with threads, callbacks and the main loop. If you look into the implementation of eb_do_no_callback_dialog () and imagine it to be in a different thread than that in the main loop, you'll have an idea of what I'm talking about. I hope I'll have it fixed before I leave for Mumbai on Monday.
Oh, and met Philip for the first time in person. We had an ayttm BoF session today, in which I struggled with the SSL stuff and Philip and Pradeep tried to get ayttm to compile on Pradeep's laptop.
I'm at FOSS.in right now, listening to Rahul Bhalerao and hacking at ayttm till my laptop charge lasts (which is another 40 minutes now... must learn to conserve better).
Right now I'm trying to do fully asynchronous connects for ayttm. Currently, DNS lookups are synchronous and will hang up whenever there's no network and no cached DNS. It's worse with proxy -- the whole thing is synchronous.
It's been (and continues to be) an exhausting week at work. I've been away from home from 6:00 AM to around 11:00 PM everyday and been buried upto my my brow in production problems, UAT releases and the "Why the hell is this written like this". Yahoo, MSN File Transfer have taken a reluctant back seat.
Between all this I got a response (two actually) to my request to my employers to sponsor my trip to Bangalore for FOSS.in if I get a chance to talk on Ayttm. I had made the request two weeks ago and finally got an encouraging response. Turns out that we have an "Open Source Group" and their Head seemed to be all for it.
Now waiting for FOSS.in/2008 to open up registrations so that we can propose a Project Day for Ayttm.