1 Corinthians 2:9
2026-02-02 12:00 pmBrought to you by BibleGateway.com. Copyright (C) . All Rights Reserved.
Merriam-Webster's Word of the Day for February 2, 2026 is:
prescience \PRESH-ee-unss\ noun
Prescience is a formal word used to refer to the ability to see or anticipate what will or might happen in the future.
// He predicted the public's response to the proposed legislation with remarkable prescience.
Examples:
"... novelists have always faced technological and social upheaval. They have mostly addressed it in one of two ways. The first is to imagine an altered future with the prescience of science fiction; Mary Shelley's warning that humans are not always in control of their creations is, if anything, even more resonant today than when Frankenstein was first published in 1818." â Jessi Jezewska Stevens, The Dial, 2 Dec. 2025
Did you know?
If you know the origin of science you already know half the story of prescience. Science comes from the Latin verb sciĆ, scÄ«re, "to know," also source of such words as conscience, conscious, and omniscience. Prescience has as its ancestor a word that attached prae-, a predecessor of pre-, to this root to make praescire, meaning "to know beforehand."
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: d9d5d5787dec9abc065bafbdd67b6809ae059928 https://github.com/dreamwidth/dreamwidth/commit/d9d5d5787dec9abc065bafbdd67b6809ae059928 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M app.psgi A cgi-bin/Plack/Middleware/DW/SubdomainFunction.pm A t/plack-subdomain.t
Log Message:
Add subdomain function middleware for Plack
Plack had no equivalent of the Apache::LiveJournal::trans subdomain routing logic, so requests to shop.dreamwidth.org/randomgift would 404 instead of redirecting to www.dreamwidth.org/shop/randomgift.
New middleware handles functional subdomains (shop, support, mobile) by checking %LJ::SUBDOMAIN_FUNCTION and redirecting or rewriting the URI, matching Apache behavior.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: df35b32bd905c67321964aee138d2ddecf5ee559 https://github.com/dreamwidth/dreamwidth/commit/df35b32bd905c67321964aee138d2ddecf5ee559 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M bin/starman
Log Message:
Add extlib to
inc in bin/starman for production use
Production containers don't set PERL5LIB, so Plack::Runner wasn't found. Add use lib to include extlib before loading Plack modules.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 1dba291b136e2650d4770ccb59b89588e09ffdc4 https://github.com/dreamwidth/dreamwidth/commit/1dba291b136e2650d4770ccb59b89588e09ffdc4 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M .github/workflows/tasks/web-shop-service.json M bin/starman M etc/docker/shop/Dockerfile M etc/docker/shop/scripts/startup-prod.sh
Log Message:
Add Starman to production web-shop container
Run Starman alongside Apache+Varnish in the shop container on port 8080, exposed directly without Varnish. The load balancer can route traffic to either 6081 (VarnishâApache) or 8080 (Starman) for gradual migration.
Remove hardcoded LJ_IS_DEV_SERVER from bin/starman so it no longer forces dev mode in production â the devcontainer sets this via containerEnv.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: dbe48689a185806364203cdd1757692b54141ec0 https://github.com/dreamwidth/dreamwidth/commit/dbe48689a185806364203cdd1757692b54141ec0 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M cgi-bin/modperl_subs.pl
Log Message:
Fix Apache2::Connection XS bootstrap for client_ip method
The Plack merge removed use Apache2::Const qw/ :common / from
LJ/S2.pm, which had been bootstrapping Apache2::Connection XS methods
as a side effect. Without it, $conn->client_ip fails at runtime.
Explicitly load Apache2::Connection in modperl_subs.pl.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 22120106eb6013b4857e3d8f233d0b34dfaad9bd https://github.com/dreamwidth/dreamwidth/commit/22120106eb6013b4857e3d8f233d0b34dfaad9bd Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M .devcontainer/config/etc/apache2/ports.conf M .devcontainer/devcontainer.json A .devcontainer/plack/Dockerfile A .devcontainer/plack/devcontainer.json A .devcontainer/setup.sh M .devcontainer/start.sh M .gitignore R Build.PL M CLAUDE.md A app.psgi M bin/checkconfig.pl A bin/starman M cgi-bin/Apache/BML.pm M cgi-bin/Apache/LiveJournal.pm M cgi-bin/DBI/Role.pm A cgi-bin/DW/BML.pm M cgi-bin/DW/Controller/Create.pm A cgi-bin/DW/Controller/Journal.pm M cgi-bin/DW/Controller/Login.pm A cgi-bin/DW/Controller/Userpic.pm M cgi-bin/DW/Request.pm M cgi-bin/DW/Request/Apache2.pm M cgi-bin/DW/Request/Base.pm A cgi-bin/DW/Request/Plack.pm M cgi-bin/DW/Request/Standard.pm M cgi-bin/DW/Widget/AccountStatistics.pm M cgi-bin/LJ/Global/Defaults.pm M cgi-bin/LJ/S2.pm M cgi-bin/LJ/User/Account.pm M cgi-bin/LJ/Web.pm A cgi-bin/Plack/Middleware/DW/Auth.pm A cgi-bin/Plack/Middleware/DW/ConcatRes.pm A cgi-bin/Plack/Middleware/DW/Dev.pm A cgi-bin/Plack/Middleware/DW/Redirects.pm A cgi-bin/Plack/Middleware/DW/RequestWrapper.pm A cgi-bin/Plack/Middleware/DW/Sysban.pm A cgi-bin/Plack/Middleware/DW/UniqCookie.pm A cgi-bin/Plack/Middleware/DW/XForwardedFor.pm M cgi-bin/ljlib.pl M cgi-bin/modperl_subs.pl A doc/PLACK.md M doc/dependencies-cpanm M doc/dependencies-system M src/s2/S2.pm A t/plack-app.t A t/plack-auth.t A t/plack-bml.t A t/plack-controller.t A t/plack-integration.t A t/plack-middleware.t A t/plack-static.t A t/plack-sysban.t M views/login.tt
Log Message:
Plack/Starman Support (#3512)
The widget calls LJ::Memories::count() but relied on modperl_subs.pl to load the module at startup rather than declaring its own dependency.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Override $SUBDOMAIN_RULES for dev containers to use path-based format (/~username) instead of subdomain-based format (username.domain). Fix journal_base() to construct URLs from the request host when the rule has an empty domain.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Plack testing with devcontainer
Fix Plack request lifecycle and integration tests
DW::Request->get now always creates a fresh request when plack_env is provided, fixing the issue where LJ::start_request's internal reset/get cycle would leave DW::Request in a stale state. Also fixes DW::Request::Plack->status to work as a getter, adds a default 404 for unmatched routes in app.psgi, and rewrites the integration test to properly monkey-patch after module loading. Includes tidyall formatting.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Add missing methods to DW::Request::Plack (pnote, note, content, content_type getter/setter, no_cache, get_remote_ip) so controllers can render through the Plack stack. Route all requests through DW::Routing in app.psgi instead of only /api/ paths, and use the routing return value to set HTTP 200 status for handled requests.
Remove the dead LJ::Procnotify::check() call from RequestWrapper middleware â the module was deleted but the call was left behind.
New test t/plack-controller.t validates GET /login renders through the real routing + controller + template pipeline via Plack::Test.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Add Plack::Middleware::DW::UniqCookie that calls LJ::UniqCookie->ensure_cookie_value to generate and set the unique tracking cookie on every request, matching Apache behavior.
This required two supporting changes:
LJ::is_web_context() now returns true when a DW::Request is active, not just under mod_perl. Many modules gate web-only behavior on this check, so Plack requests were silently skipping cookie, auth, and other web-context logic.
DW::Request::Plack now implements err_header_out, header_out_add, and err_header_out_add so that add_cookie (which appends Set-Cookie headers) works correctly.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Add DW::ConcatRes middleware to handle concatenated CSS/JS requests (??file1.css,file2.css URLs), ported from Apache::LiveJournal. Wire in Plack::Middleware::Static for plain static files from $LJ::HTDOCS, matching Apache's DocumentRoot behavior.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Load redirect.dat and redirect-local.dat at startup and return 301 for matching paths, preserving query strings. Matches the existing Apache behavior in Apache::LiveJournal::trans().
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Port sysban blocking from Apache::LiveJournal::trans() to a Plack middleware: IP bans, uniq cookie bans, tempbans, and noanon_ip bans for anonymous users. Also remove stale TODOs from app.psgi (srand preforking is a non-issue in modern Perl, BML language setup is irrelevant to Plack but noted in RequestWrapper for future BML port).
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Resolve authenticated user from session cookies via LJ::Session->session_from_cookies() and set the remote user for the request. Bypasses LJ::get_remote() directly since it depends on BML::get_request(), but subsequent get_remote() calls hit the cache. Supports dev server ?as=username impersonation.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
When the request host matches $LJ::EMBED_MODULE_DOMAIN, force routing to /journal/embedcontent regardless of path, matching the Apache trans() behavior. Removes the last placeholder comment from app.psgi.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Add DW::BML module that renders .bml pages using DW::Request instead of Apache APIs, allowing BML pages to work under Plack. The module reuses the core BML engine (bml_decode, bml_block, config loading, scheme/look system) from Apache::BML and only replaces the handler and request adapter layers.
Includes a RequestAdapter that makes DW::Request look like an Apache request object for BML's public API functions (BML::get_request(), etc.), BML fallback routing in app.psgi after DW::Routing, and tests.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Tests that GET /index returns 200, renders with the tropo-red body class, includes tropo-red.css, and has text/html content type. Restructured integration tests so real-routing tests run before the monkey-patch.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Add Starman to dependencies-cpanm and create bin/dev-plack-server for running Dreamwidth under Plack/Starman with a single worker in dev mode. Listens on 0.0.0.0:8080 by default, configurable via --port and --host.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Static middleware now iterates over LJ::get_all_directories('htdocs') so files from extensions (e.g. dw-nonfree) are served alongside base htdocs. Uses pass_through so each layer falls through to the next when a file isn't found in that directory.
Fixes 404s for nonfree static assets like /img/tropo-red/dw_logo.png.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
DW::BML now defines all BML::* package functions (ml, set_language, ehtml, get_request, cookies, etc.) and Apache::BML::* stubs at load time so they're available in any Plack web context. Previously these were only defined by Apache::BML which can't be loaded without Apache2::* modules.
RequestWrapper now calls BML::set_language with LJ::Lang::get_text on every request so translation strings resolve correctly for all pages.
Also fixes infinite recursion in the request adapter's overloaded hash classes by using array-based objects to avoid re-triggering %{} overload.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Fix login error display, URL doubling, and BML scope bridging
Display login errors in login.tt using Foundation alert-box pattern
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
The Redirects middleware used local $LJ::DOMAIN_WEB = "www.$LJ::DOMAIN"
which leaked "www." into downstream cookie-setting code when $DOMAIN is
empty (dev container). Changed to a lexical variable scoped to the
redirect checks only.
Also set $COOKIE_DOMAIN to empty string in dev container defaults to prevent it defaulting to "." (just a dot), which browsers reject.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
DW::Request::Plack::redirect was creating a new Plack::Response, discarding any cookies/headers already set on the request (e.g. login session cookies). Now builds the redirect from the existing response object. Also handle controller redirect responses (arrayrefs) in app.psgi dispatch.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Load real Apache::BML engine under Plack, fix BML strings and dev server usability
Load Apache::BML by stubbing Apache2/APR modules so the BML engine functions (bml_decode, load_conffile, parsein, etc.) are available under Plack without duplicating them. Fake Apache2::Const provides the constants Apache::BML needs.
Remove no-op stubs for BML::register_hook, set_config, register_language, etc. that were preventing BML config files (like BMLInit.pm) from registering the ml_getter hook. This fixes missing translation strings on BML pages.
Keep .bml in the language scope so LJ::Lang::get_text can match scope to .bml.text files, fixing [missing string] on BML pages.
Fix undef warnings in BML::decide_language.
Fix check_referer for dev servers with empty $LJ::DOMAIN by comparing referer host against the request Host header.
Auto-validate email on account creation in dev servers so new accounts can post immediately without email confirmation.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
This supports both localhost (domain socket) and 127.0.0.1 (TCP socket) connections, which get triggered depending on how you access the database.
Under Plack, start_request called DW::Request->reset before the request was created, so the resource registration block (lj_base.css, esn.css, jquery UI, etc.) was skipped. Extract registration into LJ::register_standard_resources() and call it from the Plack middleware after the DW::Request is created.
Also add explicit use LJ::Memories in AccountStatistics widget, which was previously only loaded via modperl_subs.pl.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Replaces the Apache::LiveJournal userpic_trans/userpic_content handlers with a proper controller that works under both Plack and mod_perl.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Extract journal viewing pipeline from Apache::LiveJournal into a shared DW::Controller::Journal module. Journals are now accessible under Plack via path-based URLs (/~username/ and /users/username/).
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
DW::Request no longer loads DW::Request::Apache2 at compile time (to support Plack), so Apache2::RequestRec XS methods like headers_out were never bootstrapped. Load DW::Request::Apache2 explicitly in modperl_subs.pl so all Apache2 XS methods are available during the PerlInitHandler/PerlTransHandler phases.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
When SUBDOMAIN_RULES uses path-based URLs in the dev container, journal_base returns http://host/~user which matches the incoming /~user/ path, causing an infinite redirect. Detect this case and dispatch directly via $determine_view instead of redirecting.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
The HTMLCleaner was stripping S2 stylesheet tags because valid_stylesheet_url didn't recognize /~user/res/N/stylesheet paths. Also adds set_last_modified/meets_conditions to DW::Request::Plack and fixes various uninitialized value warnings in the journal controller.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Default to 3 workers and call it Starman! Because it is!
When SHOPROOT was empty string, links like "$SHOPROOT/account" lost their /shop prefix and resolved to just /account, which doesn't route to the shop controllers.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Always call set_remote(undef) when no authenticated user is found, so LJ::get_remote() won't re-enter session resolution via Login.pm (which crashes on null owner). Add safety comments to LJ_IS_DEV_SERVER env var and ?as= impersonation block. Fix plack-auth.t mocks to properly isolate test state.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Rewrite doc/PLACK.md to reflect current implementation: full middleware stack, routing pipeline, test suite, and security notes. Update CLAUDE.md to reference doc/PLACK.md and fix bin/starman command. Remove unused Build.PL.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Starman is now the primary web server in the devcontainer. Apache config is kept on port 8081 but not started by default (run apache2ctl start manually if needed). Added --log option to bin/starman for access and error logs. Removed spammy debug logging from app.psgi.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Need this to build GD... sometimes? Docker caching memes.
postCreateCommand runs setup.sh for DB init, schema loading, and static compilation. postStartCommand runs start.sh for mysql, memcached, and Starman on every container start. Added --daemonize flag to bin/starman so the process survives the parent shell exiting.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
This was a brief experiment, but no longer needed now that devcontainer is working!
Extraneous, was part of a spurious misfire
Revert unnecessary changes to Utils.pm, Auth.pm; remove DBIx::Class dep
Revert LJ::Utils namespace refactor and LJ::Auth irand import â both were interim experiments that aren't needed. Remove unused DBIx::Class from dependencies-cpanm.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
Outstanding Game of the Year 2025
Authorâs Choice for Best Game of 2025
Outstanding Game over 2 hours in 2025
Outstanding Short Game of 2025
Outstanding Underappreciated Game of 2025
Most Sequel-worthy game of 2025
Outstanding Worldbuilding of 2025
Outstanding Use of Interactivity in 2025
Outstanding Retro Game of 2025
Outstanding Game for Beginners of 2025
Outstanding Multimedia Experience of 2025
Outstanding technical implementation of 2025
Outstanding NPC design of 2025
Outstanding Puzzle design of 2025
Language Categories
Outstanding German Game of 2025
Outstanding Spanish Game of 2025
Outstanding French Game of 2025
Genre Categories
Outstanding Fantasy Game of 2025
Outstanding Espionage Game of 2025
Outstanding Historical Game of 2025
Outstanding Horror Game of 2025
Outstanding Humor Game of 2025
Outstanding Mystery Game of 2025
Outstanding Romance Game of 2025
Outstanding Science Fiction Game of 2025
Outstanding Slice of Life Game of 2025
Outstanding Superhero Game of 2025
Outstanding Surreal Game of 2025
System Categories
Outstanding Inform 7 Game of 2025
Outstanding Twine Game of 2025
Outstanding Choicescript Game of 2025
Outstanding Inform 6 Game of 2025
Outstanding PunyInform Game of 2025
Outstanding Game in a Custom System of 2025
Outstanding Godot Game of 2025
Outstanding Renâpy Game of 2025
Outstanding Adventuron Game of 2025
Outstanding Unity Game of 2025
Outstanding Bitsy Game of 2025
Outstanding Decker Game of 2025
Outstanding Dialog Game of 2025
Outstanding Videotome Game of 2025
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: c6da53efa6c8618b11c94c79599446465d48639c https://github.com/dreamwidth/dreamwidth/commit/c6da53efa6c8618b11c94c79599446465d48639c Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M .github/workflows/update-workflows.pl M bin/upgrading/update-db.pl M cgi-bin/DW/Controller/Login.pm
Log Message:
Tidy, ignore.
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: e9d9de85043730ef93413465a3fbba4417b4015b https://github.com/dreamwidth/dreamwidth/commit/e9d9de85043730ef93413465a3fbba4417b4015b Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M cgi-bin/DW/Controller/Create.pm
Log Message:
Update Create controller to use current translation string keys
The gender and error strings referenced legacy BML keys (/manage/profile/index.bml.) that no longer exist. Updated to use the equivalent keys from the Template Toolkit text file (/manage/profile.tt.).
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 3c2bcb44eabfdcf8893173f5ca57076915b391d2 https://github.com/dreamwidth/dreamwidth/commit/3c2bcb44eabfdcf8893173f5ca57076915b391d2 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M .devcontainer/Dockerfile M doc/dependencies-cpanm M etc/docker/base/Dockerfile M etc/docker/base22/Dockerfile M etc/docker/dev/Dockerfile
Log Message:
Unpin CGI and use metadb resolver for CPAN dependency fetching
CGI was pinned at 4.50 (for SameSite cookie support) but that version is no longer reliably available on CPAN mirrors. All later versions include SameSite support, so the pin is unnecessary. Also remove redundant CGI::Cookie entry since it's part of the CGI distribution.
Switch cpm to --resolver metadb to resolve download failures from default CPAN mirrors (backpan.perl.org, www.cpan.org).
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 6519898408b5ed5106023a78af12de3ab3d0b334 https://github.com/dreamwidth/dreamwidth/commit/6519898408b5ed5106023a78af12de3ab3d0b334 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M bin/upgrading/update-db-general.pl M bin/upgrading/update-db.pl
Log Message:
Fix update-db.pl to not require running twice on fresh databases
Re-check for dbnotes table after table creation so alters can run in the same pass. Also fix MySQL 8.0+ compatibility in acctcode timegenerate column_type check, which dropped integer display widths causing the alter to run repeatedly.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: d4ab52f8e778d18367e5630e6d9f7ab8e31513e1 https://github.com/dreamwidth/dreamwidth/commit/d4ab52f8e778d18367e5630e6d9f7ab8e31513e1 Author: Mark Smith mark@dreamwidth.org Date: 2026-02-01 (Sun, 01 Feb 2026)
Changed paths: M cgi-bin/DW/Controller/Login.pm M cgi-bin/DW/Request/Base.pm
Log Message:
Fix uninitialized value warnings in login controller and cookie handling
Guard against undef post values when comparing expire/bindip checkbox fields that may not be present in the form submission. Also guard against undef domain in add_cookie's dot-domain check.
Co-Authored-By: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications

Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: 8f455b757a8b81e68e696b54c0c33d61b8cf5b35 https://github.com/dreamwidth/dreamwidth/commit/8f455b757a8b81e68e696b54c0c33d61b8cf5b35 Author: Mark Smith mark@dreamwidth.org Date: 2026-01-31 (Sat, 31 Jan 2026)
Changed paths: M cgi-bin/DW/Controller/Login.pm
Log Message:
Move POST-only logic inside did_post guard in Login controller (#3511)
The username suffix parsing, credential extraction, and form auth check were running unconditionally on every request, causing uninitialized value warnings on GET. Move them inside the existing did_post block where they belong.
Co-authored-by: Claude Opus 4.5 noreply@anthropic.com
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications
Merriam-Webster's Word of the Day for February 1, 2026 is:
gargantuan \gahr-GAN-chuh-wun\ adjective
Gargantuan describes something that is very large in size or amount; something gargantuan is, in other words, gigantic.
// Bigfoot is said to be a creature of gargantuan proportions.
Examples:
âBy the late 1870s, he was asked to take part in the gargantuan task of evaluating and cataloguing the results of the five-year Challenger expeditionâan ambitious British global research voyage, the first ever dedicated purely to science. [Ernst] Haeckelâs contribution to the final 50-volume Report of the Voyage of H.M.S. Challenger took a decade to complete and spanned three volumes, 2,750 pages, and 130 plates.â â Michael Benson, Nanocosmos: Journeys in Electron Space, 2025
Did you know?
Gargantua is the name of a giant king in François Rabelais's 16th-century satiric novel Gargantua, the second part of a five-volume series about the giant and his son Pantagruel. All of the details of Gargantua's life befit a giant. He rides a colossal mare whose tail switches so violently that it fells the entire forest of Orleans. He has an enormous appetite, such that in one incident he inadvertently swallows five pilgrims while eating a salad. The scale of everything connected with Gargantua led to the adjective gargantuan, which since William Shakespeare's time has been used for anything of tremendous size or volume.
Branch: refs/heads/main Home: https://github.com/dreamwidth/dreamwidth Commit: f3ad4a9b098ca50b87ff6b78a739fa7b6b7d8145 https://github.com/dreamwidth/dreamwidth/commit/f3ad4a9b098ca50b87ff6b78a739fa7b6b7d8145 Author: Mark Smith mark@qq.is Date: 2026-01-31 (Sat, 31 Jan 2026)
Changed paths: M .devcontainer/devcontainer.json M .devcontainer/start.sh R .travis.yml A CLAUDE.md A package-lock.json A package.json
Log Message:
Slight fixes to devcontainer setup, and basic CLAUDE instructions
To unsubscribe from these emails, change your notification settings at https://github.com/dreamwidth/dreamwidth/settings/notifications