Back from Goa

My Goa trip was simply fantabulous. Apart from the fact that Goa is a great place for a vacation, I was accompanied by 7 of my college friends which made the trip one that I will cherish for a long time to come.We left Bangalore by bus on the 15th. The journey was pleasant and the view next morning was absolutely stunning:

The bus dropped us off at the Panaji bus terminus, and we took a shuttle from there to Vasco – where Ameya (our host) lived. After a nice lunch and a nap, we took off to the beach closest to base camp – Bogmalo. The beach was a quiet and clean with relatively few people around, which made it possible for us to play a game of beach football. We returned home after jumping around in a sea for a while.

We hired a couple of Activa’s the next day (this seems to be the norm for transportation in Goa) and reached Old Goa in an hour or so. We visited the really old church, which was really impressive – it also contained the remains of St. Francis Xavier. The archaeological museum next door was fun too, very informative about the history of Goa. We proceeded to the capital city of Panaji next, and after booking tickets for a river cruise aboard the Princess de Goa for the night, had lunch at the QuarterDeck.

After lunch, we visited Donapaula, a popular Jetty, which was unfortunately under renovation or something. The view was great though, and we enjoyed a nice little ride on the water scooter. After hanging out in Cafe Coffee Day for a while (These places are *everywhere*, I think they’re trying to become the Indian Starbucks :) ) we reached the Panaji river coast to board the Princess de Goa. These river cruises seem to be a popular attraction, they basically consist of a few dance shows, a dance floor and an amazing view. We got to see the (in?)famous floating casino on the way too.

My Summer of Code mentor, Matt Lawless, happened to be in Goa too, so we scheduled lunch for the next day. We met at the Calangute post office (which was somewhat close to Matt’s home) and proceeded to the Calangute beach after lunch. My friends, meanwhile, reached the Baga beach, which was just next door to the Calangute beach (the two most famous beaches in Goa). We splashed around in the water for a while, joined by Matt, and then a second lunch :)

Matt decided to leave, and we went on to try some of the water sports at the beach. We went for a banana ride, a water scooter trip, but the one that took the cake was the parasailing. Nothing like a gentle ride in the sky to rejuvenate you. Flying over water with the beach behind you and the sunset in front is an experience I can’t put in words :)

The third and last day began with a long ride to south Goa, where we first visited the Benauli beach. This beach was beautiful, the sand was different than the others, and the most fun part was when I was buried by the others:

The rest of the day was spent at GoaKart, which was apparently a national Karting track. Parasailing was great, but karting was really the most exhilarating, especially because we raced and went for 4 rounds :D

Flickr didn’t let me upload more than 100MB of photos at once, so I moved to Picasa Web Albums instead. I wrote a small script: backr.py that uses James Clarke’s flickr.py to back up all my photos and uploaded them to Picasa Web, which allows me to create as many albums as I want (unlike Flickr).

So, I guess that’s a few more items off my “list of things to do before I die”!

FOSS.IN 07: Day 5

The final day of FOSS.IN! Because we slept a little late we could reach the venue only by 11:00, just enough to catch the end of AfC’s talk on ‘User to Hacker in 90 minutes’. We had some fun when Shreyas had his IRC client open in the background of a demo he was doing with AfC at the talk :)

The talk was followed by Rasmus on the PHP Internals. The talk was mostly about how PHP started, what problems does it solve, how PHP development was organized. He even spoke about PHP-GTK for about 30 seconds which I was really happy about :D

After lunch, I attended Rusty’s talk on talloc, a hierarchical memory allocator which seems to be really nifty. These Samba guys really rule, with projects like distcc, ccache and now talloc. /me bows to Andrew Tridgell. And no-one better than Rusty to present – he is an amazing guy with awesome presentation skills.

We had another session of lightning talks (which wasn’t as exciting as yesterday), but there were some nice highlights such as the talk on making the perfect omelet and why Danese likes India!

The closing ceremony was preceded by Rusty’s attempt at inspiring the audience to contribute to FOSS projects. Rusty Rules. Period. You can see one of the results of Rusty’s interaction with the audience here :)

During the closing ceremony there was a string of announcements about the FOSS related events that were coming up over the next year all over India, which was really cool. FOSS.IN also pledged to support these events with Rs. 50,000/- each – Way to go Team FOSS.IN!

The closing ceremony was a fitting end to this spectacular event. And thus, this year’s largest Indian FOSS conference ended. What a roll.

P.S. Pictures from many attendees have slowly began to appear on Flickr. Look out for lots more in the coming days.

FOSS.IN 07: Day 4

Day 4 was like another Mozilla project day for us. We arrived at the venue at 10:00 sharp and headed towards the hack center for the Mozilla hackathon. After checking out the Mozilla sources, we began looking for bugs that would be easy to solve. We did find two of them from the ‘Good First Bugs‘ page and actually found another bug that Prasad filed. Myk led us through the entire process of finding out the source that was causing the bug, zeroing in on a fix, creating a patch and getting the patch checked in. This was the very first bug I had squashed on Mozilla, and we learnt a lot about the whole Mozilla review process.

After lunch we attended Mitchell Baker‘s talk on the Mozilla project. I didn’t know that the Mozilla Corporation was actually Not-for-profit, which is really cool. Immediately after Mitchell’s talk we attended Myk’s talk on ‘Hacking the Fox‘ – in which he interactively went through the process hacking on Firefox without checking out the sources. He solved bug #189290 and submitted a patch during the talk, showing everyone what exactly the whole process looked like.

I couldn’t be at the Gentoo stall the whole time, but during the small periods I was, there was a really good crowd around it. I think the stall was a huge success for us, and we were able to distribute LiveCD’s and Minimal x86 CD’s of the 2007.0 release yesterday.

At around 17:00, the lightning talk sessions began, and it turned out to be really popular! A lot of people came on stage to speak about anything under the sun for 3 minutes which was awesome. I gave a lightning talk on the ‘lightning talk timer’ I had hacked up for the event. It was just a whole lot of fun and we’re going to be having another session today.

Axel, Myk, Chris, Prasad, Rahul & Myself then left the venue for some typical Indian street-food at Gangotree. We had expected a place where we could sit and eat, but the nearest one turned out to be a small stall. We ate some Paapdi Chaat (which they couldn’t really swallow!), Pani Puri, Besan Laddoo and Badam Burfi nevertheless – which was a nice experience for the Mozilla folks. Mary couldn’t make it because she was busy trying to get the Mozilla t-shirts out of customs (she eventually succeeded – Yay!).

Well, that’s about it – I’m looking forward to the final day of FOSS.IN – we have some really interesting talks lined up for today. It’s been one hell of a ride so far!

Freed!

A long overdue update; Freed.IN this year was a bundle of joy. I caught up with a majority of the #linux-india regulars, and met some of them for the first time (ilug-bom-ers mostly).

The event started a bit late (nothing unexpected), but everyone quickly caught up with the schedule over the course of the day. I attended Gopal’s talk on 10 things I didn’t about Python – the concluding demo on getting the Wii remote to control beryl was especially wicked. Immediately after that was my talk on Plan 9, which had more attendees than I would have expected. Niyam’s talk on FOSS multimedia tools was a real crowd-puller, and the samples were very impressive. We had a key-signing party that afternoon, which was fun; if it weren’t for the embarrassment of showing ID cards with 10-year old pictures on them ;)

I missed lunch on the first day thanks to the talk on the Python Standard Library, but it was worth it. I made my way to the nearby JNU canteen and munched on a few snickers before returning to an extremely interesting panel discussion on whether LUG’s should provide commercial FOSS support. (Why did everyone have their hands above their shoulders?):

Prof. Andrew Lynn in deep thoughtValsa Williams in deep thoughtDr. Gora joins the club

Later that night, a bunch of speakers along with the ilugd crew found ourselves in the Golden Dragon for dinner; which can only be summarized by ramkrsna’s excellent photography:

At the Golden DragonDessertMe! No, that’s not a ciggarette :-p

The second day began with Raj’s thought-provoking talk on the issue of software patents, immediately followed by a talk on how FOSS can cut costs and keep customers happy at the same time, by Robin Miller (of Slashdot/Sourceforge/ThinkGeek fame). Niyam had another talk on digital creativity with FOSS. The day wound up with a vote of thanks, and a panel discussion on getting FOSS communities to work together. I had to reach Jaipur the next day, so I bid goodbye to all the wonderful folks; but they had an amazing dinner party later from what I hear.

An extremely fun event, executed in typical ilugd style, and definitely improved since freedel. In retrospect, some things may have been better; like keeping the talk halls a bit closer to each other, choosing a more tighter set of talks (there were too many to attend!) and not make lunch clash with any talk! I would suggest Freed start charging for attendance next year to ensure that an interested audience turn up (you can make the lunch and a T-Shirt complimentary), and schedule talks with atleast a 10 minute gap between each other. The ilugd is all geared up for the next edition of the event, tentatively to be held in February 08. See you then!

Angled and More

Well, looks like it’s time for the annual “great summer” report!

I managed to finish my GSoC project for Plan 9 from Bell Labs this year well in time, and I’m quite pleased with myself. I learned so much, and got to spend time with some of the most brilliant people in the field of computer science… it’s been so amazing that I’m at a loss for words.

I had so much fun implementing the 9P protocol in JavaScript that I almost immeditey began a native PHP implementation; right now I’m polishing it for inclusion in PEAR. And hopefully, someday, my bindings over libixp might get included as a bundled extension in the PHP distribution.

Another cool thing I managed to do this summer was build a firefox extension. Nothing too fancy, but I’m still happy with what I managed to do. Times like this, I can’t help but bow to the IRC and Usenet overlords – couldn’t have done it without the help of those dozens of people!

After working with Plan 9 for a while, I got this crazy idea of trying to build a toy OS of my own, just for kicks. Really, looking at the source code for Plan 9 makes you believe that you don’t have to be a rockstar to build an operating system. Sure enough, after some help from the folks at osdev, I managed to get “Hello World!” on the Parallels virtual machine screen. I feel good.

Freed.IN is coming up (formerly known as Freedel), and I sent in a proposal on creating synthetic file-systems with (guess what) 9P. Irrespective of whether my talk is chosen or not, I’m going to Delhi; there’s too much fun involved to even think about missing :)

Oh, and, I got myself a job (tee-hee) at the Computer Sciences Corporation. But, well, Yahoo! is visiting our campus on the 4th… let’s see what the future holds for me.

Also, if you’re wondering why I haven’t posted in a while, you’re reading the wrong feed. Allow me to point you to my aggregated feed – you’ll see that I have, infact, been posting stuff whole summer :)

Say Hello to Angled 0.1!

I feel like I’m in the seventh heaven. After a few sleepless nights struggling with Mozilla’s XPCOM, I finally got the 9P Firefox plugin to work.

The plugin is called Angled (an anagram of Glenda, the Plan 9 bunny) and is in a pretty simplistic state right now: you can read any files served by 9P right in your browser window. Let’s take a step by step look.

First I startup Inferno to start a 9P server. ${INFERNO}/usr/anant/home is symlinked to my actual home directory, /Users/anant:

$ emu
; runas nobody {listen -A tcp!localhost!1564 {export /usr/anant/home &}}

Let’s see what files are actually there:

[theghost web9]$ pwd
/Users/anant/Plan9/web9
[theghost web9]$ ls
README TODO   js9p   php9p

Alright, I open my browser window and type ‘ninep://localhost!1564/Plan9/web9/README’ into the address bar. I could also say ‘tcp!localhost!1564′, but TCP is the only protocol available for Angled, so it would be redundant. Now, for the goodies: Screenshots!

Read Text files over 9P

Cool! But wait, Angled also displays binary files right in the browser. There’s a catch though, it will only work for binary files that can be viewed directly in the browser window. Certain types of files (.doc for example) do trigger a download request, but then become corrupted for some reason.

[theghost content]$ pwd
/Users/anant/Plan9/web9/js9p/angled/content
[theghost content]$ ls
angled.png         firefoxOverlay.xul glenda-error.png   overlay.js

Let’s say I want to view angled.png. Here’s what I get:

Angled shows Images too

Okay, but what if you type in a URL that points to an invalid file? Check this out:

Errors in Angled

Sweet! I’m yet to figure out how to transmit the exact error message to that page, so you’ll have to make do with that generic image for now.

Okay, now onto the bad parts. Angled doesn’t support authentication yet (although the base JS implementation is capable of generating and parsing auth messages). Next, you won’t get directory listings (you’ll get a bunch of binary gibberish which is actually Rstat messages for the directory’s contents). Also, I’m doing the 9P connection and transactions in a blocking thread, so the UI freezes while all that is done. I couldn’t feel the difference since I was testing on my local 9P server, but connecting to remote 9P servers won’t be a pleasant experience. The solution to this is to create a custom nsIChannel implementation, which is a lot of work… I’ll do it when I get to it ;)

Enjoy!

Follow

Get every new post delivered to your Inbox.