Once more I enjoyed my week at Devoxx. Some of my notes:
Some interesting figures presented by Kirk Knoernschild in his architecture talks (koskinen):
- 50% of software development time is understanding the code
- 90% of time is maintenance
I saw a university session and presentation from him. While not new, he did make some interesting points about about architecture being are about what can easily be changed – or not – and explicitly making that choice.
In the university session, he made a case for really making the application modular by splitting in modules == jar files. These jars files should each have their own packages. This is especially important for OSGi (which interests me less at the moment), but is a best practice.
I also saw a university session about thucydides, a tool that helps for reporting on your acceptance tests. I want to look into this further. It helps you for creating your tests. You can mark some of them as not yet implemented yet, and produces many nice reports about your tests. Unfortunately, it was sometimes unclear that tests had failed (the junit test’s progress bar was green though not everything had passed). I would also like to see an integration with cucumber-jvm (apparently this is in progress). Two interesting tips :
- Use tags, for example to indicate iteration to see difference between current work and regression testing.
- Use PageObject extensions in your WebDriver test. This allow you to write an API for your user interface.
From the performance testing session:
- Use mpstat to see CPU activity (inc IO wait states).
- For IO wait state evaluation, use iostat to see usage of your drives.
From the maven puzzlers talk, use maven enforcer, see here. While I do not agree with all the comments on Maven and I did learn more than I expected and and was especially interesting to see that maven dependency resolution is not always what you would expect (especially regarding dependencyManagement in parent poms).
During one of the keynotes, Google said they just want us all to get online. Thay also want us to do so safely. They rightly said we should all use https. They also want us to use more OAuth2 en OpenId to assure that users don’t need to manage credentials. For OAuth2 I fully understand this, this is a a good way to integrate web applications. For OpenId I am more sceptic. Yes, managing identities this way is a good idea and can help against identity theft. However, this also means that the identity provider known exactly which applications you use and how often. I am not sure I want that. It can be a good option though. When not used, it should be stressed that applications should store passwords in a suitable way (for example using bcrypt).
When using OpenID, there is now a good solution to help you support many identity providers: accountchooser.
I saw a devops oriented talk which was too detailed about the language differences between Puppet and Chef. However, I picked up that I should look at Vagrant (just enough operating system) for setup and control of virtual machines. veewee can help building the images. Chef or puppet can be used to control how to extend these machines to what is needed, providing repeatable install scripts). There are also tools to revert engineer an existing setup, building the install scripts after the fact.
In a JavaFX session I saw, they gave some references to interesting sites which may help with your site design:
Last but not least, there were two session which really impressed me.
The first was about greenfoot, a tool for teaching young adults (14+) programming. It basically allows you put put objects in a 2D world and control these object. Each object can have an image, a (graphical) location and a rotation. You can control the objects using a little Java code and easily build fun and/or useful small applications. There is also an interesting integration with the Kinect as can also be seen here. It can be used to build games, for simulations etc. The environment allows you to upload your program to the greenfoot community for feedback. A thumbs up from someone else really helps for motivation.
Shame Devoxx 2012 has finished. Ready for the next one…