Salta al contenuto principale



Upcoming Elections in the Netherlands: Will the Far Right Hold Its Ground? Will the Pirates throw soot in the FUD?


The Netherlands once again finds itself at a political crossroads. Less than two years after a coalition government collapsed under the weight of internal tensions, Dutch voters are preparing to decide what kind of leadership they want for their future.

On the 29th of October, Dutch people will be going to the polls to elect a new Tweede Kamer (Dutch lower house). Initially, the next elections were scheduled for 2028, but due to the fall of the 2024 cabinet, snap elections were called for.

On the 3rd of June, Geert Wilders, leader of the far-right conservative party PVV (Party for Freedom), walked away from the coalition due to different views on asylum policies. The cabinet led by Dick Schoof as prime minister ended with his resignation. The upcoming elections thus pose an opportunity for voters to shape the composition of their parliament anew.

The elections held in November 2023 led to talks that concluded in 2024, with the coalition appointing the independent Schoof as prime minister. The coalition was formed by the Party for Freedom (PVV), the largest party in the House of Representatives, with the People’s Party for Freedom and Democracy (VVD), New Social Contract (NSC), and the Farmer–Citizen Movement (BBB). The coalition was marked by its delicate nature and Wilders’ inability to converse with his fellow coalition members, often alienating them due to his narrow, inflexible views on migration, asylum, and social policies.

As the elections approach, a first debate was held on the 12th of October. It was expected that the populist nature of Wilders would take centre stage; however, he withdrew from the campaign and did not participate in the debate. [Earlier in the week, he had been mentioned in the list of targets of a terrorist group, and so, for security reasons, he decided not to participate in the debate, even after the group had been arrested, security had confirmed it to be safe, and possibilities for venue changes and online allocations were suggested.] In his absence, the leader of D66 (Democracy 66), Rob Jetten, joined in his place.

The debate featured Dilan Yeşilgöz, the leader of VVD (People’s Party for Freedom and Democracy, a conservative-liberal party), Henri Bontenb from CDA (Christian Democratic Appeal), Frans Timmermans from the recently combined GroenLinks-PvdA party (social democracy, green politics), and Rob Jetten. Key debate topics included asylum policies, how to address the current housing crisis, health care practices, and issues in Gaza. Despite party leaders fixating on the language of the debate rather than the policy proposals and personal attacks, the key topics of the election agenda were raised.

Given Wilders’ absence from this weekend’s debate, other party leaders had the opportunity to present their positions more prominently. This offers a hopeful outlook, as his strongly right-aligned views were not the focal point, allowing voters to engage with other perspectives. Considering Wilders’ rigid stance on migration during the previous government, he may have alienated not only other parties but also segments of his own voter base.

According to polling conducted at the beginning of October (ipsos-publiek.nl/actueel/ipsos…), support for the PVV has declined compared to 2023, yet it remains the most popular party. The most notable change is the decline in support for the VVD and NSC, two former coalition parties. It is also key to highlight the rise in support for CDA, a party that has previously stated its preference to work with the VVD rather than the PVV.

The shifting popularity of some parties from the previous coalition may signal a potential change in the composition of the next one. This could be encouraging news: the Netherlands might see a government more centrally aligned in its social and immigration policies and more open to dialogue. While the left and more progressive parties have yet to gain significant momentum (including the Dutch Pirate Party), there remains a possibility for a more moderate, centre-right coalition to emerge (rather than the previous extreme-right one).

With Dutch voters heading to the polls at the end of the month, there is still room for public opinion to evolve and for parties to rethink their alliances. For the moment, there is a cautious hope that the next Dutch government may take a more moderate path.

So how are our Dutch Pirate Party colleagues faring?


The campaign has centered around the party leader Matthijs Pontier and focused on his appearances in public debates. The Piratenpartij Podcast has featured him and other candidates in discussions on the main Pirate points, and talking about Pirate Party history, and topics in the news.

A list of posts introducing the candidates of the Dutch Pirate Party follows:


Piratenpartij

@

1. Matthijs Pontier

"Ik ben fractievoorzitter in het Waterschap Amstel, Gooi en Vecht en heb een achtergrond op het gebied van Kunstmatige Intelligentie.

De Piratenpartij staat voor een vrije democratie waarin iedereen direct toegang heeft tot alle kennis, kunst en cultuur. We investeren in publieke voorzieningen​ zoals betaalbare woningen, zorg en onderwijs. We vertrouwen elkaar en hebben een gezond wantrouwen tegenover de macht van overheden en bedrijven."

piratenpartij.nl/kandidaten-tk…

Foto van lijsttrekker Matthijs, donkerblonde haren, snor en baardje, lichtbruin jasje en groen overhemd. Op de foto leunt hij tegen een muur en is een groene deur, met rond raampje zichtbaar.

October 24, 2025, 16:03 2 boosts 3 favorites


Piratenpartij

@

4. Saira Sadloe, Purmerend

"Het ondersteunen van burgerrechten, directe democratie, databeveiliging, bescherming van persoonsgegevens, transparantie, vrijheid van kennis en informatie, goed toegankelijke onderwijs, universele gezondheidszorg en een stabiel basisinkomen. Dit zijn exact de steken die het huidige kabinet heeft laten vallen!

Daar waar anderen weg lopen, ga ik de strijd aan. Bij de Piratenpartij voel ik daadkracht en integriteit."

piratenpartij.nl/kandidaten-tk…

Foto van Saira, lange, zwarte haren, beige jasje, paars met wit bloesje

October 24, 2025, 15:57 0 boosts 1 favorites


Piratenpartij

@

7. David van Deijk, Eindhoven

Ik ben geboren en wonende in Eindhoven en programmeur van beroep.

Binnen de campagne ben ik iemand die zorgt dat drempels voor activiteiten worden weggenomen in plaats van opgeworpen. Met mijn ervaringen binnen de Piratenpartij help ik ideeën van nieuwe actieve leden tot daadwerkelijke acties te brengen, en ben ik een bron van kennis op het gebied van acties die we in het verleden gedaan hebben.

piratenpartij.nl/kandidaten-tk…

Foto van een breedlachende David, bril met donker montuur, blonde haren, snor en sikje. Groen, geruit overhemd en blauw t-shirt.

October 23, 2025, 15:23 0 boosts 0 favorites


Piratenpartij

@

Vervolg voorstelrondje:

10: Fleur Breman, Rotterdam

"Om mezelf recht in de spiegel aan te kunnen kijken, in de hoop op een leven waarvan de balans tussen geven en nemen doorslaat naar meer coöperatie – en daarmee het onderling vertrouwen, verkies ik in ieder opzicht partnerschap. Daarom kies ik voor de partij met de programmapunten die het beste in ons naar boven halen, zoals de invoering van een universeel basisinkomen en de bevrijding van informatie.

piratenpartij.nl/kandidaten-tk…

Foto van Fleur, kort donker kapsel, wit shirt.

October 23, 2025, 15:07 1 boosts 0 favorites


Piratenpartij

@

13. Jean-Aimé Musangamfura, Friesland – Amsterdam

"Wat ik vooral belangrijk vind is ervoor zorgen dat er in onze maatschappij internationale solidariteit is en dat er respectvol omgekeken wordt naar mensen in zwakkere posities, zoals bijv jongeren met een vluchtverleden.

Duurzaamheid, corporate sociaal responsibility, mensenrechten, armoedebestrijding en een weerbare digitale samenleving is waar ik me voor wil inzetten. En minder polarisatie graag, ook in de media."

piratenpartij.nl/kandidaten-tk…

Foto van Jean-Aimé, glimlach, kort donker haar, bruine trui.

October 22, 2025, 14:37 1 boosts 1 favorites


Piratenpartij

@

16. Bianca Lubben – Emmeloord

"Ik ben 42 jaar en werkzaam in verschillende sectoren: zorg, kinderopvang en sociaal werk.

Er zijn heel veel dingen die veel beter kunnen in Nederland. Zorg, onderwijs, onderdak en voedselzekerheid zijn cruciaal en ik zal hier dan ook voor strijden. Ik zou namelijk graag in een land willen wonen waar niemand achterblijft en we Nederland eindelijk echt een welvarend land kunnen noemen."

piratenpartij.nl/kandidaten-tk…

Foto van een lachende Bianca, lang donker haar in een paardenstaart en met paars piratenpartij-regenjasje aan.

October 21, 2025, 12:54 0 boosts 0 favorites


Piratenpartij

@

19) Nabille el Hajoui

Amsterdamse nachtbraker met een groen hart.

Ik geef afval een tweede leven als Recycle Art.

Voor een creatieve en vrije stad en land.

piratenpartij.nl/kandidaten-tk…

Foto van Nabille met glimlach, camouflage-petje en stoppelbaardje

October 21, 2025, 12:41 0 boosts 0 favorites


Piratenpartij

@

23. Angeline Pot

"Vanuit mijn werk als maatschappelijk werker en psychosociaal therapeut zie ik dat de zorg, zowel medisch als het geestelijk welzijn in de knel is geraakt door het huidige beleid. Door de systemen en de macht van de grotere organisaties mis ik de menselijke maat, die men juist nodig heeft als men om hulp vraagt en zich kwetsbaar voelt.

Als ervaringsdeskundige loopt Angeline zelf ook tegen allerlei hindernissen aan, zoals bij de WMO

piratenpartij.nl/kandidaten-tk…

Op de foto een lachende Angeline met donker, kort haar, een wit jasje met roze streep en lichtblauw shirt.

October 20, 2025, 14:31 1 boosts 1 favorites


Piratenpartij

@

29. Roberto Haak

"Ik ben een functionaris gegevensbescherming bij de overheid met een missie: zorgen dat organisaties niet als rovers omgaan met persoonsgegevens. Privacy en ethiek horen bovenaan de mast.

Ik vaar ook een koers als ondernemer: met mijn handel Hook Solutions verkoop ik haken voor huis, tuin en keuken, en Kapitein Haak-artikelen.
Met mijn achternaam kan ik onmogelijk níet met de Piratenpartij meevaren."

piratenpartij.nl/kandidaten-tk…

Foto van een lachende Roberto op de rand van een boot in een haven. Donkere haren, snor en baardje, bontgekleurd overhemd (met o.a. prints van een leeuw en een bootje met Nederlandse vlaggen) op lichte broek. Bootjes op de achtergrond.

October 18, 2025, 13:14 0 boosts 2 favorites


Piratenpartij

@

32) Jaap van Till

"Jongeren verdienen toekomstperspectief, geen vastgelopen systeem."

Hij zet in op constructieve oplossingen voor de transities van nu, naar o.a. decentrale AI. Voor innovatie die waarde deelt, niet onttrekt.

piratenpartij.nl/kandidaten-tk…

Foto van Jaap - grijze korte haren en en een baardje, met bril en rood/bruin overhemd met zwart vestje.

October 18, 2025, 12:31 1 boosts 0 favorites


Piratenpartij

@

2. Kirsten Zimmerman, Amsterdam

"Ik ben sinds 2022 stadsdeelcommissielid in Amsterdam-Noord. Mijn speerpunten zijn behoud van het groen, directe democratie, privacy en sociale verbinding.

Daarnaast ben ik onderzoeker en schrijver.

Ik ben enthousiast, heb een duidelijke mening, kan tegelijkertijd goed samenwerken en de kar trekken. Ik ben kandidaat voor de Piratenpartij, omdat ik denk dat ik goed in staat ben om de partij een gezicht te geven.

piratenpartij.nl/kandidaten-tk…

Foto van een lachende Kirsten, met halflange, rode haren, bril, kettingen op een zwart t-shirt

October 24, 2025, 16:00 0 boosts 1 favorites


Piratenpartij

@

Laatste ronde – onze top 5:

5. Wietze Brandsma, Burgum

"Als software-ontwikkelaar wil ik vrij kennis kunnen delen op het internet. Die vrijheid wordt bedreigd door BigTech. Om monopoliemacht te krijgen misbruiken ze softwarepatenten en auteursrechten.

Monopolievorming speelt niet alleen online, maar in de hele samenleving. We willen vrijheid om mee te doen met de economie en lokale zeggenschap."

piratenpartij.nl/kandidaten-tk…

#TK2025 #Piratenpartij

Foto van Wietze, kort, blond haar, bril. Blauw jasje, met paarse piratenstropdas en lichtblauw overhemd.

October 24, 2025, 15:55 1 boosts 4 favorites


Piratenpartij

@

8. Sabrina Grossman, Amsterdam

Als moeder van kinderen met bijzondere behoeften zet ik me in voor de rechten van personen met een handicap. Ons land voldoet niet aan internationale verdragen zoals de VN-verdragen Handicap en Inzake de Rechten van het Kind.

Mijn prioriteit is om de meest ernstige misstanden in de zorg te bestrijden. Ik pleit voor het aanstellen van een functionerende autoriteit boven de instellingen en organisaties, om menswaardige zorg te waarborgen.

piratenpartij.nl/kandidaten-tk…

Foto van een gimlachende Sabrina, donkerrode haren en een paars shirt.

October 23, 2025, 15:14 0 boosts 0 favorites


Piratenpartij

@

11. Mark van Treuren, Schagen

"Veel mensen kennen mij van de markt, uit de zorg, als tegelzetter of goochelaar. Ik heb in elke uithoek van de maatschappij gewerkt.

Sinds 2020 ben ik actief voor de Piratenpartij. Twee jaar lang was ik met veel plezier partijvoorzitter. Er is moed nodig om de huidige problemen op te lossen. Denk aan doorgeslagen bureaucratie, corruptie, inbreuk op privacy van burgers, non-transparantie, milieuvervuiling, ongelijke machtsverhoudingen."

piratenpartij.nl/kandidaten-tk…

Foto van Mark, Rossig lang haar in een staart, snor, baardje met kleurrijk overhemd. Insider tip: herkenbaar aan zijn blote voeten.

October 22, 2025, 14:58 1 boosts 3 favorites


Piratenpartij

@

Vervolg voorstelrondje:

14. Dmitri Schrama, Utrecht

Langetijdpiraat, idealist, en een groot voorstander van gelijkwaardigheid en vrijheid.

"Kennis moet gedeeld kunnen worden anders kan ze niet groeien.
Daarbij willen wij kennis kunnen nemen van wat de overheid doet en welke verbindingen er bestaan tussen de overheid en het bedrijfsleven. Wij willen meer privacy voor burgers en transparantie van die overheid en bedrijven.

Stem voor jezelf! Stem piraat!"

piratenpartij.nl/kandidaten-tk…

#TK2025

Foto van een lachende Dimitri, lichtrossig haar en snor, baardje, bril en wit shirt.

October 22, 2025, 14:25 0 boosts 1 favorites


Piratenpartij

@

17. Kees Valkhof:

"Ik kom uit Rotterdam en werk bij Lely waar ik 600+ ontwikkelaars ondersteun bij het bouwen van software.

Ik concentreer me op wat ik het recht op bezit noem. Met name software wordt zodanig geleverd dat het bedrijf achter het product bepaalt hoe, waar en hoelang je hun product mag gebruiken. Het liefst met grove inbreuk op je privacy."

piratenpartij.nl/kandidaten-tk…

#TK2025

Foto van Kees, kort, licht-grijzend haar en een blauw-wit overhemd.

October 21, 2025, 12:50 0 boosts 0 favorites


Piratenpartij

@

Vervolg voorstelrondje:

20) Teunis van Nes

Geboren in Rijsoord, ondernemer in Zeeland.

Net als mijn voorvader Aert van Nes vecht ik tegen onrecht en voor vrijheid.

Ik strijd voor een open overheid, gelijkheid en broederschap.

piratenpartij.nl/kandidaten-tk…

Foto van een lachende Teunis, kalend, lichtkleurig haar, bril, beige vest en wit-paars gestreept overhemd.

October 21, 2025, 12:34 0 boosts 0 favorites


Piratenpartij

@

Vervolg voorstelrondje kandidaten:

25. Onze voorzitter Frank Wijnans

piratenpartij.nl/kandidaten-tk…

en 24. Ons Presidium-lid Edy Bouma:

piratenpartij.nl/kandidaten-tk…

#TK2025

Foto van Frank, met glimlach, blonde haren met een scheiding. bril en baardje, kaki-groen shirt. Foto van een lachende Edyy, bruin/grijs krullend haar, bril, rood-bruine trui met paarsig overhemd. Op de achtergrond is een deel van de Piratenvlag zichtbaar.

October 20, 2025, 14:27 0 boosts 0 favorites


Piratenpartij

@

30. André Linnenbank

"Ik ben natuurkundige en heb lange tijd als onderzoeker in het ziekenhuis gewerkt. Daar zag ik grote problemen met veilige data-opslag en uitwisseling van gegevens.

Tegenwoordig ben ik docent op een middelbare school in Amsterdam. Ik geef natuurkunde, natuur leven & technologie, en informatica aan vooral de bovenbouw leerlingen Mavo, Havo en VWO."

piratenpartij.nl/kandidaten-tk…

Foto van André; grijze, beetje wilde haren, snor en baardje, blauw jasje over een wit overhemd met een felblauwe stropdas. Op de achtergrond een haven met zeilboten.

October 18, 2025, 12:53 0 boosts 0 favorites


Piratenpartij

@

KENNISMAKING MET ONS TEAM!

We stellen de komende dagen alle kandidaten voor, startend bij nr. 33, onze lijstduwer Metje Blaak:

Wat haar aantrekt in de Piratenpartij is “je leven leiden zo als jij dat wilt”.

"Eigenlijk doe ik dat mijn hele leven al. Vandaar dat ik me graag aansluit bij de Piratenpartij, ook zodat ieder vrij is om zich te ontwikkelen en toegang heeft tot techniek en cultuur; of je nou zo arm als een kerkrat bent of rijk."

piratenpartij.nl/kandidaten-tk…

#TK2025

Foto van Metje - lange blond/grijze haren, een hoedje en rode lippenstift

October 18, 2025, 12:15 2 boosts 1 favorites


Piratenpartij

@

3. Arjan Bresser, Nijmegen

Mensen zijn de grote drijfveer in mijn leven; eerst als buschauffeur, nu als conciërge op de Hogeschool Arnhem Nijmegen.

Als Piraat verzet ik mij tegen de inperkingen van onze vrijheden. In een ideale samenleving is informatie zo vrij en veel mogelijk beschikbaar voor ons allemaal, kan iedereen anoniem en privé communiceren, is er weinig surveillance en bespaart legalisering en regulering van drugs inzet van politiecapaciteit.

piratenpartij.nl/kandidaten-tk…

Foto van Arjan, met korte hanekam, lange rode baard, ronde oorbel zwart jasje met paarse piratenpartij stropdas op een zwart overhemd.

October 24, 2025, 15:59 0 boosts 1 favorites


Piratenpartij

@

6. Goof Pontier, Doetinchem

Goof is 36 en zet zich al jaren in als gemeenteraadslid in Doetinchem.

"Als ambulant begeleider in de zorg en werkzaam bij een opvang voor dakloze jongeren heb ik dagelijks te maken met de uitdagingen waarmee mensen in moeilijke situaties worden geconfronteerd. Mijn hart ligt bij degenen die het meest kwetsbaar zijn in onze samenleving, en ik geloof dat we als partij een verschil kunnen maken door voor hen op te komen."

piratenpartij.nl/kandidaten-tk…

Goof kijkt vrolijk in de camera, donkerblond kort kapsel, ringbaarde en donkerkleurige trui.

October 23, 2025, 15:28 0 boosts 0 favorites


Piratenpartij

@

9. Eskild Wikkeling, Reeuwijk

Eskild, ICT’er en vader. Zijn centrale strijdpunten zijn de bescherming van digitale burgerrechten en online privacy voor alle burgers. Hij pleit ervoor dat betrouwbaar breedbandinternet een betaalbare nutsvoorziening wordt. Wikkeling wil dat overheden digitale mogelijkheden beter benutten om het leven van burgers te vereenvoudigen, bijvoorbeeld door het schrappen van overbodige formulieren.

piratenpartij.nl/kandidaten-tk…

Foto van een glimlachende Eskild, korte donkere haren, bril met licht montuur, lichtkleurig overhemd

October 23, 2025, 15:11 1 boosts 0 favorites


Piratenpartij

@

12. Mirjam van Rijn, Amsterdam

"Ik ben commissielid in Waterschap Amstel- Gooi en Vecht. Na zovele jaren uitkleden van zorg, sociale voorzieningen, drama’s als met de Toeslagenaffaire, vluchtelingen, covid, Groningen, etc. is er, nu gelukkig een nieuwe kans en kunnen we alles op alles zetten om onze thema’s eindelijk naar Den Haag te brengen."

Ook actief bij ATD Vierde Wereld, Stoere Vrouwen, Milieudefensie, Transnational Institute en SOMO,

piratenpartij.nl/kandidaten-tk…

Foto van Mirjam, lichtrossig, halflang haar, donkergroen jasje.

October 22, 2025, 14:52 2 boosts 1 favorites


Piratenpartij

@

15. Dylan Hallegraeff, Den Haag

Dylan is een maker in de brede zin van het woord: dus van realtime calculated 3D-graphics tot lasershows en van lichteffecten tot hardcore tekno.

"In dit proces loop je onherroepelijk tegen juridische grenzen aan van wat wel en niet toegestaan is. Dit is een mijnenveld. De huidige copyrightwetgeving belemmert creativiteit, terwijl deze juist was opgezet om creativiteit te bevorderen."

piratenpartij.nl/kandidaten-tk…

#auteursrecht #TK2025

Foto van Dylan, sluik, donker haar, ringbaardje en donkerkleurig jasje op een wazige achtergrond.

October 21, 2025, 12:58 0 boosts 0 favorites


Piratenpartij

@

18. Peter Braun:

Peter is al ruim 10 jaar lid van de Piratenpartij en woont in de mooie in Kerkrade.

Hij is ruim 20 jaar geluidtechnicus geweest en daarna journalist en fotograaf voor de jongerensite van Landgraaf en heeft onder andere ook in de Wsw-raad gezeten.

Tegenwoordig maakt hij nog steeds in zijn vrije tijd foto’s onder het creative common licentie model, schrijft wordpress plugins, maakt wordpress templates en werkt als operator in Gronsveld.
piratenpartij.nl/kandidaten-tk…

#TK2025

Foto van een lachende Peter, met beetje lang, sluik donker haar, bril en lichtblauw jasje

October 21, 2025, 12:45 0 boosts 0 favorites


Piratenpartij

@

22. Wouter van Dijke

"Geloven in vrijheid en autonomie vooronderstelt dat je het individu vertrouwt en daarom beschermt tegen bemoeienis van de autoriteiten.

Voor een Piraat is de vrije uitwisseling van informatie en ideeën nog steeds essentieel om onzin en onbegrip de wereld uit te helpen – die uitwisseling wordt niet opeens een gevaarlijke bron van desinformatie en extremisme omdat ze zich online afspeelt. Daarom pleiten we zo hard tegen censuur en voor privacy online".

21: Fanni Horvath

October 20, 2025, 14:35 0 boosts 0 favorites


Piratenpartij

@

26. Ron Smit

Ron Smit (1964) heeft de opleiding Informatica Technologie aan de universiteit in Amsterdam gevolgd. Hij is mede-oprichter van de Basisinkomen Partij in 2013. Ron onderzoekt nieuwe technologische ontwikkelingen in de wetenschap en is ook radiozendamateur (piraat).

Foto van een glimlachende Ron, kalend met bril, wit overhemd en lichtkleurig jasje.

October 19, 2025, 8:29 0 boosts 0 favorites


Piratenpartij

@

Vervolg: voorstelrondje kandidaten:

28. Ryszard Matenko

"Tussen 1990 en 1994 was ik raadslid in stadsdeel de Pijp. Ik woon nu in de Rivierenbuurt en zet me nog steeds in voor een leefbare buurt. Directe communicatie, dialogen en samenwerking met geestverwanten."

piratenpartij.nl/kandidaten-tk…

27. Aloy Nauta:

"Ik vind dat de regering bewoners meer kansen moet aanreiken om macht in eigen handen te kunnen nemen wanneer het niet goed gaat in buurten of wijken."

piratenpartij.nl/kandidaten-tk…

#TK2025

October 19, 2025, 8:16 0 boosts 0 favorites


Piratenpartij

@

31) Vincent van der Velde

"Als advocaat en ex-wethouder vecht ik voor jouw digitale rechten. Voor transparantie en de digitale underdog.

Als Piraat wil ik opkomen voor de digitale burgerrechten van iedereen en met mijn juridische kennis wil ik helpen aan het ontwikkelen en realiseren van die digitale burgerrechten. Mét de Piratenpartij zal ik bijdragen aan die digitale empowerment."

piratenpartij.nl/kandidaten-tk…

Een lachende Vindent, donkere haren en snor en baardje. Blauw jasje, wit overhemd.

October 18, 2025, 12:40 0 boosts 1 favorites


PiraatNMGN

@

#Piratenpartij #tk2025 #verkiezingen #vote #Nijmegen
🏴‍☠️ 🏴‍☠️ 🏴‍☠️
Stem voor jou privacy Piratenpartij!
Arjan Bresser nr. 3 lijst 21
🏴‍☠️ 🏴‍☠️ 🏴‍☠️
nijmegen.nieuws.nl/lokaal/nijm…

Foto van Arjan Bresser nr 3 lijst 21 met een Piratenpartij vlag wapperend op een brug.

October 19, 2025, 8:30 1 boosts 1 favorites


europeanpirates.eu/upcoming-el…


Piratenpartij Podcast - #01 - Social media en ... Jeugdzorg!


Deze Piraten Podcast werd opgenomen in het Blauwe Pand, Zaandam.

Met Matthijs, Leontien, Saira, Metje en Bart!
en dank aan: Andrel, Rene, Sabrina.

Muziek van 𝐌𝐄𝐓𝐀𝐋 𝐌𝐀𝐑𝐈𝐎




Retrotechtacular: The $550K Video Conferencing System Used to Make Bee Movie


Jerry Seinfeld dressed up as a honey bee promoting his film Bee Movie.

The modern office environment has shifted in recent years. Employees are routinely asked to collaborate with co-workers half way around the globe and be camera ready, or whatever passes for webcam ready, in order to telecommute when they are out of office. Every office laptop, tablet, or cell phone these days comes equipped with some sort of camera sensor capable of recording at HD resolution. Twenty years ago, that was not the case. Though tech conglomerates like HP had a different idea of teleconferencing to sell back in 2005 dubbed the Halo Collaboration Studio.

The Halo Studio was a collaboration between HP and Dreamworks that was used during the production of Bee Movie. Studio heads at Dreamworks thought it necessary to install the HP teleconferencing solution inside the New York office of Jerry Seinfeld, the writer of the film, as to allow him to avoid long trips to Dreamworks production offices in Los Angeles. According to the HP Halo Collaboration Studio brochure, “Halo actually pays for itself, not only by reducing travel costs, but also by encouraging higher productivity and stronger employee loyalty.” Certainly Dreamworks believed in that sales pitch for Bee Movie, because the upfront asking price left a bit of a sting.

Less of a singular machine, more of an entire dedicated room, the Halo Studio had a $550,000 asking price. It utilized three 1280×960 resolution plasma screens each fitted with a 720p broadcast camera and even included an “executive” table for six. The room lighting solution was also part of the package as the intent was to have all participants appear true to life size on the monitors. The system ran on a dedicated T3 fiber optic connection rated at 45 Mbps that connected to the proprietary Halo Video Exchange Network that gave customers access to 24×7 tech support for the small sum of $30,000 a month.

For more Retrotechtacular stories, check out Dan’s post on the Surveyor 1 documentary. It’s out of this world.

youtube.com/embed/0E9iKKTiMSA?…


hackaday.com/2025/11/30/retrot…



Julian Assange Archive lancia un appello per la raccolta fondi per l'inaugurazione della mostra 2026.

L'archivio indipendente Julian Assange @AssangeArchive è dedicato a preservare il movimento globale che ha combattuto per difendere la libertà libe…



Tiny Little TV Runs On ESP32


Few of us keep big old cathode ray tubes in the house anymore, but we can still appreciate the form factor of the classic TV. Indeed, the Tinytron from [t0mg] is a neat little tchotchke in this vein — a miniature TV that you could just about fit on a keyring.

[t0mg] wanted this project to be quick and easy to put together. It starts with an ESP32-S3-LCD-1.69 from Waveshare. It’s an all-in-one dev module which combines the microcontroller with a small screen right out of the box. You just have to solder a single six pin header to hook it up with an SD card reader and battery, and you’re done with the electronics. Even the case is a cinch to build, with four 3D printed components that can be spat out of a Prusa MK4S in just half an hour. Programming it can be done via a web browser. Just about the only thing it’s missing is a speaker — this TV is video only.

To watch things on the Tinytron, you just have to prepare them properly and drop them on the SD card. [t0mg] provides a web page for transcoding the video files, although you can do it yourself locally with ffmpeg if you prefer.

If you’re looking for a silly gift for a TV-obsessed friend, you could probably whip up a Tinytron in a couple hours or less. It reminds us of another great project, the tiny Simpsons replica TV that endlessly plays the greatest cartoon on Earth.

youtube.com/embed/-QKKTKMmSjw?…


hackaday.com/2025/11/30/tiny-l…



“Beati gli operatori di pace!”. E’ il saluto di Leone XIV al Libano, seconda tappa del suo viaggio apostolico che lo ha visto oggi lasciare la Turchia per approdare nel Paese di cedri, ferito da una guerra ai propri confini.


tgcom24.mediaset.it/2025/video…

ma esattamente quando la meloni sostiene che la violenza va sempre condannata, quando a proprio danno, intende anche violenze del genere esposto nell'articolo accluso?




Raise Bikes to the Heavens with Humble Garage Door Opener


bikes are shown raised from the floor from the garage opener lift

Biking can be an incredibly rewarding hobby, but what do you do with all of your expensive pieces of metal and composite when you aren’t hitting the trails? They take up space that you could use for more bikes! [Chaz] figured there had to be a better way and discovered the unlikely solution of the humble garage opener.

Garage doors are made to lift high with moderate weight, exactly what one would expect from a bike lift. If you have high ceilings in your garage or wherever else you store your bikes there can’t be much easier than pushing a button to get your bike out of the way.

To assemble the unusual bike rack, [Chaz] mounted the motor to the wall with a few scraps of wood, and built a wooden platform that rides along the rail. This additional board allows you to use a traditional bike wheel rack to gently raise the bike. While initially [Chaz] had some questionable results, this was quickly resolved with removing the rotational elements of the mount and allowing a slight slant in the bike.

While not everyone may need to raise their bikes to the heavens, this type of simple hacking is always rewarding to see come together. If you want to see how some more bike specific tech works, check out the insides of this expensive bike seat!

youtube.com/embed/7pw7YexheQg?…


hackaday.com/2025/11/30/raise-…






qr.ae/pCuity

mmm aria di ribellione. chissà se si ribelleranno davvero. può essere la classica "goccia" che fa traboccare il vaso?



Ho installato LineageOS sul vecchio Redmi Note 10 Pro...e sono felicissimo!


Spinto da questo toot dei @Devol ⁂ (che ringrazio), ho deciso di andare un po' più in là nella mia degooglizzazione.
Non posso rimuovere del tutto google ddalla mia vita, ma mi sono detto almeno voglio avvicinarmi il più possibile, un passo alla volta.

La premessa da fare è che non conoscevo molte delle soluzioni indicate nel toot, quindi è un'ulteriore riprova (se mai ce ne fosse bisogno), che la conoscenza è potere --> diffondiamo il più possibile!

Ho messo #lineageos nel mio vecchio Redmi Note 10 Pro, che stavo letteralmente per buttare in pattumiera: si bloccava continuamente, andava a scatti, la batteria non durava più molto. Del resto è questo a cui ci hanno abituati; a buttare l'hardware ogni 3 anni al massimo per comprarlo nuovo. In questo caso, quel dispositivo era stato particolarmente sfortunato perché la stessa Xiaomi l'aveva ucciso dopo sole 2 versioni di android e 3 anni scarsi di vita, chiudendo il rubinetto degli aggiornamenti.

Con Lineage OS, a 2 anni di distanza dall'ultimo aggiornamento rilasciato, ho riportato a nuova vita il dispositivo. Senza più il peso di tutta la spazzatura di Google e Xiaomi, quell'hardware è tornato a far girare android 16 (uscito quest'anno) e per di più in maniera estremamente fluida, comparabile a un google pixel nuovo. La batteria dura di più, e posso anche dire che sono più tranquillo dal punto di vista della sicurezza (è sempre meglio avere software aggiornato).

Ho installato anche il play store, ma sinceramente non conto di usarlo: sto usando F-Droid per le app open source (ne userò il più possibile) e per tutto il resto c'è Aurora store, che si interfaccia con il play store di google ma con un dispositivo "virtuale", quindi in maniera anonima.
Potrò anche beneficiare degli aggiornamenti molto più frequenti rispetto al nulla a cui mi aveva condannato Xiaomi/Redmi.

Insomma, al posto di un hardware ancora valido ma inutilizzabile, mi rtrovo un secondo cellulare che è tornato come nuovo, e che potrò usare come riserva o come compagno per i miei viaggi (è sempre utile avere con sé un secondo dispositivo da usare nel caso in cui si perda il primo).

L'installazione non è stata difficilissima per me che sono un utente avanzato, ma di per sé non è complicatissima: se si conosce un minimo di inglese, il sito di Lineage Os spiega passo passo cosa fare.

La parte più complicata, tutto sommato, è stata quella di sbloccare il dispositivo Xiaomi: l'azienda non mette a disposizione il software aggiornato per farlo, quello sul sito lineage è un po' vecchiotto, e anche una volta che si è reperito in rete la versione aggiornata, Xiaomi ti fa aspettare una settimana di calendario!

Superato questo ostacolo, è stato facile.

Insomma, ancora una volta grazie all'opensource e a chi ne ha diffuso la conoscenza.

#lineageos #opensouce #degoogle #degoogledphone #smarphone


🌍 Abbiamo aggiornato la nostra guida alla degooglizzazione per liberarci da Google:

👉 newsletter.devol.it/degooglizz…

È una guida semplice per iniziare davvero a uscire dall’ecosistema Google e sarà aggiornata continuamente.

Inoltre per restare sempre aggiornati consigliamo i gruppi del Fediverso:

📡 @internet

💻 @tecnologia

🔐 @sicurezza

E anche Telegram:

📨 t.me/devolitalia

📨 t.me/devolgroup

Fate girare! Grazie 🙏


Oloap reshared this.



Nel corso della storia moderna della Chiesa, quattro Pontefici hanno compiuto viaggi apostolici in Libano, ciascuno lasciando un segno particolare in momenti differenti, con significati spirituali, ecclesiali e simbolici profondi.




“Che cosa fare perché soprattutto i giovani non si sentano costretti ad abbandonare la propria terra e ad emigrare? Come motivarli a non cercare la pace altrove, ma a trovarne garanzie e a diventarne protagonisti nella propria terra nativa?”.


[h1][b][url=https://pcofficina.org/tech-talk-2-dicembre-2025-video-editing-pratico-come-registrare-e-montare-un-talk-di-pcofficina-con-shotcut/?pk_campaign=feed&pk_kwd=tech-talk-2-dicembre-2025-video-editing-pratico-come-registrare-e-montare-un-talk-di-pcofficina-con-shotcut]Tech



How to Make Big Cabinets on a Small CNC Router


It’s easy to build big wooden furniture if you have a massive industrial CNC router, but few of us are so lucky. However, you can still build sizable stuff with a smaller router if you know what you’re doing. [Aribabox] shares some useful tricks and techniques for building large workshop cabinets on smaller machines.

The key to doing this well is modularity. [Aribabox] shows off how to build excellent workshop drawers in pieces using a stackable design. Rather than having to cut out one huge side panel to cover the whole stack of drawers, each drawer can have its own side panel that easily fits on a smaller router. They can then be stacked into a stout assembly that still does its job perfectly well. Assuming your CNC router is trued up properly, you can whip up a lot of furniture quickly, just assembling everything with screws. You’ll still be able to work faster and make bigger things easier on a big machine, but a small machine can do a lot more than you think.

[Aribabox] supplies design files for a cost if you’re eager to replicate their work. If that doesn’t suit you, you can always just use the video as inspiration to work on your own modular furniture designs instead. We’ve featured other modular furniture designs before, too, that rely on 3D printed and lasercut components.

youtube.com/embed/T_Sl8GIWAq0?…

[Thanks to Hassi for the tip!}


hackaday.com/2025/11/30/how-to…





Leonardo presenta Michelangelo Dome: il sistema AI di difesa contro missili ipersonici


L’azienda italiana di difesa Leonardo ha presentato il suo nuovo sistema Michelangelo Dome. Secondo l’azienda, è progettato per contrastare missili ipersonici e attacchi di massa con droni. Durante la presentazione tecnica al Ministro della Difesa e ai Capi di Stato Maggiore italiani, l’Amministratore Delegato Roberto Cingolani ha annunciato l’intenzione di iniziare l’implementazione già nel 2026 e di raggiungere la piena capacità operativa entro il 2028.

Il nome dice tutto, e la somiglianza con il famoso Iron Dome israeliano è chiaramente intenzionale. Il sistema israeliano, operativo dal 2011, è servito da modello. Ma il Michelangelo Dome va ben oltre: non è concepito come un singolo sistema d’arma, ma come un’architettura completa supportata dall’intelligenza artificiale.

Queste minacce possono verificarsi in pochi secondi “, ha affermato Cingolani. “Non abbiamo abbastanza tempo per inviare e-mail o scambiare messaggi. Dobbiamo reagire in tempo reale”.

l’intelligenza artificiale come questione di sopravvivenza


Al centro del progetto c’è la convinzione che i sistemi di comando e controllo accelerati dall’IA non siano più opzionali, ma essenziali per la sopravvivenza. Cingolani ha spiegato il passaggio dottrinale dalla rigida e lineare kill chain alla kill web distribuita e supportata dall’IA, in cui numerosi punti dati dei sensori vengono analizzati, fusi e valutati dall’IA per selezionare automaticamente il miglior meccanismo di intercettazione. Tuttavia, l’ordine finale di aprire il fuoco rimane nelle mani dell’uomo, ha sottolineato Cingolani.

L’obiettivo è trasformare le forze armate italiane e, in seguito, quelle della NATO in un unico sistema di difesa sincronizzato. Navi, sistemi terrestri, aerei da combattimento, droni e costellazioni satellitari convoglierebbero i dati in una piattaforma unificata, basata sull’intelligenza artificiale, in grado di tracciare, prevedere e neutralizzare le minacce in tempo reale.

L’alternativa, secondo Cingolani, è la cecità strategica. “Se un oggetto vola a due o tre chilometri al secondo e non so in anticipo dove colpirà tra qualche minuto, potrei essere già stato colpito. Non posso neutralizzare lo”, ha riportato Aerospace Global News.

Europa: cinque minuti all’impatto


Cingolani ha ripetutamente sottolineato la posizione geografica: l’Europa non è protetta dagli oceani. Le future armi ipersoniche potrebbero raggiungere le principali capitali in cinque-sette minuti.

Ma non si tratta solo di armi ipersoniche. Cingolani ha anche sottolineato che la guerra in Ucraina ha dimostrato come droni a basso costo possano distruggere carri armati del valore di decine di milioni. “Giovani soldati hanno montato mezzo chilo di esplosivo su droni collegati a reti satellitari commerciali e hanno neutralizzato carri armati per un valore di 20 milioni di euro “, ha affermato. Anche in questo caso, i sistemi in rete potrebbero aiutare a rilevare ed eliminare le minacce, prosegue il rapporto di Aerospace Global News.

Intelligenza artificiale, satelliti e supercomputer come spina dorsale tecnologica


Leonardo si posiziona come l’unica azienda europea dotata dell’intero stack tecnologico necessario per fornire il sistema: sensori, sistemi di intercettazione, tecnologia spaziale, capacità informatiche, sviluppo dell’intelligenza artificiale e calcolo ad alte prestazioni.

I satelliti sono al centro del piano. A Roma verranno realizzati 100 satelliti all’anno, progettati per l’allerta missilistica, il rilevamento di colonne di fumo infrarosse e la previsione della traiettoria.

“Questi satelliti devono essere in grado di rilevare un oggetto che viaggia a cinque chilometri al secondo “, ha affermato Cingolani. “Chi possiede questi satelliti possiede una capacità di rilevamento e previsione che nessun altro possiede.”

L’Italia inizierà nel 2026, poi la NATO.


Leonardo consegnerà i primi sistemi all’Italia entro il 2026 e integrerà i sistemi nazionali esistenti nella nuova architettura basata sull’intelligenza artificiale. Tuttavia, questo rappresenta solo un singolo livello di difesa. L’azienda non ha specificato di quale livello si tratterà.

L’Italia non è l’unico Paese ad ispirarsi all’Iron Dome israeliano. Anche la Turchia sta investendo molto nel suo sistema di difesa aerea integrato e multistrato, lo Steel Dome. E Taiwan, con il suo T-Dome, ha annunciato piani per un proprio sistema di difesa aerea multistrato per difendersi dalle minacce ostili.

L'articolo Leonardo presenta Michelangelo Dome: il sistema AI di difesa contro missili ipersonici proviene da Red Hot Cyber.

in reply to 6AL

@6AL ho fatto diverse ricerche sui motori di ricerca per provare a capire se esisteva qualche comunicato stampa in inglese che fosse stato tradotto a cazzo di cane da Red Hot Cyber

Ma non sono riuscito a trovare nulla che giustificasse un'espressione assurda come questa

@6AL
in reply to Cybersecurity & cyberwarfare

posso solo ipotizzare "sensori a infrarosso per individuare colonne di fumo"... ma non so se è quello...
in reply to 6AL

@6AL sì, i sensori a infrarosso sono utilizzati per integrare altre tecnologie di rilevamento, ma queste colonne di fumo, davvero, non sono riuscite a trovarle da nessuna parte.
Non ho idea come siano state generate, ma una bella IA sembrerebbe la spiegazione migliore
@6AL
in reply to 6AL

@6al saranno le «infrared plume», ovvero le scie calde che seguono un razzo, o un aereo, che si vedono all’infrarosso - e a occhio nudo si vede pure il fumo della combustione, ma l’infrarosso non vede il fumo… vede solo il calore.

cuando andavo a sqola io cerano le ore di composizione di itagliano, e la ggente imparavono a scrivere come cazzo si doveva.

@6AL
in reply to Anon

cuando andavo a sqola io cerano le ore di composizione di itagliano, e la ggente imparavono a scrivere come cazzo si doveva.

@Anon AHAHAH! Comunque io condivido ogni articolo di RHC, perché è un bollettino molto interessante, ma ogni tanto non capisco perché escono degli articoli scritti con il culo e a volte ci sono pure tracce del prompt usato per far scrivere l'articolo da un LLM...
@6AL

@Anon @6AL

Anon reshared this.




per quale motivo dovrebbe essere un problema sostenere che l'ingiustizia genera violenza? è un dato di fatto. non si può avere pace senza giustizia, come non si più combattere la violenza senza combattere anche l'ingiustizia.


Abstimmungsresultat zur Initiative Service Citoyen


ServiceCitoyen Einreichung

Bern, 30. November 2025

Die Piratenpartei kämpft weiter für den Zusammenhalt der Bevölkerung, die gesellschaftliche Resilienz und damit für ein vernünftiges Milizsystem. Das heutige Stimmresultat zur Service Citoyen Initiative zeigt deutlich, wie stark die Bevölkerung mit halbgaren Argumenten verunsichert wurde.

Unsere Initiative hat viele richtige Antworten auf die Herausforderungen der Gegenwart und Zukunft geliefert. In Europa herrscht Krieg. Das Schweizer System ist zur Bewältigung von vielen Krisen schlecht vorbereitet, denn es ist im letzten Jahrtausend steckengeblieben. Der Baustein des „einzig wahren Wehrdienstes“, und damit der vorgegebene Weg über den Militärdienst, ist nicht mehr zeitgemäss.

Aktuell versuchen Bund und Behörden durch Aktivismus von den wahren Problemen abzulenken: Der Initiative wurden „hohe Kosten“ vorgeworfen, doch neuerdings soll die bestehende Armee durch eine höhere Mehrwertsteuer für alle finanziert werden, über doppelt so teuer wie Service Citoyen gewesen wäre. Beschaffungsprobleme des Militärs wie bei den Drohnen oder den überteuerten Fahrzeugsanierungen werden seit Jahren bewirtschaftet statt gelöst. Und den Fachkräftemangel im Militär versucht man neuerdings mit Aushebungs-Aufgeboten für Frauen zu lösen statt unser Milizsystem grundsätzlich zu verbessern.

Jorgo Ananiadis, Präsident der Piratenpartei Schweiz: „Alle Argumente von den Gegnern der Initiative wurden während dem Abstimmungskampf von ihnen selbst laufend gezielt hintertrieben. Moralisch haben wir also gewonnen und einige erste Reaktionen bei Bund und Behörden ausgelöst. Darauf bauen wir auf, denn die Piraten fordern auch zukünftig bessere Resilienz gegen die akuten Bedrohungen.“


piratenpartei.ch/2025/11/30/ab…

reshared this



Israele è alla resa dei conti con sé stesso, una grazia a Netanyahu sarebbe la picconata finale a quel poco che resta della democrazia israeliana, un "no" porterebbe ad un regolamento di conti istituzionale da cui comunique Israele uscirebbe moribondo.

Credo che l'idea di uno stato in cui tutti gli ebrei possano vivere sicuri sia al tramonto. Israele si avvia ad essere uno stato riservato agli ebrei più estremisti, per tutti gli altri non ci sarà più posto.


Netanyahu ha chiesto la grazia al presidente israeliano - Il Post
https://www.ilpost.it/2025/11/30/netanyahu-richiesta-grazia/?utm_source=flipboard&utm_medium=activitypub

Pubblicato su News @news-ilPost






Silicon Valley e Pentagono, il patto da rifare

@Notizie dall'Italia e dal mondo

In uno degli ultimi episodi del Ben & Marc Show, i fondatori della nota società di investimento (Marc) Andreessen (Ben) Horowitz orientano la discussione, assieme ad altri tre partners, su un tema a loro molto caro: le caratteristiche peculiari dell’ecosistema tech americano e le sue capacità di rafforzare le fondamenta




La nuova guerra europea alla privacy Chat Control violerà i diritti fondamentali

In teoria, Chat Control avrebbe dovuto essere sepolto il mese scorso. Il minaccioso piano dell'UE di scansionare in massa i messaggi privati ​​dei cittadini ha incontrato una schiacciante resistenza pubblica in Germania, con il governo del paese che si è rifiutato di approvarlo. Ma Bruxelles raramente si tira indietro solo perché i cittadini lo chiedono. E così, fedele alla sua forma, una versione rielaborata del testo è già in fase di elaborazione, questa volta nascosta, a porte chiuse.

unherd.com/2025/11/europes-new…

@Privacy Pride



il ponte sullo stretto mi va stretto


quando sento il capo di forza italia affermare che il ponte sullo stretto va fatto perché lo voleva berlusconi mi pija lo sconforto

reshared this







Un server ActivityPub in un singolo file PHP? Ecco come fare... Il post di @tofeo

Qualsiasi programma per computer può essere progettato per essere eseguito da un singolo file, se la progettazione è abbastanza sbagliata! 🤣

Volevo creare il server #Fediverse più semplice possibile, che potesse essere utilizzato come strumento didattico per mostrare come funziona ActivityPub / Mastodon.

shkspr.mobi/blog/2024/02/activ…

@Che succede nel Fediverso?


ActivityPub Server in a Single PHP File


shkspr.mobi/blog/2024/02/activ…

Any computer program can be designed to run from a single file if you architect it wrong enough!

I wanted to create the simplest possible Fediverse server which can be used as an educational tool to show how ActivityPub / Mastodon works.

The design goals were:

  • Upload a single PHP file to the server.
  • No databases or separate config files.
  • Single Actor (i.e. not multi-user).
  • Allow the Actor to be followed.
  • Post plain-text messages to followers.
  • Be roughly standards compliant.

And those goals have all been met! Check it out on GitLab. I warn you though, it is the nadir of bad coding. There are no tests, bugger-all security, scalability isn't considered, and it is a mess. But it works.

You can follow the test user @[url=https://example.viii.fi/example]example@example.viii.fi[/url]

Architecture


Firstly, I've slightly cheated on my "single file" stipulation. There's an .htaccess file which turns example.com/whatever into example.com/index.php?path=whatever

The index.php file then takes that path and does stuff. It also contains all the configuration variables which is very bad practice.

Rather than using a database, it saves files to disk.

Again, this is not suitable for any real world use. This is an educational tool to help explain the basics of posting messages to the Fediverse. It requires absolutely no dependencies. You do not need to spin up a dockerised hypervisor to manage your node bundles and re-compile everything to WASM. Just FTP the file up to prod and you're done.

Walkthrough


This is a quick ramble through the code. It is reasonably well documented, I hope.

Preamble


This is where you set up your account's name and bio. You also need to provide a public/private keypair. The posting page is protected with a password that also needs to be set here.
PHP // Set up the Actor's information $username = rawurlencode("example"); // Encoded as it is often used as part of a URl $realName = "E. Xample. Jr."; $summary = "Some text about the user."; $server = $_SERVER["SERVER_NAME"]; // Domain name this is hosted on // Generate locally or from cryptotools.net/rsagen // Newlines must be replaced with "\n" $key_private = "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----"; $key_public = "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----"; // Password for sending messages $password = "P4ssW0rd";

Logging


ActivityPub is a "chatty" protocol. This takes all the requests your server receives and saves them in /logs/ as a datestamped text file.
PHP // Get all headers and requests sent to this server $headers = print_r( getallheaders(), true ); $postData = print_r( $_POST, true ); $getData = print_r( $_GET, true ); $filesData = print_r( $_FILES, true ); $body = json_decode( file_get_contents( "php://input" ), true ); $bodyData = print_r( $body, true ); $requestData = print_r( $_REQUEST, true ); $serverData = print_r( $_SERVER, true ); // Get the type of request - used in the log filename if ( isset( $body["type"] ) ) { $type = " " . $body["type"]; } else { $type = ""; } // Create a timestamp in ISO 8601 format for the filename $timestamp = date( "c" ); // Filename for the log $filename = "{$timestamp}{$type}.txt"; // Save headers and request data to the timestamped file in the logs directory if( ! is_dir( "logs" ) ) { mkdir( "logs"); } file_put_contents( "logs/{$filename}", "Headers: \n$headers \n\n" . "Body Data: \n$bodyData \n\n" . "POST Data: \n$postData \n\n" . "GET Data: \n$getData \n\n" . "Files Data: \n$filesData \n\n" . "Request Data:\n$requestData\n\n" . "Server Data: \n$serverData \n\n" );

Routing


The .htaccess changes /whatever to /?path=whateverThis runs the function of the path requested.
PHP !empty( $_GET["path"] ) ? $path = $_GET["path"] : die(); switch ($path) { case ".well-known/webfinger": webfinger(); case rawurldecode( $username ): username(); case "following": following(); case "followers": followers(); case "inbox": inbox(); case "write": write(); case "send": send(); default: die(); }

WebFinger


The WebFinger Protocol is used to identify accounts.It is requested with example.com/.well-known/webfinger?resource=acct:username@example.comThis server only has one user, so it ignores the query string and always returns the same details.
PHP function webfinger() { global $username, $server; $webfinger = array( "subject" => "acct:{$username}@{$server}", "links" => array( array( "rel" => "self", "type" => "application/activity+json", "href" => "https://{$server}/{$username}" ) ) ); header( "Content-Type: application/json" ); echo json_encode( $webfinger ); die(); }

Username


Requesting example.com/username returns a JSON document with the user's information.
PHP function username() { global $username, $realName, $summary, $server, $key_public; $user = array( "@context" => [ "https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1" ], "id" => "https://{$server}/{$username}", "type" => "Person", "following" => "https://{$server}/following", "followers" => "https://{$server}/followers", "inbox" => "https://{$server}/inbox", "preferredUsername" => rawurldecode($username), "name" => "{$realName}", "summary" => "{$summary}", "url" => "https://{$server}", "manuallyApprovesFollowers" => true, "discoverable" => true, "published" => "2024-02-12T11:51:00Z", "icon" => [ "type" => "Image", "mediaType" => "image/png", "url" => "https://{$server}/icon.png" ], "publicKey" => [ "id" => "https://{$server}/{$username}#main-key", "owner" => "https://{$server}/{$username}", "publicKeyPem" => $key_public ] ); header( "Content-Type: application/activity+json" ); echo json_encode( $user ); die(); }

Following & Followers


These JSON documents show how many users are following / followers-of this account.The information here is self-attested. So you can lie and use any number you want.
PHPfunction following() { global $server; $following = array( "@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://{$server}/following", "type" => "Collection", "totalItems" => 0, "items" => [] ); header( "Content-Type: application/activity+json" ); echo json_encode( $following ); die(); } function followers() { global $server; $followers = array( "@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://{$server}/followers", "type" => "Collection", "totalItems" => 0, "items" => [] ); header( "Content-Type: application/activity+json" ); echo json_encode( $followers ); die(); }

Inbox


The /inbox is the main server. It receives all requests. This server only responds to "Follow" requests.A remote server sends a follow request which is a JSON file saying who they are.This code does not cryptographically validate the headers of the received message.The name of the remote user's server is saved to a file so that future messages can be delivered to it.An accept request is cryptographically signed and POST'd back to the remote server.
PHP function inbox() { global $body, $server, $username, $key_private; // Get the message and type $inbox_message = $body; $inbox_type = $inbox_message["type"]; // This inbox only responds to follow requests if ( "Follow" != $inbox_type ) { die(); } // Get the parameters $inbox_id = $inbox_message["id"]; $inbox_actor = $inbox_message["actor"]; $inbox_host = parse_url( $inbox_actor, PHP_URL_HOST ); // Does this account have any followers? if( file_exists( "followers.json" ) ) { $followers_file = file_get_contents( "followers.json" ); $followers_json = json_decode( $followers_file, true ); } else { $followers_json = array(); } // Add user to list. Don't care about duplicate users, server is what's important $followers_json[$inbox_host]["users"][] = $inbox_actor; // Save the new followers file file_put_contents( "followers.json", print_r( json_encode( $followers_json ), true ) ); // Response Message ID // This isn't used for anything important so could just be a random number $guid = uuid(); // Create the Accept message $message = [ "@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://{$server}/{$guid}", "type" => "Accept", "actor" => "https://{$server}/{$username}", "object" => [ "@context" => "https://www.w3.org/ns/activitystreams", "id" => $inbox_id, "type" => $inbox_type, "actor" => $inbox_actor, "object" => "https://{$server}/{$username}", ] ]; // The Accept is sent to the server of the user who requested the follow // TODO: The path doesn't *always* end with/inbox $host = $inbox_host; $path = parse_url( $inbox_actor, PHP_URL_PATH ) . "/inbox"; // Get the signed headers $headers = generate_signed_headers( $message, $host, $path ); // Specify the URL of the remote server's inbox // TODO: The path doesn't *always* end with /inbox $remoteServerUrl = $inbox_actor . "/inbox"; // POST the message and header to the requester's inbox $ch = curl_init( $remoteServerUrl ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "POST" ); curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($message) ); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); $response = curl_exec( $ch ); // Check for errors if( curl_errno( $ch ) ) { file_put_contents( "error.txt", curl_error( $ch ) ); } curl_close($ch); die(); }

UUID


Every message sent should have a unique ID. This can be anything you like. Some servers use a random number.I prefer a date-sortable string.
PHP function uuid() { return sprintf( "%08x-%04x-%04x-%04x-%012x", time(), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffffffffffff) ); }

Signing Headers


Every message that your server sends needs to be cryptographically signed with your Private Key.This is a complicated process. Please read "How to make friends and verify requests" for more information.
PHP function generate_signed_headers( $message, $host, $path ) { global $server, $username, $key_private; // Encode the message to JSON $message_json = json_encode( $message ); // Location of the Public Key $keyId = "https://{$server}/{$username}#main-key"; // Generate signing variables $hash = hash( "sha256", $message_json, true ); $digest = base64_encode( $hash ); $date = date( "D, d M Y H:i:s \G\M\T" ); // Get the Private Key $signer = openssl_get_privatekey( $key_private ); // Sign the path, host, date, and digest $stringToSign = "(request-target): post $path\nhost: $host\ndate: $date\ndigest: SHA-256=$digest"; // The signing function returns the variable $signature // php.net/manual/en/function.ope… openssl_sign( $stringToSign, $signature, $signer, OPENSSL_ALGO_SHA256 ); // Encode the signature $signature_b64 = base64_encode( $signature ); // Full signature header $signature_header = 'keyId="' . $keyId . '",algorithm="rsa-sha256",headers="(request-target) host date digest",signature="' . $signature_b64 . '"'; // Header for POST reply $headers = array( "Host: {$host}", "Date: {$date}", "Digest: SHA-256={$digest}", "Signature: {$signature_header}", "Content-Type: application/activity+json", "Accept: application/activity+json", ); return $headers; }

User Interface for Writing


This creates a basic HTML form. Type in your message and your password. It then POSTs the data to the /send endpoint.
PHP function write() { // Display an HTML form for the user to enter a message.echo <<< HTML<![url=https://mastodon.social/users/doctype]Aleks Dorohovich[/url] html><html lang="en-GB"> <head> <meta charset="UTF-8"> <title>Send Message</title> <style> *{font-family:sans-serif;font-size:1.1em;} </style> </head> <body> <form action="/send" method="post" enctype="multipart/form-data"> <label for="content">Your message:</label><br> <textarea id="content" name="content" rows="5" cols="32"></textarea><br> <label for="password">Password</label><br> <input type="password" name="password" id="password" size="32"><br> <input type="submit" value="Post Message"> </form> </body></html>HTML; die(); }

Send Endpoint


This takes the submitted message and checks the password is correct.It reads the followers.json file and sends the message to every server that is following this account.
PHP function send() { global $password, $server, $username, $key_private; // Does the posted password match the stored password? if( $password != $_POST["password"] ) { die(); } // Get the posted content $content = $_POST["content"]; // Current time - ISO8601 $timestamp = date( "c" ); // Outgoing Message ID $guid = uuid(); // Construct the Note // contentMap is used to prevent unnecessary "translate this post" pop ups // hardcoded to English $note = [ "@context" => array( "https://www.w3.org/ns/activitystreams" ), "id" => "https://{$server}/posts/{$guid}.json", "type" => "Note", "published" => $timestamp, "attributedTo" => "https://{$server}/{$username}", "content" => $content, "contentMap" => ["en" => $content], "to" => ["https://www.w3.org/ns/activitystreams#Public"] ]; // Construct the Message $message = [ "@context" => "https://www.w3.org/ns/activitystreams", "id" => "https://{$server}/posts/{$guid}.json", "type" => "Create", "actor" => "https://{$server}/{$username}", "to" => [ "https://www.w3.org/ns/activitystreams#Public" ], "cc" => [ "https://{$server}/followers" ], "object" => $note ]; // Create the context for the permalink $note = [ "@context" => "https://www.w3.org/ns/activitystreams", ...$note ]; // Save the permalink $note_json = json_encode( $note ); // Check for posts/ directory and create it if( ! is_dir( "posts" ) ) { mkdir( "posts"); } file_put_contents( "posts/{$guid}.json", print_r( $note_json, true ) ); // Read existing users and get their hosts $followers_file = file_get_contents( "followers.json" ); $followers_json = json_decode( $followers_file, true ); $hosts = array_keys( $followers_json ); // Prepare to use the multiple cURL handle $mh = curl_multi_init(); // Loop through all the severs of the followers // Each server needs its own cURL handle // Each POST to an inbox needs to be signed separately foreach ( $hosts as $host ) { $path = "/inbox"; // Get the signed headers $headers = generate_signed_headers( $message, $host, $path ); // Specify the URL of the remote server $remoteServerUrl = "https://{$host}{$path}"; // POST the message and header to the requester's inbox $ch = curl_init( $remoteServerUrl ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "POST" ); curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($message) ); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); // Add the handle to the multi-handle curl_multi_add_handle( $mh, $ch ); } // Execute the multi-handle do { $status = curl_multi_exec( $mh, $active ); if ( $active ) { curl_multi_select( $mh ); } } while ( $active && $status == CURLM_OK ); // Close the multi-handle curl_multi_close( $mh ); // Render the JSON so the user can see the POST has worked header( "Location: https://{$server}/posts/{$guid}.json" ); die(); }

Next Steps


This is not intended to be used in production. Ever. But if you would like to contribute more simple examples of how the protocol works, please come and play on GitLab.

You can follow the test user @[url=https://example.viii.fi/example]example@example.viii.fi[/url]

#activitypub #mastodon #php


reshared this



Scientists found that major celebrities died four years earlier than their less famous peers, hinting that fame itself can be a mortality risk.#TheAbstract


Being Famous Can Shorten Your Lifespan, Scientists Find


Welcome back to the Abstract! Here are the studies this week that hit the books, bottled alien lightning, reared wolf cubs, and tallied the price of fame.

First, we’ve got a centuries-long history of an Indian savannah told through songs, folktales, and screaming peacocks. Then: Mars gets charged, the secrets of Stora Karlsö, and the epidemiology of stardom.

As always, for more of my work, check out my book First Contact: The Story of Our Obsession with Aliens or subscribe to my personal newsletter the BeX Files.

When folk tales are field guides


Nerlekar, Ashish N. et al. “Utilizing traditional literature to triangulate the ecological history of a tropical savanna.” People and Nature.

It has happened again: Researchers have turned to the annals of literature to address a scientific question. Longtime readers of the Abstract will recall that this is a simply irresistible category of research to me (see: China’s porpoise corpus, Transylvanian weather reports, and milky seas). To the library!

In this edition of Science from the Stacks, researchers probed the origins of the tropical savannah in western Maharashtra, India, by collecting references to plants in 28 stories and songs dating back at least 750 years. The aim was to reconstruct a vegetation history that could hint at shifts in the region between forest and savannah biomes.

“Ttraditional literature—for example, myths, folk songs and stories—is a culturally resonant, yet underutilized line of evidence to understand ecological histories and foster biodiversity conservation,” said researchers led by Ashish N. Nerlekar of Michigan State University.
A folio from an early 19th-century manuscript of the Bhaktavijaya mentioning the taraṭī tree. Image: Nerlekar, Ashish N. et al.
“We found that descriptions of both the landscape and specific plants point to an open-canopy savanna in the past rather than a forest,” the team said. “Of the 44 wild plant species recorded (i.e. omitting exclusively cultivated plants), a clear majority (27 species) were savanna indicators, 14 were generalists, and only three were forest indicators. Our ecological reconstructions from traditional literature complement data from archival paintings, revenue records, plant and animal fossils, and dated molecular phylogenies of endemic biodiversity—all attesting to the antiquity of India's savannas.”

It’s an out-of-the-box way to reconstruct the natural history of a region. But the highlights of these studies are always the excerpts from the literature, like the amazing origin story of this village:

“A folk tale illustrates the founding myth of Kolvihire village near Jejuri. The tale is about a robber-murderer named Vālhyā Koḷī, who lived near Kolvihire. Upon meeting a sage, Vālhyā Koḷī introspected on his wrongdoings and performed penance for 12 years. After completion of the penance, as a living testimony to Vālhyā Koḷī's sincere devotion, leaves sprouted from his stick, which he had used to hit and kill travellers to loot their money. Eventually, Vālhyā Koḷī became the sage-poet Vālmikī. According to the tale, the sprouted stick grew into a pāḍaḷa tree, and the tree still exists in Kolvihire.”

You have to love a good botanical redemption story. Another standout line is this memorable description of a thorny patch in the savannah from the early 16th century: “Such is this thorny forest | it is highly frightening | this forest is empty | peacocks scream here.”

I don’t know exactly why, but “peacocks scream here” is just about the scariest description I’ve ever heard of a place. Shout out to this ancient poet for capturing some legendary bad vibes.

In other news…

Extraterrestrial electricity


Chide, Baptiste et al. “Detection of triboelectric discharges during dust events on Mars.” Nature.

Lightning is a big deal on Earth, inspiring awe, fear, and some of the naughtiest deities imaginable. But lightning also strikes on other planets, including Jupiter and Saturn. For years, scientists have suspected that Mars might host its own bolts, but detecting them has remained elusive.

Now, scientists have finally captured lightning on Mars thanks to “serendipitous observations” from the SuperCam microphone aboard the Perseverance rover.

“Fifty-five events have been detected over two Martian years, usually associated with dust devils and dust storm convective fronts,” said researchers led by Baptiste Chide of the Institut de Recherche en Astrophysique et Planétologie in Toulouse, France. “Beyond Mars, this work also reinforces the prospect of triboelectric discharges associated with wind-blown sediment on Venus and Titan.”

It goes to show that even a very dead world like Mars can still crackle and zap now and then.

The wolves of Stora Karlsö


Girdland-Flink, Linus et al. “Gray wolves in an anthropogenic context on a small island in prehistoric Scandinavia.” Proceedings of the National Academy of Sciences.”

About 4,000 years ago on a small island in the Baltic sea, people cared for two wolves — perhaps as pets — feeding them fish, seals, and other marine fare. That’s the cozy portrait presented in a new study that analyzed the remains of ancient wolves buried in the Stora Förvar cave on the Swedish island of Stora Karlsö.

While dogs are commonly buried at ancient human sites, wolves and humans rarely mix in the archaeological record. But the wolves at Stora Karlsö were unlikely to have reached the island without the aid of humans, and their primarily seafood diet—unusual for wild wolves—suggests they were also fed by people. Moreover, one of the animals suffered from a pathology that might have limited its mobility, hinting that it was kept alive by humans.

The cave where the wolf remains were found. Image: Jan Storå/Stockholm University

The study presents the “possibility of prehistoric human control of wolves,” said researchers led by Linus Girdland-Flink of the University of Aberdeen. “Our results provide evidence that extends the discourse about past human–wolf interactions and relationships.”

Fame! I’m going to live forever (or not)


Hepp, Johanna et al. “The price of fame? Mortality risk among famous singers.” Journal of Epidemiology and Community Health.

Celebrity may literally be to die for, according to a new study that evaluated fame as a comorbidity.

Scientists collected a list of 324 big music stars active between 1950 and 1990, including Elvis Presley, Kurt Cobain, Sam Cooke, and Janis Joplin. Those heavy-hitters were then matched with 324 “twin” musicians that were not household names, but otherwise shared many characteristics of the celebs, including gender, nationality, genre, and roughly similar birth dates. The idea was to directly compare the lifespans of A-listers and B-listers to isolate the extent to which fame itself is a mortality risk factor, rather than the lifestyle of a musician.

The study suggests that famous singers die four years earlier, on average, compared to their B-list peers, demonstrating “a 33% higher mortality risk compared with less famous singers,” said researchers led by Johanna Hepp of the Central Institute of Mental Health in Mannheim, Germany. “This study provides new evidence suggesting that fame may be associated with increased mortality risk among musicians, beyond occupational factors.”

Lady Gaga had it right, as if there were ever any doubt: Under the glitz, the Fame Monster is always waiting.

Thanks for reading! See you next week.




UCRAINA. Corruzione, nuova tegola su Zelensky


@Notizie dall'Italia e dal mondo
Il presidente ucraino è costretto a licenziare il suo capo di gabinetto e capo negoziatore Andrii Yermak, accusato di essere a capo di una vasta rete di corruzione
L'articolo UCRAINA. Corruzione, nuova tegola su Zelensky proviene da pagineesteri.it/2025/11/29/eur…



Kirk Knuffke, Stomu Takeishi, Bill Goodwin – Window
freezonemagazine.com/articoli/…
Window è il nuovo album in studio dell’acclamato cornettista Kirk Knuffke, che presenta sia il suo approccio distintivo come strumentista sia, in tre brani, un aspetto vocale raramente ascoltato della sua arte. Accompagnato dal bassista Stomu Takeishi e dal leggendario batterista jazz Bill Goodwin, un signore che si porta 83 primavere sulle spalle con