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: 4b5bcf8ad5cda83928da05e87508127b1fdd3a46 https://github.com/dreamwidth/dreamwidth/commit/4b5bcf8ad5cda83928da05e87508127b1fdd3a46 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-12 (Thu, 12 Mar 2026)

Changed paths: M app.psgi A cgi-bin/Plack/Middleware/DW/WriteTimeout.pm A t/plack-write-timeout.t

Log Message:


Add SO_SNDTIMEO middleware to prevent Starman workers blocking on dead connections

When the ALB closes a connection before Starman finishes writing a response (e.g. due to idle timeout), the worker's write() blocks for 15-30 minutes waiting for TCP retransmits to exhaust. With 10 workers, this quickly deadlocks the entire server.

The new DW::WriteTimeout middleware sets SO_SNDTIMEO on the client socket via psgix.io so that blocked writes fail in seconds instead of minutes, freeing the worker to handle new requests.

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: 64b109f6fdd36a9130ef4a90057e71e07be5ec86 https://github.com/dreamwidth/dreamwidth/commit/64b109f6fdd36a9130ef4a90057e71e07be5ec86 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-12 (Thu, 12 Mar 2026)

Changed paths: M bin/upgrading/deadphrases.dat M cgi-bin/DW/Controller/Create.pm M cgi-bin/DW/Controller/Manage/Profile.pm M cgi-bin/LJ/TextUtil.pm M t/plack-request.t M t/textutil.t M views/create/setup.tt M views/manage/profile.tt M views/manage/profile.tt.text

Log Message:


Remove dead utf8convert links, handle invalid UTF-8 in profiles (#3535)

  • Remove dead utf8convert links and handle invalid UTF-8 in profiles

The utf8convert page was removed years ago, but the profile editing and account creation pages still linked to it when a user's name or bio contained invalid UTF-8. This left users unable to edit those fields at all.

Instead of hiding fields behind a dead link, clean invalid UTF-8 byte sequences on load using a new LJ::clean_utf8() utility function. This strips broken sequences while preserving valid multi-byte characters, so the edit fields are always shown.

  • Add LJ::clean_utf8() to LJ::TextUtil
  • Clean name/bio on load in profile and create controllers
  • Remove text_in/is_utf8 conditionals from profile.tt and setup.tt
  • Remove name_absent/bio_absent hidden input fallback logic
  • Mark dead translation strings in deadphrases.dat
  • Add 16 regression tests for text_in, text_trim, and clean_utf8

Fixes #1894

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

  • Add tests for undef input and 4-byte UTF-8 (emoji) in clean_utf8

Cover edge cases: undef returns empty string, emoji (4-byte sequences) are preserved, and truncated 4-byte sequences are properly stripped while preserving valid preceding characters.

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

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: 453fa0142c344ae33d3d208067f110e33d7d48d5 https://github.com/dreamwidth/dreamwidth/commit/453fa0142c344ae33d3d208067f110e33d7d48d5 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-12 (Thu, 12 Mar 2026)

Changed paths: M src/dwtool/internal/ui/app.go M src/dwtool/internal/ui/logs.go

Log Message:


Update dwtool log filtering to be more useful

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

characters20in20 Round 21

Mar. 12th, 2026 02:41 pm
reeby10: grey scale voldemort from shoulders up with a crown doodle above his head (harry potter)
[personal profile] reeby10 posting in [site community profile] dw_community_promo


Link: Round 21 Sign Ups | Round 21 Themes

Description: [community profile] characters20in20 is a 20in20 community dedicated to making icons of characters from movies and tv shows. You have 20 days to make 20 icons about a character of your choice, based on a set of themes for the round.

Schedule: Round 21 sign ups are open NOW. Icons are due March 30, 2026.
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_advocacy
Case: Netchoice v Wilson, 3:26-cv-00543, (D.S.C.)

Netchoice's litigation page: Netchoice v Wilson

Netchoice filed the motion for preliminary injunction on March 9. It isn't available on the docket in RECAP yet (and I'm over my threshold for PACER fees that will get refunded for the quarter, or else I'd put it there!) but it is available on Netchoice's litigation page: Motion for Preliminary Injunction. They haven't included the declarations, but here's Dreamwidth's declaration as filed, authored by yours truly. Because of the wild incoherence of so many of the provisions of this law, many of which were new because a lot of states have switched to using different model legislation, I had to write almost all of our declaration for this one from scratch (while recovering from a lumbar puncture, lying flat on my back in bed: never let it be said I am not completely extra about the lengths to which I will go to fight against this bullshit), so much less of it will look familiar than usual, but boy was I mad.

We'll let you know when the judge makes a ruling on the PI! And three cheers as always for the Netchoice team and for the outside litigation counsel team, who is Lehotsky Keller Cohn for this one and who put in massively heroic effort to get this filed as fast as possible thanks to the law taking immediate effect.
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: 11c40353c19cc0d986a932efe41668023117b3c6 https://github.com/dreamwidth/dreamwidth/commit/11c40353c19cc0d986a932efe41668023117b3c6 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-11 (Wed, 11 Mar 2026)

Changed paths: M cgi-bin/LJ/SynSuck.pm M cgi-bin/ljlib.pl

Log Message:


Fix feed fetching on Ubuntu 22.04+ and reduce backoff aggressiveness

Force HTTP/1.1 via SSL_alpn_protocols in LJ::get_useragent. LWP does not support HTTP/2, but IO::Socket::SSL on 22.04+ advertises h2 via ALPN by default, causing servers like Tumblr to respond with HTTP/2 which LWP can't parse ("500 Server closed connection").

Also reduce exponential backoff cap from 30 days to 48 hours (max multiplier 2^4=16 instead of 2^7=128) and replace fixed 0-4 minute jitter with proportional jitter (up to 10% of delay) so retries stagger more effectively.

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

Question thread #149

Mar. 11th, 2026 01:39 am
pauamma: Cartooney crab wearing hot pink and acid green facemask holding drink with straw (Default)
[personal profile] pauamma posting in [site community profile] dw_dev
It's time for another question thread!

The rules:

- You may ask any dev-related question you have in a comment. (It doesn't even need to be about Dreamwidth, although if it involves a language/library/framework/database Dreamwidth doesn't use, you will probably get answers pointing that out and suggesting a better place to ask.)
- You may also answer any question, using the guidelines given in To Answer, Or Not To Answer and in this comment thread.

Volunteer social thread #162

Mar. 11th, 2026 01:34 am
pauamma: Cartooney crab wearing hot pink and acid green facemask holding drink with straw (Default)
[personal profile] pauamma posting in [site community profile] dw_volunteers
I helped do An Science.

How's everyone doing?
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: a7c872c2e9a9286da62970e298ad04106c860b90 https://github.com/dreamwidth/dreamwidth/commit/a7c872c2e9a9286da62970e298ad04106c860b90 Author: momijizukamori momijizukamori+bugzilla@gmail.com Date: 2026-03-10 (Tue, 10 Mar 2026)

Changed paths: M bin/build-static-modern.sh

Log Message:


Build JS for ES6, not ES2020 (#3532)

Co-authored-by: Cocoa momijizukamori@gmail.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: 7e2581ef4c63b5fd84be3771093348bb9b65fded https://github.com/dreamwidth/dreamwidth/commit/7e2581ef4c63b5fd84be3771093348bb9b65fded Author: Mark Smith mark@dreamwidth.org Date: 2026-03-09 (Mon, 09 Mar 2026)

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

Log Message:


Fix Plack print() dropping all arguments after the first

DW::Request::Plack::print() only captured $_[1], silently discarding any subsequent arguments. This broke callers that pass multiple args — notably DW::Controller::Interface::Flat which uses $r->print($key, "\n", $val, "\n"), causing the flat client protocol to return keys with no newlines or values.

The Apache2 implementation correctly forwards all args via $self->{r}->print(@). Match that behavior by joining @ before appending to the response body.

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

The List of Shame

Mar. 9th, 2026 04:22 am
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_advocacy
People frequently ask us about whether their specific US state is trying to enact a social media age verification law so they can call their state representatives and yell at them about it! I have had "build a system that will let me easily update this without having to do so manually, categorizing these bills by status, what problems they have, and what we'd do about them if they pass" on my want-to-do list for a really long time, but until I can, here's the current list of bills I know about.

This (very long, sigh) list is accurate to the best of my knowledge as of 8 March 2026, but it may not include every bill that's been introduced in every state. (I've used a few different lists plus my own "searching until I got too depressed to continue" to assemble it, excluding laws I think have absolutely no chance of passing but including laws where I think there's still even a slight chance.) If you know of one that isn't on the list, please let me know in the comments!

These are state laws only. I'm concentrating on those because you can find lists of bad federal bills more easily, but all the lists of state bills I know of are industry-gated or limited-distribution. If you don't have a preferred source for finding out about bad federal legislation about the internet, Bad Internet Bills (from Fight for the Future) and the EFF Action Center are a great place to start!

This list is only counting social media bills; I am not including bills that don't apply to us because they're modeled on the app store/OS age signal model legislation or bills that deal with age verification for other services like chatbots or "AI companions", because I'd go completely off the rails and resort to just screaming incoherently when the list passed a hundred items. I will try to update this at least quarterly, or whenever the Magic 8 Ball says there's a rapidly moving bill that you need to yell at people about.


The Current Hall of Shame )

Periodic priv tidy

Mar. 7th, 2026 10:21 am
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_volunteers
Noting here for posterity that I'm doing another of my "whenever I remember to do it" sweeps of all privs that have been granted, to remove privs from people who aren't currently actively volunteering with the thing that needs that priv. If I accidentally yanked something someone is using (the interface is hella janky and I would not be surprised if I do accidentally at least once), just holler and I'll add it back! Likewise, if you're still doing one thing but have privs for another thing you aren't using, you can let me know by replying here so I can remove those too.

We thank everyone for their time and help, and anyone who's had privs removed, you are welcome back any time you'd like! We operate on a "principle of least access" basis for privs for security reasons, but that doesn't mean we don't appreciate everything folks do, even if you're limited by that mythical land called "real life". ❤️

A Conrad Veidt Community

Mar. 7th, 2026 08:36 am
scifirenegade: (Default)
[personal profile] scifirenegade posting in [site community profile] dw_community_promo


[community profile] conradveidt

A community dedicated to Conrad Veidt. Whether you are a seasoned fan, a casual fan, someone who has seen everything there is to be seen or who's just starting their journey, this community is for you!

You can post about anything related to Herr Veidt here. Discussions, film reviews, fanworks (fic, art, icons, vids, anything!), recs, meta, picspams, gifs, etc. Discussion of film/culture and society of the 1910s-1940s is also acceptable.

Every month, we shall highlight one film.

Right now, we're hosting a movie tournament.
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: d6710db7d9e0dde93fc1156a03f8627ffe801625 https://github.com/dreamwidth/dreamwidth/commit/d6710db7d9e0dde93fc1156a03f8627ffe801625 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-03 (Tue, 03 Mar 2026)

Changed paths: M .devcontainer/Dockerfile M .devcontainer/setup.sh A src/devtool/go.mod A src/devtool/go.sum A src/devtool/internal/proc/starman.go A src/devtool/internal/tailer/tailer.go A src/devtool/internal/ui/app.go A src/devtool/internal/ui/keys.go A src/devtool/internal/ui/logpane.go A src/devtool/internal/ui/status.go A src/devtool/internal/ui/styles.go A src/devtool/main.go

Log Message:


Add devtool TUI for devcontainer development workflow

Bubble Tea dashboard (same patterns as dwtool) that monitors and controls the dev environment from a single terminal:

  • Left pane: Starman status (PID, URL, uptime) and last command result
  • Right pane: access/error log tailing with scroll and follow mode
  • Actions: restart Starman (r), tidyall (t), compile test (c), build static (b)
  • Command output streams into the right pane in real time; esc/enter dismisses
  • Tab cycles focus between log panes, f toggles follow, ? shows help

The devcontainer Dockerfile installs Go and setup.sh builds devtool into /usr/local/bin on container creation so it's immediately available.

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

Commit: dd7814d468d7543549eab99779c4ca5062c69e66 https://github.com/dreamwidth/dreamwidth/commit/dd7814d468d7543549eab99779c4ca5062c69e66 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-03 (Tue, 03 Mar 2026)

Changed paths: M .devcontainer/Dockerfile M .devcontainer/devcontainer.json M .devcontainer/setup.sh M src/devtool/internal/ui/app.go M src/devtool/internal/ui/keys.go

Log Message:


Persist MySQL across container rebuilds; add update-db and texttool to devtool

Use a Docker named volume for /var/lib/mysql so schema data survives container rebuilds. Pre-baked MySQL data is saved to /opt/dreamwidth-mysql/ in the image and seeded into empty volumes on first run.

Add keybindings for update-db (u) and texttool load (x) to the devtool TUI.

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

Commit: e882f36d7986d224b3e68ed8e403cd165eadde06 https://github.com/dreamwidth/dreamwidth/commit/e882f36d7986d224b3e68ed8e403cd165eadde06 Author: Mark Smith mark@dreamwidth.org Date: 2026-03-03 (Tue, 03 Mar 2026)

Changed paths: M .github/workflows/devcontainer-build.yml

Log Message:


Trigger devcontainer image rebuild on any .devcontainer/ change

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

Compare: https://github.com/dreamwidth/dreamwidth/compare/b34ffa15c1dd...e882f36d7986

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

Victory in Virginia!!

Mar. 3rd, 2026 08:17 am
denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_advocacy
On Friday, the judge hearing our VA case issued a preliminary injunction preventing the state from enforcing Virginia's SB 854 against any Netchoice member (which means us!) while the lawsuit proceeds. Judge Giles's ruling is a little technical in places and covers a number of legal issues that I keep meaning to get around to explaining someday so folks can have a better grasp on the kind of things they'll see argued in cases like these, like strict scrutiny and associational standing, but the end result is still pretty clear, I think: the judge agrees Netchoice has made a strong enough showing right from the start that the law is unconstitutional to block the state from doing anything to enforce it until the full case can be heard.

This is only the beginning of that particular fight and we still have a ways to go, but it's great news for us, for all our users from Virginia, and for the internet as a whole. Three cheers for the Netchoice team and the outside litigation counsel, who are Clement & Murphy for this one! The full docket in RECAP: NetChoice v. Jason S. Miyares, 1:25-cv-02067, (E.D. Va.).

Prompt: Yeast-Free

Mar. 1st, 2026 08:52 am
runpunkrun: silverware laid out on a cloth napkin (gather yon utensils)
[personal profile] runpunkrun posting in [community profile] gluten_free

In case you missed it, we now have a yeast-free tag, so let's put some yeast-free stuff in it!

To fill this prompt, you can:

  1. Slide into the comments of this post and share a link to a recipe, product, or resource and why you like it.
  2. Write up a favorite recipe and post it to the comm.
  3. Post a review of a related product or cookbook to the comm.
  4. Try someone's recipe and reply to their post (or comment) with any changes you made and how it turned out.
Monthly prompts are only for inspiration and not a requirement. You can post whatever you like to the comm whenever you like as long as it meets the community guidelines.

And, a reminder, you can now tag your own posts!

Small Fandoms!

Mar. 1st, 2026 04:16 am
kalloway: multicolored christmas lights (Xmas Lights 27 Colors)
[personal profile] kalloway posting in [site community profile] dw_community_promo
[community profile] small_fandoms has finished up its annual Drabblethon, with more than 140 drabbles posted.

The community is open all year for any sort of creations for small, tiny, and dead fandoms. Post your stories, art, icons, meta, and everything else.

Youtuberecs

Feb. 28th, 2026 12:00 pm
tally: (youtuberecs admin)
[personal profile] tally posting in [site community profile] dw_community_promo



[community profile] youtuberecs is a simple, casual community for posting Youtube recommendations!  It's meant to be easy peasy—you can leave reviews or commentary about your recs or just drop the embed and go!

We also now also have a nice backlog of video recs to browse, all organized within our tag system. ♥

Profile

allen: (Default)
allen
Page generated Mar. 13th, 2026 06:26 am

Style Credit

Expand Cut Tags

No cut tags