Telemetrics
From begug
Contents |
Telemetrics
The telemetrics application is currently used for monitoring the water levels and wind speeds along Belgian rivers and channels. It shows graphs, geographical overviews and generates alarms when levels exceed their boundaries or when there is a technical defect (see screenshots below).
The original goal of the project was to add functionality on an existing application, based on Hibernate and plain JSP. After having played a little with Grails, the questions arose whether it would be faster to start over from scratch using Grails. So we took a shot at it...
In the begining
As always when using a new tool or framework for the first beyond the "Hello world!", we also had our troubles, only this time there were not that many and not so hard:
- IDE support: we had to switch to IntelliJ IDEA because it is still the only IDE with decent Groovy and Grails support
- The dynamic nature of Groovy: the conciseness of Groovy code makes it fun to read, but it can be harder to write because a lot of typos only show up at run time.
- Bugs and missing features: Grails is still a young framework, but growing steadily.
Awesome
It was a lot of fun spicing up functionality with a lot less code in a lot less time then I was used to, because of:
- Drastic shorter development cycle: by the time you switch from the IDE to the browser, the code changes are already effective. Compare that with the hours I spend waiting for an EAR to re-deploy!
- The power of Groovy: closures and dynamic methods.
- GSP's and taglibs: what JSP should have been.
- The convention-over-configuration paradigm: no boilerplate code.
- Short learning curve: we could reuse our existing Hibernate and Spring experience.
- Community support: if its not in the documentation, you'll find it in the mailing list.
Plugins
New plugins for Grails are emerging at rapid pace. Telemetrics also uses some of them:
- Webflow: webflow comes with the standard Grails distribution. We experimented with it and came to the conclusion that it is nice, but some major features are still missing. Read more about Combining Grails MVC and Webflow
- Cannoo webtest: fast and easy functional testing, although we had change the plugin to make it run headless in Bamboo.
- jSecurity: no-nonsense authentication and authorization, works quite nice.
- Mail plugin: it makes Spring mail just a little bit easier.
- Audig-logging: it was a requirement to track all configuration changes done by users. The only work to be done was i18n (and installing a patch for a weird bug wit PostgreSQL).
- FieldsTagLib: this is not a plugin (yet), just a small taglib to Make your GSP's DRY
Screen shots
The dashboard view:
Water levels alongside a channel:
A combined graph (JFreeChart):


