I added a light theme for user-agents that support preferring light color
schemes. Dark is still the default, because it’s the correct way to have a
color scheme, despite people shouting at me on the internet from 2002 until
the advent of dark mode that “dark themes go against biological fact.” How
strange that the biological essentialism vanished overnight, almost as if it
were never true.
While I was updating the stylesheet, I fixed some 2009-isms in it, like
IE-specific rules and prefixed border-radius rules. This is the future.
The dynacache 1.1.2 release is made available to the public in binary form
for AMD64 (v2 architecture level) Linux.
What is dynacache?
dynacache is a memcached server that stores data in Amazon DynamoDb. It
recognizes the session-locking protocol of PHP's memcached extension,
converting them into locks in DynamoDb that are compatible with the AWS
SDK for PHP. Data is nearly compatible: the data is stored as a
binary type, because the SDK for Go requires a string type to be valid
UTF-8, and PHP makes no such promise.
For best results with PHP, set the following options in the relevant
php.ini file:
; dynacache doesn't support the binary protocol
memcached.sess_binary_protocol = Off
memcached.sess_prefix = memc.sess.key.
; use dynacache to store sessions
session.save_handler = memcached
session.save_path = localhost:11211
For available configuration, dynacache supports the standard AWS SDK
locations for credentials, and some optional settings shown when running
dynacache -help.
Release Details
Since the 1.0.0 release, which is the last public version, the following
changes have been made:
The build is done with Go 1.18.1 with GOAMD64=v2 set.
Response to version is closer to the release version number than
before. It's still not strictly correct, unfortunately.
CLI flag -verbose and env var DYNACACHE_VERBOSE (uint8) for
controlling the logging level.
Missing append and prepend commands are accepted.
Idle clients will be disconnected during normal operation.
Graceful server shutdown happens within a bounded time limit.
Repeated signals will cause an immediate shutdown.
This project is not Open Source due to the reappointment of Richard
Stallman to the FSF Board. sapphirecat stands opposed to child
pornography, sex trafficking, sexism, and redefining rape. Leadership
creates the culture of the movement, and that culture gets associated
implicitly with any participant. It is imperative, then, for leaders to
own their mistakes.
The core binary has been stable for months, so I finally tagged
v2.0.0 and made a GitHub Release with it.
Recent changes have added a Dockerfile and related support for isolating
the version of Go used to build devproxy2 from the host’s version of
Go, so that I can continue to support “1.13+” as long as my dependencies
do.
I created a new colorscheme! It’s based on Zora’s Domain and the
surrounding areas in The Legend of Zelda: Breath of the Wild. It’s a
light theme, making heavy use of blue, green, purple, and salmon.
This is less of an experiment and more of a complete theme than ashgren
was, so it’s correspondingly more complete, and it supports
256-color terminals.
I dusted off an old PuTTY theme, from when I was using Windows Vista,
and ported it to GVim (and only GVim.)
The repository has been published as
ashgren-gvim on my
GitHub.
ashgren is a low-contrast theme with a mid-tone background. A lot of
light themes use a blazing white background, which makes it difficult to
distinguish among the darker colors they use.
Examples:
As a PuTTY theme, ashgren used a set of darker (regular) and lighter
(bold) foreground colors, but this port ends up mostly using the darker
side of the palette.
I accidentally discovered that the theme I was using performs an
extremely inaccurately named “reset” that wipes out the only style
:focus really has. So I put something back on all the links.
The colors got switched up a bit, too. There’s less purple/yellow and
more red/blue. I even reworked the 800px design to resize fluidly down
to 320px, for an improved mobile experience.
The desktop layout has
Before and
After screenshots.
I discovered the module which I had intended to use as a version check
via python -m cloud_maker didn’t actually work. There was no way to
execute it, to begin with. It also turned out that sys.version_info
wasn’t something that could be used with tuple unpacking in Python 2.
The --help option used to print the usage information, and then a
traceback for a SystemExit exception. I narrowed this down to an
overzealous try/except block, so now it recognizes SystemExit
and KeyboardInterrupt and skips the traceback for those.
Finally, the documentation was enhanced slightly. I was rather
surprised, when finding out how the version check was supposed to work,
that there wasn’t the slightest bit in the README about how this was
intended to be invoked. The slightest bit is now there.
The 0.8.3 release adds an INI_DIR variable that will be substituted
into values in the configuration file, allowing for paths to be
specified relative to the config file. It turned out that this was a
feature I wanted, to keep the bundled data somewhat more local than
requiring a fixed path under HOME.
While testing this change, I discovered that the Python 3 line prior to
3.3.4 had a bug in the tarfile module. When using the module exactly
as I am (with an externally-provided file object and gzip compression),
the tar data doesn’t get written into the gzip stream on disk.
That was reported as issue 20238
and fixed by the final releases of 3.3.4 and 3.4.0, while 2.7 has never
been affected.
Due to the widespread availability of 2.7 on systems that packaged
affected versions of Python, I decided the pragmatic path would be to
recommend Python 2 on those systems and raise the Python 3 version
requirement to 3.3.4. I haven’t isolated the fix by diffing Python
releases, nor do I know what I would need to patch over in order to work
around it.