Weblog by month (June 2004)
Letting Domino do it
There’s quite an animated discussion going on over at Rocky Oliver’s site regarding Domino web develoment: specifically, should one hand-code most of the HTML, or should one let Domino do the rendering? Well, as with many things in life, I think the optimum approach lies somewhere in the middle. For example, this hand-rolled weblog database contains compliant code, uses an all-CSS layout, etc. etc. It also has reams of pass-thru HTML in it, and frankly, when I come to tweak it (several people have asked for the template, but I’m far to embarrassed to give it out “as is”), many of these design decisions will be reversed. The maintenance overhead is too high, and it’s not all necessary. I was just being an HTML snob.
I always used to think one form design, chock-full of pass-thru HTML was a preferable alternative to tweaking individual field HTML attributes and the like. Now, I’m not so sure. During the day I’ve been coding a Domino site (my first one at work in ages), and a lot of the forms rely on Domino to generate much of their HTML. It’s quick, easy, and surprisingly workable. So, FWIW, here are some quick ’n’ dirty tips for web development in Domino — your mileage may vary
- Use computed text. I love it. Sometimes computed-for-display fields are still the ticket, but for everything else? Computed text. Dynamic Domino-sourced content right there in your Javascript or XML? You got it. Brilliant.
- Use sub-forms. I store commonly-used form elements and the like in sub-forms. When including them in forms, I tend to make them computed just for sanity’s sake, i.e. the sub-form content doesn’t get rendered in the form when viewing it in Designer, thus keeping things cleaner.
- Use shared / multiple use fields for common elements such as view title, document count, search fields, and so on. This is very handy for view navigation options, hide-whens when views are empty, breadcrumb navigation, etc.
- If you’re still using R5 (as we do at work), consider using fields to parse out Querystring parameters and what have you: chances are, if you need a parameter once, you will need it again.
@UrlQueryStringdoes the job in ND 6.x of course. - Need common
<head>content across a lot of forms? Don’t be afraid to use a shared$$HTMLHeadfield rather than the HTML head content form “event”. It could be a real time-saver. - Use separate form and view designs for Notes and web access. This trick gets overlooked a lot in my experience. Simply create two versions of the relevant design element, with the same name or alias, and then hide the web one from Notes and vice versa. It’s a great feature.
- Don’t be afraid to use the odd
WebQueryOpenorWebQuerySaveagent. Gasp! OK, so they’re an overhead, but it’s not that bad, and unless you’re planning on running an Amazon killer, you can quite often get away with this. That said, don’t go mad: various DHTML tricks and clever design can work wonders here. - Don’t always believe Domino Designer Help. Example: I recently coded a web view that showed just categories (i.e. no documents / links beneath). This is easily done in Domino, and I use the trick a fair bit (see my archives page for example — no round-trips to the server, and no naff twisties). OK, but then the requirement changed, and the users wanted to see the category link and the number of documents within it. Not a problem in Notes, not a problem in Domino: I just used
@DocDescendants— yet if the help is to be believed, this function isn’t available on the web. Well duh. - Javascript: use it! OK, so not all browsers support it, but if you’re coding for intranets — as many of us are — go ahead and use it. Don’t rely solely on Javascript to validate or clean up crucial user-submitted data though — it’s easily circumvented (now’s the time to use that wicked Domino back-end eh!)
- Talking of which: the Domino back-end. Wow. Hierarchical granular security options. Rich content and HTML generation. Agents. Workflow. Easy replication and deployment: take advantage of all these features! They are the bees’ knees, and nothing else comes close!
Phew. That’ll do for now: I have loads more, but I’ve rambled quite long enough. Please feel free to pass on your tips and tricks, either here, or over at Rocky’s!
England vs. Portugal
You mean you’re not watching it?? Oh my gosh.
BBC: Portugal 2-2 England (it’s now down to penalties).
Lots of balls in the air
No, not talking about the football . Work’s frantic at the moment, lots of things going on, which is all good. I’m currently building on some excellent work undertaken by “the two Johns” — Messrs Barrow and Marshall — which is pretty interesting. It’s a collaborative website with a fair few doo-dads incorporated in it: ActiveX XML objects a-plenty, oodles of Javascript and a graphical poll. Splendid. We also have Sametime integration and wot-not in our sights.
Whilst all that is going on, I am wrestling daily with a recaltricant Domino server running 5.0.5 (urgh). It insists on terminating the HTTP task three to four times a day, and to make matters worse I have had to get DIIOP up and running on the little beast. A grim undertaking in anything less than Notes 6. I shall post my findings on the wiki once I’ve finished that application off. I now have some real-world experience to add to the DIIOP post I wrote back in January!
Which brings me to today’s find: whilst researching various weird and wonderful DIIOP error messages over at Bob Balaban’s excellent Looseleaf forum I noticed that Bob has published a piece all about writing Domino Java code in WSAD.:
Writing Domino Java Agents Using Websphere Studio.
More looney Radiohead
I recently ’blogged about Rodeohead and their bonkers Radiohead medley. So, how about this then: school band cover of Paranoid Android (link to 4.7 MB MP3 file).
Via Boing Boing.
Wining (sic) ’bloggers
Last Sunday Dave Winer did it again. Not content with being a frequent target for those with no sense of perspective, he’s really gone for it.
Dave used to run a free hosting service for Manila Userland ’bloggers. Now, as is his right, he’s decided to knock it on the head for various reasons. So far, so good. But he really screwed up in that the withdrawal of service was made in one fell swoop, with no warning, nothing. If you own a site which he hosts, you have to log a comment on his site and he’ll hopefully send you a back-up:
Sometime after July 1, 2004, I will export all the requested sites, without their membership groups. You can then download them and do with them as you wish. I won’t export them before July 1, and this is a one-time offer.
I don’t recommend following the comments against this link unless you can take a lot of profanity and stupidity: some people have gone absolutely crackers over the whole situation.
Summary: what Dave is doing is perfectly reasonable in principle, but he’s definitely going about it all wrong. A little notice is not too much to ask. That said, what really makes me laugh is the sheer hostility from those expecting a free ride into perpetuity — much like the recent furore over MovableType (and before that, when Apple started to — gasp! — charge for .Mac). OK, so he’s taken your site off-line with no warning and no re-direct. He currently ownz your precious content, and that’s pretty stiff. However, if it’s that precious, you should (a) have a local back-up and (b) consider paying for some proper hosting with service level agreements and the like. Those whingeing about “fascism” or wishing horrible injuries and death on Winer just look incredibly foolish, although by the same token, I can’t see the man himself being taken particularly seriously again after this sorry episode.
Oh yes, as one would expect from that most litigious of societies, a lawyer with a proposed class suit has also chipped in. Good grief, as if life wasn’t short enough already!
Via Rogers Cadenhead.
Subverting stuff
I spent part of the day yesterday installing Subversion, the heir-apparent to Concurrent Versions System (CVS). After a couple of screwed-up installs, it went OK. We’re now running the svnserve executable on a Win2000 server, with WinXP clients. I haven’t tested things like the Eclipse plug-in Subclipse but will soon.
A lot of people seem to be seriously looking at the tool now. Here are my quick tips for getting the system up and running on Windoze:
- Download the set-up installer from the Subversion site. I installed 1.0.5 yesterday, which fixes some security issues.
- Run the installer, accepting the defaults. You will now have a load of stuff in /program files/subversion with all the executables in the bin directory.
- You may need to install a Microsoft run-time file (msvp60.dll) if you’re proposing to run Subversion on Win2k — at least, I had to. The download for this can be found on the MSDN site here. Be sure to run the initial executable, and then the various files it results in. You may also have to edit your machine’s Path environment variable to point to the DLL location.
- OK, the installation is done. Time to create a repository. Think about how you’re going to name / structure the repository, but don’t worry too much: moving directories etc. is a lot easier than in CVS. Create the folder structure on your hard disk, and then issue the following command via your favoured CLI:
svnadmin create <PATH TO YOUR REPOSITORY> - Now you’re set. If you want to set up security for your repository, navigate to the conf sub-directory and edit the svnconf.conf file. I set anon-access to “none”, and auth-access to “write”, with some user names and passwords detailed in a separate config file in the conf directory. Works fine over the standard svn protocol.
Next up is to investigate the Apache / WebDAV integration. Like I say, Subclipse will be tested, but in the meantime I am using TortoiseSVN — with its excellent Win32 shell integration — as a Subversion client for now.
The nearest equivalent to TortoiseSVN on the Mac is the SCPlugin tool. This integrates Subversion with the Finder. Now, whilst commenting on Gus Mueller’s account of setting up Subversion in his Mac environment, I started to think out loud: how might one incorporate Subversion in Xcode (Xcode already has CVS integration)? Well, we have the Apple World Wide Developers Conference (WWDC) coming up in less than two weeks, with a number of tracks on Xcode. I don’t think it’s beyond the realms of possibility that version 1.5 will go gold at the conference. This snippet from Think Secret hints heavily (my emphasis):
In release notes, Apple said that Xcode 1.5 will include updates to user interface, inspectors, building, code sense, CodeWarrior project importing, debugging, documentation, file editing, and source code management.
We shall have to wait and see!
It’s here!
The Apple iTunes Music Store (Europe) is here at last! And at seventy-nine pence per song, the price is better than expected too. I think the servers are a tad stretched: verifying account details and what-have-you is somewhat problematic at the moment. But anyway... hurrah!
Don’t do this
Whilst munching ’pon a sarnie at my desk (I know...) I hit upon a wee idea inspired by Ed’s recent post re ten years at Lotus. As soon as I could say “gissajob” I had slapped together some Lotusscript to parse our organisation’s phone directory for everyone who joined on the same day as me (yes, I know!).
Of course, this being a big place, I didn’t know everyone that came back in the code — and most of the people I joined with have moved on anyway — but for those I remember who are still here, I discovered that 75% are now senior managers. The errant 25% are now associate directors.
Me? I’m a lowly manager, on the same pay for the past four years. I get good staff ratings and spit out code like there’s no tomorrow mind. And I can do portals.
I shall now continue to cry into my sandwich and return you to your normal schedule.
Wuhsad
There’s been talk about Wuhsad over at Spuggy’s place: chit-chat about portlets and related fol-de-rol. Now, we all know that WSAD is expensive, and requires a bit of a beast to run properly, but who knew this??

Yes, that’s right: WSAD takes approximately 28 days to uninstall. Criminy!
The footie
Ah, England played France this evening. What a cracking game. And the end?
6.5.2 on the Mac
I’m performing a clean install of Notes 6.5.2 on my Mac (OS X 10.3.4) as I type. So far so good, although why the damn installer still feels the need to quit all other running applications before it can do anything is anyone’s guess — such behaviour from a new house guest is just so... rude!
Ahem, anyway, installation was successful, and was very quick: precisely the time it took to type the paragraph above in fact. The client configuration wizardry went without a hitch (but see point #3 below), and I’ve been able to connect to my DDN server OK. So, all in all, looks goof! Now for some testing. But first, I’ll provide some basic tips for anyone looking to do the same on their Mac:
I’ve installed various versions of Notes 6.x on various versions of OS X. Almost without exception they’ve all worked. However, I’ve always performed these steps:
- Removed all evidence of previous Notes installations: not only the application folder and contents, but also all prefs and plist files from ~/Library
- Ensured that my account has full permissions over the Notes ID file I wish to use (copied from my Windoze machine)
- The client configuration wizard: this is where things consistently go awry. To avoid random errors at the ID file selection stage (“You are not authorized to perform that operation” usually — when attempting to connect to my server), I always elect to set up Notes as a stand-alone installation. Kicking off the client reconfiguration wizard then goes OK, and that takes care of server connections etc.
So, the process goes pretty smoothly for me, but only because I’m aware of the pitfalls. The Mac is still very much the second-class citizen when it comes to Notes, but at least we have a client, and at least it runs better than R5. Why the hell we still get reams of Java-related extensions and JAR files though, I’ll never know: we still can’t run Java in Notes on the Mac. Which is rubbish!
Finally... fonts are OK by default at last!!!
Previously... Notes 6.5 on OS X.
Rodeohead: awesome
Some free MP3 listening for you. If you like Radiohead, you simply must check out Hard ’n’ Phirm’s tribute to the band. This is a five minute medley tribute to the Oxford bunch, and is nothing short of stunning. Bluegrass Radiohead: who could ask for more?
Via Boing Boing.
Ray on my mind
RIP Ray Charles, who died today.
Ray was an amazing musician, and it’s truly a lesser world for his passing. At least he leaves a massive musical legacy, so I’m off to play some CDs...
Why, the open sauce!
After playing stroppy uncle with Bruce and Nathan in the early days (anyone remember notesoss.org?), it would appear that IBM are keen on re-writing history with regards open-source initiatives in the Lotus world. Craig Lordan has this to say about the LDD Sandbox:
“It’s a neat way to show how Lotus customers are doing things,” he said. “A lot of the things there are offshoots from discussions between users about what kind of new functionality they want. They put something together and share it with everyone else,” Lordan said. “We really want to encourage that kind of open-source feel.”
I don’t mean to whinge — the Sandbox is a splendid resource and it’s great to see IBM recognising the value of open-source (Eclipse anyone?) — but come on, credit where credit’s due: OpenNTF is where it’s really at with regards OSS in Notes.
(Incidentally I cleaned the quote up a little: the c|net article’s grammar and punctuation left a little to be desired).
Via Ed Brill.
Amusing place names
If you’re a reader in the UK, try this out: Amusing places close to you. Here are mine:
Cock Clarks
Gay Bowers
Thong
Dancing Dicks
Fingringhoe
Pratt’s Bottom
Fishpits
Pett Bottom
Minges
Mincing Lane
Great stuff, and spot on. In fact, I walk down Mincing Lane (no laughing at the back there) en route to work most days, and I’ve often seen Thong sign-posted whilst out driving.
Via Boing Boing.
