Sunday, 28 September 2008

Summer's End Festival 2008

On Friday I went to the Summer's End festival in Lydney. It's a 500 mile round trip from Norwich as was well worth every mile, even though the traffic on the way over was dreadful.

Lydney is a nice quiet little place, except for the boy racers, but then every small town has those. The night got off to a good start with a reasonable curry, but then we were left waiting outside the venue for nearly an hour. We got in at 8pm and the organisers were still setting up. At least various members of both bands were wandering around in the crowd and Damian Wilson even came and said hello.

Seasons End came on nearly an hour later than originally advertised. I've seen them live twice before and they're always brilliant. It's just a shame it's not reflected on their debut album. They were absolutely incredible on this occasion, especially given the dreadful PA. Their new concept album is out before the end of the year and they played at least two new tracks from it. I'm not a fan of hearing new music live, but these two tracks were incredible. Their new album is certainly one to watch out for and hopefully they'll capture their live sound.

Threshold cannot help but be brilliant. There's no other way to put. They were also considerably late to stage, but still played a full two hour set. I've seen them twice before and am now resigned to the fact that they'll never play my favorite song, Choices, live. They've opened with Slipstream the last two times I've seen them and that song has got to come a close second. I'm not a fan of the early (pre-clone) stuff, but the tracks from that era they played were enough for me to get Wounded Land and Extinct Instinct out the following day. It is just like watching your uncles band as they're all in their early 40s, but I'll happily go and see them again and again. A special mention should go to the drummer who dislocated his shoulder the week before and was told not to think about playing the drums for at least three weeks. I was glad he didn't listen.....

Tuesday, 23 September 2008

Slipknot Shouldn't Be This Good

I always thought I was genetically programmed not to like Slipknot. I thought they were for kids, all gimmick and, believe it or not, too noisy. I saw them in Birmingham coheadlining with Slayer (I went to see slayer) a few years ago. As preparation I bought Vol.3: The Subliminal Verses and really got into it, especially Duality, but it was pretty much a passing phase, although they were very good with Slayer and I still enjoy listening to the album.

A few weeks ago their third album, All Hope Is Gone, came out. It's incredible. A real step forward in maturity and musicianship (yes, I am talking about Slipknot). Not only that, but I really like the songs. Who'd have thought they'd use acoustic guitars and harmonies. It's just shame their London shows have sold out already...

Sunday, 14 September 2008

ACCU Conference 2009 Proposal (2)

Title: MVC in practice - A Beginners Guide to Model View Controller

Type: Case study

Duration: 45 min

Speaker: Paul Grenyer

Speaker biography: Paul has been programming in one form or another for over 20 years. After several years using C++ and a brief period using C#, Paul has now ended up somewhere he hoped he'd never be, programming in Java, and finding he really quite likes it. After time in industries such as marking machinery, direct mail, mobile phones, investment banking and Internet TV, Paul is currently working for an exciting new insurance industry based startup in Norwich. He has been an ACCU member since 2001, a regular publications contributor (including the new Desert Island Books column), creator of the mentored developers and a committee member for most of that time. When he's not programming or getting used to married life and being a step parent, Paul thoroughly enjoys science fiction, heavy metal and cycling.


In this session I am going to describe a real problem I had and demonstrate how I solved it using the model View Controller Pattern. I'll describe two versions of the pattern and the compare the advantages and disadvantages of both, before concentrating on the mediator version of the pattern.

I'll look at the library and language features that can be used to implement MVC available in both Java and C#. Once the model, the most important part of the pattern, is implemented the rest of the pattern comes together quite easily. I'll explain the implementation of the model that solved my problem and show how important unit tests are, especially for the model, and how to implement them. Finally I'll look at the implementation of the controller and a couple of views. Examples will be in both Java and C#, but no prior knowledge of the languages is required to understand the pattern.

Tuesday, 9 September 2008

Model View Controller

In Patterns of Enterprise Application Architecture [PEAA] Martin Fowler tells us that the Model View Controller (MVC) splits user interface interaction into three distinct roles:
  • Model – The model holds and manipulates domain data (sometimes called business logic or the back end).

  • View – A view renders some or all of the data contained within the model.

  • Controller – The controller takes input from the user and uses it to update the model and to determine when to redraw the view(s).

MVC is all about separating concerns. The model and views separate the data from the views and the controller and the view separate user input from the views. Another version of the MVC pattern employs the controller as a mediator between the views and model. The controller still takes user input, but now it passes it on to model. It also passes commands from the view to the model and takes events from the model and passes them on to the view. This version provides greater separation as the model and view no longer need to know about each other to communicate.

In this article I am going to describe a real problem I had and demonstrate how I solved it in Java with MVC. I assume familiarity with both Java 6 and Swing. It is very important to implement MVC carefully with a good set of tests.
Read More

Monday, 1 September 2008

ACCU Conference 2009 Proposal (1)

Title: Extending Liquid Office: A Quick Guide to Java Mocking, JavaScript, AXIS, SOAP and Testing

Type: Case study

Duration: 90 min

Speaker: Paul Grenyer

Speaker biography: Paul has been programming in one form or another
for over 20 years. After several years using C++ and a brief period
using C#, Paul has now ended up somewhere he hoped he'd never be,
programming in Java, and finding he really quite likes it. After time
in industries such as marking machinery, direct mail, mobile phones,
investment banking and Internet TV, Paul is currently working for an
exciting new insurance industry based startup in Norwich. He has been
an ACCU member since 2001, a regular publications contributor
(including the new Desert Island Books column), creator of the
mentored developers and a committee member for most of that time. When
he's not programming or getting used to married life and being a step
parent, Paul thoroughly enjoys science fiction, heavy metal and
cycling.


Liquid Office is a work flow management system written predominantly
in Java, JSP and JavaScript by Cardiff who are now owned by Autonomy.
This presentation will give a brief introduction to Liquid Office, but
then turn to the details of how it can be extended using Java based
technologies which are easily transferred into other applications and
go far beyond the scope of Liquid Office.

Liquid Office processes can be scripted using BeanShell and custom
JARs. It also provides a rich library for talking to the work flow and
performing actions such as reading and writing process fields. In
order to until test custom JARs for liquid office a thin wrappers need
to be written around a few key objects in the library to allow
mocking out. I will look at some methods of doing this.

Almost all BeanShell scripting occurs on the server side. Client side
scripting must be written in JavaScript. This can be quite restrictive
and introduces some interesting versioning issues. I will look at
methods of getting round this, including how to generate JavaScript
soap clients.

Liquid Office runs on a TomCat server and uses AXIS to run web
services. The server configuration also allows custom web services to
be hosted. I will look at how to configure AXIS for custom web
services and various methods of automating the testing of custom web
services.