19 August 2014

Google Summer of Code 2014 - It's a wrap!

Another amazing GSoC has come to a close. And it was busier than ever before! The Processing team had a big Hangouts meeting in June where we discussed various GSoC tasks and goals. I teamed up with my long time mentor Daniel Shiffman. My main aim this summer was to bring PDE X (my last year's project) to a stable state and make it the default editor for Processing 3.0. We decided to introduce only a few new features and instead focused most of our effort on polishing and refining what was already present.

Processing 3.0 alpha

The major tasks that team Manindra/Dan accomplished this summer were:
  1. New stuff:
    • PDE X is now the default mode for the PDE. It's been renamed to Java, so you won't see a separate PDE X Mode anymore.
    • Precise error highlighting - I implemented a new offset matching algorithm based on  the Wagner–Fischer algorithm. The exact error point in code is now underlined. Clicking on the error listing from the error table selects the exact code too. Previously, the entire line containing the error was underlined. It also improves refactoring and scroll to definition.
    • Ctrl + Space trigger for code completion - It's now possible to disable automatic code completion and set it to trigger manually with Ctrl+Space. You can find the toggles in Preferences.
    • Tab Outline - Pressing Ctrl + Y brings up a popup window with the tab names and a search bar. Type to filter tab names. It allows one to switch quickly between tabs. It's similar to the Sketch Outline view (Ctrl + L).
  2. Enhancements and tweaks:
    • A new sketchbook view, modeled after Examples window - It's now possible to view that 1000+ sketches long sketchbook easily, no more scrolling JMenus.
    • Simplified Error Messages - Dan and I finally got around to implementing this one. We tabulated the most common error messages and trimmed the jargon to make them beginner friendly.
    • Error checking is now less aggressive and (hopefully) less distracting.
    • Enhancements to code completion - Dynamic completion popup size, overloaded methods no longer show up repeated, improvements to caret positioning and more.
    • PDE X menu has been cleaned up and renamed to 'Debug' containing only the Debugger menu items. Some important settings of PDE X have been moved to the Preferences window.
    • Compatibility with Java tabs - although many of the advanced IDE features are disabled, Java tabs can be edited without any funny exceptions getting thrown.
    • Improved comment toggle behavior 
  3. 30+ bugs were fixed as they came up during the development & testing phase, including some major ones like this and this.
  4. The processing-experimental repo was merged back into the main processing repo. This was really fun - I had to pull off something similar to the coolest merge ever.
  5. I created a wiki page on Contributing to Processing with Pull Requests. If you're thinking of contributing to Processing's development, you should definitely check it out. (It'll be fun! I promise.)
On popular demand, Tweak Mode has finally been integrated into the main editor thanks to the awesome work by fellow Processing GSoC student Gal Sasson. Go to Sketch menu > Tweak

Processing 3.0 alphas have started rolling out since last month and things are looking great. Beta releases can be expected pretty soon. A lot of other stuff has changed under the hood too. Checkout revisions.txt for everything that's new and improved. Please help us test and report any bugs you encounter. We always appreciate the help with testing.

I also owe a special thanks to the members of the Processing community. They were very helpful and proactive in reporting bugs and discussing issues. A few of them even submitted patches for PDE X! Seeing other developers send PRs to your project to fix bugs is one of the best feelings as a developer.

Throughout the project, Dan was helpful and supportive as ever. While my previous GSoC involved adding tons of new features to PDE X, this summer was all about hammering bugs and fine tuning the existing stuff. There's a wide gulf between software that's just working and software that's stable and ready to ship - a lesson I got to learn first hand. Overall, it was a lot of fun working with fellow GSoC students and members of the Processing team.

And finally a big shout out to Google and their Open Source Programs Office for making this 10th GSoC the best one yet!


No comments:

Post a Comment