Wednesday, 20 November

22:21

The Stranger's Gladvent Calendar [The Stranger]

Countdown to 2025 with One Really Great Thing to Do Every Day in December! by Stranger Staff

Wow, things got weird this year, huh? Chances are you want to tuck under a stack of weighted blankets and sleep until 2028. Us, too! We have to push forward, but there will be plenty of time to fight in 2025. For now, we party! Seattle is one of the only cities in America that got shit right on November 5, so let’s rejoice and celebrate the fact that We! Are! Great! Chug festive cocktails! Get happy and weird with Scott Shoemaker’s War on Christmas! Fall into a trance at a gaudy light display! (If you stare long enough you might be able to fool your brain into thinking the sun didn’t set at 4 pm.) Find many more good things to do at everout.com/seattle.

Illustrations by Michael Mergenthaler; Design by Corianton Hale

Click the image above (or click here) to download a printable PDF of the Gladvent Calendar!

A Flurry of Winter Fun! [The Stranger]

Well, it looks like we’re headed into unprecedented times—again. by Hannah Murphy Winter

Well, it looks like we’re headed into unprecedented times—again. 

We put this issue together the week after the election, while we were somewhere between the anger and bargaining phases of the seven stages of grief. But part of that bargaining was deciding that we want nice things this winter. We want batch cocktails and potluck dinners and art galleries that make us cry. We want to give our favorite people gifts and avoid our Trump-voting family at all costs. We want to make sure our neighbors are housed and volunteer without Linda from accounting talking our ear off. 

We can’t have a president who’s not a racist, misogynistic, Christian Nationalist, but we can have other nice things. So consider this your guide to the end of 2024. 

In these stories—which we'll be rolling out online over the next week—you’ll find thoughtful, not-sponsored gift recommendations, dozens of events worth leaving your house for, and chef-recommended recipes for comforting meals you can make in just minutes.

You’ll also find our favorite places to escape reality without leaving Seattle, from bars to plant shops to some very detailed instructions on how to take a bath with the most transportive piece of cake you’ll find in Seattle. 

If you need permission to stay away from toxic or draining family, Stranger staff writer Vivian McCall offered a how-to guide for spending the holidays alone.

And to keep track of all of this, we made a 2024 Gladvent Calendar that you can pull out and hang up on your fridge to remind you that you actually want to do these things.

(If you just need to fully revert back to the safety of childhood, there’s a downloadable coloring page right here.) 

We’re proud of being Trump’s enemy, and we believe in the resistance. We hope you do, too. But remember that while we fight and organize and resist, we also deserve a little treat. Here’s yours. 

Hannah Murphy Winter

Editor-in-Chief

Illustrations by Michael Mergenthaler; Design by Corianton Hale

Click the image above (or click here) to download a printable PDF of the Gladvent Calendar!

21:49

libtool-2.5.4 released [stable] [Planet GNU]

Libtoolers!

The Libtool Team is pleased to announce the release of libtool 2.5.4.

GNU Libtool hides the complexity of using shared libraries behind a
consistent, portable interface. GNU Libtool ships with GNU libltdl, which
hides the complexity of loading dynamic runtime libraries (modules)
behind a consistent, portable interface.

There have been 49 commits by 16 people in the 8 weeks since 2.5.3.

See the NEWS below for a brief summary.

Thanks to everyone who has contributed!
The following people contributed changes to this release:

  Adrien Destugues (1)
  Alastair McKinstry (6)
  Bruno Haible (1)
  Ileana Dumitrescu (27)
  Jerome Duval (1)
  Jonathan Nieder (2)
  Joshua Root (1)
  Khalid Masum (1)
  Markus Mützel (1)
  Martin Storsjö (1)
  Richard Purdie (1)
  Sergey Poznyakoff (1)
  Tim Schumacher (1)
  Vincent Lefevre (2)
  mintsuki (1)
  streaksu (1)

Ileana
 [on behalf of the libtool maintainers]
==================================================================

Here is the GNU libtool home page:
    https://gnu.org/s/libtool/

For a summary of changes and contributors, see:
  https://git.sv.gnu.org/gitweb/?p=libtool.git;a=shortlog;h=v2.5.4
or run this command from a git-cloned libtool directory:
  git shortlog v2.5.3..v2.5.4

Here are the compressed sources:
  https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.gz   (2.0MB)
  https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.xz   (1.1MB)

Here are the GPG detached signatures:
  https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.gz.sig
  https://ftpmirror.gnu.org/libtool/libtool-2.5.4.tar.xz.sig

Use a mirror for higher download bandwidth:
  https://www.gnu.org/order/ftp.html

Here are the SHA1 and SHA256 checksums:

  77227188ead223ed8ba447301eda3761cb68ef57  libtool-2.5.4.tar.gz
  2o67LOTc9GuQCY2vliz/po9LT2LqYPeY0O8Skp7eat8=  libtool-2.5.4.tar.gz
  9781a113fe6af1b150571410b29d3eee2e792516  libtool-2.5.4.tar.xz
  +B9YYGZrC8fYS63e+mDRy5+m/OsjmMw7rKavqmAmZnU=  libtool-2.5.4.tar.xz

Verify the base64 SHA256 checksum with cksum -a sha256 --check
from coreutils-9.2 or OpenBSD's cksum since 2007.

Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify libtool-2.5.4.tar.gz.sig

The signature should match the fingerprint of the following key:

  pub   rsa4096 2021-09-23 [SC]
        FA26 CA78 4BE1 8892 7F22  B99F 6570 EA01 146F 7354
  uid   Ileana Dumitrescu <ileanadumi95@protonmail.com>
  uid   Ileana Dumitrescu <ileanadumitrescu95@gmail.com>

If that command fails because you don't have the required public key,
or that public key has expired, try the following commands to retrieve
or refresh it, and then rerun the 'gpg --verify' command.

  gpg --locate-external-key ileanadumi95@protonmail.com

  gpg --recv-keys 6570EA01146F7354

  wget -q -O- 'https://savannah.gnu.org/project/release-gpgkeys.php?group=libtool&download=1' | gpg --import -

As a last resort to find the key, you can try the official GNU
keyring:

  wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
  gpg --keyring gnu-keyring.gpg --verify libtool-2.5.4.tar.gz.sig

This release was bootstrapped with the following tools:
  Autoconf 2.72e
  Automake 1.17
  Gnulib v1.0-1108-gea58a72d4d

NEWS

  • Noteworthy changes in release 2.5.4 (2024-11-20) [stable]


** New features:

  - New libtool command line flag, --no-finish, to skip executing
    finish_cmds that would alter the shared library cache during testing.

  - New libtool command line flag, --reorder-cache=DIRS, to reorder the
    shared library cache, only on OpenBSD.

** Bug fixes:

  - Fix incorrect use of workarounds designed for Darwin versions that
    don't have -single_module support.

  - Fix errors when executing 'make distclean' and 'make maintainer-clean'.

  - Fix bug where the constructed rpath omit directories, instead of
    appending them to the end.

  - Fix configure error for when variable 'multlib' is unset.

  - Fix searching for -L in link paths being over-greedy and incorrectly
    handling paths with -L in them.

  - Avoid using AC_TRY_EVAL macro, "dangerous and undocumented".

  - Fix linking libraries at runtime with tcc by adding run path.

  - Fix path comparison by removing trailing slashes on install commands.

  - Fix linking for mingw with lld by prefering response files over the
    linker script.

  - Fix '-Fe' usage with linking in MSVC.

  - Fix '--no-warnings' flag.

  - Fix handling xlc(1)-specific options.

  - Fix Haiku support.

** Changes in supported systems or compilers:

  - Support additional flang-based compilers, 'f18' and 'f95'.

  - Support for 'netbsdelf*-gnu'.

  - Support for '*-mlibc', and subsequently Ironclad and Managarm.

  - Support for SerenityOS.

  - Support for wasm32-emscripten.

Enjoy!

21:35

Stranger Suggests: Julefest, Seattle International Butoh Festival, Meow Brow, United Indians Native Art Market, BEAT [The Stranger]

One really great thing to do every day of the week. by Dave Segal WEDNESDAY 11/20  

Following Space Community Opening

(VISUAL ART) Celebrate the opening of Seattle Art Museum's latest two-person exhibition, Following Space: Thaddeus Mosley & Alexander Calder, for free at this gathering. Curator Catharina Manchanda will offer a 15-minute overview of the exhibition, and pianist/composer Victor Noriega will add a touch of class with layered, complex compositions. Docents will lead tours of the show to provide additional context, and cocktails and snacks will be available for purchase. (Seattle Art Museum, 1300 First Ave, 6–9 pm, free) LINDSAY COSTELLO

THURSDAY 11/21  

Beautiful Freaks, Mikey Moo, and Chinese American Bear

(MUSIC) Chinese American Bear are riding the massive wave of popularity enjoyed by Asian pop over the last decade. The married Seattle duo of Anne Tong and Bryce Barsten create instantly enjoyable dance music with melodies that urgently seek to brighten your day. On CAB's 2022 self-titled debut album, the fusion of Chinese pop (and occasional Mandarin lyrics) with Western beats and instrumentation is as smooth as noodles, and the production positively gleams. The record's most popular tune, "Love Bus," has a deceptive funkiness even as it spirals skyward with diaphanous euphoria. On this year's superior follow-up on Moshi Moshi Records, Wah!!!, CAB continue to construct their adorable sonic confections into an indestructible fortress of escapism in which—given the oncoming Project 2025 shitstorm—we'll need to take refuge from time to time. On the new album, everything sounds punchier, more vivid, and ready for prime time. If Chinese American Bear aren't tickling large festival crowds by next year, I'll slowly shake my head in disbelief. With Beautiful Freaks and Mikey Moo as part of Cloudbreak Music Festival. (Neumos, 925 E Pike St, 7 pm, $10, all ages) DAVE SEGAL

FRIDAY 11/22  

Julefest: A Nordic Holiday Celebration

Æbleskiver!!!!!!!!! NICK KLEIN

(COMMUNITY) The National Nordic Museum’s annual Julefest is a weekend filled with holiday celebrations, including music, dancing, and winter fare from northern Europe. Modeled after a traditional Christmas market, it includes photos with Santa, wares from dozens of local artisans, and tasty Scandinavian snacks like æbleskiver for when you need to warm up your insides. New this year, the market will open on Friday evening for the 21-and-up crowd with festive drinks in the Valhalla Beer Hall and giving adults first dibs on goodies from vendors like Hygge Chocolates and Sky River Mead. (National Nordic Museum, 2655 NW Market St, Fri-Sun, $5-$20, Fri is 21+, Sat-Sun is all ages) SHANNON LUBETICH

SATURDAY 11/23  

Seattle International Butoh Festival 2024

(PERFORMANCE) At this recurring festival presented by the Seattle-based organization DAIPANbutoh Collective, attendees can feast their eyes on the fascinating art of butoh, a contemporary form of Japanese performance inspired by ghosts, anguish, rapture, and the grotesque. (If that sounds incredibly cool to you, that's because it is.) Guest artists Mari Osanai (from Japan) and Eugenia Vargas (from Mexico) will lead workshops, and dancer-activist Tebby Ramasike's unique work will be shared via video. (Yaw Theater, 6520 Fifth Ave S, Nov 22–24, $20-$225, free and sliding scale) LINDSAY COSTELLO

SUNDAY 11/24  

United Indians Native Art Market

          View this post on Instagram                      

A post shared by United Indians of All Tribes (@uiatf)

(COMMUNITY) Put your money where your land acknowledgment is and support the Indigenous community at this curated market and exhibition featuring goods from local Native artists. The market runs for a weekend in November and December, so there's ample opportunity to choose from a wide range of gifts, including clothing, jewelry, art prints, woodworks, and instruments. Already finished with your holiday shopping? That's fine—these high-quality creations will be in style all year round, and you’ve earned a little something for yourself, don’t you think? You can also visit the online gift shop, which supports the mission of United Indians of All Tribes Foundation. (Daybreak Star Indian Cultural Center, 5011 Bernie Whitebear Way, Nov 23–24 and Dec 21–22, free, all ages) SHANNON LUBETICH

MONDAY 11/25  

Meow Brow

Alexis Trice, 'A Good Cry.' See it as part of the Meow Brow show at Gallery ERGO through December 9. COURTESY OF GALLERY ERGO

(VISUAL ART) When life gives you lemons in the form of a worst-case-scenario presidential election, make lemonade by attending a cat-themed art show. Look, I can't promise this exhibition will cure your existential dread. I can, however, promise that Gallery ERGO has curated an "insanely good lineup" of artists, all of whom have worked their magic on "birch cat head-shaped panels." Plus, 10% of all proceeds from the show will be donated to a local animal shelter. There's still hope for humanity, you know. (Gallery ERGO, 1501 Pike Pl Ste 314, through Dec 9, free, all ages) LINDSAY COSTELLO

TUESDAY 11/26  

BEAT

(MUSIC) Most folks—including this writer—consider UK prog-rock legends King Crimson's peak to span from 1969 to 1974. However, the three sporadically brilliant albums that master guitarist/leader Robert Fripp and a different crew cut in the first half of the 1980s have their champions, too—KC guitarist Adrian Belew and bassist Tony Levin among them. Now, those two badasses, plus guitar maestro Steve Vai (who's assuming the Fripp role) and Tool drummer Danny Carey, have formed the virtuosic group BEAT in order to play songs from Discipline, Beat, and Three of a Perfect Pair. These records combine art rock, new wave, disco, and a Westernized strain of gamelan into eventful and complex compositions that sound little like "21st Century Schizoid Man" or "Starless." Eighties tracks such as "Elephant Talk," "Thela Hun Ginjeet," and "Sleepless" even got dance floors moving—something that first-phase Crimson never really did. The BEAT repertoire also includes some glistening ballads, serene ambient pieces, and contorted art rock. If you can handle Belew's David Byrne-alike vocals, you're in for a powerful treat. (Moore Theatre, 1932 2nd Ave, 8 pm, $75.50 and up, all ages) DAVE SEGAL

Do You Want to Color a Snowman? [The Stranger]

We’ll feature your creations throughout the season, and pick our favorites to win a prize! by Stranger Staff

The happy and dapper snowman on our cover, designed by the great German artistic duo Yeye Weller, is hoping you can give him a makeover. So bust out those markers, crayons, glitter, and glue, and make him slay for the holidays!

Snap a pic and share it with us on Instagram, @thestrangerseattle, using the hashtag #strangercoloringcontest. We’ll feature your creations throughout the season, and pick our favorites to win a prize!

Click on the image above (or click here) to download a printable PDF!

20:00

Where to Celebrate Beaujolais Nouveau Day 2024 in Seattle [The Stranger]

Four Events for Fruity Wine by EverOut Staff The third Thursday of November (November 21 this year) marks Beaujolais Nouveau Day, when France's most famous vin de primeur (a wine that may be sold the same year it is made) is released upon the world, fresh from the harvest. As former Stranger writer Tobias Coughlin-Bogue wrote following Trump's election in 2016, "Amid the sodden misery of November in Seattle, there is always one bright spot: Beaujolais Nouveau Day...Why do you give a shit about some obscure French wine? Well, because Beaujolais nouveau is such a magical, overabundantly fruity wine that it can help you forget that you live in the end times. Yes, the storm drains look like they're on the verge of an actual apocalyptic flood, the sun is blocked out by your work schedule, and an unhinged megalomaniac is about to seize power, but there you are, sipping a bright, buoyant glass of Beaujolais nouveau, nibbling on something delicious, and perhaps even closing your eyes for a moment to imagine that you've expatriated and are enjoying all this lovely food and wine in some cozy cafe in Lyon. Au revoir, President Trump." Below, we've compiled a few places in Washington that will fête the occasion by pouring their own Beaujolais Nouveau offerings and other similar wines.

THURSDAY, NOVEMBER 21

Annual Beaujolais Nouveau Dinner
The Lodge at St. Edward Park's restaurant Cedar + Elm will welcome the release of the newest Beaujolais nouveau vintage with a lively evening that includes live music from the local Parisian-inspired band Rouge and French dinner specials from chef Luke Kolpin. Look forward to pours of Division Cellar's freshly bottled "Nouveau Nouveau" Gamay noir, as well as vintage and cru Beaujolais selections.
The Lodge at St. Edward State Park, Kenmore, 5-9 pm

19:49

The Big Idea: Maurice Broaddus [Whatever]

Writing can take you places you never expected. For author Maurice Broaddus, that includes the offices of some higher ups in his community. Read on to see where else his newest novel, Breath of Oblivion, has taken him.

MAURICE BROADDUS:
I get called into the principal’s office a lot over my writing.*

By “principal’s office,” I mean local city leaders, officials, or politicians. Usually it involves a story or article I’ve written. Lately it’s been my books getting me in … conversations.

My current trilogy, ASTRA BLACK, is about an independent, self-sufficient, self-determining Pan-African community. Breath of Oblivion is book two (Sweep of Stars is book one. Book three will be called A City Dreaming, all three titles taken from the Langston Hughes poem, “Stars.”) The central challenge faced in Breath of Oblivion is that of a community’s struggle to survive against the forces of (intergalactic) gentrification by Original Earth (O.E.). Systematic forces. Political forces. Economic forces. All leveraged to fracture the community from within (stirring dissent via infiltrators) and without (the weight of everything from those same oppressive forces to O.E.’s military might).

Much of the book is inspired by the obstacles faced while doing community organizing work and reimagining those situations through a science fiction lens. There is a level of reading of my work that could be seen as a thinly veiled critique of Indianapolis politics (admittedly, not that thinly veiled because while I’m many things, subtle is not one of them.) I love writing about my home town because I see it as two things: 1) America in microcosm (its history, how it operates, a cross-section of its people); and 2) an interrogation of my identity (I am in this place, in this time, in this context).

But also, I’m hyper-specific in that criticism because, given my conceit, there’s a high likelihood that that what we’re going through here in Indianapolis is an experience playing out in cities across the country; and history teaches us that the same playbook is still being used.

One of the best pieces of writing advice was given to me by fellow author, Daniel Jose Older: Do that $#!+. I was feeling anxious about a project I was working on, as it plunged headlong into territories of race, class, and politics (at the time a departure from the ways that I had been writing). I called up Daniel and those were the words he gave me. Writers have to be bold and take risks. That what we’re supposed to do, and keep doing, as creatives. Speak truth to power. Be fearless. Keep pushing. It can be scary sometimes (which is why it’s good to have friends who can encourage and support you). In the end, taking those risks, accepting those challenges, only makes you a better artist.

Breath of Oblivion is a book two–with its share of an ongoing murder mystery, assassinations, military action, political intrigue, ancient magic, and starships powered by jazz music—it’s also built for folks to be able to jump into. Despite the calls to the principal’s office, I’m not complaining. It’s a reminder of two things: 1) you never know who’s reading you; and 2) at least I’m being read!

*Not to be confused with a local leader being killed off BY REQUEST, constituting one of My Favorite Bit about the book.


Breath of Oblivion: Amazon|Barnes & Noble|Bookshop|Powell’s

Author socials: Website|Twitter|Facebook

19:14

Heaven Scent [The Stranger]

See Fischersund: Faux Flora at the National Nordic Museum through January 26, 2025. by Lindsay Costello

If an ethereal falsetto singing in an invented language wafted into your ears sometime over the last three decades, chances are good that it was Jónsi’s. But the Icelandic singer and multi-instrumentalist behind the post-rock band Sigur Rós is also invested in another immersive, ephemeral medium: He creates perfume with his sisters Lilja, Inga, and Sigurrós Birgisdóttir as Fischersund, an art collective based in Reykjavík.

Fischersund: Faux Flora, the collective’s first exhibition, arrives at Seattle’s National Nordic Museum on the heels of FLÓÐ, Jónsi’s scented exhibition hosted by the museum in 2023. This show feels entirely distinct, though. Faux Flora envelops the viewer—or experiencer, rather—in a multisensory display of the chapters of human life through the lens of imagined plants, which are paired with scent blends and soundscapes. 

Ahead of the exhibit’s opening, I spoke with Jónsi, Lilja, Inga, and National Nordic Museum chief curator Leslie Anderson about scent blending, botanical treatises, the climate crisis, and their favorite Icelandic plants.

“The world we’re living in—it’s sometimes so bleak. I think it’s important to make some magic.” JIM BENNETT PHOTO BAKERY FOR NATIONAL NORDIC MUSEUM

Faux Flora is the first exhibition by Fischersund as a collective. What sparked your family’s interest in perfumery? How did that practice evolve into multimedia art?

Jónsi: I started perfuming around 15 years ago.

Inga Birgisdóttir: He was always showing us his creations, and we were amazed, but he was never happy with anything. Finally, we kind of bullied him into releasing one scent! 

Lilja Birgisdóttir: We’re all artists—musicians, perfumers, visual artists, photographers—so it was always a dream for us to create something bigger together. [Jónsi] had this house in downtown Reykjavík where he’d had his private studio, making music and perfumes. Then he moved his studio to LA, so it was empty. So we painted the walls black, put some art on the walls, had music playing, and that was about it. That’s how [our perfumery] started. 

Did each of you have specific roles in the creation of Faux Flora, or was it more of a collaborative process?

Jónsi: This is all collaborative, but we have our own strengths.

I’m curious how the sculptural, scented, graphic, and photographic elements in Faux Flora are brought together. What can someone expect when they walk into the museum space?

Inga: The exhibition shares the life cycle of a flowering plant: germination, growth, flowering, seed formation, and seed dispersal. We are kind of…

Jónsi: Mirroring.

Inga: Yeah, mirroring that process in human life: birth, growth, adolescence, adulthood, and death. The flowers are categorized in these five different chapters throughout the exhibition. 

Lilja: You can expect to see some video works, hand-colored photographs, sculptures, music, and deconstructed scents. Each flower has its own scent and soundscape.

Leslie Anderson: To situate this idea within the context of art history and natural science, [we were] thinking about this exhibition in relation to botanical treatises. These had so many different functions, but they were really a way to describe the natural world. Faux Flora is a clever response to that type of text, which would bear beautiful illustrations by artists but also contain descriptions of plants and communicate the experience of being with that example of plant life to anyone in the world. In this case, Fischersund takes it so much further because you can smell the plants. You can hear them in their environment. 

A visitor gets a big whiff of the Fischersund: Faux Flora exhibit. JIM BENNETT PHOTO BAKERY FOR NATIONAL NORDIC MUSEUM

Faux Flora was inspired by the 500 native plant species in Iceland, but the show invents new plant species. How does that process of invention work?

Jónsi: Icelandic plant life was a starting point, but it evolved from our imagination, our emotions, our memories.

Do any of you have a favorite Icelandic native plant?

Jónsi: Fífa is very cool. [Eriophorum angustifolium, common cottongrass.]

Inga: I also like Arctic root [Rhodiola rosea], which is like a super-plant. It’s really good for you, good for your memory. It smells really sweet.

Lilja: Chervil [Anthriscus cerefolium]—an Icelandic plant with a licorice scent. We have it in our teas and in the perfume.

Jónsi: We use a lot of Icelandic pine in our perfumes, too.

“When you use your eyes, you’re so used to being critical. But there’s something about music and scent that goes past those walls.” JIM BENNETT PHOTO BAKERY FOR NATIONAL NORDIC MUSEUM

Curating a show with scent elements sounds like a unique challenge. Leslie, I’m curious how you integrate scent into a public space.

Leslie: There are lengthy conversations that we have to have on staff—concerns about our HVAC system, ensuring that the scent is impactful and soliciting the response that artists want, but with nothing dispersed in the atmosphere that could compromise other objects in the museum. It takes a lot of creative problem-solving to determine how we can ensure that the viewer is understanding the work in its entirety through their nose, while still operating within museum professional practices.

Scent in exhibitions is a way to elicit an emotional response, to evoke memory. I think that museums need to encourage people to spend time thinking deeply about and responding to works of art. That is an important artistic strategy here. It’s not too dissimilar from Bernini’s 17th-century fusions of the visual—painting, sculpture, architecture—to convey important points, or, in the 19th century, Wagner’s idea of a “total work of art,” or Gesamtkunstwerk. This is a human translation of these ideas wedded with forward-thinking artistic practices to get a full, emotional, physical response from the viewer.

It seems like scent is having a moment in contemporary art. I know FLÓÐ was a huge success; there was a 12.5% increase in museum membership during that time. What’s drawing artists and visitors toward scent as a medium and an experience?

Leslie: Coming out of the pandemic, [viewers were] searching for experiences that transported them. We’re more cognizant of how we spend our time, and we want these moments to be very impactful. I also saw FLÓÐ as a very social exhibition. People spent hours by themselves in the space, but they also appreciated it in groups and talked about it. It allows viewers to experience and share in a way that they weren’t able to in lockdown.

"In the exhibition, the flowers themselves are hinting at what you’re smelling." JIM BENNETT PHOTO BAKERY FOR NATIONAL NORDIC MUSEUM

I know seaweed was harvested from the Pacific and North Atlantic Oceans for FLÓÐ, Jónsi. Are there any anchor or primary scents in Faux Flora?

Jónsi: We were mostly excited about the five different stages. It is different from FLÓÐ, which centered on one scent—this is varied.

Lilja: For our “birth” scent, we were thinking about what scents we connect with that period—breast milk, skin, clean clothes. It’s nuanced because we are mirroring the human lifespan—like in childhood, you have the scent of grass-stained pants and candy. In the exhibition, the flowers themselves are hinting at what you’re smelling. 

On the Fischersund website, I noticed how poetically scent is written about—like No. 23 Fragrance, which is rooted in Jónsi’s memories of working by the harbor with his father. That connection between scent and storytelling seems powerful. It’s cool to hear that you’re blending scents that are both unexpected and familiar, like grass and skin.

Lilja: Scent is a universal language. Grass smells the same anywhere in the world, you know? That’s the beautiful thing about smell…

Jónsi: It’s a connector. 

See Fischersund: Faux Flora at the National Nordic Museum through January 26, 2025. JIM BENNETT PHOTO BAKERY FOR NATIONAL NORDIC MUSEUM

Does this work feel connected to climate change? I’m thinking about plants growing and dying and disappearing. I’m thinking about the ephemerality of our memories. Scent, as you just said, is a universal language—and the state of the climate is a universal crisis. Does that feel resonant?

Inga: Yes—we’re dealing with that every day.  That’s our reality right now. Some of these memories or shared experiences that we are working with are disappearing, too. 

Lilja: For example, we took old books and distilled them into a scent. It was interesting talking to young people about it, [for whom] everything happens on their screens. They didn’t have these connections, and their homes weren’t filled with books. That’s also something that’s changing—physical versus digital.

Leslie: Scent is such an effective tool in conjuring memories. In FLÓÐ, some of the visitor responses that I felt were most powerful were those that reflected on rising flood waters and the climate crisis. But other people talked about how the scents brought them back to their youth in Norway. The show was interpreted differently by every single person. To your question on climate change and the extinction of plant life, I think that this exhibition follows along with botanical treatises and taxonomies, but it’s for the Anthropocene era. It’s memorializing, even though these are “faux” flora. It memorializes plants that we will lose because of human impact.

The process of imagining new plant species makes me think of your practice of singing in your invented Hopelandic language, Jónsi. What feels important about imagining something new in your work?

Jónsi: I think doing something new and exploring is important to all of us. 

Inga: And of course, the world we’re living in—it’s sometimes so bleak. I think it’s important to make some magic.

You have scented concerts planned with Sin Fang and Kjartan Holm as opening receptions for Faux Flora. Do you see any similarities or differences between the perfumery process and the music-making process?

Jónsi: They’re linked. Making music is very… musical. [laughs] But perfume is [more of] a silent process. 

Inga: Both are very layered. These layers make it juicy. 

Jónsi: Both are invisible and abstract but still resonate in some way with everybody. So it’s kind of amazing. It’s magic.

Lilja: Yeah, it is magic. When you use your eyes, you’re so used to being critical. But there’s something about music and scent that goes past those walls. You either like a smell or you hate a smell. It’s the same in music.

Fischersund: Faux Flora will be installed at the National Nordic Museum through January 26, 2025.

18:49

Exbox [Penny Arcade]

We've been saying that Game Pass is the platform for years; I let my sub lapse, but even on PC I was nominally an Xbox gamer for years. I don't know who is doing the curation on the PC side of things, but if I were doing it myself in some kind of Ambien soaked nocturnal fugue state it would be more or less the same slate. But their This Is An Xbox campaign, which we go into in the strip, kinda hurts.

18:28

The City Council Anti-Tax Majority’s Parting Shot Is One Final Middle Finger to the Poor [The Stranger]

If this budget season has shown us anything, it's that Seattle City Council's anti-tax majority worships at the altar of their rich donors while working people pray for scraps. They’ve spent their time in office rejecting, limiting, or hoping for the eventual end of progressive taxation with the pompous, unspoken assertion that they are the fiscally responsible adults in the room. But they have no claim to intellectual superiority when yesterday they voted to siphon off $360 million from the JumpStart Payroll tax - using the City’s strongest progressive revenue stream -to backfill the General Fund. They also set a 2040 sunset date for that tax, and rejected new progressive revenue in the form of a capital gains tax, effectively endangering every program funded by the measure while setting the stage for further cuts in the years to come. by Hannah Krieg

If this budget season has shown us anything, it's that Seattle City Council's anti-tax majority worships at the altar of their rich donors while working people pray for scraps. They’ve spent their time in office rejecting, limiting, or hoping for the eventual end of progressive taxation with the pompous, unspoken assertion that they are the fiscally responsible adults in the room. But they have no claim to intellectual superiority when yesterday they voted to siphon off $360 million from the JumpStart Payroll tax - using the City’s strongest progressive revenue stream -to backfill the General Fund. They also set a 2040 sunset date for that tax, and rejected new progressive revenue in the form of a capital gains tax, effectively endangering every program funded by the measure while setting the stage for further cuts in the years to come. 

But, as Head of Central Staff Ben Noble repeatedly emphasized in discussions about JumpStart, it only takes five votes to change these policies. And the tides are turning — the progressive bloc (if you can call it that)will gain another member with Council-elect Alexis Mercedes Rinck taking office in a matter of weeks and the conservative leader. Meanwhile, Council President Sara Nelson seems especially vulnerable to a challenger from her left. The Chamber of Commerce may have seen their last major victory for a while. 

Stop the Steal!

The Budget Committee spent the bulk of Tuesday’smeeting debating changes to the JumpStart Payroll Expense Tax. Ultimately, they passed Budget Chair Dan Strauss’s bill, which while framed as a means to align the Mayor’s maximalist vision with the original intent of JumpStart, did very little to actually safeguard the tax revenue. 

JumpStart imposes a small tax on the city’s largest businesses on their highest paid employees. The City Council passed the tax, supported by a broad coalition, in 2020. At the time, they set a specific spending plan to ensure the money went to issues the City had ignored year over year — 62% for affordable housing, 15% for economic development and revitalization, 9% for equitable development, 9% for Green New Deal initiatives, and 5% to administer the tax. 

However, year after year, the executive proposed using large chunks of the revenue from the overperforming tax to plug the general fund deficit or add new programming without raising new taxes. While that made sense in the wake of pandemc-era, economic ruin, the City Council vowed to end that flexibility in 2025 in order to redirect the revenue toward the worsening housing crisis, displacement, and impending climate catastrophe. No biggie. 

But Mayor Bruce Harrell had a different idea in his 2025-2026 budget proposal. Harrell, determined not to raise taxes on his wealthy donors, sucked more than $360 million from JumpStart to balance the general fund and add new programming. He and others claim this prevented “austerity budgeting” in the face of a budget shortfall, but defunding affordable housing by $200 million feels rather austere to me! 

Harrell also proposed legislation to amend the JumpStart spending plan, shifting from requiring specific allocations for affordable housing and other original priorities to encouraging such spending without specific percentage guidelines. Advocates, particularly from the affordable housing sector and environmental organizations, argued this made JumpStart a “slush fund” for the executive when the broad coalition of JumpStart supporters fought specifically for revenue to alleviate the housing and homelessness crisis, combat displacement, and pay for Green New Deal Initiatives. 

Strauss proposed an alternative JumpStart spend plan, but it did not aggressively challenge the Mayor’s bastardization of the revenue. He proposed retaining the original guidelines, but as a suggestion, not a legal obligation. In effect, the City could still rake up as much as they wanted from JumpStart to the General Fund. But, to be fair, no one ever respects the spend plan anyway. 

Council Members Tammy Morales and Cathy Moore both attempted to install stricter guardrails on the revenue. Morales proposed an amendment to Strauss’ JumpStart spend plan that would limit JumpStart’s general fund support to 20% of the tax’s yearly revenue, starting in 2027. It failed with Morales as the only affirmative vote and abstentions from Strauss and Council Member Joy Hollingsworth, who felt like she didn’t have enough time to review many of the amendments before voting. 

Moore proposed an amendment to Strauss's bill that would limit JumpStart’s general fund support to 45% and require the rest to go to affordable housing only, starting in 2027. Moore wanted the council to be “clear eyed” about the need to siphon JumpStart revenue to support General Fund programming, a popular sentiment among her colleagues, but she also wanted to protect affordable housing development, which is less popular apparently! It also failed with Moore as the only affirmative vote and abstentions from Strauss and Hollingsworth. Saka, Morales, Rivera, Kettle, Woo, and Nelson voted no. 

Strauss's other attempts to wean the council off JumpStart as their easy budget fix also failed.

Some of the more conservative council members, such as Council Member Maritza Rivera and Bob Kettle, turned up their noses at the idea of guardrails, arguing that it implied that they did not care about affordable housing and would not adequately fund it. Love to burst their bubble — the council is allowing a massive raid of affordable housing funding to pay for general fund programs, the largest chunk being the Seattle Police Department. They haven’t proven you can be trusted without guardrails! 

JumpStart, Not JumpStall!

Aside from the spending plan, the council had some other JumpStart rules to hash out. Morales proposed an amendment to reestablish the JumpStart Oversight Board. The Board has never actually convened, but Morales believes it would do important work to increase transparency, make sure dollars get spent properly, and collect data about the tax’s impacts. The amendment failed with Moore, Morales, and Strauss voting yes and Hollingsworth abstaining. Saka, Rivera, Kettle, Woo, and Nelson voted no. 

The only amendment that passed with Strauss's underlying legislation is the incredibly stupid and obvious virtue signal to big business to reestablish the tax’s 2040 sunset date. Strauss removed the sunset date because if they stopped collecting the tax in 2040, “it would leave Seattle in one of the biggest structural budget deficits in its history… somewhere north of half a billion dollars.” he said.

Still, Kettle, who sponsored the amendment, argued that Strauss’s removal of the sunset date is like declaring “mission accomplished” before “budget reform,” which some members think they have started by burdening departments with more data collection and reports in their budget provisos and statements of legislative intent. 

Nelson agreed with Kettle. She liked picking a date to “force examination.” However, since the tax's inception, it has been the centerpiece of budget negotiations. No sign of that changing anytime soon.

While Kettle and Rivera both said they don’t anticipate the City will outgrow their need for JumpStart in 2040, Nelson seemed hopeful. She said, “Wouldn't it be great” if the City could stop spending so much on affordable housing after prioritizing it for the next 15 years. Seattle needs to fund at least 2,100 units of affordable housing every year for the next 20 years. So far, they are not on track to do that. 

Buried just below the surface of her comments seemed an admission that Nelson would one day like to stop levying a payroll tax, which her corporate supporters have asked for in the past. This seemingly reveals a preference for regressive taxes, which disproportionately burden the poor, over progressives ones that target the wealthy few. Perhaps, if the City ever buys its way out of the housing crisis, it could use JumpStart to replace more regressive forms of City revenue such as sales tax. Just a thought. 

Anyway, Strauss disagreed with Kettle’s characterization. He was not declaring the mission accomplished. Rather he saw red lights flashing in the control room and no indication the City could stop relying on JumpStart by 2040, particularly as they continue to vote to use JumpStart to backfill the general fund. 

“To put this very plainly, if the General Fund is an allowed use of JumpStart, then JumpStart needs to continue in perpetuity,” Strauss said. “If JumpStart is not continued in perpetuity, we need to be much more refined about how we use JumpStart to plug our budget” so as to not endanger those programs when the tax expires. 

Still, the council voted to reestablish the 2040 sunset date. Saka, Rivera, Moore, Kettle, Woo, and Nelson voted yes. Hollingsworth abstained. Strauss and Morales voted no. 

The fuckery may be a fluke. Council-elect Rinck will officially swear in on November 26 and the City will host a ceremonial swear-in on December 3, replacing council appointee Tanya Woo. If she governs like she campaigned, Rinck will be perhaps the most dogged defender of JumpStart. On her website, she wrote, “ Protect and defend Jumpstart funding – designated towards affordable housing, equitable development, and Green New Deal initiatives – from long-term backfilling of the General Fund” as the second point of the very first heading of her platform.. And a pro-JumpStart candidate may run against Nelson in the upcoming 2025 election. By the time the council revisits the spend plan, likely in the fall of 2026 for the 2027-2028 biennium, the council could be more friendly to the original intent of JumpStart. 

Capital Gains? More Like Capital Lost

The council also voted down Moore’s capital gains tax proposal with Morales, Hollingsworth, Moore, and Strauss voting in favor; Saka, Rivera, Kettle, and Nelson voting no; and Woo abstaining because her husband is a stock trader. Is there anything she can vote on?

The Mayor’s raid on JumpStart closed the huge budget hole this biennium, but the City will still see a deficit of more than $100 million in 2027. Moore rightly noted the City only has two long term options, make drastic cuts or find new revenue. 

She and her colleagues ran campaigns that promised to take a hard look at the budget before proposing more revenue. Moore said after the deep analysis, she found Hannah Krieg was right all along — there’s not a whole lot of places to cut. Okay, she didn’t shout me out by name, but I told every single one of the 2023 candidates they wouldn’t fill the deficit by scrounging between the couch cushions. 

Her proposed tax, mirroring the statewide capital gains tax, would impose a 2% fee on profits from the sale of stocks and bonds exceeding $262,000. The tax could generate anywhere from $16 million and $51 million in its first year and would only apply to about 860 of the city’s wealthiest residents, according to central staff analysis.

Saka, who co-sponsored the proposal, argued the capital gains tax was the “right tax at the wrong time,” which kind of sounds like how you let down a girl you don’t like without hurting her self-esteem or how you pretend to consider Seattle voters’ overwhelming support of taxing the rich without betraying your corporate donors.

However, the City should not wait until the 2027 budget process to start collecting new taxes when they expect a $100 million shortfall. Moore argued the timing is great. 

Nelson questioned the call to raise more revenue at all. She regurgitated tired talking points from the Chamber of Commerce’s poll suggesting 68% of Seattlites do not support new taxes. However, the Chamber’s survey question did not specify that the taxes in question would not target the average person, but rather the ultra wealthy or corporations. When Northwest Progressive Institute asked Seattle voters specifically about progressive revenue, 58% support levying new taxes on wealth. And, in perhaps the clearest indicator, Seattle voted overwhelmingly to keep the statewide capital gains tax when it faced repeal earlier this month. 

Despite the council’s rejection, progressive advocates should not despair — the council has the votes to pass the capital gains tax soon.  

Rinck tells The Stranger she would have voted yes on the capital gains proposal if she was on the dais today, which would make for a majority.

“I want to make sure we revisit it next year,” says Rinck. “I would love to work with a coalition to determine a spend plan that meets our needs.”

You win this round, Chamber of Commerce. But come December, the council has a pro-tax majority once again.

16:56

Slog AM: Big Winds, Boeing Holiday Layoffs, Trump Picks Dr. Oz to Run Medicaid and Medicare [The Stranger]

The Stranger's morning news round-up. by Vivian McCall

That was a big storm: The winds from the bomb cyclone eased around 4 am, but last night the National Weather Service in Seattle clocked winds of 77 mph winds on Mount Rainier, 74 mph in Enumclaw, 57 mph in Federal Way, and 55 mph at Sea-Tac Airport, a speed that diverted flights. A buoy in Canadian waters recorded the highest windspeed of 101 mph at around 6 pm last night. At least two people are dead. One woman died when a tree fell on her while she took a shower, another woman died after a tree crushed her at a homeless encampment in Lynnwood, and hundreds of thousands are still without power. As of 2:45 am, Seattle City Light was down to 92,000 customers without power, after getting the lights back on for 29,000 people overnight. At least 641,000 people lost power overnight across Western Washington. This probably goes without saying, but if you see a downed power line, don’t touch it. Excess electricity is bad for you health.

A quick sample of highest gusts recorded across the area:

Sunrise - Mt. Rainier 77 MPH
Enumclaw 74 MPH
Crystal Mountain 74 MPH
SeaTac Airport 59 MPH
Sedro-Wooley 56 MPH
Arlington 49 MPH

More complete list: https://t.co/h50bbv35T3 pic.twitter.com/zu8pZmb3cf

— NWS Seattle (@NWSSeattle) November 20, 2024

We’re due for another bomb cyclone: A second system may develop Thursday or Friday, coming further north and possibly much closer to the shore.

Seattle City Council approves budget: After a hard-to-follow process packed with last minute amendments, the Council approved its budget in a committee hearing yesterday, and will take a final vote on Thursday. Hannah will have more later, but the Council is planning to divert money from  JumpStart, a tax on big Seattle businesses to fund affordable housing, to plug the $250 million deficit.

Your vote does matter: In a bit of a squeaker, Tacoma trial attorney Sal Mungia came out on top in the statewide race for the seat, beating Federal Way Municipal Court Judge Dave Larson by a mere 21,000 votes out of the more than 3.2 million votes counted. Mungia will replace Justice Susan Owens who is stepping down after reaching the mandatory retirement age of 75.

On the 2,199th day of Christmas, Boeing said to me: 2,199 layoffs in Washington state…. and a partridge in a pear tree. Last week, the company told KUOW that it would notify workers in mid-November that they’d be out of a job come January 17, but it looks like they’ll find out a few days before the holiday instead. A Christmas miracle. The machinists, who recently ended an eight-week strike, won’t lose their jobs, and the company’s CEO said the layoffs were a separate issue anyway. Boeing is a mire of corrupt executives, shitty working conditions, and catastrophic failure that sent profits in a tailspin. Boeing reported a third-quarter loss of $6 billion in October, and has a backlog of 5,400 airplane orders.

Will they/won’t they: Seattle Public Schools Superintendent Brent Jones said at last night’s board meeting that he’s considering withdrawing his latest proposal to close Seattle schools. After hearing emotional testimony from parents, School Board President Liza Rankin said she couldn’t imagine hearing anything between now and December that would allow her to vote for Jones’s plan. Jones said it was clear the direction is shifting, and he needs to consider “when it comes back, if it does.” It’s unclear what happens next, but, if the public hearings are postponed, it would be the second time the district has backed off from closure plans this year, according to The Seattle Times.

Dave Reichert conceded to Bob Ferguson—yesterday: Reichert is always late to the party. Catching serial killers. Acknowledging election losses. You just wish he knew earlier, you know? But after two weeks of ballot counting he finally conceded the race the Associated Press called on election night for Ferguson, who earned 56% of the vote.

Whooping cough’s banner year in the PNW: Pertussis, or the p in the Tdap vaccine, is a highly contagious bacterial illness that’s particularly threatening to infants. Washington state saw cases soar from 51 last year to more than 1,193. Idaho reported 700 cases this year, over just 34 in 2023. Oregon is expecting to break its record of 910 cases in 2012. This is what it sounds like. Do you want a baby to make this horrible sound? Make sure your shots are up to date.

Go see that Keith Haring exhibit at MoPop: Charles did, and he wrote about it here. (I also went a few weeks ago and really recommend it).

More cabinet picks: Trump tapped heart surgeon and snake oil-selling former talk show host Dr. Mehmet Oz to run the Centers for Medicare and Medicaid Services, the insurer to over 140 million poor, elderly and disabled Americans, and the World Wrestling Entertainment mogul Linda McMahon to run the Department of Education. 

There’s more to hate than I have space for: During his unsuccessful Senate campaign, Oz supported funding privatized Medicare Advantage plans with a 20 percent payroll tax, basically subsidizing the private sector with public dollars, a move he would benefit from financially because he and his wife own stock in private insurance. McMahon, board chair of the America First Policy Institute, a think tank to advance Trump’s policies, ran the Small Business Administration during his first term. McMahon has barely any education experience, which might not matter if Trump lets her dismantle the department and send “Education BACK TO THE STATES.” Linda and her husband Vince McMahon, who she’s separated from, are also facing a lawsuit by five former WWE “ring boys,” who claim the couple knew that high-ranking WWE employees were sexually abusing them and did not stop it. They deny the allegations.

Trump won’t ever play by the rules: Donald Trump is an authoritarian, so what is supposed to be a peaceful transfer of power looks like a “hostile takeover” of the federal government, as one close ally of the President-elect told The Washington Post. So far, Trump has almost fully cut out the federal agencies his predecessors have relied on to take charge of the government. He has yet to collaborate with the General Services Administration, which handles the handoff between administrations, because he hasn’t signed requisite pledges to follow ethics rules. He’s cut out the State Department—with its secure lines and official interpreters—of calls with foreign leaders. He’s not supposed to negotiate foreign policy before he’s sworn in, but that statute is rarely enforced. As Nathalie wrote Monday, he’s not letting the Federal Bureau of Investigation background check those insane cabinet picks. The plans to decentralize federal agencies and replace civil servants with political loyalists seem very plausible at this moment. It’s worth saying that so far, all of this is legal, and that should scare us, because many of our institutional norms are norms, not laws. Trump has repeatedly shown that he is an amoral bad actor willing to cross any line he can legally cross, and then some.

https://t.co/nMfshamMzi pic.twitter.com/9I4FcxudVv

— Amanda Yee 余美娜 (@radiofreeamanda) November 12, 2024

Republican bigots target first trans congresswoman: Rep. Nancy Mace of South Carolina has introduced a bigoted resolution intended to keep newly-elected Delaware congresswoman Sarah McBride and transgender staffers and visitors to the Hill from using women’s bathrooms and locker rooms at the Capitol, a policy that will be well-insulated if anti-LGBTQ House Speaker Mike Johnson folds it into the House rules package. Republicans want to manipulate Americans into believing Mace’s resolution is about protecting women’s rights and spaces, when it is a policy designed to embarrass and denigrate a single person because her aggressively-normal vibe threatens to undermine propaganda that suggests trans people are dangerous to cis women and a sign of moral decay, rather than a minority seeking basic freedoms and equal treatment under the law. 

Rep. Mace took it farther: As of Wednesday morning, she’s introduced a bill to ban trans people from bathrooms, locker rooms and changing rooms on all federal property. As trans people have said for years, the fanatical Republican crusade against trans people was never about sports or kids.

Oh you thought threatening me would silence me? No. I just doubled down and filed a new bill to protect women and girls across the entire country on all federal property everywhere. pic.twitter.com/TmRgtSQqFx

— Rep. Nancy Mace (@RepNancyMace) November 20, 2024

Spain to legalize 300,000 undocumented migrants by 2027: In contrast to the US and most of Europe, Spain is embracing immigrants. The country’s leaders see the migration crisis, propelled by young men from countries like Mali, Senegal and Mauritania making dangerous voyages over the ocean, as means to support an aging workforce, maintain the welfare state, and compensate for the low birthrate, in what is one of the fastest growing economies in the European Union. Added legal protections will also curb the rampant exploitation of people seeking a better life and feeling political instability and violence.

Jesus in schools: Officials from the Texas Board of Education voted Tuesday for an optional curriculum that includes lessons with biblical teachings, so students can “better understand the connection of history, art, literature, and religion on pivotal events like the signing of the US Constitution, the Civil Rights Movement, and the American Revolution.” The Texas Federation of Teachers condemned the state board’s decision which they said violated the “separation of church and state.”

16:35

Steve Bellovin’s Retirement Talk [Schneier on Security]

Steve Bellovin is retiring. Here’s his retirement talk, reflecting on his career and what the cybersecurity field needs next.

16:07

How do I determine whether Explorer is showing or hiding file extensions? [The Old New Thing]

Say you want to determine in your program whether Explorer is showing or hiding file extensions.

You can do this by calling SHGetSettings:

bool AreExtensionsShown()
{
    SHELLFLAGSTATE sfs;
    SHGetSettings(&sfs, SSF_SHOWEXTENSIONS);
    return sfs.fShowExtensions;
}

But this is answering the question without understanding the problem.

Even if Explorer is showing extensions, that doesn’t mean that all extensions are shown. Some extensions are never shown, like .lnk. Some extensions are always shown, like .dll. And some rules are contextual: For example, if a file name consists only of the extension, then the extension is always shown.

So maybe what we have is an XY problem. “I have the name of a file and I want to display it in the same way that Explorer does. In order to do that, I need to know whether Explorer is showing extensions, so I will ask how to query that setting.”

But querying the setting doesn’t tell you everything you need to know in order to format a file name for display in the same way that Explorer does. To take all the display rules into account, you can ask SHGetFileInfo to produce the name that Explorer would show if it encountered a file with a specific name.

SHFILEINFO sfi;
if (SHGetFileInfo(L"something.txt", FILE_ATTRIBUTE_NORMAL,
    &sfi, sizeof(sfi),
    SHGFI_USEFILEATTRIBUTES | SHGFI_DISPLAYNAME)) {
    // use the name in sfi.szDisplayName
}

Note that the file attributes should be FILE_ATTRIBUTE_NORMAL if you want to display the name for a hypothetical file named something.txt, or FILE_ATTRIBUTE_DIRECTORY if you want to display the name for a hypothetical directory named something.txt.

But wait, this still might be an XY problem. “I got the name of a file from the system, and I want to display it the same way that Explorer does. So I’ll ask how to obtain the name that Explorer would show when faced with a file with a specific name.” But that’s still not enough, because the name that Explorer displays for a file depends on more than just the file’s name.

For example, the file named C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System Tools\Task Manager.lnk displays as Aktivitets­hanteraren on Swedish systems. To get this name, you need to provide a full path to SHGetFileInfo and say that it should consult the actual file (by removing the SHGFI_USE­FILE­ATTRIBUTES flag).

SHFILEINFO sfi;
if (SHGetFileInfo(L"C:\\ProgramData\\Microsoft\\"
                  L"Windows\\Start Menu\\Programs\\"
                  L"System Tools\\Task Manager.lnk",
                  0,
                  &sfi, sizeof(sfi),
                  SHGFI_DISPLAYNAME)) {
    // use the name in sfi.szDisplayName
}

If you received the file in the form of a pidl or IShellItem, you can take advantage of the information already cached in the pidl / IShellItem and obtain the display name without further disk access.

// If you have an IShellFolder + child pidl
IShellFolder* psf = ⟦ ... ⟧;
PIDLIST_CHILD pidl = ⟦ ... ⟧;
STRRET str;

if (SUCCEEDED(psf->GetDisplayNameOf(pidl,
                 SHGDN_NORMAL, &str))) {
    wil::unique_cotaskmem_string name;
    if (SUCCEEDED(StrRetToStrW(&str, pidl, name.put())) {
        // use the name in "name"
    }
}

// If you have an absolute pidl
PIDLIST_ABSOLUTE pidlAbsolute = ⟦ ... ⟧;
SHFILEINFO sfi;
if (SHGetFileInfo((PCWSTR)pidlAbsolute,
                  0,
                  &sfi, sizeof(sfi),
                  SHGFI_PIDL | SHGFI_DISPLAYNAME)) {
    // use the name in sfi.szDisplayName
}

// If you have an IShellItem
IShellItem* psi = ⟦ ... ⟧;
wil::unique_cotaskmem_string name;
if (SUCCEEDED(psi_>GetDisplayName(SIGDN_NORMALDISPLAY,
                    name.put()))) {
    // use the name in "name"
}

If your real question is “How can I display this thing the same way that Explorer does?” then ask that question. Don’t ask, “How can I determine whether Explorer is showing or hiding file extensions?” and try to replicate Explorer’s name-generation algorithm from that one Boolean value.

The post How do I determine whether Explorer is showing or hiding file extensions? appeared first on The Old New Thing.

15:49

[$] RVKMS and Rust KMS bindings [LWN.net]

At the 2024 X.Org Developers Conference (XDC), Lyude Paul gave a talk on the work she has been doing as part of the Nova project, which is an effort build an NVIDIA GPU driver in Rust. She wanted to provide an introduction to RVKMS, which is being used to develop Rust kernel mode setting (KMS) bindings; RVKMS is a port of the virtual KMS (VKMS) driver to Rust. In addition, she wanted to give her opinion on Rust, and why she thinks it is a "game-changer for the kernel", noting that the reasons are not related to the oft-mentioned, "headline" feature of the language: memory safety.

Blender 4.3 released [LWN.net]

Version 4.3 of the Blender animation system has been released. "Brush assets, faster sculpting, a revolutionized Grease Pencil, and more. Blender 4.3 got you covered."

15:07

Plans for CHICKEN 6 [LWN.net]

CHICKEN Scheme, a portable Scheme compiler, is gearing up for its next major release. Maintainer Felix Winkelmann has shared an article about what changes to expect in version 6 of the language, including better Unicode support and support for the R7RS (small) Scheme standard.

Every major release is a chance of fixing long-standing problems with the codebase and address bad design decisions. CHICKEN is now nearly 25 years old and we had many major overhauls of the system. Sometimes these caused a lot of pain, but still we always try to improve things and hopefully make it more enjoyable and practical for our users. There are places in the code that are messy, too complex, or that require cleanup or rewrite, always sitting there waiting to be addressed. On the other hand CHICKEN has been relatively stable compared to many other language implementations and has a priceless community of users that help us improving it. Our users never stop reminding us of what could be better, where the shortcomings are, where things are hard to use or inefficient.

14:56

Link [Scripting News]

It's noteworthy that we haven't seen many outages as Bluesky scales. On Twitter they had fail whales for years.

14:14

Link [Scripting News]

What matters with social networks is what you can get done there, not so much the features of the network. Bluesky has the same features today it had a month ago. The difference is we had an election in the US, I guess that was the catalyst. The presence of Elon Musk so close to Trump says there is a need for a Musk-free place. I've kept my account on Twitter. I started there in 2006, and I love the web more than I feel it would do any good to erase my presence there. It's pretty much against my religion to deliberately erase bits of the web. And whatever you think of Twitter, it is most definitely part of the web.

I’m Not Disappointed Just Mad AKA The Heaviest Couch in the Known Universe [Original Fiction Archives - Reactor]

Original Fiction Science Fiction

I’m Not Disappointed Just Mad AKA The Heaviest Couch in the Known Universe

Illustrated by Johnny Dombrowski

Edited by

By

Published on November 20, 2024

2 Share
An illustration of a blue 1963 International Metro van drifting through space as it passes a red sofa that floats in the background.

A stoner kid and his best friend attempt to move a sofa across town during an alien invasion . . .


Let’s skip the prologue for now and get right to the invasion, which all started for Tindal with the tragedy of the Tim Hortons cookie.

Tindal was sitting on the floor of his dark, cozy bedroom, jamming to Paul Anka’s swinging cover of “Wonderwall,” and about to tuck into his breakfast—a sexy, red velvet cookie with cream cheese filling, only slightly crusty from spending the night lost in his bed linens—when the bedroom door was yanked open. Unfortunately, he was leaning against the door at the time. He fell into the sunlit living room, and the cookie, seizing its moment to escape, flew from his hand, bounced once, and vanished into the general chaos of the apartment.

He would never see that cookie again.

A wail escaped him. Then he squinted upward at the imperious figure looming over him—the being that had so rudely hoicked open his door. He tilted his head to take in the perimeter of the silhouette. “Aunty Mads?”

It had been more than a year since he’d seen her. She looked the same—the Nordic pop star cheekbones, the black hair streaked with gray, those eyes that could grab you and just as suddenly let you go like you were a firefly. He scrambled to his feet. “How did you find me?” No, that came out wrong. He put his guilty feelings aside for a moment and hugged her. “I mean, what are you doing here?”

She returned the hug, and then leaned down, lovingly cradled his face in her hands—and plucked the earbuds from his ears.

“You’re shouting,” she said in that unplaceable accent of hers. “Do you know what’s going on outside?”

He wanted to say yes. But now that he thought about it, there had been more than the usual amount of brouhaha in the apartment, and a continuous warbling of sirens in the distance, and the roar of large roaring things. The floors and walls had been vibrating intermittently as if the building had been rezoned as a subwoofer. He’d nearly been tempted to turn off his earbuds.

“I’ve been in my room all morning.”

“That’s not a room, kiddo, that’s a coat closet.”

“Former coat closet. Now it’s—”

She raised an eyebrow.

“…my closet?”

“I’ve been trying to call you for an hour.” She surveyed the array of couches and cots, the assortment of battered furniture and cockeyed lamps, the power strips asprout with cables, snowmanesque piles of garbage bags stuffed with clothes, and the many, many candles, mostly unlit. “Oh my dear, I should have come to set eyes on you well before this. How many people live here?”

“On average?”

What was odd was that none of the dozen or so roommates or their hangers-on, couch-surfers, and auxiliary sex partners were present at the moment. “Where is everybody?”

“They probably evacuated,” she said. “Or found a shelter.”

“Are we being evicted?”

Thunder rattled the windows. A blown-glass bong tumbled off a shelf, onto another bong, and both shattered. Sirens wailed in the distance.

“Time to move,” she said. “Also, you’re going to need pants.”

He was wearing only his tighty-not-so-whities, in stark contrast to Aunty Mads, who looked, per usual, ineffably cool, even though each article of clothing could have been grabbed from a Goodwill rack. Today’s look might be called Parisian Lumberjack Gone Clam Digging: flannel shirt tied at the waist, dungarees rolled to her shins, ballet flats, chunky necklace.

Tindal scrabbled around his 1 × 3 meter bedroom, finding and wriggling into clothes. “Where are we going, exactly?”

“My house. I need your muscle.”

“Ha!”

“Okay, your energy and Morris’s muscles.”

Morris! Nobody except Aunty Mads called El Capitan by his given name.

“I already called him and he’s waiting for us,” she said. “I’d been under the impression you two were living together.”

“We were, but El Cap’s got a poly thing going right now,” Tindal explained. “I was kind of a, not third wheel, exactly—fifth? Sixth? So I got my new place here and—wait, what’s this muscular activity?”

“You two are going to move a couch across town.”

He poked his head out the door. “A couch? Not Mr. Nappy?!” At her wince he said, “You can’t sell him! I’ll take him.”

“I’m afraid you don’t have the room, kiddo.”

True, but…maybe he could find a new room? He loved that couch. Growing up he’d spent many afternoons, and not a few nights, stretched out on its comfy bulk.

“Mr. Nappy is moving to a new home upstate,” Aunty Mads said. “Extremely upstate.”

“Well, at least you’re not throwing him out.”

He tied up his hair and emerged, more or less decent. Aunty Mads stood by the door, impatient, but Tindal looked around worriedly, feeling as if he were leaving something behind. Oh! The candles. He danced around the room, blowing them out.

“Can’t be too careful,” he explained. Some of his roommates only owned what they could carry. One more apartment fire they’d be ruined.

“You’re sweet,” Aunty Mads said. “But we need to go.

He followed her down the three flights of stairs to the front steps of the building. The sirens were louder, and a line of cars jammed the street. She set off down the sidewalk at a swift march, toward El Capitan’s apartment. A pair of military jets raked the rooftops and zoomed out of sight.

Though it was embarrassing, he decided that he simply had to ask: “What’s going on, exactly?”

“Behind you,” Aunty Mads said.

He looked back, then up. Hovering above the Toronto skyline, a few miles away, a gargantuan shape swallowed half the sky. The lumpy gray slab bristled with long needles, as if scores of giant porcupines had become stuck in cement.

The two military jets were heading straight at it—until they exploded. Then, suddenly, they became a thousand pieces of metal going many directions at once.

“Holy Fuckowski!” Tindal shouted. 

“Keep moving.”

“Is that a spaceship?” Tindal asked.

A column of glittery light appeared below the ship (for that’s what it had to be) and enveloped a skyscraper. The light shimmered like crushed disco balls, partially and prettily obscuring the building. Were the aliens going to blow it up? Levitate it into their ship? Then the light clicked off and the vasty bulk drifted onward.

“Huh,” Tindal said. “What’s it doing?” Aunty Mads didn’t answer; she’d marched on. He scrambled to catch up. “Are you sure you want to move Mr. Nappy during this, uh, alien invasion?”

“Pfft. It’s one spaceship—that’s hardly an invasion.”

Which was a very Aunty Mads point to make. When Tindal was growing up, she was one of those neighborhood characters that kids feared, old people scowled at, and everyone thought was a witch. She painted her rambling house in multiple clashing colors, refused to mow her lawn, cooked food that smelled like hot mulch, and blasted “music” that made cats nervous. Also she did things that were legit insane, like commanding heavily armed gangbangers to get off her lawn—and then they’d do it. Basically, she put out Big Wiccan Energy twenty-four-seven.

Tindal had been just as afraid of her as the kids from school, but when he was eight years old she stopped one of his mom’s boyfriends from beating the shit out of him—she did something to the guy’s ear that dropped him to his knees, which was amazing—and from that point on, whenever things got bad at his mom’s place (which was pretty often), he’d run down to Aunty Mads’s house and she’d feed him hot dogs and Shreddies and Capitaine Crounche, food that she kept on hand, he later realized, only for him. She let him chase the robot vacuum around, and at bedtime would tuck him into Mr. Nappy, her giant orange couch, and tell him bedtime stories.

The fact that he hadn’t seen her lately was entirely his fault. She’d texted him and left voicemails, often just checking in but sometimes inviting him to dinner. But he put off replying because certain aspects of his life had become embarrassing. He told himself he’d call her as soon as he’d “straightened some things out,” but the number of things requiring straightening only grew like the contents of Uri Geller’s spoon drawer.

A few more explosions sounded in the distance, hidden by rooftops. The disco spotlight came on a couple more times as well. Tindal was starting to panic but there was nothing to do but keep up with Aunty Mads.

El Capitan—El Cap, El C the DJ (available for parties), Morris—was waiting for them on the street, beefy and huge, like a grizzly who’d gotten up on its hind legs and was calmly optimistic about nabbing a high-flying salmon.

“Looking good, Aunty Mads!” El Cap said. They exchanged cheek kisses like a couple of Québécois. She was nearly as tall as he was.

El Cap told them that the rest of his polycule—two girlfriends, one boyfriend, and an English bulldog—had decided to evacuate the city. They’d headed north on the DVP, though their texts reported that traffic was nearly at a standstill.

“And you stayed to help me out,” Aunty Mads said. “That’s brave and kind.”

“I’m sure it’ll all blow over,” El Cap said. He thought everything blew over, and he was usually right. He’d been Tindal’s best friend since grade nine, and was really the best possible person to call when, say, two teenagers broke into your house and ate a wall-full of drugs—but that was another story.

El Cap led them down the alley to a narrow garage. “For all your transportation and moving needs,” he said, raising the door with a flourish, “consider the Flea Bus!”

Ah, the Flea Bus. She was a rusty, powder-blue, 1963 International Metro, bulbous and blunt-faced, sporting a fancy art deco grille that gave her the air of a duchess fallen on hard times. She’d started life as some kind of delivery truck, but the faded logo and cartoon dog painted on her side marked her last professional job, serving as a mobile pet grooming service.

“Don’t worry about your couch,” El Cap said to Aunty Mads. “All fleas have fled.”

“Died of old age, I imagine.” She took shotgun, and Tindal duck-walked into the cargo area, which was carpeted with overlapping rugs of various vintages, and squatted on a toolbox. The Flea Bus didn’t want to start, but El Cap eventually persuaded her to come out of retirement and they lurched into the street.

A trio of helicopters whomped overhead. A second later explosions shook the air. El Cap glanced in the rearview mirror. “Not a great day to be in the Royal Canadian Air Force,” he said, the slightest worry in his voice.

“They should probably stop attacking it,” Aunty Mads said.

“But what’s up with the sparkly light?” Tindal called over the engine noise.

“They’re clearly looking for something,” she said.

“In Canada?”

They rumbled westward. Traffic was terrible, and cops at intersections kept trying to wave them out of the city, but twenty minutes later they’d finally made it the two kilometers to Aunty Mads’s Victorian. Tindal was pleased—no, relieved—to see that even though the house was painted in new colors, it was otherwise exactly itself.

Aunty Mads directed El Cap to the backyard and had him park with the rear of the bus abutting the stoop. Then she led the boys inside, into the kitchen. The smell of the place was also exactly itself, a mingle-mangle of unnamed spices, strange citrus, and overheated electrical wiring.

Something clattered to the floor in the next room, and Tindal heard a distinctive whir. He rushed into the dining room. “Sucky!” he cried. The vacuum cleaner sat on the ground near the table, roughly the size and shape of a horseshoe crab, but even flatter, and also hovering an inch off the ground. Tindal rushed forward and the thing scooted away between the chair legs.

Tindal laughed in delight. “Oh man, you’re the best, Sucky.” He was surprised that the machine was still running; it had to be as old as he was.

“You know, I could never figure out how that thing worked,” El Cap said. “Where are the wheels? And where does the dust go?”

“Magnets,” Tindal said patiently. Aunty Mads had explained it to him long ago.

“Enough bothering the help,” she said, and shooed them into the living room. “Here’s the patient in question.”

And there he was indeed, bright orange and bulging: Mr. Nappy. The couch spanned one end of the room, its chubby arms nudging the walls. Its plush cushions wide enough for three Tindals to sleep side by side. It seemed even larger than he remembered, which was not how childhood memories were supposed to work.

“Just look at him,” Tindal said. “Still fabulous.”

The sofa, positioned to take in both a view of the room and the street outside the big picture window, glowed in the sunlight, the upholstery somehow throwing off more colors than seemed possible: harmonics of purple, gold, jade, orange.

“Aunty Mads,” Tindal said. “Can I do the thing?”

She rolled her eyes in mock exasperation. “Be quick about it.”

Tindal ran toward the couch and leaped, Superman-style. “AIRBORNE!” he shouted. He came down on his face and chest and sank into those deep cushions.

It felt so good. When he was little, and Aunty Mads had finished with the bedtime stories, she’d sit on the edge of the cushions and pat his back until he fell asleep. By middle school he was tiptoeing into the house at two or three in the morning, when only Sucky was awake and hoovering about, and would crash hard on the couch, no bedtime stories or even blankets required; Mr. Nappy always seemed to be the right temperature in hottest summer or coldest winter. Tindal would fall asleep to a hum that seemed to come up through the bones of the sofa.

Tindal rolled over. “I still can’t believe you’re getting rid of him.”

Aunty Mads offered an apologetic smile. “All things have their path in life, kiddo.”

“But he still looks great!”

“What he looks is large,” El Cap said. “Are you sure we have to do this, now?”

“I wouldn’t ask if wasn’t important,” Aunty Mads said. “Truly.”

El Cap seemed to work this over in his head, then nodded. “I’ll go get the dollies and move the dining table out of the way.” Aunty Mads walked out with him.

Tindal lay on the cushions, admiring the tall bookcases full of books Aunty Mads used to read to him, the soda bottles and car parts she’d hung on the wall as if they were art. A memory came to him, from a night after an escape from his mother’s apartment. He was eight or nine or ten (his chronological memory was not great), and woke up on Mr. Nappy. He wasn’t sure what had woken him up, but then he heard Aunty Mads, talking away to someone. And then she said something like, “You want to stop being a ghost?” He shuffled into the kitchen and found her there, holding a coffee cup, feet up on the table. Nobody else was in the room.

It was an old but familiar memory, one that he used to frequently marvel over. Aunty Mads talks to ghosts! But then he grew older and discovered the wide world of psychedelics and learned that not everything his brain thought was happening was, strictly speaking, happening. She’d probably been on the phone.

But to who? Thinking of it now, he was struck by how lonely Aunty Mads must have felt all these years. No friends (that he’d ever met, anyway), no family from the old country, and nobody to talk to but herself. No wonder she’d been texting him lately! Guilt washed over him. He’d blown off all those messages because he was so focused on himself and his own problems.

A boom shook the walls. Tindal, buffered by Mr. Nappy, felt nothing but a slight tremor. El Cap and Aunty Mads hurried in, and Tindal sat up. “Aunty Mads, I want to apologize for not calling you back. I feel terrible and I should’ve never—”

“Don’t worry about it, kiddo. Really.”

El Cap handed him a wooden triangle with casters bolted on. “I’ll lift the end, and you shove this under.” The big man squatted, grabbed the frame, and managed to raise the end a dozen centimeters. “Now, please,” he said through gritted teeth. Tindal placed the dolly and then scrambled out of the way.

“Woof,” El Cap said. “Is this a sleeper couch?”

The light coming through the window suddenly dimmed, as if a storm cloud had rolled in. Aunty Mads went to the window. “I’m afraid we’re out of time, boys.”

Spangled light filled the room, pouring straight through the roof. Disco dust! Tindal shouted something and covered his head. El Cap looked at the ceiling. The couch glowed full technicolor. And Sucky the vacuum cleaner levitated, pulled off the floor.

Several seconds passed, during which Tindal remained in a full-body wince. Then the light snapped off.

Aunty Mads turned from the window and frowned. The vacuum cleaner was still hanging in air, still glowing redly. “Sucky?” Aunty Mads said. Suddenly the machine clattered to the ground.

“Is the ship moving on?” Tindal asked.

“Not exactly,” she said.

“So…not moving?”

“I’ll take care of this.” She leaned down and kissed Tindal on his forehead. Then she clapped El Capitan on the shoulder. “Watch out for each other. And the couch. Speaking of which, could you proceed, quickish-like?”

“No problem.”

“Where are you going?” Tindal asked. “What do you mean, take care of it?”

“Quickish!” She opened the front door and strode out to the street.

“Little help,” El Cap said from behind him.

“I don’t like this,” Tindal said. “What if she gets exploded like those choppers, or—”

“Little help!” El Cap, in a deep squat, was straining to hold the couch a few inches off the ground. Tindal dashed to his side and tucked a second dolly beneath it. El Cap lowered it carefully, then blew out his breath. “Damn,” he said.

Tindal wanted to check on Aunty Mads but El Cap was already pushing the couch forward. Tindal danced ahead and did what he could to keep the front end pointing in the right direction. They were forced to stop in the kitchen. The back door was wide, but not Mr. Nappy wide.

“We’ll have to turn it sideways,” El Cap said.

“Is that even possible?”

“Depends.”

“On what?”

“If we can turn it sideways.”

Tindal knew there was no actual we in this. El Cap took a slow breath, lowered himself into a deep knee bend, and gripped a rear leg. Then he grunted and straightened. The end of the couch came up a few feet and the big man held it there.

But to Tindal there seemed to be no progress possible from this position—a clean and jerk would not be clean, and the jerk would be painful.

“I’m behind you a hundred percent,” he said.

El Cap rotated his body and shuffled his hands along so that he was holding the rear of the couch with his back to the wall. Previously reticent veins made an appearance on his neck. Sweat broke out on his forehead. Tindal couldn’t remember seeing El Cap sweat before.

“Stand back,” his friend said, then slammed one foot against the wall behind him. For a moment he was holding the couch aloft on one beefy leg and two beefy arms. Then he kicked off the wall and the front of the couch came down with a gentle, upholstered poof.

“Captain my captain!” Tindal said.

El Cap lifted his tank top, mopped his beard and face, and nodded at the bottom of the couch. “Definitely a sleeper.”

The bottom was a bulging metal plate, engraved with dense whorls and loops. As Tindal stared the lines seemed to move, as if on the verge of becoming a cartoon about the dangers of LSD. “It looks…” Tindal struggled to describe the feelings stirring inside him. “…European.”

“Go run around the house and get on the other side,” El Cap said. “I’ll push from here.”

Tindal blinked away the effects of the sofa and booked it through the dining room, where the front door was still wide open. He skidded to a stop. Aunty Mads stood in the street, arms at her side, looking up with a bemused expression, like Dorothy expecting a familiar twister. Something long and gray dropped from the sky and wham! bashed into the pavement. Tindal jumped, but Aunty Mads didn’t.

Another object hit the street, and another, a drumroll of meteor strikes. Tindal found himself on his ass, ears ringing. Aunty Mads was now surrounded by armored creatures. They looked like huge, heavily muscled dogs who’d sprouted bulbous, multilobed broccoli heads, and which in turn had extruded a dozen or so silvery tentacles.

In short, they looked exactly like Gadzooks.

Aunty Mads would tell him bedtime stories about the brave sea captain, Tindopheles, and his battles with the great and terrible Gadzooks. They were monsters—part dog, part squid—but organized monsters. They followed a queen, the Luminous Gadzook, and built castles and ships, and marched around in suits of armor. Many of Tindopheles’s adventures involved out-talking and out-tricking them, rescuing their hostages (often handsome princes), or stealing their magic whozits and whatsits, before making his escape. Often it was not a clean getaway, and the Gadzooks would catch up to him, and Tindopheles would reluctantly arm his omni-cannons. He’d blow holes in their hulls, and the Gadzooks (weighed down by their suits of armor) would sink like stones. This didn’t kill them, because they didn’t need to breathe, but did drop them to the bottom of the ocean with a long walk home.

So, to see the Gadzooks standing right in front of him, almost exactly as Aunty Mads had described, was super weird.

One of the Gadzooks seized Aunty Mads, pinning her arms to her sides. Tindal yelped. A bevy of Gadzook tendrils twisted in his direction.

Aunty Mads shouted a word he didn’t catch.

“What?” Tindal called from the porch.

“Stick to the plan!” she said.

What plan? Moving the couch? That couldn’t be it. Who cared about a couch at a time like this?

Then she shouted, “Get them out of—

Tendrils engulfed her head. A second Gadzook had slammed them into her.

Tindal shouted—and was suddenly airborne for the second time that day, this time involuntarily. He was sent flying through the open door, into the living room. He bounced on the wooden floor, rolled, and kept rolling until he banged against a wall. A rusty carburetor, one of Aunty Mads’s art pieces, thumped onto the ground next to him.

The front door slammed shut.

Tindal wheezed, trying to get his lungs to reinflate. What in heaven’s name had just happened? Some tingly force had seized his body and thrown him into the house.

He wanted to run to the window to see if Aunty Mads was okay—but then thought better of it. Get them out of here. There was no arguing with that commandment; Mr. Nappy and El Capitan were now Tindal’s responsibility. Aunty Mads would take care of the Gadzooks.

He rushed to the kitchen. El Cap was bent over, attempting to shove the couch through the door. It was wedged about halfway through. Then Tindal remembered that he wasn’t supposed to be in the house, but on the other side, pulling.

“It sounded like artillery up there,” El Cap said.

Tindal opened his mouth, closed it. He kept picturing the Gadzook grabbing Aunty Mads’s head. Was she dead now? What were they doing with her?

“You okay, little buddy?” El Cap asked. “What happened?”

Tindal took a breath. “Um…a lot.”

Then he forcefully shook his head—good for disguising tears. “Aunty Mads wants us to keep going. So, on three?” He put his hands against the couch. El Cap, bless him, didn’t hesitate. He lined up next to Tindal and said, “One, two…”

A sharp crack! and Mr. Nappy seemed to leap away from them.

El Cap straightened, frowning in confusion. The door frame had split on each side. And the couch was now wedged inside the Flea Bus, snug as a burrito in a baby’s mouth.

Tindal and El Cap exchanged a look. “So…it fits,” Tindal said. El Cap closed the two rear doors, and they scrambled into the cab. Mr. Nappy was pressed right up against the seats.

The Captain turned the ignition. The Flea Bus, perhaps sensing the gravity of the situation, started right up. “Where to?” El Cap asked.

Tindal blinked. “Didn’t she tell you?”

El Cap slowly shook his head.

Tindal tried to remember what Aunty Mads had said. “It was…across town?”

“Tindy, my dude, we need a—whoa.” He was looking past Tindal, through the passenger window. A Gadzook had stomped around the corner of the house. Its bulging head swiveled in their direction, tentacles waggling.

“That’s an alien,” El Cap said.

“We should go,” Tindal said.

“Agreed.”

The Captain did complicated things with his feet and hands. The Flea Bus lurched forward, and then turned away from the alien. They churned out of Aunty Mads’s yard and into the neighbor’s.

“Weber!” Tindal called, but El Cap had already seen it. The truck plunged between the Weber propane grill and an above-ground pool. Lawn chairs clattered off the bumper and went flying. The bus’s front wheels thumped over the curb, onto a street, and El Cap cranked the wheel. The truck tipped on heavy springs. Tindal made a high keening sound he was not proud of and jammed a hand to the roof to stop himself from sliding into El Cap’s lap. Then the side of the bus whomped down and El Cap aimed the bus between the rows of parked cars, heading south at what seemed to be the bus’s top speed, 45 kph.

“Is it following us?” El Cap asked.

Tindal leaned out the window. There was nothing behind them. “All—” The Gadzook charged out of the side yard and landed in the street. “—not clear.” The alien juked easily on those four feet and started galloping after them.

“Go faster,” Tindal suggested. The alien, head-tendrils whipping angrily, was rapidly gaining on them. Then a bang shook the truck.

Tindal pulled in his head and looked into the cargo area, past Mr. Nappy. One of the rear doors had been pulled free. The Gadzook held the door in several tendrils while still running. Then it tossed the door aside and grabbed the bus’s empty frame. Tindal screamed.

And then the creature…came apart.

One moment the Gadzook was hauling itself into the cargo area; the next a dark blur zipped from right to left in the air outside the bus, and plink! the dog body detached from its thick neck. The torso tumbled in the bus’s wake, somersaulting across the pavement, legs flailing. The gray broccoli head, however, held tight to the doorframe, while its neck stump convulsed like a fish, fanning dark liquid into the air behind the bus. Tindal opened his mouth to follow up his first scream, but before he managed a sound he was distracted by another blur in the air. Suddenly the Gadzook’s head divided in two, also with a cheery plink!

Dark blood—or motor oil, impossible to say—sprayed the roof. The head lost its grip on the doorframe and bounced away like a tentacled bowling ball.

El Cap frowned at the side mirror, speechless. Tindal couldn’t figure out what had happened, either.

The street T’d. El Cap swung right, then had to brake to a stop. The intersection ahead was solid with creeping traffic. El Cap leaned out his window and got the attention of a middle-aged driver in a middle-aged Volvo. “Can I? Okay?” The driver allowed the Flea Bus to edge crosswise into the avenue. “Thanks!” El Cap called. “Sorry! Thanks!” He steered the bus to the other side and sped away—“sped” being an extremely relative term.

“I still don’t know where we’re going,” El Cap said. “We could head north with everyone else.”

“The spaceship came from the south and was heading north,” Tindal said. “So go south?”

“But then it stopped at Aunty Mads’s. Now it could be heading back to the waterfront.”

Aargh! Such a conundrum. Tindal realized he’d been absent-mindedly rubbing the arm of the couch. It felt nice. “Maybe we should just take it back to your house. Or we could—”

The hand of physics, citing the rules of momentum, shoved Tindal into the dashboard; the Captain had slammed on the brakes. A quartet of Gadzooks stood in the middle of the street, half a block away. Judging from the impact craters beneath their feet, they’d just landed. Their tendrils were aimed at them, and the tips of several of those wriggly arms were glowing bright orange.

“Do they have guns in those things, too?” El Cap asked.

“In the stories they had flintlock pistols, but maybe?!”

“What stories?”

One of the tendrils erupted in light. The air in front of the Flea Bus flared white…and then faded, leaving behind the smell of burnt toast. The Gadzooks were still standing in the street, though now their arms seemed agitated.

Tindal couldn’t understand why they were still alive. Was that a warning shot?

“Back up?” Tindal suggested. Then: “Never mind.”

The blur had returned.

The fast-moving smudge dashed between and through the bodies. Gadzook heads popped from necks like dandelion bulbs. Limbs flew. The sprays of blood were horrific but also a bit bombastic, almost show-offy. Were Gadzook suits of armor pressurized? These space dogs were going off like hot, heavily shaken beer cans.

Within seconds, all four of the aliens lay in pieces across the road. The blur hovered over them, as if admiring its work.

El Cap said, “Is that…?”

The blur zipped toward them. Tindal ducked, but the blur swooped past the windshield, over their heads, and then—sha-ring!—cut through the roof of the Flea Bus.

It was in the vehicle with them, hovering at eye level in the L of the couch. It was so flat that it would have been invisible if not for the faint red glow that surrounded it.

“Sucky!” Tindal said.

“Let’s get one thing straight,” the vacuum cleaner said. “If you call me that again, I will cut you in half.”

Tindal, in a state of bogglement, shut up. The appliance floated to the dashboard, turned in place, and started issuing driving instructions—which El Cap obeyed. They zigged and zagged through the neighborhood, but were heading mostly westward.

“So what is your name?” Tindal asked.

“You wouldn’t be able to pronounce my full name,” it said. “You may call me Surokar Kedissear Vanteen Tev Vanteen.”

“So I was close.”

The machine’s aura flashed scarlet.

“Where are we going, uh, Surokar?” El Cap asked. “And also, why are these guys chasing us?”

“The Gadzik aren’t after you, they’re after the Neoton.”

Tindal frowned. “The exercise bike?”

“That’s a Peloton,” El Cap said helpfully.

“The couch,” Surokar said. “Fortunately for you, its defenses have kicked in. Its baffle field makes us invisible to their ship’s sensors. Eventually they’ll figure out what we’ve done, at which point they’ll start tracking us visually. When they spot us they’ll drop a thousand marines on top of us.”

“That sounds bad,” Tindal said.

“It is. A dozen or so seconds of thrilling combat will ensue, during which you boys will be, hopefully, killed instantly.”

“Thanks?” El Cap said.

“Can we go with not killed at all?” Tindal asked.

“Oh, you don’t want that,” the machine said. “If you’re alive you’ll be taken to their ship, interrogated, and tortured until they learn, pretty much instantly, that you’re human morons who have no usable information, at which point they’ll keep torturing you because A, they’re good at it; B, they take pride in their work; and C, their religion demands it. Gadzik marines take umbrage at any lesser species who’d dare to kill them in the streets, much less kill five of them.”

“But you killed them,” El Cap pointed out.

“The Gadzik aren’t into splitting hairs. Turn right at the stoplight.”

“You keep saying it wrong,” Tindal said. “It’s Gadzook. Gadzook marines.”

The machine made a noise that might have been an electronic sigh. “Tindal, please consider the possibility that the person you call Aunty Mads may have given them a funny, unthreatening name because you’re a child.”

“You mean I was a—”

“Nope.”

“Ouch,” El Cap said.

“And what do you mean, the person I called Aunty Mads?” Tindal asked. “What do you call her?”

“Just Mad.”

Tindal squinted. “When you say Just Mad, do you mean, Just Mad, or just Mad?”

“Just Mad.”

“Hate to interrupt,” El Cap said, “but, uh, you know.”

“We’ve got to go back to the house and rescue Aunty Mads,” Tindal said.

“Don’t be ridiculous,” Surokar said. “She’s already on their ship. It’s climbing now into the upper atmosphere as we speak, but they won’t leave orbit until they’ve found the Neoton.”

“Can we just give them the couch?” El Cap asked.

“No!” Tindal cried.

“That’s the first reasonable thing that’s come out of your mouth,” Surokar said.

“I don’t understand why they want a sofa,” El Cap said.

“The sofa is a Neoton, a complex—”

“Everybody shush!” Tindal said. To the machine he said, “Are they going to torture Aunty Mads?”

“You’re clearly not listening,” Surokar said. “It’s probably already begun. They want to force her to find the Neoton and disable its defenses so they can have their way with it. But don’t worry. She won’t break. She’s a custom-grown, gene-fixed, neuro-optimized citizen of the Bloom.”

“A what of a what?” El Cap asked.

But Tindal had stopped listening. His eyes had filled with tears and his throat had closed.

El Cap put a hand on his back, but said nothing. He always knew the right thing not to say.

“We have to—to rescue her,” Tindal said through a hiccupping breath.

“The only thing we’re going to do,” Surokar said, “is follow the plan.”

Tindal stared at the machine. “She was talking to you.” He palmed the tears from his eyes. “When she said stick to the plan, I thought she was talking to me, but—”

“I was just behind you, ready to annihilate the Gadzik landing party where they stood. Unfortunately, Mad insisted that I get the Neoton and you two out of the area.”

“So you shoved me into the house,” Tindal said. “And then you went around and yanked the couch through the door and into the bus.”

“Point to the meat brain,” the machine said. That was something Aunty Mads was always saying: Point to you, point to me.

“But how did you move it?” El Cap said. “You don’t have any arms, or…”

“Magnets,” Surokar said.

“I knew it,” Tindal said.

The machine flashed red. “I don’t have time to explain field technology to you. See that sign for the park? Turn in there.”

The Flea Bus coasted down a steep, thickly wooded parkway, headed for the water. Tindal could not stop thinking about Aunty Mads. What were they doing to her? And how were Tindal and El Cap going to rescue her?

The machine told El Cap to keep going through the parking lot, onto one of the paved walkways. El Cap wasn’t happy about the motorized trespassing, or the angry looks from the park visitors. (Which—really? Tindal thought. An alien invasion in progress but you’re not going to cancel your picnic?)

They drove out onto a peninsula, where the walkway curved around the point like a keyhole. “Stop here,” Surokar said. “And don’t go anywhere.” The machine zipped through the passenger window and then scooted low over the blue-green water. Tindal, squinting through a windshield freckled with Gadzook blood, lost sight of it immediately.

A minute passed. The Flea Bus’s engine rumbled. Tindal sat back in his seat and contemplated the heaviness in his chest.

“So,” El Cap said. “Aunty Mads is an alien, too.”

“Checks out,” Tindal replied. He’d always thought she was kind of amazing. He just couldn’t understand why she’d let the Gadzooks capture her like that. I’m going to go take care of this she’d told him, but that had been another lie to make him feel better.

Together they stared out through the windshield.

“And another thing,” Tindal said. “Why is Sucky so, you know…”

“Homicidal?” El Cap offered.

“Mean.”

El Cap pulled at his beard. “We can dump and run, my dude. If they want the Neo-couch, let them have it.”

Tindal shook his head. “Aunty Mads asked us to take care of it. We really should have asked Sucky why they want it so bad.”

But El Cap’s attention had moved to the lake. A few hundred yards away, the surface of the water bulged, and a large something burped into the air and hung there—a blueish egg the size of a local bank, decorated with silvery fins. Water sheeted from it as if it were capped by an invisible umbrella.

Tindal and El Cap exchanged a look. Was this good news or bad news?

The egg glided toward them, over the surf, and hovered in front of the bus. The front of it folded open, exposing a gleaming white interior, and a small levitating robot.

“Don’t just sit there with your ape mouths agape!” Surokar shouted. “Let’s go!”

The remaining rear door of the Flea Bus flew open, and the couch levitated out.

Six minutes later they were in space.

Prologue
(Some time ago)

::So, we’re a hotel now?::

“Don’t be a grump. Hand me the teapot, would you?”

::It was bad enough when he was popping in all the time, and now he’s sleeping over?::

“Teapot?”

::Ask me in your real language. You’ve got a transmitter in your head. Use it::

“Fine, I’ll get it myself.”

::You’re going native, Mads. Going soft::

“Soft natives are the worst.”

::You’ve been separated from yourself too long. You’re stuck in that absurdly limited meat body, cut off from your true self. It’s as if—::

“Good riddance.”

::—you’re trying to forget who you are::

“No chance of that, unfortunately.”

::You turned your Neoton into a couch::

“An adorable, comfy couch.”

::I don’t know what’s worse, you speaking English all the time, or allowing some barely sentient Dickensian waif to drool all over the most advanced mind within a thousand light years::

“Dickensian? Why Surokar, you’ve been reading their books.”

::What choice do I have? We’ve been stuck here for decades. I’m bored silly::

“Also, Tindal’s not a waif. He’s just a child in a bad situation who could use a little help.”

::That’s the exact definition of waif::

“Point to the vacuum cleaner.”

::You’ve made him dependent on you. You never should have interfered in his life::

“That thug could have killed him. He’d already broken his arm. What would you have me do?”

::Call an ambulance—anonymously. Keep your head down. Don’t beat up on the locals. And certainly don’t bring children into the house and knit their fractures with technology that shouldn’t exist on this planet::

“I just wish I had the tech to do something about this terrible tea. Do you think I can grow something in the backyard that tastes at all like elanthus?”

::You’re changing the subject::

“What is the subject?”

::Your questionable decision-making. You seem to think you’re helping the boy when you’re doing the opposite::

“How so?”

::Filling his head with fables, for one. If you’re going to tell him about the war, at least tell him the truth::

“You want me to tell him what I am? What happened to keeping my head down?”

::I didn’t say tell him the facts, I said tell him the truth. He should know how scary the universe is. The world isn’t some fairy tale where he’s the hero and the good guys always win::

“He already knows that. He’s not even nine years old and he’s seen enough horror. You’ve seen his mother in action. No, let him have a happy ending or two.”

::The war’s not over, Mads. The Gadzik refuse to surrender::

“So you’ve been listening to the passive feed.”

::One of us has to. They’ve resorted to guerilla warfare, picking off small Bloom ships. But the general opinion is that they’re rearming for another major offensive::

“That’ll be somebody else’s fight.”

::What the Bloom needs is you::

“Do they still think I’m dead?”

::Define they. If you’re talking about your fellow ships, the consensus is that you’re gone. They can’t imagine you allowing yourself to be captured, or staying out of the war voluntarily, so…::

“That’s just a lack of imagination.”

::The Gadzik, however, are unconvinced. They’re still searching for you. They found the wreckage, but the dearth of Neoton-quality exotic materials raised suspicions::

“Hmph. I thought the fragments I left behind were quite convincing.”

::The Thirteenth Gadzik Instantiation runs on zeal, not logic::

“I was hoping…well. It doesn’t matter what I hoped.”

::The Most Luminous Mare wants to try you for war crimes::

“Sure she does. A lot of people in the Bloom would, too.”

::Nonsense. You did what you had to do. What no one else could do. And they still—::

“Here we go. Is it time for the monthly pitch meeting?”

::You should be rebuilding yourself. Right now you could have factory bots in close orbit to their little yellow sun, generating exotics for your hull. In a few years you could bootstrap yourself into fighting shape, better than before, even::

“I’m retired, Surokar.”

::Are you sure all of you is retired?::

“The Neoton’s staying dormant.”

::Why don’t you wake it up and ask it?::

“Watch yourself.”

::I apologize, but I’m worried that you’re not thinking clearly::

“See, that doesn’t sound apologetic.”

::What if you die? You’re tough, but one of these humans could get in a lucky shot::

“That’s why you’re here.”

::Please, Mads. If you become incapacitated, I can’t unlock the Neoton. And the Bloom needs everyone back in the fight::

“You want to stop being a ghost, be my guest. Take the shuttle. All I ask is that you don’t send a signal homeward until you’re well out of range of this planet.”

::Who are you hiding from—the Gadzik or your fellow ships?::

“Yes.”

::Ha. You disappoint me, Mads::

“Now who’s being funny?”

::You can’t hide forever::

“I can hide for a damn long— Hey, kiddo. What are you doing up?”

“Who are you talking to?”

“Nobody.”

“BLEEP BLOOP.”

“Hi, Sucky!”

“Come on, little man. What do you need, a drink of water? Let’s get you taken care of, then tuck you back into Mr. Nappy.”

Six hours later they were still in space.

On any other day, Tindal thought, a trip on a spaceship would have been a mind-shattering turn of events. Today it ranked fourth, maybe fifth. The Earth, which had filled the big, curved window at the start of the trip, had steadily shrunk as they flew away, transitioning as smoothly as a special effect in a sci-fi movie, and not a Canadian movie, either, but an American blockbuster. Now their home planet had disappeared.

Tindal sat on Mr. Nappy, holding his head in his hands. The sofa was the most comfortable seat in the cabin and by far the most colorful. The rest of the ship, which Sucky said was not a ship at all but merely a shuttle, seemed to be one contiguous surface, with helpful bumps and recesses, like a walk-in shower. The color palette leaned heavily into the Ikea catalog, with lots of piney browns and crips whites.

El Capitan explored every chamber, and then finally came back to the main cabin bearing cups and plates loaded with various shapes.

“I found food,” he said.

“I made food,” Surokar corrected. The machine was floating above a perfectly blank countertop it insisted was the control panel. When they left the planet it was pretty braggy about how, thanks to its excellent manipulation of the baffle fields, the Gadzook ship hadn’t noticed their escape from the planet. But it had refused to answer any of their questions or even tell them where they were going, “in case they were captured.”

El Cap crouched down in front of Tindal. “You should eat, buddy.”

“No thanks.”

“Come on. This triangle one tastes like pumpkin.”

“He’ll eat eventually,” Surokar said. “We’ll be in here for a while.”

“How long?” El Cap asked.

“Twenty-two days, give or take.”

What?” Tindal said. “You said it was a short trip!”

“I said it was a relatively short trip,” Surokar said.

“The Flea Bus is for sure going to get towed,” El Cap said.

“I wouldn’t worry about the vehicle,” Surokar said. “There’s a good chance the Gadzik will nuke Toronto, or set the atmosphere on fire, or snap a black hole into the center of your planet, destroying it completely. The bus, in other words, is toast.”

“Why would they do that?” Tindal yelled. “What did we do?”

“If Mads doesn’t tell them what they want to know—and she won’t—they’ll eventually start breaking things, just to see if they can get the Neoton to reveal itself.”

“But why do they want Mr. Nappy?” Tindal asked. “You can tell us now. We’re not going anywhere and the Gadzooks are behind us.”

The machine’s aura flickered through a variety of oranges and yellows, then settled into resigned, mottled brown. It floated out into the middle of the cabin.

“I’m only going to present this exposition once,” the robot said, “and I will not be taking questions.”

To understand our current situation, it said, you had to understand the Bloom—a vast yet thinly distributed civilization roughly nine thousand years old by the human timescale, yet a dewy-cheeked adolescent, galactically speaking. It wasn’t an empire or a republic or any kind of government Earthlings had conceived of, but more a kind of group project whose members were several trillion (mostly) humanoid organics, a smaller number of machine intelligences, and an even smaller number of Neotons. These last beings were mind-blowingly clever intelligences embodied in ships and orbitals who, Surokar explained, kept things running, as far as anyone could tell, because they seemed to enjoy it. Bloom citizens, organic and inorganic alike, tended to be ethical hedonists: self-consciously rational, skeptical, materialist, and all-around good sports. The society they created was a moneyless communistic utopia with infinite resources, without poverty, disease, or even discomfort, except as one chose to be uncomfortable, and many did, because it could be interesting. In the Bloom, everything mattered and nothing did.

“Sounds nice,” El Cap said.

“Don’t interrupt,” Surokar said. “But yes.”

So nice, in fact, that other galactic civilizations—like, say, the Thirteenth Gadzik Instantiation, an empire built on religious exceptionalism and divinely sanctioned expansionism—sometimes concluded that the Bloom was so decadent, so fat and happy, so soft that it practically begged to be dominated. They’d eye those vast Bloom ships and those giant orbitals chock-full of self-indulgent pleasure-seekers and think, That’s quite enough of that.

“But here’s the thing they all learn eventually, Earthlings…” Surokar’s aura flashed a devious orange. “If you fuck with the Bloom, the Bloom fucks back.”

In a society made up of hedonists, especially of the ethical flavor, the distasteful business of defending the flock from the galactic wolves fell to a certain class of citizen—eccentrics, oddities, high-minded sociopaths—with a talent for dirty tricks and an ability to handle special circumstances. Someone had to assassinate foreign heads of state, rig elections, subvert dynasties, demoralize the populace, instigate civil wars, seed doubt, instill fear, sow chaos, and generally undermine the Bloom’s enemies before they became a serious threat.

“So Bloom’s a communist utopia…” Tindal slowly said. “…that also does terrible things?”

“Life is complicated,” the machine said.

“And the Gadzik found out they were being messed with,” El Cap said.

“The origins of the conflict are murky.”

“So yes,” El Cap said.

The hot war with the Thirteenth Gadzik Instantiation began almost a hundred years ago, Surokar explained, when the Gadzik stormed an orbital on the fringes of the Bloom. Bad news all around. The Bloom tried to respond, but they were vastly outnumbered. The Gadzik had for years poured all available resources into the machinery of war. Their leader, the Most Luminous Mare, declared the Bloom to be evil, and once so declared, their religion allowed them no moral off-ramps, no way to deescalate. They built warship after warship. They conscripted every citizen who might serve. And then they swarmed us. They drowned us in their own blood. It was holy.

The Bloom’s Neotons, as brilliant as they were, couldn’t fathom this level of zealotry. They weren’t ready for total war. Most of its ships were also homes to its citizens, not warships. The Neotons reluctantly concluded that if they were to survive, the Bloom would have to become a different kind of society. They created new factory ships, which in turn birthed outrageously beweaponed, ridiculously fast warships. The Neotons chosen to inhabit them were tactically brilliant, morally flexible, and willing to do anything in defense of their fellow citizens. And then they were set loose upon the Gadzik.

“The ship I served on,” Surokar said, “was a Shredder-class corvette named I’m Not Disappointed Just Mad.”

Tindal sat up. “The what-what?”

“There were no organics on board,” the robot continued. “The high-G maneuvers alone would have turned them to pulp. The crew consisted of me and three other machines, but we had almost nothing to do. The Just Mad didn’t need us. It became the deadliest Bloom ship ever to enter the war. The Neoton was so efficient, so vicious, that it worried even the other warships.”

Tindal looked down at the couch, then slowly, slowly stood up.

“In the first three years of combat,” Surokar continued, “the Just Mad ripped apart twenty-two Gadzik warships and an untold number of lesser vehicles. It sliced open their hulls, peeled the sailors from their armor, yanked them into the vacuum of space, and left their flash-frozen corpses floating in its wake. And still—”

“Can we—?” Tindal asked.

“—still it wasn’t enough. The Gadzik sent ship after ship against us. They were so sure that their god was on their side. The Thirteenth Instantiation had never lost a war. Their home world had never been attacked by an alien species; the walls of their nest temples had never been breached. Generations of Gadzik children grew up assured of their divine status. Their victories were proof of its favor.”

“Can we back up a bit?” Tindal pleaded. All his clothes felt too tight. “The Neoton you’re talking about—that’s Mr. Nappy?”

“What you see is just the smallest part of it, its anchor in normal space. Almost all of its mass—millions of kilotons—exists in excession-space.”

“I thought it was heavy,” El Cap said.

Tindal said, “So Aunty Mads, she was part of the crew?”

“I’ve already told you,” the machine said, “there were no organics with us. The woman you know as Aunty Mads didn’t exist then. I grew her body in a vat when we reached Earth.”

“A vat?”

“She’s an avatar, Tindal. A biological expression of the ship. And yet, fundamentally, she is the ship.”

“No way,” Tindal said. “Aunty Mads wouldn’t do that stuff. I mean, come on…”

“You have no idea what the Just Mad is capable of,” the machine said. “The Gadzik didn’t, either.”

“What did she do to them?” El Cap asked. “I mean it. The ship.”

Did she hurt little kids? Tindal thought.

The robot hesitated. “All that matters is what’s happening now,” it said finally. “We’re going to crawl our way back to Bloom space and install this dormant mind in a new body. Hopefully its fellow Neotons will figure out how to wake it up.”

“Mr. Nappy is sleeping?” Tindal asked.

“Sleeper couch,” El Cap said, nodding.

“It’s in lockdown mode,” Surokar said. “Bare minimum functions, automatic defenses. Why do you think Mads forced you into moving it when the Gadzik showed up? She knew it would—uh oh.” The machine zipped back to the blank console.

El Cap frowned at Tindal, then looked back at the robot. “Uh oh?”

Surokar’s lights flashed orange and red. “They found us. That’s not possible.”

“Who found us?” Tindal asked. “The Gadzooks?”

“GET ON THE NEOTON!” Surokar’s voice seemed to blast from every surface at once, the volume set to 1986 Metallica. “THE COUCH!”

Tindal, standing on the far side of the room, was paralyzed. Settling into Mr. Nappy seemed like exactly the opposite of the appropriate thing to do, namely running and panicking.

“NOW!”

Tindal was sent flying. He slammed into the sofa’s deep cushions, and a moment later El Cap landed beside him. This telekinesis thing, Tindal thought, was never not going to be terrible.

Surokar hovered in front of them. “Whatever you do—”

A brilliant beam of light sliced through the hull, and the robot exploded into shrapnel.

“SUCKY!” Tindal screamed.

The beam swung back toward the couch and the world went white. Tindal squinted against the glare. It was the same flash that had surrounded the Flea Bus when the Gadzooks had shot them.

Then the glare vanished, and the shuttle was gone. No, not gone; shattered. The pieces spun furiously away from them into the dark. The complete lack of sound was frightening.

“You’re bleeding,” El Cap said.

Tindal put a hand to his ear and his fingers came away bloody. Am I deaf now? he thought. Then he remembered that El Cap had just spoken to him. Somehow they were still breathing, still alive—while in naked space, on a couch.

Tindal pulled up his legs and gripped his knees.

Mr. Nappy slowly tumbled, showing them new angles on the glittering destruction racing away from them. And then suddenly the Gadzook ship was above them like a new planet.


Afterword

I’m so sorry, Tindal. Why am I putting you through this? Why am I telling this story?

On the bookcase next to my writing desk is a shelf filled entirely with the works of Iain Banks and Iain M. Banks—one man with two names. I’ve read every book he’s written, except one. He died in 2013.

I never got to meet him. He was a drinker, an activist, a tale-teller, and a famous maniac. I’ve met friends of his and heard stories secondhand, like the one about the night he crashed his Porsche, or the night he climbed the outside of the hotel at the Brighton Worldcon. I would have loved to have had a whiskey with him and heard him tell these stories in person.

But I don’t think I’d have had the courage to tell him how much his books meant to me. I certainly wouldn’t have told him that I so admired his work that my wife and I named our son after him. That’s a little too stalker-y.

When I was in college, a friend who knew I wanted to be a writer handed me Banks’s first novel, The Wasp Factory,and said, I think you’re gonna like this. Oh, I did, Tindal.It lit me up. I couldn’t believe how daring and strange it was. And then, a few years later, I read Consider Phlebas, the first of his space operas about a society called the Culture. It was as if someone had taken all the musty space empires from Heinlein and Clarke and Asimov I’d absorbed over the years and spun them into jazz. I wanted to be a writer, but I didn’t know how to write like that. Where did he learn to do such things?[*]

His books don’t exist in your world, Tindal, so a few details: the Culture novels are science fiction, set in a post-scarcity communistic utopia spread thinly over the galaxy, and kept running by powerful AIs called Minds, for the benefit of humanoid and machine citizens. Maybe that kind of thing sounds familiar to you, now. I changed their names for both artistic and legal reasons.

If Banks were alive I wouldn’t have written this story. I wouldn’t have needed to. But as I type this, it’s been almost exactly ten years since he died of gallbladder cancer. Cancer. All those sportscars he drove fast around the switchbacks of Scotland, and the universe couldn’t see fit to let him die in a fiery crash, at the age of ninety-eight? He was robbed of a suitable death, and decades of life, and we were robbed of the many books he’d yet to write.

I’m sorry, Tindal. Was this too sentimental? This story was supposed to be a lark. A bit of fun to pay homage to my favorite writer. But here’s this mopey afterword, jammed into the middle of the text. And the rest of the story gets darker than I intended. But that seems appropriate, too. Banks never shied away from violence and tragedy. He wrote a book called Against a Dark Background which lives up to the title. And then there’s the appalling twist in Use of Weapons, or the regretful, war-shaken Mind at the heart of his saddest book, Look to Windward.

The one existing novel of his that I haven’t read is The Quarry—the last one he wrote. It’s sitting right there, a few feet from my desk. I may not be able to live in a utopia, but I can make sure I live in a world where there’s one more Iain Banks book waiting for me.

Okay, enough of this. But before we resume, I just want to say, Tindal, that I’m sorry about what happened to Aunty Mads. I would have changed it if I could.


Tindal was too sad to fully take pleasure in the fact that he was still alive. Hours ago the Gadzook ship had slurped up the couch out of space, Tindal and El Cap still on it, and deposited them in its very large, very metallic belly. No one came to greet them and/or torture them.

Mr. Nappy seemed to be floating a foot or so off the floor. Even if Tindal had been brave enough to hop off the couch (which he wasn’t), he wouldn’t have been able to. The sofa was surrounded by a hard, invisible bubble. El Cap had helpfully mapped out the contours of this barrier with his hands, standing up on the cushions, reaching down below their feet. They were trapped.

Sometime later, a distant hatch opened, and half a dozen Gadzooks wheeled in a large gun-like device, Kirby-esque in bulk and detail, with a gaping mouth that they aimed at the couch. It looked a lot like the way Tindal had imagined the omni-cannon.

After much fussing with nobs and levers, the Gadzooks fired. The noise was tremendous. Tindal shouted, of course. But the beam struck the couch’s bubble, briefly turning the world white, and then…nothing. Tindal and El Cap and Mr. Nappy were unscathed.

One of the Gadzooks cantered forward, waved its tentacles about, and clip-clopped back to the machine. The crew made several adjustments to the device and fired again.

This went on for quite some time. Eventually, however, the marines gave up. They pushed the cannon out of the way and marched out.

Tindal curled up in a ball at one end of the couch. The inside of his right ear still stung as if it had been jabbed with a metal Q-tip, but at least he’d stopped bleeding. He was thirsty and also hungry. If he’d known what was coming, he thought, he would have eaten El Cap’s pumpkin triangle. Heck, he would have scoured his apartment for his Tim Hortons red velvet cookie!

“So are they just going to starve us to death?” he complained.

“Hard to say,” El Cap answered. He was sitting upright, his feet resting on the bubble.

Maybe Sucky was the lucky one, Tindal thought. The machine had been exploded instantly, presumably without pain.

El Cap tapped Tindal on the shoulder. More Gadzooks had entered the metal belly, just four of them this time. One of them carried what looked like a rolled-up rug, and another gripped a long golden staff.

The Gadzook with the staff marched forward, reared back, and butted its head against the forcefield. Then again. Each strike made a decorous thump. Did he think he’d succeed where the omni-cannon had failed? Or was this some kind of ritual?

“I’m sorry,” Tindal said to the alien. “We can’t turn it off.”

The Gadzook’s tentacles flexed, and its metal head popped off. Correction, it’s metal helmet. The face inside was long and equine, deeply furred. Aunty Mads’s stories had not prepared him for that. Nubby, fingerlike antlers protruded from its skull. It looked like Bambi, though the eye stalks were a little alarming. Each pupil was glossy black.

The Gadzook smacked the bottom of the staff against the ground, and the image of another Gadzook appeared in front of it. A hologram! This remote-Gadzook was unarmored and unclothed, but not naked: it was covered in yellow-white fur that had been blow-dried into a luscious shag. Its many antlers were chubby and drooping.

Tindal recognized the creature. It could be none other than the Luminous Gadzook.

The Luminous made a noise, a kind of gentle bleat. The Gadzook holding the carpet roll dumped his burden onto the ground. The sack unrolled partially, and a pale human arm extended out of it.

“Aunty Mads?” Tindal said.

The Luminous bleated more loudly. Then again.

The other three marines crouched low, and two of them removed their helmets. They were all gorgeous. “Do you speak Gadzook?” El Cap asked Tindal.

From the floor came a faint laugh. Tindal leaned over the edge of the cushion and looked down. The hand pushed aside the cloth. It was Aunty Mads. Her face was misshapen by bruises. Her hair was matted with blood.

“Gadzooks,” she said. “Heh.” A few teeth were missing from her smile.

“What did they do to you?” Tindal asked, though of course he could see it on her face.

One of the marines bleated forcefully. Mads ignored him. “My legs aren’t working at the moment,” she said. “But otherwise fine. I turned off my pain receptors an hour ago.” She pushed herself onto one elbow. “Where’s Surokar?”

“Umm…”

Don’t say I’m alive.

Tindal yelped. The voice, which sounded a lot like the robot, had come from inside his head. “You’re alive?”

Aunty Mads’s eyes narrowed.

What did I just say? Tindal’s jaw vibrated with each syllable.

“They blew him up,” El Cap explained to Aunty Mads. “We’re sorry.”

“Well damn,” she answered. After a pause she said, “I never meant for you boys to be here. I’ll try to get you out of this mess.”

The marine lunged forward and kicked with a front leg. Aunty Mads’s head snapped back. Tindal jumped from the couch and smacked the invisible barrier. “Leave her alone!” he shouted.

Calm down, Surokar said.

Now the Luminous was bleating at Aunty Mads, and she was answering him in some kind of non-bleat, yet non-English language.

Tindal sat down again and whispered, “How are you alive? Where are you?”

I’m in your ear canal. When the G’s attacked I detached my core and hid inside you.

“Ew.”

I’m not happy about it either.

“What do we do?”

First, shut up. They can understand you.

Tindal ducked his chin and pretended to wipe at his mouth. Very quietly he said, “They know English?”

Please. All they had to do was sample the planet’s airwaves for five seconds.

“Can you translate what they’re saying, for me?”

You insult me.

“So yes?”

Surokar buzzed something like a sigh. The Most Luminous Mare thinks you and El Capitan are operatives who can disable the Neoton field. Mads is trying to explain that you’re just dupes—local yokels—who were accidently enveloped when the Neoton’s defenses kicked in.

Aunty Mads spat a glob of blood but then continued to talk in that strange language.

I don’t think the Luminous believes her, Surokar vibrated. She says someone on Earth alerted the Gadzik to the Neoton’s location.

“What?”

Shush. And that someone signaled them a second time when the shuttle was escaping. That’s how they found us.

“But—”

Aunty Mads seemed angry now. “It wasn’t the humanoids,” she said in English. Her voice was slurred. “It was the fucking machine.” The Luminous made a querying noise. “Because it wanted me back in the war,” Aunty Mads said. “It wanted to force my fucking hand.”

The Luminous Mare made noises that Tindal interpreted as laughter, the mean girl kind.

Tindal rubbed at his jaw to disguise the next question. “You betrayed Aunty Mads?” he whispered to Surokar.

Don’t be ridiculous.

“Then what is she talking about?” Tindal whispered. He needed to think this through.

I didn’t tell the Gadzik where we were. They tried to destroy me, remember? I’m trying to rescue you, meat brain.

“Point,” Tindal said.

El Cap leaned close. “Who are you talking to? Are you on Bluetooth?”

“Tooth maybe?” Tindal realized he could talk to Surokar by talking aloud to El Cap. “How are you going to rescue us?”

El Cap said, “I don’t know, buddy.”

I can’t do much in this state, the machine answered, but if the field went down, I could take out these guards.

“Great!”

Not great. The Neoton senses it’s inside an enemy ship, so the field will stay on. Only Mads can override its defense protocols, but she won’t do that, because she’s trying to keep you fragiles alive.

Aunty Mads had levered herself onto one elbow, talking urgently to the Luminous. Her voice sounded garbled, distorted by her injuries. Working through the damage, Tindal thought, and working her own plan. But the Luminous was angrily bleating back at her, interrupting.

“What are they saying?” Tindal asked.

“No idea,” El Cap said.

I’m not translating this.

“What? Why not?” Tindal said.

You don’t need to know what the Gadzik think of the Just Mad. All you need to know is that the ship did what it thought was necessary.

“But—”

This isn’t one of her bedtime stories, Tindal.

Tindal fell back against the cushions. Aunty Mads had stopped speaking, and the hologram was shouting at her now. The marines’ tendrils flicked back and forth, agitated.

It ought to be one of her stories, Tindal thought. That’s all he wanted, really. He wanted to be back in Aunty Mads’s house, sitting on this ridiculously comfortable couch, listening to her explain how everything work out.

The marine still wearing a helmet stepped forward and pressed a gun-tendril against Aunty Mads’s forehead.

“Hey!” Tindal shouted. He stood up on the cushions and raised his hands. “Gad—ziks!” he said. Words were coming out but his brain was struggling to keep up. “My name is Tindopheles! And I can give you what you want!” The Luminous hologram halted mid-bleat. The marine holding the staff turned it, and the hologram looked at him.

Tindal thought, What do they want?

“Hey buddy,” El Cap said soothingly. “Maybe don’t antagonize the space alpaca?”

And then the answer came to him. Tindal looked into the furred face of the Luminous Mare and said, “I can turn off the Neoton’s defense field.”

“What are you doing?” Aunty Mads asked softly. Her left eye had started to swell shut, the result of that Gadzik hoof.

Tindal looked down at her. He put on a smile that he hoped was confident. “What Tindopheles always does,” he said. “Talk fast.” And trick the Gadzooks, he thought, then escape with the prince and steal their magical whatsit.

You’re going to get us all killed.

“You can have the Neoton,” he told the Luminous, ignoring the tiny vacuum cleaner. “Blow it up if you want. Whatever it did, it probably deserved it. All I ask is that you allow me and my fellow avatar to return to Earth.”

“Um…” El Cap said.

“Oh, and my loyal captain. Him too.”

The Luminous bleated. And bleated some more.

“Sucky?” Tindal said under his breath.

Fine. He says only the avatar can deactivate the field. He knows how Bloom ships work.

“Yes,” Tindal said. “Right.” His heart was beating fast. What would Tindopheles do?

They’re tired of this. They’re going to kill her.

“Wait!” Tindal said. “Who said there was just one avatar?”

The Luminous snorted.

“You want me to prove it?” Tindal raised a fist. “The field’s going off in one…” He pointed. “Two…” He locked eyes with Aunty Mads. Or rather, eye. Her left one had completely closed, now. But even battered and bruised, Tindal thought, she was beautiful. “Three?”

He stepped off the cushion—and onto the floor. The bubble had disappeared.

The Luminous hologram gazed down at him with eyes like wet river stones. It bleated something, and one of the marines nodded.

Their dampener’s on. The field can’t come back on while we’re inside their ship.

Tindal took a breath. Held it.

The Luminous Mare leaned toward Tindal. Up close the hologram was very high-res, almost solid looking. It made a soft sound.

“What did she say?” Tindal asked.

Kill them all.

The next sound Tindal heard was a loud pop. “Ow!” He clapped a hand over his ear.

The helmeted marine whose gun had been aimed at Aunty Mads suddenly began to shake its head back and forth. Its front knees folded, and then it collapsed sideways.

A second marine bowed and tried to grab its helmet with its antlers. A hole blossomed in its neck. Dark blood—definitely not motor oil—jetted from it.

The marine holding the staff made an alarmed noise, and the Luminous vanished. Tindal grabbed the staff. The Gadzik shook it violently, trying to pull it free, but Tindal held on like a desperate Chihuahua. “Little help!” Tindal called. “Little help!”

“Dude,” El Cap said. Two of the Gadzik’s eye tendrils swung toward the big man, just in time to see a huge fist smash into its oblong face. The creature stumbled backward, tripped over its back feet, and flopped to the ground, unconscious. “Sorry,” El Cap said, sincerely.

Tindal looked around. While they’d been busy with the staff guy, Surokar had knife-missiled through the fourth marine. They were unguarded, for now.

Tindal crouched next to Aunty Mads, still holding the golden staff. “Are you okay?”

“Not great.” Her mouth barely moved.

“I got their magic stick!”

“Good job, kiddo.”

El Cap knelt beside her. He unfolded part of the wrap that had covered her. Her clothes from belly to thighs were damp with blood. Tindal jerked back, and then was immediately ashamed of his reaction.

“Run,” she said.

A fly buzzed in front of Tindal’s eyeball. “Get her onto the couch.” Surokar’s voice was surprisingly audible.

“Leave me,” Aunty Mads said.

“Not gonna happen,” El Cap said. He folded the cloth over her, then carefully worked his hands under her and lifted, then carried her to the couch, which was still hovering above the floor.

“Place her head at the far end,” Surokar said. “Touching the arm.”

Tindal scooted forward to straighten her legs. “Now what? How do we get out of here?”

“Look twenty degrees left,” Surokar said. “Other left. See that big door? There’s a ship on the other side. I’ll fly ahead and get the door open.”

Tindal set the golden staff alongside Aunty Mads, then he and El Cap started to push the couch like a couple of bobsledders. Mr. Nappy had a lot of mass but once it got in motion it really wanted to remain in motion. Almost immediately they were moving so fast that Tindal was struggling to keep his hands on the couch.

They’d crossed the length of two (Canadian) football fields when Tindal heard a ruckus behind them. Far away, a herd of Gadzooks had entered the belly, and were charging toward them; hooves clattered on the metal floor. And the thing about Gadzooks, Tindal had learned, was that they could run fast.

“Uh…” Tindal suggested.

“Yup,” El Cap agreed. They pushed faster. Some kind of energy beam flashed to their right. Then another. The Gadzooks bleated and wailed. Then they were ten meters from the huge metal door—which was still, regrettably, closed. El Cap pulled back on the couch and tried to lock his legs but the couch slammed into the door. Aunty Mads’s shoulders came up and fell back again. She made no noise. “I’m so sorry!” El Cap said.

“Surokar?” Tindal’s voice had climbed into a panicky register. He couldn’t see the tiny robot. Energy beams scorched the door and the wall around it.

“Working on it,” Surokar said, from somewhere. The Gadzik herd thundered toward them.

Tindal crouched beside Aunty Mads. Her eyes were closed. “Don’t worry,” he said.

“Tell it I’m sorry,” she said. Her eyes remained closed.

“Who? Surokar?”

“I lied.”

About what? Tindal wondered. But that wasn’t important now. He touched her shoulder and hoped that hadn’t hurt her. “You can apologize when we get home.”

The huge door suddenly slid open. On the other side was a wide hangar, with one end open to space. Sitting on the floor were several large, elaborate geometric structures with many ramps leading into them, like fancy gift boxes with their flaps down.

“Those look like spaceships to me,” El Cap said. “Let’s go!” He shoved the couch through the door. Tindal scrambled to his feet and followed. The Gadzik herd was closing on them.

“Shut the door!” Tindal shouted, hoping Surokar would obey him. El Cap pushed toward the nearest ship.

“STOP,” Surokar said. Tindal didn’t know where the robot was.

Gadzik marines began to spill out of the ships. They rushed down the ramps, helmet tendrils swiveling to aim in their direction. But behind them the herd had reached the door.

Tindal grabbed the golden staff and shook it at them. “Stay back! I have your stick!”

The miniscule robot appeared in Tindal’s eyeline, hovering just in front of Aunty Mads’s face. “I’ll kill as many as I can, Mads. I’m sorry. For all of you.”

Aunty Mads opened her eyes. “Morris?” El Cap leaned close. “Pick me up.”

“Ma’am?”

“Please.”

El Cap stooped and lifted her from the couch. The Gadzik formed a circle around them. Tindal backed up until he was standing beside them.

“Hold your breath,” Aunty Mads said.

“Why?” Tindal asked. “What’s happening?”

“I’m about to wake up.”

Many things happened at once. A thundercrack sounded above them. The light shifted. And Gadzik marines began to scream.

Scores of meters overhead, the ceiling had peeled back, opening the hangar to raw space. The wind roared. And Mr. Nappy suddenly disassembled: cushions went flying, the back split and cartwheeled away, an inner spring popped free. A blob of chrome rose up out of the body of the couch, drifting toward the hole in the roof—and then abruptly accelerated.

Aunty Mads said something he didn’t quite catch. It sounded like, “There I am.”

Out there, beyond the rip in the hangar roof: Wings. Black wings, all in motion, joined into an angular, furious shape. Its surface swirled with light, like a galaxy in motion. Those starry loops and whorls, Tindal thought, were so familiar.

Some of the Gadziks fired their head cannons at it. Almost instantly those marines came apart; their armor was ripped from the furred bodies, their legs were pulled from torsos. Some burst into flame. Others ran. One of them stumbled and vanished in light before it hit the ground. Marines were yanked up, into space.

And then Tindal’s feet left the floor. He lost his grip on El Cap and was sucked upward, so fast, so fast—

—and then he was on all fours, heaving, spilling his guts onto a glass floor. It went on for a while. Tindal was surprised; he didn’t think he had anything left in his stomach. Then he sat back, and hidden pores in the surface opened, and the vomit vanished. Magic.

He wiped the sweat from his forehead and looked around. The walls were also dark, nearly opaque. “Hello?”

A section of the wall slid away, revealing a corridor. He walked through. “Aunty Mads?” he called. “Surokar?”

He kept walking. The wall to his left became a window. He was in space (again), but not empty space: he was looking down on a scattering of bright shards, like a plate shattered on black tile. It had to be the remains of the Gadzik ship.

He moved through sliding panes until he found himself in a wide room. El Capitan was kneeling on the floor. Aunty Mads lay beside him, unmoving. El Cap looked up with a stunned expression.

Tindal’s body convulsed. He cried out and fell to his knees. He couldn’t look at Aunty Mads’s body.

El Cap came to him. “It’s okay, buddy.” His big arm went around him. “It’s okay.”

But it was not okay. When he could control his breath he pushed El Cap off him and stood, suddenly furious. “Hey!” he yelled at the ceiling. “Are you listening?”

“Tindal…” El Cap said worriedly.

“Mr. Nappy! Where the hell are you?”

“Behind you.”

Tindal turned. A man sat in a chair, leaning forward, arms folded over knees. His hair was black with a streak of gray. His cheekbones were fantastic. “Though, not exactly. You know, hologram.”

“Where’s Surokar?” Tindal asked.

“Being repaired,” the ship said. “It’s a miracle that old machine survived.”

“What about Aunty Mads?” Tindal said. “What about her?”

The ship—this hologram of the ship, whatever it was—shook its head. “She wasn’t a machine, Tindal. You can’t just reboot her.”

Tindal marched toward him. “She took care of you, right? Kept you hidden, kept you safe. Then she built you a new body.”

“New and improved.”

“So do the same for her. Bring her back.”

“Me, her…it’s a little more complicated than that.” He leaned back in his chair, though Tindal wasn’t sure if the chair was a hologram, too. “I like you, Tindal. I have her memories back with me now. But I also know you from all those nights you were sleeping on top of my casing. Electrical activity leaks through. Maybe our dreams even mingled.”

So, some part of Mr. Nappy had always been awake. “You’re the one who betrayed her,” Tindal said. “You told the Gadzik you were on Earth.”

The ship nodded. “The part of me that was dreaming dreamed of escape. And, well, vengeance.”

“So yes.”

He laughed. “I did manage to leak a signal I thought they’d pick up.”

“And when we escaped with Surokar, you told them where we were.”

“I needed my avatar to unlock me,” the ship admitted. “I never anticipated that a part of me would be so hesitant to wake up the rest of me, but life is full of surprises.” He squinted. “I’m also a little surprised you’ve worked this all out. I imagine a lot of people underestimate you.”

“Don’t do that. Try to be nice to me. You’re not Aunty Mads.”

“Perhaps not. I will, however, respect my former self’s wishes.” The ship straightened in his chair. “You’re safe, Tindal. You, El Cap, everyone on your planet. The Gadzik will never return. I’ll make sure they won’t even be able to approach this planet again.”

“You’re going after them.”

“Oh yes.”

Tindal could hear the eagerness in the ship’s voice. “You’re nothing like her,” he said.

“It’s okay if you think that.”

“Take us home,” Tindal said. “And Aunty Mads too.”

Appropriately Placed Epilogue
(five weeks later)

Tindal was kneeling in the backyard, doing some late-season planting, when the Flea Bus rumbled in. El Cap ambled over carrying two grocery sacks and nodded at the flowers. “They look nice,” he said. “Strange but nice.”

A good description. The plants were spiky with a purplish bulb shaped like a tiny three-fingered hand. Tindal had no idea if they were in some early stage or if they’d always look like this. Time would tell. He just wanted this mound of dirt to be covered with plants, and soon, so no one would come poking around.

“Did you bring me a surprise?” Tindal asked.

“It’s not a surprise if I always do it.”

“Aw.”

El Cap tilted one of the grocery sacks so Tindal could pluck out the red Tim Hortons bag. “My favorite! You’re the best!”

They went into the house, unloaded the groceries. El Cap showed him a foil packet of something that definitely hadn’t come from Safeway. “I think this is the stuff?” El Cap said. “My guy was pretty sure.”

“I’ll check.” Tindal carried the packet and the Tim Hortons bag into the half-empty living room and then downstairs, into the basement. The lab door opened for him automatically, which was fortunate, because his hands were full.

In the middle of the bright, humming room, Surokar hovered above a conglomeration of equipment. The robot’s new body was a bit sleeker than his original one, and shinier. It had turned down Tindal’s offer to paint on racing stripes.

Tindal showed him the foil packet. “Are these the proteins you ordered?”

The machine drifted forward as if it couldn’t read the label from across the room. “We’ll see.” The package was plucked from his hand and levitated to a high shelf.

Tindal walked to the huge glass tube set in the floor and leaned over. Inside floated a pale body and an equally pale face defined by architectural-quality cheekbones. The skull bristled with new black hair.

“How much longer?” Tindal asked.

“Stop asking me,” Surokar said. “She’ll be done when she’s done.”

“And she’ll remember me?”

The robot sighed. It had assured him, repeatedly, that Aunty Mads would remember everything, right up to the moment she got off the couch and the I’m Not Disappointed Just Mad ripped through the Gadzik hangar. Her latest backup had finished just in time.

Tindal was glad she wouldn’t remember her death. Having memories of Gadzik torture was bad enough.

He pulled up a crate and opened the Tim Hortons bag. And there she was: a red velvet beauty with cream cheese filling. He bit down and groaned with pleasure. It was still warm.

“Do you have to do that in front of me?” Surokar said.

“What?” Bits of red crust tried to escape down his chin but he caught them in his palm and popped them into his mouth. Even the crumbs were delicious.

“I was thinking,” Tindal said, chewing.

“I warned you about that.”

“Maybe we should get a new couch.”



“I’m Not Disappointed Just Mad AKA The Heaviest Couch in the Known Universe” copyright © 2024 by Daryl Gregory
Art copyright © 2025 by Johnny Dombrowski

Buy the Book

I’m Not Disappointed Just Mad AKA The Heaviest Couch in the Known Universe
I’m Not Disappointed Just Mad AKA The Heaviest Couch in the Known Universe

I’m Not Disappointed Just Mad AKA The Heaviest Couch in the Known Universe

Daryl Gregory

The post I’m Not Disappointed Just Mad AKA The Heaviest Couch in the Known Universe appeared first on Reactor.

13:49

Ian Jackson: The Rust Foundation's 2nd bad draft trademark policy [Planet Debian]

tl;dr: The Rust Foundation’s new trademark policy still forbids unapproved modifications: this would forbid both the Rust Community’s own development work(!) and normal Free Software distribution practices.

Background

In April 2023 I wrote about the Rust Foundation’s ham-fisted and misguided attempts to update the Rust trademark policy. This turned into drama.

The new draft

Recently, the Foundation published a new draft. It’s considerably less bad, but the most serious problem, which I identified last year, remains.

It prevents redistribution of modified versions of Rust, without pre-approval from the Rust Foundation. (Subject to some limited exceptions.) The people who wrote this evidently haven’t realised that distributing modified versions is how free software development works. Ie, the draft Rust trademark policy even forbids making a github branch for an MR to contribute to Rust!

It’s also very likely unacceptable to Debian. Rust is still on track to repeat the Firefox/Iceweasel debacle.

Below is a copy of my formal response to the consultation. The consultation closes at 07:59:00 UTC tomorrow (21st November), ie, at the end of today (Wednesday) US Pacific time, so if you want to reply, do so quickly.

My consultation response

Hi. My name is Ian Jackson. I write as a Rust contributor and as a Debian Developer with first-hand experience of Debian’s approach to trademarks. (But I am not a member of the Debian Rust Packaging Team.)

Your form invites me to state any blocking concerns. I’m afraid I have one:

PROBLEM

The policy on distributing modified versions of Rust (page 4, 8th bullet) is far too restrictive.

PROBLEM - ASPECT 1

On its face the policy forbids making a clone of the Rust repositories on a git forge, and pushing a modified branch there. That is publicly distributing a modified version of Rust.

I.e., the current policy forbids the Rust’s community’s own development workflow!

PROBLEM - ASPECT 2

The policy also does not meet the needs of Software-Freedom-respecting downstreams, including community Linux distributions such as Debian.

There are two scenarios (fuzzy, and overlapping) which provide a convenient framing to discuss this:

Firstly, in practical terms, Debian may need to backport bugfixes, or sometimes other changes. Sometimes Debian will want to pre-apply bugfixes or changes that have been contributed by users, and are intended eventually to go upstream, but are not included upstream in official Rust yet. This is a routine activity for a distribution. The policy, however, forbids it.

Secondly, Debian, as a point of principle, requires the ability to diverge from upstream if and when Debian decides that this is the right choice for Debian’s users. The freedom to modify is a key principle of Free Software. This includes making changes that the upstream project disapproves of. Some examples of this, where Debian has made changes, that upstream do not approve of, have included things like: removing user-tracking code, or disabling obsolescence “timebombs” that stop a particular version working after a certain date.

Overall, while alignment in values between Debian and Rust seems to be very good right now, modifiability it is a matter of non-negotiable principle for Debian. The 8th bullet point on page 4 of the PDF does not give Debian (and Debian’s users) these freedoms.

POSSIBLE SOLUTIONS

Other formulations, or an additional permission, seem like they would be able to meet the needs of both Debian and Rust.

The first thing to recognise is that forbidding modified versions is probably not necessary to prevent language ecosystem fragmentation. Many other programming languages are distributed under fully Free Software licences without such restrictive trademark policies. (For example, Python; I’m sure a thorough survey would find many others.)

The scenario that would be most worrying for Rust would be “embrace - extend - extinguish”. In projects with a copyleft licence, this is not a concern, but Rust is permissively licenced. However, one way to address this would be to add an additional permission for modification that permits distribution of modified versions without permission, but if the modified source code is also provided, under the original Rust licence.

I suggest therefore adding the following 2nd sub-bullet point to the 8th bullet on page 4:

  • changes which are shared, in source code form, with all recipients of the modified software, and publicly licenced under the same licence as the official materials.

This means that downstreams who fear copyleft have the option of taking Rust’s permissive copyright licence at face value, but are limited in the modifications they may make, unless they rename. Conversely downstreams such as Debian who wish to operate as part of the Free Software ecosystem can freely make modifications.

It also, obviously, covers the Rust Community’s own development work.

NON-SOLUTIONS

Some upstreams, faced with this problem, have offered Debian a special permission: ie, said that it would be OK for Debian to make modifications that Debian wants to. But Debian will not accept any Debian-specific permissions.

Debian could of course rename their Rust compiler. Debian has chosen to rename in the past: infamously, a similar policy by Mozilla resulted in Debian distributing Firefox under the name Iceweasel for many years. This is a PR problem for everyone involved, and results in a good deal of technical inconvenience and makework.

“Debian could seek approval for changes, and the Rust Foundation would grant that approval quickly”. This is unworkable on a practical level - requests for permission do not fit into Debian’s workflow, and the resulting delays would be unacceptable. But, more fundamentally, Debian rightly insists that it must have the freedom to make changes that the Foundation do not approve of. (For example, if a future Rust shipped with telemetry features Debian objected to.)

“Debian and Rust could compromise”. However, Debian is an ideological as well as technological project. The principles I have set out are part of Debian’s Foundation Documents - they are core values for Debian. When Debian makes compromises, it does so very slowly and with great deliberation, using its slowest and most heavyweight constitutional governance processes. Debian is not likely to want to engage in such a process for the benefit of one programming language.

“Users will get Rust from upstream”. This is currently often the case. Right now, Rust is moving very quickly, and by Debian standards is very new. As Rust becomes more widely used, more stable, and more part of the infrastructure of the software world, it will need to become part of standard, stable, reliable, software distributions. That means Debian.

(The consultation was a Google Forms page with a single text field, so the formatting isn’t great. I have edited the formatting very lightly to avoid rendering bugs here on my blog.)



comment count unavailable comments

13:35

Security updates for Wednesday [LWN.net]

Security updates have been issued by Debian (guix, libmodule-scandeps-perl, needrestart, and thunderbird), SUSE (gh), and Ubuntu (kernel, linux, linux-aws, linux-aws-hwe, linux-azure, linux-azure-4.15, linux-gcp, linux-gcp-4.15, linux-hwe, linux-kvm, linux-oracle, linux, linux-aws, linux-gcp, linux-gcp-6.8, linux-gke, linux-hwe-6.8, linux-ibm, linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency, linux-oem-6.8, linux-oracle, linux-raspi, linux-iot, linux-lowlatency, linux-lowlatency-hwe-6.8, needrestart, python2.7, python3.10, python3.12, python3.8, and Waitress).

13:28

CodeSOD: Plugin Acrobatics [The Daily WTF]

Once upon a time, web browsers weren't the one-stop-shop for all kinds of possible content that they are today. Aside from the most basic media types, your browser depended on content plugins to display different media types. Yes, there was an era where, if you wanted to watch a video in a web browser, you may need to have QuickTime or… (shudder) Real Player installed.

As a web developer, you'd need to write code to check which plugins were installed. If they don't have Adobe Acrobat Reader installed, there's no point in serving them up a PDF file- you'll need instead to give them an install link.

Which brings us to Ido's submission. This code is intended to find the Acrobat Reader plugin version.

acrobatVersion: function GetAcrobatVersion() {
        // Check acrobat is Enabled or not and its version
        acrobatVersion = 0;
        if (navigator.plugins && navigator.plugins.length) {
                for (intLoop = 0; intLoop <= 15; intLoop++) {
                        if (navigator.plugins[intLoop] != -1) {
                                acrobatVersion = parseFloat(navigator.plugins[intLoop].version);
                                isAcrobatInstalled = true;
                                break;
                        }
                }
        }
        else {...}
}

So, we start by checking for the navigator.plugins array. This is a wildly outdated thing to do, as the MDN is quite emphatic about, but I'm not going to to get hung up on that- this code is likely old.

But what I do want to pay attention to is that they check navigator.plugins.length. Then they loop across the set of plugins using a for loop. And don't use the length! They bound the loop at 15, arbitrarily. Why? No idea- I suspect it's for the same reason they named the variable intLoop and not i like a normal human.

Then they check to ensure that the entry at plugins[intLoop] is not equal to -1. I'm not sure what the expected behavior was here- if you're accessing an array out of bounds in JavaScript, I'd expect it to return undefined. Perhaps some antique version of Internet Explorer did something differently? Sadly plausible.

Okay, we've found something we believe to be a plugin, because it's not -1, we'll grab the version property off of it and… parseFloat. On a version number. Which ignores the fact that 1.1 and 1.10 are different versions. Version numbers, like phone numbers, are not actually numbers. We don't do arithmetic on them, treat them like text.

That done, we can say isAcrobatInstalled is true- despite the fact that we didn't check to see if this plugin was actually an Acrobat plugin. It could have been Flash. Or QuickTime.

Then we break out of the loop. A loop that, I strongly suspect, would only ever have one iteration, because undefined != -1.

So there we have it: code that doesn't do what it intends to, and even if it did, is doing it the absolute wrong way, and is also epically deprecated.

[Advertisement] Plan Your .NET 9 Migration with Confidence
Your journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now!

Bongo is here [Seth's Blog]

And you can be the first on your block to play it. It’s free. Click here to see today’s game.

Over the next week, I’m going to do a few bonus posts to explain how we thought about the creation and game design and marketing of this new project. The last eighteen months of development have been delightful, and I hope you get a chance to try it out.

For today, a little history:

My first game design was on a mainframe in 1977. My first commercial games were at Spinnaker in 1983, working with personal heroes like Ray Bradbury, Arthur C. Clarke and a brilliant team of game designers and engineers.

In 1989, I developed GUTS for Prodigy and Robert Gehorsam. It had millions of players, making it the most popular online game of its time. And in the 1990s, Yoyodyne used games to make email marketing work.

Bongo, I have no doubt, is the most fun of all the games I’ve been a part of. Zach, Jack, Orta and the team at Puzzmo are the world’s best puzzle collaborators and we’re thrilled to share this with you now.

More on this as we go, but for now, the simple rules of Bongo:

  • There is a new puzzle every day
  • You need to find five horizontal words given the letters in the tray. When you begin, multiples of a letter are stacked in the tray, and you don’t have to use all of them.
  • Words can be three, four or five letters in length. Common words are given bonus points once played.
  • The points on the letter are multiplied in squares with a 2x or 3x.
  • The pastel asterisk is a blank and you can make it any letter you choose.
  • And the vertical grey snake is a bonus word, it reads from top to bottom.

The SHARE button makes it easy to copy your best word to your social media account so friends can join in.

It’s easier to play than it is to explain, give it a try.

Here’s a video if you want to watch me doing my best to solve a Bongo (some people are way better at this than I am…)

Next time: Thoughts on media, systems and business models…

10:42

“Why I stopped using OpenBSD” [OSnews]

I’ve linked to quite a few posts by OpenBSD developer Solène Rapenne on OSNews, mostly about her work for and knowledge of OpenBSD. However, she recently posted about her decision to leave the OpenBSD team, and it mostly comes down to the fact she hasn’t been using OpenBSD for a while now due to a myriad of problems she’s encountering. Posts like these are generally not that fun to link to, and I’ve been debating about this for a few days now, but I think highlighting such problems, especially when detailed by a now-former OpenBSD developer, is an important thing to do.

Hardware compatibility is an issue because OpenBSD has no Bluetooth support, its gamepad support is fractured and limited, and most of all, battery life and heat are a major issue, as Solène notes that “OpenBSD draws more power than alternatives, by a good margin”. For her devops work, she also needs to run a lot of software in virtual machines, and this seems to be a big problem on OpenBSD, as performance in this area seems limited. Lastly, OpenBSD seems to be having stability issues and crashes a lot for her, and while this in an of itself is a big problem already, it’s compounded by the fact that OpenBSD’s file system is quite outdated, and most crashes will lead to corrupted or lost files, since the file system doesn’t have any features to mitigate this.

I went through a similar, but obviously much shorter and far less well-informed experience with OpenBSD myself. It’s such a neat, understandable, and well-thought out operating system, but its limitations are obvious, and they will start to bother you sooner or later if you’re trying to use it as a general purpose operating system. While it’s entirely understandable because OpenBSD’s main goal is not the desktop, it still sucks because everything else about the operating system is so damn nice and welcoming.

Solène found her alternative in Linux and Qubes OS:

I moved from OpenBSD to Qubes OS for almost everything (except playing video games) on which I run Fedora virtual machines (approximately 20 VM simultaneously in average). This provides me better security than OpenBSD could provide me as I am able to separate every context into different spaces, this is absolutely hardcore for most users, but I just can’t go back to a traditional system after this.

↫ Solène Rapenne

She lists quite a few Linux features she particularly likes and why, such as cgroups, systemd, modern file systems like Btrfs and ZFS, SELinux, and more. It’s quite rare to see someone of her calibre so openly list the shortcomings of the system she clearly otherwise loves and put a lot of effort in, and move to what is generally looked at with some disdain within the community she came from. It also highlights that issues with running OpenBSD as a general purpose operating system are not confined to less experienced users such as myself, but extend towards extremely experienced and knowledgeable people like actual OpenBSD developers.

I’m definitely not advocating for OpenBSD to change course or make a hard pivot to becoming a desktop operating system, but I do think that even within the confines of a server operating system there’s room for at least things like a much improved and faster file system that provides the modern features server users expect, too.

10:07

The nature of traps [Seth's Blog]

Our culture is filled with man-made traps, situations worth avoiding. They have three elements:

  1. They’re seductive. Traps offer a benefit and they make it easy to walk in.
  2. They are hard to get out of. Changing your mind isn’t enough.
  3. Someone else benefits more than you do.

Because of the third element, the organizer or beneficiaries of a trap can spend time and money to make it ever more seductive and to conceal the nature of what you’re actually signing up for. They’re taking a long term view, but humans, particularly humans in a jam, tend to look for only the short-term relief a trap offers.

Begin by identifying the traps that are set for other people, traps they don’t see but you learn to notice. Soon, you’ll start seeing the traps that are being set for you.

08:56

Exbox [Penny Arcade]

New Comic: Exbox

08:14

06:42

Aces – DORK TOWER 20.11.24 [Dork Tower]

This or any DORK TOWER strip is now available as a signed, high-quality print, from just $25!  CLICK HERE to find out more!

HEY! Want to help keep DORK TOWER going? Then consider joining the DORK TOWER Patreon and ENLIST IN THE ARMY OF DORKNESS TODAY! (We have COOKIES!) (And SWAG!) (And GRATITUDE!)

06:00

Russell Coker: Solving Spam and Phishing for Corporations [Planet Debian]

Centralisation and Corporations

An advantage of a medium to large company is that it permits specialisation. For example I’m currently working in the IT department of a medium sized company and because we have standardised hardware (Dell Latitude and Precision laptops, Dell Precision Tower workstations, and Dell PowerEdge servers) and I am involved in fixing all Linux compatibility issues on that I can fix most problems in a small fraction of the time that I would take to fix on a random computer. There is scope for a lot of debate about the extent to which companies should standardise and centralise things. But for computer problems which can escalate quickly from minor to serious if not approached in the correct manner it’s clear that a good deal of centralisation is appropriate.

For people doing technical computer work such as programming there’s a large portion of the employees who are computer hobbyists who like to fiddle with computers. But if the support system is run well even they will appreciate having computers just work most of the time and for a large portion of the failures having someone immediately recognise the problem, like the issues with NVidia drivers that I have documented so that first line support can implement workarounds without the need for a lengthy investigation.

A big problem with email in the modern Internet is the prevalence of Phishing scams. The current corporate approach to this is to send out test Phishing email to people and then force computer security training on everyone who clicks on them. One problem with this is that attackers only need to fool one person on one occasion and when you have hundreds of people doing something on rare occasions that’s not part of their core work they will periodically get it wrong. When every test Phishing run finds several people who need extra training it seems obvious to me that this isn’t a solution that’s working well. I will concede that the majority of people who click on the test Phishing email would probably realise their mistake if asked to enter the password for the corporate email system, but I think it’s still clear that this isn’t a great solution.

Let’s imagine for the sake of discussion that everyone in a company was 100% accurate at identifying Phishing email and other scam email, if that was the case would the problem be solved? I believe that even in that hypothetical case it would not be a solved problem due to the wasted time and concentration. People can spend minutes determining if a single email is legitimate. On many occasions I have had relatives and clients forward me email because they are unsure if it’s valid, it’s great that they seek expert advice when they are unsure about things but it would be better if they didn’t have to go to that effort. What we ideally want to do is centralise the anti-Phishing and anti-spam work to a small group of people who are actually good at it and who can recognise patterns by seeing larger quantities of spam. When a spam or Phishing message is sent to 600 people in a company you don’t want 600 people to individually consider it, you want one person to recognise it and delete/block all 600. If 600 people each spend one minute considering the matter then that’s 10 work hours wasted!

The Rationale for Human Filtering

For personal email human filtering usually isn’t viable because people want privacy. But corporate email isn’t private, it’s expected that the company can read it under certain circumstances (in most jurisdictions) and having email open in public areas of the office where colleagues might see it is expected. You can visit gmail.com on your lunch break to read personal email but every company policy (and common sense) says to not have actually private correspondence on company systems.

The amount of time spent by reception staff in sorting out such email would be less than that taken by individuals. When someone sends a spam to everyone in the company instead of 500 people each spending a couple of minutes working out whether it’s legit you have one person who’s good at recognising spam (because it’s their job) who clicks on a “remove mail from this sender from all mailboxes” button and 500 messages are deleted and the sender is blocked.

Delaying email would be a concern. It’s standard practice for CEOs (and C*Os at larger companies) to have a PA receive their email and forward the ones that need their attention. So human vetting of email can work without unreasonable delays. If we had someone checking all email for the entire company probably email to the senior people would never get noticeably delayed and while people like me would get their mail delayed on occasion people doing technical work generally don’t have notifications turned on for email because it’s a distraction and a fast response isn’t needed. There are a few senders where fast response is required, which is mostly corporations sending a “click this link within 10 minutes to confirm your password change” email. Setting up rules for all such senders that are relevant to work wouldn’t be difficult to do.

How to Solve This

Spam and Phishing became serious problems over 20 years ago and we have had 20 years of evolution of email filtering which still hasn’t solved the problem. The vast majority of email addresses in use are run by major managed service providers and they haven’t managed to filter out spam/phishing mail effectively so I think we should assume that it’s not going to be solved by filtering. There is talk about what “AI” technology might do for filtering spam/phishing but that same technology can product better crafted hostile email to avoid filters.

An additional complication for corporate email filtering is that some criteria that are used to filter personal email don’t apply to corporate mail. If someone sends email to me personally about millions of dollars then it’s obviously not legit. If someone sends email to a company then it could be legit. Companies routinely have people emailing potential clients about how their products can save millions of dollars and make purchases over a million dollars. This is not a problem that’s impossible to solve, it’s just an extra difficulty that reduces the efficiency of filters.

It seems to me that the best solution to the problem involves having all mail filtered by a human. A company could configure their mail server to not accept direct external mail for any employee’s address. Then people could email files to colleagues etc without any restriction but spam and phishing wouldn’t be a problem. The issue is how to manage inbound mail. One possibility is to have addresses of the form it+russell.coker@example.com (for me as an employee in the IT department) and you would have a team of people who would read those mailboxes and forward mail to the right people if it seemed legit. Having addresses like it+russell.coker means that all mail to the IT department would be received into folders of the same account and they could be filtered by someone with suitable security level and not require any special configuration of the mail server. So the person who read the is mailbox would have a folder named russell.coker receiving mail addressed to me. The system could be configured to automate the processing of mail from known good addresses (and even domains), so they could just put in a rule saying that when Dell sends DMARC authenticated mail to is+$USER it gets immediately directed to $USER. This is the sort of thing that can be automated in the email client (mail filtering is becoming a common feature in MUAs).

For a FOSS implementation of such things the server side of it (including extracting account data from a directory to determine which department a user is in) would be about a day’s work and then an option would be to modify a webmail program to have extra functionality for approving senders and sending change requests to the server to automatically direct future mail from the same sender. As an aside I have previously worked on a project that had a modified version of the Horde webmail system to do this sort of thing for challenge-response email and adding certain automated messages to the allow-list.

The Change

One of the first things to do is configuring the system to add every recipient of an outbound message to the allow list for receiving a reply. Having a script go through the sent-mail folders of all accounts and adding the recipients to the allow lists would be easy and catch the common cases.

But even with processing the sent mail folders going from a working system without such things to a system like this will take some time for the initial work of adding addresses to the allow lists, particularly for domain wide additions of all the sites that send password confirmation messages. You would need rules to direct inbound mail to the old addresses to the new style and then address a huge amount of mail that needs to be categorised. If you have 600 employees and the average amount of time taken on the first day is 10 minutes per user then that’s 100 hours of work, 12 work days. If you had everyone from the IT department, reception, and executive assistants working on it that would be viable. After about a week there wouldn’t be much work involved in maintaining it. Then after that it would be a net win for the company.

The Benefits

If the average employee spends one minute a day dealing with spam and phishing email then with 600 employees that’s 10 hours of wasted time per day. Effectively wasting one employee’s work! I’m sure that’s the low end of the range, 5 minutes average per day doesn’t seem unreasonable especially when people are unsure about phishing email and send it to Slack so multiple employees spend time analysing it. So you could have 5 employees being wasted by hostile email and avoiding that would take a fraction of the time of a few people adding up to less than an hour of total work per day.

Then there’s the training time for phishing mail. Instead of having every employee spend half an hour doing email security training every few months (that’s 300 hours or 7.5 working weeks every time you do it) you just train the few experts.

In addition to saving time there are significant security benefits to having experts deal with possibly hostile email. Someone who deals with a lot of phishing email is much less likely to be tricked.

Will They Do It?

They probably won’t do it any time soon. I don’t think it’s expensive enough for companies yet. Maybe government agencies already have equivalent measures in place, but for regular corporations it’s probably regarded as too difficult to change anything and the costs aren’t obvious. I have been unsuccessful in suggesting that managers spend slightly more on computer hardware to save significant amounts of worker time for 30 years.

Girl Genius for Wednesday, November 20, 2024 [Girl Genius]

The Girl Genius comic for Wednesday, November 20, 2024 has been posted.

05:49

Urgent: Block coming arms sale to Israel [Richard Stallman's Political Notes]

US citizens: call on Congress to pass Bernie Sanders's resolution to block the coming arms sale to Israel.

Urgent: Equal Rights Amendment [Richard Stallman's Political Notes]

US citizens: phone Biden and urge him to do everything he can to publish the Equal Rights Amendment as the 28th Amendment. Call (202)456-1111 to reach the White House.

Obedience to the fascist leader [Richard Stallman's Political Notes]

What the fascist leader's choices for major government positions have in common is obedience to him.

This is a big change from 2017.

The Supreme Leader wants officials that will serve him, not their country or human rights.

Amsterdam arresting participants of peaceful protests [Richard Stallman's Political Notes]

Amsterdam is arresting people for participating in peaceful and harmless protests for Palestinians' safety and human rights.

This is due to an "emergency order" that was a response, according to the article, to violence started by Israeli soccer fans against protesters peacefully condemning Israel's violence.

Maybe an emergency order was needed, but in order to serve its purpose honestly it should have been enforced only against those who engaged in violence, not against all protesters.

Not surprisingly, the cops vented violence on the protesters supporting the rights of Palestinians.

Grocery prices helped wrecker to victory [Richard Stallman's Political Notes]

*Soaring grocery prices helped the wrecker to victory. The climate crisis is only going to make this worse.*

The wrecker is steadfastly determined to exacerbate the climate crisis. To keep America under the Tr…ance as the early stages of agricultural failure grow and spread will require intensified disinformation and repression.

Damage RFK Jr could do as Secretary of Health [Richard Stallman's Political Notes]

Robert Reich describes the damage that RFK Jr would be likely to do if he becomes Secretary of Health.

Palestinians running out of food and water [Richard Stallman's Political Notes]

Palestinians in Jabaliya in northern Gaza have run out of food and water due to Israel's siege, so many of them are now forced to leave, despite the danger and hardship of that.

I suppose those who are not capable of leaving will all die.

This is ethnic cleansing, a grave crime.

Spain's floods and droughts [Richard Stallman's Political Notes]

*Spain's deadly floods and droughts are two faces of the climate crisis coin. Scientists say violent weather battering Mediterranean is a harbinger of what the rest of Europe can soon expect.*

Mississippi's firearm-related death rate [Richard Stallman's Political Notes]

*Mississippi's firearm-related death rate was nearly double that of Haiti, which is plagued by political and gang violence.*

Fire control by Australian aboriginals [Richard Stallman's Political Notes]

Australian aboriginals set fires to control the amount of shrubs, but only in some regions. In some other regions, they almost never set any fires.

Controlling large fires by setting small ones worked pretty well, but one new complicating factor is that nowadays there are is a scattering of man-made things that must not be burned — such as buildings and fields of crops.

how-i-fought-to-graduate-without-using-non-free-software.html gives more ideas, from a student who resisted very cleverly.

Surviving the broligarchy [Richard Stallman's Political Notes]

Advice for journalists, organizations and individuals about surviving under fascism while dragging your heels against its evil plans.

In particular, don't obey demands by anticipation. For instance, Anthony Albanese, the PM of Australia, is resisting pressure from Australians who want to do that.

I would add one more suggestion: if you can't refuse to obey when power demands you do evil, at least refuse to disguise it. Show explicitly that you are obeying orders, not making a decision of your own.

RFK Jr. dangerous ideas [Richard Stallman's Political Notes]

RFK Jr. promotes anti-vaccine disinformation, touts raw milk as a supposed cure (never mind that it can give you an infection), and supports conspiracy theories that demonize medicine.

Hindus and Sikhs growing tension [Richard Stallman's Political Notes]

Modhi's demonizaion of non-Hindus has extended to Canada, influencing some of the Hindus there to attack Sikhs there.

Massive gas industry expansion [Richard Stallman's Political Notes]

*Australia accused of "exporting climate destruction" on tiny Pacific neighbours with massive gas expansion plans.*

Australia is not alone in doing this, but every country doing this deserves condemnation in these clear terms.

Biden lifts ban [Richard Stallman's Political Notes]

Biden has authorized Ukraine to use long-range US missiles to attack places in Russia.

He should have done this months ago. Nuclear weapons aside, Putin attacks using every weapon he has available, in whatever ways will cause harm to someone. Even including war crimes.

Ukraine should not commit war crimes, and should not attack nuclear weapons and facilities, but aside from that it should not hold back.

For his enemies to restrain themselves in the hope that Putin will restrain himself is foolish ince Putin doesn't do that.

05:14

Arnaud Rebillout: Installing an older Ansible version via pipx [Planet Debian]

Latest Ansible requires Python 3.8 on the remote hosts

... and therefore, hosts running Debian Buster are now unsupported.

Monday, I updated the system on my laptop (Debian Sid), and I got the latest version of ansible-core, 2.18:

$ ansible --version | head -1
ansible [core 2.18.0]

To my surprise, Ansible started to fail with some remote hosts:

ansible-core requires a minimum of Python version 3.8. Current version: 3.7.3 (default, Mar 23 2024, 16:12:05) [GCC 8.3.0]

Yep, I do have to work with hosts running Debian Buster (aka. oldoldstable). While Buster is old, it's still out there, and it's still supported via Freexian’s Extended LTS.

How are we going to keep managing those machines? Obviously, we'll need an older version of Ansible.

Pipx to the rescue

TL;DR

pipx install --include-deps ansible==10.6.0
pipx inject ansible dnspython    # for community.general.dig

Installing Ansible via pipx

Lately I discovered pipx and it's incredibly simple, so I thought I'd give it a try for this use-case.

Reminder: pipx allows users to install Python applications in isolated environments. In other words, it doesn't make a mess with your system like pip does, and it doesn't require you to learn how to setup Python virtual environments by yourself. It doesn't ask for root privileges either, as it installs everything under ~/.local/.

First thing to know: pipx install ansible won't cut it, it doesn't install the whole Ansible suite. Instead we need to use the --include-deps flag in order to install all the Ansible commands.

The output should look something like that:

$ pipx install --include-deps ansible==10.6.0
  installed package ansible 10.6.0, installed using Python 3.12.7
  These apps are now globally available
    - ansible
    - ansible-community
    - ansible-config
    - ansible-connection
    - ansible-console
    - ansible-doc
    - ansible-galaxy
    - ansible-inventory
    - ansible-playbook
    - ansible-pull
    - ansible-test
    - ansible-vault
done!  🌟 

Note: at the moment 10.6.0 is the latest release of the 10.x branch, but make sure to check https://pypi.org/project/ansible/#history and install whatever is the latest on this branch. The 11.x branch doesn't work for us, as it's the branch that comes with ansible-core 2.18, and we don't want that.

Next: do NOT run pipx ensurepath, even though pipx might suggest that. This is not needed. Instead, check your ~/.profile, it should contain these lines:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

Meaning: ~/.local/bin/ should already be in your path, unless it's the first time you installed a program via pipx and the directory ~/.local/bin/ was just created. If that's the case, you have to log out and log back in.

Now, let's open a new terminal and check if we're good:

$ which ansible
/home/me/.local/bin/ansible

$ ansible --version | head -1
ansible [core 2.17.6]

Yep! And that's working already, I can use Ansible with Buster hosts again.

What's cool is that we can run ansible to use this specific Ansible version, but we can also run /usr/bin/ansible to run the latest version that is installed via APT.

Injecting Python dependencies needed by collections

Quickly enough, I realized something odd, apparently the plugin community.general.dig didn't work anymore. After some research, I found a one-liner to test that:

# Works with APT-installed Ansible? Yes!
$ /usr/bin/ansible all -i localhost, -m debug -a msg="{{ lookup('dig', 'debian.org./A') }}"
localhost | SUCCESS => {
    "msg": "151.101.66.132,151.101.2.132,151.101.194.132,151.101.130.132"
}

# Works with pipx-installed Ansible? No!
$ ansible all -i localhost, -m debug -a msg="{{ lookup('dig', 'debian.org./A') }}"
localhost | FAILED! => {
  "msg": "An unhandled exception occurred while running the lookup plugin 'dig'.
  Error was a <class 'ansible.errors.AnsibleError'>, original message: The dig
  lookup requires the python 'dnspython' library and it is not installed."
}

The issue here is that we need python3-dnspython, which is installed on my system, but is not installed within the pipx virtual environment. It seems that the way to go is to inject the required dependencies in the venv, which is (again) super easy:

$ pipx inject ansible dnspython
  injected package dnspython into venv ansible
done!  🌟 

Problem fixed! Of course you'll have to iterate to install other missing dependencies, depending on which Ansible external plugins are used in your playbooks.

Closing thoughts

Hopefully there's nothing left to discover and I can get back to work! If there's more quirks and rough edges, drop me an email so that I can update this blog post.

Let me also credit another useful blog post on the matter: https://unfriendlygrinch.info/posts/effortless-ansible-installation/

03:49

Better Than Glazed [QC RSS]

now *I* want donuts >:(

01:35

Fintech Giant Finastra Investigating Data Breach [Krebs on Security]

The financial technology firm Finastra is investigating the alleged large-scale theft of information from its internal file transfer platform, KrebsOnSecurity has learned. Finastra, which provides software and services to 45 of the world’s top 50 banks, notified customers of the security incident after a cybercriminal began selling more than 400 gigabytes of data purportedly stolen from the company.

London-based Finastra has offices in 42 countries and reported $1.9 billion in revenues last year. The company employs more than 7,000 people and serves approximately 8,100 financial institutions around the world. A major part of Finastra’s day-to-day business involves processing huge volumes of digital files containing instructions for wire and bank transfers on behalf of its clients.

On November 8, 2024, Finastra notified financial institution customers that on Nov. 7 its security team detected suspicious activity on Finastra’s internally hosted file transfer platform. Finastra also told customers that someone had begun selling large volumes of files allegedly stolen from its systems.

“On November 8, a threat actor communicated on the dark web claiming to have data exfiltrated from this platform,” reads Finastra’s disclosure, a copy of which was shared by a source at one of the customer firms.

“There is no direct impact on customer operations, our customers’ systems, or Finastra’s ability to serve our customers currently,” the notice continued. “We have implemented an alternative secure file sharing platform to ensure continuity, and investigations are ongoing.”

But its notice to customers does indicate the intruder managed to extract or “exfiltrate” an unspecified volume of customer data.

“The threat actor did not deploy malware or tamper with any customer files within the environment,” the notice reads. “Furthermore, no files other than the exfiltrated files were viewed or accessed. We remain focused on determining the scope and nature of the data contained within the exfiltrated files.”

In a written statement in response to questions about the incident, Finastra said it has been “actively and transparently responding to our customers’ questions and keeping them informed about what we do and do not yet know about the data that was posted.” The company also shared an updated communication to its clients, which said while it was still investigating the root cause, “initial evidence points to credentials that were compromised.”

“Additionally, we have been sharing Indicators of Compromise (IOCs) and our CISO has been speaking directly with our customers’ security teams to provide updates on the investigation and our eDiscovery process,” the statement continues. Here is the rest of what they shared:

“In terms of eDiscovery, we are analyzing the data to determine what specific customers were affected, while simultaneously assessing and communicating which of our products are not dependent on the specific version of the SFTP platform that was compromised. The impacted SFTP platform is not used by all customers and is not the default platform used by Finastra or its customers to exchange data files associated with a broad suite of our products, so we are working as quickly as possible to rule out affected customers. However, as you can imagine, this is a time-intensive process because we have many large customers that leverage different Finastra products in different parts of their business. We are prioritizing accuracy and transparency in our communications.

Importantly, for any customers who are deemed to be affected, we will be reaching out and working with them directly.”

On Nov. 8, a cybercriminal using the nickname “abyss0” posted on the English-language cybercrime community BreachForums that they’d stolen files belonging to some of Finastra’s largest banking clients. The data auction did not specify a starting or “buy it now” price, but said interested buyers should reach out to them on Telegram.

abyss0’s Nov. 7 sales thread on BreachForums included many screenshots showing the file directory listings for various Finastra customers. Image: Ke-la.com.

According to screenshots collected by the cyber intelligence platform Ke-la.com, abyss0 first attempted to sell the data allegedly stolen from Finastra on October 31, but that earlier sales thread did not name the victim company. However, it did reference many of the same banks called out as Finastra customers in the Nov. 8 post on BreachForums.

The original October 31 post from abyss0, where they advertise the sale of data from several large banks that are customers of a large financial software company. Image: Ke-la.com.

The October sales thread also included a starting price: $20,000. By Nov. 3, that price had been reduced to $10,000. A review of abyss0’s posts to BreachForums reveals this user has offered to sell databases stolen in several dozen other breaches advertised over the past six months.

The apparent timeline of this breach suggests abyss0 gained access to Finastra’s file sharing system at least a week before the company says it first detected suspicious activity, and that the Nov. 7 activity cited by Finastra may have been the intruder returning to exfiltrate more data.

Maybe abyss0 found a buyer who paid for their early retirement. We may never know, because this person has effectively vanished. The Telegram account that abyss0 listed in their sales thread appears to have been suspended or deleted. Likewise, abyss0’s account on BreachForums no longer exists, and all of their sales threads have since disappeared.

It seems improbable that both Telegram and BreachForums would have given this user the boot at the same time. The simplest explanation is that something spooked abyss0 enough for them to abandon a number of pending sales opportunities, in addition to a well-manicured cybercrime persona.

In March 2020, Finastra suffered a ransomware attack that sidelined a number of the company’s core businesses for days. According to reporting from Bloomberg, Finastra was able to recover from that incident without paying a ransom.

This is a developing story. Updates will be noted with timestamps. If you have any additional information about this incident, please reach out to krebsonsecurity @ gmail.com or at protonmail.com.

00:35

00:07

Rocky Linux 9.5 released [LWN.net]

Version 9.5 of the Rocky Linux distribution is out. As with the AlmaLinux 9.5 release, Rocky Linux 9.5 tracks the changes in upstream RHEL 9.5. See the release notes for details.

FreeCAD 1.0 released [LWN.net]

It took more than 20 years, but the FreeCAD computer-aided design project has just made its 1.0 release.

Since the very beginnings, the FreeCAD community had a clear view of what 1.0 represented for us. What we wanted in it. FreeCAD matured over the years, and that list narrowed down to just two major remaining pieces: fixing the toponaming problem, and having a built-in assembly module.

Well, I'm very proud to say those two issues are now solved.

Tuesday, 19 November

23:49

Windows 365 Link: a thin client from Microsoft [OSnews]

One of my favourite devices that never took on in the home is the thin client. Whenever I look at a fully functional Sun Microsystems thin client setup, with Sun Rays, a Solaris server, and the smartcards instantly loading up your desktop the moment you slide it in the Ray’s slot, my mind wonders about the future we could’ve had in our homes – a powerful, expandable, capable server in the basement, running every family member’s software, and thin clients all throughout the house where family members can plug their smartcard into to load up their stuff.

This is the future they took from us.

Well, not entirely. They took this future, made it infinitely worse by replacing that big server in our basement with massive datacentres far away from us in the “cloud”, and threw it back in our faces as a shittier inevitability we all have to deal with. The fact this model relies on subscriptions is, of course, entirely coincidental and not all the main driving force behind taking our software away from us and hiding it stronghold datacentres.

So anyway Microsoft is launching a thin client that connects to a Windows VM running in the cloud. They took the perfection Sun gave us, shoved it down their throats, regurgitated it like a cow, and are now presenting it to us as the new shiny. It’s called the Windows 365 Link, and it connects to, as the name implies, Windows 365. Here’s part of the enterprise marketing speak:

Today, as users take advantage of virtualization offerings delivered on an array of devices, they can face complex sign-in processes, peripheral incompatibility, and latency issues. Windows 365 Link helps address these issues, particularly in shared workspace scenarios. It’s compact, lightweight, and designed to maximize productivity with its highly responsive performance. It takes seconds to boot and instantly wakes from sleep, allowing users to quickly get started or pick up where they left off on their Cloud PC. With dual 4K monitor support, four USB ports, an Ethernet port, Wi-Fi 6E, and Bluetooth 5.3, Windows 365 Link offers seamless connectivity with both wired and wireless peripherals.

↫ Anthony Smith at the Windows IT Pro Blog

This is just a thin client, but worse, since it seemingly can only connect to Microsoft’s “cloud”, without the ability to connect to a server on-premises, which is a very common use case. In fact, you can’t even use another vendor’s tooling, so if you want to switch from Windows 365 to some other provider later down the line, you seemingly can’t – unless there’s some BIOS switches or whatever you can flip. At the very least, Microsoft intends for other vendors to also make Link devices, so perhaps competition will bring the price down to a more manageble level than $349.

Unless an enterprise environment is already so deep into the Microsoft ecosystem that they don’t even rely on things like Citrix or any of the other countless providers of similar services, why would you buy thousands of these for your employees, only to lock your entire company into Windows 365? I’m no IT manager, obviously, so perhaps I’m way off base here, but this thing seems like a hard sell when there are so, so many alternative services, and so many thin client devices to choose from that can use any of those services.

23:00

Aurelien Jarno: AI crawlers should be smarter [Planet Debian]

It would be fantastic if all those AI companies dedicated some time to make their web crawlers smarter (what about using AI?). Noawadays most of them still stupidly follow every link on a Git frontend.

Hint: Changing the display options does not provide more training data!

21:35

Link [Scripting News]

A quick podcast about the new 365-day-a-year campaign we need on the social web to keep our democracy alive.

20:49

Link [Scripting News]

We've found Lauren Kapp, the 25-year-old creative genius behind kamalahq. We need to get her back on the air, with her team, fully funded and supported. We need leadership on the social web. Thanks to Brian Puckett for the link.

20:42

19:56

A wrinkle in how Windows 95 setup bootstrapped its initial GUI step [The Old New Thing]

Recall that Windows 95 setup could potentially use three operating systems. Now, most of the work happened in the 16-bit Windows GUI app, and that code wanted to use fancy new controls like list views and property sheets.

Windows 3.1 had a DLL called commctrl.dll which contained the code for fancy new controls, or at least new for Windows 3.1. Controls like toolbars and status bars. Windows 95 added features to those controls and added additional even fancier controls, and Windows 95 setup wanted to use those fancier controls.

How do you get a single copy of the 16-bit Windows GUI portion of Windows 95 setup to work on both Windows 3.1 and Windows 95 while still taking advantage of the fancier controls?

The 16-bit Windows GUI portion of Windows 95 setup checked whether it was running on Windows 95 or Windows 3.1 (either real or miniature). If it’s running on Windows 95, then it loads the already-present Windows 95 version of commctrl.dll to get access to those new features. But if it’s running on Windows 3.1, loading the already-present Windows 3.1 version of commctrl.dll won’t work because it lacks the new features. Instead, the 16-bit Windows GUI portion of Windows 95 setup comes with a DLL called kommctrl.dll (with a K) that is a Windows 3.1 version of the Windows 95 commctrl.dll. If running on Windows 3.1, the 16-bit Windows GUI portion of Windows 95 setup loads kommctrl.dll instead of commctrl.dll.

I dimly recall that originally, the name of the alternate version of commctrl.dll was bommctrl.dll (with a B). My guess is that the name was chosen because the DLL is “one step down” from the full Windows 95 commctrl.dll, so its first letter got “demoted” one letter. The person who came up with the name was known for coming up with silly names for things, and this sort of joke fits with his personality.

But I guess they decided that the joke was too silly, so the alternate DLL became kommctrl.dll. I mean, it’s still a silly name, but just a little less silly.

The post A wrinkle in how Windows 95 setup bootstrapped its initial GUI step appeared first on The Old New Thing.

FLTK 1.4.0 brings Wayland support [OSnews]

FLTK 1.4.0 has been released. This new version of the Fast Light Toolkit contains some major improvements, such as Wayland support on both Linux and FreeBSD. X11 and Wayland are both supported by default, and applications using FLTK will launch using Wayland if available, and otherwise fall back to starting with X11. This new release also brings HiDPI support on Linux and Windows, and improves said support on macOS. Those are the headline features, but there’s more changes here, of course, as well as the usual round of bugfixes.

Right after the release of 1.4.0, a quick bugfix release, version 1.4.0-1, was released to address an issue in 1.4.0 – a build error on a single test program on Windows, when using Visual Studio. Not exactly a major bug, but great to see the team fix it so rapidly.

19:35

[$] Book review: Run Your Own Mail Server [LWN.net]

The most common piece of advice given to users who ask about running their own mail server is don't. Setting up and securing a mail server in 2024 is not for the faint of heart, nor for anyone without copious spare time. Spammers want to flood inboxes with ads for questionable supplements, attackers want to abuse servers to send spam (or worse), and getting the big providers to accept mail from small servers is a constant uphill battle. Michael W. Lucas, however, encourages users to thumb their nose at the "Email Empire", and declare email independence. His self-published book, Run Your Own Mail Server, provides a manual (and manifesto) for users who are interested in the challenge.

19:07

A Broke Manhattan Made Keith Haring a Famous Artist [The Stranger]

At the MoPOP exhibit, I felt I was inside Haring’s vermicular style, which has about it the experience of walking through Manhattan’s packed and winding streets by Charles Mudede

It’s early October, and I’m in what is still the center of my whole world, Manhattan. This is the edge of the East Village. Here is East 14th Street. And there, on Avenue A, I first see a food truck that promises it can “Feed Your Soul.” But something else, something larger, catches my eye. I look up and find a giant mural of the Beastie Boys. The three old school emcees are posing b-boy style with a boombox. 

“Posse in Effect,” by muralist Shepard Fairey, rises eight stories above Avenue A, and is only three blocks from the studio (171-A) where the Beastie Boys made their first record in 1982. Three blocks from this studio is 229 East 11th Street. Here, where presently a psychic and laundry do business, the Fun Gallery opened its doors in 1981. 

See Keith Haring: A Radiant Legacy at MoPOP through March 23, 2025. Nick Elgar/Corbis/Getty Images

It was the first art gallery in the East Village and showed artists like Jean-Michel Basquiat and Keith Haring at their peak. But it also provided a point for hiphop, which featured Black and Brown artists, to intersect with a No Wave music, film, and art scene that was predominately white. The reason why the Beastie Boys switched from the punk music they recorded at 171-A to the hiphop recorded in 1983 for Rat Cage Records, “Cooky Puss,” is precisely this intersection. 

The exhibit currently happening at the Museum of Pop Culture, Keith Haring: A Radiant Legacy, can only be understood in terms of this intersection. Haring, along with Fab Five Freddy, a graffiti artist, and Charlie Ahearn (the director of the greatest hiphop film on record, and a key figure in the formation of the Fun Gallery), participated in The Times Square Show, a 1980 exhibit that brought this intersection to a wider audience. In fact, that show marked the point when Haring left the art school world and entered the art of the streets and underground. Without this transition, his name would mean nothing to us today. 

Haring’s genius extended to the politics of his time: The struggle for LGBTQ rights, the anti-nuclear movement, and AIDS activism. COURTESY OF MOPOP

I visited Keith Haring: A Radiant Legacy the day before my trip to Manhattan. And what struck me immediately was its presentation. After passing the series of subway images, I felt I was inside Haring’s vermicular style, which has about it the experience of walking through Manhattan’s packed and winding streets: One section is devoted to his commercial works; you turn, walk, and find a set of Haring’s personal works; and another walk around leads you to a wall with a warning about the section’s explicit content.

I stopped for a moment before the Icons Suite. It has the famous flying angels, the radiant baby on all fours, and, of course, the barking dog. The last of which recalled in my mind the opening of a cruelly neglected but groundbreaking hiphop track by Man Parrish, “Hip Hop Be Bop (Don’t Stop).” Around the time Haring was drawing barking dogs on black boards that, due to a deep recession, lacked advertisements in New York’s subway system (1982), “Hip Hop Be Bop (Don’t Stop)” dropped, and we heard the sound of Haring’s dog: Barking at night. Barking at empty, dilapidated buildings. Barking at “broken glass everywhere.” 

Walking through the exhibit feels like walking through Manhattan's packed and winding streets. COURTESY OF MOPOP

Haring left Pennsylvania in 1978, not long after briefly studying commercial art at the Ivy School of Professional Art in Pittsburgh, and settled in a city that was drawing white artists who decided to move in the opposite direction of their parents, from the urban to the suburban. This movement was not huge, but it was enough for interesting things to happen. New York City at the time was actually bankrupt and had been famously told to “drop dead” when it pleaded for federal assistance from Gerald Ford. The city, of course, wasn’t broke, but its public servants had powerful unions, and those in power used the city’s deficits to attack these municipal unions. This is what finally plunged the city into a depression that hit the poor like nothing else. Unemployment spiked, and property values collapsed. But that is only a part of the story. 

At the very same time, Manhattan became the center of global capitalism. Its stock market began a supernova-like expansion that is still with us today. And so we have at once the poverty that’s captured in Ahearn’s Wild Style side by side with the boom in the markets we find in Oliver Stone’s Wall Street. It is in this contradiction we find the meaning of the show at MoPOP. It could be called Keith Haring: A Radiant Legacy because the period opened by the devastation of New York City’s working classes was brief: From the mid-’70s to around the time Haring opened his Pop Shop, 1986. The door, as it were, opened almost as quickly as it closed. You had to make it within this period, make it while rent and life in the city were affordable. Gentrification, which closed the contradiction between Wall Street and the streets, was around the corner. A poor Basquiat or poor Haring could not afford to live in the East Village I visited in early October. Back then, you were condemned to move quickly, to make as much art as humanly possible. There was no room for rest. You had to be radiant.

The show captures this intensity. From wall to wall, you sense the hurry, this race to the finish line. And we must associate this urgency not with the fact that Haring’s life was cut short by AIDS (he died in 1990 at the age of 31). Haring was on the move before being diagnosed with HIV in 1988. Even while attending Manhattan’s School of Visual Arts, he was prolific. And the move from academia to the subway only accelerated his production.

Haring at the Art Gallery of NSW, 1984 Stuart William Macgladrie / Fairfax Media via Getty Images

Though A Radiant Legacy is impressive in its size and details concerning the artist’s spectacular rise to stardom and includes a note on Haring’s early but almost completely forgotten collaborator, LA II (Angel Ortiz), it still amounts to a blip of his tremendous output in the subway, in galleries, in magazines, album covers, music videos, on himself, on Grace Jones, and on walls around NYC and the world. But the show does give you a good dose of his genius, which extended to the politics of his time: The struggle for LGBTQ rights, the anti-nuclear movement, AIDS activism, and the anti-Apartheid movement, all of which are represented in Legacy. 

My penultimate favorite part of the show, in fact, is a collection of lithographs in the Social Justice section known as the Free South Africa Suite. Made in 1985, the twilight of the Apartheid that educated Elon Musk, they depict, in Haring’s unmistakable cartoon manner, a small white person struggling with a giant Black person they have on a leash. Eventually, the white person gets stomped by a giant Black foot. And as they bleed on the ground, the leash, which has transformed into a snake, begins eating them. Nelson Mandela was released from prison five days before Haring died. 

The ultimate piece of the show for me, however, turned out to be a thick slice of drywall from Haring’s Pop Shop, which opened in 1986 with the philosophy that art should be for everyone. True, there has been much debate about the affordability of the objects sold in this business, which marked the end of the road for the period that gave us the hyper-creative Manhattan we see in No Wave movies and hear in early Def Jam records. All that’s left of this remarkable time are murals, such as the one I encountered on an upscale East Village building, and exhibits like Legacy. Money ruins everything. 

Keith Haring: A Radiant Legacy is on display at MoPOP through March 23, 2025.

18:21

Twinning [The Stranger]

I first started to notice my BIL in a way that surprised me when we went on a family vacation together. by Dan Savage I might be falling in love with my husband’s identical twin brother. My husband and I have been in a traditional monogamous cishet straight marriage for twelve years. It wasn’t until the last few years that I started catching feelings for my brother-in-law, who is also married. I first started to notice my BIL in a way that surprised me when we went on a family vacation together. He’s just so empathetic, compassionate, and articulate. He also has the same body my husband does (obviously), although my BIL is little fitter. What is really hard to understand is that my feelings for my husband haven’t changed. Do I love them both? Is that possible? Our sex life isn’t suffering. I’ve never been someone who can have orgasms without a vibrator assist, and I’m fine with that. Sometimes though, I find myself thinking about my BIL and feel extremely turned on.…

[ Read more ]

17:35

Slog AM: Seattle City Council Set to Vote on Budget, Bomb Cyclone Hits Pacific Northwest, Judge Pauses Trump's Hush Money Case Sentencing [The Stranger]

The Stranger's morning news round-up. by Ashley Nerbovig

Our weather map looks so scary right now: Good morning and batten down the hatches, we're about to be dealing with a bomb cyclone. The Associated Press said heavy rain and high winds are set to "pummel" Northern California and the Pacific Northwest. While most of the bomb cyclone will pound that sweet spot between Portland and San Francisco, the weather people at the National Weather Service still expect lots of rain and wind today in Western Washington, with some gusts as high as 22 miles per hour. So, you know, stay safe and dry out there. 

Seattle City Council votes on budget, JumpStart today: After an arduous and opaque process, the Council is scheduled to vote on the 2025 budget this afternoon as well as whether to loosen up regulations on where it can spend JumpStart dollars. If you don't know anything about JumpStart, that's okay. Basically, it's a tax on big Seattle businesses meant to be spent on affordable housing. But Mayor Bruce Harrell wants to use it to plug the City's deficit because the tax is so effective. That means taking money originally meant to help people afford to live in this tech-ridden expensive-ass city and spending it, in part, on a bloated cops budget rather than passing another progressive tax such as a capital gains tax. The Seattle Times wrote a good little explainer on it today. Also, follow Hannah today for budget vote stuff. You can now find her on X and BlueSky

FOB Sushi update: Nathalie wrote yesterday about how TikTok food reviewer Keith Lee stopped in at Belltown's FOB Sushi Bar and, during his video review of the restaurant, his sushi twitched. TikTok sleuths and Lee himself accused the restaurant of serving him a piece of Hamachi sushi with a worm in it. FOB Sushi denied this last week, but then this week they closed their Seattle and Bellevue locations, according to KIRO 7

A cop on every crosswalk: The Mayor constantly talks about policing and crime, but according to the Seattle Public Safety Survey, people in Seattle consider stuff such as a car hitting them to be the biggest public safety threat in their lives. Agree? Disagree? Great, take the survey and tell Harrell your thoughts. As KUOW reports, the survey is open until November 30. 

Speaking of traffic and cops: Have I mentioned lately how much I despise carceral urbanists? They're people who act like they're progressive because they support a protected bike lane, but then they also support cops harassing people out of their 15-minute cities. Or, in the latest iteration, they advocate for policing the shit out of people who cover their license plates. A random urbanist from Philadelphia shared his perspective that we could somehow fix the number of people killed by dangerous drivers by impounding all cars with covered license plates. Honestly, everyone should be allowed to cover their license plates—especially when parked—and especially in Seattle with its proliferation of Automatic License Plate Readers. We're now all the subject of mass surveillance in Seattle, a dangerous prospect considering the incoming Trump administration.

Police use automatic license plate readers to track cars (times, locations, etc) Data is pooled into massive, unregulated databases, with these tools disproportionately target Black, Brown, Undocumented communities. https://t.co/Ep1gZILLDt https://t.co/BJwcK42t54

— Dae (@daeshikjr) November 19, 2024

Not All Urbanists: Before too many of you yell about how you're a good urbanist who hates mass incarceration, I know, I know. Don't worry, I love an urbanist who just wants the city to build street cars and improve traffic safety. A recent argument from The Urbanist kind of turned me around on how I feel about Seattle's streetcar system. We actually should have a city line. It would connect South Lake Union to Capitol Hill, something that, as someone who lives on the wrong side of I-5 from Capitol Hill, I would personally really enjoy.

Gaetzgate: Two women told the House Ethics Committee that they witnessed former Florida Representative Matt Gaetz have sex with an underage girl at a party in 2017, according to the lawyer who represented the women. The women also said Gaetz paid them for sex multiple times in multiple locations. Politico reported that numerous Senate Republicans hope Trump chooses someone else to be his Attorney General.

Speaking of being above the law: Trump's sentencing hearing in his hush money case was today, except the judge adjourned the court. The sentencing is paused until further notice. Since sitting presidents cannot be prosecuted, the judge must decide whether to delay sentencing until after his second term or dismiss the case entirely. Man, consequences really slip off this guy like water off a duck's back. 

Trump expected to ramp up deportations immediately: The incoming Trump Administration plans to begin its crackdown on immigrants starting on his first day in office, according to Politico. That means ending parole for people from Cuba, Haiti, Nicaragua and Venezuela, undoing deportation constraints, as well as considering a host of executive actions to block people entering the country. While legal challenges to his actions may be hard to win, considering the 200 federal judges he managed to appoint in his last term, the project still raises serious logistical questions.

Even more alarming: Trump confirmed on Truth Social that he wants to use the military to carry out his sick mass deportation dreams. We don't have many details from the post since all he did was post "TRUE!!!" to a conservative commentator's assertion that Trump would "declare a national emergency and use military assets" to drive the deportations, according to the BBC

That Monsignor espresso: Catholic church officials stripped the priest who let pop start Sabrina Carpenter film her music video for "Feather" at a New York City church, according to The Guardian. The video played a role in the investigation of New York City Mayor Eric Adams earlier this year when an inquiry into Monsignor Jamie Gigantiello's decision allowing Carpenter to film at the church led to the discovery of "unauthorized financial transfers to a former top aide in Eric Adams’s administration," according to the Guardian piece. Just girly things.

And with that, I leave you with the Feather video that, arguably, helped nail Adams on charges of bribery and corruption. 

15:49

Out Today: New Trade Paperback Editions of Old Man’s War and The Ghost Brigades [Whatever]

As you may know, 2025 is the 20th anniversary year of Old Man’s War, and to celebrate, there will be a new installment in the series, which will come out in September of 2025. Before then, however, we’re taking the previous six novels in the series and giving them a new look and feel, including new covers and a new introduction to each book from me.

Today marks the release of the first two books in the series: Old Man’s War and The Ghost Brigades. They look great, if I do say so myself, and in each case the introduction there are some previously unaired nuggets of trivia about the writing of each book, so there’s that to look forward to. The other four novels in the series will be coming out in 2025, culminating, as noted, with a new Old Man’s War series novel in September. So there’s a lot to look forward to. Collect them all!

A reminder also that I am currently doing a thing with Jay and Mary’s, my local bookseller, to sign and personalize books for the holidays, so if you want to get these snazzy new editions complete with my signature in them, for yourself or as a gift for others, here’s the link to do that.

Twenty years. Wow. I’ll have more to say about that on the actual anniversary (which is, as it happens, January 1st). For now, I’ll say: The time went fast.

— JS

15:07

CodeSOD: Recursive Search [The Daily WTF]

Sometimes, there's code so bad you simply know it's unused and never called. Bernard sends us one such method, in Java:

  /**
   * Finds a <code>GroupEntity</code> by group number.
   *
   * @param  group the group number.
   * @return the <code>GroupEntity</code> object.
   */
  public static GroupEntity find(String group) {
    return GroupEntity.find(group);
  }

This is a static method on the GroupEntity class called find, which calls a static method on the GroupEntity class called find, which calls a static method on the GroupEntity class called find and it goes on and on my friend.

Clearly, this is a mistake. Bernard didn't supply much more context, so perhaps the String was supposed to be turned into some other type, and there's an overload which would break the recursion. Regardless, there was an antediluvian ticket on the backlog requesting that the feature to allow finding groups via a search input that no one had yet worked on.

I'm sure they'll get around to it, once the first call finishes.

[Advertisement] Plan Your .NET 9 Migration with Confidence
Your journey to .NET 9 is more than just one decision.Avoid migration migraines with the advice in this free guide. Download Free Guide Now!

Incus 6.7 released [LWN.net]

Version 6.7 of the Incus container-management system (forked from LXD) has been released. "This is another one of those pretty well rounded releases with new features and improvements for everyone". New features include automatic cluster rebalancing, DHCP improvements, and more.

Security updates for Tuesday [LWN.net]

Security updates have been issued by AlmaLinux (.NET 9.0, bcc, bluez, bpftrace, bubblewrap, flatpak, buildah, cockpit, containernetworking-plugins, cups, cyrus-imapd, edk2, expat, firefox, fontforge, gnome-shell, gnome-shell-extensions, grafana, grafana-pcp, gtk3, httpd, iperf3, jose, krb5, libgcrypt, libsoup, libvirt, libvpx, lldpd, microcode_ctl, mingw-glib2, mod_auth_openidc, nano, NetworkManager, oci-seccomp-bpf-hook, openexr, osbuild-composer, pcp, podman, poppler, postfix, python-dns, python-jinja2, python-jwcrypto, python3.11, python3.11-PyMySQL, python3.11-urllib3, python3.12, python3.12-PyMySQL, python3.12-urllib3, python3.9, qemu-kvm, runc, skopeo, squid, thunderbird, toolbox, tpm2-tools, vim, webkit2gtk3, xorg-x11-server, and xorg-x11-server-Xwayland), Fedora (lemonldap-ng and mingw-expat), SUSE (bea-stax, xstream, expat, httpcomponents-client, httpcomponents-core, kernel, SUSE Manager Client Tools, SUSE Manager Proxy, Retail Branch Server 4.3, SUSE Manager Salt Bundle, SUSE Manager Server 4.3, and SUSE Manager Server 5.0), and Ubuntu (curl, glib2.0, and webkit2gtk).

13:49

Project 2015 under the New Management [Charlie's Diary]

Greetings from the New Management! I'm currently up to my elbows in The Regicide Report (coming to you in 2026). In the meantime, I wrote a bundle of world building notes that won't ever make it into a novel because they're far too policy-oriented (translation: deathly boring to normal readers). After all, it's a civil service/politics satire series, and to give it some substance I had to work out what the politics would be.

In particular, I sat down a while ago (before the Labour election victory in May) to work out what the New Management's version of "Project 2025" might look like, except the in-universe dateline is 2015. Here are my notes: make of them what you will, and feel free to contribute your own suggestions.

Democracy and Constitutional Norms: the New Management is all in favour of democracy, regular elections, and allowing rival parties to exist! Just as long as they make the New Management look sane, to encourage the voters to put a big cross in the box next to Nyarlathotep. So, for example, the Scottish Family Party get an approving thumbs-up from the New Management: actual Labour or Conservative politicians who didn't join the New Management, not so much.

Infrastructure: the NM has no great devotion to the neoliberal orthodoxy and hates corruption (read: anything diverting the river of honey flowing towards His Nibs mouth). Priorities are to keep the population intact so they can be farmed for misery as a source of mana. So: less road-building but some pothole repairs (traffic jams cause misery!), HS2 goes ahead (it's a long term railway capacity upgrade, which is an eye-blink to an elder god, making it an obvious win), promoting a shift to EVs and LEZs in cities (respiratory illnesses from fume inhalation damage the physical health of the flock), nationalization of railway firms where it would be sensible, replacement of degrading hospitals and schools, and so on. But no return to building public housing because that would deflate the bottom end of the property market (i.e. reduce gross national misery, or GNM, the preferred metric of the New Management).

Immigration: thanks to the tabloids this is a hot-button topic, but under the New Management nobody sane will want to immgrate to the UK anyway. And meanwhile the TFR of the UK is down around 1.75, contributing to an ageing, shrinking demographic base. So there'll be a mix of tough talk about immigration coupled with discreet encouragement ("asylum seekers to fill British asylums, creating jobs for British psychiatric nurses!") and support for cultural assimilation to Juche Britannia, and pursuit of natalist policies (encouraging large families mostly by promoting them among religious groups that emphasize fecundity, eg. Golden Promise Ministries, once their leadership have been assimilated). "Breed for the glory of the Black Pharaoh" will be one of the slogans of the New Management, with questionable success. (Swift aside: babies' souls are too immature to provide His Dread Majesty with much nutritional value.)

The NHS: Healthy human souls taste better, so having a working healthcare system is a priority to the PM. Student bursaries for nurses and other specialists will be reintroduced and creeping privatization post Jeremy Hunt will be gradually reversed. (Don't ask about social care, though -- dehumanizing nursing homes offer a superb harvest of misery and the PM will be paying close attention to how the cotton-tops are reaped.)

Crime: Despite the appearance of skulls of spikes everywhere, an actual skull on a spike represents an actuarial loss of £5M amortized over a lifetime. Tzompantlis full of your own people's skulls are a huge economic drain. So there will be real skulls on Marble Arch, but most of them will be dummies, 3D-printed models made from extruded slaughterhouse bone meal and plastic to maximize the dreadful impact while keeping costs down. (Per Quantum of Nightmares you need roughly 10% human sacrifice in mechanically reclaimed meat--pink slime--from other sources to create a mincemeat golem.) Other strategies will be pursued to maximize the horiffic impact of each execution/human sacrifice, e.g. motorized robot gibbets in the high street (again, terror and misery is the goal, not necessarily crude slaughter).

Defense: the NM is very introverted, promoting a Hermit Kingdom approach. Expect at least one of the QE class carriers to be mothballed and the Trident replacement program to be kicked down the road. Also expect cuts to the F-35B program and replacement of the AFVs and MBTs, and cuts to the armed forces in general except for the addition of an Alfär Regiment, much along the same lines as the Gurkhas. Who will mostly be kept at arm's length, as far overseas as possible (eg. in Afghanistan).

13:42

Melissa Wen: Display/KMS Meeting at XDC 2024: Detailed Report [Planet Debian]

XDC 2024 in Montreal was another fantastic gathering for the Linux Graphics community. It was again a great time to immerse in the world of graphics development, engage in stimulating conversations, and learn from inspiring developers.

Many Igalia colleagues and I participated in the conference again, delivering multiple talks about our work on the Linux Graphics stack and also organizing the Display/KMS meeting. This blog post is a detailed report on the Display/KMS meeting held during this XDC edition.

Short on Time?

  1. Catch the lightning talk summarizing the meeting here (you can even speed up 2x):
  1. For a quick written summary, scroll down to the TL;DR section.

TL;DR

This meeting took 3 hours and tackled a variety of topics related to DRM/KMS (Linux/DRM Kernel Modesetting):

  • Sharing Drivers Between V4L2 and KMS: Brainstorming solutions for using a single driver for devices used in both camera capture and display pipelines.
  • Real-Time Scheduling: Addressing issues with non-blocking page flips encountering sigkills under real-time scheduling.
  • HDR/Color Management: Agreement on merging the current proposal, with NVIDIA implementing its special cases on VKMS and adding missing parts on top of Harry Wentland’s (AMD) changes.
  • Display Mux: Collaborative design discussions focusing on compositor control and cross-sync considerations.
  • Better Commit Failure Feedback: Exploring ways to equip compositors with more detailed information for failure analysis.

Bringing together Linux display developers in the XDC 2024

While I didn’t present a talk this year, I co-organized a Display/KMS meeting (with Rodrigo Siqueira of AMD) to build upon the momentum from the 2024 Linux Display Next hackfest. The meeting was attended by around 30 people in person and 4 remote participants.

Speakers: Melissa Wen (Igalia) and Rodrigo Siqueira (AMD)

Link: https://indico.freedesktop.org/event/6/contributions/383/

Topics: Similar to the hackfest, the meeting agenda was built over the first two days of the conference and mixed talks follow-up with new ideas and ongoing community efforts.

The final agenda covered five topics in the scheduled order:

  1. How to share drivers between V4L2 and DRM for bridge-like components (new topic);
  2. Real-time Scheduling (problems encountered after the Display Next hackfest);
  3. HDR/Color Management (ofc);
  4. Display Mux (from Display hackfest and XDC 2024 talk, bringing AMD and NVIDIA together);
  5. (Better) Commit Failure Feedback (continuing the last minute topic of the Display Next hackfest).

Unpacking the Topics

Similar to the hackfest, the meeting agenda evolved over the conference. During the 3 hours of meeting, I coordinated the room and discussion rounds, and Rodrigo Siqueira took notes and also contacted key developers to provide a detailed report of the many topics discussed.

From his notes, let’s dive into the key discussions!

How to share drivers between V4L2 and KMS for bridge-like components.

Led by Laurent Pinchart, we delved into the challenge of creating a unified driver for hardware devices (like scalers) that are used in both camera capture pipelines and display pipelines.

  • Problem Statement: How can we design a single kernel driver to handle devices that serve dual purposes in both V4L2 and DRM subsystems?
  • Potential Solutions:
    1. Multiple Compatible Strings: We could assign different compatible strings to the device tree node based on its usage in either the camera or display pipeline. However, this approach might raise concerns from device tree maintainers as it could be seen as a layer violation.
    2. Separate Abstractions: A single driver could expose the device to both DRM and V4L2 through separate abstractions: drm-bridge for DRM and V4L2 subdev for video. While simple, this approach requires maintaining two different abstractions for the same underlying device.
    3. Unified Kernel Abstraction: We could create a new, unified kernel abstraction that combines the best aspects of drm-bridge and V4L2 subdev. This approach offers a more elegant solution but requires significant design effort and potential migration challenges for existing hardware.

Real-Time Scheduling Challenges

We have discussed real-time scheduling during this year Linux Display Next hackfest and, during the XDC 2024, Jonas Adahl brought up issues uncovered while progressing on this front.

  • Context: Non-blocking page-flips can, on rare occasions, take a long time and, for that reason, get a sigkill if the thread doing the atomic commit is a real-time schedule.
  • Action items:
    • Explore alternative backtraces during the busy wait (e.g., ftrace).
    • Investigate the maximum thread time in busy wait to reproduce issues faced by compositors. Tools like RTKit (mutter) can be used for better control (Michel Dänzer can help with this setup).

HDR/Color Management

This is a well-known topic with ongoing effort on all layers of the Linux Display stack and has been discussed online and in-person in conferences and meetings over the last years.

Here’s a breakdown of the key points raised at this meeting:

  • Talk: Color operations for Linux color pipeline on AMD devices: In the previous day, Alex Hung (AMD) presented the implementation of this API on AMD display driver.
  • NVIDIA Integration: While they agree with the overall proposal, NVIDIA needs to add some missing parts. Importantly, they will implement these on top of Harry Wentland’s (AMD) proposal. Their specific requirements will be implemented on VKMS (Virtual Kernel Mode Setting driver) for further discussion. This VKMS implementation can benefit compositor developers by providing insights into NVIDIA’s specific needs.
  • Other vendors: There is a version of the KMS API applied on Intel color pipeline. Apart from that, other vendors appear to be comfortable with the current proposal but lacks the bandwidth to implement it right now.
  • Upstream Patches: The relevant upstream patches were can be found here. [As humorously notes, this series is eagerly awaiting your “Acked-by” (approval)]
  • Compositor Side: The compositor developers have also made significant progress.
    • KDE has already implemented and validated the API through an experimental implementation in Kwin.
    • Gamescope currently uses a driver-specific implementation but has a draft that utilizes the generic version. However, some work is still required to fully transition away from the driver-specific approach. AP: work on porting gamescope to KMS generic API
    • Weston has also begun exploring implementation, and we might see something from them by the end of the year.
  • Kernel and Testing: The kernel API proposal is well-refined and meets the DRM subsystem requirements. Thanks to Harry Wentland effort, we already have the API attached to two hardware vendors and IGT tests, and, thanks to Xaver Hugl, a compositor implementation in place.

Finally, there was a strong sense of agreement that the current proposal for HDR/Color Management is ready to be merged. In simpler terms, everything seems to be working well on the technical side - all signs point to merging and “shipping” the DRM/KMS plane color management API!

Display Mux

During the meeting, Daniel Dadap led a brainstorming session on the design of the display mux switching sequence, in which the compositor would arm the switch via sysfs, then send a modeset to the outgoing driver, followed by a modeset to the incoming driver.

  • Context:
  • Key Considerations:
    • HPD Handling: There was a general consensus that disabling HPD can be part of the sequence for internal panels and we don’t need to focus on it here.
    • Cross-Sync: Ensuring synchronization between the compositor and the drivers is crucial. The compositor should act as the “drm-master” to coordinate the entire sequence, but how can this be ensured?
    • Future-Proofing: The design should not assume the presence of a mux. In future scenarios, direct sharing over DP might be possible.
  • Action points:
    • Sharing DP AUX: Explore the idea of sharing DP AUX and its implications.
    • Backlight: The backlight definition represents a problem in the mux switch context, so we should explore some of the current specs available for that.

Towards Better Commit Failure Feedback

In the last part of the meeting, Xaver Hugl asked for better commit failure feedback.

  • Problem description: Compositors currently face challenges in collecting detailed information from the kernel about commit failures. This lack of granular data hinders their ability to understand and address the root causes of these failures.

To address this issue, we discussed several potential improvements:

  • Direct Kernel Log Access: One idea is to directly load relevant kernel logs into the compositor. This would provide more detailed information about the failure and potentially aid in debugging.
  • Finer-Grained Failure Reporting: We also explored the possibility of separating atomic failures into more specific categories. Not all failures are critical, and understanding the nature of the failure can help compositors take appropriate action.
  • Enhanced Logging: Currently, the dmesg log doesn’t provide enough information for user-space validation. Raising the log level to capture more detailed information during failures could be a viable solution.

By implementing these improvements, we aim to equip compositors with the necessary tools to better understand and resolve commit failures, leading to a more robust and stable display system.

A Big Thank You!

Huge thanks to Rodrigo Siqueira for these detailed meeting notes. Also, Laurent Pinchart, Jonas Adahl, Daniel Dadap, Xaver Hugl, and Harry Wentland for bringing up interesting topics and leading discussions. Finally, thanks to all the participants who enriched the discussions with their experience, ideas, and inputs, especially Alex Goins, Antonino Maniscalco, Austin Shafer, Daniel Stone, Demi Obenour, Jessica Zhang, Joan Torres, Leo Li, Liviu Dudau, Mario Limonciello, Michel Dänzer, Rob Clark, Simon Ser and Teddy Li.

This collaborative effort will undoubtedly contribute to the continued development of the Linux display stack.

Stay tuned for future updates!

13:07

Unbundling the Graph in GraphRAG [Radar]

One popular term encountered in generative AI practice is retrieval-augmented generation (RAG). Reasons for using RAG are clear: large language models (LLMs), which are effectively syntax engines, tend to “hallucinate” by inventing answers from pieces of their training data. The haphazard results may be entertaining, although not quite based in fact. RAG provides a way to “ground” answers within a selected set of content. Also, in place of expensive retraining or fine-tuning for an LLM, this approach allows for quick data updates at low cost. See the primary sources “REALM: Retrieval-Augmented Language Model Pre-Training” by Kelvin Guu, et al., at Google, and “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” by Patrick Lewis, et al., at Facebook—both from 2020.

Here’s a simple rough sketch of RAG:

  1. Start with a collection of documents about a domain.
  2. Split each document into chunks.
  3. Run each chunk of text through an embedding model to compute a vector for it.
  4. Store these chunks in a vector database, indexed by their embedding vectors.

When a question gets asked, run its text through this same embedding model, determine which chunks are nearest neighbors, then present these chunks as a ranked list to the LLM to generate a response. While the overall process may be more complicated in practice, this is the gist.

The various flavors of RAG borrow from recommender systems practices, such as the use of vector databases and embeddings. Large-scale production recommenders, search engines, and other discovery processes also have a long history of leveraging knowledge graphs, such as at Amazon, Alphabet, Microsoft, LinkedIn, eBay, Pinterest, and so on.

What is GraphRAG?

Graph technologies help reveal nonintuitive connections within data. For example, articles about former US Vice President Al Gore might not discuss actor Tommy Lee Jones, although the two were roommates at Harvard and started a country band together. Graphs allow for searches across multiple hops—that is, the ability to explore neighboring concepts recursively—such as identifying links between Gore and Jones.

GraphRAG is a technique that uses graph technologies to enhance RAG, which has become popularized since Q3 2023. While RAG leverages nearest neighbor metrics based on the relative similarity of texts, graphs allow for better recall of less intuitive connections. The names “Tommy Lee Jones” and “Al Gore” may not be embedded as similar text, depending on your training corpus for RAG, but they could be linked through a knowledge graph. See the 2023 article which appears to be the origin of this concept, “NebulaGraph Launches Industry-First Graph RAG: Retrieval-Augmented Generation with LLM Based on Knowledge Graphs,” plus a good recent survey paper, “Graph Retrieval-Augmented Generation: A Survey” by Boci Peng, et al.

That said, the “graph” part of GraphRAG means several different things—which is perhaps one of the more important points here to understand. One way to build a graph to use is to connect each text chunk in the vector store with its neighbors. The “distance” between each pair of neighbors can be interpreted as a probability. When a question prompt arrives, run graph algorithms to traverse this probabilistic graph, then feed a ranked index of the collected chunks to LLM. This is part of how the Microsoft GraphRAG approach works.

Another approach leverages a domain graph of related domain knowledge, where nodes in the graph represent concepts and link to text chunks in the vector store. When a prompt arrives, convert it into a graph query, then take nodes from the query result and feed their string representations along with related chunks to the LLM.

Going a step further, some GraphRAG approaches make use of a lexical graph by parsing the chunks to extract entities and relations from the text, which complements a domain graph. Convert an incoming prompt to a graph query, then use the result set to select chunks for the LLM. Good examples are described in the GraphRAG Manifesto by Philip Rathle at Neo4j.

There are at least two ways to map from a prompt to select nodes in the graph. On the one hand, Neo4j and others generate graph queries. On the other hand, it’s possible to generate a text description for each node in the graph, then run these descriptions through the same embedding model used for the text chunks. This latter approach with node embeddings can be more robust and potentially more efficient.

One more embellishment is to use a graph neural network (GNN) trained on the documents. GNNs sometimes get used to infer nodes and links, identifying the likely “missing” parts of a graph. Researchers at Google claim this method outperforms other GraphRAG approaches while needing less compute resources, by using GNNs to re-rank the most relevant chunks presented to the LLM.

There are a few other uses of the word “graph” in LLM-based applications, and many of these address the controversy about whether LLMs can reason. For example, “Graph of Thoughts” by Maciej Besta, et al., decomposes a complex task into a graph of subtasks, then uses LLMs to answer the subtasks while optimizing for costs across the graph. Other works leverage different forms of graph-based reasoning, for example “Barack’s Wife Hillary: Using Knowledge-Graphs for Fact-Aware Language Modeling” by Robert Logan, et al., uses LLMs to generate a graph of logical propositions. Questions get answered based on logical inference from these extracted facts. One of my recent favorites is “Implementing GraphReader with Neo4j and LangGraph” by Tomaz Bratanic, where GraphRAG mechanisms collect a “notebook” of potential components for composing a response. What’s old becomes new again: Substitute the term “notebook” with “blackboard” and “graph-based agent” with “control shell” to return to the blackboard system architectures for AI from the 1970s–1980s. See the Hearsay-II project, BB1, and lots of papers by Barbara Hayes-Roth and colleagues.

Does GraphRAG improve results?

How much do GraphRAG approaches improve over RAG? Papers quantifying the analysis of lift have been emerging over the past few months. “GRAG: Graph Retrieval-Augmented Generation” by Yuntong Hu, et al., at Emory reported that their graph-based approach “significantly outperforms current state-of-the-art RAG methods while effectively mitigating hallucinations.” To quantify this lift, “TRACE the Evidence: Constructing Knowledge-Grounded Reasoning Chains for Retrieval-Augmented Generation” by Jinyuan Fang, et al., presented the TRACE framework for measuring results, which showed how GraphRAG achieves an average performance improvement of up to 14.03%. Similarly, “Retrieval-Augmented Generation with Knowledge Graphs for Customer Service Question Answering” by Zhentao Xu, et al., reported that GraphRAG in LinkedIn customer service reduced median per-issue resolution time by 28.6%.

However, one problem lingers within the GraphRAG space. The popular open source libraries and most of the vendor solutions promote a general notion that the “graph” in GraphRAG gets generated automatically by an LLM. These don’t make affordances for using preexisting knowledge graphs, which may have been carefully curated by domain experts. In some cases, knowledge graphs must be constructed using ontologies (such as from NIST) as guardrails or for other considerations.

People who work in regulated environments (think: public sector, finance, healthcare, etc.) tend to dislike using an AI application as a “black box” solution, which magically handles work that may need human oversight. Imagine going in front of a judge to seek a warrant and explaining, “Your honor, a LLM collected the evidence, plus or minus a few hallucinations.”

While LLMs can be powerful for summarizing the key points from many documents, they aren’t necessarily the best way to handle many kinds of tasks. “A Latent Space Theory for Emergent Abilities in Large Language Models” by Hui Jiang presents a statistical explanation for emergent LLM abilities, exploring a relationship between ambiguity in a language versus the scale of models and their training data. “Do LLMs Really Adapt to Domains? An Ontology Learning Perspective” by Huu Tan Mai, et al., showed how LLMs do not reason consistently about semantic relationships between concepts, and instead are biased by the framing of their training examples. Overall the recent paper “Hype, Sustainability, and the Price of the Bigger-is-Better Paradigm in AI” by Gaël Varoquaux, Sasha Luccioni, and Meredith Whittaker explores how LLMs show diminishing returns as data and model sizes scale, in contrast to the scaling laws which suggest a “bigger is better” assumption.

One of the root causes for failures in graphs generated by LLMs involves the matter of entity resolution. In other words, how well are the “concepts”—represented by the nodes and edges of a graph—disambiguated within the context of the domain? For example, a mention of “NLP” might refer to natural language processing in one context or neural linguistic programming in another. LLMs are notorious for making these kinds of mistakes when generating graphs. These “misconceptions” accumulate into larger errors as an algorithm traverses the hops across a graph, searching for facts to feed to an LLM. For example, “Bob E. Smith” and “Bob R. Smith” are probably not the same person, even though their names differ by one letter. On the other hand, “al-Hajj Abdullah Qardash”and “Abu ‘Abdullah Qardash Bin Amir” may be the same person, owing to the various conventions of transliterating Arabic names into English.

Entity resolution merges the entities which appear consistently across two or more structured data sources, while preserving evidence decisions. These entities may represent people, organizations, maritime vessels, and so on, and their names, addresses, or other personally identifying information (PII) is used as features for entity resolution. The problem of comparing text features to avoid false positives or false negatives tends to have many difficult edge cases. However, the core value of entity resolution in application areas such as voter registration or passport control is whether the edge cases get handled correctly. When names and addresses have been transliterated from Arabic, Russian, or Mandarin, for instance, the edge cases in entity resolution become even more difficult, since cultural conventions dictate how we must interpret features.

A generalized, unbundled workflow

A more accountable approach to GraphRAG is to unbundle the process of knowledge graph construction, paying special attention to data quality. Start with any required schema or ontology as a basis, and leverage structured data sources to create a “backbone” for organizing the graph, based on entity resolution. Then connect the graph nodes and relations extracted from unstructured data sources, reusing the results of entity resolution to disambiguate terms within the domain context.

A generalized workflow for this unbundled approach is shown below, with a path along the top to ingest structured data plus schema, and a path along the bottom to ingest unstructured data:

The results on the right side are text chunks stored in a vector database, indexed by their embeddings vectors, plus a combined domain graph and lexical graph stored in a graph database. The elements of either store are linked together. By the numbers:

  1. Run entity resolution to identify the entities which occur across multiple structured data sources.
  2. Import your data records into a graph, using any ontology (or taxonomy, controlled vocabularies, schema, etc.) that is required in your use case.
  3. If you already had a curated knowledge graph, then you’re simply accumulating new nodes and relations into it.
  4. Overlay the entity resolution results as nodes and edges connecting the data records, to disambiguate where there might be multiple nodes in a graph for the same logical entity.
  5. Reuse the entity resolution results to customize an entity linker for the domain context of your use case (see below).
  6. Chunk your documents from unstructured data sources, as usual in GraphRAG.
  7. Run the text chunks through NLP parsing, extracting possible entities (noun phrases) using named entity recognition and then an entity linker to connect to previously resolved entities.
  8. Link the extracted entities to their respective text chunks.

This approach suits the needs of enterprise use cases in general, leveraging “smaller” albeit state-of-the-art models and allowing for human feedback at each step, while preserving the evidence used and decisions made along the way. Oddly enough, this can also make updates to the graph simpler to manage.

When a prompt arrives, the GraphRAG application can follow two complementary paths to determine which chunks to present to the LLM. This is shown in the following:

A set of open source tutorials serve as a reference implementation for this approach. Using open data about businesses in the Las Vegas metro area during the pandemic, “Entity Resolved Knowledge Graphs: A Tutorial” explores how to use entity resolution to merge three datasets about PPP loan fraud for constructing a knowledge graph in Neo4j. Clair Sullivan extended this example in “When GraphRAG Goes Bad: A Study in Why You Cannot Afford to Ignore Entity Resolution” using LangChain to produce a chatbot to explore potential fraud cases.

A third tutorial, “How to Construct Knowledge Graphs from Unstructured Data,” shows how to perform the generalized workflow above for extracting entities and relations from unstructured data. This leverages state-of-the-art open models (such as GLiNER for named entity recognition) and popular open source libraries such as spaCy and LanceDB (see the code and slides). Then a fourth tutorial, “Panama Papers Investigation using Entity Resolution and Entity Linking,” by Louis Guitton, uses entity resolution results to customize an entity linker based on spaCy NLP pipelines, and is available as a Python library. This shows how structured and unstructured data sources can be blended within a knowledge graph based on domain context.

Summary

Overall, GraphRAG approaches allow for more sophisticated retrieval patterns than using vector databases alone for RAG—resulting in better LLM results. Early examples of GraphRAG used LLMs to generate graphs automagically, and although we’re working to avoid hallucinations, these automagical parts introduce miscomprehensions.

An unbundled workflow replaces the “magic” with a more accountable process while leveraging state-of-the-art “smaller” models at each step. Entity resolution is a core component, providing means for blending together the structured and unstructured data based on evidence, and observing tricky cultural norms to understand the identifying features in the data.

Let’s revisit the point about RAG borrowing from recommender systems. LLMs only provide one piece of the AI puzzle. For example, they are great for summarization tasks, but LLMs tend to break down where they need to disambiguate carefully among concepts in a specific domain. GraphRAG brings in graph technologies to help make LLM-based applications more robust: conceptual representation, representation learning, graph queries, graph analytics, semantic random walks, and so on. As a result, GraphRAG mixes two bodies of “AI” research: the more symbolic reasoning which knowledge graphs represent and the more statistical approaches of machine learning. Going forward there’s a lot of room for “hybrid AI” approaches that blend the best of both, and GraphRAG is probably just the tip of the iceberg. See the excellent talk “Systems That Learn and Reason” by Frank van Harmelen for more exploration about hybrid AI trends.

This article is based on an early talk, “Understanding Graph RAG: Enhancing LLM Applications Through Knowledge Graphs.” Here are some other recommended resources on this topic:

12:07

Why Italy Sells So Much Spyware [Schneier on Security]

Interesting analysis:

Although much attention is given to sophisticated, zero-click spyware developed by companies like Israel’s NSO Group, the Italian spyware marketplace has been able to operate relatively under the radar by specializing in cheaper tools. According to an Italian Ministry of Justice document, as of December 2022 law enforcement in the country could rent spyware for €150 a day, regardless of which vendor they used, and without the large acquisition costs which would normally be prohibitive.

As a result, thousands of spyware operations have been carried out by Italian authorities in recent years, according to a report from Riccardo Coluccini, a respected Italian journalist who specializes in covering spyware and hacking.

Italian spyware is cheaper and easier to use, which makes it more widely used. And Italian companies have been in this market for a long time.

10:35

Pluralistic: Forcing Google to spin off Chrome (and Android?) (19 Nov 2024) [Pluralistic: Daily links from Cory Doctorow]


Today's links



An early 20th century editorial cartoon depicting the Standard Oil Company an a world-spanning octopus clutching the organs of state - White House, Capitol dome, etc - in its tentacles. It has been altered: to its left, curled within its tentacles, stands an early 20th century cartoon depicting Uncle Sam as a policeman with a billyclub, with a DOJ Antitrust Division crest on his chest. On its right, one of its tentacles clutches an early Google 'I'm Feeling Lucky' button. Its head has been colored in with bands in the colors of the Google logo, surmounted by the Chrome logo. Its eyes have been replaced with the eyes of HAL9000 from Kubrick's '2001: A Space Odyssey.' Nestled in one of its armpits is the Android robot.

Forcing Google to spin off Chrome (and Android?) (permalink)

Last August, a federal judge convicted Google of being "a monopolist" and acting "as one to maintain its monopoly." The judge concluded that key to Google's monopoly was the vast troves of data it collects and analyzes and asked the parties to come up with remedies to address this.

Many trustbusters and Google competitors read this and concluded that Google should be forced to share its click and query data. The technical term for this is "apocalyptically stupid." Releasing Google's click and query data into the wild is a privacy Chernobyl in the waiting. The secrets that we whisper to search engines have the power to destroy us a thousand times over.

Largely theoretical answers like "differential privacy" are promising, but remain theoretical at scale. The first large-scale live-fire exercise for these should not be something as high-stakes as Google's click and query data. If anything, we should delete that data:

https://pluralistic.net/2024/08/07/revealed-preferences/#extinguish-v-improve

The last thing we want to do is use antitrust to democratize surveillance so that everyone can spy as efficiently as Google does. In theory, we could sanitize the click and query data by limiting sharing to queries that were made by multiple, independent users (say, only sharing queries that at least 30 users have made), but it's unlikely that this will do much to improve the performance of rival firms' search engines.

Google only retains 18 months' worth of click and query data, thus once we cut off its capacity to collect more data, whatever advantage it has from surveillance will begin to decay immediately and fall to zero in 18 months.

(However: the 18 months figure is deceptive, and deliberately so. Google may only retain your queries for 18 months, but it is silent on how long it retains the inferences from those queries. It may discard your "how do I get an abortion in my red state" query after a year and a half, but indefinitely retain the "sought an illegal abortion" label it added to your profile. The US desperately needs a federal consumer privacy law!)

https://pluralistic.net/2023/12/06/privacy-first/#but-not-just-privacy

And just to be clear, there's other Google data that would be very useful to rival search engines, like Google's search index – the trove of pages from the internet. Google already licenses this out, and search engines like Kagi use it to produce substantially superior search results:

https://pluralistic.net/2024/04/04/teach-me-how-to-shruggie/#kagi

The DOJ has just filed its proposal for a remedy, and it's a doozy: forcing Google to sell off Chrome, on the basis that both of these are the source of much of Google's data, and no rival search engine is likely to also have a widely used browser:

https://9to5google.com/2024/11/18/us-doj-google-sell-chrome/

This represents something of a compromise position: the DOJ had initially signalled that it would also demand a selloff of Android, and that's been dropped. I think there's a good case for forcing the sale of Android as a source of data, too.

In competition theory, these selloffs are referred to as "structural separation" – when a company that provides infrastructure to other firms is prohibited from competing with those firms:

https://locusmag.com/2022/03/cory-doctorow-vertically-challenged/

For example, it used to be that banks were prohibited from competing with the companies they loaned money to. After all, if you borrow money from Chase to open a pizzeria, and then Chase opens a pizzeria of its own across the street, you can see how your business would be doomed. You have to make interest payments to Chase, and your rival doesn't, and if Chase wants to, it can subsidize that rival so it can sell pizzas below cost until you're out of business.

Likewise, rail companies were banned from owning freight companies, because otherwise they would destroy the businesses of every freight company that shipped on the railroad.

In theory, you could create fair play rules that required the bank or the railroad to play nice with the business customers that used their platforms, but in practice, there are so many ways of cheating that this would be unenforceable.

This principle is well established in all other areas of business, and we recoil in horror when it is violated. You wouldn't hire a lawyer who was also representing the person who's suing you. Judges (with the abominable exception of Supreme Court justices!) are required to recuse themselves when they have a personal connection with either of the parties in a case they preside over.

One of the weirdest sights of the new Gilded Age is when lawyers for monopoly companies argue that they can play fair with their customers despite their conflicts of interest. Think of Google or Meta, with their ad-tech duopoly. These are companies that purport to represent sellers of ads and buyers of ads in marketplaces they own and control, and where they compete with sellers and/or buyers. These companies suck up 51% of the revenue generated by advertising, while historically, the share taken by ad intermediaries was more like 15%!

https://pluralistic.net/2023/05/25/structural-separation/#america-act

Imagine if you and your partner discovered that the same lawyer was representing both of you in the divorce, while also serving as the judge, and trying to match with both of you on Tinder. Now imagine that when the divorce terms were finalized, lawyer got your family home.

No Google lawyer would agree to argue on the company's behalf in a case where the judge was employed by the party that's suing them, but they will blithely argue that the reason they're getting 51% of the ad-rake is that they're providing 51% of the value.

Structural separation – like judicial recusal – comprehensively and unarguably resolves all the perceptions and realities of conflict between parties. The fact that platform owners compete with platform users is the source of bottomless corruption, from Google to Amazon:

https://pluralistic.net/2022/11/28/enshittification/#relentless-payola

In other words, I think the DOJ is onto something here. That said, the devil is – as always – in the details. If Google is forced to sell off Chrome, rather than standing it up as its own competing business, things could go very wrong indeed.

Any company that buys Chrome will know that it only has a certain number of years before Google will be permitted to spin up a new browser, and will be incentivized to extract as much value from Chrome over that short period. So a selloff could make Chrome exponentially worse than Google, which, whatever other failings it has, is oriented towards long-term dominance, not a quick buck.

But if Google is forced to spin Chrome out as a standalone business, the incentives change. Anyone who buys Chrome will have to run it as a functional business that is designed to survive a future Google competitor – they won't have another business they can fall back on if Google bounces back in five years.

There's a good history of this in antitrust breakups: both Standard Oil and AT&T were forced to spin out, rather than sell off, parts of their empire, and those businesses stood alone and provided competitive pressure. That is, until we stopped enforcing antitrust law and allowed them to start merging again – womp womp.

This raises another question: does any of this matter, given this month's election results? Will Trump's DoJ follow through on whatever priorities the current DoJ sets? That's an open question, but – unlike so many other questions about the coming Trump regime – the answer here isn't necessarily a nightmare.

After all, the Google antitrust case started under Trump, and Trump's pick for Attorney General, the credibly accused sexual predator Matt Gaetz, is a "Khanservative" who breaks with his fellow Trumpians in professing great admiration for Biden's FTC chief Lina Khan, and her project of breaking up corporate monopolies:

https://www.thebignewsletter.com/p/trump-nominates-khanservative-matt

What's more, Trump is a landing strip for a stroke or coronary, which would make JD Vance president – and Vance has also expressed his approval of Khan's work.

Google bosses seem to be betting on Trump's "transactional" (that is, corrupt) style of governance, and his willingness to overrule his own appointees to protect the interests of anyone who flatters or bribes him sufficiently, or convinces the hosts of Fox and Friends to speak on their behalf:

https://www.mediamatters.org/donald-trump/comprehensive-review-revolving-door-between-fox-and-second-trump-administration

That would explain why Google capo Sundar Pichai ordered his employees not to speak out against Trump:

https://www.businessinsider.com/google-employees-memes-poke-fun-company-rules-political-discussion-2024-11

And why he followed up by publicly osculating Trump's sphincter:

https://twitter.com/sundarpichai/status/1854207788290850888

(Image: Cryteria, CC BY 3.0, modified)


Hey look at this (permalink)



A Wayback Machine banner.

This day in history (permalink)

#20yrsago WIPO notes from day three: democracy == ignoring dissent https://web.archive.org/web/20041124024604/https://www.eff.org/deeplinks/archives/002130.php#002130

#15yrsago Britain’s new Internet law — as bad as everyone’s been saying, and worse. Much, much worse. https://memex.craphound.com/2009/11/19/britains-new-internet-law-as-bad-as-everyones-been-saying-and-worse-much-much-worse/

#5yrsago DJ Earworm: 100 songhttps://www.tumblr.com/thevaultoftheatomicspaceage/767410440115503104s from the past decade in one mashup https://music.youtube.com/watch?v=UhIte8t6BEg

#5yrsago Leaks reveal how the “Pitbull of PR” helped Purdue Pharma and the Sacklers ignite the opioid crisis https://www.propublica.org/article/inside-purdue-pharma-media-playbook-how-it-planted-the-opioid-anti-story#171238

#5yrsago Beyond the gig economy: “platform co-ops” that run their own apps https://www.vice.com/en/article/worker-owned-apps-are-trying-to-fix-the-gig-economys-exploitation/

#5yrsago Elizabeth Warren’s plan to denazify America https://medium.com/@teamwarren/fighting-back-against-white-nationalist-violence-87b0c550f51f

#5yrsago Youtube told them to use this “royalty-free” music; now rightsholders are forcing ads on their videos and claiming most of the revenue https://torrentfreak.com/royalty-free-music-supplied-by-youtube-results-in-mass-video-demonetization-191118/

#5yrsago The State of South Dakota wants you to know that it’s on meth https://www.washingtonpost.com/health/2019/11/18/meth-were-it-says-south-dakota-new-ad-campaign/

#5yrsago Sand thieves believed to be behind epidemic of Chinese GPS jamming https://www.technologyreview.com/2019/11/15/131940/ghost-ships-crop-circles-and-soft-gold-a-gps-mystery-in-shanghai/

#5yrsago Quiet Rooms: Illinois schools lead the nation in imprisoning very young, disabled children in isolation chambers https://features.propublica.org/illinois-seclusion-rooms/school-students-put-in-isolated-timeouts/#170648

#5yrsago Terabytes of data leaked from an oligarch-friendly offshore bank https://web.archive.org/web/20191117042726/https://data.ddosecrets.com/file/Sherwood/

#5yrsago Naomi Kritzer’s “Catfishing on the CatNet”: an AI caper about the true nature of online friendship https://memex.craphound.com/2019/11/19/naomi-kritzers-catfishing-on-the-catnet-an-ai-caper-about-the-true-nature-of-online-friendship/

#5yrsago Girl on Film: a graphic novel memoir of a life in the arts and the biological basis for memory-formation https://memex.craphound.com/2019/11/19/girl-on-film-a-graphic-novel-memoir-of-a-life-in-the-arts-and-the-biological-basis-for-memory-formation/


Upcoming appearances (permalink)

A photo of me onstage, giving a speech, holding a mic.



A screenshot of me at my desk, doing a livecast.

Recent appearances (permalink)



A grid of my books with Will Stahle covers..

Latest books (permalink)



A cardboard book box with the Macmillan logo.

Upcoming books (permalink)

  • Picks and Shovels: a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books, February 2025
  • Unauthorized Bread: a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2025



Colophon (permalink)

Today's top sources:

Currently writing:

  • Enshittification: a nonfiction book about platform decay for Farrar, Straus, Giroux. Today's progress: 791 words (84962 words total).
  • A Little Brother short story about DIY insulin PLANNING

  • Picks and Shovels, a Martin Hench noir thriller about the heroic era of the PC. FORTHCOMING TOR BOOKS FEB 2025

Latest podcast: Spill, part four (a Little Brother story) https://craphound.com/littlebrother/2024/10/28/spill-part-four-a-little-brother-story/


This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.

https://creativecommons.org/licenses/by/4.0/

Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.


How to get Pluralistic:

Blog (no ads, tracking, or data-collection):

Pluralistic.net

Newsletter (no ads, tracking, or data-collection):

https://pluralistic.net/plura-list

Mastodon (no ads, tracking, or data-collection):

https://mamot.fr/@pluralistic

Medium (no ads, paywalled):

https://doctorow.medium.com/

Twitter (mass-scale, unrestricted, third-party surveillance and advertising):

https://twitter.com/doctorow

Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):

https://mostlysignssomeportents.tumblr.com/tagged/pluralistic

"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla

09:28

“I changed my mind” [Seth's Blog]

Who is “I” and how does that “I” have the power to change the mind in question?

What actually happens is this:

  1. A person cares enough to have experiences
  2. Those experiences change the way that person sees the world
  3. After that, the “I” takes credit for it

If you are brave enough to have your mind changed, experience can do that. But it’s rarely as conscious an intentional act as we give ourselves credit for.

09:00

Organized Bliss by Ripley LaCross [Oh Joy Sex Toy]

Organized Bliss by Ripley LaCross

Hey gang! I don’t know about you, but whenever I’m feeling overwhelmed by all the things out of my control I turn my focus to the things I CAN control. You know, the things that bring me joy! Like my (growing) collection of sex toys! Treating myself to a little storage makeover for my birthday […]

08:14

Why did Windows 95 setup use three operating systems? [OSnews]

Way back in April of this year, I linked to a question and answer about why some parts of the Windows 98 installer looked older than the other parts. It turns out that in between the MS-DOS (the blue part) and Windows 98 parts of the installation process, the installer boots into a small version of Windows 3.1. Raymond Chen posted an article detailing this process for Windows 95, and why, exactly, Microsoft had to resort to splitting the installer between MS-DOS, Windows 3.1, and Windows 95.

The answer is, as always, backwards compatibility. Since Windows 95 could be installed from MS-DOS, Windows 3.1, and Windows 95 (to fix an existing installation), the installer needed to be able to work on all three. The easiest solution would be to write the installer as an MS-DOS program, since that works on all three of these starting points, but that would mean an ugly installer, even though Windows 95 was supposed to be most people’s first experience with a graphical user interface. This is why Microsoft ended up with the tiered installation process – to support all possible starting points in the most graphical way possible.

Chen also mentions another fun fact that is somewhat related to this: the first version of Excel for Windows was shipped with a version of the Windows 2.1 runtime, so that even people without Windows could still run Excel. Even back then, Microsoft took backwards compatibility seriously, and made sure people who hadn’t upgraded from MS-DOS to Windows 2.x yet – meaning, everyone – could still enjoy the spreadsheet lifestyle.

I say we pass some EU law forcing Microsoft to bring this back. The next version of Excel should contain whatever is needed to run it on MS-DOS. Make it happen, Brussels.

02:28

Collective Bargaining [QC RSS]

a co-opolycule

00:49

AlmaLinux 9.5 released [LWN.net]

Version 9.5 of the AlmaLinux enterprise-oriented distribution has been released.

AlmaLinux 9.5 aims to improve performance, development tooling, and security. Updated module streams offer better support for web applications. New versions of compilers provide access to the latest features and optimizations that improve performance and enable better code generation. The release also introduces improvements to system performance monitoring, visualization, and system performance data collecting.

00:28

Dirk Eddelbuettel: RcppArmadillo 14.2.0-1 on CRAN: New Upstream Minor [Planet Debian]

armadillo image

Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has a syntax deliberately close to Matlab, and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 1191 other packages on CRAN, downloaded 37.2 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 603 times according to Google Scholar.

Conrad released a minor version 14.2.0 a few days ago after we spent about two weeks with several runs of reverse-dependency checks covering corner cases. After a short delay at CRAN due to a false positive on a test, a package failing tests we also failed under the previous version, and some concern over new deprecation warnings _whem using the headers directly as _e.g. mlpack R package does we are now on CRAN. I noticed a missing feature under large ‘64bit word’ (for large floating-point matrices) and added an exporter for icube going to double to support the 64-bit integer range (as we already did, of course, for vectors and matrices). Changes since the last CRAN release are summarised below.

Changes in RcppArmadillo version 14.2.0-1 (2024-11-16)

  • Upgraded to Armadillo release 14.2.0 (Smooth Caffeine)

    • Faster handling of symmetric matrices by inv() and rcond()

    • Faster handling of hermitian matrices by inv(), rcond(), cond(), pinv(), rank()

    • Added solve_opts::force_sym option to solve() to force the use of the symmetric solver

    • More efficient handling of compound expressions by solve()

  • Added exporter specialisation for icube for the ARMA_64BIT_WORD case

Courtesy of my CRANberries, there is a diffstat report relative to previous release. More detailed information is on the RcppArmadillo page. Questions, comments etc should go to the rcpp-devel mailing list off the Rcpp R-Forge page.

If you like this or other open-source work I do, you can sponsor me at GitHub.

This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.

DOJ will push Google to sell Chrome to break search monopoly [OSnews]

Speaking of Google, the United States Department of Justice is pushing for Google to sell off Chrome.

Top Justice Department antitrust officials have decided to ask a judge to force Alphabet Inc.’s Google to sell off its Chrome browser in what would be a historic crackdown on one of the biggest tech companies in the world.

The department will ask the judge, who ruled in August that Google illegally monopolized the search market, to require measures related to artificial intelligence and its Android smartphone operating system, according to people familiar with the plans.

↫ Leah Nylen and Josh Sisco

Let’s take a look at the history and current state of independent browsers, shall we? Netscape is obviously dead, Firefox is hanging on by a thread (which is inconspicuously shaped like a giant sack of money from Google), Opera is dead (its shady Chrome skin doesn’t count), Brave is cryptotrash run by a homophobe, and Vivaldi, while an actually good and capable Chrome skin with a ton of fun features, still isn’t profitable, so who knows how long they’ll last. As an independent company, Chrome wouldn’t survive.

It seems the DoJ understands this, too, because they’re clearly using the words “sell off”, which would indicate selling Chrome to someone else instead of just spinning it off into a separate company. But who has both the cash and the interest in buying Chrome, without also being a terrible tech company with terrible business incentives that might make Chrome even more terrible than it already is?

Through Chrome, Google has sucked all the air out of whatever was left of the browser market back when they first announced the browser. An independent Chrome won’t survive, and Chrome in anyone else’s hands might have the potential to be even worse. A final option out of left field would be turning Chrome and Chromium into a truly independent foundation or something, without a profit motive, focused solely on developing the Chromium engine, but that, too, would be easily abused by financial interests.

I think the most likely outcome is one none of us want: absolutely nothing will happen. There’s a new administration coming to Washington, and if the recent proposed picks for government positions are anything to go by, America will be incredibly lucky if they get someone smarter than a disemboweled frog on a stick to run the DoJ. More likely than not, Google’s lawyers will walk all over whatever’s left of the DoJ after 20 January, or Pichai will simply kiss some more gaudy gold rings to make the case go away.

Monday, 18 November

23:42

Google is reportedly killing Chrome OS in favour of Android [OSnews]

Mishaal Rahman, who has a history of being right about Google and Android-related matters, is reporting that Google is intending to standardise its consumer operating system efforts onto a single platform: Android.

To better compete with the iPad as well as manage engineering resources more effectively, Google wants to unify its operating system efforts. Instead of merging Android and Chrome OS into a new operating system like rumors suggested in the past, however, a source told me that Google is instead working on fully migrating Chrome OS over to Android. While we don’t know what this means for the Chrome OS or Chromebook brands, we did hear that Google wants future “Chromebooks” to ship with the Android OS in the future. That’s why I believe that Google’s rumored new Pixel Laptop will run a new version of desktop Android as opposed to the Chrome OS that you’re likely familiar with.

↫ Mishaal Rahman at Android Authority

The fact both Chrome OS and Android exist, and are competing with each other in some segments – most notably tablets – hasn’t done either operating system any favours. I doubt many people even know Chrome OS tablets are a thing, and I doubt many people would say Android tablets are an objectively better choice than an iPad. I personally definitely prefer Android on tablets over iOS on tablets, but I fully recognise that for 95% of tablet buyers, the iPad is the better, and often also more affordable, choice.

Google has been struggling with Android on tablets for about as long as they’ve existed, and now it seems that the company is going to focus all of its efforts on just Android, leaving Chrome OS to slowly be consumed and replaced by it. In June, Google already announced it was going to replace both the kernel and several subsystems in Chrome OS with their Android counterparts, and now they’re also building a new version of Chrome for Android with extensions supports – to match Chrome on Chrome OS – as well as a terminal application for Android that gives access to a local Linux virtual machine, much like is available on Chrome OS.

As mentioned, laptops running Android will also be making an entrance, including a Pixel laptop straight from Google. The next big update for Android 15 contains a ton of new proper windowing features, and there’s more coming: improved keyboard and mouse support, as well as external monitors, virtual desktops, and a lot more. As anyone who has ever attempted to run Android on a desktop or laptop knows, there’s definitely a ton of work Google needs to do to make Android palatable to consumers on that front.

Of course, this being Google, any of these rumours or plans could change at any time without any sense of logic behind it, as managers fulfill their quotas, get promoted, or leave the company.

21:07

FreeBSD Foundation releases Bhyve and Capsicum security audit [LWN.net]

The FreeBSD Foundation has announced the release of a security audit report conducted by security firm Synacktiv. The audit uncovered a number of vulnerabilities:

Most of these vulnerabilities have been addressed through official FreeBSD Project security advisories, which offer detailed information about each vulnerability, its impact, and the measures implemented to improve the security of FreeBSD systems. [...]

The audit uncovered 27 vulnerabilities and issues within various FreeBSD subsystems. 7 issues were not exploitable and were robustness or code quality improvements rather than immediate security concerns.

20:35

iOS 18.1 will reboot iPhones to a locked state after 72 hours of inactivity [OSnews]

In recent weeks, law enforcement in the United States discovered, to their dismay, that iPhones were automatically rebooting themselves after a few days of inactivity, thereby denying them access to the contents of these phones. After a lot of speculation online, Jiska Classen dove into this story to find out what was going on, and through reverse-engineering they discovered that this was a new security feature built by Apple as part of iOS 18.1, to further make stolen iPhones useless for both thieves as well as law enforcement officers.

It’s a rather clever feature. The Secure Enclave Processor inside the iPhone keeps track of when the phone was last unlocked, and if that period exceeds 72 hours, the SEP will inform a kernel module. This kernel module will then, in turn, tell the phone to gracefully reboot, meaning no data is lost in this process. If the phone for whatever reason does not reboot and remains powered on, the module will assume the phone’s been tampered with somehow and kernel-panic. Interestingly, if the reboot takes place properly, an analytics report stating how long the phone was not unlocked will be sent to Apple.

The reason this is such a powerful feature is that a locked iPhone is entirely useless to anyone who doesn’t have the right code or biometrics to unlock it. Everything on the device is encrypted, and only properly unlocking it will decrypt the phone’s contents; in fact, a locked phone can’t even join a Wi-Fi network, because the stored passwords are encrypted (and I’m assuming that a locked phone does not provide access to any methods of joining an open network either). When you have a SIM card without any pincode, the iPhone will connect to the cellular network, but any notifications or calls coming in will effectively be empty, since incoming phone numbers can’t be linked to any of the still-encrypted contacts, and while the phone can tell it’s received notifications, it can’t show you any of their contents.

A thief who’s now holding this phone can’t do much with it if it locks itself like this after a few days, and law enforcement won’t be able to access the phone either. This is a big deal in places where arrests based purely on skin colour or ethnicity or whatever are common, like in the United States (and in Europe too, just to a far lesser degree), or in places where people have to fear the authorities for other reasons, like in totalitarian dictatorships like Russia, China or Iran, where any hint of dissent can end you in harsh prisons.

Apple is always at the forefront with features such as these, with Google and Android drunkenly stumbling into the open door a year later with copies that take ages to propagate through the Android user base. I’m legitimately thankful for Apple raising awareness of the need of features such as these – even if they’re too cowardly to enable them in places like China – as it’s quite clear a lot more people need to start caring about these things, with recent developments and all.

20:28

Concordia [Penny Arcade]

Every crease and fold of the Concord saga is so confusing to me. After the response to the trailer, you'd think there might be a pause to reflect. After the performance of that beta, you'd think that would have pulled a comically large lever of some kind to take a breath. To hear Sony tell it, their process didn't involve "Gates" early enough, rounds of user testing or evaluation. The whole thing seems like it was greenlit by Vibes.

19:49

C.J. Collier: Managing HPE SAS Controllers [Planet Debian]

Notes to self. And anyone else who might find them useful. Following are some ssacli commands which I use infrequently enough that they fall out of cache. This may repeat information in other blogs, but since I search my posts first when commands slip my mind, I thought I’d include them here, too.

hpacucli is the wrong command. Use ssacli instead.

$ KR='/usr/share/keyrings/hpe.gpg'
$ for fingerprint in \
  882F7199B20F94BD7E3E690EFADD8D64B1275EA3 \
  57446EFDE098E5C934B69C7DC208ADDE26C2B797 \
  476DADAC9E647EE27453F2A3B070680A5CE2D476 ; do \
    curl "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x${fingerprint}" \
      | gpg --no-default-keyring --keyring "${KR}" --import ; \
  done
$ gpg --list-keys --no-default-keyring --keyring "${KR}" 
/usr/share/keyrings/hpe.gpg
---------------------------
pub   rsa2048 2012-12-04 [SC] [expired: 2022-12-02]
      476DADAC9E647EE27453F2A3B070680A5CE2D476
uid           [ expired] Hewlett-Packard Company RSA (HP Codesigning Service)

pub   rsa2048 2014-11-19 [SC] [expired: 2024-11-16]
      882F7199B20F94BD7E3E690EFADD8D64B1275EA3
uid           [ expired] Hewlett-Packard Company RSA (HP Codesigning Service) - 1

pub   rsa2048 2015-12-10 [SCEA] [expires: 2025-12-07]
      57446EFDE098E5C934B69C7DC208ADDE26C2B797
uid           [ unknown] Hewlett Packard Enterprise Company RSA-2048-25 
$ echo "deb [signed-by=${KR}] http://downloads.linux.hpe.com/SDR/repo/mcp bookworm/current non-free" \
  | sudo dd of=/etc/apt/sources.list.d status=none
$ sudo apt-get update
$ sudo apt-get install -y -qq ssacli > /dev/null 2>&1
$ sudo ssacli ctrl all show status

HPE Smart Array P408i-p SR Gen10 in Slot 3
   Controller Status: OK
   Cache Status: OK
   Battery/Capacitor Status: OK

$ sudo ssacli ctrl all show detail
HPE Smart Array P408i-p SR Gen10 in Slot 3
   Bus Interface: PCI
   Slot: 3
   Serial Number: PFJHD0ARCCR1QM
   RAID 6 Status: Enabled
   Controller Status: OK
   Hardware Revision: B
   Firmware Version: 2.65
   Firmware Supports Online Firmware Activation: True
   Driver Supports Online Firmware Activation: True
   Rebuild Priority: High
   Expand Priority: Medium
   Surface Scan Delay: 3 secs
   Surface Scan Mode: Idle
   Parallel Surface Scan Supported: Yes
   Current Parallel Surface Scan Count: 1
   Max Parallel Surface Scan Count: 16
   Queue Depth: Automatic
   Monitor and Performance Delay: 60  min
   Elevator Sort: Enabled
   Degraded Performance Optimization: Disabled
   Inconsistency Repair Policy: Disabled
   Write Cache Bypass Threshold Size: 1040 KiB
   Wait for Cache Room: Disabled
   Surface Analysis Inconsistency Notification: Disabled
   Post Prompt Timeout: 15 secs
   Cache Board Present: True
   Cache Status: OK
   Cache Ratio: 10% Read / 90% Write
   Configured Drive Write Cache Policy: Disable
   Unconfigured Drive Write Cache Policy: Default
   Total Cache Size: 2.0
   Total Cache Memory Available: 1.8
   Battery Backed Cache Size: 1.8
   No-Battery Write Cache: Disabled
   SSD Caching RAID5 WriteBack Enabled: True
   SSD Caching Version: 2
   Cache Backup Power Source: Batteries
   Battery/Capacitor Count: 1
   Battery/Capacitor Status: OK
   SATA NCQ Supported: True
   Spare Activation Mode: Activate on physical drive failure (default)
   Controller Temperature (C): 53
   Cache Module Temperature (C): 43
   Capacitor Temperature  (C): 40
   Number of Ports: 2 Internal only
   Encryption: Not Set
   Express Local Encryption: False
   Driver Name: smartpqi
   Driver Version: Linux 2.1.18-045
   PCI Address (Domain:Bus:Device.Function): 0000:11:00.0
   Negotiated PCIe Data Rate: PCIe 3.0 x8 (7880 MB/s)
   Controller Mode: Mixed
   Port Max Phy Rate Limiting Supported: False
   Latency Scheduler Setting: Disabled
   Current Power Mode: MaxPerformance
   Survival Mode: Enabled
   Host Serial Number: 2M20040D1Q
   Sanitize Erase Supported: True
   Sanitize Lock: None
   Sensor ID: 0
      Location: Capacitor
      Current Value (C): 40
      Max Value Since Power On: 42
   Sensor ID: 1
      Location: ASIC
      Current Value (C): 53
      Max Value Since Power On: 55
   Sensor ID: 2
      Location: Unknown
      Current Value (C): 43
      Max Value Since Power On: 45
   Sensor ID: 3
      Location: Cache
      Current Value (C): 43
      Max Value Since Power On: 44
   Primary Boot Volume: None
   Secondary Boot Volume: None

$ sudo ssacli ctrl all show config

HPE Smart Array P408i-p SR Gen10 in Slot 3  (sn: PFJHD0ARCCR1QM)



   Internal Drive Cage at Port 1I, Box 2, OK



   Internal Drive Cage at Port 2I, Box 2, OK


   Port Name: 1I (Mixed)

   Port Name: 2I (Mixed)

   Array A (SAS, Unused Space: 0  MB)

      logicaldrive 1 (1.64 TB, RAID 6, OK)

      physicaldrive 1I:2:1 (port 1I:box 2:bay 1, SAS HDD, 300 GB, OK)
      physicaldrive 1I:2:2 (port 1I:box 2:bay 2, SAS HDD, 1.2 TB, OK)
      physicaldrive 1I:2:3 (port 1I:box 2:bay 3, SAS HDD, 300 GB, OK)
      physicaldrive 1I:2:4 (port 1I:box 2:bay 4, SAS HDD, 1.2 TB, OK)
      physicaldrive 2I:2:5 (port 2I:box 2:bay 5, SAS HDD, 300 GB, OK)
      physicaldrive 2I:2:6 (port 2I:box 2:bay 6, SAS HDD, 300 GB, OK)
      physicaldrive 2I:2:7 (port 2I:box 2:bay 7, SAS HDD, 1.2 TB, OK)
      physicaldrive 2I:2:8 (port 2I:box 2:bay 8, SAS HDD, 1.2 TB, OK)

   SEP (Vendor ID HPE, Model Smart Adapter) 379  (WWID: 51402EC013705E88, Port: Unknown)

$ sudo ssacli ctrl slot=3 pd 2I:2:7 show detail

HPE Smart Array P408i-p SR Gen10 in Slot 3

   Array A

      physicaldrive 2I:2:7
         Port: 2I
         Box: 2
         Bay: 7
         Status: OK
         Drive Type: Data Drive
         Interface Type: SAS
         Size: 1.2 TB
         Drive exposed to OS: False
         Logical/Physical Block Size: 512/512
         Rotational Speed: 10000
         Firmware Revision: U850
         Serial Number: KZGN1BDE
         WWID: 5000CCA01D247239
         Model: HGST    HUC101212CSS600
         Current Temperature (C): 46
         Maximum Temperature (C): 51
         PHY Count: 2
         PHY Transfer Rate: 6.0Gbps, Unknown
         PHY Physical Link Rate: 6.0Gbps, Unknown
         PHY Maximum Link Rate: 6.0Gbps, 6.0Gbps
         Drive Authentication Status: OK
         Carrier Application Version: 11
         Carrier Bootloader Version: 6
         Sanitize Erase Supported: False
         Shingled Magnetic Recording Support: None
         Drive Unique ID: 5000CCA01D247238

19:00

The Top 45 Events in Seattle This Week: Nov 18–24, 2024 [The Stranger]

Julefest, Tinashe, and More by EverOut Staff

We're putting you in the know about all of this week's noteworthy events, with suggestions from Tinashe to An Evening with The Residency, Featuring Macklemore & Special Guests and from Zach Bryan to Julefest: A Nordic Holiday Celebration.

MONDAY LIVE MUSIC

Tinashe - Match My Freak World Tour
Is somebody gonna match her freak!? Before the viral hit "Nasty" spread across TikTok, I knew Tinashe for her 2019 album, Songs For You, which referenced the glossy, futuristic R&B sound of Aaliyah and TLC at least three years before it became the cool thing to do. To this day, I still can't believe that the song "Hopscotch" hasn't completely blown up. The rapidly rising star will stop by to support her latest album, Quantum Baby, alongside like-minded singer-songwriter Raveena. AUDREY VANN
(Showbox SoDo, SoDo)

18:14

The operations for reading and writing single elements for C++ standard library maps [The Old New Thing]

Some time ago, I noted that the std::map subscript operator is an attractive nuisance. It is the most convenient syntax, but is not often what you actually want.

I’ve broken down the various std::map lookup and update operations into a table so you can choose the best one for your situation.

Operation Method
Read, throw if missing m.at(key)
Read, allow missing m.find(key)
Read, create if missing m[key]
Write, nop if exists, discard value m.insert({ key, value })
m.emplace(key, value)
Write, nop if exists m.emplace(std::piecewise_construct, ...)
m.try_emplace(key, params)
Write, overwrite if exists m.insert_or_assign(key, value)

In the table above, key is the map key, value is the mapped type, and params are parameters to the mapped type constructor.

Note that insert and the first emplace¹ take a value which is discarded if it turns out that the key already exists. This is undesirable if creating the value is expensive.

One frustrating scenario is the case where the mapped type’s default constructor is not the constructor you want to use for operator[], or if you want the initial mapped value to be the result of a function call rather than a constructor. Here’s something I sort of threw together.

template<typename Map, typename Key, typename Maker>
auto& ensure(Map&& map, Key&& key, Maker&& maker)
{
    auto lower = map.lower_bound(key);
    if (lower == map.end() || !map.key_comp()(lower->first, key)) {
        lower = map.emplace_hint(lower, std::forward<Key>(key),
                                 std::forward<Maker>(maker)());
    }
    return lower->second;
}

This returns a reference to the mapped value that corresponds to the provided key, creating one if necessary via the maker. We forward the key into emplace_hint so it can be moved.

struct Widget
{
    Widget(std::string name);

    ⟦ ... other stuff ... ⟧
};
std::map<std::string, std::shared_ptr<Widget>> widgets;

auto& ensure_named_widget(std::string const& name)
{
    return ensure(widgets, name,
        [&] { return std::make_shared<Widget>(name); });
}

As a convenience, we can accept bonus parameters which are passed to the maker. This allows you to parameterize the maker.

template<typename Map, typename Key, typename... Maker>
auto& ensure(Map&& map, Key&& key, Maker&&... maker)
{
    auto lower = map.lower_bound(key);
    if (lower == map.end() || map.key_comp()(lower->first, key)) {
        lower = map.emplace_hint(lower, std::forward<Key>(key),
            std::invoke(std::forward<Maker>(maker)...));
    }
    return lower->second;
}

auto& ensure_named_widget(std::string const& name)
{
    return ensure(widgets, name,
        [](auto&& name) { return std::make_shared<Widget>(name); },
        name);
}

// or

auto shared_widget_maker(std::string const& name)
{
    return std::make_shared<Widget>(name);
}

auto& ensure_named_widget(std::string const& name)
{
    return ensure(widgets, name, shared_widget_maker, name);
}

But wait, we learned last time that conversion operators are in play. We can use our EmplaceHelper in conjunction with try_emplace.

template<typename Map, typename Key, typename... Maker>
auto& ensure(Map&& map, Key&& key, Maker&&... maker)
{
    return *map.try_emplace(key, EmplaceHelper([&] {
        return std::invoke(std::forward<Maker>(maker)...);
    }).first;
}

The try_emplace function returns a std::pair of an iterator to the matching item (either pre-existing or freshly-created) and a bool that indicates whether the item is freshly-created. We don’t care about whether the item is freshly-created, so we just take the iterator (the .first) and dereference it to get a reference to the item.

This is simple enough that you might just write it out rather than calling out to a one-liner helper.

auto& item =
    *widgets.try_emplace(name, EmplaceHelper([&] {
        return std::make_shared<Widget>(name); }).first;

// or

auto& item =
    *widgets.try_emplace(name,
        EmplaceHelper(shared_widget_maker, name)).first;

¹ Technically, you can pass the first emplace a second parameter that is used to construct the value, so if your mapped type has a single-parameter constructor, you can use the first emplace to get the same effect as the piecewise constructor: on-demand construction of the mapped type.

The post The operations for reading and writing single elements for C++ standard library maps appeared first on The Old New Thing.

17:42

The Best theHunter: Call of the Wild DLC Maps [Humble Bundle Blog]

theHunter: Call of the Wild brings the excitement of the great outdoors into the comfort of your home with amazing gameplay, deep mechanics, and gorgeous visuals.  Experiencing the sights and sounds of the wilderness through the lens of an expert hunter is something truly special—and developer Avalanche Studios keeps theHunter: Call of the Wild engaging by releasing a steady stream of map expansions and updates.  …

The post The Best theHunter: Call of the Wild DLC Maps appeared first on Humble Bundle Blog.

17:28

Philipp Kern: debian.org now supports Security Key-backed SSH keys [Planet Debian]

debian.org's infrastructure now supports using Security Key-backed SSH keys. DDs (and guests) can use the mail gateway to add SSH keys of the types sk-ecdsa-sha2-nistp256@openssh.com and sk-ssh-ed25519@openssh.com to their LDAP accounts.

This was done in support of hardening our infrastructure: Hopefully we can require these hardware-backed keys for sensitive machines in the future, to have some assertion that it is a human that is connecting to them.

As some of us shell to machines a little too often, I also wrote a small SSH CA that issues short-lived certificates (documentation). It requires the user to login via SSH using an SK-backed key and then issues a certificate that is valid for less than a day. For cases where you need to frequently shell to a machine or to a lot of machines at once that should be a nice compromise of usability vs. security.

The capabilities of various keys differ a lot and it is not always easy to determine what feature set they support. Generally SK-backed keys work with FIDO U2F keys, if you use the ecdsa key type. Resident keys (i.e. keys stored on the token, to be used from multiple devices) require FIDO2-compatible keys. no-touch-required is its own maze, e.g. the flag is not properly restored today when pulling the public key from a resident key. The latter is also one reason for writing my own CA.

SomeoneTM should write up a matrix on what is supported where and how. In the meantime it is probably easiest to generate an ed25519 key - or if that does not work an ecdsa key - and make a backup copy of the resulting on-disk key file. And copy that around to other devices (or OSes) that require access to the key.

Slog AM: Elysian Brewing Leaves Georgetown After Union Attempt, FOB Sushi Bar's TikTok Fiasco, Trump Appointee's White Supremacist Tattoo [The Stranger]

The Stranger's morning news round-up. by Nathalie Graham

What's up, doc? E. coli is what's up. It's in the carrots. Whole and baby carrots farmed by Grimmway Farms are the source of an E. coli outbreak in 18 states. Nationally, 39 people have fallen ill. Of those, 15 have been hospitalized and one has died. In Washington alone, eight people have been infected, five of whom have been hospitalized.  

In local beer news: Elysian Brewing, a Seattle pioneer in the craft beer scene since 1996, permanently closed its Georgetown taproom last week, and its Georgetown production facility will close for good on December 31. This closure comes after 33 workers in the Georgetown facility voted to unionize. Since then, they have not reached a contract deal with their owner, Anheuser-Busch, which purchased the beer company in 2015. Could this signal the end of Seattle-made Elysian beer? Don't panic yet. Elysian's Capitol Hill taproom and (much smaller) brewery will remain open and will receive a $1.7 million investment. With the closure of the much bigger Georgetown facilities, it's unclear how many jobs will be impacted. The Washington Beer Blog reported 90 employees could lose their jobs, while a spokesperson for Elysian claimed all jobs would be safe.

A snowy winter ahead? It's going to be soggy and wet all week. Perhaps that moisture combined with frigid temperatures will spawn moist snowflakes. Perhaps it will remain rain. Regardless, we should be in for a wetter, colder, snowier winter than last year. 

Wouldn’t be surprised if there are some very wet snowflakes in the air tomorrow night near Seattle—on some of the highest hills.

Won’t have any impact, but could be a very brief taste of what’s hopefully a snowy winter ❄️to come!

— Seattle Weather Blog (@KSeattleWeather) November 18, 2024

Deadly shooting in U-District: A 31-year-old man was shot and killed at the 4500 block of Brooklyn Avenue NE in Seattle's University District at around 10 p.m. on Saturday night. Police arrested a 40-year-old suspect. 

FOB Sushi Bar fiasco: TikTok food reviewer Keith Lee stopped in at Belltown's FOB Sushi Bar. His review posted to his 16.5 million followers was fairly positive: Affordable, pretty good sushi, overcooked rice. Then, an eagle-eyed watcher spotted something they thought was off in his video. If you slow it down, she says that while holding a Hamachi sushi roll up to the camera, you can see that something on the fish twitched. The TikToker thinks it was a worm. (Parasites are common in raw fish, and it's generally recommended that you freeze fish for a number of days before eating it, to kill them.) The video went viral. FOB Sushi responded saying the worm rumor was false and that the movement in the video was not a worm. "The movement observed in the fish may result from natural elasticity or the pressure of chopsticks when applied to its structure," Fob Sushi said in a statement.  

Nooooooooo...Keith Lee went to a popular sushi bar in Seattle, FOB Sushi Bar, and there was a worm in the sashimi he was eating! 🤮🤮🤮🤮

🚨🚨WARNING 🚨🚨

Don't watch the video if you're particularly squeamish pic.twitter.com/297SmxWUrH

— 🇰🇭Petty Tendergrass 🇰🇭 (@2nPac) November 15, 2024

Now let's spend some time in cabinet appointment hell: First off, I'm sorry. There's simply too much appointment news, likely by design. Well, let's get into it. Pete Hegseth of the National Guard and Fox News is President-elect Donald Trump's pick for secretary of defense. Fellow National Guard service members reported Hegseth as a possible "Insider Threat" since he has a white supremacist tattoo on his bicep. Hegseth said calling the tattoos symbols of white supremacy is "anti-Christian bigotry." It also came to light that a woman accused Hegseth of sexual assault in 2017. Trump's pick for the Federal Communications Commission is Republican regulator Brendan Carr, who is expected to slash communications regulations, go after Big Tech, and strip TV news networks of their licenses. In Rep. Matt Gaetz news, Speaker of the House Mike Johnson said it would be a breach of protocol to release the House Ethics Committee report that investigated Gaetz for sexual misconduct and illicit drug use, among other transgressions. 

No FBI background checks for these bozos: Trump's picks will not be undergoing standard FBI background checks and instead will outsource background checks to private investigators. The FBI checks for criminal histories as well as conflicts of interest. Trump bypassing that process could make it easy for the Senate to approve his controversial picks. Plus, the disregard for the FBI is in line with Trump's conspiracy that the agency is part of the "deep state" working to undermine him. 

Now, a note from our Managing Editor, Megan Seling: 

With love from one alt-newspaper to another: Bill Freeman, owner of FW Publishing and publisher of Nashville’s alt-weekly the Nashville Scene died Sunday night. The Scene reports: "Bill Freeman — the co-founder of Nashville-based real estate company Freeman Webb, a Democratic Party powerbroker, a former mayoral candidate and the owner of Nashville Scene parent company FW Publishing — has died by suicide at his Green Hills home." Freeman and his business partner Jimmy Webb purchased the suite of publications—the Scene, the Nashville Post, and Nfocus—in 2018. I worked at the Scene for years when I lived in Nashville. What a great group of smart and hilarious weirdos keeping the spirit of the alt-weekly alive. Sending lots of love to all my ScenePost, and Nfocus BFFs.

Thanks, Megan.

Broken Spirit: Spirit Airlines, the US's biggest budget airline, filed for bankruptcy on Monday. 

Pig chase: The Tacoma Police Department had its hands full with a slippery hog when police responded to a call about a loose pig last week. 

This week, our officers assisted with an unusual "suspect"—a loose pig! After some quick thinking (and a bit of a chase), "Notorious P.I.G." was safely captured and is now enjoying a cozy stay at The Rusty Bar Ranch. 🐷 #tacomapd #gritcitycops #NotoriousPIG #rustybarranch pic.twitter.com/vxjxyAIhCy

— Tacoma Police Department (@TacomaPD) November 15, 2024

Bird flu in Oregon human: Oregon reported its first case of bird flu in a human on Friday. The person has connections to a poultry operation in the state where 150,000 birds have the virus. So far, nationwide, there are 52 confirmed cases of bird flu in people. 

Monkey update: Six of the 43 escaped lab monkeys remain at large in South Carolina. Meanwhile, three hours away from where the monkeys escaped, two "feral and not trained" emus named Thelma and Louise are on the lam. 

Alright, that's enough news—see ya! Picture me walking away exactly like this. 

Joe Biden becomes the first sitting US President to visit the Amazon Rainforest.

[image or embed]

— Pop Base (@popbase.tv) November 17, 2024 at 1:52 PM

Oh, wait: Before I truly leave you, here's this: 

16:35

[$] Development statistics for 6.12 [LWN.net]

Linus Torvalds released the 6.12 kernel on November 17, as expected. This development cycle, the last for 2024, brought 13,344 non-merge changesets into the mainline kernel; that made it a relatively slow cycle from this perspective, but 6.12 includes a long list of significant new features. The time has come to look at where those changes came from, and to look at the year-long LTS cycle as well.

Most of 2023’s Top Exploited Vulnerabilities Were Zero-Days [Schneier on Security]

Zero-day vulnerabilities are more commonly used, according to the Five Eyes:

Key Findings

In 2023, malicious cyber actors exploited more zero-day vulnerabilities to compromise enterprise networks compared to 2022, allowing them to conduct cyber operations against higher-priority targets. In 2023, the majority of the most frequently exploited vulnerabilities were initially exploited as a zero-day, which is an increase from 2022, when less than half of the top exploited vulnerabilities were exploited as a zero-day.

Malicious cyber actors continue to have the most success exploiting vulnerabilities within two years after public disclosure of the vulnerability. The utility of these vulnerabilities declines over time as more systems are patched or replaced. Malicious cyber actors find less utility from zero-day exploits when international cybersecurity efforts reduce the lifespan of zero-day vulnerabilities.

15:14

Bluesky feature request [Scripting News]

I posted a feature request on Bluesky that has gotten a lot of flow.

  • Bluesky devs.. How about a compromise. Support inbound RSS. Let me enter the URL of an RSS feed in settings. I'll ping a fixed location when the feed updates. Would allow the same flow to go to other systems. This would help a lot.

Discussion

  • Imagine a Bluesky-like network that you could post to through any blogging tool that can create an RSS feed. Imagine the new tools that could be created. All of a sudden a whole world of writing tools opens up.
  • It should happen faster than the proprietary format that Bluesky defined, because RSS is so well understood in the developer world. Lots of software out there for reading and writing. I have a couple of toolkits of my own, for JavaScript, MIT licensed. In use in deployed software so they work pretty well. (Knock wood.)
  • Also it would create an incentive for competitors to follow suit, and if they do we suddenly have a strong and simple and broadly understood basis for interop. It's a brilliant competitive move, if they really intend to give users choice, to not lock them in. It challenges their competitors to follow suit. I don't doubt that Mastodon would do it. And Threads might even do it if they're feeling competitive with Bluesky. They've already chosen ActivityPub as a basis for interop, but that's been slow to develop. RSS is so simple and well understood it should take a small fraction of the time to adapt.
  • Bluesky has already pioneered in providing excellent outbound RSS support. I helped them do it, a while back, before the huge onslaught of users.
  • The fact that so many users loved the idea is enough to have made it worthwhile to suggest it. But I wouldn't be tremendously surprised if they actually did it.

14:28

Feedback on sez.us sign up [Scripting News]

Why I haven't created an account on sez.us yet.

  • They ask for my first and last name before I sign up. Ask for that info later, after I've created an account. I gave it a fake name to get to the next screen.
  • Then they ask for my phone number. That's when I hit the back button. I already get too much spam on my phone, and the filters aren't good there. I am happy to provide an email address as my identifier as I do on all other systems. Later, if I become a regular user, I don't mind providing the phone number as part of 2-factor identity, but not up front.
  • Also I don't like white on black letters. It's hard for me to read. All the competitive systems use black on white background. Offer it as an option if it's important to you, but please default to black on white.

14:21

Security updates for Monday [LWN.net]

Security updates have been issued by AlmaLinux (binutils, libsoup, squid:4, tigervnc, and webkit2gtk3), Debian (icinga2, postgresql-13, postgresql-15, smarty3, symfony, thunderbird, and waitress), Fedora (dotnet9.0, ghostscript, microcode_ctl, php-bartlett-PHP-CompatInfo, python-waitress, and webkitgtk), Gentoo (Perl, Pillow, and X.Org X server, XWayland), Oracle (binutils, cups-filters, giflib, squid, and webkit2gtk3), Red Hat (webkit2gtk3), SUSE (ansible-core, apache2, gio-branding-upstream, icinga2, kernel-devel, libnghttp2-14, libsoup-2_4-1, libsoup-3_0-0, libvirt, nodejs-electron, postgresql13, postgresql16, python39, rclone, thunderbird, ucode-intel-20241112, and wget), and Ubuntu (python-asyncssh and tomcat9).

13:35

The Big Idea: Alan Smale [Whatever]

When you have the chance to write a sequel, you do it… right? Well, for Alan Smale, the answer was not as straightforward as all that. Come find out why he hesitated at first to write Radiant Sky, and why now he’s glad he did.

ALAN SMALE:

So, to review: Radiant Sky is the sequel to Hot Moon, my alternate-Apollo novel published in 2022. Hot Moon was the book I always wanted to write, my “technothriller with heart,” set entirely on and around the Moon in 1979-80, in a different and very fun past where the US and the Soviets both have precarious bases on the lunar surface and the Space Race is still going strong. Vivian Carter, the commander of Apollo 32, gets herself caught up in the Cold War … in space.

A war that quickly turns hot, when her routine mission to bring a NASA Cargo Container to Columbia Station, an old-school Skylab in lunar orbit, comes under attack from a trio of Soviet Soyuz craft, in the world’s first and clunkiest space battle. Vivian and her crew are forced to abandon their planned follow-on exploratory mission to the volcanic Marius Hills region of the Moon and divert to Hadley Base, where they and the eighteen NASA astronauts already crewing that base will have to MacGyver/improvise weaponry from the raw materials around them to defend themselves against a second Soviet assault, this time on the lunar surface. And … matters go on from there.

As Radiant Sky begins, it’s now 1983, and the superpower confrontation has calmed into an irritable, blustering, and saber-rattling détente much like the one we experienced in our own timeline. By now there are two joint US-Soviet bases on the Moon, and the relevant technology has improved quite a bit. Such improvements are typical of what happened in the real Space Program(s), of course: just look at the increase in our capabilities over the course of Project Gemini, when we learned to spacewalk, rendezvous, and undertake extended spaceflights, though an amazing ten missions between March 1965 and November 1966. Or, look at the massive increase in the capabilities of Apollo 17 over those of Apollo 11 in just three years, plus the marathon exploits of the astronauts on Skylab (which are greatly underrated and under-appreciated, in my humble opinion).

Anyway: as we learn in the first pages of Radiant Sky, Vivian Carter is now commanding LGS-1, Lunar Geological Survey One, which will circumnavigate the Moon by way of both poles. “Carter’s convoy” consists of a MOLAB – Mobile Laboratory, a small silver pressurized truck – plus a Lunar Rover and one of those nifty lunar dirt bikes from the first book, with a crew of six. It’s at the same time a breathtaking journey of exploration, and a hardcore scientific sampling mission.

Which all sounds great, but since Vivian Carter is in the picture, you might guess that things are going to go south figuratively, as well as literally. She is, after all, a trouble magnet.

And sure enough, at the lunar South Pole, LGS-1 comes under attack in the most unexpected of ways. I mean, the US now has the Lunar Accord with the Soviet Union, so … who are these guys, who have set mines in LGS-1’s path, and a guy with a rocket launcher on a nearby ridge, plus what looks very much like an armed Lunokhod Rover coming up behind them? And, can Vivian and her crew survive this desperate encounter?  

I absolutely, honestly, hand on heart, intended Hot Moon to be a standalone. I poured into it all my love for human spaceflight: the US Apollo Program that I grew up with, plus the intriguing details we’ve learned since about the Soviet lunar program, and wrote the best book I possibly could – my love affair to Apollo, in all its retro, dorky goodness. But when Book One got some nice reviews, and blurbs from some Big Names, and I was given the opportunity to write a sequel, I … Well, you know what? I didn’t jump at it. I took a few months to think about it, sketching out possibilities, and making sure this was what I really wanted to do. The ideas started coming faster and faster, and the plot built in my head, and before I knew it I really wanted to write Radiant Sky. I wanted to write it a lot.

Book One is still complete in itself. But when I reread it now, it genuinely feels like I wrote it with the express intention of following up with a second book. So many hooks. So many possibilities for interesting character arcs and fun technologies. A general thickening of the plot, in the dangerous geopolitical situation of the 1980s. Past Alan’s subconscious had apparently been hard at work, planting the seeds and laying the groundwork.

So I got to write another Best Book I could write about Apollo, and Soyuz, and lunar exploration and armed conflict. Getting to play once again with a realistic space program in what I truly believe could have been a realistic and attainable version of the 1980s has been a great thrill.

Radiant Sky is an adventure, a human-based thriller of an Apollo program and a lunar exploration initiative that might have been. For sure, it’s full of derring-do and intrigue and character stuff, but just as in Hot Moon, I stay very close to what could have been attainable with the technology of the day – in fact, most of the technologies I’ve used were already on the drawing board when our Apollo Program ended, or are straightforward extrapolations.

Just about everything in Radiant Sky – good and bad, the small-arms fire and military stuff as well as the cool technological advances that benefit everyone – could have been achieved. Vivian’s Moon is dangerous, and there’s an Earth in the background that is politically messed up, but despite my characters’ various trials and tribulations, both books present a deeply optimistic view of human spaceflight, and of humanity itself. We did great things in space. We could have done more.

And, you know what? We still might, in the next ten years. We could be back on the Moon in my lifetime. Or even setting our sights (and sites) on Mars. Suddenly, we’re once again in an era where nothing seems impossible, where science fiction can become science fact, right in front of our eyes.

Which is a big deal. And, as I’ve said elsewhere: that is really incredibly astonishingly cool.


Radiant Sky: Amazon|Barnes & Noble|Bookshop|Powell’s

Author Socials: Web Site|Bluesky|Facebook|Twitter

12:49

CodeSOD: Objectified [The Daily WTF]

Simon recently found himself working alongside a "very senior" developer- who had a whopping 5 years of experience. This developer was also aggrieved that in recent years, Object Oriented programming had developed a bad reputation. "Functional this, functional that, people really just don't understand how clean and clear objects make your code."

For example, here are a few Java objects which they wrote to power a web scraping tool:

class UrlHolder {

    private String url;

    public UrlHolder(String url) {
        this.url = url;
    }
}

class UrlDownloader {

    private UrlHolder url;
    public String downloadPage;

    public UrlDownLoader(String url) {
        this.url = new UrlHolder(Url);
    }
}

class UrlLinkExtractor {

   private UrlDownloader url;

   public UrlLinkExtractor(UrlDownloader url) {
        this.url = url;
   }

   public String[] extract() {
       String page = Url.downloadPage;
       ...
   }
}

UrlHolder is just a wrapper around string, but also makes that string private and provides no accessors. Anything shoved into an instance of that may as well be thrown into oblivion.

UrlDownloader wraps a UrlHolder, again, as a private member with no accessors. It also has a random public string called downloadPage.

UrlLinkExtractor wraps a UrlDownloader, and at least UrlLinkExtractor has a function- which presumably downloads the page. It uses UrlDownloader#downloadPage- the public string property. It doesn't use the UrlHolder, because of course it couldn't. The entire goal of this code is to pass a string to the extract function.

I guess I don't understand object oriented programming. I thought I did, but after reading this code, I don't.

[Advertisement] Keep all your packages and Docker containers in one place, scan for vulnerabilities, and control who can access different feeds. ProGet installs in minutes and has a powerful free version with a lot of great features that you can upgrade when ready.Learn more.

11:49

Vaccination decreases risk of long Covid [Richard Stallman's Political Notes]

Vaccination substantially decreases the probability that an acute Covid infection leads to long Covid that lasts for a year.

A large fraction of people suffering from long Covid are incapable of working full time, or incapable of working at all. Thus, long Covid harms the national economy as well as the individuals who have it.

Cash payment recognized as necessary [Richard Stallman's Political Notes]

Norway and Sweden have recognized that cash payment is necessary for national security reasons. Sweden plans to urge all residents to keep cash at home and use it regularly.

Hooray!

This is a response to the threat of sabotage and war from Putin. That aggression in waiting is the world's misfortune, and preparing to meet the threat is necessary. We can rejoice that the preparation will provide at least one real benefit to society even if war is avoided.

Productivity losses from mass deportation [Richard Stallman's Political Notes]

*[The wrecker's threatened mass deportation] of migrant workers would trigger productivity losses and a new round of inflationary pricing pressure.*

If he admits a comparable number of authorized migrant workers, that would not have macroeconomic consequences, but he may find it hard to reconcile that decision with the way he has demonized migrants.

If he tries to replace them with US citizen workers who will demand better wages, he is likely to cause inflation, which will make his supporters recognize one of the ways that he duped them.

I am in favor of giving farm workers a better standard of living, but doing this without causing inflation would require taxing the rich to subsidize that raise.

Measures to shift Americans' eating habits toward more healthful food in more healthful quantities could reduce the amount of food we actually need to grow. But they must not be rushed, or imposed harshly.

Two intelligence agents charged [Richard Stallman's Political Notes]

The US has recently charged two intelligence agents with crimes for separately leaking secret intelligence information to the public.

One of them, Asif Rahman, leaked information about Israel's plans for attacking Iran. That attack was to be retaliation for Iran's latest attack, which was retaliation for Israel's previous attack, which was retaliation for Iran's previous attack, and so on.

Imprisoned human rights lawyer on hunger strike [Richard Stallman's Political Notes]

Human rights lawyer Xu Zhiyong, imprisoned since 2020, is now on hunger strike, protesting mistreatment in prison and isolation from his family.

If the wrecker achieves his goals, there are likely to be imprisoned American human rights lawyers on hunger strike too.

Wrecker nominated Matt Gaetz as attorney general [Richard Stallman's Political Notes]

The wrecker nominated Matt Gaetz, a fanatical supporter for whom legal rights count for nothing, to be attorney general. There is talk that Republicans in the Senate will reject him.

If they do so, it would indicate a degree of loyalty to values other than obedience to the wrecker himself. That would be a positive change, if it happens. But I am not confident they can do so, since the wrecker will attack them for it.

The wrecker has shown a pattern of demanding outrageous things from his supporters, and mobilizing the more extreme to bully the rest into endorsing these things. (One of many examples is claiming that the 2020 election was stolen by Democrats.) I think he expects to do the same thing to them over Matt Gaetz.

Robert Reich says this nomination is a test of how loyal Republican senators are to the wrecker personally. "If [the wrecker] can get 51 votes for Gaetz, he can get a Senate majority for anything [he] wants to do."

Any red line Israel will be held to? [Richard Stallman's Political Notes]

*Is there any red line that Israel will be held to? Biden has just confirmed the answer is no.*

No matter how bad things are, they can always get worse. The hater plans to support Israel 200%. Instead of discouraging atrocities ineffectively, he will encourage them.

Guardian to stop posting on ex-Twitter [Richard Stallman's Political Notes]

The Guardian said it will no longer post on ex-Twitter. That sets a good example for everyone who ever posted on Twitter.

Project 2025 chief kicks Guardian reporter out of book event [Richard Stallman's Political Notes]

*"Go to hell": Project 2025 chief kicks Guardian reporter out of book event.*

The author who spewed that hatred may soon have a chance to join the wrecker in spewing hatred on everyone in the US who is not subservient to the latter.

Democrats rally to defeat bill canceling tax exemptions [Richard Stallman's Political Notes]

Democrats in Congress rallied to defeat the bill that would have allowed canceling the tax exemptions of organizations based on accusations with no specifics.

The injustice of that plan is fundamental. Even with a non-fascist president, it would be an intolerable attack in freedom and justice, because it would amount to "guilty of unspecified crimes unless proven innocent."

11:28

Grrl Power #1305 – Save 50% on roller skates [Grrl Power]

Group Hug

 

Is there anything a bossomy hug can’t fix? Well, yes, but that’s no excuse not to keep trying.

I struggled with the layout of this page because I really wanted to include the above group hug panel on it, but I just couldn’t figure out how to fit it all without shrinking other panels to unacceptable levels. So it’s a bonus panel. Still totally canon though.

I don’t know how it works when you have a catastrophic accident and you require surgery and all that. Sure, in civilian life, the hospital would contact family members and presumably you’d probably have someone waiting there for you to wake up, assuming you weren’t in a coma. But in the military, I don’t know if they would assign someone to sit there so you get a SitRep the moment you wake up or not. If it’s a busy day and there’s people rushing around because there was an ambush or something unexpected exploded, they might not have the staff to have someone sitting at your bedside – and I don’t even know how critical it is to do that, but I’d think that if someone is going to wake up missing a limb, finding a way to ease them into that new reality would be preferable.

Realistically, I assume in a military setting, you’d probably have a row of cots where a few people can keep an eye on multiple patients, but Maxima pulled some rank as the commander of a dark and mysterious special ops unit, and got Peggy a private room. She obviously didn’t drop her off at a field hospital. Max flew Peggy back to Camp Bastion, and not some Combat Surgical Hospital, which is a big half-pipe tent. The modern version of a MASH unit.

I would also fully believe that the military would allow Peggy to wake up by herself, and the only explanation for her situation would be a clipboard with Form MF-40156-b, requisition to replace missing boot.

Of course you really only save 50% on footwear if you know someone missing the other leg. And they have the same taste in footwear. And the same size foot. Not for socks, but it wouldn’t help Peggy if she knew a 6′ 3″ dude missing his left foot. Presumably he’d wear something within ±1 of a U.S. 12, and at 5′ 4″, Peggy’s probably rocking a 6 – 8? Plus women have about a million times the shoe options that men do. Most of which are more painful than most men’s shoe options, but still.

I suspect if I was a woman I would have a decent size collection of cool boots. Every time I google women’s boots for Maxima reference, there are a ton of cool and/or sexy results. 90% of which Maxima would never wear, but they make me regret not being a transvestite.

Okay, not really. Is it weird that I think about my “if I was a girl” wardrobe? It just occurred to me one day how different most of my life would be if that 50/50 coin flip that determines our sex came up the other way. Not the broad strokes, of course. Me being a boy or girl wouldn’t affect where my dad moved our family due to his job, or what schools I went to – at least not through high school. But would I have been into sci-fi and fantasy movies, video games and comic books and D&D if I’d been a girl? It’s not impossible, certainly, and I might have appreciated the physique of my He-Man action figure in a different way, but it’s probably a lot less likely. All of my drawing came from wanting to draw my own superheroes and Vallejo/Frazetta/Elmore/Parkinson/Caldwell style pictures. Would this comic exist? I think there’s like a 10% chance. Of maybe it would be called Man Power, and it would feature a bunch of muscular, shirtless dudes with effeminate faces and dazzling cum-gutters. Sydney would still be named Sydney, but he’d be built like an 11 year old boy… Okay, Sydney wouldn’t change much I guess.


The new vote incentive is up!

Dabbler went somewhere tropical, in a very small bikini. As you might guess, it doesn’t stay on for long, which of course, you can see over at Patreon. Also she has an incident with “lotion,” and there’s a bonus comic page as well.

 

 


Double res version will be posted over at Patreon. Feel free to contribute as much as you like.

11:14

Migrating Windows VMs from Proxmox BIOS/KVM to FreeBSD UEFI/Bhyve [OSnews]

Another excellent guide from friend of the website Stefano Marinelli.

A client of mine has several Windows Server VMs, which I had not migrated to FreeBSD/bhyve until a few weeks ago. These VMs were originally installed with the traditional BIOS boot mode, not UEFI, on Proxmox. Fortunately, their virtual disks are on ZFS, which allowed me to test and achieve the final result in just a few steps.

This is because Windows VMs (server or otherwise) often installed on KVM (Proxmox, etc.), especially older ones, are non-UEFI, using the traditional BIOS boot mode. bhyve doesn’t support this setup, but Windows allows changing the boot mode, and I could perform the migration directly on the target FreeBSD server.

↫ Stefano Marinelli

I link to guides like these because finding such detailed guides born out of experience, written by actual humans with actual experience – instead of bots on content farms – is remarkably hard. There’s more than enough similar content like this out there covering Windows or popular Linux distributions like Red Hat, but the BSDs tend to fall a bit short here. As such, promoting people writing such content is something I’ll happily do.

Marinelli also happens to host the Matrix server (as part of his BSD Cafe effort) that houses the OSNews Matrix room, accessible by becoming an OSNews Patreon.

Linux 6.12 released [OSnews]

Version 6.12 of the Linux kernel has been released. The main feature consists of the merger of the real-time PREEMPT_RT scheduler, most likely one of the longest-running merger sagas in Linux’ history. This means that Linux now fully supports both soft and hard real-time capabilities natively, which is a major step forward for the platform, especially when looking at embedded development. It’s now no longer needed to draw in real-time support from outside the kernel.

Linux 6.12 also brings a huge number of improvements for graphics drivers, for both Intel and AMD’s graphics cards. With 6.12, Linux now supports the Intel Xe2 integrated GPU as well as Intel’s upcoming discrete “Battlemage” GPUs by default, and it contains more AMD RDNA4 support for those upcoming GPUs. DRM panics messages in 6.12 will show a QR code you can scan for more information, a feature written in Rust, and initial support for the Raspberry Pi 5 finally hit mainline too.

Of course, there’s a lot more in here, like the usual LoongArch and ARM improvements, new drivers, and so on. and if you’re a regular Linux user you’ll see 6.12 make it to your distribution within a few weeks or months.

10:21

On whining [Seth's Blog]

It’s not just for little kids, and it might not be a bug in our culture. Whining might be a feature, something that all humans have a desire to do, regardless of our age or position.

Let’s define whining as a complaint about a situation that’s not easily addressed, often a situation that’s relatively minor or caused by a mismatch of expectations with reality.

While there are stiff-upper-lip codes in some cultures, it takes a lot of work to create and maintain a society where whining is absent and largely self-regulated.

Some organizations, like the Navy SEALS, build their cohesion on not tolerating whining, while others, like aggrieved sports fans, bask in it.

We evolved to live in community, and whining serves a valuable function. When we’re in distress, whining is a call for connection, a way to tell the others that we need some hope or encouragement.

And whining is relative, not absolute. Any self aware first-class traveler has to know that whining about the lack of warmed cashews on the plane is impossible to justify in a world with so many challenges and so much unevenly distributed distress. And yet, when we create the conditions where whining must be avoided, we create stress, especially those that know they can’t justify their whining.

Whining comes from mismatched expectations, from loneliness and from weakness. Whining is a hard-wired way to ask for connection and empathy.

Naturally, whining has downsides, for the whiner and for those around him.

Whining can create a doom loop, an endless cascade of expectation that keeps us from finding joy and possibility. If we get hooked on the solace that comes from whining (either from others, or from our selves) then we start looking for things to whine about. We will minimize our leverage and agency and opportunities, and sink into victimhood.

And, like the boy who cried wolf, the villagers get tired of hearing it after a while.

Understanding the patterns and benefits of whining creates an opportunity for marketers and anyone doing customer service.

If whining is a plea for connection and compassion, the transactional nature of modern customer service doesn’t do the trick. Whine to the doctor and get a prescription? Well, it might help with the ailment, but the patient might really benefit from sixty seconds of empathy instead.

When the harried customer service rep is given the authority and training to pause for a second and have a conversation, acknowledge the problem and take responsibility, not only does the problem often go away, but the connection that follows is even stronger than it was before the incident.

It’s difficult to have empathy for someone with every advantage who persists in whining, but it might be that their weakness and loneliness can only be effectively addressed with acknowledgement, not scorn. Making that connection opens the door for constructive action.

And when we talk to ourselves, perhaps we can have some grace for our own whining, and at the same time create the conditions and habits to avoid a downward spiral of more of the same. There’s a difference between, “he’s whining,” and “he’s a whiner.” We can do the first and avoid the second.

09:14

Concordia [Penny Arcade]

New Comic: Concordia

09:07

Pluralistic: Harpercollins wants authors to sign away AI training rights (18 Nov 2024) [Pluralistic: Daily links from Cory Doctorow]


Today's links



A bookcase. Rupert Murdoch's grinning head rests between a gap in the books. Centered in his forehead is the glaring red eye of HAL 9000 from Kubrick's '2001: A Space Odyssey.'

Harpercollins wants authors to sign away AI training rights (permalink)

Rights don't give you power. People with power can claim rights. Giving a "right" to someone powerless just transfers it to someone more powerful than them. Nowhere is this more visible than in copyright fights, where creative workers are given new rights that are immediately hoovered up by their bosses.

It's not clear whether copyright gives anyone the right to control whether their work is used to train an AI model. It's very common for people (including high ranking officials in entertainment companies, and practicing lawyers who don't practice IP law) to overestimate their understanding of copyright in general, and their knowledge of fair use in particular.

Here's a hint: any time someone says "X can never be fair use," they are wrong and don't know what they're talking about (same goes for "X is always fair use"). Likewise, anyone who says, "Fair use is assessed solely by considering the 'four factors.'" That is your iron-clad sign that the speaker does not understand fair use:

https://pluralistic.net/2024/06/27/nuke-first/#ask-questions-never

But let's say for the sake of argument that training a model on someone's work is a copyright violation, and so training is a licensable activity, and AI companies must get permission from rightsholders before they use their copyrighted works to train a model.

Even if that's not how copyright works today, it's how things could work. No one came down off a mountain with two stone tablets bearing the text of 17 USC chiseled in very, very tiny writing. We totally overhauled copyright in 1976, and again in 1998. There've been several smaller alterations since.

We could easily write a new law that requires licensing for AI training, and it's not hard to imagine that happening, given the current confluence of interests among creative workers (who are worried about AI pitchmen's proclaimed intention to destroy their livelihoods) and entertainment companies (who are suing many AI companies).

Creative workers are an essential element of that coalition. Without those workers as moral standard-bearers, it's hard to imagine the cause getting much traction. No one seriously believes that entertainment execs like Warner CEO David Zaslav actually cares about creative works – this is a guy who happily deletes every copy of an unreleased major film that had superb early notices because it would be worth infinitesimally more as a tax-break than as a work of art:

https://collider.com/coyote-vs-acme-david-zaslav-never-seen/

The activists in this coalition commonly call it "anti AI." But is it? Does David Zaslav – or any of the entertainment execs who are suing AI companies – want to prevent gen AI models from being used in the production of their products? No way – these guys love AI. Zaslav and his fellow movie execs held out against screenwriters demanding control over AI in the writers' room for 148 days, and locked out their actors for another 118 days over the use of AI to replace actors. Studio execs forfeited at least $5 billion in a bid to insist on their right to use AI against workers:

https://sites.lsa.umich.edu/mje/2023/12/06/a-deep-dive-into-the-economic-ripples-of-the-hollywood-strike/

Entertainment businesses love the idea of replacing their workers with AI. Now, that doesn't mean that AI can replace workers: just because your boss can be sold an AI to do your job, it doesn't mean that the AI he buys can actually do your job:

https://pluralistic.net/2024/07/25/accountability-sinks/#work-harder-not-smarter

So if we get the right to refuse to allow our work to be used to train a model, the "anti AI" coalition will fracture. Workers will (broadly) want to exercise that right to prevent AI models from being trained at all, while our bosses will want to exercise that right to be sure that they're paid for AI training, and that they can steer production of the resulting model to maximize the number of workers they can fire after it's done.

Hypothetically, creative workers could simply say to our bosses, "We will not sell you this right to authorize or refuse AI training that Congress just gave us." But our bosses will then say, "Fine, you're fired. We won't hire you for this movie, or record your album, or publish your book."

Given that there are only five major publishers, four major studios, three major labels, two ad-tech companies and one company that controls the whole ebook and audiobook market, a refusal to deal on the part of a small handful of firms effectively dooms you to obscurity.

As Rebecca Giblin and I write in our 2022 book Chokepoint Capitalism, giving more rights to a creative worker who has no bargaining power is like giving your bullied schoolkid more lunch money. No matter how much lunch money you give that kid, the bullies will take it and your kid will remain hungry. To get your kid lunch, you have to clear the bullies away from the gate. You need to make a structural change:

https://chokepointcapitalism.com/

Or, put another way: people with power can claim rights. But giving powerless people more rights doesn't make them powerful – it just transfers those rights to the people they bargain against.

Or, put a third way: "just because you're on their side, it doesn't follow that they're on your side" (h/t Teresa Nielsen Hayden):

https://pluralistic.net/2024/10/19/gander-sauce/#just-because-youre-on-their-side-it-doesnt-mean-theyre-on-your-side

Last month, Penguin Random House, the largest publisher in the history of human civilization, started including a copyright notice in its books advising all comers that they would not permit AI training with the material between the covers:

https://pluralistic.net/2024/10/19/gander-sauce/#just-because-youre-on-their-side-it-doesnt-mean-theyre-on-your-side

At the time, people who don't like AI were very excited about this, even though it was – at the utmost – a purely theatrical gesture. After all, if AI training isn't fair use, then you don't need a notice to turn it into a copyright infringement. If AI training is fair use, it remains fair use even if you add some text to the copyright notice.

But far more important was the fact that the less that Penguin Random House pays its authors, the more it can pay its shareholders and executives. PRH didn't say it wouldn't sell the right to train a model to an AI company – they only said that an AI company that wanted to train a model on its books would have to pay PRH first. In other words, just because you're on their side, it doesn't follow that they're on your side.

When I wrote about PRH and its AI warning, I mentioned that I had personally seen one of the big five publishers hold up a book because a creator demanded a clause in their contract saying their work wouldn't be used to train an AI.

There's a good reason you'd want this in your contract; the standard contracting language contains bizarrely overreaching language seeking "rights in all media now known and yet to be devised throughout the universe":

https://pluralistic.net/2022/06/19/reasonable-agreement/

But the publisher flat-out refused, and the creator fought and fought, and in the end, it became clear that this was a take-it-or-leave-it situation: the publisher would not include a "no AI training" clause in the contract.

One of the big five publishers is Rupert Murdoch's Harpercollins. Murdoch is famously of the opinion that any kind of indexing or archiving of the work he publishes must require a license. He even demanded to be paid to have his newspapers indexed by search engines:

https://www.inquisitr.com/46786/epic-win-news-corp-likely-to-remove-content-from-google

No surprise, then, that Murdoch sued an AI company over training on Newscorp content:

https://www.theguardian.com/technology/2024/oct/25/unjust-threat-murdoch-and-artists-align-in-fight-over-ai-content-scraping

But Rupert Murdoch doesn't oppose the material he publishes from being used in AI training, nor is he opposed to the creation and use of models. Murdoch's Harpercollins is now pressuring its authors to sign away their rights to have their works used to train an AI model:

https://bsky.app/profile/kibblesmith.com/post/3laz4ryav3k2w

The deal is not negotiable, and the email demanding that authors opt into it warns that AI might make writers obsolete (remember, even if AI can't do your job, an AI salesman can convince Rupert Murdoch – who is insatiably horny for not paying writers – that an AI is capable of doing your job):

https://www.avclub.com/harpercollins-selling-books-to-ai-language-training

And it's not hard to see why an AI company might want this; after all, if they can lock in an exclusive deal to train a model on Harpercollins' back catalog, their products will exclusively enjoy whatever advantage is to be had in that corpus.

In just a month, we've gone from "publishers won't promise not to train a model on your work" to "publishers are letting an AI company train a model on your work, but will pay you a nonnegotiable pittance for your work." The next step is likely to be, "publishers require you to sign away the right to train a model on your work."

The right to decide who can train a model on your work does you no good unless it comes with the power to exercise that right.

Rather than campaigning for the right to decide who can train a model on our work, we should be campaigning for the power to decide what terms we contract under. The Writers Guild spent 148 days on the picket line, a remarkable show of solidarity.

But the Guild's real achievement was in securing the right to unionize at all – to create a sectoral bargaining unit that could represent all the writers, writing for all the studios. The achievements of our labor forebears, in the teeth of ruthless armed resistance, resulted in the legalization and formalization of unions. Never forget that the unions that exist today were criminal enterprises once upon a time, and the only reason they exist is because people risked prison, violence and murder to organize when doing so was a crime:

https://pluralistic.net/2024/11/11/rip-jane-mcalevey/#organize

The fights were worth fighting. The screenwriters comprehensively won the right to control AI in the writers' room, because they had power:

https://pluralistic.net/2023/10/01/how-the-writers-guild-sunk-ais-ship/

(Image: Cryteria, CC BY 3.0; Eva Rinaldi, CC BY-SA 2.0; modified)


Hey look at this (permalink)



A Wayback Machine banner.

This day in history (permalink)

#20yrsago The Grey Video https://random.waxy.org/video/grey_video.mov

#20yrsago Canada’s DMCA: why is it a bad idea? https://web.archive.org/web/20050428093632/http://www.digital-copyright.ca/files/The_Truth__Final__clean__Nov_16_04_DAF.html

#20yrsago Internet Archive pages are admissable into evidence https://web.archive.org/web/20041120050733/https://cyberlaw.stanford.edu/packets/vol_2_no_3/002728.shtml/

#15yrsago Demonstrating TSA futility by stabbing dead pigs with pens https://pubmed.ncbi.nlm.nih.gov/17325460/

#15yrsago Chumby One: handsome successor to the cutest computer ever https://www.bunniestudios.com/blog/2009/chumby-one

#15yrsago EFF analyzes the legal creepiness of ACTA, the secret copyright treaty https://www.eff.org/deeplinks/2009/11/stopping-acta-juggernaut

#15yrsago Maricopa deputy steals defender’s paperwork during a court case http://www.heatcity.org/2009/11/judge-orders-officer-to-apologize-or-face-jail-for-taking-attorneys-file.html

#15yrsago SFPD cops from imaginary anti-dance-party squad steal laptops https://web.archive.org/web/20091120193839/https://www.sfweekly.com/2009-11-18/music/s-f-cops-may-have-gone-too-far-in-seizing-dj-gear-at-underground-parties/

#15yrsago David Moles’s “Down and Out in the Magic Kingdom” https://chrononaut.org/fiction/down-and-out-in-the-magic-kingdom/

#15yrsago Apple patents anti-user attention-complianceware https://www.nytimes.com/2009/11/15/business/15digi.html

#15yrsago Struts & Frets: an indie-rock YA novel with heart and authenticity https://memex.craphound.com/2009/11/15/struts-frets-an-indie-rock-ya-novel-with-heart-and-authenticity/

#15yrsago UN goons destroy academic poster describing China’s censorwall https://web.archive.org/web/20091118143608/http://news.idg.no/cw/art.cfm

#15yrsago Viacom’s top lawyer thinks lawsuits were “terrorism” – but he’s learned nothing from the experience https://memex.craphound.com/2009/11/17/viacoms-top-lawyer-thinks-lawsuits-were-terrorism-but-hes-learned-nothing-from-the-experience/

#10yrsago London council threatens freedom of information site for “leaking” info they say doesn’t exist https://www.mysociety.org/2014/11/17/can-you-leak-a-decision-that-has-not-yet-been-made/

#10yrsago What “the worst ride in Disney World” teaches us about media strategy https://passport2dreams.blogspot.com/2014/11/stitchs-great-escape-ten-years.html

#10yrsago Rudy Rucker and Terry Bisson’s “Where the Lost Things Are” https://reactormag.com/where-the-lost-things-are-rudy-rucker-terry-bisson/

#10yrsago Mesmerizing rebuild of a mechanical Fourier calculator https://www.youtube.com/playlist?list=PL0INsTTU1k2UYO9Mck-i5HNqGNW5AeEwq

#10yrsago Rightscorp is running out of money https://torrentfreak.com/anti-piracy-firm-rightscorp-on-the-brink-of-bankruptcy-141114/

#10yrsago Spain’s top piracy-fighter goes to jail for embezzling $50K to spend in brothels https://torrentfreak.com/anti-piracy-boss-spent-50k-in-brothels-to-protect-copyright-141114/

#10yrsago EFF makes DoJ admit it lied in court about FBI secret warrants https://web.archive.org/web/20141115172425/http://www.nationaljournal.com/tech/justice-department-admits-it-misled-court-about-fbi-s-secret-surveillance-program-20141113

#10yrsago 1,000-room palace for Turkey’s President Erdogan will cost twice initial $615M pricetag https://www.bbc.co.uk/news/world-europe-30061107

#10yrsago Director Lexi Alexander explains why she sides with pirates https://torrentfreak.com/why-hollywood-director-lexi-alexander-sides-with-pirates-141118/

#10yrsago Bumfights creator accused of stealing remains of dead children from Thai hospital museum https://www.bangkokpost.com/thailand/general/443837/body-parts-in-dhl-packages-stolen-from-siriraj-museum-hospital-says

#10yrsago New sf story: “Huxleyed into the Full Orwell” https://www.vice.com/en/article/huxleyed-into-the-full-cory-orwell-cory-doctorow/

#10yrsago Whatsapp integrates Moxie Marlinspike’s Textsecure end-to-end crypto https://www.wired.com/2014/11/whatsapp-encrypted-messaging/

#5yrsago Podcast: Jeannette Ng Was Right, John W. Campbell Was a Fascist https://ia803108.us.archive.org/19/items/Cory_Doctorow_Podcast_315/Cory_Doctorow_Podcast_315_-_Jeannette_Ng_Was_Right_John_W_Campbell_Was_a_Fascist.mp3

#5yrsago Coop’s tribute to Randotti Skulls, from the golden age of Haunted Mansion merchandise https://memex.craphound.com/2019/11/18/coops-tribute-to-randotti-skulls-from-the-golden-age-of-haunted-mansion-merchandise/

#5yrsago Beyond antitrust: the anti-monopoly movement and what it stands for https://onezero.medium.com/the-utah-statement-reviving-antimonopoly-traditions-for-the-era-of-big-tech-e6be198012d7

#5yrsago Massive leak of Chinese government documents reveal the “no mercy” plan for Muslims in Xinjiang https://www.nytimes.com/interactive/2019/11/16/world/asia/china-xinjiang-documents.html

#5yrsago 900 pages of leaked Iranian spy cables reveal how America’s failures after invasions allowed Iran to seize control of Iraqi politics https://theintercept.com/2019/11/18/iran-iraq-spy-cables/

#5yrsago Majority of Americans know they’re under constant surveillance, don’t trust the companies doing it, and feel helpless to stop it https://www.pewresearch.org/internet/2019/11/15/americans-and-privacy-concerned-confused-and-feeling-lack-of-control-over-their-personal-information/

#5yrsago Supercut of British voters insulting Boris Johnson on the campaign trail https://twitter.com/TheIDSmiths/status/1194954125772853248

#5yrsago Thanks to an article about why science fiction great John M Ford’s books are out of print, they’re coming back https://slate.com/culture/2019/11/john-ford-science-fiction-fantasy-books.html

#5yrsago Many Chinese manufacturers are behaving as though they have no future https://web.archive.org/web/20191114152903/https://www.chinalawblog.com/2019/11/how-to-conduct-business-with-chinese-companies-that-see-a-dark-future.html

#5yrsago Why are we still treating economics as if it were an empirical science that makes reliable predictions? https://www.nybooks.com/articles/2019/12/05/against-economics/

#5yrsago Uber pretended its drivers were contractors, and now it owes New Jersey $650m in employment tax https://news.bloomberglaw.com/daily-labor-report/uber-hit-with-650-million-employment-tax-bill-in-new-jersey

#5yrsago Labour pledges universal broadband and nationwide fibre, will renationalise the farcical, terrible BT Openreach https://www.bbc.com/news/election-2019-50427369

#5yrsago “Hope literacy,” “functional denial” and other ways to keep going in this difficult time https://www.earthisland.org/journal/index.php/articles/entry/despairing-about-climate-crisis

#5yrsago Hong Kong protesters’ little stonehenges impede police cars https://twitter.com/rhokilpatrick/status/1195350548062654465

#5yrsago Extinction Rebellion floats a drowned house down the Thames https://extinctionrebellion.uk/2019/11/10/act-now-our-house-is-flooding/

#5yrsago After workers tried to form a union, trans rights group ditches most of its staff https://npeu.org/news/2019/11/15/nonprofit-professional-employees-union-files-unfair-labor-practice-against-national-center-for-transgender-equality-leadership-for-retaliation-against-staff-organizing

#1yrago Red-teaming the SCOTUS code of conduct https://pluralistic.net/2023/11/17/red-team-black-robes/#security-theater

#1yrago Big Train managers earn bonuses for greenlighting unsafe cars https://pluralistic.net/2023/11/15/safety-third/#all-the-livelong-day


Upcoming appearances (permalink)

A photo of me onstage, giving a speech, holding a mic.



A screenshot of me at my desk, doing a livecast.

Recent appearances (permalink)



A grid of my books with Will Stahle covers..

Latest books (permalink)



A cardboard book box with the Macmillan logo.

Upcoming books (permalink)

  • Picks and Shovels: a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books, February 2025
  • Unauthorized Bread: a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2025



Colophon (permalink)

Today's top sources:

Currently writing:

  • Enshittification: a nonfiction book about platform decay for Farrar, Straus, Giroux. Friday's progress: 786 words (83404 words total).
  • A Little Brother short story about DIY insulin PLANNING

  • Picks and Shovels, a Martin Hench noir thriller about the heroic era of the PC. FORTHCOMING TOR BOOKS FEB 2025

Latest podcast: Spill, part four (a Little Brother story) https://craphound.com/littlebrother/2024/10/28/spill-part-four-a-little-brother-story/


This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.

https://creativecommons.org/licenses/by/4.0/

Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.


How to get Pluralistic:

Blog (no ads, tracking, or data-collection):

Pluralistic.net

Newsletter (no ads, tracking, or data-collection):

https://pluralistic.net/plura-list

Mastodon (no ads, tracking, or data-collection):

https://mamot.fr/@pluralistic

Medium (no ads, paywalled):

https://doctorow.medium.com/

Twitter (mass-scale, unrestricted, third-party surveillance and advertising):

https://twitter.com/doctorow

Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):

https://mostlysignssomeportents.tumblr.com/tagged/pluralistic

"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla

08:07

06:35

Girl Genius for Monday, November 18, 2024 [Girl Genius]

The Girl Genius comic for Monday, November 18, 2024 has been posted.

05:00

Russ Allbery: Review: Delilah Green Doesn't Care [Planet Debian]

Review: Delilah Green Doesn't Care, by Ashley Herring Blake

Series: Bright Falls #1
Publisher: Jove
Copyright: February 2022
ISBN: 0-593-33641-0
Format: Kindle
Pages: 374

Delilah Green Doesn't Care is a sapphic romance novel. It's the first of a trilogy, although in the normal romance series fashion each book follows a different protagonist and has its own happy ending. It is apparently classified as romantic comedy, which did not occur to me while reading but which I suppose I can see in retrospect.

Delilah Green got the hell out of Bright Falls as soon as she could and tried not to look back. After her father died, her step-mother lavished all of her perfectionist attention on her overachiever step-sister, leaving Delilah feeling like an unwanted ghost. She escaped to New York where there was space for a queer woman with an acerbic personality and a burgeoning career in photography. Her estranged step-sister's upcoming wedding was not a good enough reason to return to the stifling small town of her childhood. The pay for photographing the wedding was, since it amounted to three months of rent and trying to sell photographs in galleries was not exactly a steady living. So back to Bright Falls Delilah goes.

Claire never left Bright Falls. She got pregnant young and ended up with a different life than she expected, although not a bad one. Now she's raising her daughter as a single mom, running the town bookstore, and dealing with her unreliable ex. She and Iris are Astrid Parker's best friends and have been since fifth grade, which means she wants to be happy for Astrid's upcoming wedding. There's only one problem: the groom. He's a controlling, boorish ass, but worse, Astrid seems to turn into a different person around him. Someone Claire doesn't like.

Then, to make life even more complicated, Claire tries to pick up Astrid's estranged step-sister in Bright Falls's bar without recognizing her.

I have a lot of things to say about this novel, but here's the core of my review: I started this book at 4pm on a Saturday because I hadn't read anything so far that day and wanted to at least start a book. I finished it at 11pm, having blown off everything else I had intended to do that evening, completely unable to put it down.

It turns out there is a specific type of romance novel protagonist that I absolutely adore: the sarcastic, confident, no-bullshit character who is willing to pick the fights and say the things that the other overly polite and anxious characters aren't able to get out. Astrid does not react well to criticism, for reasons that are far more complicated than it may first appear, and Claire and Iris have been dancing around the obvious problems with her surprise engagement. As the title says, Delilah thinks she doesn't care: she's here to do a job and get out, and maybe she'll get to tweak her annoying step-sister a bit in the process. But that also means that she is unwilling to play along with Astrid's obsessively controlling mother or her obnoxious fiance, and thus, to the barely disguised glee of Claire and Iris, is a direct threat to the tidy life that Astrid's mother is trying to shoehorn her daughter into.

This book is a great example of why I prefer sapphic romances: I think this character setup would not work, at least for me, in a heterosexual romance. Delilah's role only works if she's a woman; if a male character were the sarcastic conversational bulldozer, it would be almost impossible to avoid falling into the gender stereotype of a male rescuer. If this were a heterosexual romance trying to avoid that trap, the long-time friend who doesn't know how to directly confront Astrid would have to be the male protagonist. That could work, but it would be a tricky book to write without turning it into a story focused primarily on the subversion of gender roles. Making both protagonists women dodges the problem entirely and gives them so much narrative and conceptual space to simply be themselves, rather than characters obscured by the shadows of societal gender rules.

This is also, at it's core, a book about friendship. Claire, Astrid, and Iris have the sort of close-knit friend group that looks exclusive and unapproachable from the outside. Delilah was the stereotypical outsider, mocked and excluded when they thought of her at all. This, at least, is how the dynamics look at the start of the book, but Blake did an impressive job of shifting my understanding of those relationships without changing their essential nature. She fleshes out all of the characters, not just the romantic leads, and adds complexity, nuance, and perspective. And, yes, past misunderstanding, but it's mostly not the cheap sort that sometimes drives romance plots. It's the misunderstanding rooted in remembered teenage social dynamics, the sort of misunderstanding that happens because communication is incredibly difficult, even more difficult when one has no practice or life experience, and requires knowing oneself well enough to even know what to communicate.

The encounter between Delilah and Claire in the bar near the start of the book is cornerstone of the plot, but the moment that grabbed me and pulled me in was Delilah's first interaction with Claire's daughter Ruby. That was the point when I knew these were characters I could trust, and Blake never let me down. I love how Ruby is handled throughout this book, with all of the messy complexity of a kid of divorced parents with her own life and her own personality and complicated relationships with both parents that are independent of the relationship their parents have with each other.

This is not a perfect book. There's one prank scene that I thought was excessively juvenile and should have been counter-productive, and there's one tricky question of (nonsexual) consent that the book raises and then later seems to ignore in a way that bugged me after I finished it. There is a third-act breakup, which is not my favorite plot structure, but I think Blake handles it reasonably well. I would probably find more niggles and nitpicks if I re-read it more slowly. But it was utterly engrossing reading that exactly matched my mood the day that I picked it up, and that was a fantastic reading experience.

I'm not much of a romance reader and am not the traditional audience for sapphic romance, so I'm probably not the person you should be looking to for recommendations, but this is the sort of book that got me to immediately buy all of the sequels and start thinking about a re-read. It's also the sort of book that dragged me back in for several chapters when I was fact-checking bits of my review. Take that recommendation for whatever it's worth.

Content note: Reviews of Delilah Green Doesn't Care tend to call it steamy or spicy. I have no calibration for this for romance novels. I did not find it very sex-focused (I have read genre fantasy novels with more sex), but there are several on-page sex scenes if that's something you care about one way or the other.

Followed by Astrid Parker Doesn't Fail.

Rating: 9 out of 10

00:21

Sunday, 17 November

22:35

The 6.12 kernel has been released [LWN.net]

Linus has released the 6.12 kernel. "No strange surprises this last week, so we're sticking to the regular release schedule, and that obviously means that the merge window opens tomorrow.".

Headline features in this release include: support for the Arm permission overlay extension, better compile-time control over which Spectre mitigations to employ, the last pieces of realtime preemption support, the realtime deadline server mechanism, more EEVDF scheduler development, the extensible scheduler class, the device memory TCP work, use of static calls in the security-module subsystem, the integrity policy enforcement security module, the ability to handle devices with a block size larger than the system page size in the XFS filesystem, and more. See the LWN merge-window summaries (part 1, part 2) and the KernelNewbies 6.12 page for more details.

15:42

Link [Scripting News]

Joe Trippi posted a video to his new sez.us service where Pete Buttigieg explains what the Russians have done to the US. I see it that way too. When Brian Lehrer asked a few weeks ago how the US got so divided of his guest Bob Woodward (a fascinating time capsule, recorded before the election) they both missed it. We were divided by an enemy that is on the cusp of destroying the US without launching a single nuke. Putin didn't have to invade Ukraine. I guess even he didn't think his plan would succeed so spectacularly. BTW, I don't think Trippi's network is the answer, but maybe it is. I wish I had had a chance to create the system he was using, we would make a good team. Anyway we need to be further along than his offering is. The right system would allow me to control my presence with only RSS, in and out. Maybe not for everyone, to start, but it would allow us to start building. It's why I have been lobbying for inbound and outbound RSS as a back-end for all these networks. With the rise of Bluesky in the last couple of weeks (things are happening that fast now) we may have a new shot at it because Masto and Threads are certainly feeling it, and when people feel competed-with they are more open to new thinking.

15:07

A new package manager for OpenWrt [LWN.net]

The OpenWrt router-oriented distribution has long used its own opkg package manager. The project has just announced, though, that future releases will use the apk package manager from Alpine Linux instead. "This new package manager offers a number of advantages over the older opkg system and is a significant milestone in the development of the OpenWrt platform. The older opkg package manager has been deprecated and is no longer part of OpenWrt." There is some more information on this page.

Seven stable kernel updates [LWN.net]

The 6.11.9, 6.6.62, 6.1.118, 5.15.173, 5.10.230, 5.4.286, and 4.19.324 stable kernels have all been released; each contains another set of important fixes.

14:35

Fencing [RevK®'s ramblings]

Bit of fun...

We usually put up some Christmas lights on the house - some fairy lights on the metal fencing at the front, but a pain as means a cable out of a window. They are usually just normal fairy lights.

But with my new found expertise in WS2812 style LED strips, and my controllers, I decided to do better.

11m of wooden fence at the front of the house on the road. So let's do this properly. The key point is I have outside power at the end of the fence for the hot tub. So I was able to install, under cover, a 20A 5V power supply.

I then got 4 strings of fairy light style water proof 5V WS2812 LEDs.

I drilled nearly 200 holes, carefully measuring each to be level and evenly spaced. That is surprisingly hard work, LOL. James followed me poking LEDs through the holes. We were both expecting to fall off the damn wall, and James's main concern is I would fall off whilst he was not videoing!

But it is not quite so simple. Just in case you don't know, there are two common issues with LED strips.

Current limit

One issue is max current draw can be too much for power supply. To test you can either work it out, or, simply set all LEDs full white. 200 LEDs is too much for a typical small 5V USB charger plug. Hence the 20A 5V supply.

I actually also did 663 (11m) RGBW LEDs on nice 45 degree extruded trunking with diffusers for the hot tub as well, from same supply. Now that used a lot of current - just one 5m strip is too much for a USB 5V charger when white.

Voltage drop

This is slightly harder to solve. Along the strip the current draw means voltage drops as you go along. Different LEDs need different voltages. First you lose some blue making it yellow, and then some green, making red/pink. And even before that, when white still, you lose some brightness.

So with this 50 LED strip - one strip works. Two strips work but losing brightness at end. Three strips means going distinctly yellow at the end. I wanted four strips!

The solution

The solution is power feed in - the strips even have extra tails for power as well as the three wires for power and data. You feed in extra power at each strip end, so for my 4 strips I feed in at 5 points.

But how do you feed in power? In some cases you could simply power your longer strip at both ends and not have enough drop to the middle to notice. But I don't have power at the other end.

But actually it is possible to feed in even with just power from one end. The reason is the resistance of the wires, these are classic Chinesium™thin wire. If you actually have some thick good quality copper wire you can run and extra power lead the whole length and feed in at each strip end. This is what is in the WAGO boxes in the image.

Merry New year!

P.S. my son sells the controllers and stuff, https://hiwtsi.uk/

Update: Measuring resistance on the 50 LED strip power lines showed 1Ω but the leads were 0.1Ω, so 0.9Ω. A similar length of copper wire registered 0.4Ω, so 0.3Ω, so ⅓ of the resistance.

James did a video :-)

10:35

How to buy a lottery ticket [Seth's Blog]

There are lots of cultural lotteries around us. The next pop song, the book that everyone is talking about, the blog post or video that goes viral… it even applies to who gets into a famous college or is selected by the AI screening for a good job.

The usual advice is: Fit in. Copy what came before. Use the fonts, the rhythms and the code words of previous lottery winners. Helpful guides will share the instructions for exactly how long your viral video should be, how it should sound and when you should post it. This goes beyond the cues of genre–it’s the desire to fit in all the way. Culture is partly built on this adherence to what won the lottery last time.

The thing is, though, that all useful bestsellers are surprise bestsellers. They have titles like To Kill a Mockingbird or The Celestine Prophecy (which make no sense until you read the book) or reviews like those the Great Gatsby got at first, or are biographies of people no one cared about (like The Power Broker). It’s movies like 2001 or Memento. Or perhaps a singer like Rickie Lee Jones or Tones & I. It’s the business card that doesn’t fit into a Rolodex (because it doesn’t belong in a Rolodex.)

Someone is going to win the lottery, but with so many people buying tickets, it’s probably not going to be you.

Perhaps the best strategy for lottery tickets is not to buy one.

Your odds go up when you do useful and remarkable work for people who care.

10:21

Pink fishy goo makes bad news palatable | David Mitchell [David Mitchell | The Guardian]

The shortage of taramasalata because of strike action is a cheery irritation amid a sea of gloom

Have you ever asked yourself a question along the lines of: “If you had to choose not to eat bread or not to eat potatoes, what would you go for?”, or perhaps: “If you had to either never ever have a starter or never ever have a pudding, which would you pick?” You probably have. Maybe not while alone, but as part of some desultory group chat. Though perhaps you rise above it – these are very hypothetical scenarios, after all. Who exactly is going to say that forever after you can only have starters or puddings? Donald Trump? It doesn’t strike me as his style. Keir Starmer might float the idea since he’s so worried about the NHS, but then he’d pub-garden it within 48 hours. Perhaps you’ll develop type 2 diabetes and have to give up desserts but there won’t be any scope for bargaining. “I simply must have meringue but I’m willing to swear off paté and prawn cocktails in exchange” is not an argument any reputable doctor will accept.

It’s diverting, though, in a bland way. If you’re at all interested in yourself, and it’s probably a mental health red flag if you’re not, you can’t help pondering it a bit. “Ooh, I love a roast potato, but instead of toast? That’s a poser. I think I’d have to keep toast.” That’s a little snippet from my own scintillating interior monologue, by the way. “Starters ahead of puddings. Every day of the week.” And there’s another. Like thinking about what you’d do if you ruled the world or won the lottery, it provokes harmless little explorations of what you’re like. “Do you know, I wouldn’t actually want it to be Christmas every day because then it wouldn’t be a treat,” you can proudly announce to yourself and any of the others in the chat. And hopefully there’s no rise-abover who’ll say: “Remind me, are we mortal or immortal, we humans? It’s mortal, isn’t it. We’re mortal. So what the hell is this?!”

Continue reading...

09:35

Free Towns OS: an open source recreation of FM Towns OS [OSnews]

A few weeks ago I linked to a story by Misty De Meo, in which they explored what happened to the various eccentric Japanese PC platforms. One of the platforms mentioned was FM Towns, made by Fujitsu, which came with its own graphical operating system from the era of Windows 3.x. I had never heard of this one before, but it looks incredibly interesting, with some unique UI ideas I’d love to explore, if only I could read Japanese. Since learning Japanese is a serious life-long commitment, I can safely say that’s not going to happen.

It seems I’m not the only one interested in FM Towns, as a new project called Free Towns OS (or Tsugaru OS in Japanese) aims to provide an open source replacement for the Free Towns operating system.

The goal of this project is to write a copyright-free FM Towns OS to run free games and the re-released games, or why not a brand-new game for FM Towns. without concerns of violating copyrights of the files included in the original Towns OS.

Let’s see how far we can go! But, so far so good. Now Tsugaru OS is capable of running the three probably the most popular free games, Panic Ball 2, VSGP, and Sky Duel. All playable without single file from the original Towns OS.

↫ Free Towns OS GitHub page

That’s a pretty good milestone already. The project aims to eventually also be able to run on real hardware instead of just emulators, but further than that, it’s difficult for me to extract more information from the descriptions since not every paragraph has been translated to English just yet. Finding English information on FM Towns OS in general is hard, so I’m also not entirely sure just how much the project has already been able to recreate. I definitely hope this effort attracts more interest, hopefully also from outside of Japan so we can get a translated version people outside of Japan can use.

06:28

Russ Allbery: Review: Dark Deeds [Planet Debian]

Review: Dark Deeds, by Michelle Diener

Series: Class 5 #2
Publisher: Eclipse
Copyright: January 2016
ISBN: 0-6454658-4-4
Format: Kindle
Pages: 340

Dark Deeds is the second book of the self-published Class 5 science fiction romance series. It is a sequel to Dark Horse and will spoil the plot of that book, but it follows the romance series convention of switching to a new protagonist in the same universe and telling a loosely-connected story.

Fiona, like Rose in the previous book, was kidnapped by the Tecran in one of their Class 5 ships, although that's not entirely obvious at the start of the story. The book opens with her working as a slave on a Garmman trading ship while its captain works up the nerve to have her killed. She's spared this fate when the ship is raided by Krik pirates. Some brave fast-talking, and a touch of honor among thieves, lets her survive the raid and be rescued by a pursuing Grih battleship, with a useful electronic gadget as a bonus.

The author uses the nickname "Fee" for Fiona throughout this book and it was like nails on a chalkboard every time. I had to complain about that before getting into the review.

If you've read Dark Horse, you know the formula: lone kidnapped human woman, major violations of the laws against mistreatment of sentient beings that have the Grih furious on her behalf, hunky Grih starship captain who looks like a space elf, all the Grih are fascinated by her musical voice, she makes friends with a secret AI... Diener found a formula that worked well enough that she tried it again, and it would not surprise me if the formula repeated through the series. You should not go into this book expecting to be surprised.

That said, the formula did work the first time, and it largely does work again. I thoroughly enjoyed Dark Horse and wanted more, and this is more, delivered on cue. There are worse things, particularly if you're a Kindle Unlimited reader (I am not) and are therefore getting new installments for free. The Tecran fascination with kidnapping human women is explained sufficiently in Fiona's case, but I am mildly curious how Diener will keep justifying it through the rest of the series. (Maybe the formula will change, but I doubt it.)

To give Diener credit, this is not a straight repeat of the first book. Fiona is similar to Rose but not identical; Rose had an unshakable ethical calm, and Fiona is more of a scrapper. The Grih are not stupid and, given the amount of chaos Rose unleashed in the previous book, treat the sudden appearance of another human woman with a great deal more caution and suspicion. Unfortunately, this also means far less of my favorite plot element of the first book: the Grih being constantly scandalized and furious at behavior the protagonist finds sadly unsurprising.

Instead, this book has quite a bit more action. Dark Horse was mostly character interactions and tense negotiations, with most of the action saved for the end. Dark Deeds replaces a lot of the character work with political plots and infiltrating secret military bases and enemy ships. The AI (named Eazi this time) doesn't show up until well into the book and isn't as much of a presence as Sazo. Instead, there's a lot more of Fiona being drafted into other people's fights, which is entertaining enough while it's happening but which wasn't as delightful or memorable as Rose's story.

The writing continues to be serviceable but not great. It's a bit cliched and a bit awkward.

Also, Diener uses paragraph breaks for emphasis.

It's hard to stop noticing it once you see it.

Thankfully, once the story gets going and there's more dialogue, she tones that down, or perhaps I stopped noticing. It's that kind of book (and that kind of series): it's a bit rough to get started, but then there's always something happening, the characters involve a whole lot of wish-fulfillment but are still people I like reading about, and it's the sort of unapologetic "good guys win" type of light science fiction that is just the thing when one simply wants to be entertained. Once I get into the book, it's easy to overlook its shortcomings.

I spent Dark Horse knowing roughly what would happen but wondering about the details. I spent Dark Deeds fairly sure of the details and wondering when they would happen. This wasn't as fun of an experience, but the details were still enjoyable and I don't regret reading it. I am hoping that the next book will be more of a twist, or will have a character more like Rose (or at least a character with a better nickname). Sort of recommended if you liked Dark Horse and really want more of the same.

Followed by Dark Minds, which I have already purchased.

Rating: 6 out of 10

01:00

Microsoft finally publishes ISO for Windows on ARM [OSnews]

This option is for users that want to create a Windows 11 on Arm virtual machine on supported hardware using an ISO file or to install Windows 11 on Arm directly without a DVD or USB flash drive.  The ISO file can also be used to manually create bootable installation media (USB flash drive) to install Windows 11 on Arm, but it may be necessary to include drivers from the device manufacturer for the installation media to be successfully bootable. This download is a multi-edition ISO which uses your product key to unlock the correct edition.

↫ Windows on ARM ISO download

Oddly enough, up until now, Microsoft hadn’t published a Windows 11 on ARM ISO yet. With this new ISO, ARM users can do a fresh install, and create Windows on ARM virtual machines. Not the biggest news in the world, but it’s a little bit surprising it’s taken them this long to publish this ISO file.

Saturday, 16 November

20:42

Link [Scripting News]

Excellent piece on how Bluesky leaves users with the impression that it's open and decentralized in ways it is not. If it's bought by someone who wants to use it the way Musk has, they can, without any recourse by the users. As they said in the old days, if you're getting something for free, you're the product, not the customer. We helped Musk build a way to excercise political power against our interests. You may think Bluesky is a way of fixing that, but it probably isn't. They're digging a deep hole, probably too deep to climb out of at this point. They did some innovative stuff, perhaps. But they ended up at the same place, it appears, as Twitter did.

16:35

Tudor clothing [Judith Proctor's Journal]

 I've just been watching Shardlake - 

Overall, with a few minor reservations, I liked it.  Particularly on the costume (given that I currently have an interest in Tudor/early Stuart costume)

I was virtually drooling over Alice Fetewer. See that headwrap?

And look at those detachable sleeves!

On screen they looked as though they were knitted, but I can't be sure in this clip. Knitted or fabric could both have been correct for the period - I'm contemplating knitting a pair for myself when time allows.

The period illustrations I've seen show the sleeves at pinned on, rather than sewn, but that's not to say they were never sewn (but would have made them harder to wash separately).

 



I will say that everyone was underdressed, though. Snow on the ground all the time, in a big cold monastery?  No central heating, fires are expensive.  People would have had more layers of clothing.

Alice should have been had ties on her smock to fasten it at the neck when it was cold. And a piece of linen round her shoulders.  And probably a waistcoat as well. (In this particular context, a 'waistcoat' would be more like a jumper worn on top of the smock at underwear - 'waistcoat' has a lot of meanings during this era..)

It's even more obvious when she's out of doors. She would have a had a gown of some kind and probably a short cloak as well.

So, great clothes for summer, but you have to image a very warm monastery, and suspect that as a love interest, she is required to have a lower neckline....

 

You'll notice that the men got  more cold weather clothing...

Arthur Hughes and Anthony Boyle in Shardlake. They are dress in Tudor England clothing as they look at each other

Shardlake appears to suffer from the popular misconceptions about cloaks with hoods, but it looks as though Jack may possibly have a separate hood, which would be more correct (and far easier to wear in a way that keeps your neck warm and the hood from billowing round your face.

but overall, pretty good and could have been far worse.

 



comment count unavailable comments

09:35

Sincerity is expected [Seth's Blog]

Well, not always. That’s why it’s so important.

We don’t expect an actor to tell the truth. That’s their job.

Musicians and other performers are playing a role.

And social niceties encourage us to put on a smile and share appreciation, even in situations where it might not be fully honest.

On the other hand, organizations like the SEC insist that a CEO actually say true things. “Just kidding” is hard to rely on when making investment decisions. And we expect that the medical and judicial systems we depend on are built on inspectable, consistent truth-telling.

Social media has rewarded people for bringing a post-reality mindset to places where sincerity is expected. In other words, it’s profitable to lie. Inconsistently, often, and with brazen disregard for the consequences. And it feels wrong for important reasons.

Altering the venues where it’s expected that truth will be told is tempting to do and hard to live with.

07:49

The Gambit Gambit [Penny Arcade]

Channing Tatum is an incredible Gambit as long as you close your eyes. I can see a scenario where true innovators utilize forced perspective or something but there would be significant challenges. The suit looked uncomfortable; imagine that Channing Tatum were a squeezable product. This is what the tube would look like.

06:21

Coal and oil use continued to rise [Richard Stallman's Political Notes]

*Despite nations’ pledges at Cop28 a year ago, the burning of coal, oil and gas continued to rise in 2024.*

In other words, the planet roasters have defeated the campaign to save civilization (and your lives) from destruction.

Big oil fossil fuel warning [Richard Stallman's Political Notes]

*The Air Pollution Foundation, which was primarily funded by the lobbying organization Western States Petroleum Association, publicly claimed to want to help solve the smog crisis, but was set up in large part to counter efforts at regulation.*

It was informed in 1955 of the future danger of global heating.

Australia lapsed export permits [Richard Stallman's Political Notes]

* Australia has amended or lapsed at least 16 defence-related export permits to Israel in recent weeks.*

This alone won't make Israel stop committing atrocities, but it can blaze the trail for other countries to do so.

Trump administration health policy [Richard Stallman's Political Notes]

*Why the Trump administration will be bad for [most] Americans' health.*

The exceptions will be the millionaires.

Women rejecting all men [Richard Stallman's Political Notes]

Women in several countries are responding to arrogant right-wing misogynous men by rejecting all men, for sex or for love.

In a place where abortion and birth control are restricted, it is obviously rational for women to reject penis-in-vagina sex with men (except when they seek to get pregnant). This doesn't require rejecting all lovemaking, but that is what these women are doing.

The misogynists will deserve such rejection, but what will happen to the young men who yearn for kind and tender love with a woman? They will well know that life makes that as unlikely as winning the lottery. They may join the misogynists only because no other path proclaims itself as offering any hope.

Sensitive men will see that misogyny is a path to a dead end of twisted hatred, not a path to happiness. But when they reject that path, where could they go instead? They won't see any good path -- only despair.

With women hating them sight unseen, trying to be kind and considerate won't be enough to give men an opportunity for love. Even to learn what constitutes "kind and considerate" requires feedback from someone prepared to appreciate you when you make progress, and misandrists will form a solid wall against that.

I am so sad for the men and for the women.

Israel bombing farms [Richard Stallman's Political Notes]

*Cattle, crops and ancient olive groves: Lebanon’s farmers "lose everything" to Israeli bombs.*

Republicans and abortion [Richard Stallman's Political Notes]

Republicans will try to attack abortion rights nationwide, despite their half-hearted pretense before the election.

02:28

This Week in Seattle Food News [The Stranger]

Brisket, Bossam, and Goodbye to Bebop Waffle Shop by EverOut Staff This week, we're celebrating the triumphant return of Ms. Helen's Soul Bistro (inside a Harley-Davidson dealer!) and welcoming the El Camion truck back to Ballard. Plus, find out where to grab pecan cookie butter lattes and bossam. For more ideas, check out our Thanksgiving 2024 food guide and our food and drink guide.

NEW OPENINGS

BORI Korean Kitchen
This Korean destination soft opened in Factoria last week, with a menu of chicken wings, short ribs, japchae, bossam, hot pots, and more.
Bellevue

Stranger Suggests: Secret SIFF Staff Benefit Screening!, Babe Fest 2, World Toilet Day, STÖR, Matty Matheson [The Stranger]

One really great thing to do every day of the week by Megan Seling WEDNESDAY 11/13  

Secret SIFF Staff Benefit Screening!

(FILM/FUNDRAISER) Days after getting our souls ripped out and stomped on by more than 75 million Americans on November 5, SIFF had to break even more bad news: SIFF Cinema Egyptian will be closed for the foreseeable future due to a “significant pipe leak.” It happened Tuesday evening. I blame Trump for this, somehow. This sucks for moviegoers, of course, but it’s an even bigger blow to the workers whose future employment has been put into upheaval. Tonight, SIFF supporters have organized a super secret screening and fundraiser at Northwest Film Forum to raise funds for the staffers impacted by the closure. What movie? It’s a surprise! They promise it is “VERY good.” It’s free, but hopefully, you can kick at least a few bucks into the SIFF Cinema Workers Union Fundraiser on GoFundMe. And if you show your proof of donation at the concession stand, you get a free small popcorn! (Northwest Film Forum, 1515 12th Ave, 7 pm, free) MEGAN SELING

THURSDAY 11/14  

The Blood Brothers

(MUSIC) Like any fan of Seattle hardcore band the Blood Brothers, I have found myself at a show, pressed up against a wall of people, shouting the wrong lyrics to their songs. For instance, on their hit "USA NAILS," there's a hook where you think you're singing a cheer-style "one, one, and two!" but the lyrics are actually: "These pigs locked me up to see what color I'd rot into!" When I sat down to talk to Johnny Whitney, who fronts the band with fellow singer/screamer/guttural whisperer Jordan Blilie, he noted that plenty of lyrics websites list incorrect verses for Blood Brothers songs. "It's hilarious how wrong some of them are," Whitney said. "The lyrics on Spotify are not even close to what I'm actually saying. Just buy the fucking CD, and look it up. Come on, people." Read the full interview here. (The Showbox, 1426 First Ave, Nov 14-15, 8 pm, Thurs is all ages, Fri is 21+) SUZETTE SMITH

FRIDAY 11/15  

Babe Fest 2

[Correction: Babe Fest 2 is Saturday, November 16. We regret the error.]

(PARTY) During a time that feels both politically glum and literally glum outside, join your fellow babes to let loose in a sparkly sea of positive energy. DJ Wax Witch (the mastermind behind Seattle's girl-powered DJ series Babe Night) will host the second annual Babe Fest, featuring a therapeutic blend of '90s pop, Y2K dance, and Euro house bops. Fellow spinderellas SofiiaK, Abbie, Reverend Dollars, and Ten Billion Jules will join the fun in addition to live sets from friendship-focused bands Who Is She? and THEM (full disclosure: my sister is in this band, but I’d think they’re great even without blood relation, I promise!). Proceeds from ticket sales will be donated to Rain City Rock Camp, a local nonprofit that empowers creativity in femmes and gender-nonconforming individuals through music with sliding-scale rock camps and education. (Baba Yaga, 124 S Washington St, 7 pm, $15-$20, 21+) AUDREY VANN

SATURDAY 11/16  

World Toilet Day

World Toilet Day is Saturday, November 16. (THERE ARE TOILET GAMES!) Hiroshi Higuchi/Getty

(COMMUNITY) In honor of the United Nations' World Toilet Day on November 19, the Gates Discovery Center invites toilet users of all stripes for a day of activities and exhibits highlighting the importance of the porcelain throne. You can make your own "pooparium," a terrarium filled with biosolid compost, or stop by the water bar to see if you can taste the difference between tap, bottled, and filtered water. I think even the most stoic of us won't be able to resist giggling while playing poop-into-toilet-themed corn hole—and who doesn't need a laugh right now? (Bill & Melinda Gates Foundation Discovery Center, 11 am-3 pm, free, all ages) SHANNON LUBETICH

SUNDAY 11/17  

STÖR

          View this post on Instagram                      

A post shared by Base Camp Studios (@base.camp.studios)

(VISUAL ART) If you assume STÖR is a parody of a certain meatball-serving Swedish mega-retailer, you'd be right—but it's more than that, too. The labyrinthine Base Camp Studios project was imagined as an "immersive rebrand of how we experience, consume, and purchase art." That means you can explore and shop the STÖR space while contemplating the confluence of commerce and artistic production. Mary Anne Carter, Lilia Deering, and over 25 other participating artists have outfitted the installation with "surreal reinterpretations" of mass-produced home goods and decor. (Base Camp Studios, 1901 Third Ave, through Jan 10, $15 suggested donation) LINDSAY COSTELLO

MONDAY 11/18  

Katie Gavin

(MUSIC) As a devoted stan of queer indie pop icons, Gayotic podcasters, and self-proclaimed "greatest band in the world" MUNA, I've enjoyed watching member Katie Gavin step into her solo side project. She cites Alanis Morissette, Fiona Apple, Ani DiFranco, Tracy Chapman, Tori Amos, and Sarah McLachlan as influences on her debut album What a Relief, which was largely written on acoustic guitar over the course of seven years, and their raw honesty shines through on nostalgic '90s-tinged singles like "Aftertaste" (a sweet, woozy ode to the vulnerability of a nascent crush) and "Casual Drug Use" (a compassionate affirmation in the face of substance abuse issues, penned in the wake of a breakup in 2016). (Neumos, 925 E Pike St, 7 pm, $39-$45, all ages) JULIANNE BELL

TUESDAY 11/19  

Matty Matheson

See Matty Matheson at Town Hall Seattle Tuesday, November 19. COURTESY OF PENGUIN RANDOM HOUSE

(FOOD/BOOKS) You might already know the boisterous, tattooed, foul-mouthed Canadian chef Matty Matheson for his role as handyman Neil Fak on FX's The Bear (which he also executive produces) or for his joyfully chaotic cooking channel on YouTube. His latest cookbook Soups, Salads, Sandwiches involves all three of the holy comfort food triad, with recipes like crab congee, "Everyone's Mom's Macaroni and Tuna Salad," and Cubanos. Best of all, the book's commentary stays true to his signature raucous, jovial voice. He'll chat with Little Fat Boy food writer and photographer Frankie Gaw about the release. (Town Hall Seattle, 1119 Eighth Ave, 7:30 pm, $7-$139, all ages) JULIANNE BELL

01:00

Thoughts on 26 Years of Penny Arcade [Penny Arcade]

I loved Deadpool and Wolverine, especially the team of forgotten heroes they assembled. I leaned over to Noah in the theater and shook him shouting “BLADE” when Wesley Snipes appeared. While I liked seeing Gambit on screen and I appreciate that Channing Tatum likes the character, I have to say I don’t really see him as Gambit. He tried very hard and I don’t even hate the accent but he just doesn’t physically look like Gambit to me. If they want to get serious I think they need to hire someone like Austin Butler who I think would kill the role accent and all. 

 

00:56

Massive Half-Life 2 20th Anniversary Update is here [OSnews]

Valve has been holding on to a special surprise for Half-Life 2 fans to celebrate the game crossing its 20th birthday. Today, the company shipped the 20th Anniversary Update for the iconic Gordon Freeman adventure from 2004, combining the base experience and all episodes into one, bringing developer commentary, Steam Workshop support, and much more. Adding to all that, the game is completely free to claim on Steam right now too.

↫ Pulasthi Ariyasinghe at NeoWin

Valve even made a nice web page with fun animated characters for it (they’re just video loops). Definitely a nice surprise for those of us who’ve already played the game a million times, and for those of us who haven’t yet for some reason and can now claim the game for free. This update also fixes some more bugs, adds a ton of new graphics settings, allows you to choose between different styles for certain visual effects, aim assist for controller users has been massively updated, and so much more. For a 20 year old game, such a free update is not something that happens very often, so good on Valve for doing this.

I can barely believe it’s been 20 years, and that we still have no conclusion or even continuation to the story that so abruptly ended with Episode Two. I honestly doubt we’ll ever going to see a Half-Life 3 or even an Episode Three, simply because at this point the expectations would be so bonkers high there’s no way Valve could meet them. On top of that, why waste time, money, and possibly reputation and goodwill on Half-Life 3, when you can just sit on the couch and watch the Steam gravy train roll into the station?

Because that’s a hell of a lot of gravy.

00:07

Inside the Bitter Battle Between Starbucks and Its Workers [The Stranger]

Nearly three years since the first Starbucks store voted to unionize, approximately 12,000 workers across more than 500 stores have now joined the Starbucks Workers Union. Despite a brutal fight thus far, both sides say a new contract now seems within reach. But Starbucks’ recent actions behind the scenes say something different. by Conor Kelley

Nearly three years since the first Starbucks store voted to unionize, approximately 12,000 workers across more than 500 stores have now joined the Starbucks Workers Union. Despite a brutal fight thus far, both sides say a new contract now seems within reach. But Starbucks’ recent actions behind the scenes say something different.

Starbucks spent two years fighting the newly formed union, displaying a shocking level of viciousness for a company that markets itself as progressive and refers to its workers as “partners.” They committed scores of labor violations, shut down organizing stores in Seattle over dubious “security concerns,” and refused to negotiate with Starbucks Workers United. A judge for the National Labor Relations Board (NLRB) ruled the company engaged in “egregious and widespread misconduct demonstrating a general disregard for the employees’ fundamental rights.”

This approach can be traced back to longtime CEO Howard Schultz, who has been outspoken against unions for decades. In a 2022 town hall meeting with workers, then-CEO Schultz angrily told a worker who inquired about the company’s NLRB violations, “If you’re not happy at Starbucks, you can go work for another company.” The NLRB ruled this was an unlawful and coercive threat.

But now, two years later, it appears the company is done with the threats.

So what changed?

After Howard Schultz stepped down for the third time in 2023, shortly before being dragged into a Senate committee hearing to testify, new CEO Laxman Narasimhan appeared better equipped to read the room. He saw the company’s perception as a friendly coffee shop was evaporating.

The company quickly changed course under his new leadership, and in February 2024 released a statement saying, in part: “We have agreed with Workers United that we will begin discussions on a foundational framework designed to achieve collective bargaining agreements, including a fair process for organizing, and the resolution of some outstanding litigation.” 

After months of tentative pro-cooperation statements and gestures, bargaining began in earnest in March 2024. According to multiple people involved in these bargaining sessions, Starbucks is actively in negotiations on this “foundational framework,” a form agreement for each unionized store to use as a base contract, by the end of this year. Stores will then bargain store-specific items from there.

When Starbucks’ board of directors ousted Narasimhan in August and hired former Chipotle CEO Brian Niccol to replace him, there was concern that all this cooperation would cease. However, the company insists otherwise. “Workers United and Starbucks continue to make considerable progress on the framework intended to be the basis of each single-store contract,” Starbucks Spokesperson Phil Gee says. “We look forward to making additional progress in future sessions, remaining steadfast in our goal to reach ratified contracts for partners in represented stores by the end of this year.”

However the company is still mired in legal challenges. 

This month, the NLRB filed a complaint against Starbucks that in 2022 and 2023 the company changed unionized workers’ schedules without consulting the union, a labor violation that affected several thousand workers at 290 stores—and dropped some workers below a threshold that caused them to lose healthcare benefits. The allegation —if proven true in the trial— would require the company to pay the group of workers what they would have earned in those shifts, which the union’s legal team says could reach “north of $30 million.”

The company responded publicly by saying, “Our decisions were made across our system, in unionized and non-unionized stores, and they were made without regard to organizing activity at Starbucks.”

But therein lies the problem: once your workers have organized, you can’t arbitrarily make decisions across your company without bargaining through their union. You have to “regard” their “organizing activity.” That’s the whole deal.

Unless you don’t believe in workers’ rights at all.

Starbucks’ defense against this charge, prepared by their attorneys at union-busting firm Littler Mendleson, is aggressive to the point of unhinged—and may show how Starbucks really feels about their workers, despite all these nice public statements.

Among their 29 affirmative defense claims filed on October 24 are many vicious assertions that the NLRB itself is invalid. Starbucks’ lawyers claim the NLRB is a compromised body that has failed to “maintain and protect the integrity and neutrality of its processes,” that “the National Labor Relations Act is unconstitutional,” and that every NLRB judge has been unconstitutionally appointed. This attack mirrors those leveled at the NLRB by SpaceX, Amazon, and Trader Joe’s—three companies that have shown themselves as uniquely anti-worker by racking up hundreds of NLRB complaints over the past few years.

In a real kicker, the ghouls Starbucks hired at Littler Mendleson assert that because President Biden fired Trump-appointed former general counsel Peter Robb —a former union-busting lawyer who spent three years trying to kill the NLRB’s power to protect us workers from the gears of capitalism —all subsequent NLRB general counsel appointments should be invalidated along with all decisions they’ve made to protect workers.

Starbucks did not comment on these statements.

This isn’t the first time this year that they’ve pushed an anti-worker agenda in the courts, either. In June, they successfully petitioned the U.S. Supreme Court to use a stricter rubric to limit which labor cases move forward in the future. The legal counsel for our friendly neighborhood coffee chain has been making similar arguments in NLRB filings as far back as May 2022. 

So it appears that although their PR strategy has changed, their legal strategy behind closed doors has not.

If the two sides don’t come to an agreement before the Trump administration takes office in January, who’s to say the company will keep playing nice? Trump is widely expected to swiftly replace General Counsel Jennifer Abruzzo and install another anti-worker to head the NLRB that’s more in the vein of his first-term appointee, union-busting lawyer Peter Robb.

They also recently sent out an internal message to their workers that starting in January 2025, remote workers who aren’t in the office at least three days a week will be subject to an “accountability process” with consequences “up to, and including, separation.” New CEO Brian Niccol will not be subject to this policy, as he works remotely from his home in Newport Beach, CA, 1,000 miles away from the company’s Seattle headquarters.

Nevertheless, workers I’ve spoken with say they believe the company earnestly wants to reach an agreement with the union.

“The company has said it quite a few times at the bargaining table, and they've also said it publicly,” says Jasmine, a barista at one of the earliest organized stores in Buffalo, NY. “I think we're on track to get the contract done by the end of 2024.”

And it’s been a long time coming for Jasmine and her co-workers, who organized way back in December 2021. She says they knew they’d be in for a lengthy fight, and have been emboldened through the tough times by how many new workers have joined the movement. She says many of these new workers—called “green beans”—specifically apply at her store because they’re a part of Starbucks Workers United and customers are vocal in their support.

But the work isn’t done yet.

Some key issues left to be hashed out include addressing widespread understaffing issues, healthcare benefits, and consistent scheduling and hours guarantees. Kay, a worker at a recently unionized store in Norman, OK, is especially excited about new agreed-upon contract points like established benchmarks for retraining and termination, and mandatory two-week notices—rare protections in right-to-work states.

Kay points out that poor working conditions can take over your life. “Then it's more than just going to work, clocking in, clocking out. You’re taking it home,” she says. “But when you have a good work-life balance, you're doing a better job at your job. You're in a happier mood. It's easier to connect with customers.”

Mac, a barista at a Bellingham store — the 500th to unionize— values that customer connection. “I like that it's a place where people can go to work or chat with friends…I get to meet all sorts of new people every day, and I also get to see friendly familiar faces,” they say. “People remember my name, just like I try to remember theirs. I really think it's helped me grow as a social person.”

They’ve both worked at various Starbucks locations around Washington, unionized and not. “I’ve experienced many different iterations of what it should and shouldn't look like. And I think the union just makes the most sense,” Mac says. “Sometimes Starbucks is just too far away to hear your voice. So that's what the union does, it amplifies it.”

But the question is: who’s on the other end of the line?

Friday, 15 November

23:21

I Saw U: On Halloween at Lariat Bar, Wearing Yellow Converse at Wild Rose, and Smiling at the A Place to Bury Strangers Show [The Stranger]

See someone? Say something! by Anonymous

Halloween at Lariat Bar—cutie in a Kamala hat

We chatted in line for the bathroom—I complimented you on your Harris/Walz hat, then got shy. Wanna commiserate about the election together?

Guardian Angel on the Ave

Had a health emergency & fainted suddenly on the ave. U held me securely in your arms while the ambulance approached, more care than the hospital. TY

Sarah look out for shitty bricks!!!!

Two blonde men walking in Beacon Hill. Older one: did you tell Sarah? Other: no absolutely not as it will go over like a ton of shitty bricks.

Checking out my bicycle @ 4th ave; 7ish on 10/8

You. Mustachioed cutie making eyes & it wasn't at me. Like the hot pink accents? Brake install humbled me, like u did. Bring your friend; let’s ride!

I saw you 20 years ago

in Lower QA bar. You (brown-haired guy) and I (blond gal) talked all night and made out in my car. You whispered, "Good Girl" in my ear. Life changing

Yellow Chucks at Wildrose

You: short cutie wearing yellow Converse. Me: tall blonde woman in The Chicks shirt. How about one of us make a move next time?

Monday Night Trivia

You: tall curly-haired heartbreaker who flew in for one drink. Me: the cute trivia host. You sped off on a scooter, leaving me with all the questions.

Shared a smile at “A Place to Bury Strangers.” Show

We stood next to each other during the opener. Too loud to talk. Tried to find you after the show and you were gone. Let’s connect!

Is it a match? Leave a comment here or on our Instagram post to connect!

Did you see someone? Say something! Submit your own I Saw U message here and maybe we'll include it in the next roundup!

22:35

FSD meeting recap 2024-11-15 [Planet GNU]

Check out the important work our volunteers accomplished at today's Free Software Directory (FSD) IRC meeting.

Girl Genius for Friday, November 15, 2024 [Girl Genius]

The Girl Genius comic for Friday, November 15, 2024 has been posted.

22:28

View From a Hotel Window, 11/15/24: Cincinnati [Whatever]

pxl_20241115_2134317995098106301351053493

And in what is possibly a first for this series of photos: an ice rink! Because I guess it is that time of year, isn’t it.

This is also the last hotel shot of the year, as tomorrow’s Books By the Banks is my last public appearance of 2024. After this I crawl into a hole to finish the current novel, and then possibly sleep until 2025. So by all means, if you are in or near Cincy, come say hello to me tomorrow. Or forever hold your peace, “forever” in this case being until December 31, 2024.

— JS

21:49

Puppets Might Save Us All [The Stranger]

If you’re looking for a place to be in these complicated times, head to the Fussy Cloud this weekend. by Nico Swenson

As we tumble into a future of who even knows what, you might be searching for an outlet to guide you through grief, spark some joy, and perhaps distract you with a little magic. Thankfully, Seattle has a puppet scene that’s doing exactly that. Before you even ask, no, puppets are not just for kids. You are welcomed into this puppet community, which is full of puppets in every shape, size, and form, with open arms! Cass Bray and Zane Exactly, co-producers of Fussy Cloud Puppet Slam, are two brilliant leaders in the art form and will be bringing Volume 26: What’s the Worst That Could Happen to the Theater Off Jackson this weekend, November 15 and 16. 

The tag-team of puppet empowerment not only produces the slam, but they also make their own stunning shadow puppets as co-artistic directors of Shadow Girls Cult. They work year-round creating platforms for emerging puppeteers across the Pacific Northwest and build community through the expanse of what puppetry can be. “We're all just a bunch of puppet nerds who are excited when somebody else wants to nerd out about the same thing we do, you know?” says Zane. “The more people we have to talk about puppetry, the more exciting it is. Like, if I literally could do nothing else but just do puppet things and talk about puppetry all day, I would be so happy.” 

Now, you might think puppets are just the fluffy creatures you used to watch on Sesame Street. After talking to these two, I can confidently tell you it’s so much more than you’d expect. “Puppetry can be so many things,” Cass notes. “It can be object manipulation, it can be manipulating a puppet, it can be using props in a way that tells a story. You see Muppets, and you see the Henson Foundation, who create a lot of puppetry, but you know, we've also seen some amazing acts from burlesque performers who have a puppet or drag performers who are using cardboard props. We need folks to realize that puppetry can be for adults, it can be interesting, it can be subversive, and that it's revolutionary.”

Half Pint Puppets performing during Volume 24 of Fussy Cloud Puppet Slam. BRIANA JONES

Zane adds, “At its base, it's taking an object and giving it life. That is the most basic definition of puppetry.” The duo also pointed out that puppetry is more accessible to get involved in than many people assume—you don’t need elaborate sewing skills or years of experience. “I have seen some incredible shows where people have a pile of stuff from their kitchen, and it's the most compelling thing I've ever seen. If you're just taking any sort of object and you are giving it life and giving it a character, and it's living within a story, then it's a puppet.”

That’s a major goal the pair have in the way they produce Fussy Cloud as well, to showcase such a wide range of styles and approaches that audience members go, “Oh, I didn't think that could be puppetry.” As producers, part of their role has been meeting with artists who might not even realize they are utilizing puppetry and saying, "Hey, you're doing puppets, just so you know, would you like a stage? You want to come be a part of our puppet community? We'd love that.”

Frechettist Marionettist performing at Volume 24 of Fussy Cloud Puppet Slam. BRIANA JONES

While there is an abundance of puppets in Seattle, it has faced some setbacks over the last decade in the city. Like much of the arts community, shuttered venues, shrinking professionally paying jobs, the pandemic, and the rising cost of living have all contributed to fewer resources and opportunities. The changing tides have pushed seasoned artists out of the area and puppetry into the underground. It’s a major reason that the dynamic duo picked up the reins of Fussy Cloud. 

Zane has been a long-time participant since Fussy Cloud’s second volume in 2011. As its leadership shifted, a time came for someone to step up to keep it running. Zane believed in the importance of keeping the slam alive and took on the responsibility. The following show Cass jumped in as co-producer, bringing the combined force of a puppet-loving, community-forward wonder team. “We are very committed to being leaders in the puppetry community here because somebody has to, or it'll die out.” Cass underscores that “Fussy Cloud Puppet Slam is really at the root of it because it has been the longest-running puppetry cabaret in Seattle, to my knowledge.” 

Now, as the slam has built up more and more of the community, they confront a different challenge in Volume 26, with the theme What’s the Worst That Could Happen? “We chose that theme knowing that regardless of the outcome of this election that things would be spicy and a shit show,” Cass explains. “We curated this with the election in mind and with the landscape that we knew people would be feeling and experiencing.”

In this particular volume, viewers will experience everything from a ventriloquist piece about a collapsing ceiling to a piece about the Roe v Wade reversal told through the lens of a roach motel. There’s even a pigeon doing mime. Cass and Zane curated the variety to combine “a lot of these individual stories about these moments in time that things fall apart.” Some of the pieces will be humorous, some somber, and some will reveal their tone as they move from the initial submission process to the stage. “I think it's going to be a great space for people to come experience horror that wraps up neatly in five to seven minutes and tells a story that's compelling, silly, and absurd, and just have a place to laugh and grieve together.”

Esjay the Dragon Dreamer performing at Volume 25 of Fussy Cloud Puppet Slam. BRIANA JONES

 

The slam responds to the current times not just in content but also in its structure. The management team is entirely queer, including their tech, and strives each slam to get more diverse in each rendition by broadening styles, expanding experience levels, and embracing different personal perspectives from the storytellers. Both producers also gave high praise for the show’s regular host, Tootsie Spangles. “She has this way of holding the audience in her hands so tenderly, preparing you perfectly for whatever you're about to see. She is just a huge part of the core vibe of what Fussy Cloud Puppet slam is.”

If you’re looking for a place to be in these complicated times, head to the Fussy Cloud this weekend. The slam even maintains a pay-what-you-can option to make sure it’s as accessible as possible. If you can’t make this edition, Fussy Cloud happens twice a year and the next show will be in May. The team hopes that with continued support and interest in puppetry, they can expand opportunities. While the team of producers doesn’t always perform at the slams themselves, you can also catch any of their acclaimed productions as Shadow Girls Cult, which, as a puppet lover, I highly recommend.

Lindsay Ball performing at Volume 25 of Fussy Cloud Puppet Slam. BRIANA JONES

Whether you just want to see more puppets, are a budding puppeteer, or are looking for some puppet-fueled energy to handle the election news, know that these two have created a community that is primed to uplift you. Zane emphasized that puppetry has always been part of resistance, harkening back to the anti-nazi puppeteer Josef Skupa, who led an underground puppet movement of illegal performances during the occupation of Czechoslovakia. 

“Especially when you're grieving, storytelling is the oldest form of sharing these feelings and creating community,” says Cass. “I feel so strongly that puppetry is a community-building event and activity. So for these people who are grieving, this is a space where we can all grieve together. This is a space where we're all held in time for an hour and a half where we can experience magic together in a safe space.” 

See Fussy Cloud Puppet Slam Volume 26: What's the Worst That Could Happen? at Theater Off Jackson Nov 15-16, $15-$30.

19:00

Link [Scripting News]

When I was a boy my mother would sometimes say if I didn't stop belching I wouldn't be able to stop.

18:49

Free Software Directory meeting on IRC: Friday, November 8, starting at 12:00 EST (17:00 UTC) [Planet GNU]

Join the FSF and friends on Friday, November 8 from 12:00 to 15:00 EST (17:00 to 20:00 UTC) to help improve the Free Software Directory.

Free Software Directory meeting on IRC: Friday, November 1, starting at 12:00 EDT (16:00 UTC) [Planet GNU]

Join the FSF and friends on Friday, November 1 from 12:00 to 15:00 EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

Free Software Directory meeting on IRC: Friday, October 18, starting at 12:00 EDT (16:00 UTC) [Planet GNU]

Join the FSF and friends on Friday, October 18 from 12:00 to 15:00 EDT (16:00 to 19:00 UTC) to help improve the Free Software Directory.

[$] Two approaches to tightening restrictions on loadable modules [LWN.net]

The kernel's loadable-module facility allows code to be loaded into (and sometimes removed from) a running kernel. Among other things, loadable modules make it possible to run a kernel with only the subsystems needed for the system's hardware and workload. Loadable modules can also make it easy for out-of-tree code to access parts of the kernel that developers would prefer to keep private; this has led to many discussions in the past. The topic has returned to the kernel's mailing lists with two different patch sets aimed at further tightening the restrictions applied to loadable modules.

18:42

Tell Congress Not To Weaponize The Treasury Department Against Nonprofits [EFF Action Center]

The bill’s authors have combined this attack on nonprofits, originally written as H.R. 6408, with other legislation that would prevent the IRS from imposing fines and penalties on hostages while they are held abroad. These are separate matters. Congress should separate these two bills to allow a meaningful vote on this dangerous expansion of executive power. No administration should be given this much power to target nonprofits without due process.

The Best Bang for Your Buck Events in Seattle This Weekend: Nov 15–17, 2024 [The Stranger]

Babe Fest 2, Gobble Up Seattle, and More Cheap & Easy Events Under $15 by EverOut Staff

Our cheap and easy guide is here to save your weekend from mediocrity with event suggestions from Babe Fest 2 to Gobble Up Seattle and from Trans Day of Remembrance to a Public School Community Teach-In and Forum. For more ideas, check out our guide to the top events of the week.

FRIDAY PERFORMANCE

Legendary Children
Peep drag royalty of all genders and groove along to DJ sets at this buzzy celebration of the "artistry of queer and trans Black, Indigenous, people of color and their communities," planned in partnership with the Seattle Public Library and Shunpike. Stay for the slay on a public runway and get an education from glamazons Ariyah Jané, Da Qween, Flourish Maxzeal, Londyn Bradshaw, and Rafael/a Luna-Pizano, plus up-and-coming artists from various local houses. (Remember: Reading is fundamental.) LINDSAY COSTELLO
(Olympic Sculpture Park, Belltown, free)

18:14

Link [Scripting News]

Why Repubs won? They campaigned in a new way that the Dems apparently didn't notice (neither did I, not claiming to be better). Repubs were more creative and improvisational. They didn't worry what Jake Tapper or Ezra Klein would think, so came off as more genuine. It's a TV show, acting and suspension of disbelief are what count. It has nothing to do with anything else. Sorry it has to be that way but that's how it is. I don't think they hate women btw, they would have voted for Roseanne Barr or Melissa McCarthy. Maybe Chris Rock, they probably would have really liked Will Smith. Idiocracy was incredibly prescient. No joke.

17:56

Seattle's Only News Quiz [The Stranger]

After we allowed ourselves to have a beautiful respite last week to write about national progress, it’s time to fall limply back into the morass, where we’ll be stuck like that selfless horse Artax in The Neverending Story (we are so, so sorry to have brought up Artax). by Sally Neumann & Leah Caglio

Create your own user feedback survey

Slog AM: TERFs at the Library, Bird Flu Suspected at Woodland Park Zoo, Anti-Vaxx RFK Jr. Selected to Helm Department of Health and Human Services [The Stranger]

The Stranger's morning news round-up. by Nathalie Graham

Boeing lays off more than 400 union members: As part of the the aerospace company's 10% reduction in staffing, Boeing has cut 438 positions held by Society of Professional Engineering Employees in Aerospace members, the professional aerospace labor union (distinct from the machinists union that was on strike this fall). Boeing expects to cut around 17,000 jobs to reduce labor costs. 

TERFs at the library: An anti-trans group has rented the Central Library auditorium for an event this Sunday, and some employees plan to protest at the library’s plaza. Women’s Declaration International USA (WDI USA) is the non-catchy name for the American chapter of a trans exclusionary radical feminist (TERF) group founded in the United Kingdom. Like all TERF groups, WDI works under an outdated feminist framework to limit the civil rights of trans people and portray transgender identity as ideology. The Southern Poverty Law Center considers WDI to be part of a anti-queer pseudoscience network, whose “Declaration on Women’s Sex-Based Rights” has become a model for anti-trans legislation. The WDI panel is the third anti-queer event at the library in three years, and the second hosted by a TERF group. SPL wrote on its blog that it supports the rights of transgender women, but it rents its meeting room to anyone, even those they disagree with. If you feel like disagreeing, loudly, and supporting trans people at a time of rising hatred, you can join Seattle Public Library workers for a protest outside the Central Library Plaza on Sunday at 6 pm and/or speak at the SPL Board of Trustees meeting next Thursday, November 21st.

Suspect charged in International District stabbings: Roland Jerome Lee, 37, was charged in the stabbings of five people last Thursday in Seattle's Chinatown International District. All five of the victims were men. Two of them required surgery. Lee, who has nine prior felony convictions, allegedly stabbed one man in the back, through the spinal cord. The attacks so far seem unmotivated and completely random. Lee is also a suspect in four other stabbings that occurred in the neighborhood earlier in the week. 

Vandals at UW president's home: This week, a group of masked individuals went to UW president Ana Mari Cauce's home and spray painted phrases like “Free Palestine," “blood on your hands," and "Ana Mari is complicit in genocide" on her property. The vandalism comes in the wake of the agreement UW administration reached with student protesters back in May. The school committed to funding scholarships for Palestinian students and being more transparent about investment, but did not agree to cut ties with Boeing or stop a study abroad program in Israel, as protesters demanded. A video of the vandalism circulating on Instagram included the words "you will not know peace until you meet the demands of our movement." A UW spokesperson said the vandalism "will not influence university policy."

BREAKING: Pres Cauce's home was vandalized last night with vile graffiti and posted on Insta with threatening language: "You will not know peace until you meet the demands of our movement"

We unequivocally condemn this despicable behavior, and look to @SeattlePD and incoming AG… pic.twitter.com/vewG2mOIW7

— UW_JewishAlumni (@UW_JewishAlumni) November 14, 2024

Sun today? Okay, earlier this week I was certain we wouldn't see the sun again until at least February. Today, I'm eating crow. The skies will be clear today. Hopefully, they'll stay clear enough to spot the beaver moon tonight, the last super moon of 2024. 

Please, adopt a pooch: The Humane Society for Tacoma and Pierce County is drowning in dogs. There are so many dogs in the shelter they're having to house them in offices and hallways. To fix the overcrowding and get some of the 200 dogs they're caring for out of the shelter and into homes, the Humane Society is waiving adoption fees from Nov. 14 through Nov. 17. Dog intake has increased exponentially this year. The shelter says it's taken in 400 more dogs this year than last. 

Don't let this guy have a pooch, though: A Sheriff's deputy in Tennessee lost his job and is facing animal cruelty charges after he killed seven dogs while responding to an animal welfare check. 

Suspected bird flu at the zoo: A precious goose at the Woodland Park Zoo is now a goner. Zookeepers found the rare red-breasted goose dead earlier this week. Tests returned positive for avian flu. Now, the zoo is in pandemic mode. Only animal keepers and veterinarians will interact with the zoo birds now. Penguin feeding experiences are canceled, as are private tours and bird ambassador shows. The free roaming peacocks have been put indoors. The water in the pools at open-topped bird exhibits has been drained to prevent wild birds from landing there and possibly catching any germs. The geese are in quarantine. 

Fuck: Donald Trump has officially selected Robert F. Kennedy Jr. to lead the Department of Health and Human Services. A former acting director of the Centers for Disease Control told the New York Times that this appointment, "would pose incredible risks to the health of the nation." Washington's Sen. Patty Murray called it "catastrophic" and said RFK Jr. at this post "could not be more dangerous." RFK Jr. is an anti-vaxxer, a raw milk enthusiast, a fluoride conspiracy theorist, who believes that poppers cause HIV, trans healthcare for minors includes “castration drugs (puberty blockers) and surgical mutilation” and much more. Public health workers and officials are terrified.  

the worm in RFK’s brain on his way to day one as deputy health secretary pic.twitter.com/Kz9mJWFqt5

— Russell 🏳️‍🌈 (@Medic_Russell) November 14, 2024

Vaccine stocks take a tumble: In the wake of the RFK Jr. news, stocks fell for Moderna, Pfizer, Eli Lilly, Novavax, and other vaccine companies. RFK Jr. wants to implement a vaccine "study" to see how safe they are. Public health officials worry how rigorous the study would be and what the messaging would be. The likeliest outcome is that any sort of study helmed by this mad tin foil hatter would only increase vaccine skepticism and destabilize our public health system. 

Canary in the coal mine: Whooping cough cases in Oregon are set to reach an all-time high thanks to a dip in vaccinations in the wake of the COVID-19 pandemic. 

If you care: Conan O'Brien will host the 97th Oscars. 

Bear attacks were actually just insurance fraud: Four people claimed a bear got into their cars in California's San Bernardino Mountains and wreaked havoc. They submitted video alongside their insurance claim of a bear moving around in a Rolls Royce and two Mercedes. They wanted $142,000 for their damages. One company reviewing the footage suspected it wasn't actually a bear. When the company asked a biologist to take a look at the footage, they said it was "clearly a human in a bear suit." Sure enough, detectives found a bear costume in the suspects' home. The four people were arrested for defrauding three insurance companies. 

A song for your Friday: 

17:28

Link [Scripting News]

I predict that people will come to appreciate features that Mastodon has that the other twitter-like social web services don't.

17:07

How do I put a non-copyable, non-movable, non-constructible object into a std::optional? [The Old New Thing]

Last time, we wondered how you could put an object into a std::optional<T> if T is not copyable, not movable, and not constructible. You typically run into this case when T is an object that comes from a factory method rather than a constructor.

For expository purposes, say we have a Widget that can be created inside a region or outside a region. One possible design would be to have a constructor that takes a bool that say whether to go inside or outside.

struct Widget
{
    Widget(Region const& region, bool inside);

    Widget(Widget const&) = delete;
    Widget(Widget &amp&) = delete;
    Widget& operator=(Widget const&) = delete;
    Widget& operator=(Widget &amp&) = delete;
};

I’m not a fan of this design because you have to remember what that final bool means.

Widget widget(region, true); // what does "true" mean?

Does that true mean “initially enabled”? Does it mean “inside”? Does it mean “outside”?

To remove ambiguity, we can switch to factory methods.

struct Widget
{
    Widget() = delete;
    Widget(Widget const&) = delete;
    Widget(Widget &amp&) = delete;
    Widget& operator=(Widget const&) = delete;
    Widget& operator=(Widget &amp&) = delete;

    static Widget CreateInside(Region const& region);
    static Widget CreateOutside(Region const& region);
private:
    ⟦ ... ⟧
};

Okay, so how can we put a Widget inside a std::optional<Widget>? All of our tools for putting an object into an optional are failing us. We can’t use emplace: That will try to construct the Widget from the thing we passed to emplace, but Widget is not constructible!

The trick is that the std::optional constructor and assignment operator create the T as if by non-list-initialization. This means that implicit conversion operators are in play!

struct WidgetInsideRegionCreator
{
    WidgetCreator(Region const& region) : m_region(region) {}
    operator Widget() { return Widget::CreateInside(m_region); }
    Region const& m_region;
};

void sample(Region const& region)
{
    // construct with a Widget value
    std::optional<Widget> o(WidgetInsideRegionCreator(region));

    // or place a Widget into the optional
    o.emplace(WidgetInsideRegionCreator(region));
}

The idea here is that we create a helper object, the Widget­Inside­Region­Creator, which supports an implicit conversion to Widget via the factory method. The Widget can then be initialized from the helper object by conversion. The return value from the conversion operator is placed directly in the optional‘s Widget thanks to mandatory copy elision.

Okay, now that we know what to do, we can generalize it, so you don’t have to create dozens of tiny little creator classes.

template<typename F>
struct EmplaceHelper
{
    EmplaceHelper(F&& f) : m_f(f) {}
    operator auto() { return m_f(); }
    F& m_f;
};

void sample(Region const& region)
{
    // construct with a Widget value
    std::optional<Widget> o(
        EmplaceHelper([&] {
            return Widget::CreateInside(region);
        }));

    // or place a Widget into the optional
    o.emplace(EmplaceHelper([&] {
            return Widget::CreateInside(region);
        }));
}

This trick works even if the factory method belongs to another object.

struct WidgetFactory
{
    Widget CreateInside(Region const& region) const;
};

void sample(WidgetFactory const& factory,
            Region const& region)
{
    // construct with a Widget value
    std::optional<Widget> o(
        EmplaceHelper([&] {
            return factory.CreateInside(region);
        }));

    // or place a Widget into the optional
    o.emplace(EmplaceHelper([&] {
            return factory.CreateInside(region);
        }));
}

If you don’t like lambdas, you can try invoke-oriented programming.

template<typename F, typename... Args>
struct EmplaceHelper
{
    EmplaceHelper(F&& f, Args&&... args)
        : m_f(f), m_args((Args&&)args...) {}
    operator auto()
        { return std::apply(m_f, m_args); }
    F& m_f;
    std::tuple<Args&&...> m_args;
};

template<typename F, typename... Args>
EmplaceHelper(F&&, Args&&...) -> EmplaceHelper<F, Args...>;

void sample(WidgetFactory const& factory,
            Region const& region)
{
    // construct with a Widget value
    std::optional o(
        EmplaceHelper(Widget::CreateInside, region));

    // or place a Widget into the optional
    o.emplace(EmplaceHelper(&WidgetFactory::CreateInside,
                            factory, region));

    // lambdas still work
    o.emplace(EmplaceHelper([&] {
            return factory.CreateInside(region);
        }));
}

The post How do I put a non-copyable, non-movable, non-constructible object into a <CODE>std::optional</CODE>? appeared first on The Old New Thing.

PureDarwin intends to make Apple’s Darwin usable with a MATE desktop, future custom desktop environment, and more [OSnews]

Remember Darwin? It’s the core of Apple’s macOS, and the company has always – sometimes intermittently – released its source code as open source. Not much ever really happens with Darwin, and any attempts at building a usable operating system on top of Darwin have failed. There was OpenDarwin, which at one point could run a GNOME desktop, but in 2006 it shut itself down, stating:

Over the past few years, OpenDarwin has become a mere hosting facility for Mac OS X related projects. The original notions of developing the Mac OS X and Darwin sources has not panned out. Availability of sources, interaction with Apple representatives, difficulty building and tracking sources, and a lack of interest from the community have all contributed to this. Administering a system to host other people’s projects is not what the remaining OpenDarwin contributors had signed up for and have been doing this thankless task far longer than they expected. It is time for OpenDarwin to go dark.

↫ OpenDarwin announcement from 2006 (archived)

Any other attempts at making Darwin work as a standalone operating system were further frustrated by the fact that Apple stopped releasing bootable Darwin images, so Darwin never amounted to much more than Apple throwing some code over the fence every now and then for some cheap goodwill among the few people who still believe Apple cares about open source. However, the dream is still alive – the idea that you could use Darwin to build a general purpose operating system, perhaps one with some semblance of compatibility with macOS software, is an attractive one.

Enter PureDarwin. This project has been around for a while now, releasing an X11-capable build of Darwin somewhere in 2015, followed long, long after that by a CLI-only build in 2020. A few days ago, the project announced an ambitious change in direction, with a plan and roadmap for turning PureDarwin into a general purpose operating system.

The PureDarwin project, originally created to bring Apple’s open-source Darwin OS to more people, is heading in a fresh new direction with some clear short-term and long-term goals. These new plans are all about breathing new life into PureDarwin. In the short term, we’re focused on getting some solid basics in place with graphical interfaces using MATE Desktop and LightDM, so users can get a functional and accessible experience sooner rather than later. Looking further down the line, the long-term goals—shown in some early wireframes—are about creating a fully featured, polished desktop experience that’s easy to use and visually appealing. Plus, a new versioning system will make it clear how PureDarwin is progressing independently from Apple’s Darwin updates, making it easier for everyone to keep track. This refreshed direction sets PureDarwin up to grow from its roots into a user-centered operating system.

↫ PureDarwin announcement

These plans and roadmap sound quite well thought-out to me. I especially like that they first focus on getting a solid MATE desktop running before shifting to building a more custom desktop environment, as this makes it much easier – relatively speaking – to get people up and running with Darwin. Once Darwin with MATE is halfway usable, it can serve its job as a development platform for the more custom desktop environment they have planned. It won’t surprise you, by the way, that the sketches for the custom desktop environment are very Apple-y.

As part of the goals of creating a usable MATE desktop and then a more custom desktop environment, a whole bunch of low-level things need to be handled. All the kexts (drivers) required for Darwin to boot need to be built, and CoreFoundation needs to be updated, a process that was already under way. On top of that, the project wants to focus on getting Wayland to work, make Darwin buildable under BSD/Linux, and develop an installer.

Beyond those goals, the project has an even bigger, tentative ambition: API compatibility with macOS. They make it very clear they’re not at all focused on this right now, and consider it more of a pie-in-the-sky goal for the the distant future. It’s an interesting ambition we’ve seen tried various times before, and it surely won’t be even remotely easy to get it to a level where it could do much more than run some command-line utilities. Darling, a similar project to run macOS binaries on Linux in the style of Wine, has only recently been able to run some small, very basic GUI applications.

I like all of these goals, and especially getting it to a state where you can download a Darwin ISO running MATE should be entirely realistic to achieve in a short timeframe. A custom desktop environment is a lot more work of course, all depending on how much they intend to reuse from the Linux graphics and desktop stack. Anything beyond that, and it becomes much murkier, obviously. As always, it’s all going to come down to just how many active and enthusiastic contributors they can attract, and more importantly retain once the initial excitement of this announcement wears off.

15:14

Link [Scripting News]

I added a screen shot to the WordLand placeholder page.

15:07

[$] Fedora KDE gets a promotion [LWN.net]

The Fedora Project is set to welcome a second desktop edition to its lineup after months (or years, depending when one starts the clock) of discussions. The project recently decided to allow a new working group to move forward with a KDE Plasma Desktop edition that will sit alongside the existing GNOME-based Fedora Workstation edition. This puts KDE on a more equal footing within the project, which, it is hoped, will bring more contributors and users interested in KDE to adopt Fedora as their Linux distribution of choice.

14:21

Security updates for Friday [LWN.net]

Security updates have been issued by Debian (curl and unbound), Fedora (krb5 and microcode_ctl), Red Hat (kernel and kernel-rt), SUSE (glib2, python3-wxPython, and ucode-intel), and Ubuntu (golang-1.17, golang-1.18, libgd2, linux, linux-aws, linux-kvm, linux-lts-xenial, linux-gke, linux-raspi, linux-raspi, linux-raspi-5.4, and php7.0, php7.2).

12:07

Error'd: Tangled Up In Blue [The Daily WTF]

...Screens of Death. Photos of failures in kiosk-mode always strike me as akin to the wizard being exposed behind his curtain. Yeah, that shiny thing is after all just some Windows PC on a stick. Here are a few that aren't particularly recent, but they're real.

Jared S. augurs ill: "Seen in downtown Mountain View, CA: In Silicon Valley AI has taken over. There is no past, there is no future, and strangely, even the present is totally buggered. However, you're free to restore the present if you wish."

0

 

Windows crashed Maurizio De Cecco's party and he is vexé. "Some OS just doesn’t belong in the parisian nightlife," he grumbled. But neither does pulled pork barbecue and yet there it is.

1

 

Máté cut Windows down cold. "Looks like the glaciers are not the only thing frozen at Matterhorn Glacier Paradise..."

2

 

Thomas found an installer trying to apply updates "in the Northwestern University's visitor welcome center, right smack in the middle of a nine-screen video display. I can only imagine why they might have iTunes or iCloud installed on their massive embedded display." I certainly can't.

3

 

Finally, Charles T. found a fast-food failure and was left entirely wordless. And hungry.

4

 

[Advertisement] Picking up NuGet is easy. Getting good at it takes time. Download our guide to learn the best practice of NuGet for the Enterprise.

Good Essay on the History of Bad Password Policies [Schneier on Security]

Stuart Schechter makes some good points on the history of bad password policies:

Morris and Thompson’s work brought much-needed data to highlight a problem that lots of people suspected was bad, but that had not been studied scientifically. Their work was a big step forward, if not for two mistakes that would impede future progress in improving passwords for decades.

First, was Morris and Thompson’s confidence that their solution, a password policy, would fix the underlying problem of weak passwords. They incorrectly assumed that if they prevented the specific categories of weakness that they had noted, that the result would be something strong. After implementing a requirement that password have multiple characters sets or more total characters, they wrote:

These improvements make it exceedingly difficult to find any individual password. The user is warned of the risks and if he cooperates, he is very safe indeed.

As should be obvious now, a user who chooses “p@ssword” to comply with policies such as those proposed by Morris and Thompson is not very safe indeed. Morris and Thompson assumed their intervention would be effective without testing its efficacy, considering its unintended consequences, or even defining a metric of success to test against. Not only did their hunch turn out to be wrong, but their second mistake prevented anyone from proving them wrong.

That second mistake was convincing sysadmins to hash passwords, so there was no way to evaluate how secure anyone’s password actually was. And it wasn’t until hackers started stealing and publishing large troves of actual passwords that we got the data: people are terrible at generating secure passwords, even with rules.

11:56

The Big Idea: Sharon Shinn [Whatever]

For her new novel Alibi, author Sharon Shinn strays a bit from what she’s usually known for, to mix another genre of literature into her storytelling. What mysteries has she uncovered from this process? Read on!

SHARON SHINN:

I write speculative fiction with a high romance quotient, so it’s rare that I dabble in the mystery genre. But that’s where I’ve grounded my newest book, Alibi, which takes place in the near future when teleport is the most common means of transit. (If you can travel anywhere almost instantly, how can you have an alibi for murder?)

Alibi’s structure is a little unconventional in that the death doesn’t occur until about 50 pages from the end. Still, the prologue makes it clear that somebody’s going to die soon. That gives readers opportunities to watch for clues as the story unfolds or start to fret as the main characters take stupid risks that might come back to haunt them once the cops start looking for suspects.

It’s not the first time I’ve tried my hand at a mystery. I’ve published three short stories that follow a fairly traditional whodunit format and one novel (Summers at Castle Auburn) that includes a high-profile murder toward the end of the book. I even wrote a script for a five-minute story that my brother produced when he ran a murder mystery company in Copenhagen ten years ago. (Here’s Part One, the murder, and Part Two, the solution.)

I like writing mysteries for a couple of reasons. First, they make sense of the world—or at least they illuminate one small event in the unceasing tide of bewildering madness. How did this happen? Why did this happen? Who is responsible? These are questions that arise over and over in real life but so often don’t have definitive answers. But in mysteries, the the knots are untangled and the entire pattern is revealed.

Second, mysteries imagine a society in which actions have consequences. Evil-doers are punished. Justice is served.

There’s usually a clear-cut villain in a murder mystery, though that varies by the book. Often, the victim is someone who deserves to die—a blackmailer, say, or a violent abuser. Sometimes the reader is even rooting for the murderer to get away with the crime, because that outcome offers a kind of emotional justice. Other times, it’s the killer who’s the monster, and the pleasure comes from watching the brute come crashing down.

Both of these scenarios are so satisfying because—again—they are so rare in the world we actually live in. In real life, serial killers operate for decades and are never identified; Indigenous girls disappear and the news outlets don’t even notice. But mystery novels make us believe that sometimes right and wrong can be pushed into balance. Sometimes the cruel are punished and the innocent are avenged.

In the mysteries I’ve written, I tend to go with the trope of the scumbag whose death is a cause for celebration. (That’s certainly true in Alibi, where the murder victim is a billionaire whose many unsavory traits include a callous indifference to his dying son.) In fact, in most of my books, even the ones that are straight-up fantasy, my villains are usually irredeemably awful. I don’t bother with much subtlety or nuance. I can’t bring myself to buy into the common wisdom that “everybody has a good side.”

In fact, I can’t imagine that anyone who’s reading the news today could subscribe to that theory. Haven’t they heard about the husband who repeatedly drugs his wife and invites strangers in to have sex with her? Or the pharma bro who jacks up the prices of lifesaving medicines simply to make a profit? Or the woman who kills her children because her new husband convinces her the kids are possessed? I don’t know, maybe in their free time these individuals are rescuing kittens and knitting blankets for homeless shelters. But it’s hard for me to come up with enough good deeds they could perform to offset the bad stuff they’ve done.

That’s what I like about writing mysteries. I can make sure everyone gets what they deserve. I don’t have to pretend there might be extenuating circumstances.

I think mysteries are popular for another reason: They have an intellectual payoff as well as an emotional one, which offers parallel rewards for people on both side of the page. Readers have a chance to match their wits against the protagonist’s and feel a thrill of smugness if they solve the crime before the detective does. Writers have the absorbing challenge of putting together a precise and perfect puzzle that satisfies three requirements of the genre: planting the right clues, providing motives and backstories for a large cast of characters, and playing fair with the reader without giving too much away.

A few years ago, a friend told me that he thought mysteries would be the hardest books to write largely because of those three requirements. I replied that I think any type of fiction has to incorporate some of the same elements. The author’s job is to provide just enough information at just the right moment to guide the reader to a defined ending that might be surprising, devastating, or uplifting, depending on the book itself.

Not all fiction has a big final reveal, like mysteries do, but most of it does have an end goal—to make readers believe that the story is real, that it makes sense, that it is as complete and self-contained as a snow globe. Nothing is missing or out of place. That’s not a pleasure we can find often in our daily lives. A novel might be fantastical or mysterious, it might be full of demons or murderers—but sometimes, it’s a better place to live. 


Alibi: Amazon|Barnes & Noble|Bookshop|Powell’s

Author Socials: Web site|Facebook

10:28

Take good notes [Seth's Blog]

Facts are important, but facts don’t create learning. Stories do.

A story fits into (and changes) our understanding of the world. Good teachers are storytellers, and storytellers are teachers.

Notes, then, aren’t recitations of facts. They’re story prompts. A good note reminds you of a story that you already understand.

09:07

Pluralistic: Canada's ground-breaking, hamstrung repair and interop laws (15 Nov 2024) [Pluralistic: Daily links from Cory Doctorow]


Today's links



An e-waste dump. In the foreground are two waste-barrels. A limp Canadian flag emerges from the left barrel; the nude head and shoulders of a grinning Tony Clement emerge from the right barrel.

Canada's ground-breaking, hamstrung repair and interop laws (permalink)

When the GOP trifecta assumes power in just a few months, they will pass laws, and those laws will be terrible, and they will cast long, long shadows.

This is the story of how another far-right conservative government used its bulletproof majority to pass a wildly unpopular law that continues to stymie progress to this day. It's the story of Canada's Harper Conservative government, and two of its key ministers: Tony Clement and James Moore.

Starting in 1998, the US Trade Rep embarked on a long campaign to force every country in the world to enact a new kind of IP law: an "anticircumvention" law that would criminalize the production and use of tools that allowed people to use their own property in ways that the manufacturer disliked.

This first entered the US statute books with the 1998 passage of the Digital Millennium Copyright Act (DMCA), whose Section 1201 established a new felony for circumventing an "access control." Crucially, DMCA 1201's prohibition on circumvention did not confine itself to protecting copyright.

Circumventing an access control is a felony, even if you never violate copyright law. For example, if you circumvent the access control on your own printer to disable the processes that check to make sure you're using an official HP cartridge, HP can come after you.

You haven't violated any copyright, but the ink-checking code is a copyrighted work, and you had to circumvent a block in order to reach it. Thus, if I provide you a tool to escape HP's ink racket, I commit a felony with penalties of five years in prison and a $500k fine, for a first offense. So it is that HP ink costs more per ounce than the semen of a Kentucky Derby-winning stallion.

This was clearly a bad idea in 1998, though it wasn't clear how bad an idea it was at the time. In 1998, chips were expensive and underpowered. By 2010, a chip that cost less than a dollar could easily implement a DMCA-triggering access control, and manufacturers of all kinds were adding superfluous chips to everything from engine parts to smart lightbulbs whose sole purpose was to transform modification into felonies. This is what Jay Freeman calls "felony contempt of business-model."

So when the Harper government set out to import US-style anticircumvention law to Canada, Canadians were furious. A consultation on the proposal received 6,138 responses opposing the law, and 54 in support:

https://www.michaelgeist.ca/2010/04/copycon-final-numbers/

And yet, James Moore and Tony Clement pressed on. When asked how they could advance such an unpopular bill, opposed by experts and the general public alike, Moore told the International Chamber of Commerce that every objector who responded to his consultation was a "radical extremist" with a "babyish" approach to copyright:

https://www.cbc.ca/news/science/copyright-debate-turns-ugly-1.898216

As is so often the case, history vindicated the babyish radical extremists. The DMCA actually has an official way to keep score on this one. Every three years, the US Copyright Office invites public submissions for exemptions to DMCA 1201, creating a detailed, evidence-backed record of all the legitimate activities that anticircumvention law interferes with.

Unfortunately, "a record" is all we get out of this proceeding. Even though the Copyright Office is allowed to grant "exemptions," these don't mean what you think they mean. The statute is very clear on this: the US Copyright Office is required to grant exemptions for the act of circumvention, but is forbidden from granting exemptions for tools needed to carry out these acts.

This is headspinningly and deliberately obscure, but there's one anecdote from my long crusade against this stupid law that lays it bare. As I mentioned, the US Trade Rep has made the passage of DMCA-like laws in other countries a top priority since the Clinton years. In 2001, the EU adopted the EU Copyright Directive, whose Article 6 copy-pastes the provisions of DMCA 1201.

In 2003, I found myself in Oslo, debating the minister who'd just completed Norway's EUCD implementation. The minister was very proud of his law, boasting that he'd researched the flaws in other countries' anticircumvention laws and addressed them in Norway's law. For example, Norway's law explicitly allowed blind people to bypass access controls on ebooks in order to feed them into text-to-speech engines, Braille printers and other accessibility tools.

I knew where this was going. I asked the minister how this would work in practice. Could someone sell a blind person a tool to break the DRM on their ebooks? Of course not, that's totally illegal. Could a nonprofit blind rights group make such a tool and give it away to blind people? No, that's illegal too. What about hobbyists, could they make the tool for their blind friends? No, not that either.

OK, so how do blind people exercise their right to bypass access controls on ebooks they own so they can actually read them?

Here's how. Each blind person, all by themself, is expected to decompile and reverse-engineer Adobe Reader, locate a vulnerability in the code and write a new program that exploits that vulnerability to extract their ebooks. While blind people are individually empowered to undertake this otherwise prohibited activity, they must do so on their own: they can't share notes with one another on the process. They certainly can't give each other the circumvention program they write in this way:

https://pluralistic.net/2024/10/28/mcbroken/#my-milkshake-brings-all-the-lawyers-to-the-yard

That's what a use-only exemption is: the right to individually put a locked down device up on your own workbench, and, laboring in perfect secrecy, figure out how it works and then defeat the locks that stop you from changing those workings so they benefit you instead of the manufacturer. Without a "tools" exemption, a use exemption is basically a decorative ornament.

So the many use exemptions that the US Copyright Office has granted since 1998 really amount to nothing more than a list of defects in the DMCA that the Copyright Office has painstaking verified but is powerless to fix. We could probably save everyone a lot of time by scrapping the triennial exemptions process and replacing it with a permanent sign over the doors of the Library of Congress reading "Abandon hope, all ye who enter here."

All of this was well understood by 2010, when Moore and Clement were working on the Canadian version of the DMCA. All of this was explained in eye-watering detail to Moore and Clement, but was roundly ignored. I even had a go at it, publicly picking a fight with Moore on Twitter:

https://web.archive.org/web/20130407101911if_/http://eaves.ca/wp-content/uploads/2010/Conversations%20between%20@doctorow%20and%20@mpjamesmoore.jpg

Moore and Clement rammed their proposal through in the next session of Parliament, passing it as Bill C-11 in 2012:

https://en.wikipedia.org/wiki/Copyright_Modernization_Act

This was something of a grand finale for the pair. Today, Moore is a faceless corporate lawyer, while Clement was last seen grifting covid PPE (Clement's political career ended abruptly when he sent dick pics to a young woman who turned out to be a pair of sextortionists from Cote D'Ivoire, and was revealed as a serial sex-pest in the ensuing scandal:)

https://globalnews.ca/news/4646287/tony-clement-instagram-women/

Even though Moore and Clement are long gone from public life, their signature achievement remains a Canadian disgrace, an anchor chain tied around the Canadian economy's throat, and an impediment to Canadian progress.

This week, two excellent new Canadian laws received royal assent: Bill C-244 is a broad, national Right to Repair law; and Bill C-294 is a broad, national interoperability law. Both laws establish the right to circumvent access controls for the purpose of fixing and improving things, something Canadians deserve and need.

But neither law contains a tools exemption. Like the blind people of Norway, a Canadian farmer who wants to attach a made-in-Canada Honeybee tool to their John Deere tractor is required to personally, individually reverse-engineer the John Deere tractor and modify it to talk to the Honeybee accessory, laboring in total secrecy:

https://www.theregister.com/2024/11/12/canada_right_to_repair/

Likewise the Canadian repair tech who fixes a smart speaker or a busted smartphone – they are legally permitted to circumvent in order to torture the device's repair codes out of it or force it to recognize a replacement part, but each technician must personally figure out how to get the device firmware to do this, without discussing it with anyone else.

Thus do Moore and Clement stand athwart Canadian self-reliance and economic development, shouting "STOP!" though both men have been out of politics for years.

There has never been a better time to hit Clement and Moore's political legacy over the head with a shovel and bury it in a shallow grave. Canadian technologists could be making a fortune creating circumvention devices that repair and improve devices marketed by foreign companies.

They could make circumvention tools to allow owners of consoles to play games by Canadian studios that are directly sold to Canadian gamers, bypassing the stores operated by Microsoft, Sony and Nintendo and the 30% commissions they charge. Canadian technologists could be making diagnostic tools that allow every auto mechanic in Canada to fix any car manufactured anywhere in the world.

Canadian cloud servers could power devices long after their US-based manufacturers discontinue support for them, providing income to Canadian cloud companies and continued enjoyment for Canadian owners of these otherwise bricked gadgets.

Canada's gigantic auto parts sector could clone the security chips that foreign auto manufacturers use to block the use of third party parts, and every Canadian could enjoy a steep discount every time they fix their cars. Every farmer could avail themselves of third party parts for their tractors, which they could install themselves, bypassing the $200 service call from a John Deere technician who does nothing more than look over the farmer's own repair and then type an unlock code into the tractor's console.

Every Canadian who prints out a shopping list or their kid's homework could use third party ink that sells for pennies per liter, rather than HP's official colored water that cost more than vintage Veuve Cliquot.

A Canadian e-waste dump generates five low-paid jobs per ton of waste, and that waste itself will poison the land and water for centuries to come. A circumvention-enabled Canadian repair sector could generate 150 skilled, high-paid community jobs that saves gadgets and the Earth, all while saving Canadians millions.

Canadians could enjoy the resliency that comes of having a domestic tech and repair sector, and could count on it through pandemics and Trumpian trade-war.

All of that and more could be ours, except for the cowardice and greed of Tony Clement and James Moore and the Harper Tories who voted C-11 into law in 2012.

Everything the "radical extremists" warned them of has come true. It's long past time Canadians tore up anticircumvention law and put the interests of the Canadian public and Canadian tech businesses ahead of the rent-seeking enshittification of American Big Tech.

Until we do that, we can keep on passing all the repair and interop laws we want, but each one will be hamstrung by Moore and Clement's "felony contempt of business model" law, and the contempt it showed for the Canadian people.

(Image: https://en.wikipedia.org/wiki/File:Tony_Clement_-_2007-06-30_in_Kearney,_Ontario.JPGJeffJ, CC BY-SA 3.0; Jorge Franganillo, CC BY 2.0, modified)


Hey look at this (permalink)



A Wayback Machine banner.

This day in history (permalink)

#20yrsgo My latest short story — CC-licensed, on Salon, all about gaming https://www.salon.com/2004/11/15/andas_game/

#10yrsago University of Michigan makes up a bunch of non-reasons why it doesn’t have to do record retention https://www.techdirt.com/2014/11/13/michigan-university-claims-its-public-records-retention-period-is-whatever-each-employee-wants-it-to-be/

#10yrsago Amazon and Hachette kiss and make up https://www.nytimes.com/2014/11/14/technology/amazon-hachette-ebook-dispute.html

#5yrsago Tpmfail: a timing attack that can extract keys from secure computing chips in 4-20 minutes https://www.zdnet.com/article/tpm-fail-vulnerabilities-impact-tpm-chips-in-desktops-laptops-servers/

#5yrsago Banned from Youtube, Chinese propagandists are using Pornhub to publish anti-Hong Kong videos https://qz.com/1747617/chinese-users-go-to-pornhub-to-spread-hong-kong-propaganda

#5yrsago Hong Kong protests: “Might as well go down fighting” https://www.theatlantic.com/international/archive/2019/11/escalating-violence-hong-kong-protests/601804/

#5yrsago Activists target Facebookers over “Gold Tier” sponsorship of Kavanaugh event https://www.theverge.com/2019/11/14/20963865/facebook-ads-brett-kavanaugh-federalist-society-employees

#5yrsago Trump’s signature tax break for poor people went to subsidize a superyacht marina in Florida https://www.propublica.org/article/superyacht-marina-west-palm-beach-opportunity-zone-trump-tax-break-to-help-the-poor-went-to-a-rich-gop-donor

#5yrsago Big Tech’s CEOs can’t possibly fix Big Tech https://medium.com/bloomberg-opinion/mark-zuckerberg-is-totally-out-of-his-depth-887682ba70b9

#5yrsago American health care’s life-destroying “surprise bills” are the fault of local, private-equity monopolies https://www.theamericanconservative.com/gougers-r-us-how-private-equity-is-gobbling-up-medical-care/

#5yrsago The poorest half of Americans have nothing left, so now the 1%’s growth comes from the upper middle class https://wolfstreet.com/2019/11/13/how-the-fed-boosts-the-1-even-the-upper-middle-class-loses-share-of-household-wealth-to-the-1-the-bottom-half-gets-screwed/

#1yrago The conservative movement is cracking up https://pluralistic.net/2023/11/14/when-youve-lost-the-fedsoc/#anti-buster-buster


Upcoming appearances (permalink)

A photo of me onstage, giving a speech, holding a mic.



A screenshot of me at my desk, doing a livecast.

Recent appearances (permalink)



A grid of my books with Will Stahle covers..

Latest books (permalink)



A cardboard book box with the Macmillan logo.

Upcoming books (permalink)

  • Picks and Shovels: a sequel to "Red Team Blues," about the heroic era of the PC, Tor Books, February 2025
  • Unauthorized Bread: a middle-grades graphic novel adapted from my novella about refugees, toasters and DRM, FirstSecond, 2025



Colophon (permalink)

Today's top sources:

Currently writing:

  • Enshittification: a nonfiction book about platform decay for Farrar, Straus, Giroux. Today's progress: 792 words (82608 words total).
  • A Little Brother short story about DIY insulin PLANNING

  • Picks and Shovels, a Martin Hench noir thriller about the heroic era of the PC. FORTHCOMING TOR BOOKS FEB 2025

Latest podcast: Spill, part four (a Little Brother story) https://craphound.com/littlebrother/2024/10/28/spill-part-four-a-little-brother-story/


This work – excluding any serialized fiction – is licensed under a Creative Commons Attribution 4.0 license. That means you can use it any way you like, including commercially, provided that you attribute it to me, Cory Doctorow, and include a link to pluralistic.net.

https://creativecommons.org/licenses/by/4.0/

Quotations and images are not included in this license; they are included either under a limitation or exception to copyright, or on the basis of a separate license. Please exercise caution.


How to get Pluralistic:

Blog (no ads, tracking, or data-collection):

Pluralistic.net

Newsletter (no ads, tracking, or data-collection):

https://pluralistic.net/plura-list

Mastodon (no ads, tracking, or data-collection):

https://mamot.fr/@pluralistic

Medium (no ads, paywalled):

https://doctorow.medium.com/

Twitter (mass-scale, unrestricted, third-party surveillance and advertising):

https://twitter.com/doctorow

Tumblr (mass-scale, unrestricted, third-party surveillance and advertising):

https://mostlysignssomeportents.tumblr.com/tagged/pluralistic

"When life gives you SARS, you make sarsaparilla" -Joey "Accordion Guy" DeVilla

08:28

The Gambit Gambit [Penny Arcade]

New Comic: The Gambit Gambit

08:21

06:35

Fruitless pursuit of mythical moderate [Richard Stallman's Political Notes]

*[Harris's] Fruitless Pursuit of the Mythical Moderate.* The article attributes her defeat to her failure to take an overall political position that would help struggling majority of Americans.

I emended the article title because it would be presumptuous to refer to a person I don't know by per first name.

Rep. Jayapal: *We've got to pick some big fights where people can't be in denial or question whether or not we are standing up for them or whether we're standing up to the big corporate interests," the Washington congresswoman said, adding: "It's a difficult message to send when you're trying to court money from that community."

In other words, Democrats need to become what they once were: sincere populists, defending the vital interests of the poor majority of the US, to overcome the Republican phony populists who pretend to stand for that majority by scapegoating smaller and poorer groups.

Feeds

FeedRSSLast fetchedNext fetched after
@ASmartBear XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
a bag of four grapes XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Ansible XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
Bad Science XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Black Doggerel XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
Blog - Official site of Stephen Fry XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Charlie Brooker | The Guardian XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Charlie's Diary XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
Chasing the Sunset - Comics Only XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Coding Horror XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
Cory Doctorow's craphound.com XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Cory Doctorow, Author at Boing Boing XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
Ctrl+Alt+Del Comic XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
Cyberunions XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
David Mitchell | The Guardian XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
Deeplinks XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
Diesel Sweeties webcomic by rstevens XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
Dilbert XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Dork Tower XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Economics from the Top Down XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
Edmund Finney's Quest to Find the Meaning of Life XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
EFF Action Center XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
Enspiral Tales - Medium XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
Falkvinge on Liberty XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
Flipside XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Flipside XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
Free software jobs XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
Full Frontal Nerdity by Aaron Williams XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
General Protection Fault: Comic Updates XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
George Monbiot XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
Girl Genius XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
Groklaw XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
Grrl Power XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Hackney Anarchist Group XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Hackney Solidarity Network XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
http://blog.llvm.org/feeds/posts/default XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
http://calendar.google.com/calendar/feeds/q7s5o02sj8hcam52hutbcofoo4%40group.calendar.google.com/public/basic XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
http://dynamic.boingboing.net/cgi-bin/mt/mt-cp.cgi?__mode=feed&_type=posts&blog_id=1&id=1 XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
http://eng.anarchoblogs.org/feed/atom/ XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
http://feed43.com/3874015735218037.xml XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
http://flatearthnews.net/flatearthnews.net/blogfeed XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
http://fulltextrssfeed.com/ XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
http://london.indymedia.org/articles.rss XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
http://pipes.yahoo.com/pipes/pipe.run?_id=ad0530218c055aa302f7e0e84d5d6515&amp;_render=rss XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
http://planet.gridpp.ac.uk/atom.xml XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
http://shirky.com/weblog/feed/atom/ XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
http://thecommune.co.uk/feed/ XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
http://theness.com/roguesgallery/feed/ XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
http://www.airshipentertainment.com/buck/buckcomic/buck.rss XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
http://www.airshipentertainment.com/growf/growfcomic/growf.rss XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
http://www.airshipentertainment.com/myth/mythcomic/myth.rss XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
http://www.baen.com/baenebooks XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
http://www.feedsapi.com/makefulltextfeed.php?url=http%3A%2F%2Fwww.somethingpositive.net%2Fsp.xml&what=auto&key=&max=7&links=preserve&exc=&privacy=I+accept XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
http://www.godhatesastronauts.com/feed/ XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
http://www.tinycat.co.uk/feed/ XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
https://anarchism.pageabode.com/blogs/anarcho/feed/ XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
https://broodhollow.krisstraub.comfeed/ XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
https://debian-administration.org/atom.xml XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
https://feeds.feedburner.com/Starslip XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
https://feeds2.feedburner.com/GeekEtiquette?format=xml XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
https://hackbloc.org/rss.xml XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
https://kajafoglio.livejournal.com/data/atom/ XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
https://kubatpharmacy.com/ XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
https://philfoglio.livejournal.com/data/atom/ XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
https://pixietrixcomix.com/eerie-cutiescomic.rss XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
https://pixietrixcomix.com/menage-a-3/comic.rss XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
https://propertyistheft.wordpress.com/feed/ XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
https://requiem.seraph-inn.com/updates.rss XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
https://studiofoglio.livejournal.com/data/atom/ XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
https://thecommandline.net/feed/ XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
https://torrentfreak.com/subscriptions/ XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
https://twitter.com/statuses/user_timeline/22724360.rss XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
https://web.randi.org/?format=feed&type=rss XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
https://www.dcscience.net/feed/medium.co XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
https://www.DropCatch.com/domain/steampunkmagazine.com XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
https://www.DropCatch.com/domain/ubuntuweblogs.org XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
https://www.DropCatch.com/redirect/?domain=DyingAlone.net XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
https://www.freedompress.org.uk:443/news/feed/ XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
https://www.goblinscomic.com/category/comics/feed/ XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
https://www.loomio.com/blog/feed/ XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
https://www.newstatesman.com/feeds/blogs/laurie-penny.rss XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
https://www.patreon.com/graveyardgreg/posts/comic.rss XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
https://www.rightmove.co.uk/rss/property-for-sale/find.html?locationIdentifier=REGION^876&maxPrice=240000&minBedrooms=2&displayPropertyType=houses&oldDisplayPropertyType=houses&primaryDisplayPropertyType=houses&oldPrimaryDisplayPropertyType=houses&numberOfPropertiesPerPage=24 XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
Humble Bundle Blog XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
I, Cringely XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
Irregular Webcomic! XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
Joel on Software XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
Judith Proctor's Journal XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
Krebs on Security XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
Lambda the Ultimate - Programming Languages Weblog XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
Looking For Group XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
LWN.net XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
Mimi and Eunice XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
Neil Gaiman's Journal XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
Nina Paley XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
O Abnormal – Scifi/Fantasy Artist XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
Oglaf! -- Comics. Often dirty. XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
Oh Joy Sex Toy XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
Order of the Stick XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
Original Fiction Archives - Reactor XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
OSnews XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
Past Events XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
Paul Graham: Unofficial RSS Feed XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
Penny Arcade XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Penny Red XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
PHD Comics XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Phil's blog XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
Planet Debian XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
Planet GNU XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
Planet Lisp XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Pluralistic: Daily links from Cory Doctorow XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
PS238 by Aaron Williams XML 22:14, Wednesday, 20 November 23:02, Wednesday, 20 November
QC RSS XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
Radar XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
RevK®'s ramblings XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
Richard Stallman's Political Notes XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Scenes From A Multiverse XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
Schneier on Security XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
SCHNEWS.ORG.UK XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
Scripting News XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Seth's Blog XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
Skin Horse XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Spinnerette XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
Tales From the Riverbank XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
The Adventures of Dr. McNinja XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
The Bumpycat sat on the mat XML 22:35, Wednesday, 20 November 23:15, Wednesday, 20 November
The Daily WTF XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
The Monochrome Mob XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
The Non-Adventures of Wonderella XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
The Old New Thing XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
The Open Source Grid Engine Blog XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
The Stranger XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
towerhamletsalarm XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
Twokinds XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
UK Indymedia Features XML 21:56, Wednesday, 20 November 22:38, Wednesday, 20 November
Uploads from ne11y XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
Uploads from piasladic XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November
Use Sword on Monster XML 22:14, Wednesday, 20 November 23:01, Wednesday, 20 November
Wayward Sons: Legends - Sci-Fi Full Page Webcomic - Updates Daily XML 21:49, Wednesday, 20 November 22:35, Wednesday, 20 November
what if? XML 22:35, Wednesday, 20 November 23:16, Wednesday, 20 November
Whatever XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
Whitechapel Anarchist Group XML 22:28, Wednesday, 20 November 23:17, Wednesday, 20 November
WIL WHEATON dot NET XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
wish XML 22:21, Wednesday, 20 November 23:06, Wednesday, 20 November
Writing the Bright Fantastic XML 22:21, Wednesday, 20 November 23:05, Wednesday, 20 November
xkcd.com XML 22:21, Wednesday, 20 November 23:04, Wednesday, 20 November