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!


2 July 2014

Updates: University of California - San Diego admit, GSoC and more

It's been since 6 months since I last posted an update, and boy there have been some interesting developments!

I'm happy to share that I've been accepted into University of California, San Diego! I'll be pursuing a Masters degree in Computer Science. Going to silicon valley was a long cherished childhood dream. It's exhilarating to see the dream finally coming true! :)

I'm participating in Google Summer of Code this year too. I'll be leading the development of PDE X which will form the basis of the next major Processing release. Before starting GSoC, I worked on PDE X during March-April under the Processing Foundation Fellowship. I shall share the details of my GSoC project in a separate post.

A whooping 11 GSoC projects were selected this year under the Processing Foundation. So we can expect some really amazing results by the end of the summer. The Processing team had a big Hangouts meeting in June, where a lot of GSoC goals and tasks were discussed. It was awesome to interact with fellow team members from around the globe!

I also picked up some new skills by completing two Coursera courses: Machine Learning by Andrew Ng and Programming Mobile Applications for Android Handheld Systems by Adam Porter. The ML course was the more challenging one, with tricky assignments and quizzes. But it was a lot of fun to finally get that perfect score after lots of tries. The android course was less theory oriented and more practical. I learnt some interesting hands-on android prototyping. I hope I'll get around to launching that killer app one day. ;)

Final year at DTU is the time of campus placements. I landed a job offer in the month of January. It was an overseas software developer position. But I decided to opt for higher studies in the end. Looking forward to how that plays out in the coming two years. #yolo

P.S: I recently wrote a Quora answer on "How to build a good profile for graduate studies.." which you may consider checking out.

P.P.S: Stating the obvious, but I'm now finally a graduate! :D