John Topley's Weblog
May 2004 Article ArchiveWe Are OneSunday, 30 May 2004It's hard for me to believe, but it's a year today since I first clicked the Publish button in CityDesk and uploaded this site. Actually, that's not quite true because I did have a preview site hidden behind a teaser for quite a while, which John Conners managed to pick up from his referrer logs when I inadvertently clicked on a link to his site! This first anniversary is going to be an unashamed opportunity for self-indulgence on my part, although I will reveal some facts about this site that may be of interest…or not! My discovery of Joel on Software, downloading the trial version of CityDesk and deciding that I wanted my website to be a blog and a bit more, all occurred sometime in the summer of 2002. I had some reservations about whether having a blog would be too self-indulgant, which led to the decision that it should mainly be technical content. Then I fretted about what an earth I was going to write about, which I still do! I started to think about what the site should look like and I decided that it would be a good opportunity to have a go at creating a DHTML flyout menu as featured in the wonderful Dreamweaver 4 Magic. By then I had a rough idea of which areas of content the site would feature and headed over to Corbis to pick up some royalty-free images that roughly corresponded with what I had in mind. These images were manipulated using Fireworks and Paint Shop Pro. Although initially I used Dreamweaver to do the HTML coding of the CityDesk templates, I eventually switched over to Windows Notepad because Dreamweaver was reformatting my code slightly. I validate the pages for XHTML compliance using A Real Validator. I use TopStyle to create and edit the site's CSS files. All of the PHP coding on this site is John Conners' and not mine, as I don't have time to learn it and thanks to John's generosity, I don't need to. I started to write articles using CityDesk, thinking that the site would be up and running very quickly and that I'd have a nice backlog of content, thus giving me some breathing space for coming up with new content. Boy, was I wrong! Incidentally, some of those articles have never seen the light of day, but that's because they're short/out of date/not very good, or all three. Others were heavily re-worked before publishing. I started work on this site using CityDesk version 1.0 and first checked the file into Visual SourceSafe on 17 September 2002. My recollection is that it's the CityDesk 1.0 version that went live, but according to my SourceSafe check-in comments, I actually upgraded to the CityDesk 2.0 beta just before going live! Of course, I had a backup of the 1.0 site but fortunately didn't need it as the beta was rock-solid. I spent the odd hour or two working on the site between September 2002 and May 2003 and finally took three days off work at the end of that May to get the damn thing finished and out there! I started work on converting the site from HTML 4.01 Transitional to XHTML 1.0 Transitional on 29 August, which was quite a daunting undertaking, but I managed to finish the job the next day. I've been making incremental improvements ever since. The CityDesk file has been checked into SourceSafe 396 times in total so far. I've written 55 weblog articles, 35 knowledge base entries and nine media reviews. I always worry that I don't write enough media reviews and there's still nothing in the website reviews section. In retrospect, I should have made it a section for software reviews. The most popular month so far has been March 2004, with 166,245 page requests. The majority of visitors to this site are viewing it using Internet Explorer 6.0 and Windows XP. The most popular search term is “Struts”, as in Jakarta Struts. The worst thing that has happened was when the site was down for four days in July 2003 and I lost all the article comments up to that time, some of which were from friends commenting on my new site. I religiously back up the comments now. Why do I do all this? It's part aide-memoire and part journal, although I've never felt the urge to keep a paper journal. If I said that I wouldn't be bothered if no one else visited and read what I wrote then I'd be lying, because the feedback I've received has been one of the most gratifying aspects of the whole experience. Some of my favourite comments are reproduced at the end. The wonder of the Web has enabled me—in a very small way—to reach people who would normally be out of reach. Now I've told you all about the site, I don't know what I'm going to write about a year from now, but they'll be plenty of content in-between! I love your blog - knowledgable tips, witty language, a joy to read. Thanks for sharing your views with us! I really like your site - you put a lot of work, energy and enthusiasm into it and I really appreciate that. I like the design very much and wish I could have done it. Also your knowledge base is great (I wish I would have that too). I just wanted to say that I really enjoy reading your weblog. I get happy whenever Outlook tells me that you've written something new. You write about things that I find interesting and you do it well. Keep on writing. Santorini SnapsFriday, 28 May 2004I've just spent a week on holiday on the Greek island of Santorini, which is the southern most island in the Cyclades group. We stayed in the excellent El Greco hotel apartments in the capital, Fira. The temperature was in the mid-seventies, although a chill in the evening meant that wearing a jacket was advisable. Santorini and its neighbouring islands were formed by volcanic activity and it's possible to visit the—still active—volcano by boat trip, which we did. The last eruption was in 1950. There are lots of good bars and restaurants on the island, most with excellent views out to sea and of the stunning sunsets. Unfortunately our flight home was delayed by over eleven hours, due to “operational reasons” according to the airline; a predictably vague explanation. It was a shame, but it didn't spoil a great trip. Anyway, rather than bore you with words about the place, I'll let a selection of the photographs I took describe what it's like. Click the thumbnails for the bigger picture:
Javadoc Not Backwards-CompatibleSaturday, 15 May 2004Although occupationally I currently write code for J2EE 1.3, the other week I needed to install the J2SE 1.4.2 JDK and this led me to discover an interesting difference in the Javadoc documentation program between the two versions. Following Sun's Javadoc usage guidelines and the excellent The Elements Of Java Style, both of which state that argument names should be offset by <code>…</code>, I've always erroneously enclosed formal method parameters in <code> tags, which causes the parameter name to be displayed in a fixed-width font. I say erroneously because subsequent experimentation has revealed that Javadoc adds the tags itself behind the scenes anyway. However, that's not what I'm writing about. I discovered that the Javadoc that ships with the 1.4 JDK nows barfs on documentation written using Sun's recommended style. A warning is emitted and the method parameter documentation is not included in the HTML output. To prove this I wrote a simple Java class, that I compiled using both the 1.3 and the 1.4 versions of Javadoc: public class JavadocTest —The 1.3 version works fine as expected, but the 1.4 version gives the warning: JavadocTest.java:8: warning - @param argument "<code>args</code>" is not a parameter name. In fairness this behaviour is documented in “What's New in Javadoc 1.4.2” as a resolution to bug ID: 4693440. The bug database entry for this bug says that Javadoc issues a warning when a bad parameter name is passed to the @param tag, and the bug history shows that this fix was introduced because version 1.4.0 onwards requires the first argument to @param to be the parameter name and not the type, as used to be allowed. Unfortunately this fix doesn't take into account real world Javadoc documentation styles i.e. it's not clever enough to strip the <code> tag from around the parameter name. The net result of which is that potentially I'm now left with a whole heap of legacy code containing Javadoc that no longer compiles cleanly. Talking of Javadoc, if Sun must break compatibility with previous versions then why don't they improve the standard doclet so that it outputs XML and then uses XSLT to generate valid XHTML? Preferably XHTML that uses DIVs instead of frames and makes more effective use of CSS to produce documentation that is not only functional but attractive too. Software Review: VisiCalc For The IBM PCSaturday, 01 May 2004VisiCalc for the IBM PC was first released in 1981. I thought it would be interesting and instructive to take a look at a piece of software that is not only twenty three years old, but that also defined a market. If you're not familiar with VisiCalc then you should know that it was the world's first electronic spreadsheet. Imagine a time before Microsoft Excel, before Lotus 1-2-3, before Windows, before MS-DOS even. A time when a spreadsheet was a piece of paper with a grid on it that accountants used. That time was 1979 and I was five years old. I remember it, I got a train set for Christmas. VisiCalc from Software Arts, Inc. was released into the world of 1979 for the Apple II—or Apple ][ for the cognescenti—computer. VisiCalc became the world's first killer application i.e. a program that makes people buy the hardware just so they can run that software. It was a phenomenal success and was ported to numerous other platforms, including the new IBM Personal Computer in 1981. One of the most famous facts about VisiCalc was that it was not patented. People speculate that Dan Bricklin and Bob Frankston must have been stupid not to patent their creation, for surely it would have made them astonishingly rich. What's forgotten is that at that time patents for software were almost unheard of. VisiCalc is a free download from Dan Bricklin's site, for Lotus—who now own the copyright—have given permission. I really like online software museums, where you can download the important exhibits, as it were. Borland have a good one. I wish more software companies would put their heritage online. The first thing that strikes you about VisiCalc is its size, or rather, lack of it. You get a 27,520 byte MS-DOS executable (actually a .COM file) and nothing else. No installer, no uninstaller, no DLLs, just a fully functional, no frills spreadsheet program. Run it from your hard drive, run it from a floppy or run it from a USB key ring if you like; this thing is tiny! That's because it's a command-line application written in assembly language. It will run though, thanks to Windows backwards-compatibility. Upon double-clicking the file and pressing Alt + Enter to switch to full-screen mode for that authentic 1981 experience, this is what you get: —It's instantly recognisable as a spreadsheet, but there's little clue about where to start. We've wound the clock back to a time without GUIs (Xerox PARC excepted), when applications came with proper printed manuals and handy reference cards with the commands printed on. And so it is with VisiCalc. I set about recreating the spreadsheet featured in the reference card. Using VisiCalc is surprisingly similar to using a modern spreadsheet program. The main difference is that there is no menu bar, so you have to memorise the commands rather than being able to browse for them. +1 for the invention of the drop-down menu. The command processor is invoked by typing a forward slash, followed by a single letter corresponding to the command you wish to execute, which may be followed by further letters that define the exact command you want. To jog your memory, VisiCalc displays “BCDEFGIMPRSTVW-” in the prompt line after you type the forward slash! In use the commands are actually pretty easy to pick up. For example, /C clears the screen, /D deletes a row, /FI sets the cell format to integer; it shouldn't take too long to become a VisiCalc speed demon. I had difficulty working out how to enter the decorative line of hyphens in the reference card spreadsheet. It turns out you have to use /- to enter a repeating label and then you type the character that you want to repeat. Pressing the right arrow key fills the current cell with that repeating character, which is neat. This is what a came up with: VisiCalc includes most of the basic functions that you'd want from a spreadsheet, including @SUM, @MIN, @MAX, @COUNT, @AVERAGE etc. It's amazing how constant these basic ideas have remained in the years since Dan Bricklin and Bob Frankston first worked it all out. It's a testiment to its creators' design and execution that VisiCalc is still a perfectly usuable electronic spreadsheet. However, I don't want to use it. Given the order of magnitude difference in size and features, it's interesting that Excel 10 feels snappier. I guess that's progress. I like the purity and simplicity of VisiCalc and it's always interesting to meet a legend, but for my everyday spreadsheet tasks I think I'll stick with Excel. I remember the days of DOS applications—with reference cards that you stuck above the keys—from when I first entered the world of work, which is why I now don't want to give up the niceties like menus, and drag and drop, that we all now take for granted. Time to quit VisiCalc using /S(ave) followed by Q(uit) and Y(es). |
![]() |











