Think my best snag was the AirPods Max for 150 off, since they sold it for 399 instead of the retail $549 price. Easier to swallow. Even in 2025 they are one of the best (if not the best) headphones I own. Bluetooth 5.0 is a bit crappy, H1 chip has not aged well. For those reasons I would never pick them up as full retail price.
However: The all-metal construction, premium magnetic earcups, superb ANC that still rivals the QC Ultra but falls slightly short of XM6 in blocking rumbles, type-C audio, and comfort make it all worthwhile in 2025.
The XM6 might be a little better, but it is all plastic and terrible workmanship for what you pay. QC Ultra upped the game with metal hinges, but what you pay for in the max is that all-metal cups and surprisingly repairable design with easy to change earcups. The Sonos Ace, if you don't want Apple's ecosystem, is the closest contender, but may not win on comfort to some. Others will appreciate the Sonos Ace for being lighter (The max are very heavy cans.)
I have multiple Apple devices so for me this was worth to buy, as the Airpods Max auto-sync to all of them. I already had the AirPods Pro 3, and because those have smaller 11MM drivers, they will never produce the depth of the max. Not to mention a lot of the bass-forward nature of the AirPods Pro 3 comes from DSP (Digital signal processing) tricks.
So, there you have it. My honest review. No, the max are not bad, but also, not for everyone, and other solid ones exist today like it.
in reply to MariahL

@MariahL I was actually shocked at how low-lag they have even on standard SBC codec and Bluetooth. It's nowhere as good as AptX or one of those 2.4 dongle headphones, but good enough that compared to QC Ultra with SBC and AAC codecs, there's a lot less lag. I'd say around 80-90MS for the Max. I will have to see how well they age, people say the white one turns yellow around the foam and band over time. I got the blue one. It's good to know the lightning one still works for you though, good sign there, and since you have the converter, the type-C version is not worth the upgrade.
in reply to MariahL

@MariahL ah yeah, the only downside, you can't charge them while plugged in. Unless, you can get a lightning splitter that has both charging and audio, wonder if that could work on a Max to get the same behavior as the Type-C one. Was very happy to know they can be used while plugged in, not so happy that the only way to really get them in that low power state where they disconnect is to put them in their case.
I do use them on Windows a lot too, it's good that my iPhone will still see its battery status even when its connected to my Windows side. It was a bit tricky to put it in pairing mode with the side-button hold trick but it does work, so I can still use it either on Apple stuff or on Windows depending on what I'm near.
in reply to MariahL

@MariahL I wil have to really put them through their pace next year when I go to Europe with that! I wonder how well they'd do on Airplane engine noise. Some say there was a firmware update that borked noise canceling, basically weakened it somewhere around the 4X version time. I did test them with things like our furnace side-by-side to the QC Ultra and XM6, and the only ones that slightly beat it were XM6 and the newer AirPods pro 3. Not shocked there, but the difference was super subtle and not enough that an entire noise of speech or the hum bled in through the max.
in reply to MariahL

@MariahL ah yeah, those had a sale but not quite at a deep discount, think the lowest I saw pro3 go for was 219 bucks. So around a 10 or 15% discount. I do think they'll stick around for a long time though so if you wait longer the patience reward will be worth it. They kept the Pro2 around for years. I still have them, the lightning pro2, but my left one has a problem where ANC doesn't work equal to the right one and transparency wavers voices. So had to pick them up when they launched and recycle them next time at Best Buy.

The best way to test the resilience of your service is: reboot the server. I mean it. Don't just restart the service, reboot the server. A story in two parts:

Part 1: a while ago I configured ZFS under my Talos Kubernetes cluster, and everything was fine, until I decided to reboot. When it came back, nothing was working, because I forgot to properly configure a way for Talos to read the ZFS volume encryption key.

Part 2: at some point I configured Audiobookshelf to store data on top of said ZFS volume. Everything was working fine for a few weeks, until I had to reboot the server again (for reasons). When it came back, I lost all my downloaded podcasts, because I had a typo on my configuration that was pointing to a directory outside of the PVC, so it mounted as an emptyDir volume.

Honestly, I should have known better. I had issues in the past when some servers went down because of power failures (battery didn't last) and they did not come back properly.

You gotta do a reboot/power test every once in a while, just like you have to test your backups on a regular basis.

#HomeLab #TalosLinux #ZFS #SRE #DevOps @homelab

RE: infosec.exchange/@WPalant/1156…

Another drama in the FLOSS world! (In history this time.) Forks and insinuations! Who could have guessed.

The other day, I thought yet again about how the formalized government of the USA was officially started because "The Thirteen Colonies" didn't like a nation (England) taxing them from abroad in addition to local taxes...

Yet the US is 1 of 3* countries worldwide that taxes its own citizens who live elsewhere _in addition_ to where they live.

(* The other two countries are the totalitarian dictatorships of Eritrea and North Korea.)

The free software movement shaped by GNU/Linux reminds us that control over our digital tools is essential to our freedom. Today, at the heart of this ongoing struggle, Jami embodies this philosophy by offering a genuinely free way to communicate.

Read our article Jami and the GNU/Linux Spirit: jami.net/jami-and-the-gnu-linu…

#Jami #OpenSource #P2P #PrivacyMatters

in reply to Adam Demasi

If you’re not familiar with it, in 2023, I set up an index of free downloads Microsoft deleted from their website. Almost everything they purged has been preserved in the Wayback Machine, but it’s hard to find what you need. This makes it easy to download from a source you can trust. legacyupdate.net/download-cent…

reshared this

@Jami Very commendable to work on Free instant messaging, thank you. But I wonder, what is the reason for not doing so on top of XMPP? There already exist loads of XMPP clients out there, and if GNU wanted to work on another one they would be very welcome and automatically inter-operable with the ecosystem.
@Jami
This entry was edited (1 month ago)

It's December 1st, which means that throughout the entire month you should reserve 5-10 minutes every day to read a fantastic article about HTML. ❤️‍🔥

Check out what's hidden behind the first door.

htmhell.dev/adventcalendar?s=h…

This entry was edited (1 month ago)

My wonderful financial supporters have decided that my weekly updates of my work on GNOME will partially be public in the future!

Here is my first public weekly update about video thumbnailers, Pika Backup, translations for the GNOME website, and more

blogs.gnome.org/sophieh/2025/1…

Was surprised to learn that there are apparently no command line tools for poking around the Linux accessibility tree, so I made Acsh, the Accessibility Shell. With Acsh you have both a CLI and REPL, in which you can do things like:

/> ls # Lists all top-level apps
/> cd firefox-1.26 # cd into Firefox, with tab completion. REPL only
/firefox-1.26> cat 0 # Get more information on the first child by index, if you're fine with the possibility that index might change before the command is processed--not likely at this level. Paths are referenced by name or index
/firefox-1.26> watch 0 # Get stream of events for the first child
/firefox-1.26> search -r button ok # Find all OK buttons in this Firefox instance
... # and more

The future, though, is probably acsh mount. This makes the accessibility tree available as a FUSE mount under ./a11y by default. ./a11y/README.md gives a better overview of the layout, but in brief, directories are apps/accessible objects with their children as subdirectories. Properties are either files containing their raw values or .json files with richer structure. There's an events.json.sock Unix socket in each directory below the root that lets you watch events for an accessible object and all its children, and you can use standard filesystem tooling to search/filter/stream. It's probably slow because there's no caching--it's meant to be a debugging/introspection tool, after all. I'll probably rename this to acfs and drop the CLI/REPL soon--it was great for prototyping and the idea to use FUSE only occurred to me after I realized I was slowly re-inventing all of a filesystem anyway.

Thoughts? I'm sure it has bugs, but what doesn't? dev.thewordnerd.info/nolan/acs…

in reply to Ritchie

Heh yeah, I spent a bunch of time getting cd .. working before I realized that if I made folks too comfortable working in this REPL, they'd probably eventually demand a full embedded BASH shell. :P So yeah, definitely try FUSE. If you need an example of how to do something, ask and I'll work it into the FUSE README.md. I don't want to make it super specific but I do want to make it scriptable and as user-friendly as a FUSE filesystem can possibly be.

Boycotts aren't enough.

A boycott doesn't tell a company that they've pissed you off: it tells a company that you have the option to not consume their products. It's very hard to boycott the electricity company or the water company, because you need their products.

This is why Google and Amazon are who they are. You want to boycott Google products? Good luck living in the modern world. Google have intentionally made themselves too important and ubiquitous to be successfully boycotted. It's not just the tech companies either. If you live in a town which only has one supermarket - and many people do - then you can't realistically boycott them.

We, and by we I mean the masses, are too weak to boycott these companies. Consider that for a moment. Consider the staggering power inequality that this demonstrates. We need stronger weapons.

Using acsh mount with Claude Code and holy shit is it a gamechanger. Mounting my accessibility tree as a filesystem and letting the LLM use tools it is trained on has made identifying accessibility issues so much easier.

I've wanted to play with Godot's AccessKit-based accessibility for a while now but it has enough rough edges to make it just difficult enough to have fun with. I know there are additional accessibility plugins but they're just not enough to make the experience one I want to have

A couple hours in and I've already A) labelled unlabelled controls in the New Project dialog B) turned a status area into an auto-updating live region and C) identified and fixed an off-by-1 bug in single-line text edit fields making them present as blank if the cursor position is at the end. And the only reason it took that long is due to some weird scons cache corruption where the labeling fix required 2 full half-hour builds, which is now fixed. I've also identified several other accessibility issues I plan to work on over the next few days to hopefully create a first-class accessibility experience in the editor and game UIs.

I remain conflicted about the harms generative AI/LLMs cause, because for me they're very much an assistive technology. Could I technically have trawled through all the event logs, widget information, and code to make these changes? Sure. Would I have? Not if I wanted a life outside of fixing accessibility issues. Could someone else have done this. Sure, but where's the overlap between the folks with the time to fix these issues and the lived experience of using a screen reader and finding all the edge cases, like labels speaking twice or text presenting as blank if you happen to be on the last character? Should I stop using it this way because thousands of others use it to generate unsupervised slop? Should I take a bus instead of a plane to travel back home today?

Legitimately not sarcasm, it's just hard to put all of this in perspective sometimes. If I had a spare 30K or so in the couch cushions, I'd buy my own GPU machine and call it an assistive tech expense.

What I'm not at all conflicted about is letting these things run amuck, dumping the slop onto someone else, and passing that off as somehow virtuous because the AI can do no wrong. I've seen it do plenty wrong that I would not leave it unsupervised and uncaged, just as I wouldn't leave my cat unsupervised around a plate of food. Nor would I just dump the results on anyone without taking the time to read them first, and to at least make sure nothing overtly silly is being done in my name. But where most folks can just glance at a window or a screen of logs and fairly easily spot errors or issues, I can ask Claude to take a screenshot or skim logs, and something that would either have been impossible or extremely time-consuming for me is done in under a minute. I don't know what to do about the fact that a bunch of jackasses want to do bad things with that same tech.

If the AI bubble burst tomorrow I'd shed exactly 2 tears and go on with my life. I just wish society's impulse with generative AI/LLMs wasn't to use them for just about every shady thing imaginable such that it's so hard to talk about the ways that they can help without worrying about the can of worms I'll open or the hate I might get. Yes they can be wrong. Yes they can hallucinate. So do humans, but I don't happen to have a helper human in my back pocket every time I need one.

reshared this

in reply to Matt Campbell

So far just Godot. The off-by-1 seems to be in their code--some sort of attempted workaround to treat single-line text inputs like multi-line text inputs by appending a newline, which caused arrowing past the last character of a single-line input to speak "blank" as if the field was empty. Need to verify the fix in multi-line inputs but that involves generating an actual project so I have a testcase, which I'll get to when I'm back home. At least Claude flagged that, so it didn't just slop it out and hope for the best.

Right so:

* Mac text processing and spreadsheet accessibility is essentially useless and not getting better.
* I need text processing for work and studies.
* I need Windows for text processing and spreadsheets because, as much as it is not great, at least it isn't Mac
* Parallels is subscription-based and has been getting progressively worse at working efficiently and without turning an M1 Macbook Air into a furnace.
* VMWare Fusion is free, but it took about half an hour to download because I had to realize my VMWare account was not migrated to a Broadcom account, realize that the Broadcom login page does not link to the register page, find the register page, register, verify my email, click on the "DOWNLOAD RIGHT NOW NO SERIOUSLY WE MEAN LIKE ACTUALLY RIGHT THE HELL NOW LIKE THIS INSTANT" buttons again, find the product in the support downloads portal thingy, agree to terms, go through additional screening to download the product which included giving them an address (notice I didn't say my address because apparently "123 My Street, My City, My Province" is valid), press the "HTTPS download" button (this one does not include the word now or all-caps even though it's actually the final boss of the encounter), copy the app into my drive, open the app, agree to terms again and uh... Presumably be able to use it, though I expect additional screening to be required when trying to create a VM. So I'm just slightly miffed on principle.
* Buying a Windows Mini PC seems like a logical option, but it's expensive even at the half-decent lower end and I work on the go like all the time.

I think that's it. I think I'm switching to Linux. Ahahahahahahahahahahahahahha funny joke. Anyway yeah I'm a little disillusioned with the state of things. Tra la la it's almost Christmas let's not get dragged down.

Zach Bennoui reshared this.

in reply to Guillem Leon

Bro my Brain like physically hurts after reading that lol. I feel your pain though. Parallels seems like the best option, I tried UTM and it didn't go well. Was installing Windows, and then like right as it was about to be done Mac OS just decided to crash and restart on it's own. I don't know what the hell that was about. I'm assuming it's fixed now, but I'm scared of UTM and will never install it again lol.

So I want to download VMWare Fusion. So I press the big "DOWNLOAD NOW (opens in new window)" (note the all caps) link on the product page. I get sent to another page explaining the many wonders of Fusion with a big "DOWNLOAD NOW (opens in new window)" link which I press. I'm sent to a log-in page.

Can you imagine being so conscious of the fact that your download process is so insanely convoluted and full of corporate bullshit that you have to all-cap the names of the two links that lead to the very first step of the actual download and make sure they include the word "NOW" so that people don't realize you're leading them onto this field of corporate bullshit?

Jonathan reshared this.

in reply to Guillem Leon

I wouldn’t bother. I helped someone set it up yesterday, someone who just couldn’t afford parellels but needed a VM with graphics hardware acceleration. By far the most serious issue that returned recently is that if VoiceOver is running, any VM that’s running inside fusion crashes. On top of that many features just don’t exist that used to exist back in the Intel days, such as easy install so you have to install Windows of OCR because narrator is broken right now, and there is no support at all for shared folders.

📣 Do-It-Blind (DIB) online Besprechung am Montag, 1. Dezember, um 19:00 Uhr. Du bist eingeladen! bbb.metalab.at/rooms/joh-szv-o… Wöchentlich am Montag besprechen wir neue Formen der digitalen und inklusiven Zusammenarbeit. Mach mit! 🛠️ #make #blind #inklusion

DMA crackdown for the win! 🙌 #WhatsApp is becoming interoperable in the EU

What does this mean?

✅ WhatsApp users in the EU can message people on other apps
✅ More #freedom for you
✅ Better chances to compete for smaller apps

➡️ Find out more here: tuta.com/blog/whatsapp-interop…

„Chtěli bychom změnit společenskou normu. Síla té výzvy má být právě v tom, že se k ní připojí co nejvíce rodičů. Aby se dítě bez mobilu nebo s tlačítkovým telefonem necítilo mezi ostatními spolužáky nepatřičně. Spoustě rodičů dnes vzrůstající problémy vadí, ale nemají odvahu jim takto čelit, když cítí tlak ostatních.“ denikn.cz/1904895/chytry-telef…
in reply to Luboš Račanský

@banterCZ Tak neposílá Googlu IDčka, to jsem poplet, jenom utužuje duopol, takže bez Googlu nebo Applu přestane EU fungovat. github.com/eu-digital-identity…
This entry was edited (1 month ago)
in reply to Honza Javorek

@honzajavorek @banterCZ přitom by to šlo jednoduše i bez zamykání lidí v platformách. Vlezu na web nebo do aplikace, co má věkové omezení, jsem tam nově tak to chce zjistit zda jsem dosáhl patřičného věku. Přesměruje mě na evropskou webovou službu s dotazem "bylo mu 16?". Evropská webová služba mě vyzve k přihlášení eidentitou, pak se zeptá zda může sdělit webu/aplikaci jestli jsem dosáhl 16 let. Dávám ano, vrací mě to zpět na původní web nebo do původní aplikace s true/false informací. O uživateli se aplikace dozví čistě jen to co potřebuje. Je to skoro jak oauth, tzn implementovat by to uměl každej.
in reply to Štěpán Škorpil

Není to složitější? V kontextu registrace do sociálních sítí ti nestačí vědět, že tomu člověku bylo 16. To by si všichni mohli pozakládat účty na kámošovu občanku. Potřebuješ nějaký identifikátor: tohle je uživatel X a už mu bylo 16. Pokud to ID bude stabilní a svázané s uživatelem, bude prozrazovat nějaké soukromé informace. Pokud bude náhodné, jsme zase zpátky u scénáře „puč mi občanku, založím si účet“. Možná stabilní ID uživatele jedinečné pro službu?
This entry was edited (3 weeks ago)
in reply to Štěpán Škorpil

Tohle je třeba v Bank ID. Zjednodušeně - uživatel se pomocí Bank ID přihlašuje to nějakého systému. Bank ID vrací unikátní a stabilní identifikátor uživatele pro ten systém. Jiný systém dostane jiný identifikátor.

Problém by to byl u systémů ala Mastodon. Každá instance by měla jiný identifikátor pro stejného uživatele takže by se daly zakládat účty na jednu občanku na různých instancích.

in reply to Zdeněk Merta

@zdenek @honzajavorek @banterCZ to za mě není špatně. Jak říkám někde ten dosah dohledu vždycky končí. Zakládat účty na cizí občanku sice půjde, ale ve velkém se to asi dělat nebude a je tam psychologicky ten akt, že sis tu registraci vzal na vlastní triko.
Je to jako když jsem si v 17 koupil alkohol na nějakou akci, a když mě u pokladny vyhmátli, vzal za mě pán co stál za mnou ve frontě. Vzal si to na svou zodpovědnost.

Wie versprochen der Blogbeitrag über mein neues #Homelab "Konzept".

teqqy.de/selfhosted-setup-2025…

#selfhosted #komodo #gitops @homelab_de

This entry was edited (1 month ago)
in reply to daniel:// stenberg://

Interesting! Thanks for sharing. Sequoia received 74 reports this year on yeswehack and we've confirmed 6 vulnerabilities. Of those, none were serious. Two had to do with wasting resources on specially crafted input. Two were out of bounds array accesses that result in a panic (we're using rust). One was a terminal injection, because we forgot to escape attacker controlled data that we print. And the last one was forgetting to check that the value returned from malloc is not NULL.

The Winter Sale has officially started! ❄️

Enjoy 50% off Cryptomator and protect your files with secure, zero-knowledge encryption. Want to know how long the sale runs and what’s included? All details are in our newest blog post 👇

cryptomator.org/blog/2025/12/0…

#WinterSale #CyberSecurity #DataProtection #Encryption #EncryptedCloud #SecureYourData #SecureCloudStorage #ZeroKnowledge

I didn't realize that Swiss trains apparently also adhere to the "schedule for 80% of capacity rule".

Apparently trains in Switzerland go around 80% of the top speed possible on the track. The 20% overhead is used to make up time in the case of delays.

The thinking is: stable and predictable operation is more important than going faster. Because the cost of passengers regularly missing layovers is much higher than the benefits of trains being 20% faster.

in reply to miki

@miki this scenario rarely happens on Swiss rail. The manjority of routes are "monotonic", that is, a train ahead in schedule will also be ahead In arrival time. This is due to at least three factors:

  • no express service (if everything is the same speed nothing can catch up to each other)
  • redudnant connection network (a delayed train might get cancelled but the connections are still available through different routes)
  • single tracks and limited infrastructure (can't design for different speeds when there is only one track)

There are scenarios where it happens, those are when regional trains interact with intercity trains. In that case, a track change is made to allow the intercity trains to pass a regional train at a station, but those cases are the other way around: the regional train is delayed such that the intercity unexpectedly caught up.

What's key here is that it's not necessarily a product of infrastructure and more a result of careful planing and inter-operator cooperation.

@miki