<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE blog SYSTEM "xblog.dtd">
<blog>
  <entries>
    <entry YYYY-MM-DD="2005-11-19" HH-MM-SS="14:15" day="Saturday"
      id="pdainst">
      <topic>
	<para>Ho hum, installation time again</para>
      </topic>
      <summary>That's it: beige &smile; I'll paint the ceiling
	beige&hellip;</summary> 
      <para>And before I start, for those of you unfortunately unable
	to get out from under Internet Explorer, Yes, I
	<emph>have</emph> added a banner extolling the virtues of
	Firefox, and No, no-one is paying me to do it (Google either
	can't or won't pay its $1 finder's fee to <prod>AdSense</prod>
	customers outside the USA). For those of you using normal
	browsers, you simply won't see anything different.</para>
      <para>So I decided to upgrade Z again, to OpenZaurus 3.5.4 RC
	(see sidepanel on left). As usual, the folks at OpenZaurus and
	Opie have done an excellent job against all the odds to get
	this out, and there are just a few minor wrinkles to iron out.
	But I said I'd log the process, as I did with <link uri=""
	  to="fc4">FC4</link> a while ago, so here she is, a log of
	installing 3.5.4RC (58-6 size) to an SL-5500. Bugs,
	suggestions, etc are flagged.</para>
      <list reference="number">
	<item>
	  <para>Under 3.5.3: download files, rename, copy to CF
	    card.</para>
	</item>
	<item>
	  <para>Remove SD card, flash, remove CF card, boot.</para>
	</item>
	<item>
	  <para>Boot says something about not being able to synthesize
	    pci hotplug events, but otherwise it boots and installs
	    packages as expected. There still appears to be no way to
	    grab a log or copy of this procedure, and it scrolls off
	    the screen too fast to make notes.</para>
	  <para status="revised">Is there any way the boot/install log
	    can be tee'd into a file?</para>
	</item>
	<item>
	  <para>Initialization looks fine.</para>
	</item>
	<item>
	  <para>Time zone defaults to UTC which is good. My network
	    card isn't recognized by pcmcia/config, so it has to be a
	    manual setting first time round.</para>
	  <para status="revised"><q>Get time from network</q> should
	    be grayed-out when no network card is present.</para>
	  <para>Switched Tokyo to Dublin, set time, changed Week Start
	    from Monday to Sunday, changed NTP server to a local one.
	    I've never understood what Predicted Time is: it doesn't
	    seem to do anything meaningful except predict the wrong
	    time &smile;</para>
	</item>
	<item>
	  <para>Usual long pause before Personal Details screen
	    appears.  The script is obviously doing something, but the
	    delay would unnerve a novice.</para>
	  <para status="revised">Add a <q>Loading&hellip;</q> popup or
	    progress bar so users don't get worried.</para>
	</item>
	<item>
	  <para>Skipped Personal Details because my
	    <code>businesscard.vcf</code> is on my SD card and I'll
	    copy it across later.</para>
	</item>
	<item>
	  <para>Opie starts up. Nice font, big improvement. Tabs are
	    still a bit clumsy by default though: not a serious
	    problem, just &aelig;sthetics: they need to be coloured
	    and round-cornered a bit to add to the eye-candy.</para>
	</item>
	<item>
	  <para>No mail client, no FTP client, no browser.  No problem
	    for initiates; big, Big, BIG problem for newcomers.
	    Zaurus is dismissed as <q>useless</q> unless it fires up
	    Internet-ready first time, every time.  We seem to be
	    missing a big trick here.  Yes I know there are problems,
	    konq is unmaintained and dies on many sites, and opie-ftp
	    fails to store site setups, but opie-mail works OK most of
	    the time <emph>and</emph> it reads news.</para>
	  <para status="revised">Add opie-mail and konqueror or opera
	    at least, and add mail config to the startup script.
	    Either fix konqueror (it's very close) or cut a deal with
	    opera. Fix the dropping of site data from opie-ftp. Fix
	    bug in opie-mail IMAP where it fails to delete mail from
	    server.</para>
	</item>
	<item>
	  <para>Inserted SD card.  No popup to say it's inserted
	    (although at boot time I noticed that sdmgr itself did
	    start up).  Check the applet and it says Empty Socket.
	    Open File Manager and find that SD card actually
	    <emph>is</emph> there.</para>
	  <para status="revised">Fix sdmgr to notify tray applet that
	    SD card is inserted.  This has always worked until now, so
	    maybe it's been broken by mistake. There was surely no
	    need to break or disable it.</para>
	</item>
	<item>
	  <para>Open a console, go to <code>/media/card</code> and run
	    my script that copies my backups of
	    <code>addressbook.xml</code>, <code>datebook.xml</code>,
	    <code>businesscard.vcf</code>, <code>todolist.xml</code>,
	    <code>hosts</code>, <code>resolv.conf</code>, and
	    <code>config.opts</code> files from the SD card into the
	    relevant places in <code>/home/root/Applications</code> or
	    <code>/etc</code>.  The script also HUPs cardmgr to enable
	    CF cards.</para>
	</item>
	<item>
	  <para>Re-insert the 64Mb CF card used for flashing, and it
	    pops up a window saying it's not recognised and do I want
	    to configure it. This is new: a really excellent idea, and
	    it displays the recognition string from the card, which is
	    otherwise impossible to discover. But DUUH this is the
	    card you just flashed the system from, right? So you know
	    you can read it already. It should have been added to
	    config.opts automatically at load time.</para>
	  <para status="revised">Ensure CF card used for flash gets
	    added to pcmcia/config.opts if it's not already in
	    pcmcia/config.</para>
	  <para>And it's ignoring my <code>pcmcia/config.opts</code>
	    which already identifies all my CF cards.</para>
	  <para status="revised">Fix cardmgr so it behaves normally
	    for cards found in <code>pcmcia/config</code> and
	    <code>pcmcia/config.opts</code> and doesn't ask for them
	    to be configured.</para>
	  <para>And where FFS does the new pop-up card detector store
	    the data it gathers? Certainly not in
	    <code>config.opts</code>&hellip;</para>
	</item>
	<item>
	  <para>Configured the card for activate on insertion and on
	    boot. It's a Really Bad Idea to make it default to
	    suspend: WTF wants card insertion to cause a
	    Suspend?</para>
	  <para status="revised">Fix card detector to default to
	    Activate.</para>
	</item>
	<item>
	  <para>Weirder and weirder. Having done the CF config, the
	    applet now does identify my CF card with the very string I
	    already had for it in my <code>config.opts</code>. So it
	    seems to read the file, but ignores it when a card is
	    inserted and asks for configuration anyway. Not good.
	    Eject and reinsert to test&hellip;nope, it still asks for
	    it to be configured all over again. Configure it and the
	    applet displays the right string again, which it knew
	    already&hellip;so why ask?</para>
	  <para status="revised">Is there a problem with the config
	    applet writing to the <code>config.opts</code>
	    file?</para>
	  <para>It's going to be a major problem if users have to
	    configure CF cards afresh each time they insert
	    them.</para>
	</item>
	<item>
	  <para>Good menu for the card recognition applet though.
	    Definitely the way to go, and a major improvement.</para>
	</item>
	<item>
	  <para>Inserted Ethernet CF card, which is wired to my DSL
	    router. Applet asks for configuration, same questions,
	    same reply (activate), plus it wants the driver
	    (<code>pcnet_cs</code>). Same error: the applet then
	    displays the real name I had already stored in
	    <code>config.opts</code>.  OK, at least it's
	    consistent.</para>
	</item>
	<item>
	  <para>Open Network, yep, it grabbed an IP address from the
	    DHCP server. Looks like we're online.</para>
	</item>
	<item>
	  <para>Configure Light &amp; Power, looks good.</para>
	</item>
	<item>
	  <para>Configure Appearance, fix rotation to
	    anticlockwise.</para>
	</item>
	<item>
	  <para>Check Calendar, Contacts, ToDo List, and Today, all
	    working with my copied data OK.</para>
	</item>
	<item>
	  <para>Open console and set root password.</para>
	</item>
	<item>
	  <para>ssh into Z from a Konsole on my laptop. Time to zap
	    all trace of my previous 3.5.3 packages, even though 3.5.4
	    uses the same repo for them, as they had gotten messed up.
	    Space is tight on an SL5500, so I've been keeping all the
	    package-related stuff on the SD card as the root partition
	    is at 96%.</para>
	  <para>Remove the old <code>/media/card/packages</code>
	    (actually move it out of the way until I
	    understand/remember what creates it and how &smile;</para>
	</item>
	<item>
	  <para>Try an <code>ipkg update</code>. Oops. It can't
	    download
	    <code>3.5.3-snapshot-20051024/feed/opie/Packages.gz</code>
	    from <code>http://openzaurus.org/official/unstable/</code>
	    which is hardly surprising, looking at the name. Looks
	    like it has tried to autoconfigure itself using the kernel
	    label or something.  Check <code>/etc/ipkg.conf</code> and
	    sure enough there is the faulty URI. Use <prod>vi</prod>
	    (gag, spit, wash mouth out with soap and water, no emacs
	    on the Z) to get rid of the snapshot and date. Now
	    <code>ipkg update</code> works.</para>
	  <para status="revised">Fix <code>/etc/ipkg.conf</code> to
	    use the right repo directory names.</para>
	  <para>Try <code>ipkg -d sd install opie-mail</code> (assuming
	    the GUI package manager is still unusable). Started off
	    well, downloaded the IPKs, including the lib deps, but
	    then hung on installing <prod>libcrypto</prod>
	    first&hellip;maybe because there's no
	    <code>/media/card/packages</code> to put them into? Hmm.
	    No flicker from the hub lights, maybe nothing is
	    happening.</para>
	</item>
	<item>
	  <para>Ctrl-C is your friend. Damn, it wasn't that, it was
	    just hung downloading. Note: the <prod>wget</prod> REALLY
	    needs to display a progress indicator while downloading in
	    <prod>ipkg</prod>.  Added <prod>libcrypto</prod>
	    separately via another <code>ipkg install</code>.</para>
	  <para status="revised">Make <prod>wget</prod> in
	    <prod>ipkg</prod> display progress.</para>
	</item>
	<item>
	  <para>Restarted Opie, but no sign of an icon for mail.
	    Bummer, I hate having to make <code>.desktop</code> files
	    by hand.  Same bug as always: <prod>ipkg</prod> fails to
	    run <prod>ipkg-link</prod> add after installing. Do it by
	    hand.</para>
	  <para status="revised">Make ipkg produce a usable icon for
	    installed binaries.</para>
	</item>
	<item>
	  <para>Restart Opie and there's the mail icon&hellip;but Grrr
	    same bug as in 3.5.3 and others: <q>Could not locate
	      application opiemail</q>. This is getting tedious. An
	    installer should not lose track of the binary it is
	    installing.</para>
	  <para>Running <code>which opiemail</code> says it's
	    <code>/opt/QtPalmtop/bin/opiemail</code>, which is a
	    symlink to
	    <code>/media/card/packages/opt/QtPalmtop/bin/opiemail</code>, 
	    which is a symlink to <prod>quicklauncher</prod>. So
	    presumably <prod>quicklauncher</prod> isn't smart enough
	    to do a recursive <prod>basename</prod> on the lib deduced
	    from the value of $0, and gags on the reference.</para>
	  <para>Or something. Either way, both opiemail and
	    libopiemail.so are linked in, but there ain't no way
	    they'll run. I don't remember how I fixed this before, but
	    it involved the wholesale moving around and softlinking of
	    directories for days to get it set up, which ipkg-link is
	    not doing correctly.</para>
	</item>
      </list>
      <para>Overall: Some big and much needed improvements, especially
	in the flash and install: congratulations and thanks to
	everyone who has worked on this.  Bugs so far are small and
	should be relatively simple to fix. The card insertion popup
	will be fine when it works. There's clearly something
	radically broken in the way ipkg fails to leave the user with
	a working icon, though, which is a bigger problem (although
	probably a simple fix).  And not including a mailer, ftp
	client, and a browser in the default distro may be a political
	problem which needs to be sorted out.</para>
    </entry>
    <entry YYYY-MM-DD="2005-10-24" HH-MM-SS="15:55" day="Monday"
      id="pandp">
      <topic>
	<para>Pride and Printability</para>
      </topic>
      <summary>Jane Austen never had this problem</summary>
      <para>User calls the HelpDesk: <q>We've just been trying to
	  print some Web pages and the text is running off the
	  right-hand edge so the ends of all the lines are
	  missing.</q></para>
      <para>HelpDesk: <q>Uhuh&hellip;</q> [long and involved
	explanation leading to an increasingly irate user and an
	increasingly frustrated HelpDesk].</para>
      <para>Sounds familiar? If you're using Microsoft
	<prod>Word</prod> to prepare pages for the Web it should, and
	it should also make you want to scream.</para>
      <para>The problem is a fundamental flaw in the behaviour of Word
	so crass that it makes you gasp. Embarrassingly, it's at its
	worst with Microsoft's own <prod>Internet Explorer</prod>,
	although switching browser won't make it go away. </para>
      <para>It happens when you try to turn a <prod>Word</prod>
	document into a Web page by using the <q>Save
	  As&hellip;HTML</q> menu item.  <prod>Word</prod> is a
	business/office wordprocessor designed for creating <link
	  uri="http://www.ucc.ie:8080/cocoon/cc/docs/markup">printed
	  pages</link>, nothing more.  Using it for preparing anything
	else only ends in tears.</para>
      <para>Microsoft's conversion policy to HTML is to preserve as
	closely as possible the exact format of the
	<emph>printed</emph> page, even down to the length of lines
	and line-breaks, <emph>even</emph> if that means making it
	unprintable, <emph>even</emph> in Microsoft's own
	browser.</para>
      <para>To that end, <q>Save As&hellip;HTML</q> deliberately and
	perversely goes out of its way to ignore the reformattable
	nature of paragraphs and list items, forcing them to the exact
	line-length of the original paper version and ignoring the
	auto-adjusting nature of web browsers which are designed
	specifically to fit the text to the width of the screen or
	paper.</para>
      <para>The reasoning is simple: Microsoft <prod>Word</prod>
	Marketing were apparently terrified to the point of insanity
	that users who had written documents in <prod>Word</prod> and
	then saved them as HTML for the Web would find that their
	documents had been reformatted to fit the screen, and
	complain.  And another part of the same empire was insistent
	that exported documents should be re-editable in
	<prod>Word</prod>, so truckloads of superfluous markup get
	added to your document in order to make sure you can open the
	HTML file as if it were a <code>.doc</code> file and never
	notice the difference.</para>
      <para>List items are particularly subject to this kind of
	mangling because <prod>Word</prod> treats them as paragraphs
	with a number or letter at the start, so they fail to use the
	built-in hanging indentation that the default Web browser
	rendering provides.</para>
      <para>Your Web page also ends up with huge amounts of
	unnecessary vertical white-space because of
	<prod>Word</prod>'s galvanic frog-leg knee-jerk use of empty
	paragraphs to create space between paragraphs&mdash;and of
	course the default in a browser is that paragraphs get a blank
	line between them anyway; but these so-called <q>empty</q>
	paragraphs end up with a non-breaking space, which forces them
	into a zombie existence, like dead men shouldering the coffin
	of your text.</para>
      <para>So what's the solution? Using <q>Save As&hellip;XML</q>
	doesn't help&mdash;it just formalises the error, rather like
	printing an scaled-up bitmap on a hi-res printer simply gives
	you very beautifully-rendered jagged edges.  Using Named
	Styles from a template in your <prod>Word</prod> document
	won't help either: it ignores List Item and simply outputs a
	paragraph stuffed to the gills with attributes we never added
	to HTML, bloating the file with more redundant markup to add
	the the garbage already inserted by the desperate attempt to
	preserve round-trip editability mentioned above.</para>
      <para>You can just see the spastic twitch of the Marketing suits
	on being told you can round-trip files between
	<prod>Word</prod> and HTML, blindly unaware that Microsoft had
	an excellent product a decade ago which I posted about <link
	  uri="?older#msafw">before</link>, called <prod>SGML Author
	  for Word</prod> which did the exact same thing using Named
	Styles.  The moment XML arrived, and with it a whole new
	market, they killed it off, perhaps because because it
	threatened the dominance of <prod>Word</prod>.</para>
      <para status="revised">And this is really the core of the
	problem. This kind of apotheosis of the visual constitutes
	part of the textual hegemony which Microsoft have cleverly
	imposed on the world's organisations and which is going to
	cost them dear in the long run.  This ethos has successfully
	conned people into believing that because it looks pretty, it
	must therefore also be right, which a moment's reflection will
	show you is wrong.  The next version of <prod>Word</prod> has
	all kinds of bells and whistles including a floating ribbon
	menu, and it makes XML the <emph>default</emph> save format,
	relegating <code>.doc</code> files to the obscurity proper to
	an unloved proprietary format that has overstayed its welcome,
	like an elderly incontinent aunt quietly being tidied back
	upstairs into bed. But the next version of <q>Word</q> will
	undoubtedly also include a way to switch back on the classic
	behaviour, to satisfy the unretrainable, much like every
	Fortran compiler includes an <code>-f66</code> option to make
	it compile DO-loops like God intended.</para>
      <para>So what's the solution? Go to Tools|Options and make the
	Style Width 2cm wide so the dog can see the rabbit. Go to each
	so-called <q>Normal</q> paragraph and use Named Styles from a
	template to relabel things properly. The default styles in the
	Style drop-down are fine provided you click <q>Show All
	  Styles</q>, not <q>Styles in Use</q>. Save the file and
	then open it in <prod>OpenOffice</prod>, <prod>AbiWord</prod>,
	or pretty much any four-wheeled wordprocessor, and Save
	As&hellip;HTML.</para>
      <para>Or at least, that ought to be the solution. It certainly
	fixes the unhinged list items, but almost all the
	wordprocessors still insist on keeping empty paragraphs and
	still try to enforce the line-length. This is what it is like
	to be hegemonised&mdash;no wonder <link
	  uri="http://slashdot.org/">SlashDot</link>'s icon for
	Microsoft's activities shows Bill Gates as a semi-assimilated
	Borg.  What's needed is two modes: an anal-retentive mode
	which performs as now, to preserve the appearance beyond the
	call of duty, and ensure that you can re-edit the file in
	<prod>Word</prod> or whatever <emph>ad nauseam</emph>; and an
	unclenched mode which goes out of its way to produce clean,
	flexible, dynamic HTML which will slip silently into any Web
	site and perform just like it says on the tin.</para>
      <para type="addition">Another possibility is that the printer
	margins are too wide to allow the page to fit in the remaining
	printable width.  This happens when the stylesheet tries to
	enforce a page width (which designers love to do but which is
	a really silly idea).  It's always worth reducing the left and
	right margins to the barest minimum (usually 3-4mm) just to
	see if it works; and then increasing them in steps until you
	find the optimal setting. Or calculate the required screen
	width from the CSS in pixels, then either divide by 96 to get
	inches and subtract from 8in for a Letter sheet, or divide by
	3.78 to get millimeters and subtract from 210 for an A4 sheet.
	The result is the total allowable space for LH+RH margins, so
	allocate it as you see fit.</para>
      <para>There are of course <prod>Word</prod>-sanitisers, which
	claim to clean up the garbage markup inserted in
	anal-retentive mode, but they don't do all of it.
	<prod>DynaTag</prod> of course, if you can still get it (try
	<link uri="http://www.rbii.com/">Red Bridge</link>) does a
	spectacularly good job of producing XML from
	<prod>Word</prod>, but it needs training, and is really only
	for bulk conversions.</para>
      <para>For the rest of us mortals, getting out from under the
	dead hand of proprietary format control is becoming a daily
	essential and one that Tony Bove is offering a solution to, in
	his forthcoming book <q><link
	    uri="http://www.xyzcomputing.com/index.php?option=content&amp;task=view&amp;id=453&amp;Itemid=26">Just 
	    Say No to Microsoft</link></q>.</para>
    </entry>
    <entry YYYY-MM-DD="2005-10-18" HH-MM-SS="23:04" day="Tuesday"
      id="cds">
      <topic>
	<para>Playing hard to find</para>
      </topic>
      <summary>Digging out highly-specific information isn't always
	easy</summary>
      <para>An FAQ for users with their first CD burner used to be
	<q>how do I make an autorun CD?</q> (maybe it still is).  The
	answer was always pretty much along the same lines: <q>Well,
	  it depends on which version of Windows you're
	  using&hellip;</q></para>
      <para>For reasons best known to Microsoft, there are about a
	dozen different, mutually incompatible ways to make a CD start
	a specific program on insertion into a Windows box. An entire
	cottage industry sprang up to supply autorun software which
	would test, guess, or bludgeon its way into finding out what
	would make the CD autorun under any flavour of Windows into
	which you put it.</para>
      <para>Meantime, Mac users sat there looking smug, until a
	widespread viral attack using autostart poisoned the Mac
	community against software started by hardware actions.  Linux
	users just had to wait.</para>
      <para>The fuss has long since died down, but I recently had
	occasion to need to make a CD which would autorun on any of
	the three platforms, and it proved unbelievably difficult to
	find any information about how to combine the effects in a
	single ISO image. This wasn't helped by the fact that&mdash;as
	an infrequent Mac user&mdash;I was unaware that support for
	autostart ended with OS/9, so it simply doesn't exist on
	OS/X.</para>
      <para>I was in the fortunate position of not having to support
	obsolete versions of Windows (3.x/95/98/Me), but I was
	constrained to using only free software. This turned out to be
	a benefit, as usual, in that everything needed is indeed
	available in Open Source form.</para>
      <para>I've documented what I found in a short <link
	  uri="http://research.silmaril.ie/autoruncd">web page</link>
	for the benefit of anyone else stuck for the information. It's
	restricted to the specific task I had in hand, so it won't
	solve everyone's problems, but it's been working just fine for
	a month or so, and given me a good appreciation of the hard
	work that was put into <prod>mkisofs</prod>.</para>
    </entry>
    <entry YYYY-MM-DD="2005-08-27" HH-MM-SS="20:24:13" day="Saturday"
      id="vcs">
      <topic>
	<para>The $50 Million Giveaway</para>
      </topic>
      <summary>What's changed for venture capitalists in the years
	since the dotcom bubble?</summary> 
      <para>This is fascinating. Slashdot this morning <link
	uri="http://slashdot.org/article.pl?sid=05/08/27/0223205&amp;tid=187&amp;tid=1">pointed me</link> at
	a <link
	uri="http://www.business2.com/b2/web/articles/print/0,17925,1096807,00.html">Business 2.0 article on 11 VCs</link> saying what projects they
	would fund if the right proposal came their way right now.
	Having done DD for VCs during the dotcom bubble, I thought it
	would be interesting to compare what they want now with what
	they used to fund, and see if there's any difference.</para>
      <list>
	<item id="midccp">
	  <label>
	    <para>Mobile ID for Credit Card Purchases</para>
	  </label>
	  <para>A great idea, but still impracticable. Text messages are
	    notoriously subject to delay, and authentication must be
	    real-time to succeed. Neither buyers nor sellers will buy
	    into it if it means a long wait at the sales counter until
	    the text message arrives. But crack that one (maybe with
	    IM-style messaging via cellphone) are you're in. Oh, and
	    large chunks of the US still have no GSM signal&hellip;</para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>What's a text message,
	    Mommy?</q></para>
	</item>
	<item>
	  <label>
	    <para>Back-Office Bank Syndicate</para>
	  </label>
	  <para>Not until Hell freezes over will banks accept using
	    mission-critical financial software which has been written
	    by a consortium who also supply their competitors, based
	    on code they themselves originally wrote. Yes, it's partly
	    illogical: they already feel happy placing
	    customer-critical information into proprietary apps which
	    are known to be unstable and even buggy (guess!), but when
	    finance systems come in the door, logic sometimes has to
	    go out of the window. Just think: learn to crack one
	    bank's apps&hellip;</para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>Let's convert all this
	    legacy COBOL&hellip;</q></para>
	</item>
	<item id="tuou">
	  <label>
	    <para>The Ultimate Online Upsell</para>
	  </label>
	  <para>Improving the accuracy of targeted product
	    recommendations is an excellent idea. But the suggestion
	    to tackle it from the algorithm end is like treating the
	    symptom instead of the disease. What's needed is better
	    quality data and data identification. It's a bit like the
	    Information Retrieval people some years back, doggedly
	    insisting they can make semantic sense of unmarked
	    plaintext corpora by sheer algorithmic power (I nearly got
	    kicked out of an IR meeting in Glasgow some years back for
	    suggesting they'd have better results if they marked the
	    text up in XML first &smile;&nbsp; Get the data model right, and
	    everything else pretty much drops into place: get it wrong
	    and your project is screwed from the start, no matter how
	    smart your algorithms.</para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>Let's start an online clothing
	    store&hellip;</q></para>
	</item>
	<item>
	  <label>
	    <para>Subscription PCs for Seniors</para>
	  </label>
	  <para>This one's a winner, but not at $30 a month&mdash;in a
	    year you'd have spent enough to buy a cheap PC outright:
	    seniors are not stupid, and they can do the arithmetic
	    just as well as you can. At $5 or $10 you'd hit the spot,
	    though. The usability problems are significant, but not
	    insurmountable, and I'm tempted to stick my neck out and
	    predict that this one will make it, although it will be
	    like most of the other <q>simplified</q> systems aimed at
	    the non-technical user (WebTV, AOL, Windows ME, etc),
	    hopelessly crippled, grotesquely proprietary, and
	    impenetrably hard to support.</para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>Let's invent a whole new
	    bunch of tags for HTML&hellip;</q></para>
	</item>
	<item>
	  <label>
	    <para>An Even Smarter Smartphone</para>
	  </label>
	  <para>This one would beat the <link uri="" to="midccp"
	      alt="Earlier item">Mobile ID for Credit Card
	      Purchases</link> hands down if they can solve the
	    security problems. Instead of back-channel auth, just do
	    away with the credit card entirely, and go for a
	    dialog-based ID and debit/credit service over the
	    cellphone.  But the banks can cripple this one at a stroke
	    by using transaction charges, so get them on-side first.
	    Plus the US banking system is still in the quill-pen era
	    for anything involving foreign currency, so they'd need a
	    nib sticking in their corporate butts before I'd risk
	    travelling abroad with this device.</para>
	  <para><emph>Five years ago:</emph> Everyone would be doing
	    all their transactions over the Internet by 2005
	    anyway&hellip;[close but no cigar]</para>
	</item>
	<item>
	  <label>
	    <para>Open-Source IT Center</para>
	  </label>
	  <para>Dead in the water on cost. If price was a factor,
	    companies would already be doing this. The cost of
	    software, and even of support for it, simply isn't
	    important: companies are making amply enough to cover it,
	    and are prepared to keep paying to avoid the perceived
	    pain of change, so shelling out to the big boys for
	    proprietary software just doesn't
	    matter&mdash;financially. The real IT costs are in
	    hardware and skills: companies will just buy boxes, but
	    they really <emph>hate</emph> spending on upping their skill
	    residencies. And, uh, most of the apps required already
	    exist, and lots of them are already in use, unapproved and
	    unannounced, having been snuck into your datacentre under
	    the cover of a new server. What'll bite your ass is when
	    you downsize or outsource and lose all the skills you
	    didn't know about that have been keeping you going for the
	    last decade. So on crisis support this one might win.</para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>What's Linux,
	    Mommy?</q></para>
	</item>
	<item>
	  <label>
	    <para>Social Networks meet the Town Crier</para>
	  </label>
	  <para>The keys to this one are aggregation and bribery. The
	    bribe of a small payment to popular posters is a dead
	    cert, and aggregation software is improving (although what
	    I had to say about <link uri="" to="tuou" alt="Earlier
	    item">algorithms vs data</link> above still
	    applies). The killer is the phrase <q>keep it constantly
	    updated</q>. Unless their is some kind of editorial busybody
	    pruning back the obsolete information into an archive, the
	    system will gag on its own success.  If I was running a
	    local newspaper, I'd either be seriously worried or
	    writing my proposal now.</para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>Fill up the shortfall
	    with ad revenue, Mike, they'll love it&hellip;</q></para>
	</item>
	<item>
	  <label>
	    <para>Customer Service over IP</para>
	  </label>
	  <para>Cookies via VOIP. No big deal. When enough bandwidth
	    becomes available: right now trying to run Skype and
	    download stuff is a non-starter.</para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>Hey <code>crackle,
	      spit</code> this Internet <code>bzzzz, click</code>
	    Phone thang is <code>snap, crackle, pop</code> soooo
	    kewl&hellip;</q></para>
	</item>
	<item>
	  <label>
	    <para>Plug-and-Play Mobile Services</para>
	  </label>
	  <para>This one's out of my field, but it sure sounds like
	    today's networks <emph>don't</emph>&nbsp;<q>require</q> a
	    separate software layer for every service&hellip;it's just
	    been implemented like that because that way the vendors
	    keep control of their IP and preserve their revenue
	    streams. The VC is right, it's <q>something the big
	    infrastructure providers won't do and the wireless
	    carriers and ISPs can't do</q>. If providers want a single
	    platform, there are plenty to choose from, and maybe they
	    should just gang up on their current providers and force a
	    change.</para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>Mobile phones? But in
	    America we user *pagers*&hellip;</q></para>
	</item>
	<item>
	  <label>
	    <para>Home Patient Monitoring</para>
	  </label>
	  <para>This one's a real winner if, as the VC says, you can
	    navigate the health-care systems. As the HL7 experience
	    has shown, even what ought to be obvious technologies and
	    methodologies rapidly get bogged down once they hit the
	    organisational wall. Life-critical device production and
	    database management are well-established areas, but
	    life-critical systems require more than ordinary care on
	    the communciations side, so I'd add messaging expertise to
	    the VC's requirements. </para>
	  <para><emph>Five years ago:</emph>&nbsp;<q>What's XML,
	    Mommy?</q></para>
	</item>
	<item>
	  <label>
	    <para>A Killer App for Convergence</para>
	  </label>
	  <para>This links two good ideas: technology convergence,
	    where any device in your home can handle any service
	    (doing your email on your toaster being the bathetic
	    instance); and application persistence or pervasive
	    continuity, which is rather different (leaving your email
	    half-written on your desktop, walking out to the car and
	    editing the message on your PDA or cellphone, then
	    arriving home and finishing it off on your Playstation).
	    However, contrary to the suggestion, the second has actually been
	    on the market for several years, but the first is still as
	    elusive as the paperless office. If they can get it to
	    work that would be great, but not at the expense of
	    reinventing the wheel.</para>
	  <para><emph>Five years ago:</emph> I saw <link
	    uri="http://www.propylon.com/products/missioncontrol/index.html">Mission Control</link>
	    demonstrated&hellip;</para>
	</item>
      </list>
      <para>Don't get me wrong, I think it's really good that these
	guys have given their time and energy to showing us where they
	think the future lies, and a lot of it corresponds broadly
	with the way most people I know are thinking. Maybe it also
	means they aren't getting as many of the truly ludicrous
	proposals we saw last time around, which may also save some of
	the pain of having to recommend against a proposal by someone
	you know well (knowing the principals was pretty much
	unavoidable in many of the very narrow vertical
	markets).</para>
      <para>But prospective proposers still need to remember that VCs
	budget on losing&mdash;what is it?&mdash;85% of everything
	they invest. They make enough back on the 15% to cover the
	85%, so saving them from backing a few losers isn't
	interesting to them: the money's already dead. </para>
      <para>What VCs really need is a device which is IP-connected,
	which authenticates via cellphone, can recommend best-of-breed
	choices, is easy to use for OAPs, speaks IR and RFID, runs
	Open Source, connects to your local social network, is fully
	extensible to new services, can do your email, and acts as a
	truly reliable bullshit detector.</para>
    </entry>
    <entry YYYY-MM-DD="2005-08-19" HH-MM-SS="14:40:22" day="Friday"
      id="fc4">
      <topic>
	<para>A simple upgrade</para>
      </topic>
      <summary>Upgrading an operating system is never exactly simple
	but it could be a lot worse.</summary>
      <para>I've been running Red Hat 9 for several years, and it's
	definitely time for an upgrade. RHEL isn't an option on a
	personal machine; Debian is too much bare-bones
	work&mdash;perfect for the OS hacker, but inaccessible for an
	end-user; I hear lots of good things about Ubuntu, but I need
	something of proven solidity. After having used Fedora Core 2
	and 3 on servers in the office, I felt FC4 would be the
	obvious path, and I resolved yesterday not to repeat the same
	mistakes I made when moving from an old laptop running RH 7.2
	to a new one with Windows preinstalled on which I wanted to
	dual-boot RH9. These were:</para>
      <list>
	<item>
	  <para>Miscalculating how much space I'd need to repartition
	    for Linux. I could have left Windows in 5Gb easily, not
	    10.  The question now is, do I even need to keep that
	    Windows partition at all?&mdash;I haven't used it for over
	    six months.</para>
	</item>
	<item>
	  <para>Believing the error message that said the partition
	    table couldn't be rewritten&mdash;<link
	      uri="http://www.ranish.com/part/">Ranish Partition
	      Manager</link> is a wonderful program, and it did the
	    job even though Dell's firmware tried its best to stop
	    me.</para>
	</item>
	<item>
	  <para>Not finding out beforehand what the display's
	    horizontal scan and vertical refresh rates were, even
	    though I knew that XFree86 would need them (I've never had
	    a Linux installation correctly pick these values up from
	    the hardware, ever).</para>
	</item>
	<item>
	  <para>Not checking the Ethernet card type
	    either&mdash;fortunately RH9 detected this OK.</para>
	</item>
	<item>
	  <para>Allowing it to install and use the ghastly and
	    appalling CUPS instead of LPRng.  LPRng wasn't broken, so
	    there was no need to reinvent this wheel, and CUPS is
	    mind-bendingly hard to configure, and refuses point-blank
	    to print from one RH9 system onto another.</para>
	</item>
	<item>
	  <para>Bothering to install Gnome. It's cute but useless. I
	    use KDE, and if it wasn't for the need for the occasional
	    Gnome library in order to run a utility like Gkrellm I
	    wouldn't bother again. Unfortunately there are still too
	    many utilities written to operating system
	    variant-specific APIs (exactly what the Open Source
	    community complains about in respect of Another Operating
	    System).</para>
	</item>
	<item>
	  <para>Not learning IPtables from the ground up. I still
	    haven't, so I'll have to rely on whatever default firewall
	    thingy FC4 offers during installation. In this day and
	    age, configuring a personal firewall and turning it on and
	    off should be easy&mdash;Windows XP makes the turning on
	    and off easy but fails to provide much configuration.  My
	    old Bastille script worked well, but provided no help.
	    CLUG has <link
	      uri="http://lists.ie/mailman/listinfo/wipt">a
	      project</link> to make a web interface to IPtables, but
	    it's early days yet.</para>
	</item>
      </list>
      <para>So after a false start (one workstation garbled three of
	the CDs I was burning), it all fired up fine, except that it
	couldn't recognise my laptop monitor. It's a Dell Inspiron
	4150, guys&hellip;maybe Dell just never supplied the spec. But
	otherwise it went well, although there are unnerving long
	pauses occasionally when the Next button won't click while it
	thinks, and there's no progress indicator.</para>
      <para>So first thing to do is configure the network, Firefox,
	and Thunderbird, and we're in business. Pretty painless, and
	it did indeed eventually ask me to configure the
	monitor.</para>
      <para>Next step is to rip out the FC-supplied <TeX/>, which I
	took the liberty of assuming would be just as out-of-date as
	all previous tetex RPMs, and install a fresh copy from the
      <TeX/>Collection DVD. This takes for ever, as I installed pretty
	much all of it, but it's well worth it for a robust and
	up-to-date formatter.</para>
      <para>The only flaky oddity is that pointer movement from the
	glidepad over the panel in KDE sometimes causes different
	screens to flutter past. Picking a screen from the four on
	display means clicking and waiting a second for it to
	<q>take</q>. I haven't tried this in Gnome, but if it's a
	glidepad driver bug then it's going to be annoying.</para>
      <para>The whole X thang seems slightly slower than earlier
	versions (x.org vs XFree, I assume, plus the laptop is getting
	on for two years old now, and doubtless FC4 is bigger than
	RH9). But overall a success, and I'm suitably impressed. Even
	CUPS, and that's saying something.</para>
    </entry>
    <entry YYYY-MM-DD="2005-08-01" HH-MM-SS="17:25:01" day="Monday"
      id="choochoo">
      <topic>
	<para>Rail travel in the UK</para>
      </topic>
      <summary>Come back Dr Beeching, where are you when you
      country needs you?</summary>
      <para status="revised">In the early days of rail, different
	companies ran different services over different tracks. This
	was called <q>competition</q>, although travellers probably
	called it something else (one is reminded of the
	<emph>Punch</emph> cartoon of the stress of <q>Changing at
	  Crewe</q>). Technology came and went, and by WWI, things had
	been settled down with a little governmental intervention to
	four big companies running a fairly comprehensive service.
	When it became expedient after WWII for the government to
	further nationalise them into British Railways, the downfall
	of civilisation was predicted. Indeed, the 50s and 60s saw the
	dereliction of the service, unfunded, grubby, uncared-for,
	unpopular, and increasingly out of date. With the road
	transport lobby buying up all the politicians, it wasn't
	surprising that Beeching acted as he did, and no amount of
	window-dressing could compensate for the loss that became the
	British Rail of the 70s and 80s.</para>
      <para>But wait&hellip;there's less: Maggie Thatcher had the
	<emph>coup de grâce</emph> to deliver. By selling off the
	ownership of the track and maintenance separately to the
	companies that ran the trains, she effectively paralysed the
	entire system in order to funnel the proceeds into the pockets
	of her party cronies.  The British live with the results
	today: no synchronisation between timetables, incompetent or
	amateur management, grossly overcrowded trains, lots of glossy
	PR, and increasing accident rates because all the skilled
	engineers who knew how to run a railway left or were pushed
	out, leaving maintenance in the hands of the untrained.</para>
      <para>It took me an hour and a half to queue for an
	advance-purchase ticket from Oxford to Exeter (the normal
	ticket office only sells full-fare and travel-today tickets).
	The booking clerk was one of the old school: polite, diligent,
	and competent, struggling with a 80&times;40 character-cell
	interface. She finally found me a fare for only about twice
	what the same distance costs in any other country, and it
	restricted me to one specific train each way.  When it
	arrived, the train was packed solid, and my reserved seat was
	already taken (I let the girl sleep, it looked like she needed
	it).</para>
      <para>Quite apart from the shambles over track maintenance, the
	numbskulls who run the trains (and I am disappointed that that
	includes you, Richard Branson) clearly don't grasp the
	attraction and simplicity of the previous system of buying
	from a small set of well-known tariffs, available for travel
	on almost any train, and not running competing services over
	the same pair of rails.  You can run competing services in the
	air (Branson does it excellently), and on the water, and even
	on the road, where one vehicle can overtake another.  But not
	on the permanent way. Competition in rail traffic is a
	well-known no-no&mdash;even the Americans have realised this,
	and they're usually better at taking advantage of competition
	than Europeans are. If you're visiting the UK, take care!</para>
    </entry>
    <entry YYYY-MM-DD="2005-07-30" HH-MM-SS="10:23:30" day="Saturday"
      id="schoolsout">
      <topic>
	<para>School's out</para>
      </topic>
      <summary>Something old and something new from the XML
	Summerschool, the Extreme Markup conference, and world of
	LaTeX</summary>
      <para>Suspicions confirmed: no-one has a good word to say for
	W3C Schemas, I'm afraid. Everyone is prepared to admit they
	are useful in some circumstances, and essential in data
	applications when you need strong typing for element content
	or attribute values, but for most text documents they just get
	in the way, and everyone hates the syntax.  Interesting how
	the programming community, all with Computer Science degrees,
	which means they presumably understand the importance of data
	modelling syntaxes, collectively screamed when XML came out
	that they couldn't <emph>possibly</emph> learn or use
	<emph>two</emph> syntaxes (declaration and document; and how
	<emph>hard</emph> declaration syntax was, poor little
	mites)&mdash;and then went blithely on to implement a schema
	language in a syntax designed for writing documents. However,
	they're here to stay, and none of the <q>told-you-so</q> about
	how much simpler it would have been to add datatypes and
	cross-checking to Declaration Syntax will stop them. The
	missed trick, though, was in not pushing for a TC to SGML to
	allow Document Type Declarations to specify a schema in the
	same way as they do a DTD.  There is no good reason why an
	additional token of SCHEMA or DTD should not have been
	introduced after the SYSTEM (and, optionally, PUBLIC) keyword
	(and possibly a new Public Text Class of SCHEMA for
	FPIs). The lack of a formal binding of schema to document is
	an unnecessary hindrance to implementation, precisely the kind
	of thing that was avoided in other places in the design
	of XML.</para>
      <para>However, the discussions on editors are heating up. Almost
	every application you come across seems to have dissatisfied
	developers and users because the kind of editing they want to
	do simply isn't available. There were several presentations on
	the shortcomings of editor technology at this year's Extreme
	Markup conference in Montréal&mdash;the first time the topic
	has arisen. On the one hand you have those fluent in markup,
	who have no problem with plain-text editors and exposed pointy
	brackets, who have a wide choice of systems to pick from. On
	the other hand you have their customers, the end-users, for
	whom the developers demand a <q>Word-like</q> interface
	because it's believed (wrongly, in fact) to be all they will
	accept. Oh, and it must be <q>easy to use</q>; it must create
	100% error-free documents regardless of user mistakes; and by
	the way, we're hiring an infinity of untrained monkeys to do
	the typing, so it must be able to guess at most of the
	markup&hellip;you get the picture. I've been working on this
	topic for a few years now, and I've started to put together
	<link uri="http://www.ucc.ie:8080/cocoon/interfaces/">a web
	  site</link> for some of the results.  Seán McGrath had some
	interesting comments to make in Oxford about using tailored
	DTDs or Schemas for data collection, because the results would
	be fed into something else anyway, either for pipelining or
	storage, so expending a lot of effort on meticulous encoding
	up front is probably wasted&mdash;keep that for the repository
	copy.  This is pretty much what we've been doing for several
	projects in recent years (including the Old Irish Lexicon, the
	Digital Dineen, and the eDIL), and only moving to TEI when the
	text is clean and checked, before the in-depth markup starts.
	But it's still typically done in Emacs&hellip;</para>
      <para>Since PDF arrived, there have been numerous packages for
	creating presentation slides, most of which make Powerpoint
	look very sick (not hard, I hear you say).  I've been using
	pdfslide for some years, but I'm about to move to <link
	  uri="http://latex-beamer.sourceforge.net/">Beamer</link>,
	having seen what it can do.  Download their presentation on
	the Weak Cardinality Theorem (an example of a real-life talk
	in their Examples section) if you want to see what the future
	of screen teaching is about.</para>
    </entry>
    <entry YYYY-MM-DD="2005-04-27" HH-MM-SS="13:01:04" day="Wednesday"
      id="excusesexcuses">
      <topic>
	<para>Pick a card, any card</para>
      </topic>
      <summary>Making the bold step of choosing a scripting
	language</summary>
      <para>Apart from the wars between editors (Emacs <emph>vs</emph>
	vi, etc) probably nothing else raises a techie's hackles like
	a good argument over the choice of programming language. It
	gives you a great opportunity to extol the virtues of your
	favourite language and mock the inadequacies of all the
	competition, including the incompetencies of those who choose
	other software, your management, Marketing, Sales, project
	managers, tech support colleagues, and anyone else who wanders
	in range.</para>
      <para>For many years I've been using my own homebrew Bourne
	shell script for installing PostScript Type&nbsp;1 fonts.
	Partly because I use <LaTeX/> a lot, and partly because I
	haven't found anything else that works as well.  But it's time
	to rewrite it to handle many more font CDs, and to use the
	same standard fontfile naming conventions that Karl Berry
	defined for <prod>fontname</prod>. We'll leave aside the
	ghastly mess that is X fonts for the moment, as it's on the
	mend, and real-time font rendering with anti-aliasing is
	becoming workable for Unix-type systems Real Soon Now. We'll
	also leave aside the horrible blurry, jagged font rendition
	that seem to be endemic on Mac screens. That pretty much cuts
	out the competition, which is why I roll my own with <LaTeX/>
	and Type&nbsp;1.</para>
      <para>The task is straightforward enough: Alan Jeffrey's
	<prod>fontinst</prod> program does a great job, but doesn't
	leave the font immediately usable in <LaTeX/> with a style
	file and <acro>FD</acro> files, and it's actually written in
	<TeX/> code, so while it's extremely portable, it ain't got
	no <acro>GUI</acro> apart from the editor you execute it in. I
	wanted to automate the whole shebang, so you just drop a
	<acro>AFM</acro> file on an icon and it does
	everything.</para>
      <para>That, too, is not hard, as I already have working code.
	But picking a scripting language was more interesting.</para>
      <para>I did once have a version written in a little MS-Windows
	utility language called <prod>Visual DisplayScript</prod>, but
	it's a bit limited, and won't execute anywhere else, so I've
	been poking through the portable scripting languages which can be
	wrapped for delivery on any platform&hellip;and here's where
	the war started: I have the code structure already, so I
	wanted rapid GUI development.</para>
      <para><prod>Perl</prod> is right out: life is too short to learn
	how to write modem noise when my telco can generate it for
	free. <prod>Python</prod> was a very serious contender,
	especially since Seán McGrath does such a good sell on using
	it with <prod>wxwindows</prod>, but there's still too much
	noise in the syntax. I finally went for <prod>Tcl/Tk</prod>
	with <prod>vTcl</prod> for <acro>GUI</acro> development, and I
	must admit to having been influenced by the fact that when I
	downloaded and test-drove it, everything <q>just worked</q>
	first time and required virtually very little
	<acro>RTFM</acro>.</para>
      <para>(I should digress here to say that experimental
	<acro>CS</acro> languages were out, and <prod>C</prod>,
	<prod>C++</prod>, and <prod>Java</prod> were never contenders.
	I left programming in 3rd-generation languages behind me many
	years ago, and any language which kicks off by declaring its
	main routine to be null <emph>has</emph> to be brain-dead.)</para>
      <para>So I've been using the last fragments of what they call
	<q>spare time</q> for this, which is my excuse for not keeping
	these pages updated for a few months, and it's going well.
	I've found all sorts of gaps in the documentation and the
	code-generators, as well as in mky own knowledge, but nothing
	that is problematic so far. Tcl/Tk is a rich language with a
	simple syntax, and it does stuff in a way which matches the
	way my brain works, which is what I wanted. I have to thank
	the denizens of the <link
	  uri="http://sourceforge.net/forum/forum.php?forum_id=863">vTcl 
	  help forum</link> and the <link
	  uri="news:comp.lang.tcl"></link> newsgroup for their help,
	especially my <TeX/> co-user Donald Arseneau (I had no idea
	he was a <prod>Tcl</prod> user).</para>
      <para>It's going to be called <prod>Gutta-Percha</prod> because
	of its <LaTeX/> associations, and it'll be Open Source
	(probably <acro>LPPL</acro>), and with luck I'll have it
	working for the <link uri="" elsewhere="practex2005">Practical <TeX/>
	  Conference</link> next month.</para>
    </entry>
  </entries>
</blog>
