Skip to main content

Posts by sapphirecat

  1. Theme Updated (2022)

    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.

  2. dynacache version 1.1.2 released!

    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:

    1. The build is done with Go 1.18.1 with GOAMD64=v2 set.
    2. Response to version is closer to the release version number than before. It's still not strictly correct, unfortunately.
    3. CLI flag -verbose and env var DYNACACHE_VERBOSE (uint8) for controlling the logging level.
    4. Missing append and prepend commands are accepted.
    5. Idle clients will be disconnected during normal operation.
    6. Graceful server shutdown happens within a bounded time limit.
    7. 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.

  3. devproxy2 version 2.0.0 released!

    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.

  4. zora colorscheme for Vim/GVim/Neovim

    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.

    It’s now available from zora-theme-vim on my GitHub.

    Examples:

    An example using PHP code
    An example of multiple windows and cursor line option

    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.

  5. Three Vim Plugins

    I dusted off and ENHANCED™ three of my old vim plugins:

    • BlurSave – to save files when the vim window loses focus, probably only useful in gvim
    • PHP PSR-2 auto settings – to set PSR-2 recommended indent settings and margin highlighting for PHP files
    • Indent commands – to offer more semantic shortcuts for controlling tabs/spaces/both and their widths

    They’re all designed to be usable by vim-plug, so I think that means they work in all Vim package managers (Pathogen, Vundle, etc.)

  6. New repo: ashgren GVim colorscheme

    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:

    An example using PHP code
    An example using JavaScript code
    An example using Go code
    An example using Python code
    An example using Markdown
    An example of multiple windows and cursor line option

    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.

  7. Theme Updated

    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.

  8. cloud-maker 0.8.4: minor bugfixes

    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.

    This release is available as source on github, and as a wheel on PyPI.

    Any and all bugs should be reported to the issue tracker on github.

    Note: this release was actually made January 24th, but I forgot to write about it here (and tag the git repository) until February 4th.

  9. cloud-maker 0.8.3: new config variable, accurate requirements

    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.

    This release is available as source on github, and as a wheel on PyPI.

    Any and all bugs should be reported to the issue tracker on github.

sapphirecat's...