That’s it, folks.
Google’s Summer of Code is officially over (it’s been over for about 20 minutes now). I thought I’d write the mandatory long post where I talk about my experiences during the summer and all that. So here it goes.
The ghost of The Old GUI
I obviously had lots of fun during the project, and I knew since the beginning I was going to enjoy the experience. I applied with 3 projects for GSoC and the three of them involved hefty amounts of graphics programming because basically that’s the only thing I can spend a whole summer working on.
On the other hand, I wasn’t really expecting the experience to be that harsh (enlightening, yes, but harsh). First off, when writing my application I went so overboard with features, plans and schedules that after a quick review I almost wanted to cry. I obviously didn’t, because I’m such a manly man. But still, you get the point… A vector renderer from scratch, a new format for theme description, a new parser for that format… the list goes on and on. After all, it hasn’t been a sweatshop-like task, that’s for sure, but let’s just say I would have liked to spend this summer a little more time closer to boobies and a little more more time away from GDB.
And then there’s also the issue with feedback. Massive, scary feedback. When you write that many lines of code, you always have lots of bugs. And the more code you write, the more bugs that pop out. And you fix them.
But the thing is that I’m not writing code here. I’m rewriting on top of a massive code base that has been written over the course of many months, and has been mature for many more months. And there’s always that ghost roaming your project: Your GUI not only has bugs… It has glitches. It doesn’t do this or that the old GUI did. It does that but it doesn’t do it in exactly the same way. THAT TEXT IS OFF PLACE!!
And it can be a tad nightmarish. Facing the ghost of the Old GUI can be a pain in the ass. But I’d say I’ve defeated him; with the help of many people, of course, and based of tons and tons of negative yet necessary feedback. That’s why I’d like to apologize (again) if I ever reacted in a moronic-witty manner towards the so required and welcome feedback I’ve received during the summer. Either way, I’d say that it turned out quite good.
Oh how I love thee, Mr. Schickel
I’ve just read this morning on LordHoto’s blog (yes, I know, I’m kind of late… I like that) that he feels he hasn’t been a good mentor at all. I guess that wasn’t really serious (maybe it was just a temporary dramamoment!), since it usually goes the other way around: Students think that they haven’t been up to the task. But whatever, the fact is that I think I have been a great student (HA), and I also think he has been a more-than-great mentor in many many ways — so I just wanted to point that fact out. And to thank him again for all the work he’s done during the summer.
And while I’m throwing props around, I’d like to send some to my favorite overlords from hell, Max and Eugene, just for being there, for all the work they do, for being supportive and for being downright cool.
Lastly, I’d like to bow down before DrMcCoy. He has really been the living incarnation of the Ghost of The Old GUI this summer. I actually had a couple dreams about him. BAD dreams. But I’d like to point out how much I appreciate all the time he has invested on me and my project when he obviously wasn’t required to do so. Really. Thanks tons. bows down
A status report
LordHoto asked me for a status report -and what a better place to do it than in this final blog post.
The new Graphical User Interface has traveled a long way this summer - from being a simple pixel-renderer to being a… huh… an actual Graphical User Interface. It still has bugs -all programs do- and it still doesn’t replicate the old GUI pixel-per-pixel (read the book I wrote on the ghost of the Old GUI). But it’s there, standing still after just 2 months of work. Ok, make that three months. But you get the point.
As I stated above, I went completely nuts with my goals. And I’ve ran out of time. Somehow, I did actually divide goals on my Application into “Main Goals” and “Optional Goals”, and that’s a good thing, because whilst I’ve managed to take on all the main goals -and accomplished them in a pretty good manner, I must add-, I haven’t really had time to even think about optional goals (those were TTF fonts and localization support, basically). I guess that kind of fits into the meaning of the word optional.
But anyways, enough talking about what hasn’t been done; let’s talk about what has been done.
I’m really happy about the outcome of the project. In fact, I’m actually hyped about the outcome - in the middle of the summer, I wasn’t really expecting it’d end up like it. I may probably be ego-tripping here, but I’m really proud of much of the code I’ve written this summer. The vector renderer design is smart, and it’s really extendable (although that was basically LordHoto’s idea, but whatever), and the new STX format is… Straight and simple. I think it’s a good idea. The way that drawsteps work, and specially, very very specially the way that Flowing Layouts work make me all tingly on the inside.
Either way, I do acknowledge that the GUI has its issues and its shortcomings - many of these because of the fact that I’ve run so out of time. Besides a few graphical glitches (i.e. when replicating the old GUI), there’s one big issue in the GUI in my opinion: the shadow renderer. It does not look good and I know it - the shadows aren’t even soft, although I must admit it is quite fast. That’s really calling for a rewrite, and I’m sure that there are lots of other places that could use some work (performance, anyone?), and lots of places that could use some testing; the kind of stuff that you do without pressure or schedules. But that’s gonna have to wait a while…
So what happens now?
Right now, and to celebrate that the GSoC is officially over, I’m going to fade out for two weeks to work on some personal stuff while LordHoto takes up the daunting task of evaluating my summer work.
I really need to forget -at least temporarily- about graphical user interfaces, XML, vectorial drawing and all the kind of stuff that has been haunting my mind during this summer.
After the evaluation period is over, I’ll be back (read that in a menacing voice), and I’ll resume my work on my project until it’s solid enough to be merged into the trunk. We’ll see how it goes - and after that no one knows what will happen. I’ll probably start contributing to Residual if next years university schedules allow me to do so. That project really needs some love!
So, this is it for this summer folks. Thanks for reading, I’ll see you in two weeks from my new blog (I kind of need a new one, I don’t think I can take this Scummer of Code pun any longer).
And no, this time there are no jokes regarding plane tickets to Germany and kicking some witty german ass. Why should I?
Out, -Tanoku.