The New York Times’ “Moderation Advantage” Is a Statistical Illusion
The New York Times’ “Moderation Advantage” Is a Statistical Illusion
After accounting for money and incumbency the supposed electoral bonus for moderate candidates vanishes entirely.Adam Bonica (On Data and Democracy)
copymyjalopy likes this.
Displaying Images From View Community
Sorry, new guy here.
So about images, on my desktop browser, when I click just on the thumbnail to the side, I'm expecting the image to display. But the image loading graphics just keep looping without any image.
If I click the post, the image typically displays as expected.
On Voyager, tapping the thumbnail loads the image to the screen as expected.
Climate change and wildfires divide California gubernatorial candidates at forum
I think that this is video of the forum.
Archived copies of the article:
* web.archive.org
* archive.today
* ghostarchive.org
Jobs and economic struggles of Californians light up central to clash between candidates for governor
Four of the state's gubernatorial candidates pitched their plans on the economy at a business forum Thursday in Stockton.Dakota Smith (Los Angeles Times)
Whale and Dolphin Migrations are Being Disrupted by Climate Change | Rising ocean temperatures, heatwaves and dwindling prey are forcing marine mammals into new and more dangerous waters
Whale and Dolphin Migrations are Being Disrupted by Climate Change - Inside Climate News
Rising ocean temperatures, heatwaves and dwindling prey are forcing marine mammals into new and more dangerous waters, scientists warn.Inside Climate News
South Korea's fishermen keep dying. Is climate change to blame? The head of the taskforce pinpointed climate change as one of the major causes
This year, the head of the taskforce pinpointed climate change as one of the major causes, as well as highlighting other problems - the country's aging fishing workforce, a growing reliance on migrant workers, and poor safety training.The seas around Korea are warming more rapidly than the global average, in part because they tend to be shallower. Between 1968 and 2024, the average surface temperature of the country's seas increased by 1.58C, more than double the global rise of 0.74C.
South Korea's fishermen keep dying. Is climate change to blame?
An increase in deadly incidents has been partly caused by climate change, an inquiry found.Jean Mackenzie (BBC News)
Rapid emissions cuts would avoid 64cm of ‘locked in’ sea level rise by 2300
Rapid emissions cuts would avoid 64cm of ‘locked in’ sea level rise by 2300 - Carbon Brief
Cutting emissions in line with the 1.5C warming limit, rather than following current climate policies, could curb long-term sea level rise by 64cm.Ayesha Tandon (Carbon Brief)
copymyjalopy likes this.
Why New Zealand Is Going Broke
- YouTube
Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier.www.youtube.com
DHS Posts Video Featuring Song Popular With Nazi Creators | The agency denied making "Nazi propaganda" in a statement that could be characterized as "very online."
DHS Posts Video Featuring Song Popular With Nazi Creators
The agency denied making "Nazi propaganda" in a statement that could be characterized as "very online."Matt Novak (Gizmodo)
copymyjalopy likes this.
"Analog bags" are in. Doomscrolling is out.
The latest must-have accessory is a "stop-scrolling bag" -- a tote packed with analog activities like watercolors and crossword puzzles. We spend hours glued to our screens. "Analog bags," as they're also called, are one way millennials and Gen Zers are reclaiming that time. "I basically just put everything I could grab for instead of my phone into a bag," including knitting, a scrapbook and a Polaroid camera, says Sierra Campbell, the content creator behind the trend.The 31-year-old keeps one bag at home in Northern California, carrying it from room to room, and another in her car. The trend has quickly spread on social media, part of a bigger shift to unplug. Roughly 1,600 TikTok posts were tagged #AnalogLife during the first nine months of 2025 -- up over 330% from the same period last year, according to TikTok data shared with Axios.
"It speaks to an incredible desperation and desire for experiences that return our attention to us, that fight brain-rotting, that are tactile ... that involve creating over scrolling," says Beth McGroarty, vice president of research at the Global Wellness Institute.
https://www.axios.com/2025/10/23/analog-bag-screen-free-wellness
adhocfungus likes this.
Cómo optimizar el rendimiento de un parser en Python con ANTLR
public List<Product> getAllProducts() {
return Collections.unmodifiableList(products);
}
What are your thoughts on IPTV in 2025? Reliability, speed, and channel quality seem to vary a lot lately.
Hey everyone,
I’ve been in the IPTV world for a few years now, and I’ve noticed big differences lately between services — especially when it comes to stability during live events (sports, PPV, etc.). Some providers struggle with buffering or channels going down mid-match, while others run perfectly smooth.
What do you guys look for in a good IPTV provider — channel count, sports coverage, reliability, or price?
For context, I manage IPTVpakket.net
— we’ve been testing different server setups and load-balancing systems to keep streams stable even when thousands connect at once.
I’d love to hear your experiences and what matters most to you when choosing IPTV in 2025. Let’s share insights 👇
This Month’s Poem
On The Ning Nang Nong
Spike Milligan
On the Ning Nang Nong
Where the cows go Bong!
and the monkeys all say BOO!
There’s a Nong Nang Ning
Where the trees go Ping!
And the tea pots jibber jabber joo.
On the Nong Ning Nang
All the mice go Clang
And you just can’t catch ’em when they do!
So its Ning Nang Nong
Cows go Bong!
Nong Nang Ning
Trees go ping
Nong Ning Nang
The mice go Clang
What a noisy place to belong
is the Ning Nang Ning Nang Nong!!
Find this poem online at All Poetry
#blog #october #poetry #zenmischief
On The Ning Nang Nong by Spike Milligan
Comments & analysis: On the Ning Nang Nong / Where the Cows go Bong!allpoetry.com
It's supposed to be payday for many federal workers. Instead, they're getting nothing
The sight was staggering in Prince George's County, Md., home to more than 60,000 federal workers: middle-class professionals lined up for boxes of pasta, protein and produce to feed their families.
After a two-hour wait, Wanda Bright had finally reached the front of the line --- just as the first batch of supplies ran out.
The Capital Area Food Bank had started the day with 300 boxes, enough for 150 government employees to receive two boxes each. It turned out that the need was even greater.
like this
China is dramatically outpacing the US in R&D due to a massive, consistent, and strategically focused investment campaign.
Congress Should Fully Fund NSF’s TIP Directorate to Make America More Competitive Versus China
Congress has authorized $20 billion over five years to fund the National Science Foundation’s Technology Innovation Partnership, but lawmakers have appropriated just $410 million.Robert D. Atkinson (Information Technology and Innovation Foundation | ITIF)
adhocfungus likes this.
16-inch laptop with Blu-ray drive, USB 4 and AMD Ryzen 7: Fujitsu FMV Note A launches
16-inch laptop with Blu-ray drive, USB 4 and AMD Ryzen 7: Fujitsu FMV Note A launches
While most laptops no longer feature an optical drive, the new Fujitsu FMV Note A does sport a Blu-ray drive so users can watch high-quality movies on the go without an internet connection.Hannes Brecher (Notebookcheck)
adhocfungus likes this.
I guess it's a little more compact to make it internal, but I'd think that an external USB drive would be a much better option, not compete for space in the laptop. I mean, people can't be using the thing all the time.
considers
Though there was a point in the past when laptop vendors would design the laptop to support a secondary battery in the optical drive bay if you didn't want an internal optical drive, and that would be something I'd like. That's the only way you can exceed the 100Wh maximum on flights, if the battery is a spare removeable, not built-in.
We Just Crossed Our First Tipping Point… And It’s Not What You Think (it's solar power!) | PBS Terra
- YouTube
Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier.www.youtube.com
Interesting video, but a bit of clickbait.
The "tipping point" they're talking about is renewable energy, particularly solar. It's now dropped in price to the point where it's the cheapest option for energy. That means it's not just the best ecological choice, but the most economical as well. That increases adoption, which will drive prices down even further.
eSIM Mobi - Global & USA eSIM Data Plans
🌐 💥 UNLEASH GLOBAL MESSAGING FREEDOM! 💥
🚀 Say goodbye to limits, blocks, and tracking — our Untraceable eSIM is built for serious senders who value Power 🔋, Privacy 🕶️, and Performance ⚡.
🎯 🔥 FLASH DEAL: 65% OFF until 30/12/2025!
🧩 Use Code: 65ESIMMOBI65 at checkout.
✨ Why Top Mass Senders Choose Us ✨
✅ Built for Bulk: Send up to 10,000 SMS/day worldwide 🌍 — unlimited in 🇺🇸 & 🇨🇦!
🧠 Spam-Tolerant Platform: No unnecessary limits — your campaigns, your control.
🛡️ Zero Abuse Reports: We manage the backend — you focus on your reach.
⚙️ Instant Setup: Activate your anonymous eSIM in under 1 minute ⏱️.
📞 Beyond SMS: Enjoy 5 hours/day of international calls 🌎 + unlimited data 📶.
🌍 Full Roaming Coverage: Unlimited Internet access included on all plans.
💣 Stop Getting Blocked. Start Broadcasting.
🎁 Your 65% OFF Deal Awaits →
👉 e-sim.mobi/
💸 100% Bulletproof. 100% Private.
🪙 We Accept Only Crypto Payments — because your campaigns deserve true confidentiality.
eSIM Mobi - Global & USA eSIM Data Plans
Instant global eSIM data plans for 145+ countries. Stay connected with secure, anonymous eSIMs.eSIM Mobi
Charlie kirk website
His website: hesupplies.com
Republicans are barreling toward an Obamacare subsidy cliff — with no unified plan
The White House has shown little urgency in extending the subsidies until shutdown ends.
Republicans are barreling toward the upcoming Obamacare enrollment period without a unified plan to address the sticker shock that millions of Americans are likely to experience due to the expiration of key federal subsidies.
The lack of direction comes from the top, with Trump not providing clear guidance to his party on how he wants to deal with the expiring subsidies that could result in dramatic out-of-pocket price hikes for enrollees.
https://www.politico.com/news/2025/10/24/republicans-obamacare-subsidy-cliff-plan-trump-00620873
adhocfungus likes this.
The AI Industry Is Traumatizing Desperate Contractors in the Developing World for Pennies
The AI Industry Is Traumatizing Desperate Contractors in the Developing World for Pennies
AI is propped up by a global sweat shop operation, where exploited workers polish the software for wealthy corporations in the west.Joe Wilkins (Futurism)
Virginia Democrats are the next surprising entrant into the redistricting battle
State lawmakers are launching a rushed effort to overhaul the state’s maps, which currently have a 6-5 split.
Virginia Democrats are poised to enter the nationwide redistricting battle, according to three Democrats familiar with the plans, taking on an effort to redraw the state’s congressional lines just days before closely watched elections in the state.
How exactly the state’s map will change is not yet clear. The state’s delegation is currently split between six Democrats and five Republicans, with three members — Democrat Eugene Vindman and Republicans Rob Wittman and Jen Kiggans — in potentially competitive races.
“We are opening up the process reluctantly because of this aggressive midterm redistricting by Republicans in response to Trump across the country,” said one Virginia Democrat familiar with the plans.
https://www.politico.com/news/2025/10/23/virginia-house-redistricting-democrats-00620430
adhocfungus likes this.
HP OneAgent Update Broke Entra Trust on HP AI Devices
A faulty HP OneAgent update (version 1.2.50.9581) silently deleted Microsoft Entra ID certificates on HP's AI-enabled devices, breaking cloud authentication for affected organizations1. The issue stemmed from a cleanup script in package SP161710 that indiscriminately removed certificates containing "1E" in their identifiers, inadvertently deleting critical MS-Organization-Access certificates needed for Entra ID authentication1.
The problem specifically affected HP's Next Gen AI models like the EliteBook X Flip G1i, with the update pushed through HP's AWS IoT backend without proper testing1. While HP has pulled the problematic update, affected devices require manual intervention - either logging in with local admin credentials to rejoin Entra ID or using Microsoft Defender's Live Response for remote fixes12.
According to HP, "The update is no longer available and will not affect more AI PCs. We're investigating the issue and working closely with impacted customers on mitigation"3.
- PatchMyPC - HP OneAgent Update Broke Entra Trust on HP AI Devices ↩︎ ↩︎ ↩︎ ↩︎
- CyberSecurityNews - HP OneAgent Update Brokes Trust And Disconnect Devices From Entra ID ↩︎
- BleepingComputer - HP pulls update that broke Microsoft Entra ID auth on some AI PCs ↩︎
HP OneAgent Update Brokes Trust And Disconnect Devices From Entra ID
The HP OneAgent software update has disconnected Windows devices from Microsoft Entra ID. As a result, users can no longer access their corporate identities. Version 1.2.50.Guru Baran (CybersecurityNews)
Eigene Mastodon-Instanz betreiben – lohnt sich das?
In den letzten Jahren hat das Fediverse – also dezentrale soziale Netzwerke wie Mastodon – immer mehr Aufmerksamkeit bekommen. Viele, die sich mit digitaler Unabhängigkeit, Datenschutz oder Community-Management beschäftigen, stellen sich früher oder später die Frage:
Sollte ich (oder meine Organisation) eine eigene Mastodon-Instanz betreiben?
Ich habe mich mal mit den Argumenten, Erfahrungsberichten und praktischen Herausforderungen beschäftigt. Hier ist mein persönlicher Blick auf das Thema.
Warum überhaupt eine eigene Mastodon-Instanz?
Kontrolle über Marke, Daten und Community
Die vielleicht wichtigste Motivation: Unabhängigkeit und Kontrolle.
Eine eigene Instanz bedeutet, dass du selbst entscheidest, wie sie aussieht, welche Regeln gelten und wie mit Nutzerdaten umgegangen wird. Du kannst dein eigenes Branding etablieren, Inhalte selbst moderieren und eine Community nach deinen Werten aufbauen.
Datenhoheit und digitale Unabhängigkeit
Während zentrale Plattformen wie X (Twitter) oder Facebook jederzeit Richtlinien ändern oder Accounts sperren können, behältst du bei einer eigenen Instanz die volle Datenhoheit.
Niemand kann dich „abschalten“, und du entscheidest, welche Daten gespeichert oder gelöscht werden.
Das schafft nicht nur Vertrauen, sondern auch eine langfristige, nachhaltige digitale Identität.
Eine Gemeinschaft mit klaren Werten schaffen
Mit einer eigenen Instanz kannst du eine maßgeschneiderte Community aufbauen – mit klaren Regeln, passender Moderation und eigenem Fokus.
Ob Fachcommunity, Verein, Familie oder Organisation – du definierst, was erlaubt ist, welche Themen im Vordergrund stehen und wie der Ton gestaltet wird. Erwähnt sei hier die Instanz von Erik welcher mich erst mal auf den Gedanken für diesen Beitrag gebracht hat.
Teil des großen Ganzen – mit eigener Identität
Eine Mastodon-Instanz ist kein isoliertes Netzwerk. Sie ist Teil des Fediverse, das über das ActivityPub-Protokoll mit tausenden anderen Instanzen verbunden ist.
Das bedeutet: Du kannst mit allen anderen kommunizieren – und trotzdem deine eigene, unverwechselbare Identität behalten.
Was gegen eine eigene Instanz spricht
Technischer Aufwand & Wartung
Eine Instanz läuft nicht von allein.
Du musst dich um Updates, Sicherheit, Backups und Monitoring kümmern – und dafür braucht es entweder technisches Know-how oder einen verlässlichen Hoster.
Ohne diese Basis wird aus der idealistischen Idee schnell eine Belastung.
Laufende Kosten
Auch wenn Open Source kostenlos ist, ist der Betrieb es nicht.
Serverkosten, Speicherplatz, Domain, ggf. E-Mail-Hosting – das summiert sich.
Ein realistischer Einstieg liegt bei rund 10–30 € pro Monat, für größere Instanzen mit vielen Nutzer*innen kann es deutlich mehr werden.
Weniger Reichweite & Netzwerkeffekt
Kleine Instanzen haben oft ein Reichweitenproblem.
Je nach Einstellungen und Föderationsstatus kann es sein, dass Beiträge nur von wenigen gesehen werden.
Wer Sichtbarkeit und Interaktion sucht, ist auf großen Instanzen oft besser aufgehoben.
Verantwortung & Rechtliches
Wer eine Instanz betreibt, ist nicht nur technisch, sondern auch rechtlich verantwortlich.
Das bedeutet: Impressumspflicht, Datenschutzrichtlinie, DSGVO-Konformität, ggf. Moderationspflichten (besonders bei öffentlichen Servern).
Man übernimmt Verantwortung – nicht nur für Technik, sondern für Menschen und Inhalte.
Fazit: Wann lohnt sich eine eigene Mastodon-Instanz?
Eine eigene Instanz ist keine Spielerei, sondern eine bewusste Entscheidung.
Sie lohnt sich dann, wenn du:
- eine Community, Organisation oder Marke mit klaren Werten betreibst,
- Verantwortung übernehmen willst,
- und bereit bist, Zeit und etwas Geld in digitale Unabhängigkeit zu investieren.
Wenn du dagegen nur privat posten oder „Mastodon ausprobieren“ willst, ist der Einstieg über eine bestehende Instanz (z. B. chaos.social, troet.cafe oder mastodon.social) oft der bessere Weg.
Eine offizielle Liste mit der man gezielt suchen kann, gibt es hier.
Mein persönliches Fazit
Ich sehe in eigenen Instanzen einen echten Mehrwert – nicht für alle, aber für viele.
Für Projekte, die Wert auf Eigenständigkeit, Datenschutz und Community-Kultur legen, kann es ein großartiges Werkzeug sein.
Für Gelegenheitsnutzer*innen dagegen ist es eher ein Overkill.
Wer aber bereit ist, die Verantwortung zu tragen, gestaltet damit nicht nur ein soziales Netzwerk – sondern ein Stück digitale Zukunft.
Server
Finde, wo du dich auf dem dezentralisierten sozialem Netzwerk Mastodon registrieren kannst.joinmastodon.org
A BIG Step Towards a Federal & Enlarged Europe?
- YouTube
Profitez des vidéos et de la musique que vous aimez, mettez en ligne des contenus originaux, et partagez-les avec vos amis, vos proches et le monde entier.www.youtube.com
Mozilla Slammed Over Battery-Draining “Garbage” AI in Firefox
Mozilla Slammed Over Battery-Draining “Garbage” AI in Firefox
Firefox's new AI tab groups is causing high CPU usage and battery drain. Find out why users are complaining and how to disable the feature.Joey Sneddon (OMG! Ubuntu!)
RRF Rassegna stampa del 24 10 25 . Guerra del petrolio. Manovra, scontri in maggioranza. Sport.
New WiFi tech can accurately identify individuals without devices
New WiFi tech can accurately identify individuals without devices
A new study shows that WiFi networks can detect and identify people nearby, even if they are not carrying a phone or tablet.Bojan Stojkovski (Interesting Engineering)
like this
French court convicts TotalEnergies of greenwashing over climate claims
Judges ruled on Thursday that the energy giant had misled consumers by overstating its carbon neutrality goals. The case could set a potential precedent for corporate climate advertising.The lawsuit targeted around 40 "false advertisements," some of which are still being used, according to climate groups. It requested that TotalEnergies be required to stop using them and be required to put disclaimers on its ads that include warnings about the impact of fossil fuels on the climate.
See also:
- The fuel, and controversies, that built TotalEnergies
Founded in 1924 at the initiative of the French state, the group is now one of the world's leading oil companies. Confronted with a number of scandals, notably environmental, it's now accused of undermining the energy transition and enriching itself at the expense of climate change.
like this
Dalla candidatura a sindaca alle voci sul futuro politico: tutti i capitoli del “caso Salis” Wanda Valli su L'Unica - Genova
Salis, ex atleta e dirigente sportiva, ora è alle prese con la sfida più significativa e difficile: con la politica, alla guida di un’istituzione importante come è il Comune. Sono passati solo pochi mesi da quando è entrata a Palazzo Tursi, il nobile, elegante, palazzo simbolo di Genova politica. Pochi per giudicare una persona, eppure sono bastati per far nascere un “caso Salis”, avvincente come un giallo d’autore. E siamo solo agli inizi.
EneaSuper likes this.
reshared this
My Privacy Setup v2
It's been a while since I made this post, so I think it's time for an update.
Items in italics are subsequent additions.
Remember these rules:
- Be respectful! Some people are early on in their privacy journey, or have a lax threat model. Just because it doesn't align with yours, or uses some anti-privacy software, doesn't mean you can downvote them! Help them improve by giving suggestions on alternatives.
- Don't promote proprietary software! Proprietary software, no matter how good it may seem, is against the community rules, and generally frowned upon. If you aren't sure, you can always ask! This is a place to learn. Don't downvote people just because they don't know!
- Don't focus solely on me! Since this happened in one of @Charger8232@lemmy.ml's posts, I want to mention that this thread is not designed to pick apart only my setup. The point is to contribute your own and help others. That doesn't mean you can't still give suggestions for mine, but don't prioritize mine over another.
- Be polite! This falls under "Be respectful", but be kind to everyone! Say please, thank you, and sorry. Lemmy is really good about this, but there will always be someone.
Here is my setup:
Web browsing
- I use Mullvad Browser for general browsing, with uBlock Origin and NoScript.
- I use FoxyProxy to route my connection over Tor or I2P when accessing a hidden service or eepsite.
- I use Librewolf for general browsing on on my Raspberry Pi, as Mullvad has not yet been ported to aarch64.
- I use a self-hosted SearXNG instance for web searches, though it isn't quite as reliable as MetaGer used to be.
- I use Mullvad VPN at all times.
- I only use their owned servers; not their rented ones.
- I usually enable multihop, but it does cause issues.
- I use their Shadowsocks proxy to connect while on eduroam.
- I use NextDNS and Mullvad DNS interchangeably for extra content blocking.
- I use Libredirect and UntrackMe to redirect me to alternative frontends for popular services (e.g. YouTube -> Invidious)
- I use Vivaldi for society stuff, where the stupid web apps don't play nice with adblockers.
Desktop
- I use several trusted Linux distributions on my PCs; currently:
- Arch Linux
- Debian
- Raspbian
- Alpine (pending installation)
- Slackware
- Apart from my Raspberry Pi, the UEFI/BIOS is password-protected on all of my machines.
- I have enabled secure boot on my ThinkPad T480s (the only device I own that supports it).
- I always carry a Tails USB, but I haven't yet had cause to use it.
- I use full disk encryption (LUKS) on everything, and I have a VeraCrypted pen drive for special cases.
- I cover most of my webcams with Blu-Tac or electrical tape.
- My ThinkPad T480s supports disabling the webcams and microphone in the UEFI.
- I trust the security in GrapheneOS enough not to to this on my phone, which would be inconvenient (although a case with camera covers would be nice once my Otterbox wears out).
Mobile
- I use a Pixel 8 with GrapheneOS.
- Again, I am always connected to Mullvad VPN.
- I currently use Cromite, but I often switch between several private options. Suggestions with reasoning are most welcome.
- Cromite is hardened according to PrivacyGuides.
- I have Tor Browser installed, for when I need more protection or if I need to access a .onion
- My passcode is simply the longest string of digits I can remember.
- I used to use an alphanumeric passphrase, but it became rather inconvenient when I disabled biometric unlock.
- Radios (i.e. WiFi, Bluetooth) are automatically disabled when they are not in use.
Messaging
- I have managed to get my family and a few friends to use Signal, and I have one friend who I speak to over Tox (I am aware of why this isn't the most secure; he's had difficulty with other options)
- I am forced to use Discord, sadly, as all three of my societies use it as their only form of communication (other than social media), as do several societies from other universities and as does one of my close friends.
- With the exceptions of my grandma and my old high school group chat, I no-longer use WhatsApp.
- Now that I'm out of student accommodation, I have been able to delete Snapchat (my old flatmates insisted on using it for the flat group chat). Good riddance.
Online accounts
- I use KeePass to manage my passwords, which are synchronised between devices using Syncthing.
- KeePassXC is the client I use on desktop.
- On Android, I use KeePassDX.
- I use Aegis and OTPClient to generate TOTPs. I also have a graphing calculator that can generate these, but it doesn't seem to work very well these days.
- I have anonymised all of my social media accounts apart from my LinkedIn (I wish I didn't have this in the first place; something something capitalism) and an old Mastodon account I lost access to.
Video streaming
- I use Invidious, yt-dlp, and mpv to watch YouTube videos.
- I use PeerTube when possible (mainly to watch Veronica Explains, New Ellijay TV, Techlore, and The Linux Experiment).
AI
- I played around with ChatGPT and DALL-E in the early '20s, but those days are behind me now.
- I occasionally use Duck.ai for help with server stuff, but only when I'm desperate and out of options.
Social Media
- The only non-FOSS social media I use is Tumblr, which is ranked B by ToS;DR.
- I have a LinkedIn, but I don't really use it.
- I am the media officer for one of my societies, but I have all of those nasty proprietary apps in a separate profile.
- I use Posteo as my main provider.
- I have DuckDuckGo Email Protection as an alias service, which I use through Quacky.
- I use my uni email (Outlook 365) and my society email (Gmail) through privacy-respecting clients; namely Evolution, KMail (if I'm running KDE), and FairEmail.
Shopping/Finance
- I rarely make online purchases. I am certainly being tracked, but I'm simply not producing enough data in the first place for this to be a big problem.
- For physical purchases, I am trying to use cash more often, but it makes my budget harder to manage.
- The only recurring payment I make is to OVH, who provide my VPS and are known to be one of the better hosting providers from a privacy standpoint (though I imagine not the best).
- I would use Monero for things like Mullvad, but I've had a hard time acquiring any.
- I have joined several loyalty schemes, but I rarely use them as I shop at Aldi (specifically Aldi Süd), which doesn't have one.
- The data collected by supermarkets when I use my loyalty cards is, in my opinion, a fair trade. They get some analytics, and I get discounted products. I am comfortable with this.
Music
- I occasionally stream music on Bandcamp, but virtually everything I listen to is either on CD or a local file.
- I occasionally use an MP3 stream to listen to KERRANG! Radio, Radio 4, Classic FM (for DanTDM's show), or my university's student radio station.
- I give Last.fm my listening data intentionally.
TV shows
- I use DVDs for most of my viewing, but I have sailed the high seas in the past
- Some shows I enjoy (i.e. Helluva Boss) are released officially for free on YouTube (watched via Invidious).
- My flat does have a smart TV, but its one of the older ones (sans bullshit) and not connected to the internet.
- One of my flatmates is trying to set up a media server, which is nice.
Gaming
- I generally don't game.
- When playing Minecraft, I use PrismLauncher and I'm always sure to install the Anti-Telemetry mod.
Programming
- I code using Micro. I also sometimes use Kate, but only if I'm running Plasma.
- I use sourcehut and Codeberg to host my projects.
Productivity
- I normally just use Markdown for note-taking and documents.
- Next time I make a presentation, I will probably use Markdown slides (LibreOffice Impress isn't great, in my experience).
- Spreadsheets are edited with LibreOffice Calc, but I tend to just use a text editor to write a CSV or TSV unless I need formulae.
- One of my societies uses Trello and Google Docs for their stuff. However, I use these in their own profile on my phone, and in their own browser on desktop.
- If there's anything really sensitive or really private I need to write, I just use a pen and paper. I also own a typewriter.
Misc
- I use FreshRSS for news.
- I use Capy Reader on my phone and Newsboat on desktop.
- My local timezone just happens to be the same as UTC most of the time.
- I use a non-smart, analogue watch (RIP PineTime).
- I don't have a car, as I'm skint.
- I use Bluetooth earbuds out of necessity. I'm still salty about Apple removing the headphone jack and then every other phone company (in this case, Google) following suit. However, they are basic earbuds which do not require an app, and so they should be more private than other similar models.
- I will never use Amazon Echo or Google Home.
To-Do
- Use cash more often
- Try to get family to ditch Meta
- Get grandparents to use Signal
- Audit all systems with Lynis
- Selectively clear cookies and site data every so often in Vivaldi (automate, if possible)
Thanks for reading!
PieFed Email Error
Hello!
I wanted to move away from Reddit and started with a Lemmy instance for a few days. But, I kept on bumping into these mentions about PieFed and got curious. I figured since I just started, no harm in just spinning up PieFed. That, and once I saw Voyager was able to work with PieFed, it just seemed like a no brainer.
I'm so very impressed, I'm just exploring everything, checking out settings, and adding new communities.
That said I probably did something wrong in the process. I input the settings for email in .env.docker. As soon as I did, error emails arrived in batches of 5-8 at a time. I tried making sense of it myself, but I got stuck. Would anyone kindly take a look and point me in the right direction?
::: spoiler Error
Exception on /inbox
[POST]Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/requests/models.py", line 976, in json
return complexjson.loads(self.text, **kwargs)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
~~~~~~~~~~~~~~~~~~~~~~~^^^
File "/usr/local/lib/python3.13/json/decoder.py", line 345, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/json/decoder.py", line 363, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/pyld/documentloader/requests.py", line 72, in loader
'document': response.json()
~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/site-packages/requests/models.py", line 980, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 143, in _fetch_context
remote_doc = jsonld.load_document(url,
{'documentLoader': self.document_loader},
requestProfile='http://www.w3.org/ns/json-ld#context')
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 6583, in load_document
remote_doc = options['documentLoader'](url, options)
File "/usr/local/lib/python3.13/site-packages/pyld/documentloader/requests.py", line 100, in loader
raise JsonLdError(
...<2 lines>...
cause=cause)
pyld.jsonld.JsonLdError: ('Could not retrieve a JSON-LD document from the URL.',)
Type: jsonld.LoadDocumentError
Code: loading document failed
Cause: Expecting value: line 1 column 1 (char 0) File "/usr/local/lib/python3.13/site-packages/pyld/documentloader/requests.py", line 72, in loader
'document': response.json()
~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/site-packages/requests/models.py", line 980, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 1219, in to_rdf
expanded = self.expand(input_, options)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 870, in expand
expanded = self._expand(active_ctx, None, document, options,
inside_list=False)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 2302, in _expand
active_ctx = self._process_context(
active_ctx, element['@context'], options)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 3049, in _process_context
resolved = options['contextResolver'].resolve(active_ctx, local_ctx, options.get('base', ''))
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 58, in resolve
resolved = self._resolve_remote_context(
active_ctx, ctx, base, cycles)
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 108, in _resolve_remote_context
context, remote_doc = self._fetch_context(active_ctx, url, cycles)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 148, in _fetch_context
raise jsonld.JsonLdError(
...<8 lines>...
code='loading remote context failed')
pyld.jsonld.JsonLdError: ('Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.',)
Type: jsonld.InvalidUrl
Code: loading remote context failed
Details: {'url': 'https://www.w3.org/ns/activitystreams', 'cause': JsonLdError('Could not retrieve a JSON-LD document from the URL.')}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 1128, in normalize
dataset = self.to_rdf(input_, opts)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 1221, in to_rdf
raise JsonLdError(
'Could not expand input before serialization to '
'RDF.', 'jsonld.RdfError', cause=cause)
pyld.jsonld.JsonLdError: ('Could not expand input before serialization to RDF.',)
Type: jsonld.RdfError
Cause: ('Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.',)
Type: jsonld.InvalidUrl
Code: loading remote context failed
Details: {'url': 'https://www.w3.org/ns/activitystreams', 'cause': JsonLdError('Could not retrieve a JSON-LD document from the URL.')} File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 1219, in to_rdf
expanded = self.expand(input_, options)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 870, in expand
expanded = self._expand(active_ctx, None, document, options,
inside_list=False)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 2302, in _expand
active_ctx = self._process_context(
active_ctx, element['@context'], options)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 3049, in _process_context
resolved = options['contextResolver'].resolve(active_ctx, local_ctx, options.get('base', ''))
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 58, in resolve
resolved = self._resolve_remote_context(
active_ctx, ctx, base, cycles)
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 108, in _resolve_remote_context
context, remote_doc = self._fetch_context(active_ctx, url, cycles)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 148, in _fetch_context
raise jsonld.JsonLdError(
...<8 lines>...
code='loading remote context failed')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/flask/app.py", line 1511, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.13/site-packages/flask/app.py", line 919, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.13/site-packages/flask/app.py", line 917, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.13/site-packages/flask/app.py", line 902, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/app/app/activitypub/routes.py", line 613, in shared_inbox
LDSignature.verify_signature(request_json, actor.public_key)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/app/activitypub/signature.py", line 485, in verify_signature
final_hash = cls.normalized_hash(options) + cls.normalized_hash(document)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/app/app/activitypub/signature.py", line 544, in normalized_hash
norm_form = jsonld.normalize(
document,
{"algorithm": "URDNA2015", "format": "application/n-quads"},
)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 272, in normalize
return JsonLdProcessor().normalize(input_, options)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 1130, in normalize
raise JsonLdError(
'Could not convert input to RDF dataset before normalization.',
'jsonld.NormalizeError', cause=cause)
pyld.jsonld.JsonLdError: ('Could not convert input to RDF dataset before normalization.',)
Type: jsonld.NormalizeError
Cause: ('Could not expand input before serialization to RDF.',)
Type: jsonld.RdfError
Cause: ('Dereferencing a URL did not result in a valid JSON-LD object. Possible causes are an inaccessible URL perhaps due to a same-origin policy (ensure the server uses CORS if you are using client-side JavaScript), too many redirects, a non-JSON response, or more than one HTTP Link Header was provided for a remote context.',)
Type: jsonld.InvalidUrl
Code: loading remote context failed
Details: {'url': 'https://www.w3.org/ns/activitystreams', 'cause': JsonLdError('Could not retrieve a JSON-LD document from the URL.')} File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 1219, in to_rdf
expanded = self.expand(input_, options)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 870, in expand
expanded = self.expand(active_ctx, None, document, options,
inside_list=False)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 2302, in _expand
active_ctx = self._process_context(
active_ctx, element['@context'], options)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 3049, in _process_context
resolved = options['contextResolver'].resolve(active_ctx, local_ctx, options.get('base', ''))
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 58, in resolve
resolved = self._resolve_remote_context(
active_ctx, ctx, base, cycles)
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 108, in _resolve_remote_context
context, remote_doc = self._fetch_context(active_ctx, url, cycles)
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/pyld/context_resolver.py", line 148, in _fetch_context
raise jsonld.JsonLdError(
...<8 lines>...
code='loading remote context failed')
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 1128, in normalize
dataset = self.to_rdf(input, opts)
File "/usr/local/lib/python3.13/site-packages/pyld/jsonld.py", line 1221, in to_rdf
raise JsonLdError(
'Could not expand input before serialization to '
'RDF.', 'jsonld.RdfError', cause=cause)
:::
like this
As soon as federation starts there is all kinds of weird JSON that arrives from different software, so errors start happening. Most of them are not serious.
Are you following PeerTube channels? Afaik PeerTube is the one most likely to trigger the JSON-LD-based signature validation.
Thank you everyone, for your replies and tips!!
I haven't followed PeerTube channels directly from PieFed - yet.
After just under 24 hours up, so far everything seems to be working just as wjs018 says.
Thanks Rimu for the Sentry tip.
I think I'll just not set the email for errors so as to avoid the logs being sent out.
Projects
View all the projects associated with teams that you're a member of, then dive into their details quickly.docs.sentry.io
wjs018
in reply to pathwonder • • •So, I just visited your instance and there is definitely an issue...but I am not sure I will really be of much help. When I click an image, it looks like the lightbox javascript is being blocked by the CSP. Here is what I see in the browser console:
The CSP that ships with piefed should allow the lightbox to run without issue. Perhaps there is a reverse proxy or CDN applying a stricter CSP? Maybe a browser plugin of some kind?
This kind of web admin stuff isn't really my area of expertise though.
Rimu
in reply to wjs018 • • •That's it, yes.
If we use the browser dev tools to look at the CSP header that the HTML page returns, we can see that piefed.social has a different one than kopitalk.net. Below is piefed.social's one:
It's probably cloudflare or nginx causing that.
pathwonder
in reply to Rimu • • •#solved
EDIT: 2025-10-25 at 11h29 - I deleted the Content-Security-Policy and PieFed displays images as expected.
Reasoning
So after crawling through some very old Reddit posts, I came across other self-hosters discussing their new found interest in Security Headers from 5 years ago (dated, yes). Among the comments was a post by pentesticals (glorious):
::: spoiler quote
Don't stress about security headers and CSP. These are there to help provide additional protection against client-side issues which may or may not be present.
These will not have any direct impact on your services you expose, rather they aim to be a last resort to protect your browser in case an attacker tries to exploit existing vulnerabilities such as a Cross Site Scripting - but not having these does not increase the risk of your server being compromised.
Use Nessus Essentials for scanning your services and have fun.
:::
reddit.com/r/selfhosted/commen…
I use Caddy and I can indeed see the security headers that involve CSP. How should this setting be amended?
For what it's worth I looked over the "Using Caddy as reverse proxy" for Lemmy, and I notice that they just don't use the Content-Security-Policy option at all. I'm wondering if I should simply delete this Header for PieFed.
join-lemmy.org/docs/administra…
::: spoiler Security Headers
:::
Using Caddy as a reverse proxy
join-lemmy.orgRimu
in reply to pathwonder • • •Agent_Karyo
in reply to pathwonder • • •