<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on His Deeds Are Dust</title>
    <link>https://hisdeedsaredust.com/posts/</link>
    <description>Recent content in Posts on His Deeds Are Dust</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <copyright>Paul Flo Williams</copyright>
    <lastBuildDate>Tue, 24 Feb 2026 14:48:00 +0000</lastBuildDate><atom:link href="https://hisdeedsaredust.com/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Selecting 8051 tools</title>
      <link>https://hisdeedsaredust.com/posts/2026/8051-tools/</link>
      <pubDate>Tue, 24 Feb 2026 14:48:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2026/8051-tools/</guid>
      <description>&lt;p&gt;In 1997, I first dumped the ROM from a DEC VT320 video terminal and decided to
try to decode it. The processor in these terminals is a member of Intel’s MCS-51
family of microcontrollers, in this case a Siemens SAB8031A, with a
64 KiB ROM.&lt;/p&gt;
&lt;p&gt;I wrote a disassembler and simulator (both long since lost) and started trying
to decode the ROM, having never used an 8051 before. I got the disassembler to
only decode the parts that I needed, following the call path so as not to get
confused by what I assumed would be large chunks of data in there. I still have
a printout from February 1998 of the state of annotated disassembly at the time,
tiny lettering on 112 lines-per-page printout, running to 67 pages. I had to
give up soon after coaxing the simulated terminal through the power-on
self-test, thinking that there were probably subtleties of the 8051 instruction
execution that I had got wrong, because I didn’t know how to stimulate it into
doing anything interesting.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;vt320-circuit-cover.jpg&#34; alt=&#34;A close-up of part of the circuit board
of a VT320 terminal, showing the 8031 processor, ROM, 2681 DUART, EEPROM and a
gate array&#34;/&gt;
&lt;figcaption&gt;Close-up of a VT320 circuit board.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Nearly 20 years later, I&amp;rsquo;ve come across that printout and decided that, in the
wake of my &lt;a href=&#34;https://vt100.net/dec/vt100/rom/&#34;&gt;annotated disassembly of the VT100 video terminal&lt;/a&gt;, I&amp;rsquo;d give
my favourite terminal another go.&lt;/p&gt;
&lt;p&gt;The VT100 uses an 8080, and for that project I quite easily found a disassembler
and 8080 simulator core written in C that I could reuse to get the terminal&amp;rsquo;s
code running. Finding 8051 tools has proven slightly more frustrating.&lt;/p&gt;
&lt;p&gt;I started with the disassembler, which was simple enough. Jeffery L. Post&amp;rsquo;s
&lt;a href=&#34;http://www.brouhaha.com/~eric/software/d52/&#34;&gt;D52&lt;/a&gt; disassembler (now maintained by Eric Smith) has a control file which
lets you mark sections as being code or data, so you don&amp;rsquo;t spend time looking at
incorrectly interpreted chunks.  It has an analyse function to produce an
initial control file. In practice, this tends to follow control flow and opts
out of disassembling sections that it can&amp;rsquo;t see a clear call to. However, its
inability to decode jump tables means that it significantly under-disassembles
if you use this option. I don&amp;rsquo;t regret using it, although it took many days of
effort wading through the disassembly, marking &amp;lsquo;binary&amp;rsquo; sections in the control
file back as &amp;lsquo;code.&amp;rsquo;&lt;/p&gt;
&lt;p&gt;The other difficulty with interpreting the disassembly and finding code sections
has nothing to do with D52. The terminal software uses a &lt;em&gt;lot&lt;/em&gt; of jump tables,
and DEC decided to place all the 16-bit addresses in these in little-endian
format, despite the 8051 being a big-endian processor. Obviously marking these
tables as data words with the &amp;lsquo;dw&amp;rsquo; format wasn&amp;rsquo;t going to work, so I decided
that the next tool I was going to need, an assembler, would have to be a macro
assembler.&lt;/p&gt;
&lt;p&gt;I asked on a mailing list for recommendations for FOSS macro assemblers and
simulators for the 8051. The following assemblers were mentioned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ken Stauffer&amp;rsquo;s &lt;a href=&#34;https://github.com/kjs452/as31&#34;&gt;AS31&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;W. W. Heinz&amp;rsquo;s &lt;a href=&#34;https://plit.de/asem-51/download.htm&#34;&gt;ASEM-51&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Alfred Arnold&amp;rsquo;s &lt;a href=&#34;http://john.ccac.rwth-aachen.de:8000/as/&#34;&gt;Macroassembler AS&lt;/a&gt; (got a &lt;em&gt;lot&lt;/em&gt; of votes)&lt;/li&gt;
&lt;li&gt;San Bergmans&amp;rsquo; &lt;a href=&#34;https://www.sbprojects.net/sbasm/&#34;&gt;SB-Assembler 3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;AS31&lt;/strong&gt; doesn&amp;rsquo;t have a macro facility, which rules it out for large projects
like this one, but I tried it anyway. As it was written in 1990, the dialect of
C is so old that gcc threw many warnings and I feared that it wouldn&amp;rsquo;t produce
an executable. It uses non-standard directives for data (&amp;rsquo;.byte&amp;rsquo; instead of
&amp;lsquo;db&amp;rsquo;) and I couldn&amp;rsquo;t get the assembly to finish even after pre-processing these,
because the parser has an ambiguity between binary and hexadecimal constants. In
theory it will accept hexadecimal constants suffixed by &amp;lsquo;h&amp;rsquo;, with the usual
caveat that hex numbers starting with &amp;lsquo;a&amp;rsquo; to &amp;lsquo;f&amp;rsquo; should be prefixed by &amp;lsquo;0&amp;rsquo;.
However, AS31 accepts binary literals prefixed by &amp;lsquo;0b&amp;rsquo;, so AS31 choked on my
hexadecimal literal &amp;lsquo;0bch.&amp;rsquo; It seems to be very strict on single quotes versus
double quotes too. At that point I was tired of pre-processing my source code
and tried the next tool.&lt;/p&gt;
&lt;p&gt;I would normally have ruled out &lt;strong&gt;ASEM-51&lt;/strong&gt; as it has no source available. It is
free however, and cross-platform, so I downloaded the Linux binary and pointed
it at my source. There was just one issue, in that I&amp;rsquo;d labelled the start of the
code as &amp;lsquo;reset,&amp;rsquo; when that is a built-in symbol. After deleting that, it
assembled all 40 KiB of source to an Intel HEX file. Running that through
hex2bin.py gave me an image identical to the original ROM.&lt;/p&gt;
&lt;p&gt;Ten minutes later, I had read the manual sufficiently far to create the macro I
needed to get the jump tables in the correct format:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;dwl macro address
    db low(address),high(address)
endm
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And I stopped there: ASEM-51 works for me. I &lt;em&gt;will&lt;/em&gt; try Macroassembler AS at
some point, but for now I&amp;rsquo;m cleaning and annotating the source, safe in the
knowledge that I can rebuild the binary after every change, as protection
against fat-fingering anything.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;trace-trace-baby.jpg&#34; alt=&#34;A back-lit close-up of the VT320 circuit
board, concentrating on the SAB8031 and the ROM.&#34;/&gt;
&lt;figcaption&gt;Trace, trace, baby&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Simulators are rather more thin on the ground. These names came up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Seemanta Dutta&amp;rsquo;s &lt;a href=&#34;https://gsim51.sourceforge.net/&#34;&gt;gSim51&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jari Komppa&amp;rsquo;s &lt;a href=&#34;https://github.com/jarikomppa/emu8051&#34;&gt;emu8051&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;James Rogers&amp;rsquo; &lt;a href=&#34;https://edsim51.com/&#34;&gt;EdSim51&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;gSim51&lt;/strong&gt; was an almost immediate bust. When you&amp;rsquo;ve navigated the ad-laden hell
of Sourceforge (why is it even still a thing?) and downloaded the code, it won&amp;rsquo;t
build. There are functions missing. The source has crossed-out code in comments
as ideas were changed on the fly. This is some college assignment that has been
dumped on the web. Avoid.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;emu8051&lt;/strong&gt; is simple and rather cute. It doesn&amp;rsquo;t have full debugging facilities
such as breakpoints, but it presents an ncurses-based text interface that shows
the current line, registers, flags and one of the areas of memory that you can
change at will. You can set the PC and then single-step or run the code. I tried
setting the PC and stepping through some of the routines that I&amp;rsquo;d identified
where aspects puzzled me, and it helped out.&lt;/p&gt;
&lt;p&gt;However, it wasn&amp;rsquo;t long before it crashed out with a segfault, with me jumping
around the code. I then ran it over another routine that I was having trouble
decoding, and the results were not at all what I expected. This routine used
some BCD arithmetic and the numbers in registers didn&amp;rsquo;t match what I&amp;rsquo;d
calculated by hand. I took a look at the source and realised that the &amp;lsquo;DA A&amp;rsquo;
instruction was implemented incorrectly, and it was being fed incorrect flags
because the &amp;lsquo;ADD&amp;rsquo; instruction was also wrong. Uh oh. A look at the open issues
with pull requests on Github suggests that this isn&amp;rsquo;t being actively used, and I
don&amp;rsquo;t want to spend my time chasing down segfaults, so I&amp;rsquo;ll look elsewhere.&lt;/p&gt;
&lt;p&gt;Where else? At this point, I&amp;rsquo;m seriously considering writing a small 8051 core
myself, because I have the schematics for the VT320 and I know exactly how the
ports, DUART, EEPROM, video interface, timers and interrupts are wired up.&lt;/p&gt;
&lt;p&gt;I downloaded &lt;strong&gt;EdSim51&lt;/strong&gt; but I haven&amp;rsquo;t found a way to run it on Fedora 43
without it complaining that I don&amp;rsquo;t have the X11 DISPLAY environment variable
set. Setting it does no good, possibly because of the shift to Wayland. At this
point it&amp;rsquo;s a toss-up as to whether I hate Java or Wayland more.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My unsophisticated Perl cribsheet</title>
      <link>https://hisdeedsaredust.com/posts/2024/perl-cribsheet/</link>
      <pubDate>Thu, 26 Dec 2024 18:33:34 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/perl-cribsheet/</guid>
      <description>&lt;p&gt;For donkey&amp;rsquo;s years I have been developing web applications with Apache httpd,
Perl, CGI and MySQL, because that has always been the default setup on my web
host. I &lt;em&gt;know&lt;/em&gt; I should be moving away from nearly all of these, with the
exception of Perl, but that would involve me doing something funky with a new
server environment, containers, droplets or, &lt;em&gt;sigh&lt;/em&gt;, anything that gets kicked
into next year&amp;rsquo;s resolutions.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, since 1999 I have been tripped up every few years with a new release of one of the
above layers that actually improves their Unicode support (&lt;strong&gt;yay!&lt;/strong&gt;), while
triggering problems somewhere else (&lt;strong&gt;boo&lt;/strong&gt;.) I still remember how scared I was
when I found out that some strings are internally Latin-1 and some are Unicode
and thinking that I needed to mess with internal flags to manipulate them. &lt;em&gt;So&lt;/em&gt;
very glad to have been proven wrong, there.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;Long story short, &lt;em&gt;for my own benefit&lt;/em&gt; (and before I trigger another layer
collapse), this is how I am currently tackling Unicode from bottom to top of my
web environment, because I want poo emojis in my database as much as anyone
else. This reflects my understanding of the setup that is currently working for
me.&lt;/p&gt;
&lt;h2 id=&#34;perl&#34;&gt;Perl &lt;a href=&#34;#perl&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Since my scripts are written in Perl, this is the major part. I need all these
parts to support Unicode:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Command line arguments. I like testing web scripts from the command line,
particularly because I like to see a JSON output for the big hashes that I
normally pump through &lt;a href=&#34;https://template-toolkit.org/&#34;&gt;Template Toolkit&lt;/a&gt; in
order to produce a web page.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Database connection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Web response, which really means getting the correct encoding on stdout.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JSON output. At the moment, I use this for testing but I do hope to get more
sophisticated over time and have more AJAX-y pages or a working API for my
applications.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The first lines of my Perl scripts are:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-perl&#34; data-lang=&#34;perl&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/usr/bin/perl -CAS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;use&lt;/span&gt; v5&lt;span style=&#34;color:#ae81ff&#34;&gt;.34&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;use&lt;/span&gt; utf8;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Taken in order:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://perldoc.perl.org/perlrun#-C-%5Bnumber/list%5D&#34;&gt;&lt;code&gt;perl -CAS&lt;/code&gt;&lt;/a&gt; says that the default file handles (input, output, error) are
UTF-8 encoded. Command line arguments are also UTF-8 encoded. Essentially, all
my strings in Perl will contain Unicode characters, not octets, and serialising
to/from UTF-8 happens at my interfaces. With these options, I no longer have to
put &lt;code&gt;binmode STDOUT, &#39;:utf&#39;&lt;/code&gt; in my scripts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;use v5.34;&lt;/code&gt; just keeps me up-to-date with the latest features I can use on
my webhost, which allows me to say &lt;code&gt;say&lt;/code&gt;. I no longer have to say &lt;code&gt;use strict&lt;/code&gt;, but I&amp;rsquo;d still need &lt;code&gt;use warnings&lt;/code&gt; until I get to v5.36.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://perldoc.perl.org/perlunicode#use-utf8-still-needed-to-enable-UTF-8-in-scripts&#34;&gt;&lt;code&gt;use utf8;&lt;/code&gt;&lt;/a&gt; allows me to put Unicode characters directly in my Perl script,
&lt;em&gt;and that is all it does&lt;/em&gt;. I like to do this directly, only resorting to &lt;code&gt;\N{...}&lt;/code&gt; when I can&amp;rsquo;t clearly see
what the character is meant to be, which in my monospaced Vim environment, means
long dashes. I&amp;rsquo;ve never actually used a poo emoji in a script, though I&amp;rsquo;ve
undoubtedly written many a program which could be judged that way.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;cgi&#34;&gt;CGI &lt;a href=&#34;#cgi&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Although I still use &lt;a href=&#34;https://metacpan.org/pod/CGI&#34;&gt;CGI.pm&lt;/a&gt;, it now only gets used for retrieving parameters and
setting the content type of the response. I can either do:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-perl&#34; data-lang=&#34;perl&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;use&lt;/span&gt; CGI ();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;use&lt;/span&gt; Encode;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;my&lt;/span&gt; $cgi &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; CGI&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;my&lt;/span&gt; $p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; decode(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;UTF-8&amp;#39;&lt;/span&gt;, $cgi&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;param(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;q&amp;#39;&lt;/span&gt;));
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;to decode parameters myself, or&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-perl&#34; data-lang=&#34;perl&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;use&lt;/span&gt; CGI &lt;span style=&#34;color:#e6db74&#34;&gt;qw(-utf8)&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;my&lt;/span&gt; $cgi &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; CGI&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;my&lt;/span&gt; $p &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $cgi&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;param(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;q&amp;#39;&lt;/span&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Clearly the latter is simpler. Either method does the appropriate
deserialisation for me so that, again, I&amp;rsquo;m handling Unicode characters
internally, not octets. As a bonus, for debug, I can just output things to
stderr or stdout (where it doesn&amp;rsquo;t interfere with the web response), and the
UTF-8 serialisation will happen for me.&lt;/p&gt;
&lt;h2 id=&#34;mysql&#34;&gt;MySQL &lt;a href=&#34;#mysql&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;My web host (Pair Networks) uses MySQL 8.0, so my database text columns are
created with a charset of utf8mb4 and a collation of utf8mb4_general_ci. Oddly
enough, until two minutes ago, when I
&lt;a href=&#34;https://www.pair.com/support/kb/mysql-80/&#34;&gt;checked&lt;/a&gt;, I believed they were still using
version 5.7. Clearly I&amp;rsquo;m not sophisticated enough to have tripped over problems
during their transition.&lt;/p&gt;
&lt;p&gt;My connection line looks like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-perl&#34; data-lang=&#34;perl&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;my&lt;/span&gt; $dbh &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; DBI&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;connect($source, $user, $pass,
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;          { mysql_enable_utf8mb4 &lt;span style=&#34;color:#f92672&#34;&gt;=&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; });
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and that performs all the (de)serialisation I need. That MySQL option used to be
&lt;code&gt;mysql_enable_utf8&lt;/code&gt;, before characters got larger.&lt;/p&gt;
&lt;h2 id=&#34;json-output&#34;&gt;JSON output &lt;a href=&#34;#json-output&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;JSON output is as simple as:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-perl&#34; data-lang=&#34;perl&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;use&lt;/span&gt; JSON ();
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;my&lt;/span&gt; $json &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; JSON&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;my&lt;/span&gt; $json_text &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; $json&lt;span style=&#34;color:#f92672&#34;&gt;-&amp;gt;&lt;/span&gt;encode($r);
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The thing that tripped me up most recently was using JSON&amp;rsquo;s encode_json routine,
without noticing that &lt;em&gt;that&lt;/em&gt; does the UTF-8 serialisation, which resulted in me
double-encoding the output. I find that I have to read documentation very
carefully in order to distinguish between interfaces (functions) that consume or
produce UTF-8 output &lt;em&gt;versus&lt;/em&gt; Unicode output. I want Unicode internally, so that
counting or splitting works as expected.&lt;/p&gt;
&lt;h2 id=&#34;thats-a-wrap&#34;&gt;That&amp;rsquo;s a wrap &lt;a href=&#34;#thats-a-wrap&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Now I&amp;rsquo;ve written it down and tested it, it looks simple again, but I was worried
that I&amp;rsquo;d done something tragically wrong when I picked the wrong JSON routine
and convinced myself that &lt;em&gt;that&lt;/em&gt; was the correct part, rather than the rest of
the components that had been working correctly up to that point. Sometimes I&amp;rsquo;m
unsure enough of my understanding that I presume I&amp;rsquo;m more likely to have got two
wrongs making a right than the clean stack.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Moving to &lt;a href=&#34;https://metacpan.org/pod/Dancer2&#34;&gt;Dancer2&lt;/a&gt; is my top resolution for 2025, but I really need someone
else to write that blog post that says &amp;ldquo;Get an account with so-and-so, run this
super deployment script and copy your application &lt;em&gt;here&lt;/em&gt; and Bob&amp;rsquo;s your uncle,
and it&amp;rsquo;ll cost you 37p per month.&amp;rdquo;&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;With the maturing of the &amp;lsquo;unicode_strings&amp;rsquo; feature, this too became an historic worry.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>The Ghost of Morcar&#39;s Tower</title>
      <link>https://hisdeedsaredust.com/posts/2024/morcars-tower/</link>
      <pubDate>Mon, 02 Dec 2024 21:58:03 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/morcars-tower/</guid>
      <description>&lt;p&gt;Another great story I came across while indexing &lt;em&gt;Blackwood&amp;rsquo;s Magazine&lt;/em&gt;.
This was published anonymously in July 1879, but a later compilation
of short stories published by &lt;em&gt;Blackwood&amp;rsquo;s&lt;/em&gt; revealed the author to be &lt;a href=&#34;http://www.victorianresearch.org/atcl/show_author.php?aid=726&#34;&gt;M. C.
Stirling&lt;/a&gt;.&lt;/p&gt;
&lt;h1 id=&#34;the-ghost-of-morcars-tower&#34;&gt;The Ghost of Morcar&amp;rsquo;s Tower &lt;a href=&#34;#the-ghost-of-morcars-tower&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;For three generations the direct heir to the estate of
Morcar&amp;rsquo;s Tower has not succeeded to the property. The last
owner, Squire Fairfax, was a hale, jovial fellow, and had
three stalwart sons, yet none of them lived to possess the
place.&lt;/p&gt;
&lt;p&gt;The eldest was killed when Clyde&amp;rsquo;s army relieved Lucknow;
the second fell a victim to the jungle-fever that haunts the
moist rice-fields of Central India; and the youngest,&amp;mdash;it
gives me a choking sensation in my throat even now when I
recall his fate.&lt;/p&gt;
&lt;p&gt;The hero of the Playing Fields, stroke of the eight-oar in
the most closely contested race that Oxford ever won, he was
a favourite everywhere, and the pride of his home. I can see
him yet, with his laughing brown eyes, standing up against
the crack left-handed bowler, who came assured of an easy
victory for Stepton over the eleven of Stepton-in-the-Fens.
There were some of us who thought when he carried his bat
that greater triumphs must be in store for that ready hand,
that watchful eye, and cheery spirit.&lt;/p&gt;
&lt;p&gt;A year later, when a pleasure-boat went down in a squall,
the only hope left us was that he had not suffered long, for
there was a dark bruise on the pale forehead when the body
was washed ashore. His father never recovered the blow, but
died soon after his boy; and thus it came to pass that I, a
distant cousin, found myself the owner of Morcar&amp;rsquo;s Tower.&lt;/p&gt;
&lt;p&gt;The curse, if curse there still be, will be again fulfilled,
for no children of mine will ever brighten the gloomy
chambers of my new home. It matters not how I know this so
certainly, for it is not my own story that I am about to
tell. Suffice it to say that the joy was crushed out of my
life ere I was thirty, so that I abandoned my chosen career,
and hid myself in a lonely cottage, thinking that in the
quiet life of a student I might find solace for my grief.
When first I heard that the old Tower was mine, I was
unwilling to remove from the abode to which I had already
grown accustomed; but on further reflection I decided that
the effort must be made, and that I must not shrink from my
new duties on account of the melancholy associations
connected with the place. To the Tower therefore I went,
taking with me the treasured volumes that were my only
friends.&lt;/p&gt;
&lt;p&gt;For obvious reasons I cannot give the true names of the
localities I am about to describe, but they will be easily
recognised by any one belonging to the neighbourbood who may
chance to peruse this tale.&lt;/p&gt;
&lt;p&gt;Morcar&amp;rsquo;s Tower was situated in one of the flattest districts
in England. In old days, before cannon were in use, it must
have been a valuable stronghold, for it was then surrounded
by a reedy fen, full of dangerous and unsuspected depths,
and only practised guides could find the narrow paths that
threaded through the grass and rushes, Gradually, however,
the fen-land was reclaimed, though the drainage was
extremely difficult; and a canal, more sluggish than any I
have seen elsewhere, was cut across from the Ayder to the
Deene. The soil was rich, and paid well; and at last a
little town grew up, known as Stepton-in-the-Fens, to
distinguish it from Stepton proper, or, as it was sometimes
called, Stepton-on-the-Wold.  This wold was nothing but a
rise of the land on the west of the Tower, and would hardly
have been remarked in a less level country.&lt;/p&gt;
&lt;p&gt;The Tower itself was more properly a keep, square and grim,
built of dark red stone that took a purplish hue when wet.
Round it was a deep moat that on three sides had been
hastily and carelessly filled up. Yellow hawkweed and the
straggling ragged-robin grew in profusion on the unequal
surface of the earth that had been thrown loosely into it;
and I wondered greatly that my cousin should have allowed
this disorderly fringe of weed to remain round the house, I
remembered, however, that when my cousin Frank had once
proposed some alteration, his father had replied, with
unusual sharpness, that he did not choose to meddle with the
moat. On the fourth side the ditch was its original depth,
and a wooden bridge, with a high fantastic railing, crossed
it where the drawbridge had formerly been. The walls of the
Tower were enormously thick, and the interior was
consequently somewhat sombre. There was plenty of heavy
old-fashioned furniture, but there were few modern
elegancies in the house. In the room that had been Harry&amp;rsquo;s
were two new easy-chairs, some engravings after Landseer,
and some pewters and cups,&amp;mdash;relics of the foot-races and
sculling-matches of his Eaton and Oxford days.&lt;/p&gt;
&lt;p&gt;On the ground-floor were the drawing and dining rooms, with
two smaller apartments; the bedrooms were up-stairs; and the
servants&amp;mdash;I had but three&amp;mdash;lived in some newer offices
quite at the back.&lt;/p&gt;
&lt;p&gt;I myself chose to inhabit a curious turret that projected
from one corner of the Tower, partly because it was light
and cheerful, partly because I had used it when visiting my
cousins in our boyhood. The round shoulder of the wold cut
us off early from the evening sun, and from the turret
windows I could watch the light being stolen from our Fens
by the advancing shadows of the fir-clad rising ground.&lt;/p&gt;
&lt;p&gt;I loved to see the last glitter die off the canal, and from
between the reed beds, to watch a lazy barge perhaps being
moored for the night, a grey heron oaring his way across the
opal sky, or a string of carts or team of horses going
slowly homewards,&amp;mdash;for no living creature moved quickly in
the Fens.&lt;/p&gt;
&lt;p&gt;When all was still, save that the frogs had begun to croak
among the rushes, I turned to my books, and in mystic
volumes, such as the history of the Rosy Cross, sought for
counsel from men who, like me, had resolved to be alone.&lt;/p&gt;
&lt;p&gt;One night, when I had been about a fortnight at the Tower, I
sat up rather later than usual at my studies. A new vista
was opening before me, and I seemed to be on the point of
reaching over that indefinable barrier that separates us
from the world in which spirit is the known reality&amp;mdash;a
world whose laws must some day yield themselves up to our
mastery. I raised my head, and drew in a long breath of the
night air that blew in at the open casement. While sitting
thus, pursuing an argument in my own mind, the sound of a
stealthy footstep on the stair caught my ear, and abruptly
broke the chain of my thoughts.&lt;/p&gt;
&lt;p&gt;Irritated at this disturbance, I resolved to forbid the
servants coming up-stairs so late, and then tried to resume
my reading. But the words on the page conveyed no meaning to
my mind, and I found myself dwelling instead on that
unwonted sound.&lt;/p&gt;
&lt;p&gt;Suddenly it flashed upon me,&amp;mdash;&lt;em&gt;I had not heard the step go
away.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;My door faced the stairs, and only a very small landing
intervened.  I looked at my watch; it was half-past one.&lt;/p&gt;
&lt;p&gt;Obviously none of the household had any business up-stairs
at that hour,&amp;mdash;had I heard the step of a burglar who was
even now outside my door? I was unarmed, and beyond reach of
help, for the bell in my room communicated with an empty
part of the Tower, and I had not yet given orders for its
alteration. Hastily and nervously I locked my door, and
listened long for a retiring footstep, but not a sound came,
and I fell asleep at last without undressing. Next day I
felt somewhat ashamed of the nervousness that had seized me;
for though I do not boast of any special amount of animal
courage, I had never before experienced such uneasiness. I
concluded that my nervous system must be unstrung, and
resolved to take more exercise than I had done of late.&lt;/p&gt;
&lt;p&gt;I asked the butler casually, if he had been up-stairs late
last night.  He was an elderly man, and had spent many years
in my cousin&amp;rsquo;s service, and 1 thought there was something
strange in his look and tone as he replied, &amp;ldquo;No, sir; none
&lt;em&gt;of us&lt;/em&gt; were up-stairs.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;A confused remembrance of a ghost story came into my mind,
told long ago by a chance guest, and summarily cut short by
the old squire. Perhaps the Tower was haunted, and a ghost
was part of my inheritance! I hesitated to inquire, lest I
should put the idea into the heads of the servants; but as I
had little faith in the supernatural origin of so-called
ghostly disturbances, I took sundry precautions against
imposture. I had once been a fair shot, so I opened a
long-untouched box, and got out a pistol that had lain there
for two years. This I cleaned and put away in my room. I
then ordered that candles should be placed there in addition
to my usual lamp, and desired that the bell should be at
once altered.&lt;/p&gt;
&lt;p&gt;When evening came, I sat down to my work, and read with
quite my usual attention; but I could not recall the keen
perception of the previous night.&lt;/p&gt;
&lt;p&gt;About one o&amp;rsquo;clock I felt my mind wandering involuntarily
from my book, although I had not been aware of the lateness
of the hour until I looked at my watch: a quarter of an hour
later I heard a faint sound. I listened anxiously: it was
the same step as before, coming slowly up-stairs; the step
of one who walks wearily&amp;mdash;the step of a woman, for I
distinctly heard the rustle of a dress. I quietly placed the
lamp so that the light would stream right into the passage,
cocked my pistol, and as the footsteps reached the door I
threw it open. There was no one there.&lt;/p&gt;
&lt;p&gt;A sense of horror seized me, and I think at that moment I
would rather have met any visible foe than have stood face
to face, as it were, with an empty sound.&lt;/p&gt;
&lt;p&gt;Next morning Bond lingered unnecessarily in removing the
breakfast things, and after glancing two or three times at
me as I sat idly by the window, he spoke.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Mr. Fairfax,&amp;mdash;excuse me, sir&amp;mdash;but you don&amp;rsquo;t look well
this morning.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I don&amp;rsquo;t feel very well, Bond,&amp;rdquo; I replied.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Been disturbed at night, perhaps, sir,&amp;rdquo; said the old man,
pointedly.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;What do you mean? Why should I be disturbed at night?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Because you&amp;rsquo;re the owner of Morcar&amp;rsquo;s Tower, sir.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Then there is a story that I don&amp;rsquo;t know!&amp;rdquo; I exclaimed. &amp;ldquo;Go
and finish your work, Bond, so as not to let the women
remark anything, and then come and tell me about it.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;When he returned, Bond gave me a garbled version of the tale
I shall presently relate in the words of one immediately
concerned; but he added, that since the commission of the
crime that gave Morcar&amp;rsquo;s Tower its evil name, it had been
haunted by mysterious footsteps.  No ghost had ever been
seen, but these steps continually passed to the door of the
room occupied by the owner, and there died away.  My cousin,
stout-hearted, practical man as he was, had tried every room
in the Tower without escaping from this terrible guardian;
and Bond thought the nervousness caused by the nightly
visitation had helped to bring about Mrs. Fairfax&amp;rsquo;s sudden
death.&lt;/p&gt;
&lt;p&gt;Had he been a richer man, the squire would have abandoned
the Tower; but he could ill afford to do so, and in time
became accustomed to the ghost.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Did none of my cousins ever hear it?&amp;rdquo; I inquired.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Yes, sir, they did. Mr. James and Mr. Frank each heard it
before they left home for the last time. Mr. Frank told me
himself, sir, and said he thought it might be a sign he was
never coming back.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;And Harry&amp;mdash;&amp;mdash;?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Master Harry was so much younger I don&amp;rsquo;t think he rightly
knew the story. Mr. Fairfax made the other young gentlemen
and me promise never to tell it to any one; and Master Harry
wasn&amp;rsquo;t one to think of things of the sort.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;How did the others find it out?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Same way as I did, sir, by master changing his room so
often.  They got it out of Mrs. Fairfax, poor lady, at
last.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Well, Bond, I suppose I can depend on you to help me if I
try to find out anything about the ghost.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Yes, sir; but I&amp;rsquo;d advise you to leave it alone, if I might
be so bold.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;My good fellow, I can&amp;rsquo;t go on living here without trying to
understand this affair. If there is a ghost, there must be
some reason for his or her coming; and if I could discover
the reason, it might put a stop to these visits.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Well, sir, there&amp;rsquo;s no denying that would be a good thing;
but I doubt you&amp;rsquo;ll find it beyond you to manage.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;At least I&amp;rsquo;ll try, Bond,&amp;rdquo; said I, as he left the room.&lt;/p&gt;
&lt;p&gt;That night I placed lamps on the stairs and in the passage
that led to them, and made Bond sit up there that he might
notice where the steps came from. I myself sat opposite the
open door of my room, with my eyes fixed on the staircase.
At a quarter past one, Bond called out, as agreed on, &amp;ldquo;It&amp;rsquo;s
coming, sir;&amp;rdquo; and a minute later I distinguished the first
footfalls. Slowly and steadily they came up-stairs, so that
I could count the number of steps; they crossed the landing,
and the last one planted itself on the threshold of my room;
then there was perfect silence.&lt;/p&gt;
&lt;p&gt;I shuddered and called Bond, who came up white and
trembling.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Sir, the steps walked by me where I sat; I watched the lamp
as you told me, but I saw nothing pass between me and it. I
don&amp;rsquo;t know where they began; they seemed to start at the end
of the passage. Oh, sir, don&amp;rsquo;t meddle with them, or you&amp;rsquo;ll
come to harm!&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I hope not, Bond,&amp;rdquo; I replied. &amp;ldquo;I am satisfied that there is
no trick, and I must think what is to be done next. Go to
bed now, for I suppose we shall hear no more to-night.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;No more, sir, the Lord be praised! It only comes once in a
night; if it were oftener, I don&amp;rsquo;t think anybody could stand
it.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The old man evidently did not like the notion of a closer
acquaintance with the ghost, but now that I knew exactly
what happened, my own nerves were steady. I felt that here
was an opportunity of testing some of the theories in which
I was most deeply interested, and I resolved that no effort
of mine should be wanting to prove them true or false. I
believed in the power, possessed by a few strong wills, of
influencing others at a distance; and my own studies had
accustomed me to concentrate my thoughts, the first step
towards exercising such a power, if, as I hoped, it was
latent in me. I had never heard of any attempt to control a
spirit by such means; but the idea did not appear to me
impracticable. Where so little is known, experiments are of
use, even though their results be only negative. If there is
a spirit,&amp;mdash;thus I argued with myself,&amp;mdash;that wishes to
communicate with the owner of this Tower, surely a
reciprocal wish on his part, might render the process
easier.&lt;/p&gt;
&lt;p&gt;Again, the simplest facts of mesmerism show that one will
can control another; surely a spirit, freed from human
grossness, should be sensitively alive to every influence
exerted over it. It only remains to be proved whether I have
the needful strength, and whether I can keep cool and steady
if I succeed so far as to obtain obedience from the spirit.&lt;/p&gt;
&lt;p&gt;Having settled my plan of action, I began by taking a long
and brisk walk in the early morning. Before dinner I
confined my reading to historical works, but in the evening
I perused carefully a volume in which I had found much
curious and useful information on mesmerism.  Soon after
midnight I seated myself opposite my open door, having
previously placed the lamps so as completely to light up the
space before me.&lt;/p&gt;
&lt;p&gt;Two rather ludicrous difficulties then struck me. In the
first place, I did not know the sex of my unseen visitor.
Bond&amp;rsquo;s story would have led me to suppose that a man would
haunt the Tower, but there was nothing masculine in the
gentle footfall, or the sound of the trailing robe.&lt;/p&gt;
&lt;p&gt;Secondly, I knew that I must keep one idea steadily before
me, yet I could hardly go on repeating the same formula, and
I could not think without words. This difficulty, however,
was a very elementary one, and would be easily overcome by
practice. I fixed my eyes on the doorway, where the eyes of
a figure of average height would be, and soon succeeded in
making myself think an almost uninterrupted &amp;ldquo;Come!&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Unfortunately, the night was boisterous and stormy, the wind
screamed past the casement, and swept on, as if in a hideous
fugue, across the gloomy fens; but as my senses grew more
and more keen, I did not doubt but that I could distinguish
the familiar footsteps, even through all this storm-music.&lt;/p&gt;
&lt;p&gt;After a while, the blood moved faster in my veins, my eyes
were unnaturally fixed and hot, and my breathing was
constrained and rapid, as though every muscle was
stiffened,&amp;mdash;a sensation quite unlike the deep full
inspirations of severe physical exertion.&lt;/p&gt;
&lt;p&gt;I should not have realised how great was the tension of my
will had not a gust of wind made a gate in the garden bang
suddenly, when the quiver with which my nerves responded to
the sound betrayed to what a pitch I was excited.&lt;/p&gt;
&lt;p&gt;It was close on the hour for the ghost&amp;rsquo;s visit. I passed my
hand across my forehead and eyes, and at the same instant,
distinct through the wailing of the wind, I heard the
distant footfall. I grasped the arms of my chair, and half
rose in the intensity of my wish; but when the steps reached
the top of the stairs, something seemed to give way in my
brain, the room and lights swam before my eyes; but as I
sprang up, with my hands to my temples, I saw, or fancied I
saw, against the bright background, a shadowy outline of a
figure.&lt;/p&gt;
&lt;p&gt;It was an instantaneous impression, and I sank back as
helpless and weak as a child,&amp;mdash;all power of will entirely
gone.&lt;/p&gt;
&lt;p&gt;An hour passed before I could shake off my lassitude
sufficiently to go to bed; but I slept soundly, and to my
great satisfaction found that, instead of being fatigued, I
was more active than usual on the following day.&lt;/p&gt;
&lt;p&gt;To Bond&amp;rsquo;s inquiries, I merely replied that I was carrying
out a plan which I hoped would succeed in time, but that I
could not give him the details.&lt;/p&gt;
&lt;p&gt;It is unnecessary to describe the experiments of each
succeeding night. I soon found that the power of
concentrating my will increased with every effort. On three
occasions I saw the same shadowy outline; but on each a
chance sound disturbed me, or irresistible fatigue deprived
me of strength just when I most needed it. At length I
resolved to take one night&amp;rsquo;s uninterrupted rest, and to
begin my next attempt only a few minutes before one, so as
to have more power in reserve when the critical moment
should arrive. I was glad to find that I attained almost
immediately the required state of concentrated volition; but
I endeavoured to make my condition more natural than it had
ever yet been. I gazed more quietly and observantly at the
spot where I hoped the spirit might appear, and made
mesmeric passes as if before a figure facing me.&lt;/p&gt;
&lt;p&gt;As one o&amp;rsquo;clock struck, my senses grew more alert; never
before had I felt myself possessed of such subdued and
controlled strength; even my breathing became deep and
regular.&lt;/p&gt;
&lt;p&gt;I could not account to myself for these novel sensations,
but I was filled with a buoyant delight which was almost
ecstasy. My hands, as I continued my passes, seemed to feel
an opposing force, as though I were drawing a weight towards
me. There was none of the former heat and excitement, but a
genial warmth pervaded every limb.&lt;/p&gt;
&lt;p&gt;I &lt;em&gt;knew&lt;/em&gt; I had power over the spirit if I could but keep
myself steady.&lt;/p&gt;
&lt;p&gt;At last it was close on the quarter, when I heard the first
step in the passage. I stretched out my hands in motionless
command and expectation. As the steps reached the turn of
the stairs the outline became visible once more; it grew
distinct, came nearer, and pausing at the doorway, seemed to
tremble and gathered itself into the form of a woman in a
clinging robe, who bent towards me with a look that I shall
never forget.&lt;/p&gt;
&lt;p&gt;She was very young, and the misery on her face might have
made the hardest heart pitiful. In her eyes there was that
abiding look of horror that sometimes remains after a great
mental shock&amp;mdash;a look almost impossible to describe, but
which conveys its meaning instantaneously.  Her mobile lips
were slightly parted, and her small hands.  tightly clenched
at her sides, Although every feature was distinguishable,
there was no semblance of humanity about her; she was a pale
shadowy figure, and the outline of her head and dress
remained tremulous, as though ready to melt again into air.&lt;/p&gt;
&lt;p&gt;As she gazed earnestly at me, I felt that she could
communicate her thoughts to a certain extent, and read mine,
in this mysterious spirit-contact.  I did not speak, but I
thought the words, &amp;ldquo;Poor soul, I will aid you in anything
you wish!&amp;rdquo; A faint smile quivered over her face, and she
bowed her head and beckoned me with one hand. Taking up a
small lamp, I followed, while she passed down-stairs. Her
movement was exquisite in its floating grace, and I remarked
that her steps were no longer audible: the sound of them was
not needed now to plead for her.&lt;/p&gt;
&lt;p&gt;She led me along the passage to a deep window overlooking
the moat. Here she paused, and pointed to a panel in the oak
wainscoting.  I could see nothing peculiar, and glanced
towards the spirit for further explanation, Again and again
she pointed imperiously to the same spot. I tried to speak,
but my voice refused to come, so I thought the question I
wished to ask.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Am I to search here for something?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Her smile answered me, and she then signed to me to open the
window and come out. Placing my lamp on the floor so as to
be out of the draught, I got over the low sill and stood at
the edge of the moat.  The spirit floated a yard or two
further, and pointing down to the ground, wrung her hands
piteously.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Did some one die there?&amp;rdquo; I asked in a whisper, for I felt
that my power was waning, and it was no longer difficult to
speak. The pale hands pointed to the breast of the figure,
which was already fading, as though her desire was
accomplished.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Tell me,&amp;rdquo; I cried, flinging myself down before her, &amp;ldquo;if I
search the panel and this spot, will you be at rest?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;She bent towards me once more with a smile of intense peace
on her face, and melted out of my sight.&lt;/p&gt;
&lt;p&gt;Whether I fainted, or whether I fell into the deep sudden
sleep that sometimes follows mesmeric exertion, I cannot
tell, but when I came to myself day was breaking, and my
lamp was burnt out below the open window.&lt;/p&gt;
&lt;p&gt;After breakfast I gave Bond an account of my adventure, and
could easily see that the good old man thought my brain was
affected.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;You will help me to search the panel, Bond, and that will
prove whether my story is true or only a dream,&amp;rdquo; said I.&lt;/p&gt;
&lt;p&gt;To the window we accordingly went, and Bond inquired whether
he was to break the wainscot.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Certainly not,&amp;rdquo; I replied; &amp;ldquo;if there is a hiding-place
here, there is some way of opening it, which I shall try to
find before I allow the wood to be broken.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Inch by inch I examined the wood, and compared the mouldings
carefully with those on the opposite side. My attendant&amp;rsquo;s
incredulity was so manifest, that I should greatly have
preferred to prosecute the search alone, but by doing so I
should have lost the testimony of an additional eye-witness
to the discovery I felt confident of making.  After a long
and patient scrutiny I found in the lower corner of the
panel an inch or so of moulding that fitted into the rest.
Another quarter of an hour passed, ere, by a chance
movement, I gave it the turn required to loosen it. When it
came out, and showed a spring concealed below it, my
excitement was very great, and Bond himself began to share
the feeling, and hurried off for oil with which to clean the
rusty metal. We soon discovered the secret of the bolt, and
a portion of the panel slid back below the moulding,
revealing a small recess in which lay a roll of manuscript
tied with a black ribbon.  Dust and damp had made the
writing difficult to decipher; but when the sad history lay
spread before me, I decided to give it to the world, along
with an account of my mesmeric experiment. I have modernised
the spelling, and supplied a few obvious words that were
either blotted or illegible in the original. The date was
eaten away, but from family papers I know that it must have
been August, 1778.  The manuscript ran as follows:&amp;mdash;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I am going to write down what has happened. It may be that
no one will ever read what I write; but should this paper
fall into the hands of any pitiful persons, surely they will
grieve for us.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Mr. Fairfax is a bad man. Heaven forgive me if I ought not
to think him so! but I must needs say it here. My father
says he is not worse than his neighbours, and that it is the
habit of most gentlemen to drink and swear in his fashion.
If it be so, it is an ill thing for women that have to bear
therewith. My father is a poor curate in Stepton. He has as
good blood in his veins as Mr. Fairfax himself; but then he
is very poor, as I have said. My mother and Mrs. Fairfax
were friends; and when Mrs. Fairfax died my mother took
charge of the little baby she left, along with me. That baby
was my Harry&amp;mdash;Harry Fairfax of this Tower of Morcar&amp;rsquo;s. He
and I learnt our first lessons together from my mother; and
when we grew older my father taught us both. Old Mr. Fairfax
took but small notice of his son.  He was usually hunting,
or quarrelling with some neighbour, or having drinking-bouts
at the Tower. I will say it again&amp;mdash;he is a bad man.  I
feared him much, he looked so big on his black horse; and he
had a rough voice. I remember how Harry and I were gathering
rushes to plait one day when he rode by on the narrow path
that goes down to the white inn. The willows and rushes were
high; but the black horse was so much taller that we could
not hide, as we sought to do.  Mr. Fairfax called out with a
strange oath that sounded loud and terrible, and jeered at
Harry for playing with the parson&amp;rsquo;s brat. Then he rode on;
and Harry was in a great passion, the like of which I had
not seen before. When I was fourteen my mother died, and
thereafter I had to take charge of our house. Harry always
came for teaching from my father; but he looked older than I
did, for I had no money to buy myself new clothes, and was
forced to continue in childish frocks when I might have worn
gowns. At last an old and good friend of my father&amp;rsquo;s sent
money wherewith to provide me with sundry needful things;
and I remember that I was vexed because, when he saw me in
my new attire, Harry did not kiss me, as was his wont. He
loved books greatly, as did my father; and he hated wine and
oaths, and all the evil doings at the Tower. Mr. Fairfax was
angry, and called him a clerk; but he did not interfere with
him. And by-and-by he loved something more than his books,
and I could not believe that it was so. But it was true; and
no creatures were happier than we when we sat among the
osiers, and talked of what we would do by-and-by. Father was
sorely troubled when Harry told him; but he was always
reading, and had not time to think much of us. Besides, he
loved Harry as his son, and all the more because he would
not join in his father&amp;rsquo;s wicked ways. We were just twenty
when Mr. Fairfax bade his son marry a young gentlewoman,
whose father would dower her with certain lands that
adjoined those of the Tower. When Harry refused, his
father&amp;rsquo;s anger was very terrible; but as he gave no reason
for his refusal, Mr. Fairfax let him go, thinking to
persuade him in time, and with softer words. He, however,
made speed to our house, and demanded that my father should
marry us privately. This he would not hear of at first,
though Harry urged it, saying it would be his safety&amp;mdash;that
Mr. Fairfax had even said the damsel&amp;rsquo;s brother should call
him out did he slight her.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;He spoke so earnestly that at last father consented to make
the needful arrangements, and we were satisfied. Alas! while
he was absent, some rumour had come to Mr. Fairfax&amp;rsquo;s ear,
and when Harry returned home he was made a prisoner in his
room, and only allowed to issue from it for his meals. Mr.
Fairfax thought to tame him, but he knew not that there was
a device whereby he might be baffled. In bygone days, when
Harry was fain to escape from noisy guests, he would slip
out at the passage window; or if the brawlers were too near
the stairs for him to pass, he would let himself down by a
rope cunningly made fast to an iron bar that was across his
own window. A thin and narrow plank was concealed below the
grass at the edge of the moat, being held by rope loops to
two pegs knocked into the bank. Once across the ditch, he
was free, for the gentlemen were too busy within to espy
him. Now, however, his father was always on the watch,
fearing lest he should escape.  We should have been in sore
straits had we not had one friend among the servants&amp;mdash;old
Betty&amp;mdash;who had seen my Harry born. She sped away to me with
a message, bidding me to come at dusk, and Harry would meet
me in the willow thicket across the moat: further than that
he dared not venture.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Was I wrong to go? I thought not; nay, I think still that I
was right. Since the night that Harry put his signet-ring
upon my finger I have belonged to him. How, then, could I
dispute his will? Moreover, he was in trouble, and I could
not refuse to go to him in his need.  Therefore I went.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;When it was growing late, so that it behoved me to return,
he led me to the edge of the thicket and kissed me; and that
was our very last kiss on earth, yet I knew it not. I would
I had known, that I might have stayed to perish with my
love. I hurried along the darkening path, but before I had
gone far I heard an angry voice that seemed to be that of
Mr. Fairfax. I feared greatly for Harry, but I dared not
turn back lest I should be seen and cause worse trouble,
since it might well be that Mr. Fairfax was only speaking to
some groom or labourer. All night I could not sleep for
terror, and next day news was brought to my father that
Harry had disappeared.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;The country was searched for him; but I knew he was dead,
for had he been alive he would have found means to relieve
my anxiety.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Mr. Fairfax shut himself up, and drank hard; and after a
few days he desired that the moat should be filled up.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;The work was begun, and that night I knew the reason.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Again old Betty came to me, whitefaced and aged by many
years.  She told me the horrible thing that has never since
been out of my thoughts. I see before me, day and night, the
moat, the darkening path, and my Harry as he stepped off the
plank and saw his father standing before him. Old Betty
could not tell me what had passed, but Mr. Fairfax had seen
me, for she heard my name.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;After many furious words, Harry said clearly, `I never will
give her up!&amp;rsquo; Then&amp;mdash;then&amp;mdash;that cruel man struck him hard
on the temples with the handle of his heavy hunting whip.
Harry fell back into the moat and he never rose again, Mr.
Fairfax knelt at the edge and called him hoarsely, and when
no answer came he rushed into the house.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Betty was too terrified to say next day what she had seen,
and I,&amp;mdash;can I give up Harry&amp;rsquo;s father to punishment?&amp;mdash;I who
have been the cause of my husband&amp;rsquo;s death?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;  .  .  .  .  .&lt;/p&gt;
&lt;p&gt;The writing here became unsteady and indistinct, as though the poor
girl&amp;rsquo;s mind had begun to wander. It is legible on the next leaf.&lt;/p&gt;
&lt;p&gt;  .  .  .  .  .&lt;/p&gt;
&lt;p&gt;&amp;ldquo;People look at me strangely; they thought I did not hear
to-day when some one said I was mad. Am I mad? No! I am sure
I am not; my brain is quite clear, clearer than ever, and
each thought is as bright as if it were written in flame. I
know what I am going to do.  The moat is not half full yet,
but in a few more days there will be no room in it. I must
get Betty to hide this paper for me in Harry&amp;rsquo;s panel
cupboard; she taught him and me the trick of it long ago. I
will not tell her why I want it hidden to-night; oh no, she
might be afraid if she knew; and I must be quite alone, too.
Mr. Fairfax is drinking&amp;mdash;always drinking. I am, going to
punish him; he shall have two deaths on his soul, two&amp;mdash;two.
God will never forgive him as much as that.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I shall be safe with Harry; if anybody finds this they need
not be afraid for me. I will fasten a stone over my heart
that the water in the moat may hold me down tight till I
find him.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I will sign my own name to this&amp;mdash;my name, that no one can
rob me of now. &lt;span style=&#34;font-variant:small-caps&#34;&gt;Priscilla Fairfax&lt;/span&gt;.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I determined, after reading this sorrowful tale, to have the
moat carefully searched at the spot indicated by the spirit.
That there might be no lack of witnesses, I invited both the
doctor and curate of Stepton to be present. After reading
the manuscript, they were to the full as anxious as I for
further corroboration of its story.  We knew that the
Fairfax mentioned in it had died suddenly of &lt;em&gt;delirium
tremens&lt;/em&gt;, and probably the work of filling in the moat was
then discontinued; for, as I have already remarked, it was
of its original depth on one side of the house. As the
workmen approached the bottom, they dug slowly and
carefully. Complete success rewarded our efforts; for
precisely where the ghost&amp;rsquo;s finger had pointed, we found the
decayed and broken bones of a woman.&lt;/p&gt;
&lt;p&gt;The doctor gathered them up with his own hands, and in doing
so, turned over some of the earth, and espied, sunk in what
had been soft mud, a heavy signet-ring bearing the Fairfax
crest. Encouraged by our discoveries, I then gave orders for
the whole of the moat to be cleared, in the hope that we
might find the remains of the poor youth who was so cruelly
murdered.&lt;/p&gt;
&lt;p&gt;We inferred from the MS. that his room must have been at one
of the corners farthest removed from the hall; and our
conjecture proved true. We found some bones, singularly
perfect considering their age, and two or three metal
coat-buttons. The latter I have placed with the ring and
manuscript in a cabinet. To the bones we gave decent burial,
depositing them all in the same grave. Since that day no
midnight footsteps have approached my chamber; and I trust
that the uneasy spirit has found rest through the discovery
of her fate, and that nothing more will be seen or heard of
the Ghost of Morcar&amp;rsquo;s Tower.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Deserted Diners</title>
      <link>https://hisdeedsaredust.com/posts/2024/deserted-diners/</link>
      <pubDate>Thu, 28 Nov 2024 17:00:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/deserted-diners/</guid>
      <description>&lt;p&gt;In 1991, six of us chartered our favourite yacht, &lt;em&gt;Sea Tramp&lt;/em&gt;, and sailed over
to Alderney. When we arrived on Saturday afternoon after a seventeen hour
crossing, we were eager to tuck into any food more substantial than sandwiches
and Cup-A-Soups. We picked a restaurant near the harbour and grabbed a table.
The restaurant was divided into several rooms. Our room contained our table and
a larger table which had been empty when we arrived, but was soon filled with a
party of eight as we enjoyed our starters.&lt;/p&gt;
&lt;p&gt;The main course arrived, along with several wine bottles. As the conversation
continued apace, we quickly got through all the wine with plenty of food
remaining. We looked around for our waitress in order to request more, but no
one was around.&lt;/p&gt;
&lt;p&gt;At this point we noticed that the larger table was now empty. We hadn&amp;rsquo;t seen the
people leave, and they definitely hadn&amp;rsquo;t finished before us. Their starters
appeared to be only half consumed, and our envious eyes spotted that their wine
bottles were still full.&lt;/p&gt;
&lt;p&gt;While waiting for our waitress to reappear, we caught some flashing lights
through a frosted window. Perhaps a disco had started up and the other diners
had disappeared to take a quick peek? We were left hanging for another five
minutes before our waitress reappeared, looking a bit flustered.&lt;/p&gt;
&lt;p&gt;She explained that a rather large lady among the group of eight had got up to
visit the toilets, and on the way back had collapsed in the corridor, blocking
it completely. No one had been able to get past until the ambulance arrived and
took her away. The other diners had followed as well.&lt;/p&gt;
&lt;p&gt;We listened intently to the waitress&amp;rsquo;s story, establishing that the lady&amp;rsquo;s
condition was serious enough for it to be unlikely that her companions would
return to finish the meal. When the waitress left the room, we thought that
enough concern had been shown, so we swapped our empty wine bottles for their
full ones and carried on.&lt;/p&gt;
&lt;!-- Originally published on celigne.co.uk in 1999 --&gt;</description>
    </item>
    
    <item>
      <title>Indexing Blackwood&#39;s</title>
      <link>https://hisdeedsaredust.com/posts/2024/blackwoods/</link>
      <pubDate>Thu, 28 Nov 2024 16:31:21 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/blackwoods/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been looking at the Internet Archive&amp;rsquo;s collection of issues of &lt;em&gt;Blackwood&amp;rsquo;s
Magazine&lt;/em&gt;, indexing them for the &lt;a href=&#34;http://www.philsp.com/homeville/FMI/0start.htm&#34;&gt;FictionMags
Index&lt;/a&gt;.  This job has been
slowed considerably by discovering just how &lt;em&gt;readable&lt;/em&gt; these magazines are. I&amp;rsquo;m
not even just considering the amount of fiction they contained, but I&amp;rsquo;ve been
reading fascinating, solid news articles about issues of the day, from 140 years
ago.&lt;/p&gt;
&lt;p&gt;The fiction in these magazines came from some of the biggest authors of the day,
but the editorial policy of &lt;em&gt;Blackwood&amp;rsquo;s&lt;/em&gt; was that all content was anonymous,
with the exception of poetry. This, they said, not only allowed unknown authors
of genius to shine, but also meant that well-known authors couldn&amp;rsquo;t submit poor
material: everything had to pass on merit.&lt;/p&gt;
&lt;p&gt;One of the short stories that struck my eye the other day was called &lt;em&gt;The Factor&amp;rsquo;s Shooting&lt;/em&gt;.
I couldn&amp;rsquo;t make head or tail of the title, but it became clear as I read on that
a ‘factor’ is a Scottish term for the manager of an estate. The author was
Gilfred W. Hartley, who was a hunter, climber and fisherman. I can picture him
taking a break from stalking to sit in the heather and scribble the first draft
of this story, which I much enjoyed.&lt;/p&gt;
&lt;h1 id=&#34;the-factors-shooting&#34;&gt;The Factor&amp;rsquo;s Shooting &lt;a href=&#34;#the-factors-shooting&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;I am a factor. Or perhaps it would be more correct to say I
&lt;em&gt;was&lt;/em&gt; a factor, for at the present time I am without
occupation. One day, two or three years ago, I set myself
down to inquire carefully into my affairs. The problem to be
solved was not a difficult one: Given a small capital on
which it is impossible to live&amp;mdash;granted a certain yearly
deduction from it to pay bills with,&amp;mdash;how long will it be
before the capital vanishes away altogether? I found that
this period would occur in about seven years, and the next
day I announced to my friends that I was going to look out
for &amp;ldquo;something to do.&amp;rdquo; I had had what is called a first-rate
education: a long course of expensive schools and tutors had
ended in Oxford, though I left that university without
taking a degree. I could read and write and do easy sums; by
the help of a &amp;ldquo;Liddell and Scott&amp;rdquo; and a grammar I could
construe all but the hardest passages in Homer and
Thucydides; and by making copious use of convenient spondee
adjectives, I was capable of turning out immense quantities
of correctly scanning Latin verse. My friends all said,
&amp;ldquo;There will be no difficulty in a fellow like you getting a
good berth,&amp;rdquo; and at first I shared their confidence. But as
time wore on my hopes died away. To begin with, I considered
myself debarred from certain kinds of work. Having been
accustomed to country life, to freedom from noise and dirt
and confinement, I determined that whatever happened I would
have nothing to do with anything which would necessitate
always living in a town. I had been ploughed for mathematics
in &amp;ldquo;Smalls&amp;rdquo; and &amp;ldquo;Mods;&amp;rdquo; and all the hazy notions about
papering rooms, or dividing apples and oranges in certain
proportions amongst a given number of children, which once
possessed my brain, had long ago deserted it, and I felt
myself unequal both in inclination and capability to grapple
with accounts. I had, of course, no money to invest in
business, and pride prevented me from thinking of anything
absolutely menial. As I look back, I sometimes wonder what
kind of employment it was I did expect to meet with; but
indeed, after a time, I ceased to have any expectations at
all. My heart grew sick with waiting; small mean pecuniary
troubles hemmed me in on every side&amp;mdash;ever increasing in
inverse ratio to my capital; anxious days followed on weary
nights, and there were hopeless waitings for &amp;ldquo;something&amp;rdquo; to
come by the post.  Then my friends began to change their
tone. They said, &amp;ldquo;You really ought to make an effort&amp;mdash;we
are afraid your education has been but a poor preparation
for your future life.&amp;rdquo; I never could see that they took much
trouble in looking out for &amp;ldquo;things&amp;rdquo; for me, or indeed did
anything but give advice; but perhaps they worked in secret,
and were ashamed of their good deeds seeing the light.&lt;/p&gt;
&lt;p&gt;Whether this was so or not, there was no visible result, and
matters were at their worst when I received an offer from an
old Manchester merchant to take charge of a small property
he owned in Scotland. I met this old gentleman on a railway
journey, did him some small service in looking after his
lost luggage, and afterwards in a moment of confidence told
him of some of my difficulties.  Then he mentioned his want
of a factor, and asked for references as to my character and
capabilities. I gave him the names of two old friends; and
the answers they sent to his inquiries perplexed him so
much, that he showed them to me and asked me what they
meant. When I read the letters, I was not surprised at the
old gentleman&amp;rsquo;s bewilderment&amp;mdash;I could not understand them
myself,&amp;mdash;that is, I could not make out the meaning of the
sentences, but I knew well enough &lt;em&gt;why&lt;/em&gt; they were so
mysteriously worded. It was evident that my friends, whilst
unwilling to say anything definite against me, were
determined to take no responsibility upon themselves; and
they had succeeded so well that I would defy any lawyer or
expert to attach any responsibility to them, or make out
what they really meant.  They told me afterwards (not
knowing I had seen the correspondence) that they had given
me an exceedingly good character; and I thought it best to
affect ignorance and thank them, for I did not know how long
it might be before I should again require their good
offices&amp;mdash;such as they were. Whether Mr. Weatherby (that was
the merchant&amp;rsquo;s name) was deceived, or whether for some
reason or other he really took a fancy to me, I don&amp;rsquo;t
know&amp;mdash;he gave me the offer of the place.&lt;/p&gt;
&lt;p&gt;I had the vaguest ideas of the duties of a factor: as I look
back, I must confess I was singularly ignorant of almost
everything which belonged to such a post. Though I had spent
much of my life in the country, I had done so to little
purpose. I could shoot a little, and was an enthusiastic
follower of all kinds of sport. But though health, pleasure,
and in some desolate countries profit, is to be got by means
of the gun, I could not help feeling that a practical
knowledge of its use is not an indispensable qualification
to a factor even in Scotland; and, considering the matter
carefully over, it seemed my only one. I learnt, by-and-by,
that it was part of the duty of a factor to look after
woods. I could distinguish, as well as any man, the
difference between a larch tree and a beech, or even between
a larch and a Scotch fir. But a silver fir and a spruce
seemed to me perfectly alike; and it was after carrying
about little sprays of the two kinds with private marks of
identity on them for a long time, and playing a kind of
guessing game with them, that I was able to rightly name the
one from the other. As to being able to distinguish between
the timber of these trees when sawn up, I never could, and
never shall, be able to do it. Some kinds of wood are to be
told from other kinds by a smell of resin; but a Scotch
factor cannot well go about smelling planks; and indeed it
is not so easy to do naturally as one would think. I was
aware that an agent should be more or less intimate with
everything connected with land, on it or under it&amp;mdash;subsoil,
and crops, and cattle, and ploughs, and dairymaids, and
pigeons; and I knew about none of these things. Like a
distinguished northern politician, I thought all cattle
&amp;ldquo;rather slack about the shoulder;&amp;rdquo; one plough was as another
plough; one dairymaid seemed to me like other dairymaids,
except that some were prettier.&lt;/p&gt;
&lt;p&gt;I accepted the offer at once. In spite of this long list of
negative qualifications, I never hesitated for a moment, I
could not bear to face the reproaches of my friends at
throwing away a chance. I trusted to practice, to books, to
luck, to everything but myself. I remembered that a hundred
years hence anything I might do would have been forgotten. I
was sorry for Mr. Weatherby, but I closed rabidly and at
once with his offer. As I have said, probably some prejudice
in my favour, or some small compassion for my position,
weighed with the latter. Being a townsman himself, he
fancied that all country folk understood all about country
matters; and he knew, of course, he could easily get rid of
me if I turned out an unsatisfactory character.&lt;/p&gt;
&lt;p&gt;I felt very grateful to the old man. He was in many ways
difficult to deal with; and yet, on the whole, I did not
get on badly with him; and I may say at once, though I have
left his service, I did not do so on account of any proved
incapacity on my part for the work. My great safeguard lay
in this fact, that he was infinitely more ignorant than I
was. If all matters appertaining to land were Greek to me,
they were Chinese or Sanskrit to him. He called himself a
cloth manufacturer; but I believe his principal business
consisted in making bags for artificial manure, though he
knew nothing whatever about the various ingredients which
filled them. I have seen him carefully examine a pile
standing at a station waiting to be trucked; he used to pat
them complacently, and search, I thought, for some mark to
identify them by. In his middle age he had rented a small
bit of rabbit-shooting near Manchester. A year or two before
I met him he had bought a small property in a large Scotch
county, and he considered himself somewhat of an authority
on sport. He may have known something about rabbits, but he
was certainly singularly ignorant of all matters connected
with grouse. When he got a point he always started off as
hard as he could to it&amp;mdash;either by the noise he made putting
up the birds, or else arriving in such a state of
breathlessness that he could do nothing with the easiest
chance. If he wounded a hare (and he seldom killed one
outright) he used to loo his old setter after it; and
nothing pleased him more than a successfully conducted chase
of this kind, for, as he said, the process combined the
pleasure of shooting with the excitement of a course. And
one day on getting a snipe he sent it off immediately to
M‘Leay&amp;rsquo;s at Inverness to be stuffed. This old man was easily
satisfied: two or three head &lt;em&gt;per diem&lt;/em&gt; to his own gun
contented him, and half-a-dozen made him triumphant; but
when, as sometimes happened, he got nothing at all, he
became despondent, and made me a kind of scapegoat to vent
his disgust on. One day he took me out with him to the moor,
and was at first much exercised to find that in shooting, at
any rate, I was his superior: indeed, I feared he would not
ask me again. But our united bag was naturally heavier than
his single one. He always immediately claimed every bird
which came down from a brood at which we had both fired, and
I never disputed his right to do so&amp;mdash;it was not for me as a
Scotch factor to argue with my employer. When Mr. Weatherby
found out this, he never went on the hill without me.&lt;/p&gt;
&lt;p&gt;The property was not large considering it was in the
Highlands. There was a big house, some 1500 acres of moor
and wood, and two or three small arable farms lying between
the latter and the great loch which formed the march on one
side. I entered on my duties with fear and trembling; but as
time wore on I became used to the position, acquired a
certain amount of confidence in myself, and, on the whole,
managed to get on pretty well. It is true I made some
terrible mistakes&amp;mdash;mistakes which caused me to feel
uncomfortable then, but which make me blush now when I think
of them sometimes in bed. I spoke to one of the tenants
about putting a bandage on the fetlock of a cow; I very
nearly bought some oats from another at 70s. a quarter; and
I drove almost into frenzy the old man who acted as my
lieutenant on the place by proposing to get the surplus
water off some lea by drains seven feet deep and ten feet
apart. As a rule, I got out of these holes of error. The
blank astonishment in the worthy farmer&amp;rsquo;s face, when I
offered him for his corn, told me I had made some mistake;
and a search in Stephen&amp;rsquo;s &amp;lsquo;Book of the Farm,&amp;rsquo; made it plain
that such drainage as I contemplated would be equally bad
for the land and the proprietor. Still now and then I went
too far, and Mr. Weatherby suffered. He was, however, so
ignorant himself, that I always managed without falsifying
anything, or without falsifying to any great extent, to
persuade him that all was right&amp;mdash;that matters were as they
ought to be.&lt;/p&gt;
&lt;p&gt;In a measure, I soon got rather to like Mr. Weatherby. He
had a sister who kept house for him, and I never could
endure her. She was a vulgar, conceited woman, fond of
snubbing me whenever she got a chance, and too apt, I
thought, to treat me as a servant. Of course I was a servant
in a way; but I knew that both by birth and education I was
her superior. She could not keep her h&amp;rsquo;s in their proper
places, much less make Latin verses; and I thought she might
have shown me a little more consideration. I could not
afford to quarrel with her openly, and I tried with all my
might to affect to misunderstand her sometimes offensive
insinuations. She made me go stupid messages which the
servants could just as well have carried; and she even tried
once to impress on her brother that it was part of my duty
to get up and ring the big bell which was supposed to rouse
the household&amp;mdash;but he stood my friend in this matter, and
though, as a rule, pretty much under the influence of his
sister, peremptorily vetoed her suggestion.&lt;/p&gt;
&lt;p&gt;I took up my abode in Scotland in January; in August the
owner and his family arrived; and about the end of September
he announced to me that he should be obliged to cut his stay
shorter than he had intended and go South immediately.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Stoney,&amp;rdquo; (that is my name) he said one morning, &amp;ldquo;business
requires me to go to Manchester at once, and as it is late
in the season, I shall hardly come back again this year. I
should like you to send me a box of game about the middle of
next month&amp;mdash;five brace of grouse and two hares. You will
find it perhaps difficult to get them without my aid, but
you must do your best.&amp;rdquo; And then he added graciously, &amp;ldquo;You
may shoot a grouse and a hare for yourself&amp;mdash;a blue hare.&amp;rdquo;
Those I had to send him were to be brown. From his cheerful
countenance and measured language (when put out he always
swore a good deal) I felt sure that the trade in manure-bags
was looking up. Before he left he gave me many further
directions as to the twelve head of game I was to send him.
&amp;ldquo;And Stoney,&amp;rdquo; he said, &amp;ldquo;shoot as few hen birds as you can. I
won&amp;rsquo;t have any hen birds killed; we can keep the cocks till
they are tender.&amp;rdquo; &amp;ldquo;But,&amp;rdquo; I asked, &amp;ldquo;how am I to tell a cock
from a hen when they are flying?&amp;rdquo; &amp;ldquo;You can distinguish
them,&amp;rdquo; he replied, &amp;mdash;&amp;ldquo;you can distinguish them&amp;mdash;by&amp;mdash;their
woolly legs.&amp;rdquo; I knew that he knew as much about the sex of a
grouse as about the moral character of a salmon, and I
cheerfully promised. &amp;ldquo;And, Stoney,&amp;rdquo; he went on, &amp;ldquo;don&amp;rsquo;t
disturb that stag. I won&amp;rsquo;t have that stag disturbed. If that
old scoundrel who lives at” (making a fearful mess of the
Gaelic name) &amp;ldquo;hunts that stag, I&amp;rsquo;ll turn him out of his
farm.&amp;rdquo; &amp;ldquo;But he has a lease,&amp;rdquo; I ventured to interpose, &amp;ldquo;and
there&amp;rsquo;s thirteen years of it to run, and you can&amp;rsquo;t turn him
out.&amp;rdquo; Then Mr. Weatherby went off grunting into the house.
The farmer was a peaceable old fellow, who had probably
never used a gun in his life, and the &amp;ldquo;stag&amp;rdquo; was a roe which
we had put up one day in going through a wood,&lt;/p&gt;
&lt;p&gt;At last the day of departure arrived. I accompanied my
employers across the loch to the little station, where they
met the train which caught the night mail to the South. We
had a big boat-load&amp;mdash;servants, luggage, and Miss
Weatherby,&amp;mdash;herself no inconsiderable weight. As a last
chance of making herself disagreeable, she ordered me,
rather than asked me, to row. I think her heart softened a
little just as the train was starting, for she put out her
hand as if to say good-bye; but at that moment Lord
Blackadder, the rich owner of a large deer-forest in the
district, came out of the booking-office, and she hastily
withdrew it, not wishing to appear on intimate terms with
the factor before that nobleman. I could not help feeling
rather triumphant when the great man shook hands with me (I
had had an interview with him on some question of a disputed
march), and spoke pleasantly to me. &amp;ldquo;You are going to be
here for the winter, I suppose, Mr. Stoney. I don&amp;rsquo;t intend
to kill any more stags this season; but there will be some
hinds wanted about Christmas, and I have told Campbell, the
head keeper, to let you know when they go after them.&amp;rdquo; I
thought this very kind of Lord Blackadder, and thanked him.
I saw Miss Weatherby hold half open the door of her
carriage, I saw Lord Blackadder bow to her and get into
another compartment further down, and as I watched the train
twisting along the shore of the loch I rejoiced within me at
the little snub.&lt;/p&gt;
&lt;p&gt;When the train was out of sight I rowed home again. I well
remember that row. The yellow and red and crimson beeches
and larches which fringed the shores of the great loch were
repeated in the water without their reflection being
disturbed by a ripple. There was a haze in the distance, the
sun shone brightly but with little power, and there was a
pleasant smell of autumn and frost and dead leaves in the
air. I looked with some pride and sense of proprietor-ship
at the little territory over which I was to rule undisturbed
for the next nine months. The stooks were still standing in
the oat-fields close down by the loch: then there came the
trimly squared pastures, each sheltered by its broad belt of
wood; and above these the moor, brown now with its faded
heather, stretched away for miles till it joined the distant
haze. My eyes dwelt longest and with most affection on this
moorland, for it was there dwelt the eleven grouse and three
hares which I had been directed to slay.&lt;/p&gt;
&lt;p&gt;I had made many good resolutions by the time I sculled the
heavy old tub into the little landing-place,&amp;mdash;that I would
really work hard for Mr. Weatherby&amp;mdash;harder than I had done
before,&amp;mdash;that I would make his interests my own,&amp;mdash;that I
would be courteous to cross old Maggie the
housekeeper,&amp;mdash;and finally, that I would not shoot more
grouse than I had been ordered. Brimful of good intentions,
I started directly I had moored the boat to the nearest farm
to make an appointment for the next day with the tenant to
measure some sheep drains we had been cutting on the hill.
He was working amongst his corn: and as I went in at the top
of the field I was greeted and startled by a loud whirring
noise&amp;mdash;a dozen grouse had been feeding on the stubble, and
they flew back on to the moor, following carefully in their
skimming flight every undulation of the ground. I went down
to old Rory, the little farmer, and we chatted together for
some time on diverse matters, but I made no appointment with
him: I determined, though I made a feeble struggle in favour
of the drains, to devote the next day to grouse. My
conscience told me I was wrong in this. It is true, Mr.
Weatherby had not told me &lt;em&gt;not&lt;/em&gt; to go out the next day, but
he had specified the time when he wanted the game,&amp;mdash;a full
fortnight hence. I made another attempt on the road home to
conquer myself, and nearly turned back, after all, to speak
to the farmer; but at that moment I was passing through the
stooks, and I saw they were almost all within gunshot of the
wall. Before going to bed that night, I in a measure salved
my conscience by determining that the grouse I was to slay
in the morning should be the grouse that rightly belonged to
me, and no other; and having made this compact, I slept the
sleep of the just. The morning was keen and bright; there
was frost.  The dahlias in front of the lodge were cut down
by it, and the beds of heliotrope were withered and
blackened. I knew that up on the moor the heather would be
dry in an hour; and after having devoured hastily my
oat-cake and bacon breakfast, I shouldered the gun and was
off&amp;mdash;feeling far more eager about this, my first attempt
&lt;em&gt;solus&lt;/em&gt;, than I had ever done when acting as bag-carrier and
dog-beater to Mr.  Weatherby. By ten I was far up on the
moor: the men were working amongst the stooks, and there was
nothing there. By eleven I had killed my grouse; the day was
young&amp;mdash;the best part of the ground was untouched&amp;mdash;the
brood to which my bird had belonged lay like stones,&amp;mdash;and
yet my work was over. I ought to have thrown all my
cartridges into a peat-bog and run home as hard as I could.
Alas! I threw away nothing but empty cases that day. The
grouse all lay like stones that day; they lay too well.
Everything favoured me&amp;mdash;I found them easily&amp;mdash;I knocked
them over as I had never done before: double shots,
snap-shots, long shots&amp;mdash;it was all the same; down came a
bunch of rich brown and black and russet feathers. I had no
dog except a little skye terrier, and yet I never lost a
bird. When I emptied out the contents of the bag at four
o&amp;rsquo;clock, I was almost sick with fright at the display. Six
and a half brace lay before me. I had killed on the very
first day a brace more than the full allowance for the
season for my employer and myself. Old cocks? Not they.  I
had never thought of the warning that had been given me&amp;mdash;I
had never looked for the woolly legs. Here was a pretty
beginning,&amp;mdash;a curious corollary to the resolutions scarcely
twenty-four hours old. I had begun by intending to shoot one
bird&amp;mdash;my lawful bird; then I killed another in lieu of my
lawful blue hare, and then I was very miserable; I felt no
pleasure in looking at the bonnie dead birds.&lt;/p&gt;
&lt;p&gt;I remembered how Christopher North had resuscitated the
snipe by blowing down his neb, and longed for his power.
What on earth was I to do with my spoil? I put a brace back
into the game-bag, and the remainder I buried carefully in a
moist peat-hag&amp;mdash;eleven as fine grouse as ever man saw:
plump, and in perfect plumage, and all with the woolly legs
which my master considered the characteristic of a cock. Two
pounds&amp;rsquo; worth of grouse did I stick into that slimy hole,
and hate myself for doing so; but no other course lay open
to me. I dared not send them away, and Maggie would have
betrayed me if I had taken them home. As I lay awake that
night, I felt a great change had come over my moral
character. Only a few hours had passed since I had been
brimming over with virtuous self-complacency. A few hours
had changed all. I was a poacher; I had betrayed the trust
of my master. I was a coward for burying the birds in a
bog&amp;mdash;nay, I almost felt as if I was a liar; for I had half
made up my mind, as I came down the hill, to account for my
many shots by saying I had been firing at a mark. No one had
questioned me. But then my uneasy conscience began to
inquire whether the intention was not of as much value as
the act; and while debating this nice point I fell asleep.&lt;/p&gt;
&lt;p&gt;It would not be profitable in any sense to give a daily
account of what I did on the moor between that day and the
10th of December. I was often on it. There was not very much
work for me on the place, but to a certain extent I
neglected what there was to do if I thought I should have
any luck on the hill. I tried sometimes to resist the
fascinations of the sport; but I think I must be a little
weak-willed&amp;mdash;at any rate in that particular direction&amp;mdash;for
I hardly ever did ultimately fight the temptation
successfully.  Perhaps I might have succeeded better if it
had not been for those fatal stubble-fields. The grouse used
to come down every afternoon and feed&amp;mdash;confiding
things!&amp;mdash;within gunshot of the walls. About 3 p.m, they
used to arrive&amp;mdash;not many, for there were not many on the
place, About 3.5 they used to fly off again&amp;mdash;some of them;
and some would be sprawling on the crisp stubble, or lying
quiet in brown feathery masses. The end of this kind of
thing was that I did serious injury to the shooting&amp;mdash;I
almost destroyed it.  The marches were narrow, the grouse
naturally few. They were exceedingly greedy birds; like
myself, they gave way readily to temptation, and the penalty
they paid for their sensuality was a heavy one. I consider,
if the season had lasted ten days or a fortnight longer,
that the &lt;em&gt;Tetrao Scoticus&lt;/em&gt; would have become extinct so far
as that moor was concerned. As it was, a few wary old cocks
and one small brood alone escaped.&lt;/p&gt;
&lt;p&gt;It will naturally be supposed that this kind of work could
not be carried on altogether in secret.  Wood-pigeons and
crows might account for the firing, and I avoided the
farm-folk as much as possible. If ever I enter the
diplomatic service, the experience I gained in dealing with
the people on this Scotch place will be invaluable to me.
And I used to crouch, to lie down, to assimilate my shape to
that of a tree, to pay particular attention to the colour of
a background. The shepherd must have had a pretty good idea
of what went on on the moor. But the shepherd hated Mr.
Weatherby, who had called him a damned old woman one day,
when certain holes in his little hut&amp;rsquo;s walls had been
pointed out and complained of; and I used to give him
tobacco and whisky sometimes, and let him help himself
liberally to firewood. This man was solemn and reputedly
devout; he had an acrid and severe countenance, and he was
wifeless. This latter state greatly encouraged me to hope
that he would be silent.&lt;/p&gt;
&lt;p&gt;I harried the place shamefully, and what grouse were left
had good cause to bless the sun which rose on the 11th of
December. As for the &amp;ldquo;stag,&amp;rdquo; I met him one evening when
coming home from the hill in the dusk, and fired two barrels
of small-shot at him; and the poor beast was found a week
after in the wood, dead and wasted.&lt;/p&gt;
&lt;p&gt;So came Christmas; after which festive period, spent by me
rather dismally in thinking of my sins, and wondering
whether I should be found out, I got a companion at the
lodge. I advertised in the &amp;lsquo;Field&amp;rsquo; for a pupil; and though
when I got an application I was almost frightened at my
audacity, the man who made it came. Perhaps he was lured by
the good fishing which formed a part of the advertisement.
For a time I tried to make him do a little work. I set him
down to the estate account-book one day, and persuaded him
to make a copy of it, as an example of what such things
should be; but he detected a mistake in my adding up in the
second or third page, and after that I left him alone so far
as money matters were concerned. We both fished a good deal
in the loch, and in the small burn which ran through the
property; and I should have had a pleasant spring, if it had
not been for the fact that summer came next. As the months
sped on, I became more and more alarmed. As a proof of how
easy it is for a tolerably virtuous young man to become at
short notice something distinctly the reverse, I may mention
that at one time I seriously contemplated setting the
heather on fire just before the season for muirburn
ended&amp;mdash;of course accidentally&amp;mdash;and burning the whole of
it; but I discovered in time that such an act is looked on
by the law as a criminal offence, and is punished by a long
term of imprisonment.&lt;/p&gt;
&lt;p&gt;Before Christmas, Lord Blackadder&amp;rsquo;s keeper had come over to
tell me of a hind-drive he was contemplating; and I went
into the forest for a short visit, and had a pleasant time
of it with the jovial gillies. We were on the hills all day,
slept at night in a remote and lonely lodge, feasted on
fresh venison-steaks, and scones, and whisky, and in the
evening played &amp;ldquo;catch the ten&amp;rdquo; with indescribably dirty
packs of cards, or &amp;ldquo;puss in the corner&amp;rdquo; with bonnie
rosy-cheeked maidens. I never myself got any hinds, for they
always seemed to come awkwardly to the places where I was
posted; but I enjoyed the &amp;ldquo;puss in the corner&amp;rdquo; very much. I
was, however, startled, when saying good-bye to the
head-keeper, at a remark he made&amp;mdash;&amp;ldquo;You&amp;rsquo;ll no&amp;rsquo; be having
many birds o&amp;rsquo; your groun&amp;rsquo; for the season?&amp;rdquo; &amp;ldquo;Oh, Campbell,&amp;rdquo; I
said, &amp;ldquo;what makes you think that?&amp;rdquo; &amp;ldquo;Oh, it&amp;rsquo;s the weather,&amp;rdquo;
he replied; &amp;ldquo;these black frosts is clean bad for the
breeding.&amp;rdquo; This happened before Christmas, and I felt sure
grouse would not be thinking of such a thing; but there was
a queer look in his eye when he spoke which made me suspect,
early as it was, that he had paid a visit to some black
bottle; and I was sorry for this, as Campbell was reputed a
steady man, and much respected by his master on that
account. &amp;ldquo;Oh no,&amp;rdquo; he said again; &amp;ldquo;I&amp;rsquo;m afraid you&amp;rsquo;ll no&amp;rsquo; make
a very heavy bag on Rhian the year.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Summer drew near. It was evident that I was not altogether
hardened into crime, for by the end of July I could not
sleep at night, and on the first day of August I took Robert
(the pupil) into my confidence. He was a nice open lad. We
had got on together very well, and he seemed thoroughly to
appreciate the difficulties of my situation. He was quite
willing to do anything he could to help; but for a long time
I did not see how we could do anything, and I resolved to
let matters take their course. Old Mr. Weatherby had been
unwell during the summer, and at one time I thought my
difficulties would be solved by his not being able to come
North at all; but shortly before the Twelfth, he wrote
saying he was much better, and intended finishing his cure
in Scotland. He added he was much pleased to see by the
papers that the grouse in our district were strong and
plentiful. I wrote in a great hurry to say that this was
not at all the case with us, and that the breeding season
had been a very bad one (which was a perfectly true
statement); but the letter had no effect in changing his
resolution, and on the 10th he and his sister and household
arrived.&lt;/p&gt;
&lt;p&gt;It was with very different feelings that I once more acted
as stroke in the family boat, and started for the station.
On the way I firmly made up my mind to confess everything. I
knew that the grouse all round us &lt;em&gt;were&lt;/em&gt; plentiful; the
oldest inhabitant could not remember a better nesting
season. But I had acted as the French sportsman did who
killed the hares &amp;ldquo;Desdemone&amp;rdquo; and &amp;ldquo;Alphonse,&amp;rdquo; and left only
&amp;ldquo;le vieux Achille&amp;rdquo; to breed. I had depopulated the ground.&lt;/p&gt;
&lt;p&gt;My employer was looking out of the train as it drew up: his
face had lost its ruddiness, and altogether he was feebler
than when I last saw him. He was very gracious, and seemed
delighted to be once more in Scotland. The sight of his
gun-cases and a new setter almost made me sick. There was no
time then to explain matters, and long before we reached the
landing-place I once more changed my mind. I &lt;em&gt;could&lt;/em&gt; not
explain things. Mr. Weatherby asked many questions about the
grouse, and I gave blurred, indistinct answers to some,
whilst others I pretended not to hear, and laboured most
diligently at the oar. The lapse of another year had not
improved the temper of his sister, and what little she did
say was disagreeable.&lt;/p&gt;
&lt;p&gt;Robert and I had moved out of the big house to a small
cottage close by; and as we were sitting by the smouldering
peat before going to bed that night, I made a proposition to
him. There is a kind of sport to be witnessed amongst the
fells of Cumberland which is hardly known in other counties.
It consists in dragging a skin steeped in aniseed across
country for ten or a dozen miles, for dogs to hunt. This is
called a &amp;ldquo;hound-trail.&amp;rdquo; It takes place after
wrestling-matches and pigeon-shootings and shows, and causes
great delight to the sturdy sport-loving northern farmers. I
told Robert of this, and asked him if he would be willing to
go up on to the hill early in the morning of the Twelfth,
and put such a skin down here and there; and I explained to
him that the dogs would scent it, and work about as if after
game, whilst, as Mr. Weatherby was short-sighted, we might
be able to induce him to believe that the birds had run and
got up farther on,&amp;mdash;that if this was carried out two or
three times, his disgust at their behaviour, and his
weakness from his recent illness, might prevent him going
out much more.  Robert, after a little demur, agreed to
perform his part; and the next morning, under the pretext of
getting some remedy for toothache, I went to the little town
and bought some of the strong-smelling drug.&lt;/p&gt;
&lt;p&gt;It was not with much confidence that I embarked in this
desperate course, but it was just possible that it might
hoodwink Mr. Weatherby. I knew his extreme ignorance on all
matters connected with game. I bethought me of how, the last
season, he had perpetually fired at small birds in mistake
for snipe; how he had taken a roe for a red deer, an old
carrion-crow for a black-cock; how, when he had tumbled head
over heels into a peat-hag, and plugged up both barrels with
black earth, he had wished to clear them by firing his
cartridges; and how he had only been saved from destruction
by my interposition. I remembered all this, and determined
that it was worth while to run the risk; I could not make
things much worse than they were. I gave the shepherd a pair
of old boots and half a pound of tobacco, prayed heartily
for a stormy morrow, and went to bed in a most unenviable
state of mind.&lt;/p&gt;
&lt;p&gt;Uneasy snatches of sleep were all I was able to secure; and
at a very early hour I awoke Robert, and started him off
with his rabbit-skin and little bottle, giving him many and
minute instructions as to what he was to do.&lt;/p&gt;
&lt;p&gt;Ah! if my conscience had been easy, how glad I should have
been at the look of that morning! It was one of those early
autumn days which give promise of heat: a heavy dew lay over
everything. Robert left broad footprints as he crossed the
lawn, and destroyed myriads of gossamer and sparkling spider
webs.&lt;/p&gt;
&lt;p&gt;There was the usual delay in making a start, the usual
collecting of cartridge-bags and flasks, and about ten Mr.
Weatherby and myself and the shepherd stood at the gate
which opened on to the first bit of moorland. The former was
full of cheerful anticipations: my mind, though I acted my
part as well as I could, was filled with most dismal
forebodings. I experienced, in an intensified form, the
feelings of a schoolboy who is called up for a lesson he has
not prepared: perhaps the thoughts of a clerk submitting
falsified accounts to his employer would be still nearer
akin to mine. What the shepherd thought I do not know; his
sour face was unreadable by me. I had tried to persuade the
old merchant that he (the shepherd) would be an unnecessary
encumbrance, and that I could easily carry all the game
myself&amp;mdash;how easily none but I knew; but Mr. Weatherby was
obstinate. He insisted on our both taking enormous
game-bags. I thought of the whisky, and tobacco, and
firewood, and boots for which the shepherd was indebted to
me, and fervently trusted that he did the same. I had
expected Robert home before we started, but he had not made
his appearance. The setters were let loose, and in three
minutes they ran into a brace of grouse. My mind was so
occupied and anxious that my fingers were unready, and I
missed. Not so Mr. Weatherby. To the great surprise of the
shepherd and myself and the dogs&amp;mdash;certainly to his own&amp;mdash;he
knocked over a bird. He was jubilant: he laughed at my
dismal forebodings; he chaffed me for my bad shooting; he
brought out his flask and gave us both a small mouthful of
whisky &amp;ldquo;to wet the luck;&amp;rdquo; he prophesied an enormous bag, and
then he ordered an advance.&lt;/p&gt;
&lt;p&gt;I knew those two old birds: I may almost say I knew them by
sight, and probably they were as well &amp;ldquo;acquaint&amp;rdquo; with me.
Many a time had I tried in the previous autumn to circumvent
them, and only superior cunning on their part had saved
them.&lt;/p&gt;
&lt;p&gt;So we went deep into the moor: we waded through rich
blooming heather; we passed by rushy patches, and green
burns, and sunny hillocks, where grouse used to love to lie,
and it was all as a city of the dead. Mr. Weatherby got hot
and fidgety, and tired, and finally cross. He insisted on
taking his own course, and would not be guided by my advice,
and so we wandered a mile from the place where I had told
Robert to cast off. The shepherd&amp;rsquo;s face told nothing&amp;mdash;he
acted as &amp;ldquo;Brer&amp;rdquo; Fox did in the American story, &amp;ldquo;he lay low.&amp;rdquo;
I was wondering what on earth had become of Robert, and was
picturing to myself that self-sacrificing individual stuck
in a bog or drowning in a burn, when a loud To-ho!  startled
me. I saw Dash and Meg standing rigid about a hundred yards
off, and Mr. Weatherby starting after them as hard as he
could go. I was too much accustomed to this proceeding to be
much surprised at it. In defiant opposition to all the rules
of shooting, the old bag-merchant ran furiously towards his
dogs. Whenever he had a little breath to spare he shouted
loudly To-ho!&amp;mdash;though to all appearance the setters never
meant to move again. He reached them in his usual state of
mind and body&amp;mdash;blown, shaking, and done.&lt;/p&gt;
&lt;p&gt;Nothing got up: the dogs refused to budge an inch. I
encouraged them, and patted them, and pushed them, and then
their master kicked them, but they would not move.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;He has been here and made the stuff too strong,&amp;rdquo; I thought,
and I almost fancied I could smell it myself. Mr. Weatherby
began to swear and hammer the dogs with his gun; and the
shepherd&amp;mdash;&amp;ldquo;he lay low.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Suddenly the animals began to move&amp;mdash;to draw; we stood round
and watched them with much solemnity and anxiety: with slow
and stately step and great rigidity of body they advanced,
and we followed. Mr. Weatherby, with his forefinger on his
right trigger; I with my hammers down, half expecting to see
Robert jump up out of a bunch of heather and run for it; and
the shepherd with his stick held like a gun, ready to use in
a moment. The dogs went steadily on and on. &amp;ldquo;They&amp;rsquo;ve run,&amp;rdquo;
said Mr. Weatherby in a hoarse and excited whisper; &amp;ldquo;head
them, Stoney.&amp;rdquo; So I made a circuit and met the party, and,
miserable as I was, could hardly keep from laughing aloud
at the appearance it presented to one who was behind the
scenes.&lt;/p&gt;
&lt;p&gt;The funeral march of the dogs was gradually exchanged for a
quicker step. They began at length to trot, to sniff in an
excited manner here and there. Then they threw up their
heads, they stretched their tails out straight behind them,
and set off across the moor; Dash began to &amp;ldquo;whumper,&amp;rdquo; and
Meg fairly &amp;ldquo;yowled.&amp;rdquo; Now and then they were hidden for a few
seconds by a hillock, but they soon reappeared. They took a
bee-line across the heather; we watched them cross the
march, grind up the opposite slope, and then they faded from
our view. Talk of a hound-trail&amp;mdash;none better was ever seen
amongst the fells of Cumberland.&lt;/p&gt;
&lt;p&gt;I stared blankly in the direction the dogs had gone. I did
not dare to look at Mr. Weatherby; he broke out into a storm
of fury, and condemned the dogs, and myself, and the
shepherd, and the moor, to the hottest place he could think
of. I said nothing in answer to all this&amp;mdash;only looked at
the shepherd; and the shepherd&amp;mdash;&amp;ldquo;he lay low.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The bag consisted of one grouse that Twelfth. If the dogs
had re-appeared on the scene by the time we reached home, I
think there would have been two setters added to the total;
but they did not. I left Mr. Weatherby when near the lodge,
telling him the toothache had come on again, and flew to my
small dwelling.&lt;/p&gt;
&lt;p&gt;There, sitting in the last stage of exhaustion on his bed,
was Robert. He was dirty to a degree, and neither his
knickerbockers nor stockings showed any signs of their
original colours. There was an awful smell of aniseed in the
room. It appeared that he had safely reached the place where
the scent was to be laid first, and had just arranged the
rabbit-skin to his satisfaction, when he became aware of a
man crouching down at some little distance, and evidently
watching him. Robert said at first that he had walked slowly
away, but afterwards admitted he had perhaps run a little,
and I soon found out that he had run a great deal. The man
started in pursuit, and Robert made the best of his way
across the moor. But after proceeding with great rapidity
for some time he tumbled over a tump of grass, and the
bottle of aniseed, which he had put for safety in his
trousers-pocket, was broken in the fall. He said that this
was perhaps what the dogs had been hunting,&amp;mdash;and I thought
so too: I could have given him an hour&amp;rsquo;s start, and hunted
him with great ease myself&amp;mdash;he smelt as if he had been
dipped in aniseed.&lt;/p&gt;
&lt;p&gt;I had barely time to take in all this, still less elaborate
any plan for the future, when there was a knock at the door,
and, without waiting for an answer, in came a man&amp;mdash;the
shepherd. He sniffed once or twice with great noise and
deliberation, and I thought he grinned, and then he said&amp;mdash;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;The maister&amp;rsquo;s waiting to see Mistar Rowbert in the
Leebrary.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Robert&amp;rsquo;s face was too dirty to get white, but his lips
quivered as they formed the word &amp;ldquo;Now?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Ay, the noo&amp;mdash;at wanst,&amp;rdquo; said the shepherd.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;I&amp;rsquo;ll just change my clothes first, I think,&amp;rdquo; said the
agitated Robert. &amp;ldquo;I&amp;rsquo;ve&amp;mdash;I&amp;rsquo;ve&amp;mdash;had a little&amp;mdash;accident,
shepherd.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Once more there seemed a curious struggle in that
individual&amp;rsquo;s countenance between austerity and mirth, and
again he loudly scented the air. He gave no reprieve. &amp;ldquo;But
he&amp;rsquo;s waiting,&amp;rdquo; he said; and he almost button-holed the
reluctant lad, and took him out of the room.&lt;/p&gt;
&lt;p&gt;I had a terrible foreboding as to who that watcher on the
moor had been. After a decent interval, I followed the two
to the house, and, as I had had no time to communicate with
my friend, and was quite ignorant of what he was going to
say, I thought it wise to get into the middle of a
laurel-bush which stood just opposite the window and
garden-door of Mr. Weatherby&amp;rsquo;s smoking-room. I was
disappointed in my plan, for I could hear nothing
articulate; indeed, after a few minutes, I doubt if there
was anything articulate to hear. For a short time I could
hear nothing at all, but I knew Robert was in the room, and
had gone in by that door,&amp;mdash;I could smell him.&lt;/p&gt;
&lt;p&gt;Then I heard a loud voice, a stuttering, stammering
vociferation, the sound of a struggle, the breakage of
something brittle, a plaintive cry in a different key, and
then the door was thrown violently open. I, crouching in the
laurel-bush, watched. Robert came out first. I saw Mr.
Weatherby had him by what seemed the skin of his neck.
Breathless, I saw the old bag-merchant poise himself on one
leg, and then I experienced a violent concussion in my leafy
hiding-place,&amp;mdash;the plotter and the tool met in the
laurel-bush. Robert&amp;rsquo;s ideas had been very much confused by
his day&amp;rsquo;s work, especially by the last part of it, and I
think when he saw me he imagined that Mr. Weatherby had
somehow managed to run round the bush to meet him and kick
him again: he jumped back with the greatest possible
alacrity, and fled like a hare down the avenue.&lt;/p&gt;
&lt;p&gt;I instinctively shrank closer to the ground: the old man saw
the movement. With what I can only call a howl, he sprang at
me; but I was too nimble for him. No one ever ran, or ever
will run, faster from that house than I did that fatal day.
I upset Miss Weatherby, who was coming up from the farm, and
left her sitting wildly gesticulating amongst dozens of
broken eggs. I soon distanced her brother, and got out of
his territory. I spent a miserable night at a little inn,
miles off; and after hovering about the next day, trying to
make up my mind to venture back for some clothes, I gave it
up, and left that hilly country for good.&lt;/p&gt;
&lt;p&gt;It is but justice to Mr. Weatherby to say that he sent me my
personal effects, and what he called my &amp;ldquo;wages.&amp;rdquo; I have
never seen him since, or been within a hundred miles of him;
but I understand that the sanctimonious shepherd has taken
the place of the amateur factor.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Gibbet Hill</title>
      <link>https://hisdeedsaredust.com/posts/2024/gibbet-hill/</link>
      <pubDate>Tue, 22 Oct 2024 17:09:59 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/gibbet-hill/</guid>
      <description>&lt;p&gt;The following short story by Bram Stoker was published in the
Christmas Supplement of the Dublin edition of the &lt;em&gt;Daily Express&lt;/em&gt; on 17 December 1890.&lt;/p&gt;
&lt;h1 id=&#34;gibbet-hill&#34;&gt;Gibbet Hill &lt;a href=&#34;#gibbet-hill&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;When I left the Royal Huts Inn, on the top of Hind Head, in order to
visit the Devil’s Punchbowl and Gibbet Hill, immortalized by Turner
in the &lt;em&gt;Liber Studiorum&lt;/em&gt;, I passed along a wide straight road—the new
high road between London and Portsmouth—and shortly came to the
edge of the Punchbowl and casted my eyes on its beauty. The fog,
which had been heavy in London when I left on this mid-October
morning, extended even to Haslemere and hung in the valleys so that
the tops of the Surrey hills rose like islands from the sea of mist,
and in the brilliant sunshine which glorified these upper levels
softened and mellowed all the wide expanse of hill and dale and down
which ranged between me and the Southern coast. The hill gave steeply
on all sides save the north-west, where the circular valley opened to
the plain below. All the summer tints were chastened and mellowed;
all the full colours which the sunshine had glorified had faded into
the sere of Autumn. The pink and purple of the heather were changed
to a brown with only a suggestion of faded colour to warm its tone.
The bracken was of rich amber and faded yellow, and the myriads of
grasses and wild flowers had donned their winter garb—the hues of
decay. Through all this rich mass of Autumn tints, the broom,
untouched as yet by the frost, sent an emerald flash. The green
bushes which fringed the tiny stream running through the valley
seemed of supernatural vividness, and the dark green of the pines
which covered the western slope and ran down into the valley seemed
to assert in some positive way the right of nature to maintain her
own colour despite all influences. Away to the north and west, past
the spurs and shoulders of the hill, the woods and valleys, the
copses and villages and hills and ridges ranged in endless
succession; and it was after a long, long pause that I turned from
drinking in the beauty of the scene with my heart full of the power
and majesty and purifying influence of nature’s beauty. “Here at
least,” said I to myself, “the soul of man is elevated; and on
this higher plane of nature’s handiwork the evil of our hearts is
lulled.”&lt;/p&gt;
&lt;p&gt;As I turned, however, I started, for, as if by the irony of fate,
there, beside me, was a grim memorial of man’s wickedness and lust
for blood—a tombstone by the roadside, marking the spot where a
century ago a poor seaman trudging on his way from Portsmouth was
murdered.&lt;/p&gt;
&lt;p&gt;But not the stone only was of interest; for by it were three
figures which would have arrested attention anywhere. They were only
children, but of types that were not common. Two were young Indian
girls of an age which by the slower development of English girlhood
would be about some thirteen or fourteen years; being, however, of
Eastern birth, they were probably much younger. They stood one on
each side of the memorial stone, looking almost like heraldic
supporters, as each with a slim brown hand resting on an elbow of the
stone, leaned her face on the hand while looking at me gravely with
long, dark, fathomless eyes. They were both very pretty of their
type, and their slim girlish figures were draped in black of some
shimmering material, made in a half Eastern fashion with a wide belt
of the stuff around the waist, and some kind of dark material wound
around the head and acting as a head gear. The third of the group was
a little boy of some ten years old, with hair of spun gold, eyes like
blue porcelain, and a winning smile on his rosy face. One might
designate him indifferently a Cupid or an angel. He was dressed in a
dark blood-coloured tunic.&lt;/p&gt;
&lt;p&gt;For a few seconds I stood looking at this group, they regarding me
steadfastly without the slightest movement. Then I spoke to them,
making some remark about the beauty of the scene. One of the girls
said, tapping the stone with her hand as spoke.&lt;/p&gt;
&lt;p&gt;“Can you tell us anything about this stone, Sir? We are
strangers.”&lt;/p&gt;
&lt;p&gt;“I am a stranger here myself, but I think we will find it here,”
I answered, as I proceeded to read the inscription, which is on both
sides of the stone. When I read of the word murder they all three
looked at each other and then at me, and shuddered, and, strange to
say, followed the shudder with a smile. I thought they might be
frightened, and I hastened to add—“But you need not let this
disturb you. It all happened a hundred years ago, when the country
was very different from what it is now.” One of the girls said in a
low voice, whose tones were peculiarly penetrating:&lt;/p&gt;
&lt;p&gt;“I hope not—I trust not;” and the little boy looked up at me
with a laugh and said&lt;/p&gt;
&lt;p&gt;“I suppose if there were a murder now some one would be stuck up
on Gibbet Hill!”&lt;/p&gt;
&lt;p&gt;“Hullo! young man,” said I, “You know all about it, I see. I
am going up to the hill top to see the Memorial Cross. Will you come
and see where they put the murderer?”&lt;/p&gt;
&lt;p&gt;“With pleasure,” he said, with an air of almost supernatural
gravity, lifting his cap in acknowledgment of my invitation. The
girls bowed too, and we all moved up the hill together. As we went I
noticed that the boy had one of his hands tightly clenched. “What
have you got there?” I asked of him.&lt;/p&gt;
&lt;p&gt;“These!” he said, opening his hand and showing me a crumpled
mass of great earthworms, wriggling in their sudden freedom. “I
love worms,” he went on. “See! they wriggle so, and you can pull
them out long!” and he illustrated the latter fact.&lt;/p&gt;
&lt;p&gt;“Poor worms,” said I, “Why not let them go? They would much
rather be on the ground.”&lt;/p&gt;
&lt;p&gt;“Shan’t,” was his only reply, as he shoved them into the
folds of his tunic.&lt;/p&gt;
&lt;p&gt;There were a lot of persons at the cross when we reached the top
of Gibbet Hill, besides abundant evidence of recent visitors in the
shape of egg-shells and pieces of newspaper—for the cross is a
favourite picnicing spot. Amongst the strangers my fancy was chiefly
taken by a lady and gentleman whom I dubbed “the honeymoon couple.”
I soon became so absorbed by the lovely view which lay stretched before
me—a wilderness of rising hill-tops with green woods and rich
valleys—that I quite forgot my young companions. I went to the edge
of the steep hill and sat down looking eastwards, and lost myself in
the beauty of the scene.&lt;/p&gt;
&lt;p&gt;Presently I remembered my young companions, and looked around for
them; but they had quite disappeared: there was not a sight of them
anywhere around.&lt;/p&gt;
&lt;p&gt;My departure from London had been early, and the walk from
Haslemere in the blazing October sun a little fatiguing, so, after a
while, when I had been all around the summit of the Head and had, so
to speak, boxed the scenic compass, I took my way to a deep shady
grove of hazel and beech with tall pines rising over all—one of
those dense copses that creep up from the valley, throwing jagged
spikes of greenery up the slopes of the hill. Here there was the very
perfection of autumn fullness. The undergrowth grew luxuriantly under
the shelter of the clustering pines. The brown of the bark and the
blueish bloom of the foliage of the pines, as one gazed into the half
dim aisles between them—the sweet aromatic odour which they
exhaled—the sleepy silence, accentuated only by the hum of nature’s
myriad vitalities—the soft, rich grass, whose summer greenery stood
untouched as yet in this sheltered dell—all invited to repose. With
a blissful feeling of content I stretched myself on the grass, and
soon lost my thoughts and my consciousness in the interlaced branches
above me.&lt;/p&gt;
&lt;p&gt;How long I slept I know not; but it must have been a good while,
for I felt thoroughly refreshed as to brain, and with that
half-aching sense of cramped muscles which comes after a long period
of unchanged attitude; and there was over me that mysterious sense of
elapsed time which tells philosophers that our thought is continuous
in some form or another. There was, however, no sense of duty
omitted—no press of coming work, which in such cases destroys the
charm of awaking. I knew that there was ample time before me, and
that I might muse on, unchecked, that I could revel to my heart’s
content in the sense of freedom, and enjoy the freshness and purity
of the air in this wonderful spot.&lt;/p&gt;
&lt;p&gt;And so I did not stir, but lay on my back with my hands under my
head looking up into the branches and watching the gleams of light
struggle through the tracery of leaf and branch. I thought of many
things, in that luxurious half-dreamy way which belongs to the
leisure of an habitually busy man. Taking up a thread of thought and
dropping it again—swaying between general and particular ideas—in
all ways realizing that greatest of pleasures, intellectual &lt;em&gt;laissez
aller&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;There was in the air the same faint hum of varied sounds which had
at first lulled me to sleep; but somehow the volume was richer than
before—more full and satisfying to the ear, and with a special
significance, as if not only all nature was speaking but that there
was some one voice amongst the myriad more potent than the rest. I
listened with a growing interest, and the sound seemed to take a more
definite place amongst nature’s harmonies. It was not as if it grew
in loudness, but merely as if the vibrations accumulated, coming in
waves more quickly than they could die away.&lt;/p&gt;
&lt;p&gt;Gradually all the other noises seemed to die away, and I heard
only this one sound. It seemed to be closer and closer as I began to
distinguish more clearly, until I shortly came to the conclusion that
its source was separated from me by only some score of yards. Then I
began to be able to analyse it a little. In general effect it was
like a sort of musical muffled corncrake—a corncrake in whisper—but
with some subtle prevailing sweetness which seemed of almost
irresistible attraction. Presently I raised my head from amongst the
bracken where I lay, and looked whence the sound proceeded.&lt;/p&gt;
&lt;p&gt;There, to my surprise, in an open dell where the light fell
through a break in the trees were grouped the children whom I had
seen. The two girls were seated, and between them the little boy
stood up. One of the girls held in her left hand something which
looked like a set of pandean pipes made of thin canes but slightly
thicker than wheaten straws. Across this she drew something attached
to her fingers of the right hand, which made the bass of the strange
corncrake sound. The other girl held a shell with strings across it which
she touched lightly; and the boy had a sort of reed flute which gave
forth a peculiarly long sweet note, but which blended in the mass of
music. Then the girls joined in a sort of monotonous chant of strange
sweetness but very, very faint. They were all three looking well to
one side of me. By and by the girls stood up; they all turned
slightly, and I could see that they were evidently turning slowly in
a complete circle, as though seeking in every direction around them.
As they began to face my direction I sank down again into the bracken
so that they might not see me, for the affair began to absorb my
interest. I took care, however, to peep through the fronds of the
bracken and see all that went on. A very short time elapsed before my
attention was diverted, and in not the most pleasant of ways.&lt;/p&gt;
&lt;p&gt;Hearing a stir and rustle among the dead leaves beside me I looked
round, and almost jumped to my feet, for there close by, and
approaching closer, was a large snake of the blindworm species. It
came straight towards me and actually passed over my feet. I did not
stir, and it went on, heeding me no more than if I had been a log of
wood, and wriggled away towards the group in the sunlit glade. It was
evidently attracted by the strange, weird music, and as this was my
first actual experience of serpent-charming my interest grew, and I
watched the little party more closely than before. They went on with
their music, and the snake approached closer and closer; till at the
feet of the fair-haired child it stopped, and, curling itself into a
spiral, raised its head and began to hiss. The boy looked down, and
the girls turned their eyes towards him, but the music did not stop
for a moment; on the contrary, it grew something quicker. Then the
snake twined itself around the child’s ankle and began to climb its
way up his body, wriggling round and round his leg and thigh, and up
and up, till at last it crawled along the arm that held the flute.&lt;/p&gt;
&lt;p&gt;Then, suddenly, the music stopped. The two girls stood up, and the
boy stretched out his arm with the snake wound around it, with his
hand stretched out wide open, the palm upwards. The snake remained
perfectly still, as if transformed into stone. Then the girls took
hands and circled slowly around the boy, uttering a low, whispering,
mysterious chant, something the same as the earlier one, but this
time in decrescendo as compared with the former crescendo, and in a
minor key. This went on for quite two or three minutes. The boy
remained perfectly still, with his arm extended, and his blue eyes
fixed on the snake. Then the latter raised its head slightly and
seemed to follow with it the movements of the circling girls. They
continued their slow movement, round and round, the snake’s
movements being more and more pronounced with each revolution, till
presently it was boldly turning, like the automatic motion of a
firework, around the boy’s arm. Gradually the motion of the girls
got slower and that of the snake correspondingly less, till,
presently, the girls’ movement, and the low crooning music, which
had never stopped, died away altogether, and the snake hung, a dead
mass as limp as a piece of string, across the boy’s hand. The boy
never moved, but the girls let go each others’ hands, and one of
them, who had stopped just in front of the boy, took the snake by
head and tail and seemed to gently pull it out straight. When she let
it go it lay across the boy’s hand as stiff as a piece of wood.
There was something uncanny about this which recalled to me
recollections of a man whom I had once seen in a cataleptic fit, and
whose body retained any position into which it was put, no matter how
grotesque or how uncomfortable or strained. The snake seemed to be
under some similar condition, and with strange curiosity I awaited
the next development. The boy continued impassive, his hand still
stretched out and the snake resting across it. The girls stood a
little in front of and on either side of him, so that the
outstretched hand was midway between them.&lt;/p&gt;
&lt;p&gt;Then began some questioning between them in a language which I
presumed to be some form of Indian, but which I did not understand.
Both voices were sweet, with a peculiar penetrating power, but one of
them I seemed instinctively to fear, although it was the sweeter and
softer of the two. Somehow—and the idea was quite spontaneous—it
seemed to suggest murder. From the tones and inflections of the
voices I gathered that all utterances were put in the form of
questions—a supposition shortly confirmed in a strange way, for the
answers were given by the rigid snake. When each girl in turn had had
her say—and they suggested positive and negative in their tones—the
snake would slowly turn around like the needle in a compass, and
point its head to either one. The sweeter voice seemed to be the
positive, and the other the negative in the inquiry; and in all the
earlier questions the snake, after turning slowly around, remained
with its head towards the negative. This first seemed to disturb and
then annoy the positive inquirer, and her voice grew more deadly
sweet and penetrating until it made me shudder. Then she seemed to
get more and more enraged, for her eyes gleamed with a dark unholy
light, and at the last came her question in a keen thrilling whisper.
For answer the snake then spun round quicker and quicker, and
suddenly came to a dead stop in front of the other girl.&lt;/p&gt;
&lt;p&gt;The disappointed one gave one fierce, short, sharp sound like a
dog’s bark, whilst a look of deadly malice swept over her face; and
then passed away, leaving it as serene as before. At the same instant
the rigidity of the snake collapsed, and it hung for an instant as
limp as before, and then slipped to the ground, and lay there all in
a heap without motion, as if dead. The boy started, as though from
sleep to waking, and began to laugh. The girls joined in the
cachinnation, and in an instant the glade, which had seemed so weird,
grew instinct with laughter, as the children chased each other into
the recesses of the wood, and disappeared from view.&lt;/p&gt;
&lt;p&gt;Then I rose up from the bracken where I lay. I could hardly
believe my eyes, and thought that I must have been sleeping, and have
dreamt it all. But there lay the seemingly dead snake before me as a
palpable evidence that I had beheld a reality.&lt;/p&gt;
&lt;p&gt;The sun was far in the west when I had finished my stroll through
the laneways and copses upon the Witley side of Hind Head and found
myself once more at its highest point on Gibbet Hill.&lt;/p&gt;
&lt;p&gt;The place was now deserted. The picnicers had all gone home; the
pony traps and donkeys and parties of school children had
disappeared, and nothing remained of the day’s visitation but the
usual increase in old newspapers and broken egg shells. As the light
was just beginning to fade and the air to grow a shade colder, the
sense of loneliness was more than ever marked. But I had come from
the midst of the hum and turmoil of the city to enjoy this very
loneliness, and its luxury was to me unspeakable. Down in the valleys
the mist still lay dim and fleecy white, and from it the hill tops
rose dark and grim. A belt of cloud fringed the whole horizon, and
above it stretched a sea of sulphur yellow, flecked here and there
with little clouds of white which, swimming high above the level of
the hill, caught the last splendours of the sun, now obscured by the
horizon. One or two stars began to twinkle through the darkening sky,
and a stillness that seemed sentient stole up through the valley and
reached to where I sat.&lt;/p&gt;
&lt;p&gt;Then the air grew colder, and the silence became perfect. The
stars swam out into the sky, which had now a darker blue, and a soft
light fell on the scene. I sat on and on, and drank in the wondrous
beauty in which I was immersed. Weariness of mind and body seemed of
the dim past, and as if they could never again be other than a sad
memory. In such moments a man seems almost to be born again, and to
have every faculty renewed to the full. I leaned with my back against
the great stone cross, and, putting my hands behind me, clasped my
arms around its back so as to change my position and be able to enjoy
more fully the luxury of rest.&lt;/p&gt;
&lt;p&gt;Suddenly, without a word of warning, each hand was grasped from
behind and held tight in a pair of hands, thin and warm but so strong
that I could make no movement; and at the same time a scarf or shawl
of some light, fleecy, but thick material was thrown over my face and
drawn tightly from behind, holding my head close to the stone. So
pinioned and gagged, I could neither move nor speak, and had perforce
to await the coming events. Then my hands were tied with a string put
around my wrists and drawn tight, so that I was fixed more firmly
than before. I could hear no sound, and took it for granted that I
was being prepared for robbery. I was alone, far away from everyone
and in the hands of men stronger than I was myself, and so resigned
myself to the situation as well as I could—secretly thankful that I
had only a small sum of money with me. After a time which seemed
long, but which was probably of but a few minutes’ duration, the
scarf was pulled down so far that my eyes were free, though my mouth
was still covered and I was unable to cry out.&lt;/p&gt;
&lt;p&gt;For a few moments I was too much surprised even to think as
strange what I saw before me. Instead of burly footpads with rude
manner and coarse force, there were the three children who had
arrested my attention earlier in the day. They stood before me
perfectly still and silent for a little while, their eyes being the
only features which expressed either consciousness or interest or any
kind. Two of them, the boy and one girl, then smiled on me with an
amused superiority, whilst the other—she who in the glade had
exhibited such anger—smiled with a deadly cold hate which, bound as
I was, made me shudder. This latter then approached me closer, the
others remaining quite still and looking on with their superior
amused smile. She took from her waist, where it was concealed in the
folds of her dress, a long sharp dagger, thin, double-edged, and
lethal-looking. This she proceeded to flourish before me with
extraordinary dexterity and rapidity. Half the time its keen edge
actually touched my skin, and the contact made me wince. Anon she
would dart towards my eyes till I could feel its cold point actually
touching my eyeballs. Then she would as if hurl herself at me with
the point of the deadly weapon directed to my heart, but would stop
just as it seemed that my last moment had come. This went on for a
little while; but short though it was it seemed endless. I felt a
cold chill, a strange numbness, growing over me; my heart seemed to
get cold and weak—colder, and colder—weaker and weaker, still,
till at length my eyes closed. I tried to open
them—succeeded; tried again—failed, succeeded—failed—and at length consciousness passed away
from me.&lt;/p&gt;
&lt;p&gt;The last thing I remember seeing with my waking eyes was the gleam
of the long knife in the starlight as it moved in the young girl’s
dexterous play. The last sound I heard was a low laugh from all three
of the children.&lt;/p&gt;
&lt;div style=&#34;text-align:center&#34;&gt;*  *  *  *  *&lt;/div&gt;
&lt;p&gt;The voice in my ears was dim and distant;
but it gradually grew louder, and the spoken words became
intelligible:&lt;/p&gt;
&lt;p&gt;“Wake up!—Wake up, man! You will get your death of cold!”&lt;/p&gt;
&lt;p&gt;Cold! The word struck home, for there was at my heart a numbness,
and a chill as of death. My consciousness struggled back into
existence, and I opened my eyes.&lt;/p&gt;
&lt;p&gt;It was now much brighter, for a great yellow moon had arisen, and
the common was flooded with its light. Beside me were two persons
whom at once I recognised as “the honeymoon couple” of earlier in
the day. The man was bending over me, and was shaking me roughly by
the shoulder, whilst the lady stood by, looking on anxiously, with
her hands clasped.&lt;/p&gt;
&lt;p&gt;“He is not dead, George, is he?” I heard her say. The answer
came.&lt;/p&gt;
&lt;p&gt;“No! thank goodness!—He must have fallen asleep. It is a mercy
that you had the inspiration to come out to see the moonlight view
from here; he might have died of cold. See! the ground is white with
the hoar-frost already. Wake up, man!—Wake up, and come away!”&lt;/p&gt;
&lt;p&gt;“My heart,” I murmured, “My heart!” for it was icy cold.
The man looked more serious, and said to his wife:&lt;/p&gt;
&lt;p&gt;“Bella, this may be serious. Could you run back to the hotel,
and send some one if necessary? It may be that his heart is
affected.”&lt;/p&gt;
&lt;p&gt;“Certainly, dear; shall I go at once?”&lt;/p&gt;
&lt;p&gt;“Wait a minute first.” He leant over me again. The past was
coming back to me quickly, and I asked him:&lt;/p&gt;
&lt;p&gt;“Did you see anywhere, some children, two Indian girls, and a
fair haired boy?”&lt;/p&gt;
&lt;p&gt;“Yes! hours and hours ago, as they went down the London road on
a tricycle. They were laughing, and we thought them the prettiest and
happiest children we had ever seen. But why?”&lt;/p&gt;
&lt;p&gt;“My heart! my heart!” I cried out again, for there was a
coldness which seemed to numb me.&lt;/p&gt;
&lt;p&gt;The man put his hand over my heart, but quickly tore it away again
with a cry of terror.&lt;/p&gt;
&lt;p&gt;“What is it, George? what is it?” almost shrieked the lady,
for his action was so sudden and unexpected, that it thoroughly
frightened her.&lt;/p&gt;
&lt;p&gt;He stood back, and she clung frightened to his arm, as a large
blindworm wriggled itself out from my bosom—fell on the ground—and
glided away down the hill side into the copse below.&lt;/p&gt;
&lt;hr/&gt;
Transcription notes: corrected ‘Studiorum’ from ‘Studiorium’ and regularised spelling of Haslemere.
&lt;p&gt;This text is in the public domain.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>My First Marathon</title>
      <link>https://hisdeedsaredust.com/posts/2024/first-marathon/</link>
      <pubDate>Tue, 28 May 2024 14:20:44 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/first-marathon/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve now been running for 3½ years, having completed the &lt;a href=&#34;https://www.nhs.uk/live-well/exercise/get-running-with-couch-to-5k/&#34;&gt;Couch to
5K&lt;/a&gt;
programme with my son in January 2021. I&amp;rsquo;m lucky enough to live on the South
Downs in England, so I have a wealth of interesting off-road opportunities to
ensure I never get bored. I&amp;rsquo;ve also found many friends to run with and, at some
point, the conversation always turns to distance running, and the marathon in
particular.&lt;/p&gt;
&lt;p&gt;I have set myself a target of running 40 km a week, which is generally completed
over 3 or 4 runs. I tend to enjoy trail runs of about 8 km to 15 km, though I&amp;rsquo;ve
now found that I can just leave the house and run a half marathon (21.1 km) if I feel like
it. Until yesterday, however, I had never run a marathon (42.2 km.)&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve never particularly fancied the idea of a marathon, having had in mind that
it would take a specific training programme and careful eating to get ready for
it. But I still couldn&amp;rsquo;t shake the idea that I &lt;em&gt;should&lt;/em&gt; run one, just for the
experience.&lt;/p&gt;
&lt;p&gt;The weather was predicted to be unpleasant yesterday. If I got up at
5 a.m., there was a reasonable chance that I could run for an hour before
getting wet so, when the birds woke me at 4.30 a.m., I put on my shoes and headed out
to the National Trust land at Blackcap, just north-west of Lewes. This is a
200 m ridge that offers panoramic views of the Low Weald northwards, as
well as overlooking Lewes and Brighton, sat in its bowl to the south.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;20240527-low-weald.jpg&#34; alt=&#34;An uneven, grassy bank in the foreground
drops away to a patchwork of fields in the distance, with a blue sky and wispy
clouds above, holding a rising sun, taken about half an hour after sunrise.&#34;/&gt;
&lt;figcaption&gt;The Low Weald, looking north from Blackcap&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;Blackcap itself is surmounted by a triangulation pillar alongside a small copse
with a stone and plaque noting that it was replanted in 1953 to commemorate the
coronation of Her Majesty Queen Elizabeth II.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;20240527-blackcap-serenity.jpg&#34; alt=&#34;An Ordnance Survey triangulation
pillar, a 4-foot high concrete truncated pyramidal column, at Blackcap. A small
copse is to the left, low-lying bushes behind and to the right of the pillar,
with the sun rising into a half cloudy sky behind.&#34;/&gt;
&lt;figcaption&gt;Sunrise serenity at Blackcap&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;From there, I made my way to the beacon on Mount Harry and then followed tracks
roughly south-east, keeping the woodland to my left and then coming up
north-east until I came to the chalk pits at Offham. I have driven through
here many times, but I&amp;rsquo;d never had a view from up behind the pits. Standing
behind Offham Chalk Pit and the Fairy Ring, the land just drops away about
60 m to the road below, the faces having been loosened with gunpowder
before picks completed the job.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;20240527-offham-chalk-pit.jpg&#34; alt=&#34;A steep cliff face on the left of
the picture drops away sharply to the right, to lower land with a river
meandering through, low sun glinting off the water.&#34;/&gt;
&lt;figcaption&gt;Offham Chalk Pit, looking roughly ESE over the Ouse to St. Peter&#39;s at Hamsey&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
&lt;img src=&#34;20240527-chalk-pit-fairy-ring.jpg&#34; alt=&#34;A view through trees to an
escarpment with a very thin top, dividing the Chalk Pit in the foreground from a
shallower pit called the Fairy Ring, in the background.&#34;/&gt;
&lt;figcaption&gt;A thin line between the Chalk Pit and the Fairy Ring&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;From here I headed SSE down Landport Bottom to join Nevill Road. Almost exactly
760 years ago, the armies of Henry III and Simon de Montfort had clashed here,
at the Battle of Lewes.&lt;/p&gt;
&lt;p&gt;The next section took me along the Brighton Road south, where I crossed the railway
and A27 by turning left alongside Hamsey Riding School. It was still only 6.15 a.m.
as I met the horses in the field below Jugg’s Road and looked up to see the sky was much
blacker here. I sheltered on the path for about 10 minutes while the darkest of the
clouds dumped some rain and whooshed past.&lt;/p&gt;
&lt;p&gt;As I came out to Ashcombe Windmill, below Kingston Ridge, I took a closer look at
the sky. It was clear that more rain was coming, but the band that had just passed
over me was not being followed; instead, the next darker clouds heading eastwards
were going to pass north of me and probably dump over at Blackcap. Oh frabjous day!&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;20240527-ashcombe-lambs.jpg&#34; alt=&#34;Lambs running towards the camera, with
the line of Kingston Ridge in the background.&#34;/&gt;
&lt;figcaption&gt;I saw lambs at Ashcombe Windmill, so I sat down to entice them over&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;As I mounted Kingston Ridge, I looked south towards the sea and it was evident that
the cliffs were now bathed in sunshine. My legs felt good, and I had been running at
an easy pace, with the photo stops and saying hello to horses, so I turned on the
Ridge and started heading towards Rodmell. The trail slopes slightly downwards along
field boundaries until you come out at the top of Mill Hill at Rodmell. From there,
a slight scramble down towards South Farm, where they have pumpkins later in the year,
and then a gentle ascent into Telscombe village. I always end up walking parts of Gorham’s
Lane as I come out of the village, so I found myself crossing Telscombe Tye at about
7.30 a.m. There was cloud cover overhead, but all very bright and high.&lt;/p&gt;
&lt;p&gt;At Saltdean I dropped down onto the Undercliff. I was feeling quite weary by this
point, so I stopped at Molly’s for a cup of tea and a Mars bar. I jogged along
along towards the Marina, fully intending to head up Sheepcote Valley to home,
but then it dawned on me that that would leave me just short of a full marathon
distance. Now, that would be a shame, wouldn’t it? So I trotted out along the sea
wall at the Marina and headed right on the Undercliff, back towards Rottingdean.
From there, it was a more gentle ascent to Beacon Hill and back through Ovingdean
to home.&lt;/p&gt;
&lt;p&gt;In total, I had been out for 5¼ hours, moving for an hour less than that time (um, that
cup of tea took a while!) and climbing 645 m in the process. I could barely believe
that the only decisions involved in running a marathon were ‘am I feeling ok so far?’ and
‘how do I avoid the next wave of clouds?’&lt;/p&gt;
&lt;p&gt;I soaked in a bath with Epson salts when I got in and my legs felt fine even the next day.
The strangest effect I had from it was that my forearms were intensely achey a couple
of days afterwards. As I hadn’t run on them, I assume it was a dehydration effect, but I
couldn’t explain it.&lt;/p&gt;
&lt;p&gt;And &lt;em&gt;that’s&lt;/em&gt; how I ended up running an accidental marathon!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Wish It Was Windy</title>
      <link>https://hisdeedsaredust.com/posts/2024/wish-it-was-windy/</link>
      <pubDate>Tue, 28 May 2024 09:47:00 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/wish-it-was-windy/</guid>
      <description>&lt;p&gt;I believe that water is for sailing on; not drinking.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; If the water in question
is the Solent, it&amp;rsquo;s not even for swimming in. I should know, I&amp;rsquo;ve tried it on a
busy Saturday afternoon.&lt;/p&gt;
&lt;p&gt;Our party that year was split across two yachts, and we decided to go for a race
in the Solent. We agreed the route around some buoys north of Cowes and set sail
on a sunny Saturday. Slowly. &lt;em&gt;Really&lt;/em&gt; slowly. I was helming one of the yachts and,
looking over the stern, I was convinced the wake was heading towards the front of the
boat. I casually mentioned to the crew that we were going slowly enough for me to
swim from the back to the front of the boat.&lt;/p&gt;
&lt;p&gt;I was soon to wish that there had been enough wind to carry my words away. Dave
took a quick look over the side and bet me I&amp;rsquo;d never make it.&lt;/p&gt;
&lt;p&gt;Before you could say &amp;ldquo;jellyfish ahoy,&amp;rdquo; I&amp;rsquo;d stripped to my smalls and slipped
over the side. Did I say slipped? I meant dive-bombed. By the time I&amp;rsquo;d surfaced,
everyone on the yacht thought I&amp;rsquo;d spotted some pearls on the bottom. The yacht
was five metres from me and my frantically inelegant front crawl couldn&amp;rsquo;t do
anything to narrow the gap.&lt;/p&gt;
&lt;p&gt;The yacht sailed on. Someone yelled that they&amp;rsquo;d circle back for me, but
meanwhile I was just a small head bobbing in the busiest shipping lane in
southern England. I could hear a humming sound &amp;hellip; a &lt;em&gt;menacing&lt;/em&gt; humming. As the large
motorboat zoomed towards me, I found myself hoping that the pilot had been
drinking enough to believe that there was a small crowd of us in the water.&lt;/p&gt;
&lt;p&gt;Fortunately, they saw me soon enough to slow down. What&amp;rsquo;s more, they&amp;rsquo;d seen that
my yacht was already circling back for me, so when the skipper asked if I needed
any assistance, I decided that the least embarrassing way out was to pretend
that the entire episode had been a planned &amp;lsquo;man overboard&amp;rsquo; drill. Hoping that my
face wouldn&amp;rsquo;t give the game away, I sent him on his way with the line &amp;ldquo;Thanks,
but they&amp;rsquo;ve got to learn some time!&amp;rdquo;&lt;/p&gt;
&lt;!-- Originally published on celigne.co.uk in 1998 --&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I originally wrote this in 1998. My attitude to drinking water has
improved since then!&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>The Appearance of Seaworthiness</title>
      <link>https://hisdeedsaredust.com/posts/2024/seaworthiness/</link>
      <pubDate>Sat, 20 Apr 2024 13:45:17 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/seaworthiness/</guid>
      <description>&lt;p&gt;Years ago, I used to deliver yachts during the summer holidays. It was a great
way to get a cheap holiday and explore a new place every night. We would sail
the yacht &lt;em&gt;Sea Tramp&lt;/em&gt; from its home on the Hamble to wherever most people wanted
to charter it from over the summer, which could be Cornwall, the Channel Islands
or Brittany, for example.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Sea Tramp&lt;/em&gt; was a 50′ ketch made of 25 tonnes of ferro-concrete. &amp;ldquo;A concrete
boat?” people exclaim, but concrete is pretty impervious to corrosion. The owner
had intended to take it around the world on his retirement but, until then, he
would tweak the equipment every year. We would get on board to find that the
anchor had been replaced, with chain of a pitch that didn&amp;rsquo;t &lt;em&gt;quite&lt;/em&gt; fit the
winch, so it would slip, or a new hole had been punched in the superstructure to
allow cabling for the latest gadget.&lt;/p&gt;
&lt;p&gt;Our aim this time was to deliver the yacht to its summer berth at Falmouth.  We
set out from the Solent, rounded Portland Bill and were looking to cross Lyme
Bay, some 90-odd nautical miles, overnight.&lt;/p&gt;
&lt;p&gt;During the night passage, we were occupied with fixing an engine problem when we
discovered that the bilges of the boat were damper than they should be. A split
water tank (repurposed from the owner&amp;rsquo;s farm) had dumped its entire contents.
Turning back would involve facing the turbulent waters of Portland Race again,
so the skipper decided we would carry on towards Brixham.&lt;/p&gt;
&lt;p&gt;We reached Brixham at 3 a.m. and anchored off, because threading our way
amongst tiny plastic boats in a waterlogged concrete battering ram with the aid
of torches and bleary eyes didn&amp;rsquo;t seem like a smart move.&lt;/p&gt;
&lt;p&gt;The next morning, we had a lot of work to do. We had to scout out the harbour to
see where we could moor in order to pick up some water. We inflated both
dinghies, fitted them with outboards, and Jim and I started making trips into
the harbour.&lt;/p&gt;
&lt;p&gt;We had both arrived back on board and were grabbing a coffee when we saw a large
orange semi-rigid inflatable approaching at speed from outside the harbour. As
it came alongside we could see it contained four men and a dog. Two men and the
dog jumped on board and introduced themselves as Customs &amp;amp; Excise officers.  We
answered their questions about our movements and they seemed satisfied and ready
to leave when the officer in charge asked if they could run their dog around
below, as he&amp;rsquo;d not been off the boat all morning. &lt;em&gt;All morning?&lt;/em&gt; It was only
9.30!&lt;/p&gt;
&lt;p&gt;Nevertheless, the only correct answer to this is “Yes,” as a “no” leads to them
taking your boat alongside the quay and dumping its contents on the
quayside, if they wish.&lt;/p&gt;
&lt;p&gt;As the dog had a happy, waggy-tail, sniff and rummage, we enquired of the
officer why they were interested. It turns out that anchoring off a port in the
middle of the night and making runs ashore in fast outboards at first light is
exactly the behaviour of drug smugglers, and our large ketch made, in his words,
&amp;ldquo;a good sea-going boat.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;The customs men were left quite perplexed as, at the mention of seaworthiness,
we all recalled the spluttering engine and panicked bailing of the previous
night and collapsed with laughter.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Z80 Quality Indicators</title>
      <link>https://hisdeedsaredust.com/posts/2024/z80-quality-indicators/</link>
      <pubDate>Tue, 30 Jan 2024 21:03:24 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2024/z80-quality-indicators/</guid>
      <description>&lt;p&gt;I&amp;rsquo;m 78% through my annotated disassembly of Tehkan&amp;rsquo;s arcade game Star Force and
I was just wondering what quality indicators other people use to rate Z80 code
that they read? What makes you nod in satisfaction, or sneer in disapproval?&lt;/p&gt;
&lt;p&gt;Positive quality indicators I can see in this code:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Excellent use of IX and IY to index structures, which makes it really easy to
comment, by adding equates for structure offsets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Self-initialising structures, where the assumption is that they&amp;rsquo;ll receive a
pointer to a block of zeroed memory, and the code uses the first byte as a flag
as to whether it is initialised yet. This brings initialisation and usage code
right together in the listing, again easing understanding of code that
manipulates maps, enemy waves and sprite structures.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Great use of jump tables, which enables a lot of common code to be used, while
adding hooks for exceptions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nice use of flags for interrupt service routines, to limit the amount of data
transfers that needs to be done every frame (OK, this one is specific to game
programming.)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Negative quality indicators I can see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;cp 0&lt;/code&gt; instead of &lt;code&gt;or a&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;BCD arithmetic in some places, but hacky workarounds in others: why would you
do this when &lt;code&gt;daa&lt;/code&gt; is 4 T-states?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Multiple &lt;code&gt;ldir&lt;/code&gt;s with address shuffling (and a bug when they lost count), when
&lt;code&gt;lddr&lt;/code&gt; should have been used.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;mask and shift, instead of shift and mask (which would&amp;rsquo;ve enabled single byte
8080-compatible rotates instead of Z80 extensions)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of this is reminding me why I loved Z80 coding, 40 years ago!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>A Map Reading Session</title>
      <link>https://hisdeedsaredust.com/posts/2023/map-reading/</link>
      <pubDate>Wed, 15 Nov 2023 21:32:52 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2023/map-reading/</guid>
      <description>&lt;p&gt;I had offered to teach an evening of map reading with the local training ship of
the Nautical Training Corps. This had come about after leading them on an
evening walk from Woodingdean to Rottingdean windmill during the summer, with
them carrying maps, and me explaining what we were seeing along the way, such as
a local trig point and tumuli and the windmill itself, on Beacon Hill.&lt;/p&gt;
&lt;p&gt;The cadets range from 8 to 15 years old, so I was aware that some children might
not have looked at map before, but there would also be some who could identify
features such as contour lines. We split into two groups, with the
juniors (8 to 11 years old) first, and then the seniors.&lt;/p&gt;
&lt;p&gt;I started off with an A3 map of the counties (“administrative boundaries”) of
Great Britain, printed off from the &lt;a href=&#34;https://www.ordnancesurvey.co.uk/education/teacher-resources&#34;&gt;Ordnance Survey
website&lt;/a&gt;. I was curious to
see how many cadets could tell me where Brighton was. If we rule out the comedy
guesses around Inverness and Aberdeen, there were still a range of dots from
Kent to Dorset. I was relieved to see that all but one of the seniors placed
dots on the south coast at least.&lt;/p&gt;
&lt;figure&gt;
&lt;img src=&#34;where-is-brighton.png&#34;/&gt;
&lt;figcaption&gt;Answers to the question: ‘Where is Brighton?’&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;I then got out the Explorer map and we took a look at the features. I had
downloaded the flash cards from the OS website and laminated them, so we went
through a few of them and, for comedy value, looked at the multiple cycling
features, which I glossed as bike hire, cycle route, mountain bike trail and
broken bike (craft centre). Nobody knew what the craft centre symbol was
supposed to be. When I showed them a photo of an old woman with a spinning
wheel, two of the 20 cadets managed to identify it, which surprised me, given
that no one has used one for nearly 200 years.&lt;/p&gt;
&lt;figure style=&#34;padding:1em;display:grid;grid-template-columns:1fr 1fr;max-width:800px&#34;&gt;
&lt;img src=&#34;craft-centre.svg&#34; style=&#34;transform:rotate(-15deg);height:100%&#34;/&gt;
&lt;img src=&#34;Elderlyspinnera.jpg&#34; style=&#34;transform:rotate(15deg)&#34;/&gt;
&lt;/figure&gt;
&lt;p&gt;I showed them how to produce a grid reference for a place to the nearest hundred
metres, using the 1km map squares and some Romers on tracing paper that I&amp;rsquo;d
hastily printed, and then the cadets were split into groups of 2 or 3, with
their own map, and they attempted to answer questions about points on the map
that I&amp;rsquo;d identified with grid references.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;quiz-answers.png&#34; alt=&#34;Quiz answers&#34;&gt;&lt;/p&gt;
&lt;p&gt;All of the cadets were managing to find the locations on the map and enjoyed
using the legend on the map to identify other features as they came across them.
Each of the sessions lasted about 40 minutes.&lt;/p&gt;
&lt;p&gt;I was pleased how this session worked. Although I had lots of ideas and prepared
facts, it was useful to restrict the session to small chunks of discovery,
discussion, new skill and practice. I had spent a lot of time exploring the map
myself, before deciding on the quiz questions and that paid off too, as I could
answer a lot of questions about discovered features on the fly.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>External USB Drive</title>
      <link>https://hisdeedsaredust.com/posts/2023/external-usb-drive/</link>
      <pubDate>Mon, 06 Nov 2023 16:05:36 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2023/external-usb-drive/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been using &lt;code&gt;rsync&lt;/code&gt; to maintain a copy of a website on an external hard drive,
which I bought and just started as is, but there are a few problems that I&amp;rsquo;ve
been looking to correct.&lt;/p&gt;
&lt;p&gt;Firstly, external USB drives come pre-formatted for Windows, with an NTFS
filesystem. This works just fine on Linux, with the drive being mounted with the
&lt;code&gt;ntfs3&lt;/code&gt; driver. The nice things about this is that I could, if required, just plug
it into a Windows machine and copy files straight off.&lt;/p&gt;
&lt;p&gt;However, the website that I&amp;rsquo;m copying has a few files and directories with names
that conflict with NTFS naming rules. At one point in the hierarchy, there is a
directory called AUX, and there are also several files with illegal punctuation
in their names. So far, I&amp;rsquo;ve come across &amp;lsquo;*&amp;rsquo; (asterisk) and &amp;lsquo;:&amp;rsquo; (colon).&lt;/p&gt;
&lt;p&gt;To my surprise, &lt;code&gt;rsync&lt;/code&gt; doesn&amp;rsquo;t appear to offer any way of ensuring that names are
representable in the target filesystem, which means that I get a cryptic error
number (22, I think), and I simply have to leave that file or directory out of
the copy.&lt;/p&gt;
&lt;p&gt;So, I resolved to format another external hard drive with a Linux filesystem and
use that for my mirroring. I was slightly concerned that using drives through a
USB interface might complicate low-level operations like formatting, and leave
me with a dead drive, but I was pleasantly surprised.&lt;/p&gt;
&lt;p&gt;I bought a WD Elements 4TB drive. The box claims compatibility with Windows
and MAC OS too, if you reformat it. Linux is not mentioned, even though it works
out of the box. I bought WD just to test another make; all my other external
drives are by Seagate.&lt;/p&gt;
&lt;p&gt;I plugged it into the USB port, mounted and unmounted it, just to see that it
was visible.&lt;/p&gt;
&lt;p&gt;I then fired up GParted, the GNOME Partition Editor and, sure enough, it reports
that &lt;code&gt;/dev/sdb1&lt;/code&gt; has a single NTFS partition. I selected that partition and
reformatted to ext4, changed the volume label to &amp;ldquo;mirror&amp;rdquo; and unticked the
&amp;ldquo;msftdata&amp;rdquo; flag.&lt;/p&gt;
&lt;p&gt;When those changes were committed, I remounted the drive, created a top-level
directory which I chown&amp;rsquo;d to my user, and I&amp;rsquo;m all ready to go.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Book Trading Cards</title>
      <link>https://hisdeedsaredust.com/posts/2023/book-trading-cards/</link>
      <pubDate>Sat, 25 Feb 2023 17:31:48 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2023/book-trading-cards/</guid>
      <description>&lt;p&gt;With &lt;a href=&#34;https://www.worldbookday.com/&#34;&gt;World Book Day&lt;/a&gt; nearly upon us, I was pondering
ways in which children could be engaged with reading books.&lt;/p&gt;
&lt;p&gt;I know how children enjoy trading cards like Pokémon, so could we encourage them along more wholesome lines,
that don&amp;rsquo;t involve rarity and competition, and facilitate a discussion about what books
they&amp;rsquo;ve enjoyed?&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve mocked up the front side of some trading cards:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;book-trading-cards-cover.jpg&#34; alt=&#34;Trading cards&#34;&gt;&lt;/p&gt;
&lt;p&gt;I have yet to produce a design for the back, but I think the contents would include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Title and series of the book,&lt;/li&gt;
&lt;li&gt;Author,&lt;/li&gt;
&lt;li&gt;Genre,&lt;/li&gt;
&lt;li&gt;A small synopsis or teaser, and&lt;/li&gt;
&lt;li&gt;Five open stars at the bottom, which the children could fill in with a marker pen.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The covers themselves are normally so attractive that the front doesn&amp;rsquo;t need any extra
adornment, apart from an appropriately-coloured border.&lt;/p&gt;
&lt;h2 id=&#34;producing-the-cards&#34;&gt;Producing the cards &lt;a href=&#34;#producing-the-cards&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;In case anyone fancies having a go at making some, here are some notes on what I did.&lt;/p&gt;
&lt;p&gt;I gathered the book cover images from Amazon. To my surprise, Amazon make this very easy.
When you pick a particular book, beneath the cover image, which is often a link to their
&amp;ldquo;Look inside&amp;rdquo; page, the cover image is directly available with a &amp;ldquo;See this image&amp;rdquo; link,
and the image is large enough that it can be used to make a quality print on an inkjet
at trading card size.&lt;/p&gt;
&lt;p&gt;A standard trading card is 64mm x 89mm (2½&amp;quot; × 3½&amp;quot;). Because the proportions of the book cover won&amp;rsquo;t necessarily be the same as
those of a trading card, they need a border. My first experiments used a rather arbitrarily-chosen
dark blue, but it was clear that it was a really poor match for most books.&lt;/p&gt;
&lt;p&gt;So, I&amp;rsquo;ve used &lt;a href=&#34;http://graphicsmagick.org&#34;&gt;GraphicsMagick&lt;/a&gt; to find a reasonable match from the colours used for each
cover. There are often three or four colours which would work for the border, so I&amp;rsquo;ve
picked one by experimenting with the histogram produced by GM&amp;rsquo;s &amp;ldquo;segment&amp;rdquo; function:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;gm convert book-cover.jpg -segment 1.0x1.5 -verbose tmp.png
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will cluster colours in the image and tell you what the colours are with
an RGB triple in hexadecimal, and a measure of how many pixels were in each cluster.
The segment parameters here work for a lot of books, but occasionally I&amp;rsquo;ve had to
reduce them to tiny numbers when the images are more photographic, at which point
you might find it easier to pull the cover into a paint program and use a pipette
tool to pick a colour you like.&lt;/p&gt;
&lt;p&gt;As far as I know, you can&amp;rsquo;t direct &amp;ldquo;gm convert&amp;rdquo; to simply not produce an image as output,
and if you direct the output to stdout and pipe &lt;em&gt;that&lt;/em&gt; into /dev/null, you&amp;rsquo;ll lose the
histogram.&lt;/p&gt;
&lt;p&gt;I used GraphicsMagick to composite nine trading cards on an image sized for A4 paper
at 300 dpi (i.e. 2480 × 3508 pixels.) There is at least a 5 mm border all round and
roughly 2 mm between each one, which is plenty for someone with scissors and a steady hand.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve printed my cards on 170 g/m² matte photo paper and then laminated them with
a glossy sleeve.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;d love to hear your thoughts on this.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>DEC Manual Covers</title>
      <link>https://hisdeedsaredust.com/posts/2023/dec-manual-covers/</link>
      <pubDate>Sat, 11 Feb 2023 23:20:58 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2023/dec-manual-covers/</guid>
      <description>&lt;p&gt;In the late 1970s, Digital Equipment Corporation produced a set of manuals
for their terminal and printer equipment that I think are unmistakably of
their decade, with simple line designs in browns and oranges. I&amp;rsquo;ve always
loved the simplicity of these designs, so during the first pandemic lockdown,
I decided to spend some time with Inkscape, recreating the covers, without
the scratches, fading and curling edges that my physical manuals had
accumulated over the past 40 years.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve come across six different designs so far, and drawn five of them. The
four that are most alike are now on my office wall as a montage, which you
are welcome to print yourself:&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;vt-montage.png&#34;&gt;&lt;img src=&#34;vt-montage-cover.png&#34; alt=&#34;Cover montage&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The covers used for this design are cropped from these full ones:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;vt100-ug-cover-small.png&#34; alt=&#34;VT100 User Guide&#34;&gt;
&lt;img src=&#34;la120-ug-cover-small.png&#34; alt=&#34;LA120 User Guide&#34;&gt;
&lt;img src=&#34;vt103-ug-cover-small.png&#34; alt=&#34;VT103 LSI-11 Video Terminal User&amp;rsquo;s Guide&#34;&gt;
&lt;img src=&#34;lp100-in-cover-small.png&#34; alt=&#34;Letterprinter 100 Installation Guide&#34;&gt;&lt;/p&gt;
&lt;p&gt;During the next decade, the covers either had no pictures on them at all,
or had simple line drawings, which is really disappointing!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Manx da capo</title>
      <link>https://hisdeedsaredust.com/posts/2022/manx-dc/</link>
      <pubDate>Tue, 27 Dec 2022 13:40:04 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2022/manx-dc/</guid>
      <description>&lt;p&gt;Over lockdown, I was revisiting some old projects and taking the opportunity to see if they would benefit from a fresh pair of eyes
and new learning over the last decade.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://vt100.net/manx/&#34;&gt;Manx&lt;/a&gt; was one such; a catalogue of old computer manuals that I created 20 years ago and worked on until
2009, at which point some major changes in my life meant I could no longer sustain the effort to maintain what had always been a
single person task. Although I&amp;rsquo;d had plans to allow multiple editors to add content, the tooling was always the least exciting part
of the project and only two of us had ever maintained it.&lt;/p&gt;
&lt;p&gt;The Perl source for the application and the database had been dumped and distributed, and I mostly forgot about it. It was
rewritten in PHP by someone else and placed online.&lt;/p&gt;
&lt;p&gt;Over a decade on and, I had started work on a new, large art-history database (a catalogue raisonné for the artist &lt;a href=&#34;//acmichael.org&#34;&gt;A. C.
Michael&lt;/a&gt;)
and had learned a lot about improved database queries, application structure, testing and templating of web applications as well as,
crucially, backend tooling. So I took a look at upgrading Manx, to satisfy my own curiosity.&lt;/p&gt;
&lt;p&gt;This is still a work in progress and I&amp;rsquo;ll be writing more about this over the coming months. The significant changes so far, not all
user-visible, are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Citations have been added, so that publications mentioned by related documents or catalogues are explicitly marked. This should
answer questions about why a given document is in the catalogue at all.&lt;/li&gt;
&lt;li&gt;Some documents incorporate others. For example, print sets are frequently assemblies of lower level parts. These are now
explicit in the database.&lt;/li&gt;
&lt;li&gt;Pages are generated using a template engine. Apart from the benefit of separating functionality from presentation, the discipline
of retrieving all the relevant information from the database before &amp;ldquo;pouring&amp;rdquo; it into a template for display allows the
information to also be made available in other forms. I can now use the same backend for powering the command line tools I use for
updating the database by sending JSON extracts as well as HTML.&lt;/li&gt;
&lt;li&gt;The back-end spidering software now provides a much faster way of updating websites that contain scanned documents.&lt;/li&gt;
&lt;li&gt;Different versions of documents can now be grouped in the database to provide a clearer view of supersessions.&lt;/li&gt;
&lt;li&gt;The number of documents in the database has climbed by 13000 to over 35000, with another 7000 references to online scans.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I have spoken to the person who took on the job of maintenance of the database many years ago. I haven&amp;rsquo;t yet worked out how we can
collaborate with the new features but it is not completely off my radar.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Hugo Codeberg Logo</title>
      <link>https://hisdeedsaredust.com/posts/2022/hugo-codeberg-logo/</link>
      <pubDate>Thu, 22 Dec 2022 00:00:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2022/hugo-codeberg-logo/</guid>
      <description>&lt;p&gt;Notes on adding the &lt;a href=&#34;//codeberg.org&#34;&gt;Codeberg&lt;/a&gt; link to my site, built with &lt;a href=&#34;//gohugo.io&#34;&gt;Hugo&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Ananke theme doesn&amp;rsquo;t (yet) include Codeberg, so I downloaded the &lt;a href=&#34;//codeberg.org/Codeberg/Design/src/branch/main/logo/icon/svg/codeberg-logo_icon_white.svg&#34;&gt;black and white Codeberg
logo&lt;/a&gt; and placed this in &lt;code&gt;themes/&lt;/code&gt;​&lt;code&gt;ananke/&lt;/code&gt;​&lt;code&gt;assets/&lt;/code&gt;​&lt;code&gt;ananke/&lt;/code&gt;​&lt;code&gt;socials/&lt;/code&gt;​&lt;code&gt;codeberg.svg&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There are two apparent problems with this logo though:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Default logo is whiter than other social icons&lt;/li&gt;
&lt;li&gt;Link says &amp;ldquo;Codeberg logo&amp;rdquo; on hover&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I can fix (2) by removing &amp;lt;title&amp;gt; element from svg. But this doesn&amp;rsquo;t fix (1).&lt;/p&gt;
&lt;p&gt;Googling &amp;ldquo;codeberg logo for font awesome&amp;rdquo; leads me to &lt;a href=&#34;https://codeberg.org/codeberg/design/issues/13&#34;&gt;Codeberg Design issue 13&lt;/a&gt;
where &amp;ldquo;mray&amp;rdquo; (Robert Martinez) has produced a solely black and white version. Copied this to same
place and removed &amp;lt;title&amp;gt; element again.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://codeberg.org/Codeberg/Design&#34;&gt;https://codeberg.org/Codeberg/Design&lt;/a&gt; says that &amp;ldquo;Codeberg blue&amp;rdquo; is #2185d0, so I tried this as the hover colour but decided
that it didn&amp;rsquo;t really fit, so I ended up using white.&lt;/p&gt;
&lt;p&gt;The configuration file YAML ends up as:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;params:
  ananke_socials:
  - name: codeberg
    url: https:/codeberg.org/hisdeedsaredust
    label: Codeberg
    color: &amp;#34;#ffffff&amp;#34;
&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    
    <item>
      <title>VT52 Special Graphics</title>
      <link>https://hisdeedsaredust.com/posts/2022/vt52-special-graphics/</link>
      <pubDate>Mon, 25 Jul 2022 00:00:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2022/vt52-special-graphics/</guid>
      <description>&lt;p&gt;I was upgrading the images of the VT100 Special Graphics character set
used in my online transcripts of the manuals today and I wondered about
the VT52 equivalents, which are not shown graphically in any of the manuals
that I could find; only the descriptions exist.&lt;/p&gt;
&lt;p&gt;However, Fritz Mueller dumped the &lt;a href=&#34;https://github.com/fritzm/vt52&#34;&gt;VT52 character generator ROM&lt;/a&gt;
some years ago, so I thought I&amp;rsquo;d take a quick look.&lt;/p&gt;
&lt;p&gt;In short, the VT52 Special Graphics look like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;vt52-special-cover.svg&#34; alt=&#34;VT52 Special Graphics&#34;&gt;&lt;/p&gt;
&lt;p&gt;This is a lazy interpretation of the ROM, using a very similar script to
that which I use to process the VT100 glyphs, so I haven&amp;rsquo;t included the
extra scan lines that appear between text lines on the VT52, which is
either 2 or 3, depending on whether you&amp;rsquo;re running at 60 Hz or 50 Hz, respectively.
I also haven&amp;rsquo;t checked the aspect ratio of the characters; the Maintenance Manual provides
dimensions for the complete raster which I could use.&lt;/p&gt;
&lt;p&gt;Two things strike me as odd about this picture:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The second glyph is marked as &amp;ldquo;reserved&amp;rdquo; in all the manuals I&amp;rsquo;ve seen,
so I have no idea what &amp;ldquo;cd&amp;rdquo; is supposed to represent, and whether the same glyph
is present in all models of the VT52, and&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&#34;https://vt100.net/docs/vt52-mm/&#34;&gt;VT52 Maintenance Manual&lt;/a&gt; claims that only 7 scanlines are retrieved from
the character generator ROM, which is clearly incorrect, as there is a glyph
containing a horizontal line for each of the 8 scanlines that appear on the
display.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;</description>
    </item>
    
    <item>
      <title>OA&amp;F: Dating books by address</title>
      <link>https://hisdeedsaredust.com/posts/2022/oaf-addresses/</link>
      <pubDate>Sun, 08 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2022/oaf-addresses/</guid>
      <description>&lt;p&gt;I would like to determine exactly when the books with floral covers were
produced by the Edinburgh publishers &lt;a href=&#34;https://hisdeedsaredust.com/posts/2022/oaf-introduction/&#34;&gt;Oliphant, Anderson &amp;amp; Ferrier&lt;/a&gt;
between about 1880 and 1900.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m finding that there are very few dates on title pages or the reverse of the title and no
printer&amp;rsquo;s codes at the back. Many of these books were already old at the time of their first printing
with floral covers and had many editions in later years, so I need to find another way of
dating them.&lt;/p&gt;
&lt;p&gt;Luckily, there are many other clues in the books themselves. For a start, the name of
the publisher changed over time. Every single one of these books has the name &amp;ldquo;Oliphant, Anderson &amp;amp; Ferrier&amp;rdquo;
on the title page, and we know that the firm adopted that name after September 1880,
when the Elgin bookseller John Scott Ferrier joined the firm. Until the end of that
year, title pages appended &amp;ldquo;late W. Oliphant &amp;amp; Co.&amp;rdquo; to mark the connection with the previous identity.&lt;/p&gt;
&lt;p&gt;In front of me I have this book:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;oaf_38_cover.jpg&#34; alt=&#34;Old and New Home cover&#34;&gt;
&lt;img src=&#34;oaf_38_title.png&#34; alt=&#34;Old and New Home title&#34;&gt;&lt;/p&gt;
&lt;p&gt;Here we can see another hint: the address of the publisher is given as Edinburgh and 24 Old Bailey, London.
As noted above, the book itself is no help; it had been first published in Toronto, Canada in 1870 by
James Campbell and Son, and the exact same book plates were used by William Oliphant for the first British
edition in 1871.&lt;/p&gt;
&lt;p&gt;So I had a dig through the &lt;a href=&#34;https://www.britishnewspaperarchive.co.uk&#34;&gt;British Newspaper Archive&lt;/a&gt; to
find out when OA&amp;amp;F had a presence in London. Searching by addresses often works surprisingly well on
the BNA, and I soon had a wealth of business names to work with. I could also correlate these with
OA&amp;amp;F adverts appearing in the papers, so I could see over what period they were using that address.&lt;/p&gt;
&lt;p&gt;At first, I couldn&amp;rsquo;t tell how big the building at 24 Old Bailey might be, and I assumed that there
could be a shop-front as well as offices above. I thought it was unlikely that a bookshop itself
would be run by OA&amp;amp;F, but perhaps they had gone into partnership with a company who worked in the
offices above.&lt;/p&gt;
&lt;p&gt;The earliest OA&amp;amp;F advert that I could find with the Old Bailey address was from February 1889.
Looking at other occurrences of that address around this time, the name Alfred Boot &amp;amp; Son kept
coming up, and they were a firm of printers.&lt;/p&gt;
&lt;p&gt;Drilling backwards, Alfred Boot had certainly been there from the 1870s, until he was adjudged
bankrupt in 1880. Boot himself died in 1884 and the shop had passed to a furniture business called Hankins &amp;amp; Co.,
but it is possible that Boot&amp;rsquo;s family had retained an interest in the building, because in 1887 we find
Alfred Boot &amp;amp; Sons on the premises, and then scattered mentions of the same business (with another partner
called Carpenter, at times) until 1901, when the leasehold went elsewhere.&lt;/p&gt;
&lt;p&gt;This looks promising. If Boot&amp;rsquo;s was a printer and distributor, they&amp;rsquo;d be ideal partners for the Edinburgh
firm. I was looking for confirmation in any publishing news when I came across two bits of
counter evidence for the partnership. One, that OA&amp;amp;F adverts started showing a new address in the City of
21 Paternoster Square, from May 1896, and two, that 24 Old Bailey had been completely gutted by fire in 1893.&lt;/p&gt;
&lt;p&gt;At 10pm on Wednesday 15 November 1893, a fire had broken out and run rampant through the Old Bailey,
Farringdon Street and Fleet Lane. The &lt;em&gt;Morning Post&lt;/em&gt;&amp;rsquo;s report on 17 November names Alfred Boot and Sons
among the occupants of the six storey building at 24 Old Bailey and reported that they had been nearly
burnt out. This report also named many other printers and publishers in that area, including Marlborough
and Co., Blackie and Sons and the giant Cassell. Boot and Sons made plans to move out to Paternoster Row.&lt;/p&gt;
&lt;p&gt;So, we have Boot and Son moving out to Paternoster &lt;em&gt;Row&lt;/em&gt;, but OA&amp;amp;F didn&amp;rsquo;t shift their address to Paternoster
&lt;em&gt;Square&lt;/em&gt; until 1896. So their partner in that building wasn&amp;rsquo;t Boot and Son.&lt;/p&gt;
&lt;p&gt;The mystery was solved by a small announcement in the &lt;em&gt;Morning Post&lt;/em&gt; again, on 6 April 1896:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mr J. F. Spriggs, of 23, Old Bailey, has removed his publishing and advertising agency
to larger premises at 21, Paternoster-square.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Having got to the name &amp;ldquo;Spriggs,&amp;rdquo; the rest of the confirmation came quickly enough.&lt;/p&gt;
&lt;p&gt;James Fletcher Spriggs was born in America in 1844 but became a naturalised British subject.
He had been employed by the publishers Hodder and Stoughton in the 1870s before striking out on his own.
The &lt;em&gt;Airdrie &amp;amp; Coatbridge Advertiser&lt;/em&gt; on 22 December 1888 announces the commencement of his partnership
with OA&amp;amp;F:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Messrs. Oliphant, Anderson &amp;amp; Ferrier, of Edinburgh, whose business has developed
a good deal of late years, intend to open a London branch at the Old Bailey.
Mr. J. F. Spriggs will be their London representative.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This ties in beautifully with OA&amp;amp;F&amp;rsquo;s first advert mentioning the Old Bailey, in February 1889.&lt;/p&gt;
&lt;p&gt;This business relationship was cemented with a personal one in April 1891 when Spriggs married
Mary Tait Anderson, the daughter of Robert Anderson, &lt;em&gt;the&lt;/em&gt; Anderson of Oliphant, Anderson &amp;amp; Ferrier.&lt;/p&gt;
&lt;p&gt;Spriggs died in 1906, with &lt;em&gt;The Scotsman&lt;/em&gt; having, in their Wills section, this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Mr James Fletcher Spriggs, of Paternoster Square, London, representative in London
of Messrs. Oliphant, Anderson, &amp;amp; Ferrier, of Edinburgh, publishers, and of the Fleming
H. Revell Company of New York and Chicago &amp;hellip; &amp;hellip; £5734.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, a very productive evening&amp;rsquo;s work not only leads to the conclusion that books with the Old Bailey
address would have been produced between the start of 1889 and mid 1896, but exactly why the
address was in use.&lt;/p&gt;
&lt;h2 id=&#34;postscript&#34;&gt;Postscript &lt;a href=&#34;#postscript&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I had to stop myself going off in a completely different direction when I encountered
the notice of a post-fire auction of printer&amp;rsquo;s equipment. I do want to know more about
the technology used for these covers but we&amp;rsquo;ve already established that Alfred Boot was
not the printers in use by OA&amp;amp;F. Nevertheless, I couldn&amp;rsquo;t resist this, from the &lt;em&gt;London
Evening Standard&lt;/em&gt; of 27 December 1893 (I have squished the Over-Capitalisation and EMPHASIS in
the original):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Sale By Auction&lt;/strong&gt; No. 24, Old Bailey.—Salvage from the recent fire, slightly
damaged by water. Messrs. James Lewis and Co. will sell by auction, on the premises
of Messrs. Boot and Son, and Carpenter, as above, on Wednesday, Jan. 3, 1894, at
twelve, the printers&amp;rsquo; plant and machinery, including double demy litho machine by
Newsome&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, Wood, and Co., quad crown perfecting machine by Hopkinson and Cope, four
Wharfdale machines, two croppers, hydraulic press, cutting machine, 20 tons of type,
wood letter, furniture, &amp;amp;c., fixtures, fittings, &amp;amp;c., seven tons litho stones,
and a quantity of effects appertaining to the trade.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Twenty tons&lt;/em&gt; of type!&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Newsome is a typo. for George &lt;em&gt;Newsum&lt;/em&gt; (1838‒1930), a printing-machine
maker from Leeds.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>A new project: Oliphant, Anderson &amp; Ferrier</title>
      <link>https://hisdeedsaredust.com/posts/2022/oaf-introduction/</link>
      <pubDate>Sat, 07 May 2022 00:00:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2022/oaf-introduction/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been acquiring books that were produced by the Edinburgh publishers Oliphant,
Anderson &amp;amp; Ferrier between about 1880 and 1900. Specifically, I&amp;rsquo;ve been looking at
their floral covers, because something very interesting seems to have happened around
about 1890.&lt;/p&gt;
&lt;p&gt;Until that decade, books with cloth covers were fairly plain. The cloth itself was
normally blocked (stamped) in black or gold and the only colour in evidence, other
than the cloth itself, might be a picture, printed on paper and pasted to the cover.&lt;/p&gt;
&lt;p&gt;Then some change in technology occurred, and full colour printing on the cloth became
possible. How did Oliphant, Anderson &amp;amp; Ferrier respond to this change? Well, they
produced a set of floral book covers because, I assume, how could you more obviously
show off a wide range of colours than by drawing from nature?&lt;/p&gt;
&lt;p&gt;Some of these floral designs had previously been used on monochrome covers, simple
outline drawings blocked in black. Many of the designs were seen for the first time
in full colour.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;oaf-examples.png&#34; alt=&#34;Some example covers&#34;&gt;&lt;/p&gt;
&lt;p&gt;I have decided to investigate several aspects of this colour revolution. I&amp;rsquo;d love to
know exactly how these covers were produced, i.e. are they painted wood blocks,
copper plates, lithography? I&amp;rsquo;d like to know who designed them, and how many designs there
were, too. If I can pin down exactly when they were first produced, I may even be able to discern
which equipment was being used, so a look at patents and catalogues of printing equipment
is on the cards.&lt;/p&gt;
&lt;p&gt;Victorian book covers are not something I&amp;rsquo;ve ever looked at before, nor had I heard of
Oliphant, Anderson &amp;amp; Ferrier before happening across these books, so along the way I
will be investigating the history of the company, their relationships to other firms
at the time (because they certainly weren&amp;rsquo;t the only ones producing floral covers), and
the printing and binding technology of the preceding decades.&lt;/p&gt;
&lt;p&gt;Many of the books I am acquiring have covers that are faded and rubbed, which is not
surprising given their age, so the single tie-in that this has to my other computing
interests is that I will be re-drawing the covers with Inkscape in order to restore
them to perhaps how they looked when fresh off the presses, 130 years ago.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Colour separations with GraphicsMagick</title>
      <link>https://hisdeedsaredust.com/posts/2021/gm-colour-separations/</link>
      <pubDate>Fri, 10 Sep 2021 00:00:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2021/gm-colour-separations/</guid>
      <description>&lt;p&gt;I have an old manual that I&amp;rsquo;d like to convert to PDF. Most of the documents I
scan are just black and white. However, this one has a lot of pictures with blue
highlights, and table backgrounds in the same blue and I&amp;rsquo;d like to preserve that
limited use of colour without keeping every page in full colour. It strikes me
that I should be able to do that by separating layers for each colour used, and
overlaying them to make a neat PDF.&lt;/p&gt;
&lt;p&gt;To do this, I&amp;rsquo;m going to experiment with &lt;a href=&#34;http://www.graphicsmagick.org&#34;&gt;GraphicsMagick&lt;/a&gt; to produce the
colour separations and the Perl module &lt;a href=&#34;https://metacpan.org/pod/PDF::Builder&#34;&gt;PDF::Builder&lt;/a&gt; to make the
final PDF. Eric Smith&amp;rsquo;s &lt;a href=&#34;http://tumble.brouhaha.com&#34;&gt;tumble&lt;/a&gt; can also be used to construct a PDF
with overlays.&lt;/p&gt;
&lt;h2 id=&#34;assessing-the-pages&#34;&gt;Assessing the pages &lt;a href=&#34;#assessing-the-pages&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;Firstly, let&amp;rsquo;s take a look at the pages of the manual in question. It has 142
pages, but there appear to be just a few different page types that we may have
to treat differently.&lt;/p&gt;
&lt;p&gt;Here are the different page types I can see:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;md-011.png&#34; alt=&#34;section heading&#34;&gt;
&lt;img src=&#34;md-021.png&#34; alt=&#34;text page with image&#34;&gt;
&lt;img src=&#34;md-041.png&#34; alt=&#34;text page with table&#34;&gt;&lt;/p&gt;
&lt;p&gt;The first one is a section heading. This one will be dealt with differently
than the others, because I&amp;rsquo;ll just produce a black image by straightforward
thresholding, and make the background blue using PDF::Builder.&lt;/p&gt;
&lt;p&gt;The second page, an image with blue highlights, is the most important case,
because the image wouldn&amp;rsquo;t make sense without colour.&lt;/p&gt;
&lt;p&gt;The third image is a text page with a blue background to the table. It wouldn&amp;rsquo;t
be the worst crime in the world to simply threshold this page, dropping the
background colour, but we are aiming to handle this too, as it provides the real
test for whether the final composited page will be legible. An alternative
approach to this kind of page, seen in many scanned manuals, is to process this
to a black and white image treating it as greyscale and dithering the table
background to make a 1-bit-per-pixel TIFF image. However, this is much worse for
legibility and compression than simply dropping the colour altogether.&lt;/p&gt;
&lt;p&gt;(Incidentally, if you think that the blue of the first image is slightly
different from the others, you&amp;rsquo;d be right. Our treatment of the images will take
care of subtle differences.)&lt;/p&gt;
&lt;h2 id=&#34;scanning-the-original-document&#34;&gt;Scanning the original document &lt;a href=&#34;#scanning-the-original-document&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;ve scanned the original document in 24-bit colour at 600 dpi and saved
the pages as single lossless TIFF files. The only other options for colour
scanning on my Epson WorkForce-series are to save to PDF, giving me no control
over the output, or JPEG, which is a lossy format. My suspicion is that PDF
output will actually embed a JPEG.&lt;/p&gt;
&lt;p&gt;The resultant image files are huge. I haven&amp;rsquo;t investigated what support the TIFF
format has for compressing colour files, but the scanner certainly doesn&amp;rsquo;t
attempt any compression, giving me files that are nearly 100 MiB per page!
The entire 142-page manual takes up 13 GiB on disk: I&amp;rsquo;m hoping to produce a
PDF that is a thousandth of this size.&lt;/p&gt;
&lt;p&gt;My scanner has additional options for the type of item being scanned: &amp;ldquo;text,&amp;rdquo;
&amp;ldquo;text and images,&amp;rdquo; or &amp;ldquo;photos.&amp;rdquo; There doesn&amp;rsquo;t seem to be any information
available on what the scanner does differently for each option. It is apparent
that the scanner does a quick first pass for photographic items, probably
adjusting colour balance, which it doesn&amp;rsquo;t do for the other two. From
examination of scans, colours are somewhat more smudged on the first two
settings; this works in our favour, so I always pick &amp;ldquo;text and images&amp;rdquo; mode.&lt;/p&gt;
&lt;h2 id=&#34;how-would-colour-separations-work&#34;&gt;How would colour separations work? &lt;a href=&#34;#how-would-colour-separations-work&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;My standard technique for preserving a black and white document is to save every
page in TIFF Group 4 format, one of the fax standard compression methods. This
is lossless and produces very good results for text. So, my starting point was
thinking that all the separations I produced for each page; black and blue in
this case, would be all compressed the same way, and &amp;ldquo;masked&amp;rdquo; onto the page, so that
the &amp;ldquo;off&amp;rdquo; pixels of each layer would become transparent, and the &amp;ldquo;on&amp;rdquo; pixels
would be rendered in the appropriate colour.&lt;/p&gt;
&lt;p&gt;However, Group 4 encoding can only handle black and white images, not white and
some other colour. An initial reading of the specification says that Group 4 is
for &amp;ldquo;bilevel&amp;rdquo; images, which I took to mean two colours, but then it becomes
clear that only black and white can be represented, and PDF readers won&amp;rsquo;t apply
a foreground colour to them on the page.&lt;/p&gt;
&lt;p&gt;Still, never mind. The black layers of each page can use this compression
method, and I&amp;rsquo;ll use PNG images for the other layers, which use Deflate
compression. In order to use PDF&amp;rsquo;s masking feature, to make white pixels render
transparently, I have to produce indexed (paletted) PNGs, which GraphicsMagick
will quite happily do if you prefix your output filename with &lt;code&gt;PNG8:&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To summarise the image production, then. I&amp;rsquo;m looking to take each colour TIFF
scan and produce two files:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Take the black pixels from each page and produce a Group 4-compressed
TIFF&lt;/li&gt;
&lt;li&gt;Take the blue pixels from each page and produce an indexed PNG.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Each page of the PDF will be produced by rendering the blue PNG first, followed
by the black TIFF, masked to allow blue pixels to show through.&lt;/p&gt;
&lt;p&gt;Why am I bothering to produce an indexed PNG for the blue layer, when it will
be rendered first, with nothing below to show through? The answer is simply that
this is a generic technique that will work for multiple colour separations. This
document also contains some small areas of grey highlighting that I &lt;em&gt;could&lt;/em&gt;
process using another overlay but as it happens I&amp;rsquo;ll handle them differently.&lt;/p&gt;
&lt;h2 id=&#34;black-layer&#34;&gt;Black layer &lt;a href=&#34;#black-layer&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The general technique for producing each layer is going to be:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Change the colours you don&amp;rsquo;t want to capture to white.&lt;/li&gt;
&lt;li&gt;Change the colour you do want to black.&lt;/li&gt;
&lt;li&gt;Threshold.&lt;/li&gt;
&lt;li&gt;Change the colour you want back to its original colour.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In this case, the blue pixels are light enough that simply thresholding the page
at 50% will cause them to threshold to white, so step 1 is redundant.&lt;/p&gt;
&lt;p&gt;Higher threshold percentages cause more pixels to turn black, so your
thresholding value will be determined by the quality of the text in your
original document. More lightly-printed material will need a higher threshold
to thicken up letter stems. Photocopied documentation may also need a higher
threshold but with an additional despeckling step. Experimentation is necessary,
but at least the same threshold value will apply across the entire source
document.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;md-threshold.png&#34; alt=&#34;&#34;&gt;
&lt;em&gt;Varying threshold values from 40% to 80% &amp;ndash; clearly 80% is too high&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For this document, each black layer can be produced like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gm convert scan.tiff -threshold 50% -compress Group4 black-layer.tiff
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id=&#34;blue-layer&#34;&gt;Blue layer &lt;a href=&#34;#blue-layer&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;For the colour layers, we need to drop out as much black (and other colours) as
possible, meaning converting them to white, and then we turn our colour to black
for thresholding.&lt;/p&gt;
&lt;p&gt;To convert all pixels from one colour to another, you use GM&amp;rsquo;s &lt;code&gt;-opaque&lt;/code&gt; option:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gm convert source.tiff -fill green1 -opaque black destination.tiff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This converts all black pixels in the image to a particular shade of green. But
this isn&amp;rsquo;t going to work by itself, as there is some natural variation in
colours in the scan: we&amp;rsquo;d just get this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;019-nofuzz.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;We use the &lt;code&gt;-fuzz&lt;/code&gt; option to capture colours close to the original colour:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gm convert source.tiff -fuzz 70% -fill green1 -opaque black destination.tiff
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;019-fuzz70.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;You must specify &lt;code&gt;-fuzz&lt;/code&gt; and &lt;code&gt;-fill&lt;/code&gt; before &lt;code&gt;-opaque&lt;/code&gt;, as the operation occurs
as soon as &lt;code&gt;-opaque&lt;/code&gt; is parsed, using the current values of fuzz and fill.
Putting the steps above together, we produce the blue layer like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gm convert source.tiff \
    -fuzz 99% -fill white -opaque black \
    -fuzz 10% -fill black -opaque &#39;#b2cdd9&#39; \
    -threshold 20% \
    -fill &#39;#b2cdd9&#39; -opaque black destination.png
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&#34;md-source-label.png&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;md1-dropblack-label.png&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;md2-blueblack-label.png&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;md3-threshold-label.png&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;md4-blackblue-label.png&#34; alt=&#34;&#34;&gt;
&lt;img src=&#34;md5-composite-label.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;Here we see the step-by-step production of the blue layer, starting with the
source image on the left (1), ending with the blue overlay (5). The
last image (6) shows the blue and black layers composited together as they
will appear in the final PDF. So we have moved from a true colour source image,
to one in which every pixel is just one of three colours, white, black or blue.&lt;/p&gt;
&lt;p&gt;Note that the thresholding step produces an image with just two colours. Saving
this image as a PNG will automatically produce a paletted image with just two
colours, rather than a 24-bit (true colour) image.&lt;/p&gt;
&lt;p&gt;The step that I am missing automation for is choosing the hex value of the
colour that I wish to extract. Given that fuzz is a percentage of possible
distance in RGB space, picking a value too far from the &amp;ldquo;mean blue&amp;rdquo; will result
in you either needing to increase fuzz or risk leaving white holes in your
coloured image. At the moment, I&amp;rsquo;ve been picking the colour by choosing an image
with a large area of blue, pulling it into Gimp and successively resampling down
until I&amp;rsquo;ve got a tiny image on which I use the colour dropper tool. There may be
a way of colour &amp;ldquo;clustering&amp;rdquo; in GraphicsMagick that I&amp;rsquo;m currently missing; I&amp;rsquo;d
love to hear about it.&lt;/p&gt;
&lt;h2 id=&#34;final-results&#34;&gt;Final results &lt;a href=&#34;#final-results&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;The PDF version of this manual, &lt;a href=&#34;https://vt100.net/manx/part/dec/ek-0la75-ug/&#34;&gt;&lt;em&gt;Installing and Using the LA75 Companion
Printer&lt;/em&gt;&lt;/a&gt;, is just 11 MiB.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Over the next few weeks, I intend to cover more topics along the same lines,
showing Perl scripts for driving the GraphicsMagick conversions, adding cropping
and deskewing of scans and the production of the PDF with PDF::Builder.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>TEI with light markup</title>
      <link>https://hisdeedsaredust.com/posts/2013/tei-with-light-markup/</link>
      <pubDate>Thu, 14 Mar 2013 17:26:26 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2013/tei-with-light-markup/</guid>
      <description>&lt;p&gt;After preparing ebooks for years with HTML and getting frustrated with a morass of divs
and spans with classes, I&amp;rsquo;ve decided to experiment with preparing texts in the vocabulary
of the &lt;a href=&#34;http://www.tei-c.org&#34;&gt;Text Encoding Initiative&lt;/a&gt;.
Conversion to XHTML for web, EPUB and Kindle formats will be taken care of by some
scripts, which may be XSLT later, but for now are Perl scripts.&lt;/p&gt;
&lt;p&gt;As I&amp;rsquo;m preparing books from OCRed scans, I&amp;rsquo;d like to keep my marked-up text as close as possible
to the original layout of the printed book, because it helps me spot errors. I&amp;rsquo;ve recently made
two major leaps forward that allow me to work through and correct text a lot faster.&lt;/p&gt;
&lt;p&gt;The first one is to keep all of the end of line hyphens intact, not even changing them to indicate &amp;ldquo;hard&amp;rdquo; or &amp;ldquo;soft&amp;rdquo; hyphens.
The TEI to XHTML script takes care of removing or keeping all hyphens by using a spell checker. I&amp;rsquo;m using the Perl module
Text::Hunspell, which can not only use multiple dictionaries (essential when recent works contain words in English, French,
German, Latin and Hindi), but also a book-specific dictionary containing proper names and unusual or archaic words.&lt;/p&gt;
&lt;p&gt;The second speed-up concerns quotation marks. Most quotation marks are removed from the text entirely, and replaced by one
of the TEI elements &lt;code&gt;&amp;lt;q&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;soCalled&amp;gt;&lt;/code&gt;. The remaining quote marks are all apostrophes, and
they are retained as the ASCII single quote character, because they can be unambiguously changed to the Unicode right single
quote U+2019 by the script. Quote marks will be produced for the other elements (doubles and singles, nested as required)
by the script.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a lot more work to do, but I&amp;rsquo;ve put the results of some experiments online so I can test reading through them.
So far, I&amp;rsquo;ve put up two of Charles E. Pearce&amp;rsquo;s works, &lt;a href=&#34;http://charlespearce.org/pub/star-of-the-east/&#34;&gt;&lt;em&gt;A Star of the East&lt;/em&gt;&lt;/a&gt; and &lt;a href=&#34;http://charlespearce.org/pub/dragged-from-the-dark/&#34;&gt;&lt;em&gt;Dragged from the Dark!&lt;/em&gt;&lt;/a&gt;
The sources for those aren&amp;rsquo;t online yet, but I&amp;rsquo;ll put them up shortly.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>PANOSE in the wild</title>
      <link>https://hisdeedsaredust.com/posts/2012/panose-in-the-wild/</link>
      <pubDate>Tue, 09 Oct 2012 11:56:33 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2012/panose-in-the-wild/</guid>
      <description>&lt;p&gt;I am considering working on the &lt;a href=&#34;http://en.wikipedia.org/wiki/PANOSE&#34;&gt;PANOSE&lt;/a&gt; font matching
part of &lt;a href=&#34;http://github.com/fontmatrix/fontmatrix&#34;&gt;Fontmatrix&lt;/a&gt; because I enjoy playing with
Fontmatrix, but its idea of how PANOSE&amp;rsquo;s individual facets&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; are named or work seems to
me to be a bit wonky. For instance, it only understands the names for Latin Text facets,
and uses them even for Latin Decorative or Pictorial fonts.&lt;/p&gt;
&lt;p&gt;The first step (apart from trying to persuade my one-year-old son to go to sleep long enough
for me to even turn on the computer), is to take a look at whether improved matching or
re-classifying facilities would do any good at all, and for &lt;em&gt;that&lt;/em&gt;, I need to take a look
at font classifications in the wild.&lt;/p&gt;
&lt;p&gt;Turning to my Font Corpus database, I&amp;rsquo;ve extracted the following bare facts about PANOSE
usage, and I&amp;rsquo;m quite buoyed up by the results.&lt;/p&gt;
&lt;p&gt;From the 35420 fonts in the Corpus, I first get rid of fonts that have complete rubbish
in the PANOSE field, which means discarding fonts with:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Family Kind of &amp;ldquo;Any&amp;rdquo;(0), which means no attempt at all was made at classification. (13863 fonts).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Facet values out of range. This is generally Weight, which for some reason, perhaps
tool error, tends to have the values of 114 or 226. (409 fonts).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Family Kind &amp;gt; 5. Family Kind values up here, which would be used for non Latin,
aren&amp;rsquo;t formalised in any document I can find. (12 fonts).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Weight of &amp;ldquo;Any&amp;rdquo;(0). Weight is the only facet that is present for all values of Family Kind,
so it really ought to be set to something, even if &amp;ldquo;No Fit&amp;rdquo;(1) is the only appropriate value. (1540 fonts).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Having cleared out the rubbish, we are left with 19596 fonts, 55% of the total collection.
Of these, just over 90% are Latin Text fonts.&lt;/p&gt;
&lt;p&gt;For the Latin Text fonts, more complete classification means that more of the individual
facets are set to any value other than &amp;ldquo;Any&amp;rdquo;(0). Even &amp;ldquo;No Fit&amp;rdquo;(1) gives us some information
about the limitations of the classification system.&lt;/p&gt;
&lt;p&gt;So, how many facets are set to non-zero in our remaining fonts?&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;Non-zero facets&lt;/th&gt;
          &lt;th style=&#34;text-align: right&#34;&gt;No. of fonts&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;3&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;349&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;4&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1718&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;5&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;135&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;1391&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;7&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;6712&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;226&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;9&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;66&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;10&lt;/td&gt;
          &lt;td style=&#34;text-align: right&#34;&gt;8689&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Some of these facets are derived from measured values, and some of them are picked by judgement,
which may explain the somewhat uneven coverage of classifications. (And who&amp;rsquo;s going to classify
nine of the facets without doing one extra to complete the job?)&lt;/p&gt;
&lt;p&gt;I think the end result is that there are enough fonts with decent classification in the wild
to make this something worth working on. Go to sleep, baby boy!&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I call the individual numbers of a PANOSE number &amp;ldquo;facets&amp;rdquo;
to help me from over-using the word &amp;ldquo;value&amp;rdquo;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
    </item>
    
    <item>
      <title>Working around Kindlegen quirks with document transformations</title>
      <link>https://hisdeedsaredust.com/posts/2012/working-around-kindlegen-quirks/</link>
      <pubDate>Wed, 13 Jun 2012 21:41:06 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2012/working-around-kindlegen-quirks/</guid>
      <description>&lt;p&gt;While working on the Kindle (Mobi) version of &lt;em&gt;Antigua and the Antiguans&lt;/em&gt;, I found that I was spending too much time attempting to
carefully craft some XHTML markup and a stylesheet that would get the final book to look the way I expected it to. Because the Mobi
format is only HTML 3.2 with a few extra elements, and no stylesheet support at all, Kindlegen has to do a lot of wizardry to
down-convert any EPUB (XHTML + CSS) you are starting with, and the results don&amp;rsquo;t appear to be consistent across an entire book.&lt;/p&gt;
&lt;p&gt;It was while attempting to mark up the genealogical information in the appendices of the book that Kindlegen really came unstuck,
and I had to change tack completely. My markup in the EPUB looked like this:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;p class=&amp;#34;offspring&amp;#34;&amp;gt;Thomas Howard, 2nd Duke of Norfolk...&amp;lt;/p&amp;gt;
&amp;lt;p class=&amp;#34;offspring&amp;#34;&amp;gt;Elizabeth, m. Thomas Boleyne, Viscount...&amp;lt;/p&amp;gt;
&amp;lt;div class=&amp;#34;generation&amp;#34;&amp;gt;
  &amp;lt;p class=&amp;#34;offspring&amp;#34;&amp;gt;1. George Boleyne, Viscount Rochford,....&amp;lt;/p&amp;gt;
  &amp;lt;p class=&amp;#34;offspring&amp;#34;&amp;gt;2. Anne, youngest ... left issue,&amp;lt;/p&amp;gt;
  &amp;lt;div class=&amp;#34;generation&amp;#34;&amp;gt;
    &amp;lt;p class=&amp;#34;offspring&amp;#34;&amp;gt;Elizabeth, Queen of England&amp;lt;/p&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;p class=&amp;#34;offspring&amp;#34;&amp;gt;3. Mary, eldest dau. of Thomas,...&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This struck me as sensible, semantic markup, with each successive generation being further indented, as in the original print book.
I wished it to look as below, but Kindlegen resolutely refused to play ball:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;kp-indents.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;
&lt;p&gt;It struck me that I could assign an individual indent to each of the paragraphs, and get the hanging indent to work with an
appropriate number of non-breaking spaces at beginning of each paragraph, but why should I compromise the clean markup, or maintain
separate source documents for EPUB and Mobi?&lt;/p&gt;
&lt;h1 id=&#34;the-strategy&#34;&gt;The strategy &lt;a href=&#34;#the-strategy&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;The way I&amp;rsquo;ve decided to approach this is to write a script that will take my chosen markup vocabulary (XHTML elements with classes
of my choosing) and transform it into Mobi&amp;rsquo;s HTML 3.2 + the few mbp-namespace elements, such that the resulting document passes
through Kindlegen &lt;em&gt;without any further changes taking place&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&#34;pros&#34;&gt;Pros &lt;a href=&#34;#pros&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;I still use Amazon&amp;rsquo;s chosen packaging program. (This is a &lt;em&gt;big&lt;/em&gt; one, as Amazon seem to have recently rejected some books built
with Calibre.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The transformations performed by the script can handle things that Kindlegen won&amp;rsquo;t even touch, such as small caps support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Predictability of output, without having to put odd workarounds for Kindlegen failings in the source document. (Want a top margin
&lt;em&gt;and&lt;/em&gt; a left margin without putting a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; inside a &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;? Easy.)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;cons&#34;&gt;Cons &lt;a href=&#34;#cons&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;This approach won&amp;rsquo;t work for KF8 documents with new features. That doesn&amp;rsquo;t matter for me, as I&amp;rsquo;m producing text-heavy books, but
anyone wanting to take advantage of KF8 features would have to run Kindlegen on their KF8 source, and then insert the output from
a script like mine in place of the mangled Mobi that Kindlegen had produced. (In effect, you&amp;rsquo;d need the hypothetical &lt;code&gt;mobipack.py&lt;/code&gt;
to match the existing &lt;code&gt;mobiunpack.py&lt;/code&gt;, or try Peter Hatch&amp;rsquo;s &lt;a href=&#34;http://extraordinarycommons.com/creating-kindle-mobi-and-kf8-from-different-sources/&#34;&gt;ingenious
hack&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This is definitely in the &amp;ldquo;some assembly required&amp;rdquo; category. It works for my vocabulary for my documents. The transformations
from the input vocabulary to the mobi output may vary somewhat depending on the book, but I expect the vocabulary to remain
consistent over a long period.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I have to perform any transformations that Kindlegen would normally handle well, such as centring elements.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id=&#34;ok-what-do-i-actually-do&#34;&gt;OK, what do I &lt;em&gt;actually&lt;/em&gt; do? &lt;a href=&#34;#ok-what-do-i-actually-do&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Enough of the theory. What transformations do I perform on documents? Here is a selection of recipes that you may want to try. I&amp;rsquo;ll
use the CSS &lt;em&gt;element.class&lt;/em&gt; notation.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Remove any existing &lt;code&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; ... /&amp;gt;&lt;/code&gt; elements. We don&amp;rsquo;t want Kindlegen to have any CSS information to allow it to
further affect our document.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Delete all comments as they are pointless and have provoked Kindlegen bugs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Process all children of &lt;code&gt;span.sc&lt;/code&gt; to make a small caps effect, by inserting &lt;code&gt;&amp;lt;font size=&amp;quot;-2&amp;quot;&amp;gt;&lt;/code&gt; around lowercase characters.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;kp-small-caps.png&#34; alt=&#34;Small caps&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Move all &lt;code&gt;caption&lt;/code&gt; elements into centred paragraphs, immediately before their table.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Kindlegen doesn&amp;rsquo;t handle &lt;code&gt;p&lt;/code&gt; elements inside &lt;code&gt;blockquote&lt;/code&gt;, so just remove the blockquote and indent all paragraphs appropriately.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Convert &lt;a href=&#34;https://hisdeedsaredust.com/posts/2012/taming-em-dashes/&#34;&gt;ZWSP characters to ZWNJ&lt;/a&gt; to support line wrapping at em dashes
without unduly spacing them out.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;kp-em-dashes.png&#34; alt=&#34;Em dashes&#34;&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Insert page breaks before &lt;code&gt;div.chapter&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Produce nicely-indented lines of poetry.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;implementation&#34;&gt;Implementation &lt;a href=&#34;#implementation&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;My understanding of XSLT is not good enough to implement all of my recipes in the fashion that I think would be neatest, so I use a
Perl script and the XML::LibXML module. It lets me use XPath expressions to quickly select nodes of interest, and then add and
replace nodes at will.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>News from 1796: Brighton&#39;s Director of Tourism still up for grabs</title>
      <link>https://hisdeedsaredust.com/posts/2012/1796-brighton-tourism-guide/</link>
      <pubDate>Wed, 02 May 2012 13:05:10 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2012/1796-brighton-tourism-guide/</guid>
      <description>&lt;p&gt;While hunting for reading matter on the history of Brighton, I came across &lt;a href=&#34;http://en.wikipedia.org/wiki/John_Williams_%28satirist%29&#34;&gt;Anthony
Pasquin&amp;rsquo;s&lt;/a&gt; &lt;em&gt;New Brighton Guide&lt;/em&gt;. As well as being a very funny satirical
poem, he also gives us this prose portrait of Brighton in a footnote:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;span class=&#34;sc&#34;&gt;Brighthelmstone&lt;/span&gt;, or &lt;span class=&#34;sc&#34;&gt;Brighton&lt;/span&gt;, in Sussex, is 54 miles from
London.​—​It was, like Amsterdam, a miserable-fishing town, but is now a place of importance, to which it was
raised by the countenance and bounty of the &lt;span class=&#34;sc&#34;&gt;Prince&lt;/span&gt; of &lt;span class=&#34;sc&#34;&gt;Wales&lt;/span&gt;. The houses are, generally
speaking, more inconvenient than unhandsome; and the streets are narrow and irregular. In the year 1699, more than 100 huts were
swallowed by the sea; and in a few years more, all the tenements on the Cliffs will be similarly devoured, unless a very
formidable embankment is erected to resist that imperious element.&lt;/p&gt;
&lt;p&gt;It is one of those numerous watering-places which beskirt this polluted island, and operate as apologies for idleness, sensuality,
and nearly all the ramifications of social imposture: where the barren seek a stimulus for fecundity; the voluptuary to wash the
cobwebs from the interstices of his flaccid anatomy; and the swag-bellied denizen, the rancid adhesion of old cheese, Irish
butter, junk, assa-fœtida, tallow, mundungus, and train-oil.&lt;/p&gt;
&lt;p&gt;There are two taverns, namely, the Castle and the Old Ship, where the richer visitors resort; and at each of these houses a weekly
assembly is held, where a master of the ceremonies attends, to arrange the parties, not according to the scale of utility, but
that of aristocracy.&lt;/p&gt;
&lt;p&gt;There is a ball every Monday at the Castle, and on Thursdays at the Old Ship: every subscriber pays three shillings and sixpence,
and every non-subscriber five shillings; for which they are entitled to a beverage which they call &lt;em&gt;tea&lt;/em&gt; and &lt;em&gt;coffee&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The masters of the respective inns receive the profits, except on those nights appointed for the benefit of the master of the
ceremonies; to whom all, who wish to be arranged as people of distinction, subscribe one guinea​—​and who
would not purchase distinction at so cheap a rate? Independently of this vain &lt;em&gt;douceur&lt;/em&gt;, this must pay most liberally
for their tickets! The card assemblies are on Wednesdays and Fridays.&lt;/p&gt;
&lt;p&gt;There is an hotel, which was intended as a country Hummums, or grand dormitory; but, in my weak opinion, the establishment is
somewhat inefficient, unless it can be supposed that the tumultuous equipment of stage-coaches, at the dawn of day, is
contributory to the purposes of rest.&lt;/p&gt;
&lt;p&gt;There is a theatre, commodious, and generally well directed; the nights of performance are Tuesdays and Wednesdays, Fridays and
Saturdays. At the lower end of North-street is a sort of Birmingham Vauxhall, called the &lt;em&gt;Promenade Grove:&lt;/em&gt; it is a small
inclosure of a paddock, tormented from its native simplicity, befringed with a few gawkey poplars, and decorated with flowers,
bowers, benches, frogs, ground-ivy, a ditch, and a wooden box for the minstrels.&lt;/p&gt;
&lt;p&gt;The coast is like the greater part of its visitors, bold, saucy, intrusive, and dangerous.&lt;/p&gt;
&lt;p&gt;The bathing-machines, even for the ladies, have no awning of covering, as at Weymouth, Margate, and Scarborough; consequently they
are all severely inspected by the aid of telescopes, not only as they confusedly ascend from the sea, but as they kick and sprawl
and flounder about its muddy margin, like so many mad Naiads in flannel smocks:​—​the shore is so
disastrously imperfect, that those beginners who paddle in, are injured by the shocking repulsion of the juices to the brain; and
of those who are enabled to plunge in, and swim beyond the surge, it is somewhat less than an even bet that many never
return​—​in truth, the loss of lives here every season, would make any society miserable, who were not
congregating in the mart of noisy folly.&lt;/p&gt;
&lt;p&gt;There is a Subscription House, or Temple of Fortune, on the Steyne, where the minor part of our blessed nobility are accustomed to
reduce their characters and their estates in the same period;​—​the signal for admittance is
&lt;em&gt;habeo&lt;/em&gt;​—​for rejection, &lt;em&gt;debeo&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;There are lodgings of all descriptions and fitness, from twenty pounds per week on the Cliffs, to half a crown per night in a
stable; and the sinews of morality are so happily relaxed, that a bawd and a baroness may snore in the same
tenement;​—​the keepers of the lodging-houses, like the keepers of mad-houses, having but one common point in
view​—​to &lt;em&gt;bleed&lt;/em&gt; the parties sufficiently.&lt;/p&gt;
&lt;p&gt;There are carriages and caravans of all shapes and dimensions, from a waggon to a fish-cart; in which you may move like a king, a
criminal, or a crab, that is, forwards, backwards, or laterally.&lt;/p&gt;
&lt;p&gt;There are two libraries on the Steyne, replete with every flimsy species of novels, involving the prodigious intrigues of an
imaginary society: this kind of recreation is termed &lt;em&gt;light reading;&lt;/em&gt; perhaps from the certain effect it has upon the brains  of
my young countrywomen, of making them &lt;em&gt;light-headed!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There is a parish church, where the &lt;em&gt;canaille&lt;/em&gt; go to pray; but as that is on a hill, and the gentry found their
sabbath visit to the Almighty very troublesome, the amiable and accommodating &lt;em&gt;master&lt;/em&gt; priest has consigned the care of his common
&lt;em&gt;parish mutton&lt;/em&gt; to his &lt;em&gt;journeyman&lt;/em&gt;, the curate, and has kindly raised a Chapel Royal for the &lt;em&gt;lambs of fashion&lt;/em&gt;, where a certain
sum is paid for every seat: and this, it must be admitted, is as it should be; as a well-bred Deity will assuredly be more
attentive to a reclining Dutchess, parrying the assaults of the devil behind her fan, than the vulgar piety of a plebeian on his
knees.&lt;/p&gt;
&lt;p&gt;There were books open in the circulating libraries, where you were requested to contribute your mite of charity to the support of
the rector, as his income is somewhat less than seven hundred pounds a year; the last incumbent died worth thirty thousand pounds.
During the first dawnings of convalescence after the suspension of the King&amp;rsquo;s intellectual faculties, he asked Dr.
&lt;span class=&#34;sc&#34;&gt;Willis&lt;/span&gt; how much he netted by his Lincolnshire pluralities​—​&amp;ldquo;Eight hundred per year,&amp;rdquo; was
the reply.​—​&amp;ldquo;Then why,&amp;rdquo; added the monarch, &amp;ldquo;do you, who are so rich, undertake to cure mad people for
hire?&amp;rdquo;​—​&amp;ldquo;I imitate Jesus Christ, sire, who went about doing good.&amp;rdquo;​—​&amp;ldquo;Yes; but,&amp;rdquo;
rejoined his Majesty, &amp;ldquo;in the first place, Jesus Christ did good for nothing; and in the second, he had not eight hundred a year,
my friend!&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The full work is available at the &lt;a href=&#34;http://archive.org/details/newbrightonguide00pasqiala&#34;&gt;Internet Archive&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>That well-known Unicode character, Zero Width Non Joiner Freaky Repeater</title>
      <link>https://hisdeedsaredust.com/posts/2012/zero-width-non-joiner/</link>
      <pubDate>Tue, 17 Jan 2012 15:52:58 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2012/zero-width-non-joiner/</guid>
      <description>&lt;p&gt;Just when you think you&amp;rsquo;ve been all clever by putting &lt;a href=&#34;https://hisdeedsaredust.com/posts/2012/taming-em-dashes/&#34;&gt;zero width non joiner characters around em dashes&lt;/a&gt;, the Kindle renderer decides to get its knickers in a twist and does this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;zwnj-bugs.png&#34; alt=&#34;ZWNJ bug on the Kindle&#34;&gt;&lt;/p&gt;
&lt;p&gt;The markup that produced the third line of that image was this:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;p width=&amp;#34;0&amp;#34;&amp;gt;Same bug with &amp;lt;i&amp;gt;italic&amp;lt;/i&amp;gt;&amp;amp;#x200c;,
&amp;lt;b&amp;gt;bold&amp;lt;/b&amp;gt;&amp;amp;#x200c; or
&amp;lt;span&amp;gt;spans&amp;lt;/span&amp;gt;&amp;amp;#x200c;&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Do you see repeated words in the markup? No, me neither. Putting a ZWNJ (U+200C) character straight after the end of another element
will cause the final word of that element to be repeated.&lt;/p&gt;
&lt;p&gt;In practice, this is easily avoided. If you don&amp;rsquo;t put a ZWNJ before an em dash where that em dash comes directly after some styled
element (e.g. bold, italic or text size change), you won&amp;rsquo;t hit this bug and all you lose is one extra line-break point.&lt;/p&gt;
&lt;p&gt;If you weren&amp;rsquo;t using &lt;em&gt;any&lt;/em&gt; ZWNJ characters around em dashes, you&amp;rsquo;d have fewer line breaks anyway, so nothing is lost.&lt;/p&gt;
&lt;p&gt;In practice, as I&amp;rsquo;ve said before, I put zero width spaces around em dashes, and only change those into zero width non joiners for
the Kindle&amp;rsquo;s benefit, with a script. That script also searches for places where the ZWNJ will trigger the Kindle bug and removes
them, so I don&amp;rsquo;t have to think about this bug when I&amp;rsquo;m marking up a text.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>No, Kindle Previewer, you may not auto update</title>
      <link>https://hisdeedsaredust.com/posts/2012/kindle-auto-update/</link>
      <pubDate>Tue, 17 Jan 2012 13:50:31 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2012/kindle-auto-update/</guid>
      <description>&lt;p&gt;Kindle Previewer is a great time saver for checking formatting, and I&amp;rsquo;m very pleased that it runs under Wine, as I&amp;rsquo;m currently
running Fedora 16 (Verne).&lt;/p&gt;
&lt;p&gt;However, this morning when I ran it, it auto-updated to the latest version, and that crashes. Auto updating is bad enough when you
know you have a set of software that works exactly as you like, but updating to a version that won&amp;rsquo;t run is just bloody rude.&lt;/p&gt;
&lt;p&gt;I bet that there&amp;rsquo;s a cute SELinux trick that could be used to stop Kindle Previewer having network access, but a simple stop-gap is
to reinstall the old version, go to the directory where you installed it, and prevent autoupdate.jar from being used. In my case,
that&amp;rsquo;s these two lines:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; $ cd ~/.wine/drive_c/Program\ Files/kindle\ previewer
 $ chmod 0 autoupdate.jar
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Kindle Previewer now moans that it can&amp;rsquo;t access that jar file when it runs (duh), but pressing &amp;ldquo;OK&amp;rdquo; allows the rest of it to run
just fine. I&amp;rsquo;ll investigate more when I decide I want to see how things look on the Kindle Fire, and &lt;em&gt;that&amp;rsquo;s&lt;/em&gt; not going to be until
they&amp;rsquo;re available in the UK.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Taming em dashes on the Kindle</title>
      <link>https://hisdeedsaredust.com/posts/2012/taming-em-dashes/</link>
      <pubDate>Wed, 04 Jan 2012 12:53:03 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2012/taming-em-dashes/</guid>
      <description>&lt;p&gt;I like em dashes, and use them when writing (or preserving the style of older books
when I&amp;rsquo;m formatting them), but they need some taming for the Kindle, as
&lt;a href=&#34;http://www.mobileread.com/forums/showthread.php?t=92119&#34;&gt;discussions on MobileRead&lt;/a&gt; will show you.&lt;/p&gt;
&lt;p&gt;If you attempt to insert them between two words without any spaces, the Kindle will
stubbornly keep both words together when breaking lines. A simple way of getting
round this would be to use a spaced en dash instead, as &lt;a href=&#34;http://jwmanus.wordpress.com/2011/08/13/ebook-formatting-adjust-the-em-dash&#34;&gt;Jaye Manus suggests&lt;/a&gt;, but can we do any better?&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;http://www.unicode.org/versions/Unicode6.0.0/&#34;&gt;Unicode-compliant&lt;/a&gt; method of hinting that a line break can occur &lt;em&gt;without a visible space&lt;/em&gt;
is to put U+200B ZERO WIDTH SPACE either side of the dash, but the Kindle doesn&amp;rsquo;t recognise this character.
However, it does recognise U+200C ZERO WIDTH NON-JOINER, and appears to treat that in exactly the way that ZWSP should be treated.&lt;/p&gt;
&lt;p&gt;So, I would mark up the first em dash in Jaye&amp;rsquo;s example sentence: &amp;ldquo;I think he&amp;rsquo;s the best–and I use that loosely–so will
let him live.&amp;rdquo; as&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;the best&amp;amp;#x200c;&amp;amp;#x2014;&amp;amp;#x200c;and I use&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;in the XHTML that I submit to Kindlegen.&lt;/p&gt;
&lt;p&gt;With the U+200C ZWNJ included, the Kindle allows line breaking around the dash, and will even insert some space around the dash if
necessary to justify the line. Dictionary lookups will also work exactly as you&amp;rsquo;d expect.&lt;/p&gt;
&lt;p&gt;If you were sure that you always wanted a possible break point on both sides of your em dashes, you could just run a search and
replace after marking up your document, but you may want to avoid breaks before a trailing dash at the end of a paragraph, for
example.&lt;/p&gt;
&lt;p&gt;The only further wrinkle here (for me) is that ZWNJ is the &lt;em&gt;wrong&lt;/em&gt; character if you&amp;rsquo;re trying to maintain
a &amp;lsquo;clean&amp;rsquo; master XHTML file for EPUB conversion or as a web page, so I actually mark up the document with
ZWSP and make the ZWSP-to-ZWNJ conversion part of the set that I do before running Kindlegen.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>A Private failing in Segment14</title>
      <link>https://hisdeedsaredust.com/posts/2011/private-failing-in-segment14/</link>
      <pubDate>Fri, 03 Jun 2011 15:57:55 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2011/private-failing-in-segment14/</guid>
      <description>&lt;p&gt;My first upload to the reborn &lt;a href=&#34;http://openfontlibrary.org/&#34;&gt;Open Font Library&lt;/a&gt; was
&lt;a href=&#34;http://openfontlibrary.org/font/segment14&#34;&gt;Segment14&lt;/a&gt;, and it failed badly as a web font in Firefox 3.6.17 on Fedora, not
displaying at all.&lt;/p&gt;
&lt;p&gt;Christopher Adams confirmed that it worked on the WebKit-based browsers Safari and Midori, and it works on my HTC Desire.&lt;/p&gt;
&lt;p&gt;After some minor, unrelated, cleanups, &lt;a href=&#34;http://fontforge.sourceforge.net&#34;&gt;FontForge&lt;/a&gt; gave both the SFD and OTF files a clean bill of
health, but it still wasn&amp;rsquo;t working in Firefox, so I took a deeper look and found that &lt;a href=&#34;http://www.mozilla.org/security/announce/2010/mfsa2010-78.html&#34;&gt;Mozilla had added the OTS font sanitizing
library to Firefox&lt;/a&gt; from version 3.6.13, back in December 2010.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://code.google.com/p/ots&#34;&gt;OTS&lt;/a&gt; is mainly designed to be added as a font condom for OpenType-consuming applications, as Firefox
apply it, but it also has a standalone checker called &lt;tt&gt;ot-serialize&lt;/tt&gt;. OTS isn&amp;rsquo;t packaged in Fedora yet, so I collected it
from upstream and ran it over my font, with these results:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ERROR at /home/paul/projects/ots/ots-read-only/src/cff.cc:377 (bool&amp;lt;unnamed&amp;gt;::ParsePrivateDictData(const uint8_t*, size_t, size_t, size_t, &amp;lt;unnamed&amp;gt;::DICT_DATA_TYPE, ots::OpenTypeCFF*))
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ugly. Still, it&amp;rsquo;s a &amp;ldquo;yes/no&amp;rdquo; tool, so I&amp;rsquo;m prepared to do a little hunting through the source to find out exactly why it hates me.&lt;/p&gt;
&lt;p&gt;The answer is that my FontForge source had a definition of BlueValues in the Type 1 Private dictionary. I don&amp;rsquo;t remember how it got
there, because it is optional, but I had put one in, and I had &lt;em&gt;defined it as an empty array&lt;/em&gt;. OTS decided that, if arrays exist in
the Private dictionary, they must not be empty. With a quick snip, my font works again.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll certainly be adding OTS to my fonty toolchain, and it strikes me that this would be a useful tool for packaging and using in
font reviews. You wouldn&amp;rsquo;t want to fail a review because of it, but it would certainly help to know whether a font will fail on the
Web, which must be a large part of users&amp;rsquo; expectations now.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>And still the tools don&#39;t work, but which tool?</title>
      <link>https://hisdeedsaredust.com/posts/2011/tools-dont-work/</link>
      <pubDate>Mon, 30 May 2011 18:56:07 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2011/tools-dont-work/</guid>
      <description>&lt;p&gt;It seems that, whenever I get close to doing something interesting in fonty land, a tool fails.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m pleased to see that the &lt;a href=&#34;http://openfontlibrary.org&#34;&gt;Open Font Library&lt;/a&gt; is now accepting uploads again but I can&amp;rsquo;t see my first
font,
&lt;a href=&#34;http://openfontlibrary.org/font/segment14&#34;&gt;Segment14&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m using Firefox 3.6.17 on Fedora 14, and it stubbornly refuses to show up as a web font. As far as I can see, every other one of
the 36 fonts on the site displays correctly, but Segment14 shows up as the fallback serif.&lt;/p&gt;
&lt;p&gt;Christopher Adams took a look for me and says that it works just fine on Safari and Midori, which suggests that the fault lies with
Firefox, but I&amp;rsquo;m left wondering which bug I&amp;rsquo;ve tripped over.&lt;/p&gt;
&lt;p&gt;This is &lt;a href=&#34;https://bugs.launchpad.net/openfontlibrary/+bug/789283&#34;&gt;bug 789283&lt;/a&gt; on OFLB&amp;rsquo;s Launchpad, in case anyone has any clues.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Serafettin, part two</title>
      <link>https://hisdeedsaredust.com/posts/2010/serafettin-part-two/</link>
      <pubDate>Fri, 20 Aug 2010 15:27:16 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2010/serafettin-part-two/</guid>
      <description>&lt;p&gt;Wow, that was a meaty piece of work. &lt;a href=&#34;http://serafettin.sourceforge.net&#34;&gt;Serafettin Cartoon fonts&lt;/a&gt; now builds with the latest
release of &lt;a href=&#34;http://fontforge.sourceforge.net&#34;&gt;FontForge&lt;/a&gt;, as well as CVS head, and taught me quite a bit about FontForge in the
process.&lt;/p&gt;
&lt;p&gt;Serafettin had a bunch of glyphs with self-intersection problems, and these were causing FontForge to crash on the Expand Stroke
operation. Because Serafettin uses scripts to build the different weights, it was hard to see where the problem was until I made
FontForge a lot more verbose about which glyphs it was processing.&lt;/p&gt;
&lt;p&gt;Even so, if a glyph self-intersects, it might be impossible to spot how the intersection is happening until you zoom right in and
see that what you thought was a sharp corner turns out to be a little twisted triangle of points. If the points are right on top of
each other, you won&amp;rsquo;t see the problem at any zoom level, so you&amp;rsquo;ll need to trust the Simplify operation.&lt;/p&gt;
&lt;p&gt;After all that work, I now have another FontForge bug to report. Try typing a some text ending in &amp;lsquo;+&amp;rsquo;, like &amp;lsquo;GPLv2+&amp;rsquo; into the the
TTF name fields. Save your work and observe that the UTF-7 (yes -7, not -8) encoding of the SFD turns this into &amp;lsquo;GPLv2+-&amp;rsquo;. Now read
in the SFD and see that your license field says &amp;lsquo;GPLv2+-&amp;rsquo;, and subsequent saves will add another &amp;lsquo;-&amp;rsquo; every time. Boo, hiss.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Serafettin, part one</title>
      <link>https://hisdeedsaredust.com/posts/2010/serafettin-part-one/</link>
      <pubDate>Fri, 13 Aug 2010 15:48:04 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2010/serafettin-part-one/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve recently been triaging &lt;a href=&#34;http://fontforge.sourceforge.net&#34;&gt;FontForge&lt;/a&gt; bugs on &lt;a href=&#34;http://fedoraproject.org&#34;&gt;Fedora&lt;/a&gt;, and hit a
problem with &lt;a href=&#34;https://bugzilla.redhat.com/show_bug.cgi?id=600108&#34;&gt;bug 600108&lt;/a&gt;, in which the latest version of FontForge crashes
while building &lt;a href=&#34;http://serafettin.sourceforge.net&#34;&gt;Serafettin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I patched FontForge locally, so I could identify the glyphs that caused it to crash, but I&amp;rsquo;ve now come to the conclusion that
Serafettin itself is the problem, and FontForge&amp;rsquo;s validation says as much, in these lines:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Two glyphs have the same name.&lt;/li&gt;
&lt;li&gt;Two glyphs have the same unicode.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;rsquo;ve never met these errors before. Sure enough, close examination of Serafettin reveals that there are three copies of some of the
glyphs in the font, with the same name and Unicode point. Now that Orcan has given me access to the Subversion repository, I&amp;rsquo;m
currently working on removing the incorrect copies of glyphs, before simplifying the outlines of the rest, to allow it to build
again.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Off-curve misrendering</title>
      <link>https://hisdeedsaredust.com/posts/2010/off-curve-misrendering/</link>
      <pubDate>Wed, 07 Jul 2010 18:26:15 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2010/off-curve-misrendering/</guid>
      <description>&lt;p&gt;Adam Hyde came up with a &lt;a href=&#34;http://sourceforge.net/mailarchive/forum.php?thread_name=1278361284.1728.12.camel%40esetera&amp;amp;forum_name=fontforge-users&#34;&gt;question about a misrendering of a
font&lt;/a&gt; on the
&lt;a href=&#34;https://lists.sourceforge.net/lists/listinfo/fontforge-users&#34;&gt;FontForge Users&amp;rsquo; mailing list&lt;/a&gt;. A colleague had designed a font in
FontForge which looked fine except when used in Adobe Illustrator (of unspecified version). He provided two examples of characters
whose shapes had developed distinct &amp;ldquo;ears&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Peter Baker suggested that the common feature in this case was that the first point of the contours was not on the curve. My
investigations proceeded along the same lines, and suggested that more than just these two characters were affected.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve modified the supplied font, Transmediale, to suggest how I think Illustrator will render all of the characters that I think
will be misrendered. I&amp;rsquo;ve shown the &amp;ldquo;ears&amp;rdquo; in the image below.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;trans1.png&#34; alt=&#34;&amp;ldquo;Ears&amp;rdquo; in Transmediale&#34;&gt;&lt;/p&gt;
&lt;p&gt;The fix is simple enough in this case, as the start point of the contours can be changed in FontForge.&lt;/p&gt;
&lt;p&gt;A quick test suggests that &lt;a href=&#34;http://dejavu.sourceforge.net/&#34;&gt;DejaVu fonts&lt;/a&gt; may also be misrendered. We will see.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The undervalued bool</title>
      <link>https://hisdeedsaredust.com/posts/2010/the-undervalued-bool/</link>
      <pubDate>Wed, 16 Jun 2010 13:43:04 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2010/the-undervalued-bool/</guid>
      <description>&lt;p&gt;A colleague of mine wanted to reduce the repetition in this fragment of C++:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;funcA(false);
funcB(false);
funcC(false);
funcD(false);
funcA(true);
funcB(true);
funcC(true);
funcD(true);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and, in a burst of sheer genius, came up with this solution:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;for (bool status = false;
          status &amp;lt;= true;
          ++status) {
  funcA(status);
  funcB(status);
  funcC(status);
  funcD(status);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;He then scratched his head as the program looped for eternity.&lt;/p&gt;
&lt;p&gt;Who could have predicted that a common-or-garden &lt;code&gt;bool&lt;/code&gt; could have so many values? Let me count them. The possible values of &lt;code&gt;bool&lt;/code&gt;
are &lt;code&gt;false&lt;/code&gt;, &lt;code markdown=&#34;span&#34;&gt;&lt;a href=&#34;http://www.snopes.com&#34;&gt;snopes&lt;/a&gt;&lt;/code&gt;, &lt;code&gt;statistically_significant&lt;/code&gt;, &lt;code&gt;almost_true&lt;/code&gt;, &lt;code&gt;true&lt;/code&gt;,
&lt;code&gt;very_true&lt;/code&gt; and &lt;code&gt;tautology&lt;/code&gt;. &lt;code&gt;++tautology&lt;/code&gt; gives you &lt;code&gt;tautology&lt;/code&gt; right back, as &lt;a href=&#34;http://en.wikipedia.org/wiki/Nigel_Molesworth&#34;&gt;any fule
kno&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>An old video terminal, in vector form</title>
      <link>https://hisdeedsaredust.com/posts/2009/video-terminal-in-vector-form/</link>
      <pubDate>Fri, 27 Nov 2009 15:03:34 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/video-terminal-in-vector-form/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;mayterm-setupa.png&#34; alt=&#34; VT100 Setup Screen A&#34;&gt;&lt;/p&gt;
&lt;p&gt;I still have &lt;a href=&#34;http://vt100.net/vt_history#VT100&#34;&gt;VT100 terminal&lt;/a&gt;, but it&amp;rsquo;s in storage.
I figured I could pretend that it was on my desk if I made a font that looked like the
old beast, including the gaps between scan lines.&lt;/p&gt;
&lt;p&gt;Once I&amp;rsquo;d started, I needed the reverse video form of it, and the forms correctly
underlined, and double width, and double height &lt;em&gt;and&lt;/em&gt; double width. Blinking is
more problematic 😉&lt;/p&gt;
&lt;p&gt;The challenge with the double height, double width font is that the VT100 had
escape sequences that made particular character rows either display just the
top half of characters, or the bottom half. To display characters double height,
you had to put the same characters on two consecutive rows, and set the line
attributes correctly. In fact, you could make up some funky alien characters by
setting the line attributes and typing different characters on each row.&lt;/p&gt;
&lt;p&gt;In order to reproduce this effect (&lt;em&gt;yes, I&amp;rsquo;m carrying on digging&lt;/em&gt;), I had to make
an upper half font, and a lower half font. And &lt;em&gt;that&lt;/em&gt; gives me a problem with
&lt;a href=&#34;http://www.fontconfig.org&#34;&gt;Fontconfig&lt;/a&gt;, because that takes a look through fonts
as it caches them, and marks glyphs as broken if they don&amp;rsquo;t make any marks, but
they are encoded at positions which aren&amp;rsquo;t space characters in Unicode.
My &amp;ldquo;upper half&amp;rdquo; font doesn&amp;rsquo;t have any marks for the underscore glyph, and my
&amp;ldquo;lower half&amp;rdquo; font doesn&amp;rsquo;t have any marks for the double quotes, for example.&lt;/p&gt;
&lt;p&gt;There isn&amp;rsquo;t a way of telling Fontconfig that my font isn&amp;rsquo;t broken just because
it didn&amp;rsquo;t fancy making any marks for a particular glyph, so I&amp;rsquo;ll have to do some
pre-processing when generating &amp;ldquo;screen shots&amp;rdquo; of my old terminal.
I can locally configure Fontconfig to &lt;em&gt;not&lt;/em&gt; do this, but that wouldn&amp;rsquo;t help anyone else.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Resurrecting fonts</title>
      <link>https://hisdeedsaredust.com/posts/2009/resurrecting-fonts/</link>
      <pubDate>Wed, 11 Nov 2009 00:00:00 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/resurrecting-fonts/</guid>
      <description>&lt;figure class=&#34;align-right&#34;&gt;&lt;img src=&#34;segment14.png&#34; alt=&#34;Segment14 font&#34;/&gt;&lt;/figure&gt;
&lt;p&gt;A while ago, I recovered my old font files from some &lt;a href=&#34;https://hisdeedsaredust.com/posts/2009/not-so-super-superdisk/&#34;&gt;crufty old SuperDisks&lt;/a&gt;,
but did nothing more with them than copy them to my network storage, in the hope that &lt;em&gt;that&lt;/em&gt; is a safer home.&lt;/p&gt;
&lt;p&gt;Last weekend I was reading about the &lt;a href=&#34;http://fedoraproject.org/wiki/Category:Fonts_SIG&#34;&gt;Fedora Fonts SIG&lt;/a&gt;, and decided to bring the
old font files back to life. The Fonts SIG is concerned with packaging fonts for Fedora, but their pages have some interesting
pointers on how they might be created as well, so I grabbed an old font and explored the tools that are available.&lt;/p&gt;
&lt;p&gt;The font I picked is one I created when I was working with an old Stag PROM programmer, back in 1996. The programmer had a
&lt;a href=&#34;https://en.wikipedia.org/wiki/Starburst_display&#34;&gt;14-segment LED display&lt;/a&gt;. The real thing doesn&amp;rsquo;t look much like the clean vertical
pictures you&amp;rsquo;ll see in that Wikipeda article. The real characters are slightly oblique and there seems to be a kind of hexagonal
mesh over the top that makes the segments look like the figure at the top of this posting.&lt;/p&gt;
&lt;p&gt;I originally created the font by hand-coding the Type 1 format on a Sun workstation with Ghostscript installed, using my own tools
to transform some readable path descriptions into the encrypted form.&lt;/p&gt;
&lt;p&gt;This time, it seemed sensible to update the font to &lt;a href=&#34;https://en.wikipedia.org/wiki/OpenType&#34;&gt;OpenType&lt;/a&gt; format, and I decided to use
&lt;a href=&#34;http://fontforge.sourceforge.net&#34;&gt;FontForge&lt;/a&gt; for the job.&lt;/p&gt;
&lt;p&gt;Importing the old PFB file worked OK, and exporting is a doddle, except for FontForge complaining about overlapping segments in the
font. There aren&amp;rsquo;t any, but there are some subroutines that move back to the glyph origin, causing some empty subpaths, which
FontForge doesn&amp;rsquo;t ignore.&lt;/p&gt;
&lt;p&gt;The only other problem was my attempt to upload the font to the &lt;a href=&#34;http://openfontlibrary.org&#34;&gt;Open Font Library&lt;/a&gt;, because the upload
facility is broken. Ho hum.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the result of my hacking, a font called Segment14, released under the SIL Open Font License (OFL):
&lt;a href=&#34;segment14-1.0.tar.gz&#34;&gt;segment14-1.0.tar.gz&lt;/a&gt;.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>I am a Time Lord</title>
      <link>https://hisdeedsaredust.com/posts/2009/i-am-a-time-lord/</link>
      <pubDate>Thu, 01 Oct 2009 06:50:06 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/i-am-a-time-lord/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working on a project to fake some network protocols to test one of our systems at work.
One of them is Network Time Protocol. I daren&amp;rsquo;t just set my PC to random years and then serve
this time to the target system, so I wrote a little NTP server in Perl, which allows me to lie
about time to other people.&lt;/p&gt;
&lt;p&gt;I just set time back to Friday 12 September 1941, switched to my
news reader, and the first item from BBC news was an alert from the War Department that there&amp;rsquo;s
a fresh wave of V1s coming over the Kent coast.&lt;/p&gt;
&lt;p&gt;Tomorrow, I&amp;rsquo;m going to set time forward by a decade, to see if I&amp;rsquo;ve got a better job yet.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>First steps with OpenStreetMap</title>
      <link>https://hisdeedsaredust.com/posts/2009/first-steps-with-openstreetmap/</link>
      <pubDate>Wed, 08 Jul 2009 21:55:58 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/first-steps-with-openstreetmap/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve just signed up for an &lt;a href=&#34;http://www.openstreetmap.org&#34;&gt;OpenStreetMap&lt;/a&gt; account and thought I&amp;rsquo;d try out the offline map rendering,
as I&amp;rsquo;ve just started a project to document the changing face of Alderney.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&#34;http://wiki.openstreetmap.org&#34;&gt;wiki&lt;/a&gt; gives some good instructions for downloading the rendering
&lt;a href=&#34;http://en.wikipedia.org/wiki/XSL_Transformations&#34;&gt;XSLT&lt;/a&gt; scripts, but my first attempt to use them resulted in some very strange
coastline clipping in the final SVG.&lt;/p&gt;
&lt;p&gt;With a bit of hunting, I came across a Perl script in their collection that cleans the coastline data up nicely.&lt;/p&gt;
&lt;p&gt;For the record, here&amp;rsquo;s the complete set of steps to going from nothing to a rendered map of Alderney. I&amp;rsquo;m using Fedora 11 with
&lt;tt&gt;xsltproc&lt;/tt&gt; already installed.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Let&amp;rsquo;s grab the required tools from OpenStreetMap&amp;rsquo;s Subversion repository. These commands pull in a bit more than is strictly
necessary, but the steps on their wiki seem to leave you without some of the symbols for the final map, unless I&amp;rsquo;ve misread
something.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ mkdir osm
$ cd osm
$ svn co http://svn.openstreetmap.org/applications/rendering/osmarender/
$ svn co http://svn.openstreetmap.org/applications/rendering/tilesAtHome/
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now we&amp;rsquo;ll grab the raw map data for the area we want to render. I&amp;rsquo;ve found these coordinates by trial and error. They leave a
small amount of water around the island, including Coque Lihou on the south, but excluding the Noires Putes.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ wget http://www.openstreetmap.org/api/0.6/map\?bbox\=-2.24,49.695,-2.15,49.735 \
--output-document=alderney.osm
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now we&amp;rsquo;ll correct the coastline data with a Perl script called &lt;tt&gt;close-areas.pl&lt;/tt&gt;. However, the first time we use this,
we&amp;rsquo;ll have to edit it to allow it to run on a newer version of the OpenStreetMap data than it&amp;rsquo;s expecting. Pull the script into
your favourite editor and delete the line that does the check, which in my copy is line 114:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;die (&amp;#34;close-areas.pl does not support version $1&amp;#34;) unless ($1 eq &amp;#34;0.5&amp;#34;);
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now correct the coast line, using the lat-longs of the area we downloaded:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd tilesAtHome
$ perl close-areas.pl 49.695 -2.24 49.735 -2.15 &amp;lt; ../alderney.osm &amp;gt; ../alderney-closed.osm
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Time for rendering. We need to run the renderer in a particular directory too, and it expects the data to always be called
&lt;tt&gt;data.osm&lt;/tt&gt;. As I&amp;rsquo;m going to perform the rendering more than once, I&amp;rsquo;ll make a link to my file rather than renaming. The
link won&amp;rsquo;t have to be remade each time, of course.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd ../osmarender/stylesheets
$ ln -s ../../alderney-closed.osm data.osm
$ xsltproc ../xslt/osmarender.xsl osm-map-features-z17.xml &amp;gt; alderney.svg
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;On my box, with an Athlon 64 X2 4200, the render takes under five minutes.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Here&amp;rsquo;s the final result:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;alderney2.svg&#34; alt=&#34;Alderney, by OpenStreetMap&#34;&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>From jewel cases to where?</title>
      <link>https://hisdeedsaredust.com/posts/2009/from-jewel-cases-to-where/</link>
      <pubDate>Mon, 18 May 2009 20:22:58 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/from-jewel-cases-to-where/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;cd-stack.jpg&#34; alt=&#34;1500 CDs in jewel cases&#34;&gt;&lt;/p&gt;
&lt;p&gt;It took me several months to rip my 1500 or so CDs to a network drive, from where I can stream them wirelessly to my &lt;a href=&#34;http://www.slimdevices.com/pi_squeezebox.html&#34;&gt;Squeezebox
Classic&lt;/a&gt;. I&amp;rsquo;m very happy with that solution.&lt;/p&gt;
&lt;p&gt;Now, the problem becomes &amp;ldquo;what do I do with the CDs?&amp;rdquo; You can see from the picture that they take a lot of space. I&amp;rsquo;ve been
searching for a way of storing the CDs and artwork without the jewel cases.&lt;/p&gt;
&lt;p&gt;I eventually settled on the &lt;a href=&#34;http://www.mmdesign.com/products/cd-pro-poly-sleeve.php&#34;&gt;DiscSox CD Pro Sleeve&lt;/a&gt; and ordered 1500 of
them. Six evenings of work and three broken fingernails later, I&amp;rsquo;ve transferred about 1300 CDs into the sleeves, giving me 200 for
expansion purposes. The other CDs in my collection are either CD singles, which don&amp;rsquo;t save me much space in sleeves, or in
Digipacks, and I don&amp;rsquo;t want to destroy artwork while getting rid of the jewel cases.&lt;/p&gt;
&lt;p&gt;So, what are the scores on the doors?&lt;/p&gt;
&lt;h1 id=&#34;pros&#34;&gt;Pros &lt;a href=&#34;#pros&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The entire contents of the original jewel case is preserved: CDs (one or two), booklet and tray insert. The tray insert and spines
go in the back of the sleeve, unfolded. The sleeve will take even chunky booklets, though the manufacturing tolerances are such
that you&amp;rsquo;ll find it easier to push a thick booklet into some sleeves than others.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Averaged over a large stack of CDs, with various thicknesses of booklet, CDs in CD Pro Sleeves will store in one third of the
space of jewel cases, which is a substantial improvement.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The sleeves are tight enough that CDs don&amp;rsquo;t slip out, while the cut of the sleeve ensures that they are easily removed and stored.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I don&amp;rsquo;t intend moving CDs in and out of these sleeves very often, but the inner pocket is a kind of fabric, so the playing and
label surfaces seem well protected.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;As my purpose for these is archiving, and the sleeves are going into boxes, what &lt;em&gt;is&lt;/em&gt; important to me is that the sleeves are made
of polypropylene and won&amp;rsquo;t stick together.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id=&#34;cons&#34;&gt;Cons &lt;a href=&#34;#cons&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;ul&gt;
&lt;li&gt;These aren&amp;rsquo;t cheap, even in bulk. I bought 60 packs, each of which contains 25 sleeves, which cost $717, but MM Designs don&amp;rsquo;t
have a European distributor, so shipping from the United States cost $130 and I got hit by an £84 charge for delivery at this end,
which was the import duty from UK Customs plus a cheeky £13 administration charge from Parcelforce.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all, I&amp;rsquo;m very happy with my purchase. I&amp;rsquo;d be happier if MM Designs had a European distributor, but I won&amp;rsquo;t need to
reorder for quite a while.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>The not so super SuperDisk</title>
      <link>https://hisdeedsaredust.com/posts/2009/not-so-super-superdisk/</link>
      <pubDate>Wed, 08 Apr 2009 18:47:26 +0100</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/not-so-super-superdisk/</guid>
      <description>&lt;p&gt;In 1997, I bought a new PC, and specified that I wanted a &lt;a href=&#34;https://en.wikipedia.org/wiki/SuperDisk&#34;&gt;SuperDisk&lt;/a&gt;
drive on it. It seemed like a good idea at the time. The LS-120 drive was a reasonable alternative
to the Zip drive, and it had the advantage of being able to read 3½″ floppy disks as well as the
120 MB SuperDisks, at nine times the speed of a normal floppy drive. I had one at home,
my mate CMoS bought one too, and we bought a new web development PC for work with a third drive.&lt;/p&gt;
&lt;p&gt;This all made sense until we discovered the shortcomings of the disks and drives. We&amp;rsquo;d buy disks,
write them on the work PC, then take them home and find that we couldn&amp;rsquo;t read them. After a while,
you could be unlucky enough to not even read disks on the machine you&amp;rsquo;d used to write them. We
sighed heavily and moved onto writing CD-Rs instead.&lt;/p&gt;
&lt;p&gt;Moving on a decade, I&amp;rsquo;ve recovered my old PC from under the bed in the guest bedroom and set about
reading my old SuperDisks. Rather than fire up the old Windows 95 box, I moved the Matsushita
LS-120 drive into my current desktop PC, running Fedora 9 Linux. I still have ten SuperDisks, and
I know that one of them contains the contents of a bunch of old floppy disks that I thought, ten
years ago, would be better off consigned to a single disk. Ho hum. Those floppy disks contained a
load of Type 1 fonts that I made, the PostScript files that I used to design and test them
and the programs, written in VAX Pascal, that I used to build them.&lt;/p&gt;
&lt;p&gt;Of the ten SuperDisks, two turned out to be unreadable, but the remaining eight had a just a
single read error, corrupting a zip file containing some programs from my day job, so no real loss.
All in all, I&amp;rsquo;ve recovered 300 MiB of old work, fonts and photographs. I must confess, I&amp;rsquo;m
shocked and impressed at the success rate.&lt;/p&gt;
&lt;p&gt;The recovered work is being stored on the hard drive of my desktop PC, being burned to a CD &lt;em&gt;and&lt;/em&gt;
squirrelled away on my ReadyNAS. I&amp;rsquo;m not making &lt;em&gt;that&lt;/em&gt; mistake again!&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>My Perl and MySQL UTF-8 crib</title>
      <link>https://hisdeedsaredust.com/posts/2009/perl-and-utf8-crib/</link>
      <pubDate>Wed, 11 Feb 2009 14:09:37 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/perl-and-utf8-crib/</guid>
      <description>&lt;p&gt;Over the years I&amp;rsquo;ve had various ways of dealing with data beyond the ASCII range
in web applications. I&amp;rsquo;ve had horrible things go wrong when maintaining a &amp;ldquo;home&amp;rdquo;
and a &amp;ldquo;live&amp;rdquo; version of &lt;a href=&#34;https://vt100.net/manx&#34;&gt;Manx&lt;/a&gt;, when I had machines with
different versions of MySQL, and I never understood why dealing with UTF-8
across the Perl–MySQL bridge went wrong so much. However, time has healed
these wounds, so here is my little crib sheet for getting things right.&lt;/p&gt;
&lt;h1 id=&#34;mysql&#34;&gt;MySQL &lt;a href=&#34;#mysql&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;We started off with MySQL version 3.23, which had no idea of character
encodings. If you created a CHAR, VARCHAR, or TEXT column, MySQL still treated
the characters as if they were bytes. You were expected to know which character
encoding you were using on the way in, and use the same one on the way out.
MySQL couldn&amp;rsquo;t label character columns as having a particular encoding, so its
idea of sorting strings was also restricted to numerical comparisons of bytes.&lt;/p&gt;
&lt;p&gt;Character encodings were introduced in MySQL version 4.1 and today, MySQL
version 5.0 is present on modern Linux distributions.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re starting the database from scratch with MySQL 5.0, things are easy,
because all you have to do is to label the character encoding of the database
uniformly as UTF-8.&lt;/p&gt;
&lt;p&gt;When you create the database, use the statement &lt;code&gt;CREATE DATABASE foo
CHARACTER SET utf8;&lt;/code&gt; This sets the default encoding for all tables in the
database, and all columns in those tables.&lt;/p&gt;
&lt;h1 id=&#34;database-connections&#34;&gt;Database connections &lt;a href=&#34;#database-connections&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Having labelled the character encoding for the database itself, we now need to
make sure that connections to the database are labelled with the same encoding,
or transcoding of character sets will happen. If you&amp;rsquo;re using the MySQL client,
&lt;tt&gt;mysql&lt;/tt&gt;, to connect in a shell that is using UTF-8 (i.e. from a modern
Linux box), you can issue the statement&lt;/p&gt;
&lt;p&gt;&lt;code&gt;SET NAMES utf8;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;before you do anything else, and several internal variables to do with the
connection encoding will be set correctly.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re using Perl&amp;rsquo;s DBI and DBD::mysql modules to connect, you can define the
character encoding in an attribute on the session handle:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;my $dbh = DBI-&amp;gt;connect($data_source, $user, $pass, { mysql_enable_utf8 =&amp;gt; 1} );&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This is the trick that I was missing for quite a while, and I was plugging the
gap by using a module called UTF8DBI.pm to wrap DBI, but this is no longer
necessary.&lt;/p&gt;
&lt;h1 id=&#34;perl&#34;&gt;Perl &lt;a href=&#34;#perl&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Since about version 5.8.0, Perl now knows the character encoding of strings
that it uses, and the encoding of file streams. Web applications using the CGI
interface will send their output to STDOUT, so we need to label the encoding of
STDOUT to be the same as our internal encoding so that Perl doesn&amp;rsquo;t transcode.
Somewhere near the top of the program, before any output is produced, do:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;binmode STDOUT, &#39;:utf8&#39;;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re using the CGI module, you will need to specify the encoding in the
HTTP headers that go to the browser, because the default is latin1:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;print header(-type =&amp;gt; &#39;text/html&#39;, -charset =&amp;gt; &#39;utf-8&#39;);&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Note the difference between the labelling of the stream, &lt;strong&gt;utf8&lt;/strong&gt; and the
labelling of the web content, &lt;strong&gt;utf-8&lt;/strong&gt;. &lt;em&gt;Grrrrr&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Adding history to a database</title>
      <link>https://hisdeedsaredust.com/posts/2009/adding-history-to-a-database/</link>
      <pubDate>Thu, 05 Feb 2009 12:12:08 +0000</pubDate>
      
      <guid>https://hisdeedsaredust.com/posts/2009/adding-history-to-a-database/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been wondering how to let other people collaborate on a database without it turning to crap.
You see, I&amp;rsquo;ve been updating &lt;a href=&#34;https://vt100.net/manx/&#34;&gt;Manx&lt;/a&gt;, a catalogue of old computer manuals, for a few years now by myself.&lt;/p&gt;
&lt;p&gt;Manx lists the manuals produced by a bunch of old computer companies, and
records scanned copies that have been put online. On the surface, the database
is very simple. The records of each publication can be objectively correct; if
you have the manual in front of you and the title, part number and publication
date match the database, your work is done. However, Manx attempts to catalogue
manuals that we don&amp;rsquo;t yet have copies of. These entries have come from
documentation indexes, and are likely partial. Entries pulled from other
databases or sources online are also likely to be partial, or contain errors.&lt;/p&gt;
&lt;p&gt;At the moment, the database doesn&amp;rsquo;t store the history of individual records, as
the assumption is that each record will become more correct over time, and
there is no point recording how poor each entry used to be. However,
collaboration changes that requirement. Even the best intentioned of
contributors will make mistakes, and I now need a way of finding these and
rolling them back.&lt;/p&gt;
&lt;p&gt;I have been looking at different approaches at dealing with history in
databases, and it is obvious that the plan of attack depends on &lt;em&gt;why&lt;/em&gt; you need
to store history. The term for this need seems to be
&amp;ldquo;&lt;a href=&#34;https://en.wikipedia.org/wiki/Slowly_changing_dimension&#34;&gt;slow changing dimensions&lt;/a&gt;&amp;rdquo;.
My application is rather like Amazon&amp;rsquo;s book catalogue. They accept corrections,
and they go into the catalogue after a human reviewer has taken a look.&lt;/p&gt;
&lt;p&gt;The approach I&amp;rsquo;m going to take is rather like the &amp;ldquo;Type 4&amp;rdquo; methodology mentioned
in the Wikipedia article, which happens to be the approach used for tracking
changes to Wikipedia articles: &lt;em&gt;history tables&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The current PUB table that keeps the details of each publication will be split
into PUB and PUBHISTORY. PUBHISTORY will record every version of every
publication record, along with some new details about when the change was made,
and by whom. PUB will now store an index into PUBHISTORY for the current version
of each publication record, to speed up searching. Once a row goes into
PUBHISTORY, it will never be modified. Even deletion of a publication (because
it was created by mistake) will be recorded at PUB level, rather than by
deleting history.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
