December 31, 2005

This blog is now closed

Today is my last day on the payroll of the University of Warwick.

I'm available for hire as a consultant. If anyone wants to contact me about that (or anything else), you can reach me by email at jon then the at symbol then

December 13, 2005

If architects had to work like programmers

(More old mail - John Dale sent me this in September 2000 - but it's timeless)

Dear Mr. Architect:
Please design and build me a house. I am not quite sure of what I need,
so you should use your discretion. My house should have somewhere
between two and forty-five bedrooms. Just make sure the plans are such
that the bedrooms can be easily added or deleted. When you bring the
blueprints to me, I will make the final decision of what I want. Also,
bring me the cost breakdown for each configuration so that I can
arbitrarily pick one.

Keep in mind that the house I ultimately choose must cost less than the
one I am currently living in. Make sure, however, that you correct all
the deficiencies that exist in my current house (the floor of my kitchen
vibrates when I walk across it, and the walls don't have nearly enough
insulation in them).

As you design, also keep in mind that I want to keep yearly maintenance
costs as low as possible. This should mean the incorporation of
extra-cost features like aluminum, vinyl, or composite siding. (If you
choose not to specify aluminum, be prepared to explain your decision in

Please take care that modern design practices and the latest materials
are used in construction of the house, as I want it to be a showplace
for the most up-to-date ideas and methods. Be alerted, however, that the
kitchen should be designed to accommodate, among other things, my 1952
Gibson refrigerator.

To insure that you are building the correct house for our entire family,
make certain that you contact each of our children, and also our
in-laws. My mother-in-law will have very strong feelings about how the
house should be designed, since she visits us at least once a year. Make
sure that you weigh all of these options carefully and come to the right
decision. I, however, retain the right to overrule any choices that you

Please don't bother me with small details right now. Your job is to
develop the overall plans for the house: get the big picture. At this
time, for example, it is not appropriate to be choosing the color of the
carpet. However, keep in mind that my wife likes blue.

Also, do not worry at this time about acquiring the resources to build
the house itself. Your first priority is to develop detailed plans and
specifications. Once I approve these plans, however, I would expect the
house to be under roof within 48 hours.

While you are designing this house specifically for me, keep in mind
that sooner or later I will have to sell it to someone else. It
therefore should have appeal to a wide variety of potential buyers.
Please make sure before you finalize the plans that there is a consensus
of the population in my area that they like the features this house has.
I advise you to run up and look at my neighbor's house he constructed
last year. We like it a great deal. It has many features that we would
also like in our new home, particularly the 75-foot swimming pool. With
careful engineering, I believe that you can design this into our new
house without impacting the final cost.

Please prepare a complete set of blueprints. It is not necessary at this
time to do the real design, since they will be used only for
construction bids. Be advised, however, that you will be held
accountable for any increase of construction costs as a result of later
design changes.

You must be thrilled to be working on as an interesting project as this!
To be able to use the latest techniques and materials and to be given
such freedom in your designs is something that can't happen very often.
Contact me as soon as possible with your complete ideas and plans.

PS: My wife has just told me that she disagrees with many of the
instructions I've given you in this letter. As architect, it is your
responsibility to resolve these differences. I have tried in the past
and have been unable to accomplish this. If you can't handle this
responsibility, I will have to find another architect.

PPS: Perhaps what I need is not a house at all, but a travel trailer.
Please advise me as soon as possible if this is the case.

November 16, 2005

Blogging: a new name for something that isn't

Writing about an entry you don't have permission to view

Steve picked up some quotes about the "blogging debate" and I was struck by a theme that people having this debate seem to think they're talking about something new.

…the typical hierarchies of the ivory tower break down in the blogosphere so that even graduate students can be public intellectuals of a kind.

Plus ša change. I was a graduate student before JANET ran over IP (that came along in 1991 or so), but I was already being a 'public intellectual' (if you put it that way). We had Usenet. I posted to it about stuff I was doing and thinking about, and got (overwhelmingly) useful comments. So did many other staff and students, mainly scientists (being the ones who already used computers and the network). Blogging is nothing new. What's new is Google.

Research into how social software is being used is very raw, very new.

While I'm not up on the research, this sounds like tosh. Social software has been around for decades. It's been a particular interest of mine since I started using bulletin boards in 1986, and for all that time there have been groups thinking about and discussing its use, so it's hard to believe nobody has been doing the research.

This interest of mine is how I came to be managing the email and Usenet services at Warwick in the early years that I was here, and later came to invent WarwickForums. BlogBuilder is the first social software system at Warwick that I haven't been involved with (I would have liked to have been). It's just a new and better (easier) way for students and staff (and yes, even graduate students!) to do what some of us have been doing since the 80s.

October 12, 2005

More ways to demoralise Westwood staff

Writing about an entry you don't have permission to view

My email response to the plan to make car park 13 no longer free. Call it an open letter.

Hi, I'm writing in response to your request for feedback on the 'Green Travel Plan'.

Your plan includes making car park 13 pay-on-foot, which I guess would be a reduction of about 90% of the free parking on Westwood campus. You assert that CP13 being free causes problems, but given that it remains almost empty in the undergraduate vacations, I would suggest that it is allowing students to use it for free which causes problems.

Many staff at Westwood require somewhere to park (just as we require somewhere to buy our lunch). I approve of the green travel plan encouraging the use of buses and bicycles but I live in North Warwickshire, so neither of these is a realistic option for me. Can I suggest that, better than heavy-handed blanket measures such as these, a sensible Green Travel Plan would take circumstances into account. Most students live within a few miles of campus so why not eliminate free parking for them, while issuing free parking permits to staff? Or you could consider issuing free permits to staff who live in postcodes not adjacent to the University – this would be fair without being a huge administrative burden.

I'm personally not prepared to pay for car parking; and given that public street parking is plentiful very close to Westwood campus, I know I'm not the only one of my colleagues here who would prefer reliable free parking and a short walk over the hassle of driving around main campus looking for a possible parking space followed by anything up to 20 minutes' walk to and from work.

Thank you for giving staff the opportunity to give feedback before a decision is made (in contrast with the decisions on Westwood restaurant)!

October 11, 2005

EJB3 Persistence

Went to a seminar on EJB3 persistence, courtesy of the BEA UG (not sure how I got onto their email list!). The speaker was Patrick Linskey, co-author of "Bitter EJB".

The EJB3 standard is getting closer to being finalised – they hope to have it done by March or so in order to have the TCK and everything ready for next year's Java One in May.

The EJB3 persistence spec:

  • is being developed by an expert group separate to the main EJB3 spec, and will eventually be a separate JSR
  • is a pluggable, independent piece of JEE3 (Patrick agreed with me that this gradual breaking-into-pieces of JEE has interesting implications for open source, since it lowers the bar to entry for people to just make one piece)
  • is a cut-down version of JDO
  • is aimed at ease of use
  • can be used via annotations (like everything else in JEE3) or via XML files (XML takes precedence over annotations)

Persistent objects in EJB3 are managed by an EntityManager and replace entity beans altogether. The concept of local/remote interfaces is gone; you always need a local EntityManager which is reached via a factory, just like JDO. Also like JDO, EMs can be used outside of a JEE container which is a boon for unit testing. Another similarity is that EMs can use JTA or explicitly coded transactions.

Compulsory superclasses/interfaces are also out of the window (wow – you can do actual OOP with these classes!) but sadly, they are required to have an explicit identity/version fields. (Patrick told me at the pub afterwards that JDO vendors who make EJB3 persistence modules are likely to relieve their users of this burden by continuing to use enhancement.)

There are attach/detach semantics not unlike JDO2, although detach is implicit at the end of every transaction. I suppose this goes some way to easing the fact that the sophisticated lifecycle of JDO objects, with the invaluable hollow state, has been left out. Fetch groups are also missing.

EJBQL is similar in features to JDO2, and therefore way in advance of EJB2 (quote "EJBQL 2 was half-baked; we've tried to fully bake it"). For example it has named queries. However its syntax is SQL-like, like earlier EJBQL, rather than Java-like like JDO. This is pretty reasonable given the wide understanding of SQL, even though, like in JDO there is nothing in EJB3 persistence to say you must use JDBC underneath; it can be used on top of object DBs, flat XML files or anything else (JDO is apparently used for cellphone/PDA apps). Native SQL is not supported (a Very Good Thing IMO) and neither is getting a JDBC connection from the EM.

EJB3 persistence isn't as bad as I thought it might be, but isn't as good as JDO, and nothing in the talk suggested why Java needs two persistence standards (Patrick didn't address the politics of it at all). But if the likes of Oracle wanted to get people building their proprietary dialect of SQL into Java code, they've clearly failed, which makes the whole thing seem a bit pointless. Nevertheless, EJB3 persistence is the standard which will have the widest industry backing (despite the lack of any good reason) and so will inevitably be important in the future.

September 29, 2005

Those who do not remember the past are condemned to repeat it

Writing about web page

A university spokesman [...] claimed that the attack has no bearing on the security of the University server. Unitemps does not use the University's secure server and so "any lessons to be learned would not apply to the rest of the network."

In other words… "it couldn't happen here"! You have to wonder why we'd go to the bother of learning any lessons at all.

September 01, 2005

Year 05/06

It's now officially academic year 2005/6. OMR rolled over without any problem, happily.

The new Checklists application was supposed to go live today, but it depends on ADS, and that's had some delays – the server that died with the newest backup a week old, the Oracle 10g problem that took a week to sort out, and miscellaneous data quality problems that I'd allowed a couple of weeks to solve but it's taken even longer than that. It's no big deal – we can go on using the prototype Checklist and go live with the new one when it's good and ready, hopefully before the start of term.

It's a pity in a way though, because it would have been the only new piece of software to be produced by the MLE programme this year (admittedly a very, very small piece). As it is, in the 04/05 academic year, the MLE programme (of which I'm Technical Lead) delivered no new products at all, we just supported and enhanced the existing ones and planned, designed and developed ones that will go live in 05/06.

July 21, 2005

JSF v. Struts

There's been a "what advantages does JSF have over Struts" thread on the MyFaces list in the last couple of days so I thought I'd put together a summary.

  • Fewer and less verbose config files
  • Automatic type conversion of bean elements (not forced to use String)
  • Bi-directional conversion between browser info and bean info, not just decoding
  • Validation and conversion are more robust, re-usable and extensible
  • Large and rapidly growing set of UI components – richer and more reliable UI
  • UI components are more reusable
  • Using standard (JEE) components maximises ability to hire developers who will understand them and is thus a safer choice (in the long run, presumably)
  • Better tools are available
  • Allows RAD (by building view first)
  • Lifecycle events are standardised and extensible
  • Eliminates all logic in JSPs
  • Dependency injection is considered best practice these days
  • JSF's bean injection virtually eliminates the need to directly access the Session and Request objects, reducing coupling and increasing reliability
  • Rendering is decoupled from the view, so can use JSF for rendering to mobile devices
  • Cleaner MVC model – is an ActionForm part of the controller (action) or view (form)?
  • More flexible navigation because navigation rules are decoupled from actions
  • Less coupling to the framework in general

The last point was only touched on briefly somewhere, but for me it's one of the key points. My view (since JSF 1.0 came out) is that the JSF framework is cleaner and does more of the dirty work for you, but the lack of coupling means more of your application to be written as POJOs – the same advantage as technologies like JDO and Spring.

July 01, 2005

Thursday at Java One

James Gosling's keynote

More a collection of demos than a keynote. Included some Netbeans stuff, the Boeing drone piloted by real-time Java and the Bay Area sea sensor net. John Gage also demoed a GUI that moved apps (threads, stack and all) from a PC to a mac, and miniature ARM devices with wireless and motion sensors that let him "pour" an app from one to the other.

Futures panel

Built somewhat on the demos and Sun's motto since inception that "the network is the computer". Computing devices are getting everywhere, and the limitations on Moore's law will see a trend to multicore devices. The future is in collaborative applications that can move among devices, the huge computing power probably being employed for VR and biocomputing.

Writing secure web apps

Added very little to yesterday's session other than plenty of examples.

Beyond blogging: feed syndication with Java

A good overview of the protocols and Java tools from the architects of Roller, ROME and FeedParser. Why Atom is so much better than RSS and the atom protocol so much better than the blog-publishing XMLRPC protocols.

Extreme reuse in JSF

A good comparison of the advantages and disadvantages of JSP2 .tag files, tiles, webwork and Oracle ADF for re-using visual components with JSF.

The next impedance mismatch: POJOs to XML

ORM is now pretty well understood but OXM is younger. Some problems are shared but XML mapping has some problems of its own, especially around many-many mappings and where objects must be populated from a pre-existing schema. Need an OXM persistence manager to cope with situations like when the namespace is changed – don't want to redo the OXM from scratch.

End-to-end UI objects

Third talk I've been to this week suggesting that building UIs from objects (cf Spring) is the best way (since it's OOP) and looking for a Java solution. This talk from an embedded-UI guy where J2EE is too heavyweight anyway. Suggests composing UIs from object components corresponding to DOM objects, and storing session context in one thread per session (which sounds elegant; do any web containers do it this way?). Good for modelling page flows, good MVC, tiny footprint, bad for bookmarking, separating grahical design and changing rendering.

June 30, 2005

Wednesday at Java One

Nine ways to hack a web application

A useful round-up, and I now understand cross-site scripting in more depth than I did. I was in the overflow room and the sound sucked, but not as much as the non-digital camera pointed at the projection screen displaying the slides and code examples! The system we set up for the LWMS in 2000 is far superior.

Shale: the next Struts?

McLanahan and Geary made no attempt to answer this question (it might just as easily find a place in the next JSF), but stuck to providing examples of how Shale improves on JSF and Struts. Most interesting features: Spring-like web flows (called dialogs), Tapestry-like views which are very easily reusable (and which make it trivial to chain actions together, unlike in Struts), support for AJAX by including special handling for XmlHttpRequests (called remoting), integration with commons validation.

Real world experience in app scaling using JDO

International Truck already had a high-performance back office system based on Versant OODBMS ("to minimise our involvement with DBAs") when they realised the need to roll out a cut-down version to very low-spec service laptops. They implemented their own in-memory JDO database to avoid licensing issues and to be able to re-use all their back office code without change.

Spring and JSF: synergy or superfluous?

Much similarity, especially in the area of dependency injection (differences: Spring can do constructor injection, JSF can do EL injection). Rod Johnson emphasised the AOP nature of Spring, which surprised me as I've always thought its proxy based approach rather weak. The conclusion (no surprises): synergy, use JSF for its rich component set and wealth of tools, and Spring for a nice clean DAO layer.

Web framework smackdown

A fun session with representatives defending most of the main web frameworks (though not Struts), and lots of time for audience questions (quite a few of them from Struts developers wanting something better). Interesting to hear of Tapestry and Wicket next to each other, since Tapestry aims to minimise Java code and Wicket aims to minimise everything else. JSF was somewhat the odd one out for being a specification rather than an implementation.

Bottlenecks in MVC frameworks

There aren't any, was the conclusion of this comparitive test between several frameworks and a non-MVC (JSP-based) implementation. Interesting for their methodology and tips for using JMeter.

Jewels in the developer toolbox

Convinced me that I should spend more time looking for tools because there are some great ideas out there. Funniest tool: the paper napkin look-and-feel for Swing, intended for use in unfinished apps to give the tester/boss appropriate expectations.

September 2023

Mo Tu We Th Fr Sa Su
Aug |  Today  |
            1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30   

Search this blog



Most recent comments

  • Good luck, Jon. Thanks for your helps in the past 3 years. by Hongfeng Sun on this entry
  • Good luck in the future by Mathew Mannion on this entry
  • It is indeed. And when I look out of the nearest window at work, I see Charter Avenue, where parking… by on this entry
  • There's very little free parking on the rest of campus, so why should westwood be treated favourably… by on this entry
  • I live in Earlsdon. I can drive, but haven't since I came to University here in 1990 (I never left –… by on this entry

Blog archive

RSS2.0 Atom
Not signed in
Sign in

Powered by BlogBuilder