Shorten links to be Twitter-friendly with

Any Twitter users out there will know that URLs and 140 characters don't really mix that well, especially if you actually want to talk about the link as well!  Typically you would use a URL shortening service such as the original or one of the newer, shorter versions such as

Well there is a new kid on the block who's even shorter: is another member of the family just with two less letters, but it's going to be perfect for Twitter.  I use the bookmarklet to generate my links but it appears that there is not a version for yet, so I created my own:

Drag this link to your browser toolbar to get started:    Shorten with

Technorati Tags: , , , ,

Summary of December's Manchester Spring User Group Meeting

The December Spring meeting was held on Tuesday 1st December at the same venue as previous meetings. Two talks were lined up: one on Grails by Adam Evans and one on Spring 3.0 by Rick Evans.

Guy Remond of Cake Solutions started the evening off with introductions and explained that the Spring User Group was going to be expanding to become the 'Open Source Central User Group' so as to attract a more diverse audience. He also discussed the Open Source Central website which has plans to become the 'Hub for successful Open Source Enterprise Application Development'. It's going to pull various blogs together into one central place as well as offering video and podcasts of open source technologies. We were also some of the first people to get a physical copy of the Open Source Journal, a 5,000-copy print run (sponsored by Hays IT).

Practical Grails Demonstration by Adam Evans of CTI

Adam started his presentation with a brief run through of what is Grails, what is Groovy and showed that Groovy 'can' be just standard Java code. Grails applications compile cleanly down to a WAR file so deployment in your favourite appserver is easy. It uses GSPs and Sitemesh for the view layer, GORM for the database layer and supports a plugin-based architecture allowing you to 'plugin' views, controllers, domain objects, sessions and scripts.

He then went on to demo building a Grails application on the fly using SpringSource Tool Suite (STS). Unfortunately Adam's laptop wasn't up to the job of running STS (basically Eclipse) and Powerpoint at the same time and so he had major 'not responding' issues. Despite these technical difficulties Adam battled on filling the gaps with details of Grails (Grails 1.2 supports annotated Spring beans) and had the foresight to have a slide-based version of the demo to hand (major kudos to Adam!)

Then he 'built' a demo application which uses the Twitter API to perform a search on whatever you type into the input box. An interesting point was that the Twitter results were returned in JSON and the GSP expression language allows you to parse that data as if it was a first-class object, doing things like tweet.username.

Adam has also kindly posted a copy of his slides to

Guy then stepped back in to thank the sponsors of the event: Cake Solutions, OpenCredo, Skills Matter, FDM Group, Hays IT.

Spring 3.0 :: Weapons for the war on Java complexity by Rick Evans of QFI

Rick has been working with Spring since 2004 and has delivered loads of training courses on it as well. He started his presentation with a humorous youtube clip of a mega-beast of a shotgun, and his theme was whether various Spring 3 features were potato guns or super shotguns...

He started off with a brief overview of the changes made in Spring 2.5 ('ease of use') and then moved on to the new things in Spring 3.0 - key points: embrace Java 5 and heavy use of annotations as 'declarations of intent'. Spring 3 introduces SPEL - the Spring Expression Language as the default expression language across all the modules (Webflow, Batch, etc.).

REST is nicely supported now with both server-side support in the form of additional annotations for controllers: @PathVariable & the enhanced @RequestMapping, and client-side with the use of RestTemplates. Rick also mentioned the use of HiddenHttpMethodFilter to ensure that your standard browser forms could correctly call the right type of REST operation, silently mapping POSTs to DELETEs if required.

There are some new annotations in the Controller world: @RequestParam now has a 'defaultValue' attribute and @CookieValue and @RequestHeader allow you to extract data from cookies and HTTP headers accordingly. Validation has been revisited with a smattering of new annotations to ensure objects are @NotNull, have @Max and @Min values, etc. This is all activated via a Validator - either javax.validation.Validator or the old-skool org.springframework.validation.Validator.

Rick's final words were to do with the fact that there is no 'all encompassing' spring.jar anymore, it's split up into it's component parts and you pull in what you want - if you are using Maven or Ivy then I suppose this isn't a problem, but how do you deal with it if not? He also said that loads of stuff had been deleted, cleaned up or deprecated which is always a good thing - no point carrying cruft around.

Rick has also kindly posted a copy of his slides to

Then it was over the road to The Bowling Green pub for a pint on Cake Solutions (cheers Cake!) and a catch up with some old colleagues and meet some new north west developers...

Technorati Tags: , , , , , ,