Database connections as subprocesses Lassi Kortela (14 Sep 2019 07:30 UTC)
Re: Database connections as subprocesses John Cowan (15 Sep 2019 01:06 UTC)
Re: Database connections as subprocesses Lassi Kortela (15 Sep 2019 06:28 UTC)
Re: Database connections as subprocesses John Cowan (15 Sep 2019 23:02 UTC)
Re: Database connections as subprocesses Lassi Kortela (16 Sep 2019 08:22 UTC)
Binary S-expressions Lassi Kortela (16 Sep 2019 17:49 UTC)
(missing)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 09:46 UTC)
Re: Binary S-expressions Alaric Snell-Pym (17 Sep 2019 11:33 UTC)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 12:05 UTC)
Re: Binary S-expressions Alaric Snell-Pym (17 Sep 2019 12:23 UTC)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 13:20 UTC)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 13:48 UTC)
Re: Binary S-expressions Alaric Snell-Pym (17 Sep 2019 15:52 UTC)
Re: Binary S-expressions hga@xxxxxx (17 Sep 2019 16:25 UTC)
Re: Binary S-expressions rain1@xxxxxx (17 Sep 2019 09:28 UTC)
Re: Binary S-expressions Lassi Kortela (17 Sep 2019 10:05 UTC)
Python library for binary S-expressions Lassi Kortela (17 Sep 2019 21:51 UTC)
R7RS library for binary S-expressions Lassi Kortela (17 Sep 2019 23:56 UTC)
Re: Database connections as subprocesses Alaric Snell-Pym (16 Sep 2019 08:40 UTC)
Re: Database connections as subprocesses Lassi Kortela (16 Sep 2019 09:22 UTC)
Re: Database connections as subprocesses Alaric Snell-Pym (16 Sep 2019 11:28 UTC)
Re: Database connections as subprocesses hga@xxxxxx (16 Sep 2019 13:28 UTC)
Re: Database connections as subprocesses Lassi Kortela (16 Sep 2019 13:50 UTC)
Re: Database connections as subprocesses hga@xxxxxx (17 Sep 2019 13:59 UTC)
Re: Database connections as subprocesses John Cowan (16 Sep 2019 22:41 UTC)
Re: Database connections as subprocesses Lassi Kortela (17 Sep 2019 09:57 UTC)
Re: Database connections as subprocesses Lassi Kortela (17 Sep 2019 10:22 UTC)

Re: Binary S-expressions Lassi Kortela 17 Sep 2019 13:48 UTC

This is getting off-topic for a persistence list, but for lack of a
better forum...

> timestamps present at least the following concerns:
>
> - Precision
> - Accuracy
> - Different epochs
> - Different time zones
> - Leap seconds (UTC vs TAI)
> - YYYY-MM-DD dates vs seconds-since-Epoch timestamps
>
> getting people to actually follow it instead
> of merely pretending to follow it is ten times harder

There's a similar problem with strings. You can specify that "strings
are UTF-8" but you just know people are going to stuff broken UTF-8 and
random charsets into it :)

It seems the only solution that might work is to have a separate "I know
what I'm doing" mode that is off by default.

So the default string encoding is "assume it's UTF-8 but don't be
surprised if that fails to decode or looks weird". There would be a
separate mode for "no, really, I promise that it's charset X" where
UTF-8 is one possible value of X.

With timestamps, people are probably going to notice it they are off by
an hour or more. So we can mostly trust people to get the date, time and
timezone right (so long as timezone information is always preserved or
the timestamp is UTC; people have wised up enough since the nineties
that this is mostly the case now). But I'd put any promises about
UTC-vs-TAI behind a separate "I know what I'm doing" flag. The default
simply would not say whether it is UTC or TAI! What's more, even people
who know about UTC vs TAI do not necessarily have an up-to-date leap
second table, so the time may still be off.

string -- name of the encoding, plus contents of the string. The
encoding name is usually blank. That means: "Assume UTF-8 if you don't
know better, but don't be surprised if you get weird arbitrary bytes."
If the encoding is explicitly filled in, the writer claims that they
know that's the real encoding.

time -- Positive or negative seconds since epoch, and a timezone. The
epoch is always 1970; the seconds are always GMT/UTC/TAI; you can apply
the timezone to the given seconds manually if you want to, or opt to
keep them as GMT/UTC/TAI. There's a separate leap-second adjustment
flag: UTC, TAI, or "don't know". The default is "don't know". If it's
UTC, the writer claims they know the timestamp comes from a source that
tracks UTC. If it's TAI, the writer claims that it comes from a source
with an up-to-date leap-second table that tracks TAI.