Agenda

The rapid pace of technological progress has brought us many benefits. Now, we can view TV programs in real-time on cellphone handsets, pause and rewind live TV, talk face to face with someone the far side of the planet with nothing more than a standard laptop and Internet connection - but there's a negative side, too. With all that power, programmers have become lazy and inefficient - to the extent that even word processing, manipulating plain text in a way PCs of 20 years ago handled without a struggle, becomes noticeably faster when you upgrade beyond a single gigabyte of RAM. The thousand page document which LaTeX typeset, paginated and indexed in seconds on my laptop with formatting of the highest quality reduces a more powerful PC to minutes of disk-thrashing with a single keystroke, just to recalculate page numbers. Meanwhile, we have to exercise caution opening our e-mail, in case a cunningly constructed message tricks our e-mail client into infecting the host system with malicious code!

When I design or write software, there are several people I like to think of as rôle models and aspire to emulate. In particular, Mark Russinovich of Sysinternals (now part of Microsoft) with his 'minimal packaging' and 'multipurpose binaries' approach (as far as possible, an application should be a single .exe file which runs on any suitable system, rather than having different versions for Windows 95/98, NT, XP, Vista etc - even when this means embedding half a dozen other files within that .exe, it greatly simplifies the user's life, which should be the goal of all software!) and Dan Bernstein's simple, secure, robust and efficient software, which takes a bit more effort to install but provides some of the finest server software available, including the DNS and e-mail software for this site.

TFind, for example, is delivered as a simple .exe file: download it to the right place, run it - that's all! Similarly, TableSearch, the Javascript add-on for searching tables, is integrated with a single <script> tag and the addition of class="search" to each table to be made searchable.