[syndicated profile] whatever_scalzi_feed

Posted by John Scalzi

I never quite got Brian De Palma. An unquestionably talented director, he knew how to make a hit — see Carrie and the first Mission Impossible film — and if he was going to fail, he was going to do it on a scale so grand that people would write books about it (The Bonfire of the Vanities). He was brash, steeped in film lore, and more than happy to make sure you knew when he was showing off, which was often; what were Body Double and Blow Out other than him paying homage to, and then trying to one up, Hitchcock and Antonioni? The chutzpah! The actual brass balls on this guy!

Some people loved it (Pauline Kael, for one, seemed to eat it up, and who was going to argue with her), but I was, and, I have to say, still am, largely unimpressed. Scratch a De Palma film and you’ll very often find there’s no there there — it’s mostly just surface flash and thrill and some very intentional shock and subversion, all very mannered and very little with any resonance. Outside of Carrie — which made household names out of De Palma, Stephen King and Sissy Spacek all in one go — it’s debatable that De Palma ever made a truly classic movie, a world-beating piece of celluloid that is studied for its quality over its kitsch.

(And yes, my dudes, I see you standing up on a table full of cocaine, beating your chest over Scarface and telling me to say hello your little friend. Grand Guignol as it is, what it has going for it is excess. It’s a lot, and I found it tiring, and when Tony Montana finally ended up face down in the water, what I remember thinking was good, now I get to go home.)

So: Brian De Palma. Mostly, not for me! Maybe for you, fine, okay, you do you! But not for me!

Ahhhh, but then there’s The Untouchables. And suddenly, for length of this one single film, Brian De Palma is indeed very much for me.

Come with me now to 1930 Chicago, smack dab in the middle of prohibition, and Treasury Officer Elliot Ness (Kevin Costner, stalwart) has come into town to take on the bootleggers and gangsters, two groups with, shall we say, a rather substantial overlap. Ness has little success at it until he comes across beat cop Jimmy Malone (Sean Connery, the most Scottish Irish cop ever), who knows where all the bodies are buried around town, and where the rum is being run. Together with their small and select team (Andy Garcia, in one of his first big roles, and Charles Martin Smith as comedy relief, until he isn’t), they take on Al Capone (Robert De Niro) the celebrated gangster who is loved by the press, despite the fact that he’ll happily blow up a kid or two if that’s what it takes to keep his grip on the town.

It’s a rich setting, and of course this film is not the first time the prohibition era had been essayed — heck, The Untouchables itself was an update of a late 50s TV series starring Robert Stack. The film was treading a path that had been trod upon many times before. This reappraisal and reinvention of film and television tropes was nothing new to De Palma, who had by this time had homaged directors and source material, including Scarface (originally a 1932 movie starring Paul Muni), and he would go on to retread Mission Impossible. The Untouchables, as a property and as a mode of storytelling, was old hat, both for De Palma or for the culture at large. So what is it that sets this movie apart?

Weirdly — no really, weirdly, because this is a film where one character bashes in the head of another character with a baseball bat — I think what makes this film work is restraint. Brian De Palma is Brain De Palma-ing himself all over this film, with all his stylistic tics and touches and his oh-look-do-you-see-how-I’m-referencing-Eisenstein-aren’t-I-so-very-clever-ness, but he’s doing it at about an 8, rather than an 11. Yes, there is that (rather famous) scene involving a baseball bat, but here’s the thing: what makes it shocking isn’t the assault, it’s the context. De Palma shows us enough of the assault (and the aftermath) to make the point, but, unlike, say, Scarface, there’s no lingering. De Palma gets in, gets what the scene needs, and gets out.

Now, I am going to accept there is skepticism for this thesis of mine. The Untouchables does not exactly skimp on the blood or the occasional shot of someone’s brains all over a window pane. This is a movie that rather handily earns it “R” rating. But my argument is that in these cases it’s not about quantity, it is about quality. Those brains on the window pane are actually in service to the story. They are just enough to fill in the scene, and then we’re moving on. For De Palma, for whom so much of his directorial style is basically more, of whatever it is, not just blood although certainly blood too, this sort of restraint in the service of story feels a little revolutionary. Turns out you can do a whole lot, if you’re not trying to bludgeon your audience into sensory overload.

De Palma didn’t have to drive his audience into sensory overload in no small part because the whole affair is just so incredibly handsomely mounted. The script, by David Mamet before his metaphorical cheese starting slipping off his metaphorical cracker, is sharp and pithy and melodramatic as hell. The set design offers up a version of Chicago that is a beautiful fable — 1930 Chicago didn’t look like this but how wonderful it would have been if it had. The wardrobe — the wardrobe! — is done by Georgio fucking Armani, and by God you can tell, everyone looks so ridiculously good. You can pause the movie at just about any point where there’s not blood being sprayed about, and it will look like a fashion shoot. It’s all so good that the terrific Ennio Morricone score is almost an afterthought. Almost.

And then there’s the cast. Sean Connery won an Oscar for his portrayal of a cop past his prime who decides to do the right thing, even if he knows how little good it will do, and as it’s the film’s only Oscar, it’s not unreasonable that this performance is what the film is remembered for. With that given, I will yet argue that this is Kevin Costner’s movie. It’s hard to remember on this side of Field of Dreams and Dances With Wolves and even Yellowstone, but this is the film that made Kevin Costner an actual star; before this he was playing corpses (The Big Chill, out of which he was mostly cut) and second bananas (Silverado).

In Elliot Ness, Costner found the character he’d carry forward: The compelling square, the do-right stiff you can’t actually take your eyes off of. He’d occasionally tilt off this character, mostly when Ron Shelton needed him to play a gone-to-seed sportsman, but it’s pretty clear that with The Untouchables, Costner learned how his bread would be buttered going forward. He went with it for a good long while.

As for De Niro as Al Capone; well, scenery is chewed, and the chewing is delicious.

The Untouchables is the one Brian De Palma movie I unreservedly love, and enjoy, and rewatch, but this is not to say it is a great film. Even Pauline Kael, famously a De Palma champion, understood this; she wrote that The Untouchables was “not a great movie; it’s too banal, too morally comfortable… But it’s a great audience movie — a wonderful potboiler.” This is exactly right. Not every film has to be great, sometimes “just really goddamned good” is good enough. It just needs every good thing in proportion, and for the director to understand when enough is enough.

For this one film, Brian De Palma seemed be content with just “enough.” It wouldn’t last, and that’s fine. It didn’t have to.

— JS

[syndicated profile] whatever_scalzi_feed

Posted by John Scalzi

See this plot of land, or more accurately in this picture, this plot of snow? It’s the plot that lies directly east of our church property. There had been a house here for many years but a couple of years ago there was a fire, and the house had to be demolished. For some time after that the plot was undeveloped and then, a few weeks ago, it went up for sale.

We bought it.

Why? Because it’s adjacent to our church property, it was within our budget and it potentially gives us room to do some cool stuff. It’s the third expansion of our property since we first made an offer on the church in 2021; we added the parsonage before we closed on the church, then the house directly north, which we tore down because it was in disrepair, making the land a side yard and parking lot for the church, and now this plot to the east. I’m pretty sure this is it for land acquisition near the church, and our land acquisition in general. I don’t want to keep buying up land like I’ve been buying guitars.

So what will we be doing with this plot of land? For the moment, not much. It’s winter now and it’s covered in several inches of snow, and there’s a reasonable chance, given the fact we’re not even in the cold part of the season yet, that the snow will stay (or be added to) for the next couple of months at least. That’s fine. After that, the short term plan will be to seed for ground cover and local pollinating plants and let the bees and birds at it for a while. Beyond that, we’ll see. Now that we own it we have time to think on the best use for it, for us and for the community. We have some ideas, but they’re all very preliminary (i.e., we haven’t actually considered how much work they would require and how much they might cost). In the meantime all we have to do with it is keep it maintained and not an eyesore. We can manage that for sure.

So, merry Christmas to us, we got land this holiday season. Again. Next year, I think we will just get each other socks.

— JS

[syndicated profile] homeassistant_feed

Posted by Home Assistant

Home Assistant 2025.12! 🎄

As the year winds down and the holidays approach, we’re closing out 2025 with a release that’s all about giving you more control and a little bit of magic. ✨

This month, we’re unveiling Home Assistant Labs, a brand-new space where you can preview features before they go mainstream. And what better way to kick it off than with Winter mode? ❄️ Enable it and watch snowflakes drift across your dashboard. It’s completely unnecessary, utterly delightful, and exactly the kind of thing we love to build. ❄️

But that’s just the beginning. We’ve been working on making automationsAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more] more intuitive over the past releases, and this release finally delivers purpose-specific triggers and conditions. Instead of thinking in (numeric) states, you can now simply say “When a light turns on” or “If the climate is heating”. It’s automation building the way our mind works, as it should be. 🧠

Oh, and if you’re looking to level up your Zigbee or Thread network, check out the Home Assistant Connect ZBT-2 we released last month. It’s four times faster and has a gorgeous new antenna design that you’ll actually want to display on your desk. 📡

From all of us working on Home Assistant:

Thank you for an amazing 2025! ❤️

Happy holidays, and enjoy the release!

../Frenck

A little holiday cheer 🎄🎶

Jingle Labs by Frenck and Darren

Dashing through the code,
With a brand-new Labs to show,
Snowflakes start to fall,
Watch the dashboard glow!
Triggers now make sense,
Conditions feel just right,
What fun it is to automate,
Your smart home every night!

Chorus
Jingle Labs, jingle Labs,
Features on the way!
Oh what fun it is to run,
Home Assistant every day, hey!

Jingle Labs, jingle Labs,
Winter mode is here!
Turn your lights on with a thought,
And spread some holiday cheer!

Power graphs are live,
Water meters too,
Dashboards you can set,
For every user’s view!

Xbox got some love,
Shelly’s platinum now,
Contributors came through this year,
Take a final bow!

Chorus
Jingle Labs, jingle Labs,
Triggers for the win!
Climate, lights, and fans galore,
Let the automations spin!

Jingle Labs, jingle Labs,
Thank you all so much!
Happy holidays from us,
Now go and automate stuff!

A huge thank you to all the contributors who made this release possible! And a special shout-out to @TimoPtr, @laupalombi, @jlpouffier, and @MindFreeze who helped write these release notes. Also, @edenhaus, @tr4nt0r, @jpbede, @RaHehl, @bieniu, @arturpragacz, and @piitaya for putting effort into tweaking its contents. Thanks to them, these release notes are in great shape. ❤️

Home Assistant Labs 🧪

When we develop new features for Home Assistant, we often find ourselves in a tricky spot. A feature might be fully built and tested, but we’re not entirely sure if it’s the right fit for everyone just yet. Maybe we want to gather some real-world feedback first, or perhaps we want to see how the community uses it before committing to keeping it around forever.

That’s where Home Assistant Labs comes in! 🧪

Labs is a brand-new place in Home Assistant that gives you a sneak peek at features we’re working on. These are not unfinished experiments or unstable beta features. They are fully functional and tested, but they might change or even disappear based on feedback. We are committed to building in the open, and we want to give more people the choice to hop into the lab with us. By joining us, your feedback will directly help refine these features for the entire community.

Screenshot showing the new Home Assistant Labs panel with preview features you can enable or disable.

The very first preview feature available in Labs is Winter mode ❄️, inspired by a community post on Reddit originally created by u/Possible-Week-5815. Enable it, and watch your Home Assistant interface transform into a winter wonderland with falling snow. A fun way to get into the holiday spirit!

Screenshot showing the backup option when you enable a preview feature.

When you enable a preview feature, you can also choose to create a backup first, just to be safe. And if you change your mind? Simply disable it again. No restart required!

Preview features are off by default, and enabling them won’t affect your existing setup. It’s completely optional, so if you prefer to stick with the battle-proven experience, that’s totally fine. But if you’re curious and want to explore what’s coming next, Labs is the place to be.

But what was the first Labs preview feature we put in there? Well, it’s a big one…

Purpose-specific triggers and conditions

Almost two years ago, we released a new automationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more] editor that unwrapped all our actionsActions are used in several places in Home Assistant. As part of a script or automation, actions define what is going to happen once a trigger is activated. In scripts, an action is called sequence. [Learn more] and made them easier to understand. Instead of a single, obscure “Call service” action, you now see clear options like “Light: Turn on” or “Media Player: Set Volume”.

Ever since, we’ve been wondering: could we do the same for triggersA trigger is a set of values or conditions of a platform that are defined to cause an automation to run. [Learn more] and conditionsConditions are an optional part of an automation that will prevent an action from firing if they are not met. [Learn more]? Instead of relying on technical, state-based options, what if we could offer intuitive alternatives that just make sense? Options like “When a light turns on” or “If a light is on”.

That idea set a two-year plan in motion, and today it’s finally becoming a reality.

Screenshot showing the new purpose-specific triggers and conditions in the automation editor.

Along the way, we discovered something interesting: many of you take a “target-first” approach when building automationsAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more]. You think about what you want to automate (a deviceA device is a model representing a physical or logical unit that contains entities., an entityAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more], or an areaAn area in Home Assistant is a logical grouping of devices and entities that are meant to match areas (or rooms) in the physical world: your home. For example, the living room area groups devices and entities in your living room. [Learn more]) before thinking about how to automate it (which action to perform or which trigger to use). This release embraces that mindset with a completely new way to build automations.

Purpose-specific triggers and conditions are now provided directly by domainsEach integration in Home Assistant has a unique identifier: The domain. It is often shown as the first part (before the dot) of entity IDs. like Light, Climate, Fan, and others, covering the most common automation use cases.

These new triggers and conditions fully support targeting. This means you can trigger an automation when any light in your living room turns on, without having to list them one by one or create a group beforehand. Targeting an area keeps things simple: it’s always aligned with how your home is organized, and you don’t have to update anything when you add or remove devices.

Screenshot showing the new target-first picker for triggers, conditions, and actions.

LabelsLabels in Home Assistant allow grouping elements irrespective of their physical location or type. Labels can be assigned to areas, devices, entities, automations, scenes, scripts, and helpers. Labels can be used in automations and scripts as a target for actions. Labels can also be used to filter data. [Learn more] are supported too! You can now check if any of your Christmas lights are on. Perfect timing for the holidays! 🎄

We’ve also introduced a new way to pick triggers, conditions, and actions that fits this target-first approach. You can navigate your home by floorA floor in Home Assistant is a logical grouping of areas that are meant to match the physical floors in your home. Devices & entities are not assigned to floors but to areas. Floors can be used in automations and scripts as a target for actions. For example, to turn off all the lights on the downstairs floor when you go to bed. [Learn more], then area, then device, and see exactly which options are available for each target. It’s a much more intuitive way to build automationsAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more].

This feature is still being refined, so we’ve made it available as a preview feature in Labs. Head over to Settings > System > Labs to enable it and help us shape the future of automation building!

More dashboard improvements!

We have a lot of dashboard improvements to share in this release! From better default dashboard management to an improved Home dashboard, we have been busy making your Home Assistant experience even better.

Set a system-wide default dashboard

Picking a default dashboard is now a system-level setting that takes effect instantly for all users on your Home Assistant installation. The dashboard you choose will appear at the top of the sidebar, replacing the current default.

Screenshot showing the Dashboard configuration page and the option to make any dashboard default in the three dots menu.

But don’t worry, personal preferences still matter! We added a new setting in your User profile where you can override the system default and set your own preferred dashboard.

If you set your phone to one dashboard and your wall tablet to another, they’ll now both revert to the default dashboard. If you want your wall tablet to use a different dashboard than your other devices, we recommend giving it a separate user profile that you can customize however you want.

Reorder areas and floors

When using the built-in dashboard experiences (Home, Lights, Security, and others), one of the main pain points was the strict ordering of areasAn area in Home Assistant is a logical grouping of devices and entities that are meant to match areas (or rooms) in the physical world: your home. For example, the living room area groups devices and entities in your living room. [Learn more] (alphabetically) and floorsA floor in Home Assistant is a logical grouping of areas that are meant to match the physical floors in your home. Devices & entities are not assigned to floors but to areas. Floors can be used in automations and scripts as a target for actions. For example, to turn off all the lights on the downstairs floor when you go to bed. [Learn more] (numerically by level). This often didn’t make sense in a real home, where your guest bathroom shouldn’t appear before your living room, and the attic is rarely more relevant than the main floor.

Now you can go to Settings > Areas, labels & zones and use the new Reorder floors and areas menu to manually drag and drop any area or floor to reorder them. Your changes will instantly apply to all built-in dashboards that show areas and floors.

Screenshot showing the reorder areas and floors menu.

Experimental dashboards have graduated

With the launch of Labs, we retired the experimental flag from the dashboard creation list. The Home dashboard can now be found in the dashboard list (still not visible by default), and the Areas dashboard has evolved into Home, so we’ve removed it for now. If you’re using the Areas dashboard, it will continue to work; you just won’t be able to create another.

Note

We want to keep hearing your voice! Share your experience with us in the Home dashboard survey and help us improve every step of the way. And of course join us on Discord to work together on the future of dashboards.

Home dashboard improvements

We added a new sidebar to the Home dashboard that gathers quick access links we think are useful for you. There’s also a nicer area and floor layout that uses space more efficiently. On a more technical level, the Home dashboard is now a proper built-in dashboard and shows up in the dashboard list.

Important

There is a chance your current favorites might disappear in this release and need to be re-added. This is due to the migration of this dashboard from a strategy to a built-in dashboard.

Undo and redo in the dashboard editor

The dashboard editor now includes the undo and redo feature that we added in 2025.10 to the automationAutomations in Home Assistant allow you to automatically respond to things that happen in and around your home. [Learn more] and scriptScripts are components that allow users to specify a sequence of actions to be executed by Home Assistant when turned on. [Learn more] editor. This allows you to experiment safely while editing your dashboards. You can undo up to 75 changes or restore them with a single click, making editing dashboards faster and less stressful.

Thanks to @jpbede for implementing this handy feature!

Power and water in the Energy dashboard

The Energy dashboard has been helping you track your energy and gas usage for years now, and this release brings two great additions: real-time power monitoring and downstream water tracking.

Real-time power monitoring

Until now, the Energy dashboard was all about energy: the cumulative kWh you’ve consumed or produced over time. But sometimes you want to know what’s happening right now. How much power is that appliance actually drawing? Is your solar system producing at this very moment?

With this release, you can now configure power sensors alongside your energy sensors. Track your real-time grid consumption, see how much you’re exporting back to the grid, and watch those watts flow in real-time. The power configuration options now appear alongside energy settings for each source or device, and new power graphs let you see your power consumption throughout the day.

Screenshot showing the power sources graph Screenshot showing the power sankey graph

Downstream water meters

The Energy dashboard has been tracking your water consumption for a while now, but it was missing something: the ability to see where all that water is actually going. Just like you can track individual devices for energy consumption, you can now add downstream water meters to break down your water usage.

Got a smart irrigation controller? A water softener with a flow meter? A separate meter for your pool? Now you can track them all and see exactly how your water consumption is distributed across different uses.

There’s also a brand-new water sankey card that visualizes your water flow, just like the energy sankey diagram you already know. It’s a great way to see where your water is going at a glance.

Screenshot showing the water sankey card visualizing water consumption The new water sankey card shows where your water is going at a glance.

New energy layout

To make room for this new functionality, the Energy dashboard has been reorganized. Don’t worry: if you only have energy configured, you’ll still see the same dashboard. But if you add water, gas, or power, the dashboard will be split into several tabs.

Screenshot showing the new Energy dashboard layout with tabs for energy, water, gas, and power.

Integrations

Thanks to our community for keeping pace with the new integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] and improvements to existing ones! You’re all awesome 🥰

New integrations

We welcome the following new integrations in this release:

  • Airobot, added by @mettolen
    Control and monitor your Airobot smart thermostats for intelligent floor heating control via the local REST API.
  • Anglian Water, added by @pantherale0
    Integrate your Anglian Water smart water meter to track water usage and consumption costs.
  • Backblaze B2, added by @ElCruncharino
    Use a Backblaze B2 cloud storage bucket as a backup location for your Home Assistant backups.
  • EnergyID, added by @Molier
    Sync anything from your home directly to EnergyID for advanced analytics, performance tracking and benchmarking.
  • Essent, added by @jaapp
    Monitor dynamic electricity and gas prices for Essent customers in the Netherlands with variable pricing contracts.
  • Google Air Quality, added by @Thomas55555
    Get real-time air quality data for your location using Google’s Air Quality API.
  • Google Weather, added by @tronikos
    Use Google Weather as a source for weather data, providing current conditions, hourly forecasts for the next 24 hours, and daily forecasts for the next 10 days.
  • Hanna, added by @bestycame
    Fetch pool water quality data from your Hanna Pool Controller device, including pH, chlorine levels, ORP values, and water temperature.
  • Home Assistant Labs, added by @frenck
    A dedicated panel where you can preview and test new features before they become standard in Home Assistant.
  • Philips Hue BLE, added by @flip-dots
    Control your Philips Hue Bluetooth lights directly with Home Assistant, without the need for a Hue Bridge.
  • Saunum, added by @mettolen
    Integrate your Saunum Leil sauna control unit to precisely control temperature and monitor your sauna’s operation.
  • Victron BLE, added by @rajlaud
    Integrate Victron Energy devices that support the Bluetooth Low Energy protocol for real-time monitoring.

This release also has new virtual integrations. Virtual integrations are stubs that are handled by other (existing) integrations to help with findability. These ones are new:

Noteworthy improvements to existing integrations

It is not just new integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] that have been added; existing ones are also being constantly improved. Here are some of the noteworthy changes to existing integrations:

  • @piitaya updated the ESPHome integration to let Home Assistant generate entity IDs using its standard rules, aligning it with how other integrations work.
  • Thanks to @bdraco, you can configure Wi-Fi on Shelly generation 2+ devices directly from Home Assistant via Bluetooth.
  • Shelly now supports control modes for upcoming Shelly Cury devices. Nice work, @bieniu!
  • Thanks to @gjohansson-ST, System Monitor now exposes fan sensors and battery sensors for your system.
  • The Tuya integration received a lot of love! Cat litter boxes now expose switches, buttons, lights, and sensors for controlling your pet’s automated litter box. On top of that, doorbell events are now supported too. Thanks, @heindrichpaul!
  • @starkillerOG expanded the Reolink integration with an exposure mode select and audio noise reduction controls for supported cameras.
  • The OpenAI Conversation integration now supports GPT-5.1 models. Great work, @Shulyaka!
  • Air conditioner and microwave support has landed in the Home Connect integration, expanding the range of supported BSH appliances. Thanks, @Diegorro98!
  • @zerzhang added support for the SwitchBot smart thermostat radiator to the SwitchBot integration. Nice!
  • The Xbox integration got some love from @tr4nt0r! You can now link multiple Xbox accounts, track how many friends you (and your friends) have, see if they’re in a party, and control more remote functions. The media browser also gained a new category showcasing official game art and screenshots.
  • Got an Ecovacs robot? The Ecovacs integration now has a border spin switch (to reach those tricky edges while mopping) and an auto-empty select entity. Thanks, @aronnebrivio!
  • The VeSync integration gained a child lock switch, giving you control over this safety feature for your devices. Thanks, @cdnninja!
  • @XiaoLing-git added support for the SwitchBot smart radiator thermostat to the SwitchBot Cloud integration.
  • The SQL integration now supports using templates in your queries, giving you more flexibility when querying your databases. Great addition, @gjohansson-ST!
  • @tomwilkie expanded the Prometheus integration to export metrics for the water_heater domain.
  • The Anthropic integration now supports AI task entities. Thanks, @Shulyaka!
  • Portainer can now show you resource usage of your containers. Nice work, @erwindouna!
  • @thomasddn added a button to enable reduced guard mode for compatible vehicles to the Volvo integration.
  • The Plugwise integration now supports the new Anna P1 device and gained a select entity for zone profiles on Adam devices. Thanks, @bouwew!
  • Bang & Olufsen users can now use their Beoremote One with Home Assistant. The remote’s buttons are exposed as event entities. Awesome, @mj23000!
  • @VandeurenGlenn added the climate platform to Niko Home Control, letting you control your Niko heating zones.
  • The Saunum integration now supports fan control, giving you control over your sauna ventilation. Thanks, @mettolen!
  • @nasWebio added alarm control panel support to the NASweb integration, allowing you to arm and disarm your security system.
  • The Nederlandse Spoorwegen integration received a refactor to improve reliability and maintainability. Thanks, @heindrichpaul!

Integration quality scale achievements

One thing we are incredibly proud of in Home Assistant is our integration quality scale. This scale helps us and our contributors to ensure integrations are of high quality, maintainable, and provide the best possible user experience.

This release, we celebrate several integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] that have improved their quality scale:

This is a huge achievement for these integrations and their maintainers. The effort and dedication required to reach these quality levels is significant, as it involves extensive testing, documentation, error handling, and often complete rewrites of parts of the integration.

A big thank you to all the contributors involved! 👏

Now available to set up from the UI

While most integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] can be set up directly from the Home Assistant user interface, some were only available using YAML configuration. We keep moving more integrations to the UI, making them more accessible for everyone to set up and use.

The following integration is now available via the Home Assistant UI:

Farewell to the following

The following integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] are no longer available as of this release:

  • Dominos Pizza: The Dominos Pizza integration has been removed. The integration no longer functions and its underlying source has been unmaintained since 2019.
  • Flick Electric: The Flick Electric integration has been removed. All customers of the Flick Electric company have already been moved to Meridian Energy. The service this integration used is already non-functional.
  • The following integrations have been removed as they are incompatible with the currently supported installation methods:
    • Bluetooth Tracker
    • CUPS
    • Decora
    • dlib Face Detect
    • dlib Face Identify
    • Eddystone Temperature
    • GStreamer
    • Keyboard
    • LIRC
    • Pandora
    • Raspberry Pi Camera
    • SMS
    • Snips
    • TensorFlow

Other noteworthy changes

There are many more improvements in this release; here are some of the other noteworthy changes:

  • New template math functions! @akx added clamp, wrap, and remap to manipulate numbers in your templates. Awesome!
  • The activity card now supports filtering by state, making it easier to see specific events. Nice one, @karwosts!
  • @MindFreeze added min and max options to the bar gauge feature for tile cards, giving you more control over the gauge range.
  • You can now delete helpers directly from the helpers panel, without having to open them first. Thanks, @frenck!
  • The blueprints panel now shows how many automations and scripts use each blueprint. Great for keeping track, @EarMaster!
  • @timmo001 added a handy trick: double-click the automation editor sidebar to reset its width.
  • Labels now show up on the device information card, making it easier to see how your devices are organized. Thanks again, @timmo001!

Get insight into your AI conversations

Ever played around with AI in Home Assistant and wondered what data is actually being sent?

@balloob upgraded the voice assistant debug interface, and you can now inspect the system prompt that tells the AI how to behave, along with any tool calls it made to generate your answer.

This makes it much easier to figure out why the AI decided to skip over that one entityAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more], or why it called a specific tool. You can find the debug interface in the voice assistant configuration panel.

Screenshot showing the new AI conversation debug interface with system prompt and tool calls visible.

Add entities to Android widgets and favorites

If you’re using the Home Assistant Companion app for Android, there’s a handy new feature waiting for you! Starting with app version 2025.11, you can now add entitiesAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more] to widgets and Android Auto favorites directly from the entity’s more info dialog.

Screenshot showing the new 'Add to' option in the more info dialog for an entity in the Home Assistant Android app.

With just a few taps, you can:

  • Add widgets for quick control of entities right from your home screen
  • Set entities as Android Auto favorites, making them quickly accessible in your car

No more deep-diving into app settings! The Add to option appears in the more info dialog with options tailored to the entity you’re viewing. For example, adding a media player widget is only available for media players.

This is a first step in integrating native mobile features directly into the Home Assistant interface. Future releases will expand this with support for creating shortcuts, tiles, and watch favorites.

Thanks for this great addition, @TimoPtr! 🙏

Need help? Join the community

Home Assistant has a great community of users who are all more than willing to help each other out. So, join us!

Our very active Discord chat server is an excellent place to be, and don’t forget to join our amazing forums.

Found a bug or issue? Please report it in our issue tracker to get it fixed! Or check our help page for guidance on more places you can go.

Are you more into email? Sign up for the Open Home Foundation Newsletter to get the latest news about features, things happening in our community, and other projects that support the Open Home straight into your inbox.

Backward-incompatible changes

We do our best to avoid making changes to existing functionality that might unexpectedly impact your Home Assistant installation. Unfortunately, sometimes it is inevitable.

We always make sure to document these changes to make the transition as easy as possible for you. This release has the following backward-incompatible changes:

Core and Supervised installation methods, and 32-bit systems

After a 6-month deprecation period, support for the Home Assistant Core and Home Assistant Supervised installation methods, as well as all 32-bit system architectures (i386, armhf, and armv7), has now been fully removed.

These installation methods and architectures will no longer receive updates, including security updates. If you are still using one of these installation methods or architectures, please migrate to a supported installation method and architecture as soon as possible to continue receiving updates and support.

For more information on this change, read the Deprecating Core and Supervised installation methods, and 32-bit systems blog post.

Hive

Hive has removed support for their security products. We have removed the alarm control panel from the integration, as the Hive APIs no longer support these products.

(@KJonline - #156184) (hive docs)

Templates

The issues() templating method used to return all issues, including fixed issues. From now on, only active issues are returned.

(@jbouwh - #156274)

go2rtc

It is now required to set a username and password when enabling the debug UI.

(@edenhaus - #157008) (go2rtc docs)

UniFi Protect

The legacy license plate event sensor has been removed from the UniFi Protect integration, as it no longer functions with Protect 6 and newer. The UniFi Protect integration has not been compatible with Protect versions older than 6 for quite some time.

This sensor has been replaced with a new Vehicle Detection Event entity that provides significantly more functionality, including license plate recognition, vehicle type detection, color detection, and confidence scores. The new event entity fires with a 3-second delay to ensure optimal thumbnail and LPR data quality.

For more information and automation examples, see the Vehicle Detection Event documentation.

(@RaHehl - #157196, #157203) (unifiprotect documentation)

Xbox
  • The Xbox media browser has been completely overhauled to support multiple accounts and introduce a range of other improvements. As part of this update, the format of the media-source identifiers has been changed as well.

  • The following and followers sensors introduced in the last release previously included friends in their counts. After a recent API update, friends are no longer included.

(@tr4nt0r - #155925) (@tr4nt0r - #155536) (xbox docs)

If you are a custom integration developer and want to learn about changes and new features available for your integration: Be sure to follow our developer blog. The following changes are the most notable for this release:

All changes

Of course, there is a lot more in this release. You can find a list of all changes made here: Full changelog for Home Assistant Core 2025.12.

[syndicated profile] linode_status_new_feed

Posted by Linode

Dec 4, 09:00 UTC
Completed - The scheduled maintenance has been completed.

Dec 4, 06:00 UTC
In progress - Scheduled maintenance is currently in progress. We will provide updates as necessary.

Dec 3, 21:36 UTC
Update - We will be undergoing scheduled maintenance during this time.

Dec 3, 15:32 UTC
Scheduled - The Linode API will be undergoing scheduled maintenance during this time. We will be monitoring this to ensure that the service is stable. If you experience issues, open a Support ticket, please call us at 855-454-6633 (+1-609-380-7100 Intl.), or send an email to support@linode.com.

[syndicated profile] linode_status_new_feed

Posted by Linode

Dec 3, 16:48 UTC
Identified - Our team has identified the issue affecting booting up GPU and VPU plans. We are working quickly to implement a fix, and we will provide an update as soon as the solution is in place.

Dec 3, 15:15 UTC
Investigating - Our team is investigating an emerging service issue affecting booting up GPU plans. We will share additional updates as we have more information.

[syndicated profile] whatever_scalzi_feed

Posted by John Scalzi

The Whatever Holiday Gift Guide 2025 continues, and today we move away from books and focus on other gifts and crafts — which you can take to mean just about any other sort of thing a creative person might make: Music, art, knitting, jewelry, artisan foodstuffs and so on. These can be great, unique gifts for special folks in your life, and things you can’t just get down at the mall. I hope you see some cool stuff here.

Please note that the comment thread today is only for creators to post about their gifts for sale; please do not leave other comments, as they will be snipped out to keep the thread from getting cluttered. Thanks!

Creators: Here’s how to post in this thread. Please follow these directions!

1. Creators (of things other than books) only. This is an intentionally expansive category, so if you’ve made something and have it available for the public to try or buy, you can probably post about in this thread. The exception to this is books (including comics and graphic novels), which have two previously existing threads, one for traditionally-published works and one for non-traditionally published works (Note: if you are an author and also create other stuff, you may promote that other stuff today). Don’t post if you are not the creator of the thing you want to promote, please.

2. Personally-created and completed works only. This thread is specifically for artists and creators who are making their own unique works. Mass-producible things like CDs, buttons or T-shirts are acceptable if you’ve personally created what’s on it. But please don’t use this thread for things that were created by others, which you happen to sell. Likewise, do not post about works in progress, even if you’re posting them publicly elsewhere. Remember that this is supposed to be a gift guide, and that these are things meant to be given to other people. Also, don’t just promote yourself unless you have something to sell or provide, that others may give as a gift.

3. One post per creator. In that post, you can list whatever creations of yours you like, but allow me to suggest you focus on your most recent creation. Note also that the majority of Whatever’s readership is in the US/Canada, so I suggest focusing on things available in North America. If you are elsewhere and your work is available there, please note it.

4. Keep your description of your work brief (there will be a lot of posts, I’m guessing) and entertaining. Imagine the person is in front of you as you tell them about your work and is interested but easily distracted.

5. You may include a link to a sales site if you like by using dropping in a URL. Be warned that if you include too many links (typically three or more) your post may get sent to the moderating queue. If this happens, don’t panic: I’ll be going in through the day to release moderated posts. Note that posts will occasionally go into the moderation queue semi-randomly; Don’t panic about that either.

6. As noted above, comment posts that are not from creators promoting their work as specified above will be deleted, in order to keep the comment thread useful for people looking to find interesting work.

Now: Tell us about your stuff!

Tomorrow: Fan Favorites!

[syndicated profile] whatever_scalzi_feed

Posted by John Scalzi

Master and Commander: The Far Side of the World wastes no time in getting the viewer acquainted with the HMS Surprise; in a few brief moments we’re given a sailor’s-eye view of the cramped below decks, home to the crew in their hammocks and livestock in tiny pens, a series of 12-pound guns and some very low ceilings. Then we’re on deck for the dawn and the change of crew, and as this is 1805, this involves sailors climbing up and down rigging and officers in stiff suits and tall hats. It’s all very peaceful, until the French privateer Acheron comes out of the fog and starts taking the Surprise apart with its cannons.

And those scenes, too, waste no time at all: In impressively quick fashion the Surprise is blasted near into splinters, some of which impale themselves into the bodies of the crew; the Captain, “Lucky Jack” Aubrey, is concussed near to death; the ship’s surgeon Stephen Maturin is so quickly drenched in the crew’s blood that he calls for sand to be thrown on the floor to keep him from slipping as he operates; and despite the courage of the ship’s crew and the pounding of their own cannon, it is only a lucky fogbank, and the backs of rowers, that keep the Surprise alive to live another day.

It’s all beautifully shot and nothing about it is in the least bit romantic. One or two lucky cannonballs more and this movie would have been an Oscar-nominated short film, not an Oscar-nominated feature. In its way, this opening was a risk for the story: Very few movies this century would open with their dashing hero (and attendant film star) so comprehensively being handed his ass as Aubrey and Russell Crowe, who embodies him, are here.

But then, this is one of the things that makes Master and Commander so watchable; it’s unflinching, in a strikingly cinematic way. Unlike its nautical contemporary Pirates of the Caribbean (both released in 2003), this movie isn’t about pretending the past is full of dashing adventures where everyone is beautiful and nothing really hurts. Lots of things hurt in this version of the early 19th century. Everything is crowded and cramped, the joys of the day are limited to an extra ration of rum, you may find yourself whipped for disrespecting an officer, and you might be given an order by your captain that sends your best mate to his death. Oh, and there’s still the Acheron out there somewhere, waiting to stuff you full of grapeshot and death.

One of the things that sells all of this is Crowe, who in 2003 was in the imperial phase of his career, and on a streak of indelible performances that started with LA Confidential, continued through Gladiator and A Beautiful Mind and ended up here. Crowe’s Aubrey is an interesting study of contradictions: both a proponent of order and a little bit feral, a man who can inspire nearly mythical levels of loyalty, and then turn around and offer some of the worst puns recorded to celluloid. He can slap down his best friend Maturin when the two of them are at philosophical odds, and then go to heroic lengths for Maturin’s well-being. Crowe at his height was a movie star of the first water, and he was pretty close to his height here.

(To be clear, he’s helped by having a counterweight in Paul Bettany’s Maturin — the two men had worked together very effectively in A Beautiful Mind, and their chemistry continues here. Bettany is not here nor ever was the movie star Crowe is, but he’s as good an actor for certain, and his angularity and sardonicism complement Crowe’s ruddiness and bluster. You can believe these two could fight so explosively and still be friends afterward. A shame they have not worked together since this.)

Master and Commander was a passion project for Tom Rothman, then head of 20th Century Fox, which explains how it was made at all. The Pirates of the Caribbean notwithstanding, no one in the early years of the 21st century was screaming for a naval adventure, particularly a realistic one set in the days of the struggle between Britain and Napoleonic France. Certainly the movie’s box office reflected this: it brought in $82.6 million at the domestic box office, below Freddy Vs. Jason and Daddy Day Care.

But then, what’s the point of being boss if you can’t occasionally make what you want to make? Fox and Rothman certainly spared no expense; the film had a $150 million budget and an A-list director in Peter Weir, whose career had an interesting range to it, from Witness to The Truman Show. The film was nominated for 10 Oscars, including Best Picture and Director, and deservingly won for cinematography (Russell Boyd) and sound editing (Richard King, the first of five, so far, for him). This film was a classic prestige play and Oscar bait, and in that respect it paid off pretty well. In a different year it might have even won Best Picture, but in this year it was up against The Return of the King, so.

Are there flaws to note in this film? Well, it’s a nautical sausage fest, for one, which one hand isn’t terribly surprising given almost all of the movie takes place on a 19th century British naval vessel, where women mostly weren’t. The Patrick O’Brien novels on which the film was based do have notable women characters, so it’s possible that if the movie had been more financially successful, at least a couple of them might have appeared in the sequels. But here there’s exactly one, glimpsed briefly by Aubrey as his crew is buying oranges and monkeys for their journey. A Bechdel Test passer, this film is not.

Speaking of the novels, fans of the Aubrey-Maturin novels might grumble that the movie doesn’t especially closely follow any one of them, and made significant alterations to ones it did borrow from. I can acknowledge their potential dissatisfaction while at the same time saying that for someone who is not a devotee of the series (raises hand), what is here seems to work well enough, and it was a shame, if not a surprise, that we didn’t get any more films out of these books. Nor do I think we will be getting any more films out of these books; if I were pitching these books in Hollywood now, I’d be pitching them as a prestige streaming series, a medium and mode where I think there would be more appetite for such a thing, and where the story might make more economic sense.

Still, I’m glad that Rothman decided to spend a little bit (or actually a lot) of the money Fox was getting out of the X-Men and Ice Age series to make this extremely handsome, extremely rewatchable ballad to the high seas. I’m glad I didn’t live in an age where I might find myself on one of these ships, and Master and Commander really confirms that if I did live then, I would best be left on dry land. But given appropriate distance in time and nautical miles, I’m happy to get this glimpse into a life on the sea, and wave as it sails by.

— JS

TLS Settings in 2025

Dec. 2nd, 2025 01:10 pm
[syndicated profile] sweharris_feed

Back in 2016 and then in 2020 I described how to get an A+ score with your TLS config.

That was 5 years ago. Since then OpenSSL and Apache have both advanced and there’s even more options than before. Nicely OpenSSL can now also use the official TLS names for ciphers, so we don’t need to keep switching between entries reported by Qualys SSL Labs and the OpenSSL internal names.

I’m also migrating to Debian, which has some differences.

Since we’re at it, we can also set security headers and make sure we have a proper CAA DNS entry set.

Support RSA and ECDSA certificates

In 2021 I described how to configure apache to support modern certificates based on elliptical curves, as well as traditional RSA certificates. That blog entry also describes how I use Dehydrated to get these certs from LetsEncrypt. With newer versions of Apache (eg RedHat 8 onwards, or Debian) we can specify this pretty easily; e.g.

	SSLCertificateFile /etc/apache2/SSL/sweharris/fullchain.pem
	SSLCertificateKeyFile /etc/apache2/SSL/sweharris/privkey.pem

	SSLCertificateFile /etc/apache2/SSL/sweharris_ecdsa/fullchain.pem
	SSLCertificateKeyFile /etc/apache2/SSL/sweharris_ecdsa/privkey.pem

Debian Ciphers Out Of The Box

The default configuration for Debian is SSLCipherSuite HIGH:!aNULL. You might think that’s good. Unfortunately it’s not. Reading the openssl-ciphers(1) manual page we see

HIGH - “High” encryption cipher suites. This currently means those with key lengths larger than 128 bits, and some cipher suites with 128-bit keys.

This setting results in a B grade by SSL Labs because a number of those ciphers do not include “forward secrecy”. Forward secrecy (FS) is very much a nice thing to have; it means that if your private key ever leaks then it can not be used to decrypt old saved traffic logs (which is what “harvest now, decrypt later” type attacks try to do; save your data now, decrypt it in the future). After all, key management is one of the hardest parts of encryption!

So what OpenSSL means by “HIGH” is simply the bit strength.

Debian also defaults to a complicated protocol list; SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1. The practical result of this is versions 1.2 and 1.3 are supported. I’m guessing it’s written this way so that if a mythical 1.4 was ever supported then this line wouldn’t need changing.

Remove all the non-FS ciphers

Fortunately the SSL Labs results page can be used to get a list of all the ciphers that were supported by the default configuration and it flags those that provide FS. A bit of cut’n’paste and editing resulted in this list:

	TLS_AES_128_GCM_SHA256
	TLS_AES_256_GCM_SHA384
	TLS_CHACHA20_POLY1305_SHA256
	TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
	TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
	TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
	TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256
	TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256
	TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256
	TLS_DHE_RSA_WITH_AES_128_CCM
	TLS_ECDHE_ECDSA_WITH_AES_128_CCM
	TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
	TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
	TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
	TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384
	TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384
	TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384
	TLS_DHE_RSA_WITH_AES_256_CCM
	TLS_ECDHE_ECDSA_WITH_AES_256_CCM
	TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
	TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
	TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256

Unfortunately it doesn’t seem as if OpenSSL has a short-cut for these “FS” ciphers, so we have to list each one separately on the SSLCipherSuite line.

We need CBC as well

As in 2020, this still results in some older software being unable to negotiate a cipher, even though they support TLS1.2. SSL Labs still flags CBC ciphers as weak, but it doesn’t reduce the score. So let’s add these two in:

	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

Is this too much?

What I noticed in the results was that although we offer every cipher, all the simulations provided by the SSL Labs tester ended up only using a subset of them! So we could provide a small list of ciphers

	TLS_AES_128_GCM_SHA256
	TLS_AES_256_GCM_SHA384
	TLS_CHACHA20_POLY1305_SHA256
	TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
	TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
	TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
	TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
	TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

This is shorter and so may (especially on TLS1.2) result in smaller packets. The downside is that an odd client may need one of the other ones.

But with this configuration, we get the following results:

	SSLCipherSuite TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256:TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS ciphers

HSTS and other headers

To round this off we need to specify strict transport security headers.

	Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"

While we are here we can also add some other good and useful security headers.

I consider these to be a good default, but you might have different needs.

	ServerSignature off
	ServerTokens Prod

	Header set X-Content-Type-Options "nosniff"
	Header set X-XSS-Protection "1; mode=block"
	Header set X-Frame-Options "SAMEORIGIN"
	Header set Referrer-Policy "no-referrer"
	Header set Permissions-Policy: interest-cohort=()
	Header set Content-Security-Policy: script-src 'self'

The Content-Security-Policy entry is very likely to need to be customised for your site; e.g. if you include fonts from Google you’d need to include those here. Check out Scott Helme’s description for an introduction to CSP.

And a Security Headers scan nicely returns an “A” score with that setup.

Restricting what CAs can be used

A well behaved Certificate Authority will check to see if the requested domain has a Certificate Authority Authorization (CAA) policy defined and, if one is found, will only issue certificates if permitted. This is set in DNS. Since I use LetsEncrypt I have a simple policy:

	@       IN      CAA     0       issue   "letsencrypt.org"

HTTP/2 support

This isn’t really needed but it might be useful to set up. It can speed up traffic and reduce overhead with TLS1.2. With Debian it’s as simple as doing a a2enmod http2. On RedHat systems you may need to dnf install mod_http2 first.

The result

TLS results

And all the clients that support TLS1.2 or TLS1.3 and are simulated by SSL Labs connect cleanly.

New Blog Post

Dec. 2nd, 2025 02:22 pm
sweh: (Vroomba)
[personal profile] sweh
New blog post in which I discuss how to configure TLS in 2025 to get an A+ score, along with some security header settings to get an A score, and a small bit on CAA (to restrict what CAs can be used) and HTTP/2. https://www.sweharris.org/post/2025-12-02-ssl-redux/
[syndicated profile] whatever_scalzi_feed

Posted by John Scalzi

Today is Day Two of the Whatever Holiday Gift Guide 2025, and today the focus is on Non-Traditionally Published Books: Self-published works, electronically-exclusive books, books from micro presses, books released outside the usual environs of the publishing world, and so on. Hey, I put my first novel up on this very Web site years ago and told people to send me a dollar if they liked it. Look where it got me. I hope you find some good stuff today.

Please note that the comment thread today is only for non-traditional authors and editors to post about their books; please do not leave other comments, as they will be snipped out to keep the thread from getting cluttered. Thanks!

Authors/editors: Here’s how to post in this thread. Please follow these directions!

1. Authors and editors of non-traditionally published books only. This includes comics and graphic novels, as well as non-fiction books and audiobooks. If your book has been traditionally published — available in bookstores on a returnable basis — post about your book in the thread that went up yesterday (if you are in doubt, assume you are non-traditionally published and post here). If you are a creator in another form or medium, your thread is coming tomorrow. Don’t post if you are not the author or editor, please.

2. Completed works only. Do not post about works in progress, even if you’re posting them publicly. Remember that this is supposed to be a gift guide, and that these are things meant to be given to other people. Likewise, don’t just promote yourself unless you have something to sell or provide, that others may give as a gift.

3. One post per author. In that post, you can list whatever books of yours you like, but allow me to suggest you focus on your most recent book. Note also that the majority of Whatever’s readership is in the US/Canada, so I suggest focusing on books available in North America. If your book is only available in the UK or some other country, please let people know!

4. Keep your description of your book brief (there will be a lot of posts, I’m guessing) and entertaining. Imagine the person is in front of you as you tell them about your book and is interested but easily distracted.

5. You may include a link to a bookseller if you like by using a URL. Be warned that if you include too many links (typically three or more) your post may get sent to the moderating queue. If this happens, don’t panic: I’ll be going in through the day to release moderated posts. Note that posts will occasionally go into the moderation queue semi-randomly; Don’t panic about that either.

6. As noted above, comment posts that are not from authors/editors promoting their books as specified above will be deleted, in order to keep the comment thread useful for people looking to find interesting books.

Now: Tell us about your book!

Tomorrow (12/3): Other creators (musicians, artists, crafters, etc!)

[syndicated profile] whatever_scalzi_feed

Posted by John Scalzi

A couple of years ago I did a series of movie reviews about the movies I enjoy rewatching — not the best movies of all time, or the most important movies, but the ones I’m happy to spend time with, and which I put on when I want to revisit that world, or the characters, or when that film has something about it that resonates for me.

Because I wrote the series in December, which is also the month I generally have time to schlump on the couch and actually watch a bunch of movies, I called the series “The December Comfort Watches,” one a day for the whole month. Now that it’s December again, and I still have a bunch of other movies I like watching that I want to write about, I thought I’d do a second run of the series: 31 new movies (not actually new movies, but new to the series) and what about them makes them so rewatchable.

And to start us off, let me pick the actual newest movie to this list: K-Pop Demon Hunters.

It’s safe to say no one expected K-Pop Demon Hunters. Certainly Sony Animation didn’t — rather than release the movie theatrically, they shunted it over to Netflix as part of a COVID-era distribution deal, which, while covering Sony’s production costs and adding a little extra for profit, meant that the movie’s financial upside would be capped for the studio. Not great for Sony, but great for Netflix… or it would have been, had Netflix done any actual thing to promote the movie. It really didn’t; there was no buzz whatsoever for the movie when it slipped onto the service on June 20, 2025. If I were the filmmakers, particularly directors Maggie Kang and Chris Applehans, I would have been tearing my hair out about this. Years of work, and then your baby is just sort of plopped out onto the streaming sidewalk, to live or die, whichever.

In this one case, however, this institutional if not neglect then at least indifference meant that K-Pop Demon Hunters could become a thing that is so rarely seen anymore as to be near-miraculous: An actual grassroots, word-of-mouth hit, the sort where the people who have found it sort of climb over each other to tell all their friends about it, and then they tell their friends, and so on, and so on. By August, K-Pop Demon Hunters was a sensation; by September, it was an actual phenomenon, becoming Netflix’s most watched movie ever, and ruling the Billboard and international single and album charts until Taylor Swift came along in October to ruin their fun.

By now, the story of the film is known to everyone not living under a literal rock: The K-Pop band Huntr/x (pronounced “Huntrix”) is a chart-topping girl group with a powerhouse belter (Rumi), a drop-dead sarcastic choreographer (Mira) and a bubbly, goofy lyricist (Zoey) with millions of fans and the sort of skyscraper penthouse apartment that would put Tony Stark to shame. They also, in their spare time, keep the human world safe from an onslaught of underworldly demons, first by using their songs to strengthen a force field called the “Honmoon” that keeps most of the demons sealed off, and then by brutally (but bloodlessly, this is a family film) slaughtering any demons that do manage to slip through.

All of this is covered in the film’s frankly terrific first act, which has the group fighting a pack of demons on the airplane taking them to their final world tour show. The demons have taken over the plane, all the better to murder the band, but the band is having none of that. So then the demons tear up the plane, which again does not work the way they want it to. In a few short minutes, we understand the concept and the stakes, get acquainted with our heroes and get the broad strokes of their personalities, and then get a music video with a bangin’ “meet the band” tune that also doubles as a tightly choreographed fight scene — which is also funnier than I think anyone could have reasonably expected it to be.

All of this certainly took me by surprise when I saw the movie for the first time in June. After having watched that introductory sequence and being knocked out by it, I was actually angry at Netflix and Sony for not banging the drum about this movie and leaving me to find out about it from Reddit, of all places. In retrospect, this ended up not being a problem for the movie. But at the time it seemed unfathomable that something this good, this smartly assembled and designed, would just be left for people to find, or not.

(If you want to argue with me that Netflix did know what it had on its hands, let me offer you the one piece of evidence they did not: For the first few months of the movie’s existence, there was close to zero actual licensed merchandise. Sure, you could get K-Pop Demon Hunters t-shirts and merch; it was just all unauthorized. Netflix is still catching up on this stuff. At least they were smart enough to release a sing-along version to theaters a couple months after release, which netted the streamer roughly $20 million in nearly pure profit.)

K-Pop Demon Hunters functions fabulously as an action-oriented animated musical, but what makes it rewatchable are the character interactions. First and most notably, the relationship between Rumi, Mira and Zoey, all of whom are allowed to be flawed (Rumi is a controlling workaholic! Mira is a barely-contained rage monster! Zoey is an ADHD-brained chipmunk!) but all of whom actually love each other and who mostly understand that together they are more than the sum of their parts. It’s weird, and possibly tragic, that it takes an animated movie to show us a trio of young women who are allowed to be less than perfect, that is, when they’re not saving the world and/or being the biggest pop group on the planet.

But wait! There’s a whole other subplot with its own relationship drama! That’s between Rumi and Jinu, the latter being the leader of a boy band made of… demons! Yes! Who come to Earth to steal Huntr/x’s fans so the Honmoon will remained unsealed! (I’m not going to over-explain it here; it makes sense when you watch it.) Rumi and Jinu both have their secrets, a fact which ends up creating the most adorable trauma-bond ever, complete with an emotion-laden-yet-deeply-chaste love song duet. It’s the stuff fan mashups are made of, a thing the film is very much aware of.

Indeed, another thing the film does a very good job of showing is the fan/band dynamic, and what it means to be a pop star here in the third decade of the 21st century. Observers more knowledgeable than I have praised how the movie is deeply rooted into the specific setting of Korea and its pop culture (the movie takes place in that nation, a fact which vaguely astounds me; I assume someone somewhere had to resist a corporate note to move the action to the US, and good for them to have done so). I’m willing to accept their word that the movie is Korean at heart, and yet there is enough about the pop culture dynamic that is universal that even a relative newbie to K-Pop as myself understands the currents these characters are swimming in. It would be a little much to say any of this is realistic, but then, this is a movie with demons. It’s okay for it to be a fable.

There’s so much of this movie that feels like a fable, not confined to the actual story on the screen. For example, the story of EJAE, who co-wrote several of the movie’s songs, including the global #1 hit “Golden,” and who provided the singing voice for Rumi, in the process astounding legions of YouTube music vloggers by being able to hit an A5 note like it was no big deal. EJAE spent years in the K-Pop ecosystem, training to become part of a K-Pop band and never quite making it and eventually leaving that world behind. And now here she is, having co-written and performed arguably the biggest K-Pop song ever, certainly the biggest K-Pop song featuring a girl band (on “Golden” and other Huntr/x songs, EJAE sings with Audrey Nuna and Rei Ami, who provide the singing voices of Mira and Zoey, respectively). It’s a story as compelling as the story of the movie, and inextricably intertwined with it.

Again: Safe to say no one expected K-Pop Demon Hunters, and yet here less than six months after its release it’s hard to think of 2025 without it. It’s the year’s actual pop phenomenon, one that wasn’t forced on us, or that tens of millions of dollars were spent on to make it happen. It happened because people just plain liked it — liked the movie, liked the music, liked the characters and liked the way it make them feel. How often do we get that anymore? Not enough. I’d like it again sometime. In the meantime, K-Pop Demon Hunters will do.

— JS

December 2025

S M T W T F S
 1 23456
78910111213
14151617181920
21222324252627
28293031   

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 4th, 2025 10:57 am
Powered by Dreamwidth Studios