Ben Poole

“It is a very sad thing that nowadays there is so little useless information.”

Weblog by month (May 2005)

Bad projects

Is it bad that I didn’t realise that there were other types of projects? Oh dear...

The project needs to be done in an incredibly short space of time, due to a fixed deadline. In these situations the potential client has often known about the deadline for a while. However it’s taken them longer to plan the project than initially anticipated so they expect the developer to make up the time.

Andy Budd: 10 Bad Project Warning Signs.


Flickr removes (some) Flash

In a bid to escape Big Brother this evening I thought I’d go through some piccies and do some posting to Flickr. I noticed that individual photo pages were loading up in a far more snappy way... and what do you know, things have changed a little at Flickr:

We’ll we’ve gone and done it. In answer to countless requests, photo pages no longer use a Macromedia Flash wrapper to display photos; instead we are using an old technology called “DHTML.”

A good move. Many of the Flash bits totally rock, but I was always at a loss to work out why individual picture pages still relied on Flash. A great site just gets better...


Stephen King

This took me quite a while. Finally, in the year 2005, I discovered Stephen King. Of course, films like The Shining and Carrie are classics, and I’ve seen ’em, but up until March of this year, I hadn’t ever picked up a Stephen King book.

Anyway, there I was in the library one Saturday morning, keeping an eye on the elder two as they settled in to the children’s section, and I decided to wander over to an area I usually don’t bother with: science fiction and horror. I picked up a novel called The Girl Who Loved Tom Gordon, took it home with me, and that was it. Totally engrossed. In point of fact, The Girl Who Loved Tom Gordon isn’t even a horror story, it’s not what you might call “classic King”, but it is a great tale. If I hadn’t been struck by the end of the book (I was), that most heinous of publishing tricks was appended: a sample chapter from King’s next novel! Well, I read that, and then got me back to the library quick-smart...

Hearts In Atlantis is a collection of five stories, inter-linked, and spookily told. All five tales work a mysterious magic, and focus in some way or other on that defining era: when the USA fought in Vietnam. All the tales are good, but for me the first two, “Low Men In Yellow Coats” and “Hearts In Atlantis”, are the best.

I was on a roll, and recklessly chose a third on a visit to the library in April. Well, this was the clincher as it turned out: Bag of Bones. Wow, wow, wow. I understand a film version is on its way: here’s hoping for an adaptation deserving of this book — it could certainly be done, as this novel is by far the most evocative and downright chilling of all the King books I’ve read so far: the definitive ghost story for adults!

Finally, the latest book is interesting because it’s an older one: The Dead Zone was published in 1979 (and released to cinemas in 1983 starring Christopher Walken — excellent casting!) I chose it mainly because I wanted to read some older King. Interestingly, again it’s not strictly a horror story, more of an extremely sad thriller. I wasn’t disappointed with it: this chap can write!

But then I suppose everyone else already knew that eh?


I did it again

I did this last year too... heh. Well anyway, this weblog is three years old. In fact, it hit three last week. I was just being slack (again). Tsk. But hey, someone else had a birthday too...

On a wholly unrelated note, go check out Michael Sampson’s post about the Collaborative Technologies Conference in New York next month: I’m one of the “three” he mentions (I think) [smiley Wink]


ItDoesWorkplace

What’s been going on? Why so quiet?

Well, this week I have mostly been playing with IBM Workplace Collaboration Services (“WCS”, formerly “Lotus Workplace”, formerly “IBM Lotus Workplace Offerings For Extreme Collaboration-Mungous Derring-Do Dude” **). On Tuesday night m’self and John Barrow winged down to Hursley, near Winchester on the south coast, where IBM have an Innovation Centre. I last visited in October, when we checked out Lotus Workplace 2.0. Well, things have come on leaps and bounds since then. WCS v2.5 (released just yesterday!) is quite a proposition: DoesNotWorkplace has definitely started to work. Yes, inital page loads are very slow due to compilation issues, but you can get around this if you try hard enough (batch JSP pre-compiling is an option with WebSphere).

Wednesday’s class took us through the offering, and the labs entailed installing WCS, then playing with it. The WCS installation took us a shade under 40 minutes, with no pain whatsoever. A few clicks, grab a coffee, look out the window at the lovely Hursley campus, and you’re done. I was, frankly, amazed. IBM have picked up a lot since WP 2.0, much of it from the Workplace Services Express (WSE) package, which built on WP 2.0 a great deal. If I can run this installation, you can too. Trust me...

So anyway, once we had WCS up and running, it was time to play. It is here that I have a shameful tale to tell:

Part of the work on Wednesday entailed starting and stopping the services related to Workplace, namely Cloudscape (the database), WebSphere Application Server, WebSphere Portal Server and Workplace. These stop-start routines are easily fired up via batch files in Windoze (shell scripts in UN*X / Linux). Well. Yesterday I learned — how I missed this before, I’ll never know — that clicking in to an active MS-DOS command window (in Win2k at least) means that it won’t update itself when things change. Things may well be happening, but you won’t know it. As a result of my pathetic fumbling, John and I sat there for far longer than we should have, waiting for Workplace to start up, when it was already ready, screaming at us to begin. Tsk.

I am a doofus. But in my defence, I’m used to Terminal.app on OS X, which doesn’t indulge in any of that kind of dumb-arse behaviour... Ahem.

Moving swiftly on: Thursday was the brain-flexing day. There was lots of talk about service oriented architecture, EJBs, plain ole’ Java beans, portlets, templates and Volker’s fabled NoteBoard application. Well, this was interesting stuff. We looked into setting up and running web services, and even played with the managed client (I crashed Activity Explorer!) Setting up the NoteBoard application was amazing: at first we relied on in-memory objects for persistence. But then, by tweaking a few bits and pieces in the n-tier application’s set-up, we were able to switch the persistence layer to Domino! We even set up a simple Java class to update Domino’s Access Control List (ACL), mapping Workplace “roles” to Domino ACL entries. This stuff was very smooth, and worked brilliantly. The code choked once when I added an a NotesBoard entry in Domino (rather than via the portlet), but the NoteBoard Team Space application recovered, and in any case wasn’t designed to be “two-way” between Domino and Workplace.

Today we moved on to another (related) course, a one-day session on the managed (formerly “rich”) client. The provisioning and installation of the client is pretty straightforward, and it looks very smart. The integration with Workplace’s offerings is smooth, and overall I’m most impressed. There’s still stuff to be done here, of course, but when you consider what the managed client can already do, it’s pretty mind-blowing. The client is coming over the next few weeks as there are still a couple of wrinkles to iron out. We played with it a lot today, fiddling with the in-built editors for spreadsheets, presentations and word processing, building simple Eclipse plug-ins, building very simple Rich Client Platform applications, and so on and so forth. We found ourlseves wanting to start using the client on a daily basis already, which I would say is a good sign. The integration with the Workplace document manager is really nifty (you can detach email attachments directly to a store, drag and drop works between the client and the underlying operating system, etc.), and Activity Explorer is really going to be a hit, no question.

I’ll probably talk more about all this stuff, but for now I would say that this stuff is starting to really mature. To my mind, Workplace v1 was an early alpha. Version 2 was a beta. 2.5 is the first real stab at making a go of it, and it does extremely well. So I expect 3.0 to totally rock.

** - I made this one up.


Greasemonkey to the rescue!

Some nifty things have been done with Greasemonkey, not least Julian’s excellent LDDMonkey, but I have to say, this one is surely one of the most useful:

Accessible Odeon: The Return.

Some background:

A while back, Matthew Somerville took issue with the UK cinema chain, Odeon who have long-maintained an inaccessible website. Essentially, some stupid IE-only Javascript meant that the site was totally useless: no menus, no ticket booking, no cinema details, nothing. If you emailed Odeon they would tell you that their site was being re-coded. In fact, they followed this line for at least three years by my reckoning. All because they couldn’t be bothered to update some simple menu Javascript. Tsk.

Matthew came up with an accessible version of the Odeon site and offered it up for free as a public service. Odeon were initally happy with this — and why not? They got more ticket bookings and more people could get information on their services — but then of course the predictable lawyers’ letters starting dropping on Matthew’s doormat, citing the Data Protection Act, copyright laws, etc. etc.

There’s just no helping some people. Well, Matthew took the site down, Odeon introduced a lame text-only version of their site (no on-line booking etc.), and that was that... Until Greasemonkey came along that is! As Matthew says:

Obviously this is client side, so is perfectly okay; I am not copying any information, infringing any copyright, or allegedly misleading anybody. Note the script is not exactly very long; all that’s left to wonder is why Odeon couldn’t apply these fixes any time in the last 3-4 years...

So, well done to Matthew, and shame on Odeon. Here’s hoping some other businesses take heed: the web can make you money if you let it. There is no excuse for IE-only websites in this day and age.


Rocky and Bob

So another announcement has been made: Bob Balaban is joining Rocky Oliver on IBM’s Business Transformation Team, which will be focussed on getting Workplace out there. This is great news for the IBM team: I would suggest it really is a coup getting hold of people as talented as these guys. And here’s hoping the move is just as good for Bob and Rocky. I am sure it will be.

Oh, and chaps, my offer still stands: if you need any help, you know where I am... [smiley Wink]

» Rocky Oliver: Hear that? It’s the other shoe dropping...
» Bob Balaban: Loose no more.

Via Volker.


iTunes

Apple have (very) quietly released iTunes 4.8 for Windows and the Mac — well, they’ve released it in the States anyway; there’s no sign of it on the UK Apple site or in software update as the time of typing.

Anyway, Apple have been very coy about what this update offers, but one of the the things I can make out is support for full-screen video using Quicktime. The writing has been on the wall for some time regarding video and iTunes — music videos and exclusive movie trailers have been on offer there for some time — but I’m guessing that the cat will soon be truly out of the bag: surely this is all in preparation for some kind of new take on on-line digital purchases? Are Apple moving into the DRM-enabled movie business?

» More...


Dare frame thy fearful symmetry?

Tiger is very good. I’ve been running it non-stop for a while now, and I like it very much. My 800MHz G4 likes it too, and the ever-so-subtle-it-hurts restyling that Apple do with each major release of OS X is nifty (well, apart from the buttons in Mail: as everyone else on the web has already said, what were Apple thinking?!?)

But I’m not going to launch into some in-depth review, it’s already been done in far more detail than I could ever hope to achieve, so I’ll leave that. Instead, why not subscribe to John Gruber’s “Tiger details” RSS feed? You can find it on this page:

Tiger details.

BTW, Spotlight is brilliant. Just don’t compare it to Quicksilver, or I will scream.


IBM redundancies

Crikey, that’s a lot of jobs. IBM are getting rid of 13,000 staff:

Most of the redundancies in Europe will be voluntary and talks have already begun with unions and worker councils over the timing of the job cuts in Europe, company spokesman John Bukovinsky said.

IBM added it would unveil further details of the shake-up on Thursday.

» More...


Debugging ciphers and the like

Phew, what a day of hacking, tweaking and general trouble-shooting. I’m going to post this particular experience if nothing else than for preservation in Google, as it took me quite a while to resolve this issue, even with the help of that very search engine.

At the moment, I have a requirement at work to sign and encrypt data using various algorithms, and I have plumped for doing this, in my local development environment at least, with the venerable Bouncy Castle crypto package. The Bouncy Castle stuff is rightly popular, and is thoroughly documented. Example code is provided, and the site contains a lot of additional resources for the developer just starting out with all this stuff... But that’s not why I’m posting of course. I’m posting so that some of the pain I endured today might be avoided!

Due to the nature of crypto classes, the relevant jar files tend to be signed, and there’s usually one other requirement. If you don’t meet this requirement, then get used to seeing something like this in your Java console:

java.lang.SecurityException: Unsupported keysize or algorithm parameters

This kind of exception crops up if you’re doing something with security and / or crypto-related classes, and haven’t quite got your environment right. This isn’t limited to Bouncy Castle either: JavaMail and various other third-party crypto packages can make you suffer too.

If you search the web for more detail on this error — including the Bouncy Castle mailing list archives — you will encounter, again and again, people telling you to ensure you’ve installed the unrestricted policy files for the Sun Java Cryptography Extensions (JCE).

Problem solved you’d think. Well, there’s one thing very little of the documentation tells you: when you download and install the Sun JCE unrestricted stuff (a small download, usually at the bottom of the page which features the JDK downloads): you need to ensure that you install the policies in the correct Java Runtime Environment (JRE).

I know what you’re thinking: “Duh, of course you do”. But the Sun pages all talk about installing this stuff to %JAVA_HOME%\jre\lib\security on Windows. That is, the JRE that comes as part of your standard install when you fire up the full Java Development Kit. However, what the docs don’t tell you is that you might want to check whether you have another JRE under c:\windows\program files set as your default. Doh! If you’ve installed the two policy files and are still getting nowhere, check!

Gah. Anyway, as part of the tinkering I was doing today, repeatedly running (and failing) the tests that come with the Bouncy Castle packages, I knocked up a test class to assess exactly what ciphers I had properly installed on my PC. Here’s a typical output from the class when only the basic “strong” JCE policies are in place (these come as standard with the recent Sun JDKs):

There are 6 ciphers in total
PBEWITHMD5ANDTRIPLEDES
DESEDE
AES
PBEWITHMD5ANDDES
BLOWFISH
DES

Set up the Bouncy Castle stuff too (for example), and you should see over eighty ciphers become available, assuming you’ve successfully negotiated the dual JRE issue. To see what I mean, you can download the class right here:

TestCiphers.java.

Enjoy.