I had a great time at the Hanze University of Applied Sciences in Groningen today. In the bioinformatics department, NetBeans IDE is used to teach Java to third year students (who learn Python during their first year and R during their second year) and Michiel Noback (who I've known for about 3 years, since I delivered a NetBeans Platform course there at some stage), their Java teacher, invited me to do an "advanced NetBeans workshop".
The whole group, including some of the teachers, came to about 30. Many key things about NetBeans were covered, including its history and the many community activities going on in the open source work in and around NetBeans. And then we got down to some work in the IDE. Firstly, we looked at the HTML support, including the NetBeans Chrome Connector plugin. (Basically, we did most things from this YouTube movie.) After that, quite a bit of Java coding (including the handy Cheat Sheet plugin), with many tips and tricks, e.g., heaps of productivity tips, about keyboard shortcuts, code templates, code generators, settings in the Options window, etc. The students were split into groups and had to choose their favorite code templates and then we discussed them and where they could be useful. The Dark Look And Feel Themes plugin (in the Plugin Manager) was very popular, as well as netbeansthemes.com and svenspruijt.nl/themebuilder. Within no time at all, many of the students had set up a customized Sublime-like appearance in the IDE. And, right at the end, in the last hour, we looked at the NetBeans Debugger and there were some small tasks that the students worked on in groups. Conditional breakpoints and dependent breakpoints were examined, while I demonstrated the Beep plugin that adds custom sounds to breakpoints.
A pretty good and intense (from 12.30 to 17.00 with a couple of break in between) session.
Michiel Noback had a fantastic feature request that I started and finished on the train home and am blogging about now in the train: the possibility of setting runtime properties in Ant-based projects without needing to go all the way to the Project Properties dialog:
The element in the status bar listens for the current project, gets its runtime arguments, lets you change them (press Enter to confirm, at which point they're written into nbproject/private/private.properties, which is where the 'application.args' property is stored), which means the runtime arguments are changed, without you having needed to go all the way to the Run tab of the Project Properties dialog. Handy when you're a teacher opening many different projects (i.e., from your students) and needing to change the application arguments to read in various files. Get the plugin here!
Slides used during the first part of the presentation to give some structure to the workshop are here.