GSoC Mentor Summit ‘09 Roundup

The grand Summer of Code Mentor Summit of 2009 concluded last week and I had the fantastic opportunity of being able to attend on behalf of Gentoo, Plan 9 and Mozilla. What follows is some indication of how awesome the summit was:

(Photo courtesy of warthog from Etherboot)

I met so many folks I’d only interacted with online so far (the classic nickname-to-face matching), but even better was the opportunity to meet folks powering open source projects from so many diverse backgrounds. I met many of my personal rockstars, and learned about a bunch of open source projects I’d never heard of :)

Also, one of the things that is only possible at an event like the summit was the ability to get a whole bunch of non-linux operating system groups in one room. We had a great discussion, and it resulted in the creation of the “rosetta-os” special interest group. Look for more activity on the common device drivers for non-linux operating systems front soon!

Other sessions worthy of special mention were Open Source Security, Recruiting and Retaining Awesome People, Advanced Trolling (yes, you read that right), and of course the always welcoming Casablanca where I spent most of my time. We discussed everything from our SoC experiences to the Afro Celt Sound System in that room, always full of creative energy and warmth.

After 4 years of participating in the Summer of Code, I am super happy to have finally met the faces behind the program. Every single person I met over the course of last weekend was friendly, intelligent and just generally awesome; that sort of thing doesn’t happen by chance. I feel warm and fuzzy inside to think that I’m actually a part of the revolution that is free and open source software, three cheers to everyone that made it possible!

Posted by Anant on November 1st, 2009 in FOSS, Fun, Gentoo, Google, Mozilla, People, Photos, Plan9, SoC | 1 Comment

The Summer of Code is here again!

It’s that time of the year. Google is, yet again, sponsoring students to write some awesome open source code this summer. If you’re a student, and you’d like to make some money contributing to some of the most well known and exciting open source software projects out there, you’d be missing out on a lot by not applying.

If you’re wondering about what the best way to get started is, check out this great advice page. All projects have also been tagged by programming language and field in this delicious profile. You can also search for ideas here.

I’m going to be mentoring for Mozilla, Glendix (under the Plan 9 Umbrella) and Gentoo this year. Get in touch if you’re interested in any of those ideas :)

The window for applications opens in a few hours. Good luck everyone!

Posted by Anant on March 23rd, 2009 in FOSS, Gentoo, Glendix, Google, Mozilla, Plan9, Programming, SoC, Technology | No Comments

FOSS.IN/08: Summary

As a developer, I have to say that FOSS.IN/08 is possibly the most productive conference I’ve been to until now! In just 5 days, I’ve got more things done than I have in the last 5 months :-)

Let’s start with the Beacon workout: Nandeep joined us via VoIP and we got started almost immediately, thanks to the dynamic nature and small size of our project – we didn’t have any infrastructural trouble as a few other C/C++ projects with huge codebases and complex build systems did. We had a list of 6 tasks in mind, and we managed to complete 3 of them. Salil Kothadia got started with writing a PDO data backend, and promptly submitted the patch to us next day. Thanks Salil, hope you continue to contribute to the development of Beacon (thereby increasing the development team size by 25%)!

I also attended Philip’s workout on porting HTML::Template to Javascript. As mentioned on the Wiki page, we mostly worked on the design during the first half or so, and then moved on to writing a skeleton for the whole framework. I think this is an extremely interesting project, and am very happy to be associated with its birth. Hope we can continue the momentum and work until it is finished.

Perhaps the biggest take-away from the conference for me was the ability to give a lightning talk about Glendix, with several kernel hackers present in the audience. Christoph then kindly offered to review some of the patches during the workout. Even the possibility of Plan 9 binary emulation being considered for inclusion into the main kernel tree is amazing, let alone the fact that I got the guidance of an experienced kernel hacker for a good 2 hours! I think the effort was largely successful – I now have a better idea of what I need to do in order to get a kernel patch in order, and also got a few hints as to how I can implement the missing bits.

My primary focus at the conference was to give a talk on Mozilla Labs and Innovation. I think I managed to stir up a decent amount of interest in the various Labs initiatives. I covered the different ways in which members of the community can contribute, specifically focussing on Weave, Ubiquity and the Concept Series. We even covered how easy it is to actually write an Ubiquity command. I now look forward to increased participation by the Indian Mozilla community in Labs projects. Don’t forget to thank Mary for all the goodies!

All this, apart from regular conference happenings like catching up with old friends, making new ones and free swag (great mugs and t-shirts this time around) makes FOSS.IN/08 one of the most successful conferences I’ve been to so far! I can’t wait for the 2009 edition :-D

Posted by Anant on November 30th, 2008 in Conferences, FOSS, FOSS.IN, Gentoo, Glendix, Hacks, Mozilla, People, Plan9, Programming | 2 Comments

Command History

Looks like everyone’s doing one of these around the blogosphere lately, so I’m joining in the fun:

[theghost ~]$ uname -a
Darwin theghost.local 9.2.2 Darwin Kernel Version 9.2.2: Tue Mar  4 21:17:34 PST 2008;
root:xnu-1228.4.31~1/RELEASE_I386 i386

[theghost ~]$ history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
118 ls
81 cd
61 hg
39 exit
29 vi
24 ssh
24 mate
23 grep
19 rm
9 wget

And for the Linux virtual machine:

anant@tg-nix ~ $ uname -a
Linux tg-nix 2.6.24-gentoo-r1 #32 SMP Sun Apr 13 09:15:20 IST 2008
i686 Genuine Intel(R) CPU T2600 @ 2.16GHz GenuineIntel GNU/Linux

anant@tg-nix ~ $ history|awk '{a[$2]++ } END{for(i in a){print a[i] " " i}}'|sort -rn|head
142 ls
88 cd
83 sudo
48 vi
33 emerge
30 exit
8 rm
8 mv
7 startx
7 cmake

I’m going to leave it for you to figure out what mate’ is :)

Posted by Anant on April 15th, 2008 in FOSS, Fun, Gentoo, Hacks, Linux, Mac, Programming | 4 Comments

Gentoo Politics

I’ve been a mere spectator to the recent controversy surrounding the revocation of the Gentoo Foundation’s NFP status and I really wasn’t convinced one way or another. Daniel Robbins’ most recent post though, polarized me.

It’s been said a countless number of times already, but I’ll say it again – whether or not the Gentoo Foundation is legally recognized in the state of New Mexico (a really small part of the world, let me remind you) has no effect whatsoever on the technical functioning of Gentoo as a whole. There’s a lot of activity, people are still committing to the tree and progress is made every second. The users may not be aware of that, presumably because developers don’t “care enough”. Ok, you spoke, we heard, and we’re taking steps to bridge the divide. The newsletter has been resurrected, the PR team has a new lead etc. etc. But that’s an issue completely orthogonal to whether or not the Gentoo Foundation is legal, so please treat it as such.

Let me quote a para from Daniel’s post here:

Also, if what Grant said is correct – that the Foundation is basically stuck with developers and just developers as voting members, then it will be very hard to fix the user/developer disconnect in the Gentoo community via the Foundation as it currently exists. This would mean that the Foundation is pretty much stuck in a rut, unable to fulfill its responsibility of looking out for the health of the entire Gentoo community as a whole.

Again, I fail to understand how the legal status of the foundation affects the “health of the Gentoo community” as a whole. The foundation is simply a figurehead body that allows us to receive donations and have a bank account. If the *council* was left in a rut, now that would be something to be worried about. But it’s not, and things are therefore, goody good on the technical side.

How can you reasonably expect a person who engages in a one-way conversation all the time to “fix communication” between developers and users? How about the manner in which the person announces important things such as an offer to rejoin Gentoo as president – through a blog post? I’ve never seen something so thoroughly unprofessional – could you not even engage in a conversation regarding your concerns on the appropriate mailing list?

Sorry Daniel, but your pessimism is only angering the developers and users further – and you’re doing more harm than good.

To the users: things are beginning to settle down, I believe all the important paperwork has been filed and the foundation will regain its legal status soon (and as a bonus, as if it were never revoked). Things are fine, there’s no need for “drastic changes”. Don’t believe us? Too bad for you then, go use Debian.

Posted by Anant on January 22nd, 2008 in FOSS, Gentoo, People | 11 Comments

The Trampoline

Most programmers readily make use of recursion – it is indeed a very elegant solution for several problems, and results in much cleaner code. However, recursion brings along with it a drawback, the stack is filled up very quickly. Usually, this isn’t really much of a problem, since most desktops these days have decent memory and most language runtimes grow the stack automatically for you.

On embedded systems however, it’s a different story. Limited availability of resources forces you to write efficient code which is usually not very elegant. This is also true for recursions that loop a large number of times on normal machines – imagine finding the fibonacci series for the largest 64 bit number.

I recently had to write a cryptographic routine that was tree-recursive. I had 5 functions, let’s call them F, A, B, C and D. F was the entry point for the routine, and F calls one of A, B, C or D depending on the parameters passed to it. A, B, C and D, in turn call F again with a different set of arguments. This goes on until F detects a terminating condition, upon which it returns a value. A typical run would result in around 400 nested calls, which worked fine on my desktop, but not on the target platform (an embedded system).

The first step I took was to roll all A, B, C and D into F itself. This meant F became larger and more ugly (no more modularity!) but it reduced the nesting level by half. Now I had a single recursive function (which was not tail-recursive, obviously). This, unfortunately, wasn’t enough.

Then, I leant about a programming device called the trampoline. It’s a great way of attaining recursive properties while saving stack space. A trampoline is kind of marshal function that repeatedly calls your recursive function until a terminating condition is reached. The recursive function doesn’t recurse anymore, but instead just returns a true/false value that determines if there’s more work to be done or not:

boolean F(/* notice we don't have arguments */) {
arg1 = this.arg1; /* we load them from the class/global variables instead */
...
if (more_work) {
this.arg1 = something; /* save arguments for next call */
return false;
} else {
this.finalVal = finalReturnValue; /* we've reached termination */
return true;
}
}

int trampoline(arg1, ...) {
this.arg1 = arg1 /* initial argument setting */
...
while (true) {
if (F())
break;
}
return this.finalVal;
}

This way, we never reach a nesting level of more than 2, saving stack space by drastic amounts, with only a minimal addition to the heap load. The code doesn’t look that bad either. Definitely one of those ‘Aha!’ moments for me :)

Posted by Anant on December 30th, 2007 in FOSS, Gentoo, Hacks, Programming | 5 Comments

FOSS.IN: Day 3

Day 3: The first day of the main conference. We thought we were running late (left home only at 09:50 after getting our Gentoo T-Shirts on) but the inauguration ceremony started half-hour late (as usual!) so we were able to catch the whole action. After FOSS.IN/2007 was kicked off by Atul & Kishore, Naba Kumar came up to give the keynote on Anjuta DevStudio. I didn’t know the origin of the name Anjuta earlier, but it was certainly fascinating :)

I had my talk on contributing to Gentoo right after the keynote, and we started at 11:30 on the dot (the schedules in other rooms were on-time). Gora gave an excellent introduction, and I began speaking to a somewhat-filled room about the different entry points to Gentoo development. The audience were really interactive and the questions were brilliant – this is something that I really liked about this years edition of FOSS.IN. There was a lot more interest in Gentoo than I had originally anticipated and it was nice to see our stall really crowded immediately after the talk. Hopefully, we’ve brain-washed atleast two-dozen people into using Gentoo :). The remainder of the day was spent talking to people who approached our stall – it got a bit monotonous though, answering the same question “Why is Gentoo different?” over and over again. We’ve decided to print out an FAQ poster and put it up to make things a little more easier for us ;)

I had my third talk on Plan 9 from Bell Labs scheduled in the evening, right beside some really interesting stuff including the talk on PulseAudio and the lightning talk session. Again, I really didn’t expect much of a crowd for my talk, but I was happily mistaken. The room was not only full, but there were also people seated on the stairs and near the door! The talk went off really well, and I think it was *the* best talk I’ve delivered so far. The crowd was really smart and it was fun to interact with such an audience.We’ve planned to have a small Mozilla hack-a-thon today, let’s see how that goes. Besides that I’ve planned to attend a few other interesting talks. Looking forward to keeping the pace up, I’ll catch you all tomorrow!

Posted by Anant on December 7th, 2007 in Conferences, FOSS, FOSS.IN, Gentoo, Mozilla, People, Plan9 | No Comments

FOSS.IN: Day 2

We reached a little late for Day 2, because there were no talks in particular that we had wanted to attend. After reaching the venue at around 11:00, the first thing we did was to distribute the Gentoo t-shirts so folks could wear them today (the t-shirt needs one wash before wear). Shyam (fox2mike) had brought the Gentoo banner so we set that up in the stall. G0SUB and myself then attended pradeepto’s talk on setting up a KDE development environment. This was followed by an amazing demonstration of dtrace by the one and only GMan (Glynn Foster from Sun/GNOME). dtrace is really powerful, although I keep hearing about it, yesterday was the first time I actually understood how useful it is. After lunch, I attended Debarshi’s talk on Opyum, his summer of code project for this year. Also got to meet a bunch of other SoCers and we’ve all planned a SoC BoF along with a few mentors who are also present at the event.

Then we got busy distributing invites for the Mozilla party, and hung out with the Mozilla gang until it was time to leave. The party was at Opus which was a nice place with good (loud) music :). The karaoke was a big hit. After meeting a lot of people and having some good discussion, I decided to call it a day (I had two talks to prepare for!).Day 3 begins in a few hours – both my talks are today and we’re going to kick off the Gentoo stall, so I’m really excited. See you tomorrow with another update!

Posted by Anant on December 6th, 2007 in Conferences, FOSS, FOSS.IN, Gentoo, Mozilla, People | No Comments

FOSS.IN: Day 1

Quick update on the first day at FOSS.IN. We reached the venue at around 09:00 – the stalls were the first thing that caught my eye (especially the Sun & Google ones). After about 20 minutes of frantic organizers moving all over the venue at lightning speeds, all the speakers got registered and we moved to SDA/250 for the Mozilla PD.We started a little late – around 10:30 as opposed to 10:00. After brief introductions by Mary, Myk kicked off the project day with an excellent overview of the add-on scenario in Mozilla. This was followed by Prasad’s talk on building applications on the Mozilla platform. The calculator example – complete with it’s own add-on manager (for adding scientific support) – was a great way of giving the basics of Mozilla application development as was the highlight of the tutorial.

I gave the next talk on writing add-ons with JavaScript using XPConnect. Prasad and Myk had already covered a lot of ground on the basics of add-on and application development, so I was able to wrap up my talk in about half an hour – bringing us right back on schedule ;). The last talk of the first half was given by Mary which focussed on the various non-technical ways in which you could help Mozilla. The talk brought to light a lot of cool activities Mozilla was involved in. We broke for lunch at exactly 13:00, promising to meet back at 14:00 for the second half. Mary also kept a lot of Mozilla swag at the entrance of the hall – which included badges, mobile holders, tattoos, stickers and wrist bands. The crowd was ecstatic about them and needlessly to say that they were a great hit.

At lunch we caught up with a lot of other FOSS friends from #linux-india. Aanjhan transferred the Gentoo stickers which he kindly volunteered to print, and we hope to setup the Gentoo stall today so that we’re ready for tomorrow. I finally met G0SUB in real life, took me some time to recognize him because of the shaven beard though :). Post lunch we began with Krishnakant’s talk on accessibility in Mozilla, which as Gora said was an eye-opener is many ways for all of us. I was really impressed with the level of accessibility that the Gnome environment and Mozilla Firefox provided to the disabled. We discussed some ways in which accessibility could improve in Mozilla applications.The next talk was by Axel, which was about Localization in Mozilla. The coolest part of the talk was when Axel fixed a bug on localization (though it was ultimately closed as a WONTFIX!) because it gave a very good overview to the audience about the life-cycle of a bug. The final talk of the project day was by Chris Hoffman, which was about QA in Mozilla and how you can contribute to these areas which require some technical skills – “for people in the middle”.

We rounded off the project day with about an hour of one-on-one discussion with all the Mozilla folks, which was, in my opinion, the best part of the project day because we got to discuss a variety of topics (not only related to Mozilla or Technology even). We also decided to have a hack session for Mozilla, which would be tentatively on the 7th at the hack center.

After all the dust settled, we packed up around 18:30 and a group of around 12 went for dinner to “Sunny’s”, a nice Italian restaurant. Discussion on virtually everything ranging from food to movies and dtrace to macports ensued and we were done by around 21:00. After reaching home I just fell on my bed and now here I am, all geared up for FOSS.IN: Day 2! :)

Karunakar posted a few pics of Day 1 here, check them out.

Posted by Anant on December 5th, 2007 in Conferences, FOSS, FOSS.IN, Gentoo, Mozilla, People | No Comments

FOSS.IN: Day 0

FOSS.IN is here. Finally.I had been to the venue yesterday and I caught up with plenty of people, besides helping stuff the delegate kits with plenty of goodies (which I’m sure all the delegates will love). The venue looks great, the halls are awesome, and the excitement is high… I can’t wait to get started.

Later, I caught up with all the folks speaking at the Mozilla Project Day for Dinner at the Tandoor – I met Prasad, Krishnakant, Mary, Axel, Chris and Myk – all for the first time which was really nice.

Looking forward to a great day today, and I’ll keep posting events as they happen.

Posted by Anant on December 4th, 2007 in Conferences, FOSS, FOSS.IN, Gentoo, Mozilla, People | No Comments