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: 1c54be1b97b9d64d8833b984f942a9b66d326643 https://github.com/dreamwidth/dreamwidth/commit/1c54be1b97b9d64d8833b984f942a9b66d326643 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M cgi-bin/DW/Task/ESN/FilterSubs.pm M cgi-bin/DW/Task/ESN/FindSubsByCluster.pm M src/dwtool/main.go

Log Message:


Fix false send failures and add CLI improvements

FilterSubs and FindSubsByCluster were passing the result of tasks_of_unique_matching_subs() directly to DW::TaskQueue->send(), which returns undef on an empty task list. When all subscriptions were legitimately filtered out by matches_filter, this was counted as a "failed send" (~47 false failures/min). Split the calls so empty task lists are a normal completion, not an error.

Also adds top-level help to dwtool listing available subcommands, and teaches esn-trace to accept a comment URL (parses ?thread= param, converts dtalkid to jtalkid, searches fired-event logs for the full trace ID automatically).

Co-Authored-By: Claude Opus 4.6 (1M context) 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: c3394d8c9d9ca1cbd8e169d3a1e85849e9affbaa https://github.com/dreamwidth/dreamwidth/commit/c3394d8c9d9ca1cbd8e169d3a1e85849e9affbaa Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M cgi-bin/DW/Worker/ContentImporter.pm

Log Message:


Add DW::Stats metrics to content importer job outcomes

Instrument all four outcome methods (ok, fail, temp_fail, decline) in DW::Worker::ContentImporter with a single metric dw.worker.importer.job_completed, using labels for result, item, and hostname to support Prometheus-style querying.

Co-Authored-By: Claude Opus 4.6 (1M context) 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: 034f12e28b75c1c3b3ce7b6ab173616484e33ee5 https://github.com/dreamwidth/dreamwidth/commit/034f12e28b75c1c3b3ce7b6ab173616484e33ee5 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M cgi-bin/DW/Task/ESN/FilterSubs.pm M cgi-bin/DW/Task/ESN/FindSubsByCluster.pm M cgi-bin/DW/Task/ESN/FiredEvent.pm M cgi-bin/DW/Task/ESN/ProcessSub.pm M cgi-bin/LJ/ESN.pm M cgi-bin/LJ/Event/JournalNewComment.pm M cgi-bin/LJ/NotificationInbox.pm M cgi-bin/LJ/Subscription.pm M src/dwtool/main.go

Log Message:


Add deterministic ESN trace IDs and full pipeline observability

Every ESN log line now carries a deterministic trace prefix [esn ETYPEID:JOURNALID:ARG1:ARG2] derived from the event's raw_params, making end-to-end tracing possible by grepping a single string across all four ESN worker log groups. The trace ID is computable from a comment URL without needing to capture it at event-fire time.

Pipeline changes: - All four ESN task workers (FiredEvent, FindSubsByCluster, FilterSubs, ProcessSub) prefix every log line with the trace string - LJ::ESN::unique_matching_subs replaces the silent grep with a loop that logs each matches_filter rejection at DEBUG with user/sub/etypeid - JournalNewComment::matches_filter logs specific rejection reasons at each of its 9 return-0 paths via a $reject->() closure - Subscription::process logs notification construction failures and not_configured_for_user skips with trace prefix - NotificationInbox::enqueue logs successful delivery confirmation - FindSubsByCluster now checks TaskQueue->send() return values and logs users with >5000 subs that get silently skipped - FilterSubs now checks TaskQueue->send() return value - ProcessSub dead code fixed: subscription-not-found is correctly handled as a skip (COMPLETED) not routed through $failed (FAILED)

Metrics consolidation (Prometheus best practice): - All DW::Stats calls use one metric name per stage with a result tag instead of encoding the result in the metric name - dw.esn.firedevent result:started|completed|failed - dw.esn.findsubsbycluster result:started|completed|failed - dw.esn.filtersubs result:completed|dropped|failed - dw.esn.filter result:rejected - dw.esn.matches_filter result:rejected (with reason tag) - dw.esn.processsub result:processed|skipped|failed - dw.esn.process result:failed|skipped - dw.esn.inbox result:delivered|evicted

CLI tooling: - dwtool esn-trace searches all four ESN log groups in CloudWatch and pretty-prints a cross-stage timeline

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

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

Today's Adventures

Apr. 11th, 2026 09:12 pm
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
[personal profile] ysabetwordsmith
Today we went to the Small Business Fest held just outside Booth Library at Eastern Illinois University. It was several times bigger than we expected, which was awesome. It wrapped around the entire square, and one side had booths down both sides of the walkway. This was nearly the size of the old Celebration fest, with very similar offerings.  They do this twice a year now, spring and fall.

Read more... )
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: 62c0b8e4ee1d12728c8f737eac0061161522fdaa https://github.com/dreamwidth/dreamwidth/commit/62c0b8e4ee1d12728c8f737eac0061161522fdaa Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M src/dwtool/internal/aws/ecs.go

Log Message:


Remove legacy web image from web-canary and web-unauthenticated deploy targets

Both services are now fully on web22. This removes the old "web" option from the deploy flow so only web22 is offered, matching web-shop.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Commit: 58ffd06e3da3ae4ea7b3122dac7a46685a4c35e4 https://github.com/dreamwidth/dreamwidth/commit/58ffd06e3da3ae4ea7b3122dac7a46685a4c35e4 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M .gitignore

Log Message:


.gitignore updates

Commit: 7cbc4931b3974ac99de9e3657f389ed8125a5566 https://github.com/dreamwidth/dreamwidth/commit/7cbc4931b3974ac99de9e3657f389ed8125a5566 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M cgi-bin/DW/Worker/ContentImporter/LiveJournal.pm M doc/dependencies-cpanm

Log Message:


Fix content-importer-verify TLS connection failures

The importer's XMLRPC calls to remote LJ-based sites were failing with "SSL wants a read first" due to a TLS 1.3 handshake issue with IO::Socket::SSL 2.098 and OpenSSL 3.0 (see openssl/openssl#7967). Force TLS 1.2 in call_xmlrpc as a workaround.

Also add missing Regexp::IPv6 dependency, which IO::Socket::IP needs for address parsing — its absence caused a secondary "Can't locate Regexp/IPv6.pm" failure.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Commit: 9eff707e837547024e178f5b0b8cbc30c6653350 https://github.com/dreamwidth/dreamwidth/commit/9eff707e837547024e178f5b0b8cbc30c6653350 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: A bin/dev/importer-debug M bin/ecs-shell

Log Message:


Add importer-debug diagnostic script and fix ecs-shell on macOS

Add bin/dev/importer-debug for diagnosing content-importer connectivity issues on ECS containers. Tests DNS, TCP, TLS, HTTP, and XMLRPC layers independently with timing and detailed error output.

Fix ecs-shell exec command failing on macOS due to base64 -w0 flag not being supported (macOS uses base64 -i instead).

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Compare: https://github.com/dreamwidth/dreamwidth/compare/388d47d72bfa...9eff707e8375

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

Signups closing in 1 day!

Apr. 11th, 2026 11:37 pm
littlefics: Three miniature books standing on an open normal-sized book. (Default)
[personal profile] littlefics posting in [community profile] seasonsofdrabbles
You have 24 hours, as of this post, before both signups and nominations close on Sunday, April 12 @ 11:59pm Eastern Daylight time (Countdown).

As usual, there will be a 12-hour grace period after signups close during which you can ask us to add tags to your requests/offers.
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: 388d47d72bfa348ef6378e9f5e638e9fa85da491 https://github.com/dreamwidth/dreamwidth/commit/388d47d72bfa348ef6378e9f5e638e9fa85da491 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M cgi-bin/DW/Task.pm M cgi-bin/DW/TaskQueue/LocalDisk.pm M cgi-bin/DW/TaskQueue/SQS.pm M etc/config-local.pl.example A t/taskqueue-serialize.t A t/taskqueue.t

Log Message:


Add JSON wire format for task queue with gradual rollout support

Adds serialize/deserialize methods to DW::Task that support a new v2 JSON wire format alongside the legacy Storable format. This enables non-Perl consumers (e.g. Go workers) to read task queue messages.

$LJ::TASK_QUEUE_JSON controls the rollout as a float 0-1 (e.g. 0.01 = 1% of messages serialized as JSON). Default is 0 (all Storable). All consumers can read both formats regardless of this setting. If JSON encoding fails for a task (e.g. blessed objects in args), it falls back to Storable with a warning and stat tag identifying the task class.

Also adds task queue config documentation to config-local.pl.example and comprehensive test coverage for LocalDisk lifecycle, serialization round-trips, and queue_attributes.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

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

Philosophical Questions: City

Apr. 11th, 2026 08:02 pm
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
[personal profile] ysabetwordsmith
People have expressed interest in deep topics, so this list focuses on philosophical questions.

What would a perfect city be like?

Read more... )

I can still ride 100K

Apr. 11th, 2026 06:37 pm
sonia: Quilted wall-hanging (Default)
[personal profile] sonia
I biked 100K (65 miles) today out in the Livermore Valley, an all-women organized ride called Cinderella Classic. I first rode it in 1991, the 15th ride, and this was the 50th. I'm proud of my collection of patches, one for each year I did the ride.

It was beautiful out there! It's been rainy, so the hills were green, and we rode past farms and ranches. We rode on some of the rural roads I remember fondly from past rides, and avoided a lot of the annoying suburban riding with long traffic lights. There was a dog-leg out to Sunol that I had never ridden before that was gorgeously tree-lined and empty of traffic. There weren't even any cyclists around while I was doing that part of the ride.

I'm slow, but I get there eventually. I caught the first BART train of the day at 6:39am, started the ride at 7:30, and got back to the starting point at around 2:15. I chatted with other riders at the rest stops, and even rode with people for a while.

One woman said I was amazing because I and my bike were all kitted out for rain (fenders, rain pants, boots rather than cycling shoes that clip into the pedals) and still doing the ride. When we were going up hill into the wind I got in front so she could draft behind me, and she was very grateful. It felt good not to be the slowest rider on the road.

One of the nice things about an organized ride for just women is that it's less competitive, and women who don't ride as much and aren't as strong feel safe to come out and try it. It was my first long organized ride back in 1991.

We had clear skies and sun for the first couple of hours, to where I was regretting my wool socks. But then the dark clouds rolled in and we had intermittent cloudbursts for the rest of the ride. I was glad for all my gear! I got home just before the skies opened up here and it poured down rain for a couple of hours, with some rare lightning and thunder.

During the ride, I was focused on weather, physical comfort, looking at the pavement for directional arrows, and looking around at the scenery. The state of the world and the state of my personal life didn't cross my mind.

The miles added up surprisingly quickly, and I wasn't worried about being able to finish the ride once I got started. Even though I carry my own food and only get bananas at the rest stops, organized rides are still fun. The route arrows, the volunteers directing traffic, the camaraderie, the string of colorful riders ahead all add energy. For the Cinderella ride, lots of women wear short rainbow or pink or orange tutus over their bike shorts, and/or tiaras and flowers on their helmets. I had forgotten about that part!

And I almost forgot to include the Lemon Drop Man. He used to be at the top of the only major climb on the route, but since it got rearranged I thought we would miss out on that tradition. But toward the end of the ride, on a random suburban intersection, there he was. He put 2 lemon drops in my outstretched hand as I rode by, and I happily popped one in my mouth. It seems to have been gluten-free, whew, but I wasn't going to stop and quiz him about ingredients, and the nostalgia was worth the risk.

Here

Apr. 11th, 2026 06:16 pm
sartorias: (Default)
[personal profile] sartorias
I just reupped my Dreamwidth blog for another year, though I realize I don't post much. I think of blog topics when away from my computer, then realize I'm reluctant to clog the constant stream Out There with my socially awkward and clueless maunderings.

But briefly: writing a lot, reading some. Of late, Katherine Arden's The Unicorn Hunters, which I really enjoyed a lot. Also going, Emily Tesh's The Incandescende, which is dark academia from the faculty POV, and the worldbuilding actually makes sense. Tesh thought about what magic in the world would be like. This is my walking book (audiobook).

Speaking of: it's dog walking time, which means some more Incandescence!
petra: A photo of lilac flowers with the text "How do they rise" from Pratchett's Night Watch (Pratchett - How do they rise)
[personal profile] petra
The online memorial for [personal profile] minoanmiss will take place tomorrow - Sunday, April 12, 1:00PM EDT (GMT -4).

Zoom link

Meeting ID: 836 1509 1699
Passcode: Right here )
watersword: We are the granddaughters of the witches you weren't able to burn. (Stock: protest)
[personal profile] watersword

Okay, dream cast, The Lion in Winter, Broadway/West End. Important caveat: must be currently working actors (no Marlon Brando, no Philip Seymour Hoffman, no Bette Davis).

Go!

Food

Apr. 11th, 2026 05:29 pm
ysabetwordsmith: Cartoon of me in Wordsmith persona (Default)
[personal profile] ysabetwordsmith
Truckloads of food are being wasted because computers won’t approve them

Modern food systems may look stable on the surface, but they are increasingly dependent on digital systems that can quietly become a major point of failure. Today, food must be “recognized” by databases and automated platforms to be transported, sold, or even released, meaning that if systems go down, food can effectively become unusable—even when it’s physically available.

Read more... )

(no subject)

Apr. 11th, 2026 05:32 pm
melagan: John and Rodney blue background (Default)
[personal profile] melagan
Seen at [community profile] justcreate. I thought these were cool questions so I'm repeating them here.

What are you working on? What have you finished? What do you need encouragement on?

Are there any cool events or challenges happening that you want to hype?

What do you just want to talk about?

What have you been watching or reading?

Chores and other not-fun things count?

(I'm tossing my own answers in a comment to this)

Just Create - Plumbing Edition

Apr. 11th, 2026 02:18 pm
silvercat17: a box with a question mark on each side (mystery box)
[personal profile] silvercat17 posting in [community profile] justcreate
What are you working on? What have you finished? What do you need encouragement on?
 
Are there any cool events or challenges happening that you want to hype?
 
What do you just want to talk about?
 
What have you been watching or reading?
 
Chores and other not-fun things count!
 
Remember to encourage other commenters and we have a discord where we can do work-alongs and chat, linked in the sticky.

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: 4d50f4a1d495408fb95df32a63239b8bf7ea60b7 https://github.com/dreamwidth/dreamwidth/commit/4d50f4a1d495408fb95df32a63239b8bf7ea60b7 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M cgi-bin/DW/Task/ESN/FilterSubs.pm M cgi-bin/DW/Task/ESN/ProcessSub.pm M cgi-bin/LJ/NotificationInbox.pm M cgi-bin/LJ/Subscription.pm

Log Message:


Add ESN drop/skip observability at silent-failure points

The ESN pipeline had several silent-drop paths where notifications could disappear without any log trace, making "notification went missing" bug reports impossible to investigate. This adds structured log lines and DW::Stats counters at four of those paths:

  • FilterSubs: the cluster-filter grep was a silent drop for both legitimate user-moved-cluster cases and (suspected) DB-pressure partial-load cases from LJ::load_userids. Now logs each drop at INFO with user=name(uid) sub=N cluster=expected->got reason=... and increments dw.esn.filtersubs.dropped tagged by reason.

  • ProcessSub: the three existing skip paths (subscription_not_found, user_idle, user_not_visible) kept their DEBUG log level but gained structured fields and dw.esn.processsub.skipped counters. Added a dw.esn.processsub.processed counter on the success path so baseline delivery rate is visible in Datadog.

  • Subscription::process: the configured_for_user and officialpost no-op paths now log at DEBUG with structured fields and increment dw.esn.process.skipped.

  • NotificationInbox::enqueue: inbox overflow eviction now logs at INFO with the user, oldest-kept qid, rows deleted, and max size, and increments dw.esn.inbox.evicted by the number of rows evicted.

Log levels: rare exceptions (filtersubs drop, inbox eviction) at INFO; routine skip paths (user idle, not configured) at DEBUG. Stats counters fire regardless of log level -- Datadog metrics are the primary signal, logs are forensic backup.

Co-Authored-By: Claude Opus 4.6 (1M context) 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: 727c496a47ff8257b62e438d302f0ca999c54d36 https://github.com/dreamwidth/dreamwidth/commit/727c496a47ff8257b62e438d302f0ca999c54d36 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

Changed paths: M src/dwtool/internal/aws/cloudwatch.go M src/dwtool/main.go A src/dwtool/run.sh

Log Message:


Add logscan CLI subcommand and build helper script to dwtool

Adds dwtool logscan for searching CloudWatch logs across all Dreamwidth services by keyword, with time range and log group glob filtering. Searches in 1-hour chunks (newest first) so results stream incrementally. Also adds run.sh to check dependencies, build, and run dwtool in one step.

Co-Authored-By: Claude Opus 4.6 (1M context) noreply@anthropic.com

Commit: d81f640239516e9c21e95a6afdc73f4fc4d63156 https://github.com/dreamwidth/dreamwidth/commit/d81f640239516e9c21e95a6afdc73f4fc4d63156 Author: Mark Smith mark@dreamwidth.org Date: 2026-04-11 (Sat, 11 Apr 2026)

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

Log Message:


Tidy fixes

Compare: https://github.com/dreamwidth/dreamwidth/compare/fe8199f3512e...d81f64023951

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

multifandom icons.

Apr. 11th, 2026 09:12 pm
wickedgame: (Ilya & Shane | Heated Rivalry | Green)
[personal profile] wickedgame posting in [community profile] icons
Fandoms: Addicted, Bridgerton, Cobra Kai, Elite, Guardian, I'll Turn Back This Time, Mako Mermaids, One Piece, Shadowhunters, Superman & Lois, Zorro

elite-08x07arabiannights (1).png onepiece-2x05summerstorm.png illturnback-1x03.png
the rest are HERE[community profile] mundodefieras 

Profile

sid: (Default)
sid

January 2015

S M T W T F S
    12 3
45678910
11 121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags