Austrian Ministry Kicks Out Microsoft in Favor of Nextcloud

Austrian Ministry Kicks Out Microsoft in Favor of Nextcloud

#ThingsILearned at #InternetArchive: We have our own task queuing system. Like Celery or Amazon SQS but written in #PHP at least a decade before any of those. It has recently handled its task number 5 billion.
When you upload a file, the task system (called "catalog") will generate derivative formats, like OCRing books or transcoding videos. Some tasks have taken months to run end-on-end.
so this would probably be a very bad idea, but gonna ask anyways...
I don't understand why something like this is not possible with #php property hooks
the `set` hook accepts `null` and I would expect the argument to be handled there before actually setting hitting the constructor's argument
WYT ?
A Self-Hosted Favicon Proxy written in PHP
https://shkspr.mobi/blog/2025/10/a-self-hosted-favicon-proxy-written-in-php/
In theory, you should be able to get the base favicon of any domain by calling /favicon.ico - but the reality is somewhat more complex than that. Plenty of sites use a wide variety of semi-standardised images which are usually only discoverable from the site's HTML.
There are several services which allow you to get favicons based on a domain. But they all have their problems.
I want to show favicons next to specific links, but I don't want to expose my visitors to unnecessary tracking. How can I proxy these images so they are stored and served locally?
There are a few existing services. Some use Cloudflare workers or other cloud services, there are some local-first ones which are unmaintained. But nothing modern, self-hosted, and as easy to deploy as uploading a single PHP file.
So here's my attempt to make something which will preserve user privacy, be reasonably fast, and have moderately up-to-date icons, while remaining fast and efficient.
Table of Contents
Getting the domain
Assuming the request comes in to https://proxy.example.com/?domain=bbc.co.uk
PHP has a handy FILTER_VALIDATE_DOMAIN filter which will determine if the string is a domain.
filter_var( $domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME );Dealing with IDNs
Some domains contain non-ASCII characters - for example https://莎士比亚.org/ - not all favicon services support International Domain Names.
Using the idn_to_ascii() function, it is possible to get the Punycode domain.
$domain = idn_to_ascii("莎士比亚.org");Getting the image
Getting the structure right
I know from my work on OpenBenches that storing tens of thousands of files in a single directory can be problematic. So I'll store the retrieved favicon in: /tld/domain/subdomain/
That will make it quick to see if an icon exists. I'll save the file with a filename based on the current timestamp. That will allow me to check if an icon is out of date, and will prevent people downloading the icons directly from me.
Preventing abuse
I don't want anyone but visitors to my site to be able to use this service. So I'll add a (weak) check to see if the request came from my domain.
$referer = parse_url( $_SERVER["HTTP_REFERER"], PHP_URL_HOST );if ( $referer == "shkspr.mobi") { …}Some browsers may not send referers for privacy reasons. So they won't see the favicons. But they probably wouldn't have seen the images loaded from a 3rd party service. So I'll serve a default image.
Putting it all together
You can grab the code from my personal git service.

blog! “A Self-Hosted Favicon Proxy written in PHP”
In theory, you should be able to get the base favicon of any domain by calling /favicon.ico - but the reality is somewhat more complex than that. Plenty of sites use a wide variety of semi-standardised images which are usually only discoverable from the site's HTML.
There are several services which allow you to …
Read more: https://shkspr.mobi/blog/2025/10/a-self-hosted-favicon-proxy-written-in-php/
⸻
#favicon #HowTo #HTML #php

Au #ForumPHP 2025, notre coopérateur Albin a tenté de transformer 300 téléphones en pixels pour dessiner le logo #PHP dans la salle. Une expérience participative et interactive à base de PHP, Mercure, #FrankenPHP et @clevercloud : https://les-tilleuls.coop/blog/comment-jai-failli-dessiner-le-logo-de-php-avec-300-telephones

"Brand Assets" is a #WordPress block plugin that allows you to easily display your company's brand assets on your website.
https://github.com/ProgressPlanner/brand-assets
via https://progressplanner.com/every-website-needs-a-brand-assets-page/

Derick Rethans spoke at The Dutch PHP Conference!
The talk 'Better Debugging With Xdebug' is now live!
Watch it here: https://phpconference.nl/session/better-debugging-with-xdebug/
Before giving my keynote yesterday, I struggled with whether to include a certain section. I actually asked myself, “What would @grmpyprogrammer do?” and decided to keep the section. #LonghornPHP #PHP
At #longhornphp, @ramsey is talking about the history of floss.
I didn't think I was at a dental conference, but here we are.
Hello Fediverse!
I’m Toby – on the web since 1996, at home in #PHP since 2000.
Co-founder of Qafoo & Frontastic (acquired by commercetools in 2021), where I worked as a Principal Engineer.
I speak openly about my mental health and do #MentalHealth advocacy in the tech scene.
Currently on a sabbatical, loving family life, fantasy & sci-fi, hiking & sauna time.
More about me: https://schlitt.info
#introduction

Any C developers want to work on PHP core?
PHP Foundation application is open until Oct 30th. You should apply.
https://thephp.foundation/blog/2025/09/30/application-form-2026/
Boosts appreciated

FrankenPHP permet de créer des extensions #PHP en Go. Grâce à quelques fonctions et son générateur d’extensions, on peut désormais créer une extension PHP sans écrire une seule ligne de C. Découvrez avec Alexandre Daubois le cheminement vers cette nouveauté https://les-tilleuls.coop/blog/des-extensions-php-en-go-avec-frankenphp

Qui utilise des #SBOM en tant qu'outils de veille en matière vulnérabilités
1. pour #Linux et en particulier #Debian ?
2. pour JavaScript / PHP / Python / Rust / C / C++ ?
Si oui, lesquels ?
Des sources de qualité ou des avis éclairés par l'expérience sur ces outils ?
Uniquement des outils #FLOSS.
Crédit image : https://www.opswat.com/technologies/sbom
Good morning dear meatsacks that observe my internet words. I have entered Sky Tube 1 of 2 in preparation for the corporeal relocation to @longhorn . Thank you for your attention on this matter. #php #phpc #phpcommunity #longhornphp #longhornphp2025
I took the time to update https://packagist.org/packages/stella-maris/nist-password to the latest version of the NIST specs regarding passwords. It's now also tested on PHP8.1 through PHP8.5
If you are looking for a library to make sure your passwords are compliant to the latest security rules, this might be for you.
Feel free to open an issue when you're missing something.
Decomposition into weight × level + jump of prime numbers in 3D, threejs - webGL (log(weight), log(level), log(jump)) https://decompwlj.com/3Dgraph/Prime_numbers.html
Je propose mes services en #télétravail et #téléassistance en #informatique / #réseaux et #systèmes / #télécommunications / #Internet / #Web.
#linux #debian #qubesOS #tails #privacy #cybersecurity #linux #france #c++ #rustlang #php #python #css #html #sass #symfony #laravel…
betterCode() PHP 2025: Neuer Online-Workshop hilft beim Verstehen von KI-Tools
Zum sechsten Mal findet die PHP-Konferenz im Onlineformat statt. Neu im Programm: ein Workshop, der die Teilnehmenden beim Verstehen von KI-Tools unterstützt.

Evolving my personal music scrobbler #Plexamp #Musicbrainz #Music #Php #Jellyfin #Navidrome #Laravel
I've nearly entirely rewritten my site over the past few months. First, I refactored the frontend into a Laravel application that leveraged the same postgREST endpoints that my long-running 11ty site used. Next, I wrote a new administrative application in Filament and migrated off of Directus. If I did this right, the...
https://www.coryd.dev/posts/2025/evolving-my-personal-music-scrobbler
