Subscription Filters

Page Summary

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 5e94b4173f5cde8655bae27c54cf2c58f59318b7 https://github.com/dreamwidth/dreamwidth/commit/5e94b4173f5cde8655bae27c54cf2c58f59318b7 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M cgi-bin/DW/Request/Plack.pm

Log Message:


Remove debug logging from DW::Request::Plack

Leftover info-level logs in header_in() and address() that fire on every request through the proxy middleware.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 20ed252f2bf4d768e186b84b26d9d28bd5333580 https://github.com/dreamwidth/dreamwidth/commit/20ed252f2bf4d768e186b84b26d9d28bd5333580 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: A src/dwtool/README.md

Log Message:


Add README for dwtool

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: eb6285917454cd7e23d011380d965a09b327158d https://github.com/dreamwidth/dreamwidth/commit/eb6285917454cd7e23d011380d965a09b327158d Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M CLAUDE.md M t/00-compile.t

Log Message:


Skip all Apache2::Const modules in compile test

All five modules that import Apache2::Const are vulnerable to the same load-order issue: whichever loads first determines which constant groups get compiled, and subsequent use statements are no-ops. This only affects the shared-process test harness, not production where load order is controlled by mod_perl.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: a6a9bebf1ab547544e60ff260464a20289d4f926 https://github.com/dreamwidth/dreamwidth/commit/a6a9bebf1ab547544e60ff260464a20289d4f926 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: A src/dwtool/.gitignore A src/dwtool/go.mod A src/dwtool/go.sum A src/dwtool/internal/aws/cloudwatch.go A src/dwtool/internal/aws/ecs.go A src/dwtool/internal/config/config.go A src/dwtool/internal/config/workers.go A src/dwtool/internal/github/github.go A src/dwtool/internal/model/types.go A src/dwtool/internal/ui/app.go A src/dwtool/internal/ui/dashboard.go A src/dwtool/internal/ui/deploy.go A src/dwtool/internal/ui/detail.go A src/dwtool/internal/ui/filter.go A src/dwtool/internal/ui/help.go A src/dwtool/internal/ui/keys.go A src/dwtool/internal/ui/logs.go A src/dwtool/internal/ui/styles.go A src/dwtool/main.go

Log Message:


Add dwtool — ECS deployment TUI for Dreamwidth

Bubble Tea-based terminal UI for managing ECS services, replacing the need to bounce between GitHub Actions, AWS Console, and CLI.

Features: - Dashboard with all ~42 services grouped by Web/Workers/Proxy - Service detail view with running tasks and metadata - Deploy flow: pick GHCR image, confirm, trigger GitHub Actions workflow - CloudWatch log viewer with follow mode and search - Shell access via ECS Exec (suspends TUI, resumes on exit) - Help overlay (?) and service filter (/) - Workers grouped by category from config/workers.json

Stack: Go 1.23, Bubble Tea v1, Lipgloss v1, aws-sdk-go-v2

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Commit: 294403f553295d08487c34b625908d7813bb82a2 https://github.com/dreamwidth/dreamwidth/commit/294403f553295d08487c34b625908d7813bb82a2 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M cgi-bin/DW/Request/Apache2.pm M t/00-compile.t

Log Message:


Revert Apache2::Const workaround, skip in compile test instead

Revert DW::Request::Apache2 back to the idiomatic mod_perl form. The load-order issue (earlier modules pre-loading Apache2::Const without :http) only manifests when all modules share one process in the test harness, not in production. Skip this module in t/00-compile.t rather than risk changing production behavior.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

Compare: https://github.com/dreamwidth/dreamwidth/compare/3fe0010b6279...294403f55329

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 3fe0010b62799cf29905cde092e25b78b8b6c834 https://github.com/dreamwidth/dreamwidth/commit/3fe0010b62799cf29905cde092e25b78b8b6c834 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M .github/workflows/tasks/web-canary-service.json M .github/workflows/tasks/web-shop-service.json M .github/workflows/tasks/web-stable-service.json M .github/workflows/tasks/web-unauthenticated-service.json A terraform/import.sh M terraform/providers.tf M terraform/web.tf

Log Message:


Give each web service its own CloudWatch log group

Web services previously shared /dreamwidth/web, making it hard to view logs for a specific service. Each now gets /dreamwidth/web/{key} matching how workers already have /dreamwidth/worker/{name}.

  • Add per-web log groups in terraform (keep legacy group for old logs)
  • Update task definition JSONs to use per-service log groups
  • Add S3 backend config for terraform state
  • Add terraform import script for bootstrapping state

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: ace801e57d9f8b5cb4fe833aacca10c6eae6a2ab https://github.com/dreamwidth/dreamwidth/commit/ace801e57d9f8b5cb4fe833aacca10c6eae6a2ab Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M .github/workflows/ci.yml M cgi-bin/DW/Request/Apache2.pm

Log Message:


Fix Apache2::Const load-order issue in compile tests

When modules like LJ::URI load Apache2::Const with :common first, a subsequent use Apache2::Const -compile => qw/ :common :http / is a no-op because Perl skips the import for already-loaded modules. This leaves the :http constants uncompiled, failing as barewords under strict subs.

Use an explicit BEGIN { Apache2::Const->compile(...) } which works regardless of prior load state. Also revert the unnecessary PERL5LIB workaround from the CI workflow.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: ef93698f49b622ae9026cee6c45b50231347da06 https://github.com/dreamwidth/dreamwidth/commit/ef93698f49b622ae9026cee6c45b50231347da06 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M .github/workflows/ci.yml

Log Message:


Add mod_perl lib path to PERL5LIB in CI workflow

Apache2::Const and other mod_perl Perl modules are installed to a non-standard path that only Apache adds to [personal profile] inc. Dynamically find the path via dpkg so compile tests pass for all modules.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: eab03fce7e7953b512009ad9646522f1183f618d https://github.com/dreamwidth/dreamwidth/commit/eab03fce7e7953b512009ad9646522f1183f618d Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: A .github/workflows/ci.yml

Log Message:


Add CI workflow for tidy and compile checks

Runs t/02-tidy.t (code formatting) and t/00-compile.t (module compilation) on PRs and pushes to main, using the existing devcontainer image which has all dependencies pre-installed.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: e90510483267365e138d4ecd15b0fe0caa4e8ece https://github.com/dreamwidth/dreamwidth/commit/e90510483267365e138d4ecd15b0fe0caa4e8ece Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: R etc/kubernetes/datadog/README.md R etc/kubernetes/datadog/datadog-agent-rbac.yaml R etc/kubernetes/datadog/datadog-cluster-agent-rbac.yaml R etc/kubernetes/datadog/datadog-cluster-agent-service.yaml R etc/kubernetes/datadog/datadog-cluster-agent.yaml R etc/kubernetes/datadog/datadog-custom-metrics-server.yaml R etc/kubernetes/datadog/datadog-secret.yaml R etc/kubernetes/datadog/datadog.yaml R etc/kubernetes/datadog/rbac-hpa.yaml R etc/kubernetes/web/secrets/config-local.pl R etc/kubernetes/web/secrets/config-private.pl R etc/kubernetes/web/secrets/config.pl R etc/kubernetes/web/secrets/log4perl.conf R etc/kubernetes/web/update-secrets.sh R etc/kubernetes/web/web-ingress.yaml R etc/kubernetes/web/web-service.yaml R etc/kubernetes/web/web.yaml R etc/kubernetes/workers/generated/birthday-notify.yaml R etc/kubernetes/workers/generated/change-poster-id.yaml R etc/kubernetes/workers/generated/codebuild-notifier.yaml R etc/kubernetes/workers/generated/directory-meta.yaml R etc/kubernetes/workers/generated/distribute-invites.yaml R etc/kubernetes/workers/generated/dw-esn-cluster-subs.yaml R etc/kubernetes/workers/generated/dw-esn-filter-subs.yaml R etc/kubernetes/workers/generated/dw-esn-fired-event.yaml R etc/kubernetes/workers/generated/dw-esn-process-sub.yaml R etc/kubernetes/workers/generated/dw-send-email.yaml R etc/kubernetes/workers/generated/embeds.yaml R etc/kubernetes/workers/generated/esn-cluster-subs.yaml R etc/kubernetes/workers/generated/esn-filter-subs.yaml R etc/kubernetes/workers/generated/esn-fired-event.yaml R etc/kubernetes/workers/generated/esn-process-sub.yaml R etc/kubernetes/workers/generated/metrics-emitter.yaml R etc/kubernetes/workers/generated/resolve-extacct.yaml R etc/kubernetes/workers/generated/spellcheck-gm.yaml R etc/kubernetes/workers/generated/sphinx-copier.yaml R etc/kubernetes/workers/generated/sphinx-search-gm.yaml R etc/kubernetes/workers/generated/synsuck.yaml R etc/kubernetes/workers/hpa-cpu.yaml.template R etc/kubernetes/workers/hpa-sqs.yaml.template R etc/kubernetes/workers/regen-workers.pl R etc/kubernetes/workers/worker.yaml.template

Log Message:


Remove unused Kubernetes manifests — deployment moved to ECS

These configs (web, workers, Datadog) are left over from a previous Kubernetes deployment. All production infrastructure now runs on AWS ECS and nothing in the codebase references these files.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: d8f13b74cf96b5c3e1fe4d10f27131360967f4db https://github.com/dreamwidth/dreamwidth/commit/d8f13b74cf96b5c3e1fe4d10f27131360967f4db Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: R .github/workflows/tasks/worker-send-email-ses-service.json M .github/workflows/worker-deploy.yml M .github/workflows/worker22-deploy.yml M config/workers.json

Log Message:


Remove dead send-email-ses worker — replaced by dw-send-email

The send-email-ses worker script no longer exists in the repo; it was superseded by dw-send-email (DW::TaskQueue/SQS). Remove the orphaned ECS task definition, deploy workflow entries, and workers.json config.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: c6233b86ee47b0048612b74219d0424511ba8fd8 https://github.com/dreamwidth/dreamwidth/commit/c6233b86ee47b0048612b74219d0424511ba8fd8 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: M cgi-bin/Plack/Middleware/DW/SubdomainFunction.pm

Log Message:


Handle __setdomsess in Plack SubdomainFunction middleware

Apache handles /setdomsess on subdomains (shop, journals) in its translation handler to set domain session cookies and redirect. The Plack middleware was missing this, causing 404s on shop.dreamwidth.org when the login flow bounced through /setdomsess.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

2 Thessalonians 1:3

2026-02-09 12:00 pm
[syndicated profile] votd_feed
“[Thanksgiving and Prayer] We ought always to thank God for you, brothers and sisters, and rightly so, because your faith is growing more and more, and the love all of you have for one another is increasing.”

Brought to you by BibleGateway.com. Copyright (C) . All Rights Reserved.
github: shadowy octopus with the head of a robot, emblazoned with the Dreamwidth swirl (Default)
[personal profile] github posting in [site community profile] changelog

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 1d45aae01c9a5a6f56772cbd670115a16ad71c7c https://github.com/dreamwidth/dreamwidth/commit/1d45aae01c9a5a6f56772cbd670115a16ad71c7c Author: Mark Smith mark@dreamwidth.org Date: 2026-02-08 (Sun, 08 Feb 2026)

Changed paths: R .github/workflows/shop-build.yml R .github/workflows/shop-deploy.yml M .github/workflows/web22-deploy.yml R etc/docker/shop/Dockerfile R etc/docker/shop/config/.dir_scope R etc/docker/shop/config/dreamwidth-dev.conf R etc/docker/shop/config/dreamwidth-prod.conf R etc/docker/shop/config/etc/apache2/apache2.conf R etc/docker/shop/config/etc/apache2/conf-available/charset.conf R etc/docker/shop/config/etc/apache2/conf-available/localized-error-pages.conf R etc/docker/shop/config/etc/apache2/conf-available/other-vhosts-access-log.conf R etc/docker/shop/config/etc/apache2/conf-available/security.conf R etc/docker/shop/config/etc/apache2/conf-available/serve-cgi-bin.conf R etc/docker/shop/config/etc/apache2/conf-enabled/security.conf R etc/docker/shop/config/etc/apache2/envvars R etc/docker/shop/config/etc/apache2/magic R etc/docker/shop/config/etc/apache2/mods-available/access_compat.load R etc/docker/shop/config/etc/apache2/mods-available/actions.conf R etc/docker/shop/config/etc/apache2/mods-available/actions.load R etc/docker/shop/config/etc/apache2/mods-available/alias.conf R etc/docker/shop/config/etc/apache2/mods-available/alias.load R etc/docker/shop/config/etc/apache2/mods-available/allowmethods.load R etc/docker/shop/config/etc/apache2/mods-available/apreq2.load R etc/docker/shop/config/etc/apache2/mods-available/asis.load R etc/docker/shop/config/etc/apache2/mods-available/auth_basic.load R etc/docker/shop/config/etc/apache2/mods-available/auth_digest.load R etc/docker/shop/config/etc/apache2/mods-available/auth_form.load R etc/docker/shop/config/etc/apache2/mods-available/authn_anon.load R etc/docker/shop/config/etc/apache2/mods-available/authn_core.load R etc/docker/shop/config/etc/apache2/mods-available/authn_dbd.load R etc/docker/shop/config/etc/apache2/mods-available/authn_dbm.load R etc/docker/shop/config/etc/apache2/mods-available/authn_file.load R etc/docker/shop/config/etc/apache2/mods-available/authn_socache.load R etc/docker/shop/config/etc/apache2/mods-available/authnz_fcgi.load R etc/docker/shop/config/etc/apache2/mods-available/authnz_ldap.load R etc/docker/shop/config/etc/apache2/mods-available/authz_core.load R etc/docker/shop/config/etc/apache2/mods-available/authz_dbd.load R etc/docker/shop/config/etc/apache2/mods-available/authz_dbm.load R etc/docker/shop/config/etc/apache2/mods-available/authz_groupfile.load R etc/docker/shop/config/etc/apache2/mods-available/authz_host.load R etc/docker/shop/config/etc/apache2/mods-available/authz_owner.load R etc/docker/shop/config/etc/apache2/mods-available/authz_user.load R etc/docker/shop/config/etc/apache2/mods-available/autoindex.conf R etc/docker/shop/config/etc/apache2/mods-available/autoindex.load R etc/docker/shop/config/etc/apache2/mods-available/buffer.load R etc/docker/shop/config/etc/apache2/mods-available/cache.load R etc/docker/shop/config/etc/apache2/mods-available/cache_disk.conf R etc/docker/shop/config/etc/apache2/mods-available/cache_disk.load R etc/docker/shop/config/etc/apache2/mods-available/cache_socache.load R etc/docker/shop/config/etc/apache2/mods-available/cern_meta.load R etc/docker/shop/config/etc/apache2/mods-available/cgi.load R etc/docker/shop/config/etc/apache2/mods-available/cgid.conf R etc/docker/shop/config/etc/apache2/mods-available/cgid.load R etc/docker/shop/config/etc/apache2/mods-available/charset_lite.load R etc/docker/shop/config/etc/apache2/mods-available/data.load R etc/docker/shop/config/etc/apache2/mods-available/dav.load R etc/docker/shop/config/etc/apache2/mods-available/dav_fs.conf R etc/docker/shop/config/etc/apache2/mods-available/dav_fs.load R etc/docker/shop/config/etc/apache2/mods-available/dav_lock.load R etc/docker/shop/config/etc/apache2/mods-available/dbd.load R etc/docker/shop/config/etc/apache2/mods-available/deflate.conf R etc/docker/shop/config/etc/apache2/mods-available/deflate.load R etc/docker/shop/config/etc/apache2/mods-available/dialup.load R etc/docker/shop/config/etc/apache2/mods-available/dir.conf R etc/docker/shop/config/etc/apache2/mods-available/dir.load R etc/docker/shop/config/etc/apache2/mods-available/dump_io.load R etc/docker/shop/config/etc/apache2/mods-available/echo.load R etc/docker/shop/config/etc/apache2/mods-available/env.load R etc/docker/shop/config/etc/apache2/mods-available/expires.load R etc/docker/shop/config/etc/apache2/mods-available/ext_filter.load R etc/docker/shop/config/etc/apache2/mods-available/file_cache.load R etc/docker/shop/config/etc/apache2/mods-available/filter.load R etc/docker/shop/config/etc/apache2/mods-available/headers.load R etc/docker/shop/config/etc/apache2/mods-available/heartbeat.load R etc/docker/shop/config/etc/apache2/mods-available/heartmonitor.load R etc/docker/shop/config/etc/apache2/mods-available/http2.load R etc/docker/shop/config/etc/apache2/mods-available/ident.load R etc/docker/shop/config/etc/apache2/mods-available/imagemap.load R etc/docker/shop/config/etc/apache2/mods-available/include.load R etc/docker/shop/config/etc/apache2/mods-available/info.conf R etc/docker/shop/config/etc/apache2/mods-available/info.load R etc/docker/shop/config/etc/apache2/mods-available/lbmethod_bybusyness.load R etc/docker/shop/config/etc/apache2/mods-available/lbmethod_byrequests.load R etc/docker/shop/config/etc/apache2/mods-available/lbmethod_bytraffic.load R etc/docker/shop/config/etc/apache2/mods-available/lbmethod_heartbeat.load R etc/docker/shop/config/etc/apache2/mods-available/ldap.conf R etc/docker/shop/config/etc/apache2/mods-available/ldap.load R etc/docker/shop/config/etc/apache2/mods-available/log_debug.load R etc/docker/shop/config/etc/apache2/mods-available/log_forensic.load R etc/docker/shop/config/etc/apache2/mods-available/lua.load R etc/docker/shop/config/etc/apache2/mods-available/macro.load R etc/docker/shop/config/etc/apache2/mods-available/mime.conf R etc/docker/shop/config/etc/apache2/mods-available/mime.load R etc/docker/shop/config/etc/apache2/mods-available/mime_magic.conf R etc/docker/shop/config/etc/apache2/mods-available/mime_magic.load R etc/docker/shop/config/etc/apache2/mods-available/mpm_event.conf R etc/docker/shop/config/etc/apache2/mods-available/mpm_event.load R etc/docker/shop/config/etc/apache2/mods-available/mpm_prefork.conf R etc/docker/shop/config/etc/apache2/mods-available/mpm_prefork.load R etc/docker/shop/config/etc/apache2/mods-available/mpm_worker.conf R etc/docker/shop/config/etc/apache2/mods-available/mpm_worker.load R etc/docker/shop/config/etc/apache2/mods-available/negotiation.conf R etc/docker/shop/config/etc/apache2/mods-available/negotiation.load R etc/docker/shop/config/etc/apache2/mods-available/perl.load R etc/docker/shop/config/etc/apache2/mods-available/proxy.conf R etc/docker/shop/config/etc/apache2/mods-available/proxy.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_ajp.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_balancer.conf R etc/docker/shop/config/etc/apache2/mods-available/proxy_balancer.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_connect.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_express.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_fcgi.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_fdpass.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_ftp.conf R etc/docker/shop/config/etc/apache2/mods-available/proxy_ftp.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_hcheck.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_html.conf R etc/docker/shop/config/etc/apache2/mods-available/proxy_html.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_http.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_http2.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_scgi.load R etc/docker/shop/config/etc/apache2/mods-available/proxy_wstunnel.load R etc/docker/shop/config/etc/apache2/mods-available/ratelimit.load R etc/docker/shop/config/etc/apache2/mods-available/reflector.load R etc/docker/shop/config/etc/apache2/mods-available/remoteip.load R etc/docker/shop/config/etc/apache2/mods-available/reqtimeout.conf R etc/docker/shop/config/etc/apache2/mods-available/reqtimeout.load R etc/docker/shop/config/etc/apache2/mods-available/request.load R etc/docker/shop/config/etc/apache2/mods-available/rewrite.load R etc/docker/shop/config/etc/apache2/mods-available/sed.load R etc/docker/shop/config/etc/apache2/mods-available/session.load R etc/docker/shop/config/etc/apache2/mods-available/session_cookie.load R etc/docker/shop/config/etc/apache2/mods-available/session_crypto.load R etc/docker/shop/config/etc/apache2/mods-available/session_dbd.load R etc/docker/shop/config/etc/apache2/mods-available/setenvif.conf R etc/docker/shop/config/etc/apache2/mods-available/setenvif.load R etc/docker/shop/config/etc/apache2/mods-available/slotmem_plain.load R etc/docker/shop/config/etc/apache2/mods-available/slotmem_shm.load R etc/docker/shop/config/etc/apache2/mods-available/socache_dbm.load R etc/docker/shop/config/etc/apache2/mods-available/socache_memcache.load R etc/docker/shop/config/etc/apache2/mods-available/socache_shmcb.load R etc/docker/shop/config/etc/apache2/mods-available/speling.load R etc/docker/shop/config/etc/apache2/mods-available/ssl.conf R etc/docker/shop/config/etc/apache2/mods-available/ssl.load R etc/docker/shop/config/etc/apache2/mods-available/status.conf R etc/docker/shop/config/etc/apache2/mods-available/status.load R etc/docker/shop/config/etc/apache2/mods-available/substitute.load R etc/docker/shop/config/etc/apache2/mods-available/suexec.load R etc/docker/shop/config/etc/apache2/mods-available/unique_id.load R etc/docker/shop/config/etc/apache2/mods-available/userdir.conf R etc/docker/shop/config/etc/apache2/mods-available/userdir.load R etc/docker/shop/config/etc/apache2/mods-available/usertrack.load R etc/docker/shop/config/etc/apache2/mods-available/vhost_alias.load R etc/docker/shop/config/etc/apache2/mods-available/xml2enc.load R etc/docker/shop/config/etc/apache2/mods-enabled/access_compat.load R etc/docker/shop/config/etc/apache2/mods-enabled/alias.conf R etc/docker/shop/config/etc/apache2/mods-enabled/alias.load R etc/docker/shop/config/etc/apache2/mods-enabled/apreq2.load R etc/docker/shop/config/etc/apache2/mods-enabled/auth_basic.load R etc/docker/shop/config/etc/apache2/mods-enabled/authn_core.load R etc/docker/shop/config/etc/apache2/mods-enabled/authn_file.load R etc/docker/shop/config/etc/apache2/mods-enabled/authz_core.load R etc/docker/shop/config/etc/apache2/mods-enabled/authz_host.load R etc/docker/shop/config/etc/apache2/mods-enabled/authz_user.load R etc/docker/shop/config/etc/apache2/mods-enabled/autoindex.conf R etc/docker/shop/config/etc/apache2/mods-enabled/autoindex.load R etc/docker/shop/config/etc/apache2/mods-enabled/deflate.conf R etc/docker/shop/config/etc/apache2/mods-enabled/deflate.load R etc/docker/shop/config/etc/apache2/mods-enabled/dir.conf R etc/docker/shop/config/etc/apache2/mods-enabled/dir.load R etc/docker/shop/config/etc/apache2/mods-enabled/env.load R etc/docker/shop/config/etc/apache2/mods-enabled/filter.load R etc/docker/shop/config/etc/apache2/mods-enabled/mime.conf R etc/docker/shop/config/etc/apache2/mods-enabled/mime.load R etc/docker/shop/config/etc/apache2/mods-enabled/mpm_prefork.conf R etc/docker/shop/config/etc/apache2/mods-enabled/mpm_prefork.load R etc/docker/shop/config/etc/apache2/mods-enabled/negotiation.conf R etc/docker/shop/config/etc/apache2/mods-enabled/negotiation.load R etc/docker/shop/config/etc/apache2/mods-enabled/perl.load R etc/docker/shop/config/etc/apache2/mods-enabled/reqtimeout.conf R etc/docker/shop/config/etc/apache2/mods-enabled/reqtimeout.load R etc/docker/shop/config/etc/apache2/mods-enabled/setenvif.conf R etc/docker/shop/config/etc/apache2/mods-enabled/setenvif.load R etc/docker/shop/config/etc/apache2/mods-enabled/status.conf R etc/docker/shop/config/etc/apache2/mods-enabled/status.load R etc/docker/shop/config/etc/apache2/ports.conf R etc/docker/shop/config/etc/apache2/sites-available/000-default.conf R etc/docker/shop/config/etc/apache2/sites-available/default-ssl.conf R etc/docker/shop/config/etc/varnish/dreamwidth.vcl R etc/docker/shop/scripts/setup.sh R etc/docker/shop/scripts/startup-dev.sh R etc/docker/shop/scripts/startup-prod.sh

Log Message:


Consolidate shop image into web22 — they're identical

The shop and web22 Docker images were byte-for-byte identical (same base, same configs, same startup scripts). Remove the separate shop build/deploy workflows and Dockerfile, and add web-shop as a deploy target in web22-deploy.yml instead.

Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com

To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

[syndicated profile] excuseoftheday_feed
telecommunications deregulation

fortuitous

2026-02-09 12:00 am
[syndicated profile] merriamwebster_feed

Merriam-Webster's Word of the Day for February 9, 2026 is:

fortuitous • \for-TOO-uh-tus\  • adjective

Fortuitous is a formal word that usually describes something that comes or happens by a lucky chance. It can also mean “happening by chance” and “fortunate, lucky.”

// The fact that we were both there was a fortuitous coincidence.

// You could not have arrived at a more fortuitous time.

See the entry >

Examples:

“The timing of the hit’s resurgence proved fortuitous: She had nearly wrapped the recording for 2025 full-length Pressure ... and the scorching hot single provided a push in the lead-up.” — Mackenzie Cummings-Grady, Billboard, 11 Nov. 2025

Did you know?

Before its meaning expanded, fortuitous meant one thing only: “happening by chance.” This was no accident; its Latin forebear, fortuitus, shares the same ancient root as fors, the Latin word for “chance.” But the fact that fortuitous sounds like a blend of fortunate and felicitous (“happily suited to an occasion”) likely led to a second meaning of “fortunate, lucky,” with the seeds of the newer sense perhaps planted by writers applying overtones of good fortune to something that is a random occurrence. The “lucky” use has been disparaged by critics, but it is now well established. Irregardless (cough), employing this sense in sterner company may be considered chancy.



Monsters of Ohio: Done!

2026-02-09 01:20 am
[syndicated profile] scalziwhatever_feed

Posted by John Scalzi

And what is Monsters of Ohio? Why, it’s my 20th(!) novel.

What’s it about? Well, if the title is to be trusted, it’s about monsters! In Ohio!

How would I describe it? Two words: “Cozy Cronenberg.”

When can you have it? November this year.

I like it. I hope you’ll like it too.

More to come about this. Stay tuned.

— JS

Nine Tomorrows by Isaac Asimov

2026-02-08 08:57 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


An assortment of (mostly) SF from just before Asimov's Sputnik-inspired hiatus from SF.

Nine Tomorrows by Isaac Asimov

Matthew 5:43-45

2026-02-08 12:00 pm
[syndicated profile] votd_feed
“[Love for Enemies] “You have heard that it was said, ‘Love your neighbor and hate your enemy.’ But I tell you, love your enemies and pray for those who persecute you, that you may be children of your Father in heaven. He causes his sun to rise on the evil and the good, and sends rain on the righteous and the unrighteous.”

Brought to you by BibleGateway.com. Copyright (C) . All Rights Reserved.

meme

2026-02-08 12:00 am
[syndicated profile] merriamwebster_feed

Merriam-Webster's Word of the Day for February 8, 2026 is:

meme • \MEEM\  • noun

Meme is used popularly to refer to an amusing or interesting picture, video, etc. that is spread widely online. It can also refer to an idea, behavior, style, or usage that spreads from person to person within a culture.

// Though the two friends now live on opposite coasts, they still keep in touch constantly, texting and sending their favorite funny cat memes back and forth.

See the entry >

Examples:

“Shane Hinton, a meteorologist for CBS News Miami, posted a Facebook meme earlier this week that showed a 70-degree spread between Miami’s near record 85 and Minneapolis’ 15.” — Howard Cohen, The Miami Herald, 5 Dec. 2025

Did you know?

In his 1976 book The Selfish Gene, British scientist Richard Dawkins defended his newly coined word meme, which he defined as “a unit of cultural transmission.” Having first considered, then rejected, mimeme, he wrote: “Mimeme comes from a suitable Greek root, but I want a monosyllable that sounds a bit like gene.” (The suitable Greek root was mim-, meaning “mime” or “mimic.” The English suffix -eme indicates a distinctive unit of language structure, as in grapheme, lexeme, and phoneme.) Like any good meme, meme caught on and evolved, eventually developing the meaning known to anyone who spends time online, where it’s most often used to refer to any one of those silly captioned photos that the Internet can’t seem to get enough of.



Trophy

2026-02-08 12:14 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll




This detached from a car as it passed me. Missed me, hit a snow bank. When I returned from work, it was still there, so I collected it.

Not sure what happened, except the car's bumper also (mostly) detached.

Ahhhhhhh, sweet sweet steroids

2026-02-07 04:28 pm
azurelunatic: Vivid pink Alaskan wild rose. (Default)
[personal profile] azurelunatic
I got a steroid shot in my right knee on Wednesday, and miraculously I can almost walk again.

I'm still spending a lot of time in bed, but I don't have to strategize about bathroom trips. One cane is sufficient.
[syndicated profile] scalziwhatever_feed

Posted by Athena Scalzi

Though I’ve followed Nadia’s Healthy Kitchen on Instagram for years, I’m not entirely certain I’ve ever actually made anything from her before. I am not vegan, gluten-free, or overly worried about sugar being in my baked goods, so I’m not entirely sure why I wanted to make these “healthy,” vegan, gluten-free, no-bake peanut butter and chocolate brownie batter bark bars, but I did! And now I’m here to tell you how difficult they were to make, and if they’re any good.

To start things off, let’s look at the video she posted that I saw:

You know, that didn’t look too hard! Here’s the recipe so you can follow along while we take a look at the ingredients list.

Despite having King Arthur’s measure-for-measure gluten-free flour in my pantry, this recipe did not call for 1-to-1 gluten-free flour, and instead calls for oat flour and ground almonds.

Now, you might notice a typo in the recipe in the measurements section. Nadia mentions ground almonds four times in the post leading up to the written recipe, and once in the instructions portion of the recipe, but makes the mistake of typing “ground oats” right below “oat flour” in the measurements. One of the comments on her recipe actually points this out, as well.

Moving on, I did not have oat flour or ground almonds, but I did have the cocoa powder, maple syrup, peanut butter, coconut oil, dark chocolate, and, of course, salt. So there I found myself in Kroger’s baking aisle buying Bob’s Red Mill’s Gluten-Free Oat Flour which is different than their Whole-Grain Oat Flour which is not gluten-free, and their Super-Fine Almond Flour (not their Natural Almond Flour, but that one is also gluten-free). I know the recipe says ground almonds, but I figured since the almond flour is basically just really finely ground almonds it’d be like the same thing, right?

Thankfully, this recipe is measured by weight, so this ended up being a very easy, one bowl recipe in which I just dumped all the ingredients in and measured by weight the entire time (except the 2 tbsp of coconut oil and 2 tbsp of peanut butter that are separate for the ganache). You literally just weigh it out and mix it all together, easy peasy!

After mixing the “dough” together (I don’t know if it’s technically considered a dough. What are the qualifications of a dough?), you just roll it out into a thin rectangle and pour the melted chocolate and peanut butter over top, then freeze it just long enough to solidify it enough to cut into bars.

I was genuinely surprised how quick and easy this recipe was, and it’s honestly not very many ingredients. Obviously the oat flour is something that not everyone just has on hand, but if you are gluten-free then maybe that’s more of a common household ingredient for you and this would actually be super convenient for you to whip up.

Okay, so it wasn’t hard and didn’t take very long, but it did it actually taste good? Well, honestly, I quite liked it! I wouldn’t be so bold as to claim that it tastes exactly like a fresh-baked, full-sugar, non-vegan brownie, but it definitely is rich and chocolatey, with some nice flavor from the peanut butter and a melt-in-your-mouth texture. One thing I really like about them is that it can feel like gluten-free treats are always super dry and crumbly, but these are pretty fudgy and not like crumbly sand.

Honestly they look just like they do in the video, and I’m happy I gave them a whirl. I wouldn’t say they’re life-changing, but if you have a gluten-free person in your life you want to whip up a treat for, these might be a really good option.

Final note, the chocolate ganache gets pretty melty at room temp, so I recommend keeping these bad boys in a container in the fridge.

Do you like using measure-for-measure gluten-free flour for your GF recipes, or do you prefer recipes that have flour alternatives like this one? Do you like the addition of the peanut butter, or do you wish this recipe were also nut-free (then I guess the almonds would be out, too)? Let me know in the comments, and have a great day!

-AMS

Locus List

2026-02-07 12:00 pm
marthawells: (Witch King)
[personal profile] marthawells
Some good news:

Both Queen Demon and the Storyteller: A Tanith Lee Tribute anthology, made it on the Locus Recommended Reading List:

https://locusmag.com/2026/02/2025-recommended-reading/

with a lot of other excellent books and stories, including a new section for translated works.

You can also vote on the list for the Locus Awards. Anybody can vote here with an email address: https://poll.voting.locusmag.com/ though they have you fill out a demographic survey first with how many books you read per year, etc.

Of course a lot of great work did not end up on the list, like I was surprised not to see The Witch Roads and The Nameless Land duology by Kate Elliott, which I thought was excellent.

Style Credit

December 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2023

Expand Cut Tags

No cut tags
Powered by Dreamwidth Studios
Page generated 2026-02-13 01:07 pm