Friday, April 11, 2014

From the Ground up (GSoC Part 3)

Well, this was it. I knew I was a fish out of water (unfortunately I didn't have a helmet either). There was no way I would be able to start this entire project over from scratch. But I knew this is what I had to do, I had been selected for this project for a reason.

I knew I had to get the most basic features down before I could do anything else. And in my mind, nothing was simpler than a box showing up on the screen. I set forth attempting to get a box to show up on the screen...

And this took me about two days. Two days just to get a box on the screen. This could not end well, but as I continued to work, and continued to add features to this "box," I realized I was actually accomplishing something. I used some of the old prototype code (stuff that I would never have been able to write), and implemented it in the new code base. I repeatedly visited API's, forums, and blogs. These were my life blood for the entirety of the summer.

Each and every day, I found myself accomplishing things that I never imagined I could do. I was working with the backend of Eclipse, and IDE that I used in my introduction to Programming class just one semester before. How could I possibly be working to improve that software? What did I know that I should be implementing new features? But, I kept working. I kept getting closer and closer to a finished project.

When time came for our midterm evaluation, I gave my mentor the best possible marks in all categories. His mentoring style was exactly what I needed. I got one email from him every week, and it asked "How is your progress this week?" I would respond with a detail list of exactly what was happening in the code that week. And every week I would get "Very nice! Keep up the good work!" That was it. That was all I needed. When I got my evaluation email from Google, it said I passed with the highest marks possible. (Which was great, because I knew I was doing as much as I could, so if I had received poor marks, it would have meant I wasn't cut out for this program!)

Sadly, at the midterm evaluation, I lost my partner from Egypt. He was dealing with some major issues in his home country that kept him from being able to work as much as he had anticipated. So I was alone in my endeavors! So, for the remainder of the summer, I kept working and chugging along.

When it came time for "soft pencils down," meaning this was the date that Google suggested we should be done coding and begin documentation and code cleanup. I was more than ready for a good break, and I took advantage of the two week down time to make sure my code was easy to understand and full of comments (remembering the lesson I learned day 1 of the experience). Then came for the "hard pencils down" date, which was the absolute deadline... Code must be turn-in ready at this point. *Gulp*

On the day before submission, my mentor asks me to send him the completed version of the code, which I was happy to do. He attempts to install it on his machine, key word being attempts. It didn't work. This code I spent 8-10 weeks developing didn't work. What was I supposed to do, it was to be turned in in less than 24 hours. I was devastated. I skipped all of my classes that day to fix the problems I was having. I put in an extra ~15 hours in the one day to make sure the code was perfect. (and implement at least 2 new features that my mentor "forgot" to mention).

But, I did it. I developed this whole plug-in from a silly prototype that lacked basic functionality, to a full-fledged Eclipse Open-Source plugin.

Here's a preview of what the plugin looks like.
Here's a really small picture, but you know... it's the thought that counts


Here's the link to my completed work! Eclipse Array Explorer
And here is a link to the announcement from the University in Vienna!

Oh! I almost forgot the most important part! Look at my awesome t-shirt!

Well, this isn't actually MY shirt, but I have one just like it...

If you have any questions/comments about my GSoC experience, let me know!


No comments:

Post a Comment