Yesterday morning I went to see Martin Fowler give an address about his thoughts on the future of Software Development in the 21st Century.
It was amusing to discover that he didn't come up with the title of the
talk himself, but that the title was dreamt up by some Victorian
Government department, and Martin Fowler basically was requested to
fill the gap on this subject. Nevertheless, it proved to be a useful
topic because it attracted a broad audience of managers, business
leaders and of course software developers.
I was surprised that he was such a good public speaker, running up and down the isles to answer questions from the audience and also throwing in a respectable amount of humour. The event was sponsored by Enterprise Java Victoria and so obviously the event was focused on Java and on Martin's perspectives of where Java had come from, where it sits now, and where it's future lies in the software development industry. There was so much content in Martin's talk that it will be hard to summarise everything so I will concentrate on what I found important or most relevant.
A key aspect of his talk was the notion of domain specific languages and about how that notion will become more prevalent across the industry. We already have domain specific languages such as SQL. However there is a move to allow developers to easily leverage specific languages to solve specific problems where that language is more appropriate. Java itself is reportedly moving towards this capability by providing support languages like Javascript and possibly even VB.Net! With the emergence of AJAX you can see why such a facility may be useful, having Javascript on the client call through to Javascript on the server. Obviously there is always a danger that some projects or developers will abuse these new tools, and do things that were outside the original intention, however that danger exists in any project where technological understanding low. There's a online video by Martin Fowler specifically about this subject. Also check out the entry on wikipedia.
Martin also talked about domain specific applications. He talked about how applications will start to become very specific in their nature, they will seek to solve a specific problem and concentrate only on solving that problem domain. This is a particular feature of many open source projects, mainly because they are supported by a small number of developers in their spare time, and they just don't have the resources to build huge all encompassing applications. This I think is a good thing because they will generally be very good at what they do and will tend to be less buggy due to their inherent reduced complexity.
During the talk he also introduced a term that I hadn't heard used before in relation to software development. That of an ecosystem. The notion of the Java platform as an ecosystem signifies for me the evolution that the language has gone through. It seems that an evolution of language through to platform through to ecosystem is useful way to describe the evolution of Java. I first started using Java in 2002, at that time trying to explain to people the difference between Java as a programming language and Java as a platform was a daunting task. With amazing class libraries that come with both the standard and enterprise editions of java, add to the the capabilities to support other domain specific languages, and it starts to become clear how the notion of Java as an ecosystem come becoming more and more appropriate. The java platform really is becoming a vast collection of interdependent entities that all relate and support each other in a myriad of complex yet specialised relationships.
Martin also discussed the negative aspects of Java, in that some more accomplished developers will argue that it makes a programmers life too easy. With it's memory management and non-support of closures it basically removes a lot of power that you would otherwise have. However I also think this is a key benefit of Java, it makes it more accessible, whilst reducing the risk of fundamental software bugs related to poor memory management. Memory management to me is a complete black box and I would have no idea where to start so Java for me is a very useful tool for software development. I just don't see why I should have to bother with all that stuff when Java seems to be able to handle it well most of the time.
Another key point of Martin's talk was the importance of the contribution of Open Source software over the last 10 or so years. The emergence of frameworks such as Spring and Hibernate. Martin expressed his opinion that these frameworks have been instrumental in dragging Java out of the quagmire that was EJB. Spring and Hibernate have drastically simplified the persistence and management and use of objects within an application, something that EJB only served to make drastically complicated. They have also reduced the significant reliance on having "enterprise" level EJB containers and seriously expensive application servers such IBMs Websphere. The barriers to entry for EJB and EJB containers were so huge that many developers just found it too hard to learn the complexities of development for these technologies. Spring and Hibernate have made it possible for developers to create J2EE applications using lightweight containers such as Tomcat and Resin sitting on top of databases like MySQL. This can only be a good thing for Java because it makes it more accessible.
The discussion on open source also inevitably led onto how this effects the vendor propriety languages and platforms like Microsoft .Net. I feel that with the huge contribution from the open source community, it's going to be seriously difficult for .Net to keep up the pace. Where are the significant and innovative contributions to software development that have been built in .Net? Sure there's nHibernate and Spring.NET, but they're just offshoots of the successful Java implementations. With Java becoming open sourced itself in late 2006, I just can't see a future for .Net when Java is leading this innovation. Java has a huge advantage in being one or two years ahead with such amazingly useful frameworks like Spring. JUnit and test driven development is yet another example of this. The realisation of test driven development as a key component of application development is becoming the mainstream now, and this will be a significant part of development in the coming years.
Overall, Martin's talk was very inspirational and informative and I hope to get the chance to hear him speak again in the future. It's nice to see important figures like this coming out to Australia's "back waters" and it's great to see the numbers of people that were interested in hearing him speak.
A few days ago I realised that my Via Venezia didn't seem to be making the great the coffee that I remember. I had cleaned the machine thoroughly and realised that the handle itself could probably do with a good clean out. I couldn't find any resources on the web which helped on how to do this so I figured it couldn't be that difficult. And it isn't.
It's probably a better idea generally to get your machine professionally serviced by a Saeco service center but I didn't feel like shelling out the cash so decided to give it a go myself. As long as you're careful and don't lose any springs or other small parts (it's okay to lose large parts...) you should be fine. One caveat, if after reading this you're not confident that you're not going to break the group handle then it would worth getting a professional to do this. These handles are not generally considered user servicable, however, if you like taking things apart like me then you won't be able to resist! There's also some good advice on this forum posting about improving the espresso results from this group handle. I'm yet to try this but will do soon.
One thing I found during cleaning for the first time was that the mechanism was really stuffed full with a few years worth of coffee grounds so it was definately worth doing this if your machine is a year or so old and hasn't had a service recently.
1. The first thing to do is remove the filter. This should just slide
out, it may be a bit stiff so you can try levering it out with a coin.
2. Now turn the group handle over and remove the three screws that hold the unit together. Once these have been removed the unit will come apart so make sure you do this carefully to avoid losing any small parts.
3. You now need to carefully remove the springs. The main virtical
spring will just slide off. Remove that and put it somewhere very
safe.
The second spring is the one on right hand side, just unclip it and it should come out easily. You will need to remember the position of this spring for when you replace it.
4. Now gently lift up the pressure stopper, it's hinged so will just lift up easily. You will now be able to see the black plastic ring in the center, this is the base of the plastic seal. You will need to push down on this black ring reasonably firmly, it should unclick.
6. You will now be able to push out the plastic and rubber sealings. The orange rubber seal will pull off easily.
You should now have completely dismantled the group handle.
Clean all the parts with fresh water and mild washing detergent. The main thing to do is to remove any ground coffee that may have worked its way into the mechanism. There's no real need need to go crazy and scrub the whole thing until it's got more shine than a seargent's boot.
7. Now it comes to re-assembly. Place the orange rubber seal back around the plastic seal, then slide it back into the main unit. Push it right to the bottom so that the the black tube part protrudes from the other side.
8. Replace the mechanisam. This is probably the hardest part of the process. In the photo named 'Replacemechanism', you need to make sure that you line up the node marked '1' with the depression marked '2'.
Once these are lined up, hold the unit with your thumbs underneath and push the mechanism down on to the protruding plastic seal until it clicks into place. It should be straight forward, it shouldn't need to be forced it if it is lined up correctly.
You should now have the black plastic tube clicked into place, gripped by the four pressure points on the mechanism.
9. Now replace the two springs back to their original position and test the movement of the mechanism to ensure it is still moving backwards and forwards as you expect
10. Now all you need to do is replace the handle cover back over the unit. This part is crucial -You need to make sure that it goes on the correct way, so line up the black plastic nodule marked at point 1 with the indentation in the mechanism marked at point 2. If the orientation is not correct you could break the internal plastic parts when next use the handle so make sure this is correctly orientated before you screw it back together. All three screw holes should line up.
11. Replace the three screws and tighten. The unit now should feel like it fits together correctly, if there is some misalignement or if it won't quite go together correctly then you may have made a mistake earlier on. The spring mechanism should work as you would expect before you took it to pieces!
12. Now replace the filter. You should now have a nice clean group handle
Hope this guide has been useful for someone. I know the coffee coming from my beautiful little machine has improved since doing this.