Weblog by month (May 2004)
Cheese
Wise words today from Mr. Buchan:
Tomorrow is the last day for Cheese International (brie division). This project has cemented the thought in my mind that large corporates are incapable of successfully completing large technical projects.
This was an example of a “project based” team structure failing to deliver, despite the best efforts of my boss and the various team members in the sections I dealt with.
Why? External project teams tend not to carry in the very baggage that mires large projects down. The existing sections were completely overwhelmed with their day-to-day stuff.
Perhaps Domino 6 is too simple to implement now. CIOs believe that because it’s simple, they can deliver large technical projects.
It ain’t so anymore — most large corporates have killed off their excess resources to the extent where they can barely keep their services running. They just don’t have the resource to run extra stuff anymore.
It’s a shame that pointy-haired management don’t get this subtle point as they merrily outsource/offshore stuff right, left and centre. You just can’t get blood out of a stone, and when you try, you lose the best stones...
Food for thought.
Contracting
So, out of interest (nothing else mind...) I took a look at a recent analysis of Lotus contract rates in the UK. Very poor. Contractor UK recently compared Lotus / IBM rates with Microsoft ones. Makes for quite interesting reading:
What about rates? Not fantastic, I’m afraid. Average rates for Lotus generally (but bear in mind this could include lower-paid support staff) are hanging around the £20/hr mark at the moment. Notes rates are very similar. Domino rates have been a little higher, hovering around the mid-30s between November and March, but then dipped down to £26 in April.
[...]
But how does this compare to rates for the equivalent Microsoft products? — And don’t start arguing about whether these products can or can’t be considered equivalents — okay? Rates for Microsoft Exchange contractors have hit a peak of £44/hr in March but are dipping again.
The ultimate set of Firefox additions
I give you... Pornzilla:
Pornzilla is a collection of tools for surfing porn with Mozilla Firefox. These bookmarklets and extensions makes [sic] it easier to find and view porn, letting you spend more time looking at smut you like.
Via UFies.org.
Ahem.
Looseleaf
What a lovely surprise. When I ’blogged about Toby’s birth (how geek-mungous is that sentence?!), I mentioned that the beautiful member of our household was wearing a Looseleaf t-shirt. Why? Well, it’s big (XXL anyone??) and long, and comfortable. Ideal for birth, believe me. So, imagine my surprise and delight when a package arrived all the way from Lexington, Massachusetts, at Poole Towers this morning.
So, my thanks to that gentleman Bob Balaban for sending on four new Looseleaf t-shirts, in addition to a much-coveted ’04 vintage CULT t-shirt. Thank you very much!
Eclipse 3.0M9
Now downloading...

Go and get yours! It’s 87MB sure, but hey, it’s better than downloading the trial for WSAD...
Amazing mark-up
What a fantastic bit of mark-up I just came across. Who did it? A hint’s in the code...
<!-- Created by CyberMother --> <H1> <BIG><BIG><BIG><BIG><BIG><BIG><BIG> <BIG><BIG><BIG><BIG><BIG><BIG>CoEnergy, Inc.</BIG> </BIG></BIG></BIG></BIG></BIG></BIG></BIG> </BIG></BIG></BIG></BIG></BIG> </H1>
Tsk. I can honestly say that up until now, I’d not even seen anyone use the <big> tag, let alone use it in such an... interesting way.
Security update
Given the recent brouhaha with regards a security hole in OS X, it’s good to see Apple quickly plugging it, although of course solutions were already in place (see John Gruber’s post, Disabling Unsafe URI Handlers With RCDefaultApp).
Doh!
I’ve gone and done it again: this weblog was two years old last Thursday, and I missed it! The first weblog entry was made here on 13th May 2002. It was very uninspiring. I’d love to talk more about the site: how things are going, and all that. But my hands are full at the moment.
Duh, I also hit 500 weblog entries the other day. Sheesh, talk about eye off the ball.
Many thanks for all your kind wishes. Toby (for that is his name: we finally decided today) is doing well, and nights are sleepless, as I suppose they should be.
Poole ++
The latest addition to the Poole family was born at 11.32 this evening. He weighed in (two weeks early) at 7lb 8oz.
Mother and son doing just fine, dad and big brothers pleased as punch. Bob Balaban should be pleased: mum wore a Looseleaf t-shirt for comfort.Very handy
Via Charles Miller, this extremely handy bookmarklet prompts you for a class name, and then takes you straight to that class’s Javadoc. Fiendishly simple, and a splendid idea. Brought to us by javadocs.org.
Play Fair is back
Hymn, AKA Play Fair, is back. And this time they refuse to be brought down by Apple’s legal team:
The Holy Grail
Crikey!
Experts from Bletchley Park are trying to crack a 250-year-old code rumoured to point the way to the Holy Grail.
Specialists from the Buckinghamshire code-breaking centre hope to decipher words etched on a garden ornament at Shugborough in Staffordshire.
Workplace
It’s all starting to look clearer, and the IBM site even has a page that renders some of the time! (just joshing, don’t shoot me):
InfoWorld: IBM puts Workplace at center of managed apps vision.
Imagine, if you will, my surprise at seeing a reasonable discussion of the underlying technology over at slashdot of all places (Via Bill Buchan). Posters saying stuff like Well this is all very well, but what happens when the intranet goes down?
were quickly apprised of the underlying architecture at work here: a SyncML-based “replication” engine. Combine this with the Eclipse rich client platform (RCP), and we’re talking powerful stuff (potentially).
The RCP: further reading:
» EclipseCon 2004 presentations
» dev.eclipse.org: rich client platform facilities.
More wiki
Ah yes, my “train project”... well, I have become somewhat disheartened twiddling around in BeeWiki, and may have to knock it on the head. The database has some nice pages and functionality, but one potential show-stopper — which initially I thought I could overcome — has kicked me in the nadgers:
The key issue with BeeWiki is that it uses a Java agent to render its content. This agent in turn uses the gnu.regexp package (java.util.regexp comes with J2SE 1.4.x so no joy there for Notes 5 / 6), and as a result, any code using said package is classed as Java that needs signing by an ID capable of running unrestricted agents. This makes it impractical for most Domino shops, even though regexp processing is a pretty benign activity. I tell you, it’s at times like this I find myself going off Domino...!
Anyway, back to wiki-style regexp processing. I have cobbled together a load of Javascript, invoked via onLoad(), which renders wiki markup to HTML. So far my fledgeling Javascript can do the following:
- Convert text tagged ~some text~ to <em>some text</em>
- Convert text tagged #some text# to <strong>some text</strong>
- Convert text tagged _some text_ to an <h3> header
- Convert URLs into links
- Convert so-called WikiText (i.e. two or more proper case words mashed-together) to links
- Wrap text tagged *some text thus: <li>some text</li> tags
The more problematic element of all this is converting line feed and carriage return characters to paragraph tags in the appropriate places, especially when combined with my list tag. Ho hum, I may soldier on for a bit more with that — or p’raps implement it all in @formula!
One of the pieces of code I’m more proud of is a computed (using @formula) Javascript onLoad() event in a $$ReturnGeneralError form, to intercept clicks on WikiLinks which haven’t yet been created.
What do I mean by that? Well, in a wiki, WikiLinks get created automagically, but there aren’t necessarily underlying pages for those links at the time of their creation. The wiki deals with this by making the link either an actual link to the page, or a link to create said page. For on-the-fly rendering in Domino (without Java) this is a little tricky, because working with WikiLinks means that a URL fragment like this:
http://server/path.nsf/Pages/WikiPage?Open
gives a 404 if that page hasn’t yet been created. So, my Javascript routine intercepts this, and changes the window.location to something like this:
http://server/path.nsf/WikiFormName?OpenForm&Title=WikiPage
It works really well, although there is of course one caveat: ideally the system shouldn’t try to re-direct to a page creation URL like this when the 404 error generated is for something entirely unrelated!
Crikey, this post is rambling stream of consciousness. I doubt it’s even remotely useful. Oh well. I will be posting the relevant code snippets somewhere on this site soon. In fact, I have quite a few things to post here — my LinkedArray and FormValidator classes, plus an article I wrote for the soon-to-be-gone e-Pro Magazine for example. Sigh. A wee wiki would be perfect for all of that... Bah!
I guess the next train project is a regular expression class for Lotusscript... or has someone already done it? LOL!
Further reading: Mike Golding: Processing HTML using Regular Expressions.
Extra-curricular activity
As well as being busy at work, I’ve been tinkering with BeeWiki, a wiki implementation written for Domino by Mark Lawson.

It’s a nicely written bit o’ work — I’ve just been tweaking it to provide more up-to-date HTML presentation and the like. More soon!
