Weblog by month (July 2003)
Naked objects
Talk about "pure" object-oriented programming. Check this out: NakedObjects.org. The premise of this Java framework is that there are no dialog boxes, no big ole’ UI abstractions. There's just a simple GUI reflecting (sorry, bad pun) the realities of the underlying object model it seeks to present. When people use the system, they’re invoking actual methods on actual objects (for example, a “deposit” method on a bank “Account” object). There’s no middle-man in the form of whizzy menus or scripted processes, and no three-month development cycles coming up with a satisfactory user interface. Quite a refreshing approach, if perhaps limited to certain types of application. Worth a look!
Via Rogers Cadenhead.
Apple-bound
Buzz Andersen, creator of PodWorks is bound for Apple. He's another interesting 'blogger and coder who's grabbed himself a job at Infinite Loop. Another such chap is Eric Albert. I'm quite getting into "Apple weblogs" as some very cool and talented people are writing them. Here are some others:
- Matt Gemmell - heads up Scotland Software
- James Strachan - OK, not really an Apple 'blogger, but has written lots about his OS X experiences of late (
My blog is rapidly turning into an OS X blog rather than Java / Open source blog...
). - Bob Lee - lots of Java and OS X stuff.
- Nicolas Riley
- Dave Hyatt. Of course!
Know of any other good 'uns?
Update: I mustn't miss out Volker and Justin: I'd say you guys count!
Only in the UK
BBC: Birth unit closed by maternity leave.
Short weblogs
Recently, there has been talk of what makes up the ideal length for a weblog entry. Well, what about the length of your whole weblog? I present The Single Bitter Announcement Weblog.
Via John Walkenbach
Testing, testing, 1-2-3...
Lately, I've been thinking about testing a lot. Thomas Duff has had some interesting things to say about the XP approach, which is (amongst other things) test-driven.
Naturally, there's been some pondering about how one can practically apply this to Notes & Domino programming — in fact, I feel an article coming on soon (it's about bloody time!) Essentially, test-driven development is all about writing the tests first, rather than diving straight in with the code. Sounds odd at first, but bear with me. Suppose you have a new application or problem to sort out. It could be complex, and you don't really know where to begin in terms of structuring your code (whether that's organising a load of procedural routines or designing an object model). Designing applications is an art, so anything that helps structure one's thoughts can't be bad eh? This is where your tests come in: write those first, and this will help lend a semblance of structure to your solution. In addition, knowing that each component comes from a test scenario means that it gets tested during coding rather than after. Ideally you're then in a position to combine your components into the finished solution with confidence: all your routines / classes / whatever have been through the testing process multiple times.
I'd also add that this approach means that you have more of a chance at avoiding those really stupid design errors, made when you're just too close to your code (or is that just me? )
Does anyone else have thoughts on this?
Fifteen minutes
Charles Miller on the "fifteen minute test":
One of the reasons I switched from Linux to OS X as my primary platform was because I don't have time to play around with software any more. I want it to work in predictable, obvious ways, and OS X (mostly) does that for me... Still, I think I'm more tolerant than most. So if you're coming up with the next big paradigm shift that will change the world, ask yourself: "How can I pass the fifteen minute test?"
Totally agree. After having spent an evening tinkering with drivers and comms software on a PC for my wife ("Plug and play"? Oh yeah??) I couldn't agree more. I know computers pretty well, and can could fiddle with the best of them. But I don't want to any more. Programming is enough tinkering for me!
Friday fun
I have me old mucker Mark Ullom to thank for this gem of a link:
Star Trek Pundit Blasted at Convention For Controversial Theory.
Another corker at the same site: Microsoft Nearing Completion of Death Star.
Objects and procedures
Rocky Oliver has a great discussion about Lotusscript coding going on at his site. I must confess to doing very little objected-oriented programming in my Lotusscript, but that's usually because what I'm doing with it doesn't warrant it, and certainly isn't on the scale of complexity that Nathan describes in one of his comments.
It's also a royal pain in the arse in that IDE
So anyway, I tend to leave OOP aside, and stick to being procedural with my script. That said, if you do want to learn more about OOP in Lotusscript, I can thoroughly recommend Doug Tillman's article (found in the January / February 2003 issue of The VIEW) entitled Apply OO Analysis & Best Practices to Build a LotusScript Framework or Bruce Perry's LDD article, Using the object-oriented features of Lotusscript. Both are excellent introductions to getting your brain in gear for this sort of thing.
So, the whys and wherefores: what I think is important, regardless of whether one goes procedural or OOP in one's Lotusscript, is that the code is well-organised. Each method, sub or function should have a clear, well-defined purpose, with a nicely limited scope. As I mentioned in the post about globals a little while back, code works so much better, and is so much more maintenance-friendly when it's self-contained, modular, easy to re-use, and doesn't require the developer to fiddle with its innards (so to speak) once done. Ah, the holy grail...
Sorry about that!
Whoops, bit of an hiatus there. My apologies. Well, the discussion was going well, so I figured I'd leave the site be, and enjoy the sunshine we've been having here! I also had my group away day this week, and have just recovered from that. Oof.
Anyway, like others, I am about to start ploughing my way through Head First Java from O'Reilly (thanks again Duffbert!). First impressions are very good: this is going to be fun. What's more, one of the authors is Kathy Sierra who strikes me as a brilliant teacher. Apart from anything else, she founded JavaRanch.com which is an awesome site for picking up Java tips, no matter what level you're at.
Finally got some new articles up my sleeve, and more ideas for other stuff now that I've had a wee break. Watch this space...
Repeat after me...
Global variables and objects
Oh, I thought I'd come up with a legit. scenario for declaring a couple of global string variables in some Lotusscript I've been working on. How wrong I was. Bad move, very very bad. I should have stuck with my original theory, that one should never use the buggers1. I'm not being a total stick in the mud, others seem to agree with me. For example, Andrew Pollack, who gave a very good talk on advanced Lotusscript techniques and approaches at The VIEW's techie conference in Amsterdam last October. In fact, whilst I'm on about this, here's a link to his presentation: Advanced Lotusscript - Performance & Reusability
The whys and wherefores of this dogmatic stance of mine I have also covered as part of a longer draft I sent to e-Pro magazine back in April. I don't know if that will see the light of day as an article though, so maybe I'll ask if I can reproduce it here someday.
Anyway, back to the code. Ironically, these particular string variables were supposed to help me identify erroneous code. I was using them to track Lsi_info details within a scheduled agent linked to two script libraries (containing thirteen separate routines between them). Much scope for calamity I'm sure you'll agree, and by jiminy I hit it: how can you possibly debug iffy code when your NotesLog doesn't even come close to reflecting reality (i.e. not giving the correct name of the buggy routines). Gah! I'm such a doofus. Keep your scope as tight as possible I say, unless you have a brain the size of Mars to remember everything that's changing.
Tchcoh. So, please feel free to weigh in with your own tales of silliness, if only to make me feel better.
A belated happy 4th to my readers in the US of A, and to everyone else, a good weekend!
1 - OK, disclaimer. I have been known to use globals for standard error messages / UI text and such. But they're always expressed as constants, so that's low-risk eh!
The BBC. And a picture!
Good stuff. The BBC has won a load of online journalism awards. Well-deserved; I think the BBC websites are absolutely amazing. Chock-full of well-presented deep content. Splendid stuff.
On a completely unrelated point, here's that photo I mentioned the other day. The boys are pretty photogenic. Their father, alas, is not.
Click on the thumbnail for a larger version in a new window (around 115 KB). That's a Stick I have slung across me by the way!
One year
Ah, so now it's July 2003. Which means I have been properly 'blogging for a year now. It seems so much longer... Heh heh. A year ago I moved to this house, got ADSL set up and finally deployed this funny wee Domino database I'd had knocking around for a while. So what's happened since then?
Well, the site's gone through two major design updates. The first got rid of all table-based layouts and added weblog comments. The version three update just made everything... simpler. How I like it.
On the content side, I've had numerous "you suck" emails (mainly in the first three months), have been asked to desist from commenting on another site, and have been routinely spammed and abused. I've also had a whole lot of good feedback, a few requests to write for magazines, loads of Domino-related favours, the offer of a free book, and have made some good "virtual" friends. So, on balance? Oh, it's definitely worth doing! I just hope I can keep going.
