Thursday, May 31, 2007

Swamped

So I couldn't figure out how to write the extension points that I was stuck on yesterday so I cried to my mentor, Markus, for help and he told me to go to the #eclipse-soc channel to discuss. About an hour later, we'd decided on a name change for the project (from eclipse-autoconf to org.eclipse.discovery), made a few architectural changes (like not using extension points. I'm still not sure about that), decided on a few constraints (using Java 1.3 instead of Java 5), and I was given 5 documents to read before making any further changes to my code. I am going to have Eclipse dripping out my ears by the end of this Summer, no doubt (but I'm still excited, I won't lie). You can read the meeting logs here. The guys in #eclipse-soc are hilarious.

Wednesday, May 30, 2007

First Payday

Yup. 500 smackeroos in the form of U.S. dollars were handed to me yesterday by Google, Inc. via Western Union Money Transfer. I was pleased in the process.

Today, at the suggestion of Markus Kuppe (my other Summer of Code mentor), I tried to create extension points in my auto-configuration plugin so that other plugins could attach their "resource-finders" to mine. Hmm, this might need some explanation... Y'see, Eclipse has these things called extension points which are kinna like sockets where you can plug in extensions. My plugin (Eclipse autoconf) will eventually plug into Eclipse and provide an engine that executes resource discovery rules (here's a link to my proposal again just so you know what's going on). Other plugin writers, instead of rewriting service discovery routines, will simply be able to write some kind of simplified script that says things like "check here and here and here for so and so service". Now they can plug their plugin (technically, they'll write *another* plugin for this) into the extension points in mine, my autoconf plugin at the right time will execute their rules, and voila! the end user sees a list of all the binaries, ports etc. that he would have had to fill out otherwise automagically filled out. So, that's why today I worked on adding extension points today. I don't understand how to define XML Schema and this is apparently required to define extension points, so I'll try and figure it all out tomorrow.

Tuesday, May 29, 2007

First commit

Today I made my first commit to Eclipse. Well, not to the Eclipse code base itself but to the Eclipse incubator project at SourceForge. Version 0.0.0.0.1 of Eclipse-autoconf is now available to the world at http://eclipse-incub.cvs.sourceforge.net/eclipse-incub/eclipse-autoconf/. All it does for now is pop-up a box that tells you whether you have a JRE installed at one location (the location where the JRE is installed on my computer). Of course the goal is to expand this so it discovers JREs in different places, publishes these locations to some format that the the Java plugins can use, expand the discovery services to other programs apart from the JRE etc. Yup, there's lots of work to be done but I've taken the first step on my thousand mile journey. Hellz Yeah.

By the way, I've been reading quite voraciously lately so I'll be posting each of my conquests as they fall. Last night, I read Simon Singh's "The Code Book". It's a fascinating account of code making and breaking throughout history, and its only whetting my appetite even more for the ICFP this year.

Monday, May 28, 2007

Aloha, World.

My name is Oge (or onnadi3 on the irc.freenode.net/#eclipse-soc) and I am participating in Google Summer of Code 2007, in partnership with the Eclipse foundation. My project aims to to design an Eclipse plugin that allows the binaries required by other Eclipse plugins to be automatically located. So, for example, let's say you installed the C++ plugin, my plugin would automatically tell that plugin where to find GCC or Visual C++ or whatever compiler you use so that YOU don't have to. Pretty sweet, eh? I thought so.

Well, I started work today. My goals were to get a "Hello, World" plugin running, put that code up on SourceForge, and then perhaps write some heuristics for finding the Java Runtime Environment on a system. I knocked out part 1 in 10 minutes (heheh), but then figuring out how to create modules in the CVS repository in SourceForge took about an hour and so I ran to one of my mentors, Herr Remy Suen, for help and moved on to part 3. Yeah...it ain't done either but I know how to do it and I'll be on its ass tomorrow. My work day is over now--ends at noon everyday--so I'll soon head out to play the piano and then start practicing for ICFP 2007.