chiark / gitweb /
Ian Jackson [Sun, 12 Jun 2022 23:03:12 +0000 (00:03 +0100)]
Send an info pane update when a player changes their nick
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 23:01:46 +0000 (00:01 +0100)]
Break out prepare_set_player_update
We'll want this for nick updates.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 22:49:48 +0000 (23:49 +0100)]
Rename SetPlayer to AddPlayer
The JS code can handle this as an update to a new player or as an
update to an existing one.
We're going to send this update when a player nick changes.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 22:43:12 +0000 (23:43 +0100)]
clock: Explain why separate rendering with abs positions
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 22:37:46 +0000 (23:37 +0100)]
Change monospace font to DejaVu Sans
A user reported that the specified font wasn't available and they got
somthing that misrendered in the clock.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 22:07:46 +0000 (23:07 +0100)]
When printing game access URL, say in message that it's private
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 22:00:23 +0000 (23:00 +0100)]
hidden: Note everything as occulted, even the unoccultable
They now have a `passive`, and an occid, and so on. But of course
they don't look any different. They end up treated as IOI::Distinct,
so in unnotched.
The overall effect is simply on counting: now they are counted.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 17:33:22 +0000 (18:33 +0100)]
demo game: Add a pickup deck
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 20:40:31 +0000 (21:40 +0100)]
wdt-simple: Use initial_vpid_by_desc_glob
Found with
git-grep -P '\d+v\d+' wdriver/wdt-simple.rs
This is still not great; ideally we would do something more like the
newer tests, with downloading the piece list. But this will do.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 19:54:13 +0000 (20:54 +0100)]
wdt-hand: Use initial_vpid_by_desc_glob
This fixes the pieceid literals.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 19:53:05 +0000 (20:53 +0100)]
wdt-hand: Replace const vpid with ad-hoc strings and todos
This is a noisy commit with lots of variable reference changes.
The actual variable settings will be adjusted in a moment.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 19:29:08 +0000 (20:29 +0100)]
apitest: Provide initial_[vp]id_by_desc_glob
The plan is to replace literal pieceids with this.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 17:45:17 +0000 (18:45 +0100)]
apitest: Promote PIA and PIB to where wdriver can use them
I thought I wanted this for replacing literal piece values in tests,
but actually I don't think I do since MGI::ListPieces and list_pieces
will do. But there seems little harm in it, so keep it.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 19:29:44 +0000 (20:29 +0100)]
apitest: Mark some hyper things as too verbose
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 17:33:10 +0000 (18:33 +0100)]
demo game: Fix a misindent.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 12 Jun 2022 17:30:31 +0000 (18:30 +0100)]
demo game: Increase table size
We want to add more things.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 26 May 2022 19:17:07 +0000 (20:17 +0100)]
Makefile: use deploy arch for usvg too
Otherwise it won't run in places that need the musl build.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 26 May 2022 17:54:22 +0000 (18:54 +0100)]
changelog: Fix heading for 1.1.0
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 26 May 2022 00:12:13 +0000 (01:12 +0100)]
changeloc: Set version
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 26 May 2022 00:11:41 +0000 (01:11 +0100)]
Cargo.toml: Update all versions to 1.1.0
Commit made automatically by update-versions.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 26 May 2022 00:04:46 +0000 (01:04 +0100)]
shapelib: Fix backward incompatible unnotched, stack_pos
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 23:55:04 +0000 (00:55 +0100)]
shapelib: Fix a backward incompatible ifastsplits field
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 23:46:30 +0000 (00:46 +0100)]
shapelib: Fix a backward incompatible itemname field
This is a bit of a bodge, but it will work right for existing games.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 23:15:52 +0000 (00:15 +0100)]
make-release: Use new nailing-cargo git mode
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 23:15:06 +0000 (00:15 +0100)]
make-release: Add missing `support` to cargo_order variable
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 20:35:39 +0000 (21:35 +0100)]
docs: Tighten and clarify semver slightly
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 23 May 2022 18:27:08 +0000 (19:27 +0100)]
changelog: document recent changes
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 20:30:57 +0000 (21:30 +0100)]
cargo upgrade: scraper
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 20:29:58 +0000 (21:29 +0100)]
cargo upgrade: nix
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 20:28:40 +0000 (21:28 +0100)]
cargo upgrade: ordered-float
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 20:23:55 +0000 (21:23 +0100)]
cargo update
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 00:26:25 +0000 (01:26 +0100)]
docs: Document library magic items
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 00:26:11 +0000 (01:26 +0100)]
docs: Fix formatting in mformat section
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 00:24:54 +0000 (01:24 +0100)]
docs: Clarify where extra fields go
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Wed, 25 May 2022 00:24:29 +0000 (01:24 +0100)]
docs: Provide xref for piece specs
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 15 May 2022 21:23:40 +0000 (22:23 +0100)]
docs: Document new substitution syntax
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 23 May 2022 18:07:33 +0000 (19:07 +0100)]
angles: Reinstate compatibility with mf1 format
We don't need to check the mformat, since the old syntax is disjoint
from the new one.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 22:43:49 +0000 (23:43 +0100)]
Support stack_pos on PickupDeck
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 19:28:26 +0000 (20:28 +0100)]
Add more missing font options
usvg has terrible defaults. Without these, text silently vanishes.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 19:34:45 +0000 (20:34 +0100)]
usvg: Pass default options even during bundle processing.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 19:31:12 +0000 (20:31 +0100)]
usvg: Refactor code that runs it in bundles.rs
This provides a place to put additional command line options.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 19:27:04 +0000 (20:27 +0100)]
Plumb usvg options from a file src/USVG_DEFAULT_ARGS.txt
Rather than the Makefile. This will let us make the default arguments
available to Rust code.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 19:24:34 +0000 (20:24 +0100)]
usvg-processor: Print the command we run
We're going to bury some extra option addition here, but it should be
visibile. Ah well, the build log ever grows.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 11:02:57 +0000 (12:02 +0100)]
angles: Make not be insane
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 09:51:25 +0000 (10:51 +0100)]
docs: Fix a typo
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 09:50:01 +0000 (10:50 +0100)]
at-currency: Test depositing from hidden
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 09:29:44 +0000 (10:29 +0100)]
apitest: Rename some variables
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 09:27:04 +0000 (10:27 +0100)]
at-currency: More tests
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 09:21:22 +0000 (10:21 +0100)]
at-currency: More tests
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 09:07:59 +0000 (10:07 +0100)]
apitest: Fish out quantities
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sun, 22 May 2022 08:53:29 +0000 (09:53 +0100)]
apitest: Introduce tree_walk; at-currency: test wip
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 21 May 2022 12:32:25 +0000 (13:32 +0100)]
at-currency: More tests
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 21 May 2022 12:24:39 +0000 (13:24 +0100)]
at-currency: Use move_money another time
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 21 May 2022 12:23:33 +0000 (13:23 +0100)]
at-currency: Make move_money a method on Session
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 21 May 2022 12:17:24 +0000 (13:17 +0100)]
at-currency: Break out move_money
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Sat, 21 May 2022 10:48:49 +0000 (11:48 +0100)]
at-currency: wip occult test
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 20 May 2022 18:56:06 +0000 (19:56 +0100)]
at-currency: wip occult test
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 20 May 2022 18:04:33 +0000 (19:04 +0100)]
fastsplit: Properly occult the left-behind piece
When we split, occult the new piece, if appropriate.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 20 May 2022 18:04:21 +0000 (19:04 +0100)]
fastsplit: Promote construction of ipc_from_record
fs_record borrows from ig, so doing this sooner is helpful so we can
pass ig to complex recalculation code.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 23:22:59 +0000 (00:22 +0100)]
currency: Occult the left-behind value too
By plumbing Value more, rather than raw Qty.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Fri, 20 May 2022 18:13:43 +0000 (19:13 +0100)]
currency: Occult multigrab taken log properly
Also rename two variables to be more accurate.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 23:15:34 +0000 (00:15 +0100)]
currency: Use our own describe function
This will enable us to use our own occultation handling for the
description, soon.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 23:15:28 +0000 (00:15 +0100)]
currency: Drop an unused variable
This has become redundant, recently.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 23:11:51 +0000 (00:11 +0100)]
currency: Split a line
This is going to get more complicated.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 20:31:37 +0000 (21:31 +0100)]
currency: Merge even when we're occulted
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 20:29:40 +0000 (21:29 +0100)]
fastsplit: No longer have fastsplit_delete insist on pass
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 20:26:05 +0000 (21:26 +0100)]
currency: Rename show_new_qty
We're going to show different quantities at different times.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 20:16:20 +0000 (21:16 +0100)]
currency: Change Value::html to demand a ShowUnocculted
This finds places we need to hide the quantity. One (new_value) was
wrong, and is now fixed.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 20:12:43 +0000 (21:12 +0100)]
currency: Change "new_qty" to "new_value"
Spotted a bug, which leaked value during occultation. Putting new_qty
inside Value makes it easier to arrange to always call call .html on
it.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 19:57:09 +0000 (20:57 +0100)]
currency: Rename to show_to_player
This is how it's going to be when we occult.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 19:56:42 +0000 (20:56 +0100)]
currency: Move slight, to prepare for occultation
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 19:52:32 +0000 (20:52 +0100)]
currency: Restructure slightly to make next log changes easier
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 19:37:22 +0000 (20:37 +0100)]
currency: Offer occulted version
But we don't do merging within occultations yet.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 19:36:41 +0000 (20:36 +0100)]
currency: Promote image conversion
Occult will want it earlier.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 19:36:15 +0000 (20:36 +0100)]
currency: Break out describe()
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 19:34:48 +0000 (20:34 +0100)]
currency: Break out value.html()
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 19:24:57 +0000 (20:24 +0100)]
currency: Break out render
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 17:55:19 +0000 (18:55 +0100)]
currency: Support adjusting size of the unit text, separately
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 18:57:48 +0000 (19:57 +0100)]
dice: Arrange to use text_options.start_element
What a palaver!
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 17:06:28 +0000 (18:06 +0100)]
dice: Insist that x and y are as our Rust would calculate them
Preparatory for using TextOptions::start_element, which expects
to centre text at the nominal position.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 17:22:05 +0000 (18:22 +0100)]
Break out SVG_FONT_Y_ADJUST_OF_FONT_SIZE into a separate file.
The dice template extractor is going to want this.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 17:13:10 +0000 (18:13 +0100)]
dice: Don't include p in process_node.
The text noce is going to want to do something odd.
No functional change.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 12:18:41 +0000 (13:18 +0100)]
TextOptions: break out y_adjust
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 12:17:46 +0000 (13:17 +0100)]
dice: Note a todo
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 12:04:55 +0000 (13:04 +0100)]
Break out TextOptions::start_element (from currency)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 11:47:47 +0000 (12:47 +0100)]
Use TextOptions in currency, so it now supports setting text size
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 11:42:22 +0000 (12:42 +0100)]
Move text size into TextOptions, so dice now support setting text size
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 18:36:16 +0000 (19:36 +0100)]
childio: Work around Linux kernel race bug
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 11:42:07 +0000 (12:42 +0100)]
docs: Fix a minor case oddity
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Thu, 19 May 2022 11:29:40 +0000 (12:29 +0100)]
Break out TextOptions and TextOptionsSpec
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 17 May 2022 01:11:04 +0000 (02:11 +0100)]
currency: support label text recolouring
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 17 May 2022 01:10:36 +0000 (02:10 +0100)]
Break out ColourSpecExt::resolve
Hrm, maybe this should have been load() ? This will do for now.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 17 May 2022 00:58:48 +0000 (01:58 +0100)]
demo.game.toml: Remove non-hnoured min_unit setting
We decided to leave this to the players.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Tue, 17 May 2022 00:58:26 +0000 (01:58 +0100)]
Html: Fix Debug truncation to not randomly panic
Ow!
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 16 May 2022 02:08:23 +0000 (03:08 +0100)]
spec loop detecton: Write down the rule
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 16 May 2022 01:58:39 +0000 (02:58 +0100)]
spec loop detecton: Detect for magic too.
Introduce PieceLoadArgs::recursing, and use it in the one current call
site.
Make the error more general. So now we can call it for magic too.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 16 May 2022 01:36:32 +0000 (02:36 +0100)]
clippy: Misc minor improvements
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 16 May 2022 01:31:06 +0000 (02:31 +0100)]
clippy: Remove a redundant pair of parens
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 16 May 2022 01:03:45 +0000 (02:03 +0100)]
cli bundles: autozip: Use Deflate
This is considerably faster.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Ian Jackson [Mon, 16 May 2022 00:59:41 +0000 (01:59 +0100)]
progress reporting: Nest: Provide and use more desc plumbing
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>