Wednesday 29 September 2010

Diving into some Spring source code

While reading Spring Enterprise Recipes - A Problem-Solution Approach this afternoon I noticed that Spring uses a LinkedHashMap as the implementation for maps that it injects into beans.

I'm curious about this implementation choice, as it seems to go slightly beyond what would be expected for a default Map implementation.

I'm going to do some digging around to establish the motivation behind this, starting with the source code of Spring 3.

Java EE6 with Glassfish 3

Last night I attended a presentation at JAX 2010 which included a brief overview of Glassfish 3 and JEE 6.

I was pleased to see the use of facelets and XHTML files as the standard view to use with JSF 2, as that makes so much more sense than trying to use JSPs.

The "deploy on save" integration with the IDE during development was impressive. It used to be a real pain developing code to be deployed into an application server, compiling, generating the WAR(s), generating the EAR, deploying the EAR into the application server could take minutes.

Thursday 23 September 2010

Technologies to look into

I've recently resigned from my job, so will have some time on my hands to investigate technologies - in between applying for jobs, responding to calls from recruiters, preparing for interviews and attending interviews.

This is a sort of "note to self" on some areas of interest, in no particular order:
  • Scala
  • Spring 3
  • Tomcat 7
  • Hybris 4.2 (if I decide to stick with E-Commerce)
  • Hibernate
  • JQuery
  • IntelliJ
  • PostgreSQL 9
Looking back, I should be able to combine most of these technologies to produce some kind of hobby application.

I'm curious about the transport situation in London, so I might dream up an innovative visualisation of the bike stations status, or something along those lines.

Watch this space!

Saturday 18 September 2010

Load Testing

I came across a nice looking load/performance testing tool called loadUI today.

The Java site had a profile about it as an example of a Real-world JavaFX App:

I've only had a brief play with it so far and while it seems very slick I think I will stick with JMeter for its support of multi-page tests.

Monday 13 September 2010

Continuous Delivery / DevOps

Something that I particularly enjoy about living in London is the time that I have each morning and evening during the commute between home and work for reading on the Underground.

One of the books that I am currently reading is Continuous Delivery - Reliable Software Releases Through Build, Test, and Deployment Automation. I found the first chapter acted as a timely reminder for my recent resignation. To paraphrase, skillful and experienced team members getting bogged down with manual deployment processes doesn't make for a fun and productive environment.

The first half of this week has been dedicated to updating 7 existing websites, and launching a completely new one. So far it has been relatively painless, but tiring.

Sunday 5 September 2010

The continuous learning process

I think that software development is an amazing industry to be involved in.

I see my university studies as having been just the start of the learning required to be a successful software developer. It gave me a background to the way software can be developed, and an appreciation for how operating systems, networks and relational databases function.

Back in the 90s software engineering was taught with a significant focus on the "Waterfall Model", but in this day and age of unit testing, continuous integration, iterative development and frequent releases I'd be reluctant to be involved in any project that even mentioned "Waterfall".

The power and availability of IDEs and related build tools have come a long way too. Eclipse and IntelliJ IDEA with their various plugins and integrated updates are amazing, particularly compared with using Notepad or UltraEdit and a Makefile.

On the social side, blogs and Twitter have opened the world up so that almost any Joe Bloggs can learn about the thoughts of respected leaders and upcoming pioneers in the field, and contribute to discussions.