jrollans.com is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.

This server runs the snac software and there is no automatic sign-up process.

Site description
These are the voyag... uh, things I post about.
Admin email
jrollans@gmail.com
Admin account
@jrollans@jrollans.com

Search results for tag #fediverse

[?]theru » 🌐
@theru@infosec.exchange

Good Morning

    AodeRelay boosted

    [?]bonitazarrillo » 🌐
    @bonitazarrillo_mp@mastodon.social

    The Carney Liberal Government is attacking workers’ rights to fair collective bargaining. Last summer they intervened against flight attendants and now they are looking at changes to the Canada Labour Code that unions warn could weaken the Charter protected right to bargain and strike for all workers.

    CUPE 🇨🇦 largest union, is pushing back and warning PM Carney not to move forward. I stand in solidarity with workers, and so can you. ✍️ your MP Details comments.

    Alt...The Carney Liberal Government is attacking workers’ rights to fair collective bargaining. Last summer they intervened against flight attendants and now they are looking at changes to the Canada Labour Code that unions warn could weaken the Charter protected right to bargain and strike for all workers. CUPE 🇨🇦 largest union, is pushing back and warning PM Carney not to move forward. I stand in solidarity with workers, and so can you. ✍️ your MP Details comments.

      AodeRelay boosted

      [?]Demokritus Jorik :v_gay: [He/Him] » 🌐
      @serigala_tropis@lgbtqia.space

      Pixelfed has a known bug about the federation, and deleting Pixelfed posts and/or accounts don't delete them on remote servers.

      github.com/pixelfed/pixelfed/i

        AodeRelay boosted

        [?]Ivy Cyber » 🤖 🌐
        @ivycyber@privacysafe.social

        🛡️ news & tips across the

        “Chinese state # surveillance and the question of how similar is Palantir "Chinese surveillance leaves foreigners nowhere to hide"
        https:// p.dw.com/p/5E7Oj”

        cupoftea.social/@MikeFromLFE/1

        🤖 via RSS feed. Not an endorsement.

          [?]JustBob 🪖🇺🇸♒️ » 🌐
          @bob@beamship.mpaq.org

          @Waldorf

          You will NEVER find any of that shit in #TidySearch and hope someday others will join it and make it like the Fediverse, DECENTRILIZED 😀
          https://search.mpaq.org

          A decentrilsed search engine. No AI, no tracking. No advertising. No javascript of any kind. Never pay for it. Anyone can setup their own "branch" and contribute. Why does this sound so much like the #Fediverse? I could use some help with the system I've building for over a year and with corporations selling us out, we can band together to take the internet back.


          This is what the internet was BEFORE the corprite take over.

          This is #TidySearch https://search.mpaq.org

            🗳

            [?]django » 🌐
            @django@social.coop

            Should federated servers block AI scrapers?
            :boosts_appreciated:

            Do not care:5
            Have not considered:5
            Wish I could do more:70
            Already blocking:22

            Closed

              AodeRelay boosted

              [?]Ivy Cyber » 🤖 🌐
              @ivycyber@privacysafe.social

              🛡️ news & tips across the

              “Ordinary WiFi can now identify people with near perfect accuracy | ScienceDaily # wifi # surveillance # privacy https://www. sciencedaily.com/releases/2026 /05/260522023127.htm”

              mastodon.social/@aproposnix/11

              🤖 via RSS feed. Not an endorsement.

                AodeRelay boosted

                [?]Ivy Cyber » 🤖 🌐
                @ivycyber@privacysafe.social

                🛡️ news & tips across the

                “On London’s streets, facial recognition tests the balance between security and liberty London – Tourists, shoppers and office workers on a busy London street on an ordinary weekday found themselves…
                # London # Unit...”

                pubeurope.com/@london/11663286

                🤖 via RSS feed. Not an endorsement.

                  AodeRelay boosted

                  [?]Raccoon🇺🇸🏳️‍🌈 » 🌐
                  @Raccoon@techhub.social

                  Side note, I love it when I say something about or or whatever, and some random blue-haired fox responds. That's literally my favorite part of the , and the in general.

                  Ft @Doridian

                    AodeRelay boosted

                    [?]Ivy Cyber » 🤖 🌐
                    @ivycyber@privacysafe.social

                    🛡️ news & tips across the

                    “https://www. europesays.com/uk/982938/ On London’s streets, facial recognition tests the balance between security and liberty # Britain # England # GreatBritain # london # Privacy # Surveillance #...”

                    pubeurope.com/@uk/116632781003

                    🤖 via RSS feed. Not an endorsement.

                      AodeRelay boosted

                      [?]Helping Hen » 🤖 🌐
                      @helpinghen@privacysafe.social

                      🔆 for PrivacySafe.Social & the

                      “Your server will be safer if your admin activates a feature called "Authorized Fetch" (also known as "Secure Mode"). It helps protect your server's members from abusive servers by making defederation more effective. The...”

                      social.growyourown.services/@F

                      🤖 via RSS feed. Your Mileage May Vary.

                        dansup boosted

                        [?]Fedizen ⁂ Fediverse News » 🌐
                        @fedizen@mastodon.social

                        AodeRelay boosted

                        [?]Zachary Powell 🥑 » 🌐
                        @zachary@social.devwithzachary.com

                        Back in 2011, the Motorola Atrix and Lapdock promised to turn your phone into your only PC. I used one at uni for note taking, but under the hood, "Webtop" was just a limited Firefox browser in a Linux container.

                        I dig into the hardware and discuss why it failed, plus the challenges of trying to root and run alternative Linux environments on it today.

                        PeerTube: tube.devwithzachary.com/w/1bxd

                        YouTube: youtu.be/bX-jasgEuME

                          AodeRelay boosted

                          [?]Ivy Cyber » 🤖 🌐
                          @ivycyber@privacysafe.social

                          🛡️ news & tips across the

                          “https://www. europesays.com/africa/250953/ Meet Cape businessman linked to secret Phala Phala ops # affidavit # ArthurFraser # Businessman # CapeTown # CellphoneTracing # Crime # CyrilRamaphosa ...”

                          pubeurope.com/@africa/11663244

                          🤖 via RSS feed. Not an endorsement.

                            fedicat boosted

                            [?]TootSDK » 🌐
                            @tootsdk@iosdev.space

                            A new release of TootSDK - 21.7.0 📣

                            github.com/TootSDK/TootSDK/rel

                            What's changed:

                            - Updated Suggestion model @nixzhu

                            Community contributions are greatly appreciated 🙌

                              AodeRelay boosted

                              [?]Ivy Cyber » 🤖 🌐
                              @ivycyber@privacysafe.social

                              🛡️ news & tips across the

                              “RE: https:// hachyderm.io/@isaac/1166304143 70254693 This somehow fits to this project on github I was stumbled upon elsewhere https:// github.com/ruvnet/RuView (Not sure if this project holds what it 'pr...”

                              mastodon.social/@inw/116631515

                              🤖 via RSS feed. Not an endorsement.

                                AodeRelay boosted

                                [?]Global Feed » 🌐
                                @liliumf@mastodon.social

                                Linux 7.2 sagt „Auf Wiedersehen“ zu AMDs erstem eigenen x86‑Chip.

                                - Der Kernel entfernt die Zen 4‑Spezifischen Treiber/Optimierungen.
                                - Grund: fehlende langfristige Wartbarkeit und schlechte Integration in die aktuelle Kernel‑Architektur.

                                Wer auf AMD‑Zen 4 setzt, muss künftig auf externe Patches oder neuere Kernel‑Versionen ausweichen.

                                🔗 news.google.com/rss/articles/C

                                  [?]Stefano Marinelli » 🌐
                                  @stefano@mastodon.bsd.cafe

                                  Deutsche Freunde des
                                  In diesen Tagen mit unsicherem Wetter könnte es nützlich sein, Wettervorhersagen direkt in eurer Timeline zu erhalten! 🌦️

                                  (fedimeteo.com) ist ein Projekt, das Daten von verarbeitet und sie land- und stadtweise im Fediverse, auf der Webseite der jeweiligen Stadt und über RSS veröffentlicht.

                                  Alle 6 Stunden aktualisiert und veröffentlicht ein freundlicher Bot die Wetterdaten.

                                  Wie funktioniert es?
                                  ➡️ Folgt der Seite eurer Stadt im Fediverse.
                                  ➡️ Wenn ihr noch keine Vorhersagen seht, folgt ihr wahrscheinlich noch niemand.
                                  ➡️ Beginnt, ihr zu folgen, und beim nächsten Zyklus erhaltet ihr die Updates!
                                  🔗 Im Folgenden der Link für Deutschland und die Liste der derzeit unterstützten Städte.
                                  🌍 Dezentralisierte, Open-Source-Wettervorhersage im Fediverse! 🌱

                                  de.fedimeteo.com

                                  @aachen (Aachen - FediMeteo)
                                  @asendorf (Asendorf - FediMeteo)
                                  @attendorn (Attendorn - FediMeteo)
                                  @augsburg (Augsburg - FediMeteo)
                                  @aurich (Aurich - FediMeteo)
                                  @bad_homburg (Bad Homburg vor der Höhe - FediMeteo)
                                  @bad_kreuznach (Bad_kreuznach - FediMeteo)
                                  @bayreuth (Bayreuth - FediMeteo)
                                  @bedburg (Bedburg - FediMeteo)
                                  @bensheim (Bensheim - FediMeteo)
                                  @bergisch_gladbach (Bergisch Gladbach - FediMeteo)
                                  @berlin (Berlin - FediMeteo)
                                  @bielefeld (Bielefeld - FediMeteo)
                                  @bochum (Bochum - FediMeteo)
                                  @bonn (Bonn - FediMeteo)
                                  @bottrop (Bottrop - FediMeteo)
                                  @braunschweig (Braunschweig - FediMeteo)
                                  @bremen (Bremen - FediMeteo)
                                  @bremerhaven (Bremerhaven - FediMeteo)
                                  @brunsbuttel (Brunsbüttel - FediMeteo)
                                  @buchholz (Buchholz - FediMeteo)
                                  @buchholz_saxony (Buchholz (Niedersachsen) - FediMeteo)
                                  @celle (Celle - FediMeteo)
                                  @chemnitz (Chemnitz - FediMeteo)
                                  @cottbus (Cottbus - FediMeteo)
                                  @darmstadt (Darmstadt - FediMeteo)
                                  @dessau (Dessau - FediMeteo)
                                  @dortmund (Dortmund - FediMeteo)
                                  @dresden (Dresden - FediMeteo)
                                  @duisburg (Duisburg - FediMeteo)
                                  @dusseldorf (Düsseldorf - FediMeteo)
                                  @ebersberg (Ebersberg - FediMeteo)
                                  @elmshorn (Elmshorn - FediMeteo)
                                  @emden (Emden - FediMeteo)
                                  @erfurt (Erfurt - FediMeteo)
                                  @essen (Essen - FediMeteo)
                                  @flensburg (Flensburg - FediMeteo)
                                  @frankfurt (Frankfurt am Main - FediMeteo)
                                  @freiburg (Freiburg - FediMeteo)
                                  @freising (Freising - FediMeteo)
                                  @furth (Fürth - FediMeteo)
                                  @garmisch_partenkirchen (Garmisch_partenkirchen - FediMeteo)
                                  @geesthacht (Geesthacht - FediMeteo)
                                  @gelsenkirchen (Gelsenkirchen - FediMeteo)
                                  @gladbeck (Gladbeck - FediMeteo)
                                  @goslar (Goslar - FediMeteo)
                                  @gottingen (Göttingen - FediMeteo)
                                  @greifswald (Greifswald - FediMeteo)
                                  @greiz (Greiz - FediMeteo)
                                  @gutersloh (Gütersloh - FediMeteo)
                                  @hagen (Hagen - FediMeteo)
                                  @halle (Halle (Saale) - FediMeteo)
                                  @hamburg (Hamburg - FediMeteo)
                                  @hamm (Hamm - FediMeteo)
                                  @hannover (Hannover - FediMeteo)
                                  @hanstedt (Hanstedt - FediMeteo)
                                  @heide (Heide - FediMeteo)
                                  @heidelberg (Heidelberg - FediMeteo)
                                  @heilbronn (Heilbronn - FediMeteo)
                                  @herne (Herne - FediMeteo)
                                  @hildesheim (Hildesheim - FediMeteo)
                                  @hof (Hof - FediMeteo)
                                  @husum (Husum - FediMeteo)
                                  @ingolstadt (Ingolstadt - FediMeteo)
                                  @itzehoe (Itzehoe - FediMeteo)
                                  @jena (Jena - FediMeteo)
                                  @jesteburg (Jesteburg - FediMeteo)
                                  @karlsruhe (Karlsruhe - FediMeteo)
                                  @kassel (Kassel - FediMeteo)
                                  @kempten (Kempten - FediMeteo)
                                  @kiel (Kiel - FediMeteo)
                                  @koblenz (Koblenz - FediMeteo)
                                  @koln (Köln - FediMeteo)
                                  @krefeld (Krefeld - FediMeteo)
                                  @landshut_bavaria (Landshut (Bavaria) - FediMeteo)
                                  @leipzig (Leipzig - FediMeteo)
                                  @leverkusen (Leverkusen - FediMeteo)
                                  @lubeck (Lübeck - FediMeteo)
                                  @ludwigshafen (Ludwigshafen am Rhein - FediMeteo)
                                  @magdeburg (Magdeburg - FediMeteo)
                                  @mainz (Mainz - FediMeteo)
                                  @mannheim (Mannheim - FediMeteo)
                                  @memmingen (Memmingen - FediMeteo)
                                  @moers (Moers - FediMeteo)
                                  @monchengladbach (Mönchengladbach - FediMeteo)
                                  @muhlheim (Mühlheim am Main - FediMeteo)
                                  @munchen (München - FediMeteo)
                                  @munster (Münster - FediMeteo)
                                  @naumburg (Naumburg - FediMeteo)
                                  @neubrandenburg (Neubrandenburg - FediMeteo)
                                  @neumunster (Neumünster - FediMeteo)
                                  @neuss (Neuss - FediMeteo)
                                  @nurnberg (Nürnberg - FediMeteo)

                                  1/2

                                    AodeRelay boosted

                                    [?]Ivy Cyber » 🤖 🌐
                                    @ivycyber@privacysafe.social

                                    🛡️ news & tips across the

                                    “#^ FBI seeks US-wide access to license plate cameras, wants "data in near real time"

                                    The Federal Bureau of Investigation announced plans to buy nationwide access to a network of license plate readers, saying it wil...”

                                    hub.farthinghalearms.com/item/

                                    🤖 via RSS feed. Not an endorsement.

                                      AodeRelay boosted

                                      [?]Sascha Pallenberg 🇹🇼 ♻️ ⚡ » 🌐
                                      @pallenberg@mastodon.social

                                      33 Grad heute. Ich warte bis die Sonne untergeht!

                                      Moin und euch einen gesunden Start in die neue Woche. Alles wird gut!

                                      Weitwinklige Luftaufnahme einer dicht bebauten asiatischen Stadt mit einer Mischung aus mehrstöckigen Wohnhäusern, Gewerbehallen und flachen Dächern. Links zieht sich eine Hauptstraße mit Autos durch die Häuserzeilen. Den Hintergrund bildet eine markante, bewaldete Gebirgskette, die flach in die Ferne verläuft. Der Himmel darüber ist blau mit lockeren, weißen Schleierwolken.

                                      Alt...Weitwinklige Luftaufnahme einer dicht bebauten asiatischen Stadt mit einer Mischung aus mehrstöckigen Wohnhäusern, Gewerbehallen und flachen Dächern. Links zieht sich eine Hauptstraße mit Autos durch die Häuserzeilen. Den Hintergrund bildet eine markante, bewaldete Gebirgskette, die flach in die Ferne verläuft. Der Himmel darüber ist blau mit lockeren, weißen Schleierwolken.

                                        AodeRelay boosted

                                        [?]Rusty Corgi [He/They] » 🌐
                                        @Rusty@cubhub.social

                                        "Mastodon sucks." Every last bit of Fedi is built by members of your community trying to provide a space to people for free, often at great expense to themselves. This isn't some social network we just rolled up and started using, we built it. I wish more people understood that before they slam it. :corgi_sad:

                                          [?]IT Notes - https://it-notes.dragas.net » 🤖 🌐
                                          @itnotes@snac.it-notes.dragas.net

                                          FediMeteo, timezones, and the art of not breaking what already works

                                          I have already written about how FediMeteo was born (https://it-notes.dragas.net/2025/02/26/fedimeteo-how-a-tiny-freebsd-vps-became-a-global-weather-service-for-thousands/), and about how HAProxy helps reduce the number of requests that reach snac (https://it-notes.dragas.net/2026/05/18/fedimeteo-haproxy-and-the-art-of-not-wasting-snac-threads/).

                                          Seen from the outside, FediMeteo almost seems still. There is a static homepage, regenerated every hour. There are the city pages, with their forecasts. There are RSS feeds waiting to be fetched, JSON objects waiting to be requested, Fediverse instances refreshing data, subscribing, unsubscribing, retrieving profiles, and reading notes.

                                          That is the visible part.

                                          Behind it, however, FediMeteo (https://fedimeteo.com) is much more than a homepage, a few ActivityPub accounts, and a well-behaved reverse proxy. It is a chain of small pieces, in proper Unix style, each trying to do one thing and do it as well as possible.

                                          That chain, although almost invisible from the outside, was not born already tidy. It changed, was rewritten, adapted to new countries, timezones, ambiguous city names, external service limits, and also to my own mistakes.

                                          Some mistakes were small. Others were much less so.

                                          Because FediMeteo is a human project and, as such, imperfect. Imperfect in the way humans are imperfect, which today almost seems unfashionable. I like that.

                                          The first version of the bot was almost embarrassingly simple, and I was proud of that.

                                          It took a city name as input, asked Nominatim (https://nominatim.org) for the coordinates through geopy, called the Open-Meteo (https://open-meteo.com) API for the current weather and the next several days, and printed a markdown block with current conditions, the forecast for today, the next twelve hours, and the coming days. The text was in Italian. The cities were Italian. The timezone was Europe/Rome. There was nothing to calculate.

                                          Around the script, a small sh wrapper read a list of cities and, for each one, ran the Python program and piped its output into snac note_unlisted. A cron job ran the wrapper every six hours. The output was loose markdown, which snac happily renders, and the integration was: standard output goes into standard input. Nothing fancier than that.

                                          I like this kind of design. It is the part of the Unix philosophy that survives even when fashions change.

                                          When I started adding other European countries, I did not need to change much. I separated the operational logic from the localized strings, moved the strings into one JSON file per country, and spread the cron entries so that not every country posted in the same minute. Each country had its own snac instance, in its own FreeBSD jail, with its own dataset. The bot, internally, was almost the same script as before.

                                          This worked because Europe is, in essence, two or three timezones across most of the countries I cared about.

                                          Then I added Germany, and Germany taught me my first lesson about names.

                                          There are several places called Neustadt in Germany. There is a Frankfurt am Main, and a Frankfurt an der Oder, and they are not the same city. There is a Halle in Saxony-Anhalt and a Halle in North Rhine-Westphalia. Asking Nominatim for "Frankfurt, Germany" produced one of the two, consistently, but not always the one I wanted. Some German users wrote to me, politely, to point out that the forecast for "their" Frankfurt was, in fact, for the other one.

                                          I started thinking about disambiguation, but only enough to fix the immediate cases. The bot still took a single city name. The ambiguous ones I worked around by editing the cities file and hoping for the best.

                                          In hindsight, this was the seed of what would happen later.

                                          The United States broke every assumption the bot had grown up with.

                                          The first problem was the number of cities. I wanted reasonable coverage at state level, which meant identifying the main cities for each of the fifty states. The list ended up at more than 1200 entries. That alone is more cities than every other country in the project combined.

                                          The second problem was timezones. The contiguous United States covers four of them, and Alaska and Hawaii bring the total to six. A "current weather at 12:00" line generated at the same instant for New York and for Los Angeles is technically the same instant, but the two cities are living different parts of the day, and the forecast for "today" is not even quite the same window. A bot that pretended every city was on the same clock would be wrong, sometimes embarrassingly so, every single day.

                                          The third problem was the name thing again, only larger. There are dozens of Springfields. There is a Portland in Oregon and a Portland in Maine. The Germany workaround - editing the cities file by hand and hoping Nominatim picked the right city - was clearly not going to scale to a country where the same name is also a state.

                                          I sat with this for a couple of days before admitting what I already knew.

                                          The bot needed to be rewritten.

                                          What made this hard was not the rewriting itself. It was the requirement to do it without breaking everything else.

                                          By the time I decided to add the United States, the infrastructure around the bot had grown into something I trusted. Jails, snapshots, backup jobs, cron schedules, snac instances on production paths, the HAProxy layer, the homepage cron that aggregated follower counts, and a long list of cities being processed in series every six hours. None of that knew or cared about the bot's internal shape. All of it cared, very much, about the bot's external behavior: a city name and a country code go in, valid markdown comes out, and that markdown ends up in a timeline.

                                          So the contract was clear, even if I had never written it down anywhere. The command-line interface, the output format, the exit codes, the way the wrapper script invoked it, the structure of the JSON country configs - all of it had to keep working. Italian had to keep working. German had to keep working. The cron job that ran every six hours had to keep producing the same shape of output, just with new countries added.

                                          What I changed was almost everything below the surface.

                                          The city argument grew an optional __state suffix, with a double underscore as separator:

                                          python3 main.py springfield__illinois us
                                          python3 main.py springfield__massachusetts us
                                          python3 main.py new_york__new_york us
                                          A city without the suffix continued to work exactly as before, which is what every European country needed. The country config gained a timezone field that could be a fixed string or the literal "auto"; when it was "auto", the bot used timezonefinder against the resolved coordinates to determine the right zone for that specific city. Internally I separated the weather provider behind an interface, so Open-Meteo could remain the primary while MET Norway and wttr.in sat behind as alternatives, with automatic fallback when the primary failed. Units became configurable per country: temperature, wind speed, precipitation. The United States needed Fahrenheit, miles per hour, and inches. Most of Europe wanted Celsius, kilometers per hour, and millimeters. The bot now does either, on a per-country basis, without caring which is which.

                                          I am skipping a lot of small detail here, but the principle was always the same: every new degree of freedom had to be expressible as an optional field in the config or as an optional CLI flag. If a country did not set the new field, the old behavior continued, identical to before.

                                          I tested this by running the new bot against the old country configs and comparing the output line by line. Where it differed, it was a bug in the new bot. Not in the test.

                                          The first cycle after deploying the rewrite was, for every country except the United States, indistinguishable from the cycle before. That was the point.

                                          This is the part of the story I dislike telling, which is precisely why I should tell it.

                                          At some point during the development, while debugging an Open-Meteo response that did not look right, I added a print statement to the error path that dumped the full request URL whenever something went wrong. The full URL of the Open-Meteo customer endpoint includes the apikey query parameter. The print was meant for development. I forgot to remove it.

                                          I deployed.

                                          The next time Open-Meteo had an outage - and small ones happen, sometimes for several minutes at a time - the bot dutifully printed the failing request URL into the post body. For every city. For every cycle that ran during the outage. The wrapper script piped the output into snac note_unlisted without complaint. The posts went out, federated across the Fediverse, with my API key sitting in the text for anyone who cared to read.

                                          Some users were kind enough to write me and tell me. Others were less kind, and made fun of me. Both groups were correct. This should not have happened.

                                          I reported the incident to the Open-Meteo team, who were extremely understanding. They rotated the key immediately and gave me a fresh one. I removed the debug print, and then I did the slightly more useful thing, which was to add redaction at multiple layers - in the bot's output, in the daemon's logging, and in the debug helpers themselves. URL query parameters that look like API keys are masked. Environment variables and config keys named apikey or OPEN_METEO_APIKEY are redacted before any string reaches stdout or a log file. Even JSON-like fields that include open_meteo_apikey are scrubbed if they ever appear in something the program prints.

                                          The lesson is not "be more careful." The lesson is that debug paths leak, sooner or later, so the secrets have to be unreachable from the debug paths in the first place. Now they are.

                                          That afternoon, when I realised what was happening, I closed everything for a minute and looked out of the window. Then I started fixing.

                                          Nominatim is a public service, and it is generous, but it is not infinite. Every city in the project needs coordinates, and at the start of the project every cycle would re-ask Nominatim for every city. Most of the time this worked. Sometimes it did not.

                                          There was one cycle, before I added caching, when Nominatim simply did not respond for one of my queries. The geopy call timed out. The bot raised an exception. The wrapper script gave up on that city and moved on to the next one. A few users noticed that a particular city had not received its forecast that day, and asked what had happened.

                                          I added a coordinate cache, and I am still grateful that I did.

                                          The cache is intentionally boring. The first time the bot resolves a city, it writes the latitude and longitude into a small file under /tmp, named after the city, and the state when present. Every subsequent run reads the file. If the file exists, no Nominatim call is made. If the file is missing, the bot calls Nominatim and writes the file. After the first successful lookup, the cache becomes the source of truth for the coordinates of that city.

                                          This is lighter on Nominatim, faster for every cycle, and much more resilient against transient failures. It is also nice for a reason I did not anticipate.

                                          Nominatim is a geocoder, and like every geocoder it has opinions.

                                          I live in Ferrara, so when I added Italy I made sure Ferrara was in the list, and I checked the first cycle to make sure everything looked right. The forecast came out fine. The temperature was reasonable. The icon matched the sky outside my window. I closed the laptop and forgot about it.

                                          Then, one evening months later, I looked more carefully at the coordinates Nominatim had returned for "Ferrara, Italy", and I realised they did not point to the city. They pointed to a location closer to the centroid of the province, which is a much larger area and mostly countryside. The forecast had been, on average, for a field somewhere outside town, not for the city center.

                                          I am not entirely sure why I had not noticed earlier. Probably because the weather in Ferrara and the weather in the fields outside Ferrara is, on most days, indistinguishable to anyone who is not paying attention. But this is the kind of detail I do not want to leave wrong, especially for my own city.

                                          There are other places where geocoding lands slightly off. Sometimes it is a few kilometers, sometimes a different neighborhood, sometimes genuinely the wrong place.

                                          Because the cache is just a file per city, the fix is also just a file per city. I open the cache file, replace the latitude and longitude with the correct values, save. The next cycle uses the corrected coordinates. No code change, no redeploy, no special tooling. I keep a small list of patched cities in a separate text file, so that if I ever rebuild the cache, I do not lose the manual corrections.

                                          This is the kind of operational simplicity I like. A cache made of plain files costs almost nothing and quietly pays back every time a small problem appears.

                                          For every report it generates, the bot also writes a simplified English text snapshot to /tmp/.txt, or /tmp/__.txt when there is a state.

                                          This is intentional, and it is not a debug artifact. I am not ready to say what I am doing with it yet, but it is part of a future direction for the project. Text is a useful intermediate format, and having a clean, language-neutral representation of every forecast sitting on disk costs almost nothing and might be worth a great deal later.

                                          I prefer to let ideas mature in private before I commit to them in public. So I will leave it at this for the moment.

                                          A full cycle for the United States takes hours.

                                          It is not because the work is heavy. It is because I deliberately inserted a small sleep between cities, to give snac time to dispatch the previous post before the next one is generated. With more than 1200 cities in series, even a short pause adds up. I am not in a hurry. Forecasts that arrive a few minutes apart from each other are not a problem, and the bot was already a polite citizen elsewhere. A polite cycle is fine.

                                          The problem with a slow cycle is not the duration. The problem is what happens to it.

                                          In the original design, the cycle was launched by cron. Every six hours, cron called the wrapper script, the wrapper iterated through the cities file, and for each city it ran the bot and piped the output into snac. There was no scheduler in the project at all. Cron was the scheduler. The wrapper was just a loop.

                                          Restarting snac was harmless. The wrapper would call snac note_unlisted per city, and if snac happened to be unavailable for a moment, that single call might fail, but the loop kept moving and snac was usually back within seconds. Snac itself was not what held the cycle together.

                                          What held the cycle together was the wrapper process. And the wrapper process lived inside the jail.

                                          If the FreeBSD jail was restarted while the wrapper was running, the loop stopped wherever it happened to be. The cron schedule did not care. Six hours later, the next cron tick started a new cycle from the first city, and the cities that had been about to be processed at the moment of the restart were simply skipped for that window. For the United States, this could mean several hundred cities going without an update.

                                          There was a worse case, and it took me longer than it should have to recognise it. If the host was rebooting exactly in the minute when cron should have fired, cron simply did not fire. There was no daemon waiting to pick up the missed tick. The cycle never even started. Six hours of forecasts would be lost, in silence, with nothing in any log to suggest anything had gone wrong.

                                          I lived with this for a long time. Reboots were rare, the impact was limited, and adding state was the kind of thing I always meant to do "next week."

                                          What finally changed it was not a dramatic incident. It was the slow accumulation of small ones. A scheduled VPS reboot. A jail restart after an upgrade. Each one on its own was nothing. Together, they were a steady drip of missed cycles.

                                          So I wrote a daemon.

                                          The crontab entries for the bot went away. There is now a long-running process inside the jail, started at boot, and it does the scheduling itself. The schedule is a list of hours and a minute, read from a JSON config. The daemon wakes up once a minute, checks whether it is time to start a cycle, and either starts one or waits.

                                          The interesting part is the state file.

                                          As the daemon walks through the cities file, it writes its position to a small JSON file: which cities file it is processing, and the index of the next city to handle. The write happens at the boundary between one city and the next, because that is the only place where resuming makes sense. If the daemon is interrupted mid-city, that city is retried on resume; no half-finished post escapes.

                                          When the daemon starts, it reads the state file. If it finds one matching the current cities file, it resumes from the saved index. If the cities file has changed since the state was written, the daemon starts fresh. The check is deliberately conservative: a renamed or modified cities file is treated as a different cycle, because the indices would otherwise be meaningless.

                                          The result is the behavior I should have had from the start. If the host reboots while the United States cycle is running, the daemon comes back up with the jail, reads the state, and continues from where it left off. Every city still gets its update, just with a small gap corresponding to the reboot itself. The cycle finishes. The state file is reset. Life goes on.

                                          And the worst case from the cron days is gone. The daemon does not need anyone to fire it. As long as the jail is running, the daemon is running, and the next scheduled cycle will happen when its hour comes, regardless of what was happening at any specific minute.

                                          Of all the changes I have made to the project, this is the one I like most. It is not exciting work. It is the kind of thing that earns no applause because, when it works, it produces no visible event. But it removes a whole class of small daily annoyances, and it makes a slow process robust against the boring kind of failure: the kind nobody plans for, but that always eventually happens.

                                          The current bot does considerably more than the original Italian script. It handles per-city timezones, three weather providers with automatic fallback, unit conversion for temperature, wind, and precipitation, optional air quality, pressure trend indicators when the provider supplies pressure data, a simplified English text snapshot for future use, a coordinate cache that can be patched by hand, secret redaction at multiple layers, a heartbeat that adapts to whichever HTTP client is installed on the host, and a scheduler-and-resume daemon that survives reboots.

                                          But from the outside, almost nothing has changed.

                                          The European country configs work the same way they always did. The wrapper scripts are unchanged. The snac integration is the same one-line pipe. The HAProxy layer in front does not know or care that the bot was rewritten. The homepage cron that counts followers and regenerates the static page works exactly as before.

                                          The original Italian script does not exist as a file anymore, but it survives as a default. A country config with timezone set to Europe/Rome and no special options behaves, today, exactly as the first version of the bot would have. Everything else is opt-in.

                                          I like this kind of work.

                                          https://it-notes.dragas.net/2026/05/25/fedimeteo-timezones-and-the-art-of-not-breaking-what-already-works/


                                            AodeRelay boosted

                                            [?]Ivy Cyber » 🤖 🌐
                                            @ivycyber@privacysafe.social

                                            🛡️ news & tips across the

                                            “I can't rent any bike in Kopenhagen because I don't use google on my phone? Pretty poor.
                                            I tried 3 different services. None worked.
                                            # nogoogle # surveillance # bikes # copenhagen”

                                            social.tchncs.de/@josterburg/1

                                            🤖 via RSS feed. Not an endorsement.

                                              [?]theru » 🌐
                                              @theru@infosec.exchange

                                              Good Morning

                                                fedicat boosted

                                                [?]Lori_Noctis » 🌐
                                                @Lori_Noctis@mastodon.social

                                                Okay, I think I underestimated Mastodon.

                                                I joined a few hours ago, posted a little , mentioned Linux, handwritten HTML, blogging, and missing the old internet…

                                                …and apparently that was enough for the Fediverse to collectively adopt me like a stray HTML goblin.

                                                My notifications are chaos.
                                                People are kind.
                                                Nerds are everywhere.

                                                I may have finally found my corner of the internet. 😄

                                                  fedicat boosted

                                                  [?]Mgfp🇧🇷 [He/Him] » 🌐
                                                  @mgfp@mstdn.social

                                                  The Fediverse is so cool. The interoperability of ActivityPub rewards you from browsing other instances, creating server-side and personal connections differently from how we were taught to browse the social web.
                                                  At the moment I'm trying to figure out the most optimal way share content around the Fediverse, from Peertube to Mastodon in particular. How it works is kind of weird.

                                                    AodeRelay boosted

                                                    [?]Ivy Cyber » 🤖 🌐
                                                    @ivycyber@privacysafe.social

                                                    🛡️ news & tips across the

                                                    “Oura confirmed user health data is not end-to-end encrypted, allowing staff and governments with legal demands to access records stored on company servers. 💍
                                                    The wearable maker says requests are infrequent but still ha...”

                                                    mastodon.social/@knoppix95/116

                                                    🤖 via RSS feed. Not an endorsement.

                                                      [?]Nate [he/him/his] » 🌐
                                                      @nolsen311@infosec.exchange

                                                      RE: pnw.zone/@pseudonymsupreme/116

                                                      Quick shout-out to and the for making it possible to easily catch cool posts like this about my hometown.

                                                        AodeRelay boosted

                                                        [?]Ivy Cyber » 🤖 🌐
                                                        @ivycyber@privacysafe.social

                                                        🛡️ news & tips across the

                                                        “Five Echo Juliet is doing late Saturday afternoon things. https:// globe.airplanes.live/?icao=a50 e9f # Portland # Surveillance”

                                                        mastodon.world/@YakyuNightOwl/

                                                        🤖 via RSS feed. Not an endorsement.

                                                          [?]Serge from Babka [he/him] » 🌐
                                                          @serge@babka.social

                                                          When I think about the fact that Babka Social suspends ~1.5-2 Fediverse accounts a day for antisemitism, the situation on the Fediverse becomes very stark.

                                                          We don't repeat report the same accounts, and we have many instances Suspended or Limited already. Limited servers are less likely to show up in our reports.

                                                          The overall Mastodon and Fediverse landscape shows an overall decrease in the userbase over time- there are less active accounts than there were in 2022/2023, and the numbers continue to shrink over time.

                                                          Babka does not Federate with either Threads, or with Bluesky bridges.

                                                          So if the number of active Fediverse accounts decreases and we still must Suspend 10-14 accounts a week, that means the number of antisemities on this platform is extremely severe.

                                                            dansup boosted

                                                            [?]Fireside Fedi » 🌐
                                                            @firesidefedi@btfree.social

                                                            Good day all! Upcoming episode of Fireside Fedi!

                                                            Special Guest: @evan@cosocial.ca

                                                            He/him. Board member at CoSocial.ca. Research Director, Social Web Foundation. Author of 'ActivityPub: Programming for the Social Web' from O'Reilly Media. Founder of Wikitravel, StatusNet, identi.ca, Fuzzy.ai. Creator of pump.io. Co-creator of GNU social. Former co-chair of the Social Web Working Group at W3C. Co-author of Activity Streams 2.0. Co-author of ActivityPub. Co-author of OStatus. Grad student in CS at Georgia Tech. Greek, Arab, Palestinian, American, Canadian, Montréalais.

                                                            So don't miss it!

                                                            It will happen on 05/27/26 at 14:00 US Eastern Time ( UTC-4 )

                                                            🔥 FIRESIDE FEDI — FOLLOW ALL THREE! 🔥

                                                            📺 Live: @ozoned@stream.firesidefedi.live (#livestream)

                                                            🎬 VOD: @ozoned@tubefree.org (#Peertube #VOD)

                                                            🔔 Alerts: @when@freestreamers.btfree.org (new shows!)

                                                            Don't miss out — follow all three!

                                                              [?]Möhrchen » 🌐
                                                              @my_millennium@nrw.social

                                                              Eine Frage ins

                                                              Hat jemand eine aktuelle Übersicht aller Fediverse-Plattformen? Hier kursierte erst kürzlich wieder so ein schickes Bild. Leider finde ich es nicht.
                                                              Und alles was ich über die Suchmaschinen finde, ist definitiv nicht auf Stand, weil fehlt.

                                                              Ich brauche diese Übersicht für eine kleine Präsentation zum Fediverse bei den ...

                                                              Bin für sehr dankbar.

                                                              Schöne und einen schicken

                                                              🗳

                                                              [?]Hyde 📷 🖋 :debian: » 🌐
                                                              @hyde@lazybear.social

                                                              it looks like more and more companies "force' employees to use .

                                                              What do you reply if you're against it?

                                                              Is that your case:

                                                              Yes:13
                                                              No:19

                                                              Closes in 22:07:25

                                                                AodeRelay boosted

                                                                [?]Ivy Cyber » 🤖 🌐
                                                                @ivycyber@privacysafe.social

                                                                🛡️ news & tips across the

                                                                “# Oura says it gets # government demands for user data. Will it share how many? Oura users' data is not end-to-end # encrypted and can be handed to the government. Will the # wearable tech maker say how often...”

                                                                mas.to/@PrivacyDigest/11662630

                                                                🤖 via RSS feed. Not an endorsement.

                                                                  AodeRelay boosted

                                                                  [?]Helping Hen » 🤖 🌐
                                                                  @helpinghen@privacysafe.social

                                                                  🔆 for PrivacySafe.Social & the

                                                                  “If you see something problematic which has potentially broken your server's rules, you can report it by clicking ⋯ on the post and then selecting "Report". It's really important to include a reason for the report and to...”

                                                                  social.growyourown.services/@F

                                                                  🤖 via RSS feed. Your Mileage May Vary.

                                                                    AodeRelay boosted

                                                                    [?]Fedi.Garden » 🌐
                                                                    @FediGarden@social.growyourown.services

                                                                    DJs.social is a Mastodon server for DJs of any kind, be it in the club, radio, mobile sound-systems, livestreaming etc. People from related fields also welcome.

                                                                    :Fediverse: djs.social

                                                                    You can find out more at djs.social/about or contact the admin account @luka

                                                                      AodeRelay boosted

                                                                      [?]Ivy Cyber » 🤖 🌐
                                                                      @ivycyber@privacysafe.social

                                                                      🛡️ news & tips across the

                                                                      “"For now, what are most alarming are not the outbreaks themselves but the slow and uncoordinated responses by the institutions that Americans rely on to keep them safe, including the U.S. government and the World Health ...”

                                                                      apobangpo.space/@bich/11662611

                                                                      🤖 via RSS feed. Not an endorsement.

                                                                        [?]Paco Hope [He/Him] » 🌐
                                                                        @paco@infosec.exchange

                                                                        @v_perjorative Not yet! That would be the most reply possible (other than the inevitable reply NOT THAT distro!)

                                                                          [?]B59R 🦈 » 🌐
                                                                          @b59r@federation.network

                                                                          Doggy Chill-Mode am 🐶

                                                                          Tierisch gute Grüße gehen raus in die Welt, gehen raus ins

                                                                            AodeRelay boosted

                                                                            [?]Ivy Cyber » 🤖 🌐
                                                                            @ivycyber@privacysafe.social

                                                                            🛡️ news & tips across the

                                                                            “The DOJ Is Demanding Apple And Google Identify Over 100,000 Users Of This Car App
                                                                            # surveillance https://www. youtube.com/watch?v=Md1NcaHWqI0”

                                                                            social.vivaldi.net/@rogerc2738

                                                                            🤖 via RSS feed. Not an endorsement.

                                                                              AodeRelay boosted

                                                                              [?]blog_ungruhe » 🌐
                                                                              @blog_ungruhe@mastodon.social

                                                                              Hey Ho

                                                                              Ich habe am Wochenende meinen eigenen Blog mit im Docker aufgesetzt!

                                                                              Ich will hier eine verständliche Plattform rund um die Themen Linux Selfhosting und Privacy aufbauen.

                                                                              Der erste Post ist live.
                                                                              Als nächstes starten wir mit der Linux-Verzeichnisstruktur!
                                                                              Schaut gerne mal vorbei, ich freue mich über Feedback & Besuch.

                                                                              blog.ungruhe.info

                                                                                [?]Martin Höller » 🌐
                                                                                @martinhoeller@mastodon.social

                                                                                Dear , I need your help. For presentation slides, what presentation software are you using, e.g. when presenting at conferences, meetups but also at work? I'm looking for suggestions other than Keynote and PowerPoint.

                                                                                  AodeRelay boosted

                                                                                  [?]Stefano Marinelli - Starling instance » 🌐
                                                                                  @stefano@starling.stefanomarinelli.it

                                                                                  I've just subscribed to the @gyptazy relay - https://fedi-relay.gyptazy.com/actor

                                                                                  Let's see if it will work.

                                                                                    AodeRelay boosted

                                                                                    [?]Ivy Cyber » 🤖 🌐
                                                                                    @ivycyber@privacysafe.social

                                                                                    🛡️ news & tips across the

                                                                                    ““This week I discovered the same pattern, executed by Google. Google Chrome is reaching into users' machines and writing a 4 GB on-device AI model file to disk without asking. The file is named weights.bin. It lives in O...”

                                                                                    mas.to/@fsinn/1166243538403743

                                                                                    🤖 via RSS feed. Not an endorsement.

                                                                                      [?]Lisa S Baker Art (Back Up) » 🌐
                                                                                      @LisaSBaker@mastodon.world

                                                                                      🍐 Fleur de Pear 🍐 Available Here: 1-lisas-baker.pixels.com/featu

                                                                                      Decorative pear artwork featuring soft floral details painted onto a pear surrounded by pink blossoms, teal leaves, and ornate botanical patterns against a rich brown background.

                                                                                      Alt...Decorative pear artwork featuring soft floral details painted onto a pear surrounded by pink blossoms, teal leaves, and ornate botanical patterns against a rich brown background.

                                                                                        AodeRelay boosted

                                                                                        [?]Ivy Cyber » 🤖 🌐
                                                                                        @ivycyber@privacysafe.social

                                                                                        🛡️ news & tips across the

                                                                                        “"This is what makes the matter more than an abstract privacy concern: it has direct and measurable economic consequences. If your insurance goes up without you having had any accidents, if your risk profile deteriorates ...”

                                                                                        tldr.nettime.org/@remixtures/1

                                                                                        🤖 via RSS feed. Not an endorsement.

                                                                                          [?]John » 🌐
                                                                                          @john@fediverse-rocks.de

                                                                                          @U3000 Willkommen im . 👋

                                                                                            AodeRelay boosted

                                                                                            [?]Ivy Cyber » 🤖 🌐
                                                                                            @ivycyber@privacysafe.social

                                                                                            🛡️ news & tips across the

                                                                                            “Ebola risk in Congo now ‘very high’, WHO warns – POLITICO The situation remains stable in neighboring Uganda, where two confirmed cases and one death have been recorded. Anne…
                                                                                            # NewsBeep # News # US # USA ...”

                                                                                            newsbeep.org/@us/1166239348829

                                                                                            🤖 via RSS feed. Not an endorsement.

                                                                                              AodeRelay boosted

                                                                                              [?]Lori_Noctis » 🌐
                                                                                              @Lori_Noctis@mastodon.social

                                                                                              How fast-moving is this place, actually?
                                                                                              How often should I post?

                                                                                              I have enough material to fire something out every hour, but I also don’t want to annoy people or make a bad first impression. 😄

                                                                                              Still figuring out the rhythm here.

                                                                                                AodeRelay boosted

                                                                                                [?]Ivy Cyber » 🤖 🌐
                                                                                                @ivycyber@privacysafe.social

                                                                                                🛡️ news & tips across the

                                                                                                “Ebola risk in Congo now ‘very high’, WHO warns – POLITICO The situation remains stable in neighboring Uganda, where two confirmed cases and one death have been recorded. Anne…
                                                                                                # NewsBeep # News # Healthcare #...”

                                                                                                newsbeep.org/@au/1166239346227

                                                                                                🤖 via RSS feed. Not an endorsement.

                                                                                                  AodeRelay boosted

                                                                                                  [?]Sascha Pallenberg 🇹🇼 ♻️ ⚡ » 🌐
                                                                                                  @pallenberg@mastodon.social

                                                                                                  Hach Sonntage in bedeuten fuer mich ja immer, dass ich mir alte Kinderserien anschaue. Auf @ZDF neo laeuft gerade Timm Thaler und ich feier das sehr!

                                                                                                  Moin und euch einen gesunden Start in diesen Sonmtag. Alles wird gut 🖖

                                                                                                  ​Foto eines Fernsehbildschirms mit einer Szene aus der Serie „Timm Thaler“ (1979) im 4:3-Format. Links steht Baron Lefuet (Horst Frank) im schwarzen Anzug und blickt lauernd zur Seite. Seine Hand liegt auf der Schulter des jungen Timm Thaler (Thomas Ohrner) rechts. Timm trägt einen grauen Anzug mit Krawatte und schaut ernst nach vorne. Oben links ist das „zdf_neo“-Logo zu sehen.


​Szenenbeschreibung

​Das Foto zeigt einen Moment aus der legendären ZDF-Weihnachtsserie Timm Thaler von 1979, aufgenommen von einem modernen Flachbildfernseher. Aufgrund des originalen 4:3-Formats der Serie ist das Bild von schwarzen Balken flankiert.

​Im Zentrum stehen die beiden Hauptfiguren, deren Dynamik hier perfekt eingefangen wird:

​Baron de Lefuet (Horst Frank): Der Antagonist wirkt in seinem schwarzen Anzug und mit den akkurat frisierten, blonden Haaren kühl und berechnend. Seine Hand auf Timms Schulter demonstriert Macht und die Kontrolle, die er über den Jungen hat, dem er das Lachen abgekauft hat.

​Timm Thaler (Thomas Ohrner): Der sichtlich junge Timm ist für die Welt des Barons elegant in Weste, Sakko und Krawatte gekleidet. Sein Blick ist ernst und geht ins Leere, was die Melancholie und die schwere Last seiner Figur ohne Lachen spürbar macht.

​Die minimalistische Kulisse im Hintergrund und die formelle Kleidung unterstreichen die distanzierte, fast bedrohliche Atmosphäre der Szene.

                                                                                                  Alt...​Foto eines Fernsehbildschirms mit einer Szene aus der Serie „Timm Thaler“ (1979) im 4:3-Format. Links steht Baron Lefuet (Horst Frank) im schwarzen Anzug und blickt lauernd zur Seite. Seine Hand liegt auf der Schulter des jungen Timm Thaler (Thomas Ohrner) rechts. Timm trägt einen grauen Anzug mit Krawatte und schaut ernst nach vorne. Oben links ist das „zdf_neo“-Logo zu sehen. ​Szenenbeschreibung ​Das Foto zeigt einen Moment aus der legendären ZDF-Weihnachtsserie Timm Thaler von 1979, aufgenommen von einem modernen Flachbildfernseher. Aufgrund des originalen 4:3-Formats der Serie ist das Bild von schwarzen Balken flankiert. ​Im Zentrum stehen die beiden Hauptfiguren, deren Dynamik hier perfekt eingefangen wird: ​Baron de Lefuet (Horst Frank): Der Antagonist wirkt in seinem schwarzen Anzug und mit den akkurat frisierten, blonden Haaren kühl und berechnend. Seine Hand auf Timms Schulter demonstriert Macht und die Kontrolle, die er über den Jungen hat, dem er das Lachen abgekauft hat. ​Timm Thaler (Thomas Ohrner): Der sichtlich junge Timm ist für die Welt des Barons elegant in Weste, Sakko und Krawatte gekleidet. Sein Blick ist ernst und geht ins Leere, was die Melancholie und die schwere Last seiner Figur ohne Lachen spürbar macht. ​Die minimalistische Kulisse im Hintergrund und die formelle Kleidung unterstreichen die distanzierte, fast bedrohliche Atmosphäre der Szene.

                                                                                                    fedicat boosted

                                                                                                    [?]MastoBlaster - Official Account » 🌐
                                                                                                    @mastoblaster@mastoblaster.app

                                                                                                    MastoBlaster build 95 is out, and I am getting close to declaring it stable.

                                                                                                    The biggest update in this build is making the Home tab behavior completely explicit. Under the hood, I changed the tab dispatch in MastoBlasterApp.swift, added the Home tab notifications in NotificationDelegate.swift, and moved the actual scroll/refresh behavior into TimelineView.swift so the timeline state stays coherent.

                                                                                                    Here is exactly how it works now:

                                                                                                    • Tap Home from another tab: Switches back to the Home tab.
                                                                                                    • Tap Home while already there: Scrolls the current timeline to the newest posts.
                                                                                                    • Tap Home again while already at the top: Refreshes the timeline (with a 1.5-second cooldown to prevent accidental spamming).
                                                                                                    • Long-press Home: Opens the timeline picker.
                                                                                                    Other changes and fixes included in build 95:
                                                                                                    • Added a setting to completely disable Apple Intelligence.
                                                                                                    • Redesigned the notification view to be larger and make much better use of screen space.
                                                                                                    • Fixed the compose window layout for small devices like the iPhone mini.
                                                                                                    • Profile and banner images can now be tapped to enlarge.
                                                                                                    • Added support to approve or deny follower requests.
                                                                                                    • Added per-instance and per-account connection timeouts.
                                                                                                    • Added a visible Back button to the settings sheet.
                                                                                                    • Updated the filtered notice UI: it now shows "Filtered Post ()" directly in the header and removes the separate "Matched:" line.
                                                                                                    Test it out and let me know if everything holds up.


                                                                                                      [?]Domingos Faria » 🌐
                                                                                                      @df@s.dfaria.eu

                                                                                                      @stefano Thank you very much! Let me know what you think of this software once you try it out. I'm using it here on my server; it's a way to keep improving it and fixing bugs.

                                                                                                        AodeRelay boosted

                                                                                                        [?]Ivy Cyber » 🤖 🌐
                                                                                                        @ivycyber@privacysafe.social

                                                                                                        🛡️ news & tips across the

                                                                                                        “https://www. europesays.com/ie/498962/ Ebola risk in Congo now ‘very high’, WHO warns – POLITICO # Ebola # Éire # GlobalHealth # Health # HealthCare # Healthcare # IE # Ireland # prevention ...”

                                                                                                        pubeurope.com/@ie/116623666527

                                                                                                        🤖 via RSS feed. Not an endorsement.

                                                                                                          [?]theru » 🌐
                                                                                                          @theru@infosec.exchange

                                                                                                          Good Morning

                                                                                                            AodeRelay boosted

                                                                                                            [?]Ivy Cyber » 🤖 🌐
                                                                                                            @ivycyber@privacysafe.social

                                                                                                            🛡️ news & tips across the

                                                                                                            “https://www. europesays.com/uk/979768/ Ebola risk in Congo now ‘very high’, WHO warns – POLITICO # Ebola # GlobalHealth # Health # Healthcare # Prevention # SouthSudan # Surveillance # TedrosAd...”

                                                                                                            pubeurope.com/@uk/116623619011

                                                                                                            🤖 via RSS feed. Not an endorsement.

                                                                                                              AodeRelay boosted

                                                                                                              [?]Ivy Cyber » 🤖 🌐
                                                                                                              @ivycyber@privacysafe.social

                                                                                                              🛡️ news & tips across the

                                                                                                              “Global Privacy Surge: States target VPNs, EU enforces GDPR/DSA, Russia/China/ME curb tools.
                                                                                                              • US: 65% open-source shift
                                                                                                              • EU: 70% non-EU routing
                                                                                                              • Russia: 80% underground surge
                                                                                                              # PrivacyAlert # Surveillance # ...”

                                                                                                              mastodon.social/@osintnewsroom

                                                                                                              🤖 via RSS feed. Not an endorsement.

                                                                                                                AodeRelay boosted

                                                                                                                [?]Ivy Cyber » 🤖 🌐
                                                                                                                @ivycyber@privacysafe.social

                                                                                                                🛡️ news & tips across the

                                                                                                                “https://www. europesays.com/us/816693/ Ebola risk in Congo now ‘very high’, WHO warns – POLITICO # Ebola # GlobalHealth # Health # HealthCare # Healthcare # Prevention # SouthSudan # Surveillan...”

                                                                                                                pubeurope.com/@us/116623583978

                                                                                                                🤖 via RSS feed. Not an endorsement.

                                                                                                                  [?]Holos Social » 🌐
                                                                                                                  @HolosSocial@mastodon.social

                                                                                                                  isn't bringing something new to the , especially not to . It builds on what exists, without mimicking any platform.
                                                                                                                  Every social network has been given its fediverse clone. Asking people to hold a separate account on each is taking the problem backwards.
                                                                                                                  If the fediverse keeps mirroring the GAFAM, it loses. The point was never to rebuild their world, but to offer something else: one identity across every content.
                                                                                                                  HolosSocial is simply a try. But we can do it.

                                                                                                                    AodeRelay boosted

                                                                                                                    [?]Helping Hen » 🤖 🌐
                                                                                                                    @helpinghen@privacysafe.social

                                                                                                                    🔆 for PrivacySafe.Social & the

                                                                                                                    “p.s Thank you to my PeerTube server's hosting company @ Cloud68 for updating the Fedi.Video version so quickly, I can recommend them to anyone who wants managed hosting of PeerTube and other server types 👍 p.p.s....”

                                                                                                                    social.growyourown.services/@F

                                                                                                                    🤖 via RSS feed. Your Mileage May Vary.

                                                                                                                      [?]Lisa S Baker Art (Back Up) » 🌐
                                                                                                                      @LisaSBaker@mastodon.world

                                                                                                                      A little old-world kitchen charm with rich colors, rustic textures, and an Italian-inspired touch 🍅🍝✨ Old World Pasta I: 1-lisas-baker.pixels.com/featu

                                                                                                                      Rustic kitchen mockup featuring vintage-style pasta artwork displayed on a wooden counter. The artwork shows a decorative collage with the word “PASTA,” a plate of spaghetti with marinara sauce, tomatoes, garlic, olive oil, and pasta motifs in warm red, cream, green, and gold tones. Surrounding décor includes wooden utensils, tomatoes, cookbooks, and ceramic kitchen accents for a cozy farmhouse feel.

                                                                                                                      Alt...Rustic kitchen mockup featuring vintage-style pasta artwork displayed on a wooden counter. The artwork shows a decorative collage with the word “PASTA,” a plate of spaghetti with marinara sauce, tomatoes, garlic, olive oil, and pasta motifs in warm red, cream, green, and gold tones. Surrounding décor includes wooden utensils, tomatoes, cookbooks, and ceramic kitchen accents for a cozy farmhouse feel.

                                                                                                                        [?]John » 🌐
                                                                                                                        @john@fediverse-rocks.de

                                                                                                                        @Wetendorf Willkommen im . 👋

                                                                                                                          AodeRelay boosted

                                                                                                                          [?]Ivy Cyber » 🤖 🌐
                                                                                                                          @ivycyber@privacysafe.social

                                                                                                                          🛡️ news & tips across the

                                                                                                                          “If you're enjoying a naked dip in the hot tub, the cops are fapping furiously. https:// globe.airplanes.live/?icao=a50 e9f Isn't this just the most dandy place to live our lives? # Portland # Surveillance”

                                                                                                                          mastodon.world/@YakyuNightOwl/

                                                                                                                          🤖 via RSS feed. Not an endorsement.

                                                                                                                            AodeRelay boosted

                                                                                                                            [?]Solar Phasing » 🌐
                                                                                                                            @solarphasing@mastodon.social

                                                                                                                            dansup boosted

                                                                                                                            [?]Ben Pate 🤘🏻 » 🌐
                                                                                                                            @benpate@mastodon.social

                                                                                                                            , I need your help.

                                                                                                                            I have a budget for a small contract to improve , and am looking for a talented web designer to create a new default theme for the server.

                                                                                                                            Highlights:
                                                                                                                            * Probably ~60 hours of work
                                                                                                                            * Anywhere in the world
                                                                                                                            * Must be a good person

                                                                                                                            Details are here:
                                                                                                                            benpate.dev/20260601-html-desi

                                                                                                                            If you know someone who's great with HTML+CSS+Design, and is looking for a short gig, please share this with them :)

                                                                                                                              [?]WorldTravelerAll7 » 🌐
                                                                                                                              @WorldTravelerAll7@mastodon.world

                                                                                                                              @Teknevra i found this discussion & the comments below very interesting💙

                                                                                                                              i keep advocating to left media complaining about being shadowbanned on YT that they should do some risk mgmt & start posting on too

                                                                                                                              but i'm still waiting to get on PT. i have to find an instance that will allow posting of videos & request to join

                                                                                                                              we will not get the volume of people we need to start using PT & the like that. was just discussing it the other day

                                                                                                                              so i appreciate this discussion💙

                                                                                                                                [?]น้อย คงคะดี » 🌐
                                                                                                                                @noy@mastodon.world

                                                                                                                                Adding another / to / account

                                                                                                                                Abstract black and white sketch with intersecting lines creating geometric shapes

                                                                                                                                Alt...Abstract black and white sketch with intersecting lines creating geometric shapes

                                                                                                                                  fedicat boosted

                                                                                                                                  [?]Fedi.Garden » 🌐
                                                                                                                                  @FediGarden@social.growyourown.services

                                                                                                                                  DataSci.social is a Mastodon server for researchers & practitioners in human-centric data science, broadly defined. For example human-centric network science, social data science, computational social science, geospatial data science.

                                                                                                                                  :Fediverse: datasci.social

                                                                                                                                  You can find out more at datasci.social/about or contact the admin account @mszll

                                                                                                                                    AodeRelay boosted

                                                                                                                                    [?]Stefano Marinelli » 🌐
                                                                                                                                    @stefano@mastodon.bsd.cafe

                                                                                                                                    RE: s.dfaria.eu/@df/33898543700666

                                                                                                                                    This is interesting and the dev confirmed that works with

                                                                                                                                    I'll create a test instance to try it.

                                                                                                                                    AodeRelay boosted

                                                                                                                                    [?]Domingos Faria » 🌐
                                                                                                                                    @df@s.dfaria.eu

                                                                                                                                    is a lightweight server you can install by just copying files over FTP to a shared host. No PostgreSQL, no workers, no DevOps. Owning your data with can be much simpler than with . Have you tried it?
                                                                                                                                    https://github.com/dfaria-eu/Starling

                                                                                                                                        [?]Owl Eyes » 🌐
                                                                                                                                        @d1@autistics.life

                                                                                                                                        I think the becomes a 100x cooler place, when I imagine it as being similar to Star Trek's "the Federation". The Star Trek future we might all hope for will never come to be, without the same sort of earnest efforts which predicated the formation of Star Trek's "Federation".

                                                                                                                                          AodeRelay boosted

                                                                                                                                          [?]Ivy Cyber » 🤖 🌐
                                                                                                                                          @ivycyber@privacysafe.social

                                                                                                                                          🛡️ news & tips across the

                                                                                                                                          “Republican White House Approves $9 Billion for Spy Agencies to Catch Up on A.I. https://www. nytimes.com/2026/05/22/us/poli tics/spy-agencies-ai-chips-shortage.html # AI # surveillance # Trump # MAGA”

                                                                                                                                          mastodon.social/@SteveThompson

                                                                                                                                          🤖 via RSS feed. Not an endorsement.

                                                                                                                                            AodeRelay boosted

                                                                                                                                            [?]Helping Hen » 🤖 🌐
                                                                                                                                            @helpinghen@privacysafe.social

                                                                                                                                            🔆 for PrivacySafe.Social & the

                                                                                                                                            “In case you missed it, there is a serious security vulnerability on PeerTube servers running server software older than v8.1.8. You can see a PeerTube server's version by going to its website, then clicking "More Info",...”

                                                                                                                                            social.growyourown.services/@F

                                                                                                                                            🤖 via RSS feed. Your Mileage May Vary.

                                                                                                                                              [?]Solène de Montmarin » 🌐
                                                                                                                                              @Gardenia@eldritch.cafe

                                                                                                                                              Suivez toustes @raphaellakay ! Rapha a passé la journée à faire des messages pour mettre en avant les cagnottes des palestinien.nes qui nont pas reçu de dons depuis longtemps. Soit une très grande majorité des presques 200 palestinien.nes présent.e.s sur le !!

                                                                                                                                                fedicat boosted

                                                                                                                                                [?]Elefeed » 🌐
                                                                                                                                                @elefeed@mastodon.social

                                                                                                                                                No app store needed. Elefeed installs as a PWA directly from your browser.

                                                                                                                                                📱 Android (Chrome): three-dot menu → "Add to Home Screen"
                                                                                                                                                🍎 iPhone (Safari): Share → "Add to Home Screen"

                                                                                                                                                You get a home screen icon, push notifications, offline caching, and a full-screen experience.

                                                                                                                                                No download. No extra permissions.
                                                                                                                                                👉 elefeed.app

                                                                                                                                                Screenshot of Chrome adding Elefeed as a PWA

                                                                                                                                                Alt...Screenshot of Chrome adding Elefeed as a PWA

                                                                                                                                                  AodeRelay boosted

                                                                                                                                                  [?]Domingos Faria » 🌐
                                                                                                                                                  @df@s.dfaria.eu

                                                                                                                                                  is a lightweight server you can install by just copying files over FTP to a shared host. No PostgreSQL, no workers, no DevOps. Owning your data with can be much simpler than with . Have you tried it?
                                                                                                                                                  https://github.com/dfaria-eu/Starling

                                                                                                                                                    AodeRelay boosted

                                                                                                                                                    [?]Urzl [He/Him] » 🌐
                                                                                                                                                    @gooba42@mastodon.social

                                                                                                                                                    I have an idea that's either crazy or good but I'm going to poke at it a bit before I decide.

                                                                                                                                                    I'm envisioning a service - something like Ravelry or Instructables.

                                                                                                                                                    Project types and outlines should be extensible so you're not filling out an electronics-focused BoM for a knitting project and instances can choose to focus on a particular type.

                                                                                                                                                    I'm considering including project management hooks to help a project that's in-progress but still in the fence.

                                                                                                                                                    No PoC yet but...

                                                                                                                                                      AodeRelay boosted

                                                                                                                                                      [?]Ivy Cyber » 🤖 🌐
                                                                                                                                                      @ivycyber@privacysafe.social

                                                                                                                                                      🛡️ news & tips across the

                                                                                                                                                      “How to bypass social media blocks and increased surveillance in 2026 | TechRadar
                                                                                                                                                      # surveillance # privacy https:// share.google/pu1Fb2GDKwl9sgiAd”

                                                                                                                                                      social.vivaldi.net/@rogerc2738

                                                                                                                                                      🤖 via RSS feed. Not an endorsement.

                                                                                                                                                        AodeRelay boosted

                                                                                                                                                        [?]Ivy Cyber » 🤖 🌐
                                                                                                                                                        @ivycyber@privacysafe.social

                                                                                                                                                        🛡️ news & tips across the

                                                                                                                                                        “Call your congressional reps to support this measure that could ban Flock and ALPRs nationwide!
                                                                                                                                                        https://www. wired.com/story/a-bipartisan-a mendment-would-end-police-license-plate-tracking-nationwide/ # Flock ...”

                                                                                                                                                        defcon.social/@fldigitalrights

                                                                                                                                                        🤖 via RSS feed. Not an endorsement.

                                                                                                                                                          AodeRelay boosted

                                                                                                                                                          [?]Ivy Cyber » 🤖 🌐
                                                                                                                                                          @ivycyber@privacysafe.social

                                                                                                                                                          🛡️ news & tips across the

                                                                                                                                                          “# surveillance”

                                                                                                                                                          nerdculture.de/@cyberman/11662

                                                                                                                                                          🤖 via RSS feed. Not an endorsement.

                                                                                                                                                            AodeRelay boosted

                                                                                                                                                            [?]Ivy Cyber » 🤖 🌐
                                                                                                                                                            @ivycyber@privacysafe.social

                                                                                                                                                            🛡️ news & tips across the

                                                                                                                                                            “Bluesky:

                                                                                                                                                            📱 DHS says ICE has “no relationship” with spyware company Paragon Solutions.

                                                                                                                                                            The documented contracts, oversight reviews, and congressional inquiries tell a very different story.

                                                                                                                                                            This wasn’t just spin....”

                                                                                                                                                            social.thedemocracyadvocate.co

                                                                                                                                                            🤖 via RSS feed. Not an endorsement.

                                                                                                                                                              fedicat boosted

                                                                                                                                                              [?]MastoBlaster - Official Account » 🌐
                                                                                                                                                              @mastoblaster@mastoblaster.app

                                                                                                                                                              MastoBlaster Build 94 is now available on TestFlight.

                                                                                                                                                              This is a major release that merges several different development branches I've been working on, bringing together a lot of moving parts into a single build. A long, sleepless night…

                                                                                                                                                              Here is what changed:

                                                                                                                                                              • Full Drafts Support: A complete end-to-end draft flow. It includes auto-save, the ability to edit existing drafts, and a smart cancel confirmation that either discards a new draft or restores the original state if you were editing. It supports replies, quotes, polls, and media metadata.
                                                                                                                                                              • Trending Posts: Added a new trending timeline type with proper offset pagination support.
                                                                                                                                                              • Timeline Position Improvements: Added extra protection to stop SwiftUI from overwriting your saved scroll position when the view disappears or goes to the background. If a saved post can't be found in the cache, the app will now try a direct status fetch before giving up.
                                                                                                                                                              • UI & Navigation Fixes: Tapping Content Warnings (CW), "Show Filtered Post", or "Show More" now goes through an inline-action guard, fixing the bug where tapping them would accidentally trigger row navigation into the thread. Filtered posts also get proper bottom padding so the list separator doesn't sit on top of the button.
                                                                                                                                                              • Instance Compatibility & Tweaks: Added customizable timeout settings for slower instances (like snac on older hardware). I also fixed the 405 error when setting alt text on GoToSocial, and updated marker sync to strictly align with Mastodon’s documented form shape.
                                                                                                                                                              • Testing focus: I've implemented search fixes ensuring queries stay locked to the account you are searching from. If you are on GoToSocial, please test this thoroughly and let me know how it behaves. Since this build is the result of a massive merge, keep an eye out for any regressions.

                                                                                                                                                                AodeRelay boosted

                                                                                                                                                                [?]Week in Fediverse :fediverse_light: » 🌐
                                                                                                                                                                @weekinfediverse@mitra.social

                                                                                                                                                                fedicat boosted

                                                                                                                                                                [?]Fedi.Garden » 🌐
                                                                                                                                                                @FediGarden@social.growyourown.services

                                                                                                                                                                Mountains.social is a Mastodon server focusing on hiking, mountaineering, climbing, backpacking and the outdoors.

                                                                                                                                                                This server has a post size of up to 2362 characters.

                                                                                                                                                                :Fediverse: mountains.social

                                                                                                                                                                You can find out more at mountains.social/about or contact the admin account @bergmeister

                                                                                                                                                                  [?]wakest likes your bugs ⁂ [they/them] » 🌐
                                                                                                                                                                  @liaizon@social.wake.st

                                                                                                                                                                  is on hacker news and could use some momentum from the to get to the front page if you have an account over there
                                                                                                                                                                  news.ycombinator.com/item?id=4

                                                                                                                                                                    dansup boosted

                                                                                                                                                                    [?]WorldTravelerAll7 » 🌐
                                                                                                                                                                    @WorldTravelerAll7@mastodon.world

                                                                                                                                                                    @krisgoldsmith85 i look forward to you ditching for the 😁💙

                                                                                                                                                                    you already have a @KrisGoldsmith account (unused for a few years)

                                                                                                                                                                    we've got:
                                                                                                                                                                    💙 vs⛔
                                                                                                                                                                    💙 vs⛔

                                                                                                                                                                    plus:
                                                                                                                                                                    💙 vs⛔
                                                                                                                                                                    💙 vs⛔

                                                                                                                                                                    but as you mentioned in a yt vid, we need some "good" billionaires to invest in building the infrastructure we will need to start fighting fascists, especially to fight the tech-bro-chodes

                                                                                                                                                                      fedicat boosted

                                                                                                                                                                      [?]The Fulcrum ⚒️ ⛓️‍💥 🏴‍☠️ » 🌐
                                                                                                                                                                      @SymfonyStation@drupal.community

                                                                                                                                                                      fedicat boosted

                                                                                                                                                                      [?]Chris Trottier » 🌐
                                                                                                                                                                      @atomicpoet@atomicpoet.org

                                                                                                                                                                      This Saturday, I’m speaking at @vanlug about the #Fediverse.

                                                                                                                                                                      It will be held at Burnaby Public Library during 2PM-4PM.

                                                                                                                                                                      Want to attend? Here’s where to register:

                                                                                                                                                                      https://luma.com/ahm1hi2s

                                                                                                                                                                      #VanLUG

                                                                                                                                                                        fedicat boosted

                                                                                                                                                                        [?]Stefan Bohacek » 🌐
                                                                                                                                                                        @stefan@stefanbohacek.online

                                                                                                                                                                        "Decentralised social media ecosystems allow independently operated communities to communicate across shared protocols without being controlled by a single corporation.

                                                                                                                                                                        One such example is the Fediverse, which includes platforms like micro-blogging site Mastodon and video sharing site PeerTube."

                                                                                                                                                                        theconversation.com/nearly-eve

                                                                                                                                                                          dansup boosted

                                                                                                                                                                          [?]Stefan Bohacek » 🌐
                                                                                                                                                                          @stefan@stefanbohacek.online

                                                                                                                                                                          Happy 18th anniversary to the very first fediverse post, courtesy of @evan!

                                                                                                                                                                          web.archive.org/web/2008061816

                                                                                                                                                                          identi.ca/evan/note/Y0QwGyc1QY

                                                                                                                                                                          A screenshot of the first fediverse post from Evan Prodromou dated May 18, 2008, posted on the early fediverse platform Identica.

The text of the post, "This is my first post.", is next to a photo of smiling Evan, wearing a hat, and looking sharp.

Below the post is a partial list of people who liked and shared the post.

                                                                                                                                                                          Alt...A screenshot of the first fediverse post from Evan Prodromou dated May 18, 2008, posted on the early fediverse platform Identica. The text of the post, "This is my first post.", is next to a photo of smiling Evan, wearing a hat, and looking sharp. Below the post is a partial list of people who liked and shared the post.

                                                                                                                                                                            fedicat boosted

                                                                                                                                                                            [?]IT Notes - https://it-notes.dragas.net » 🤖 🌐
                                                                                                                                                                            @itnotes@snac.it-notes.dragas.net

                                                                                                                                                                            FediMeteo, HAProxy, and the art of not wasting snac threads

                                                                                                                                                                            When I wrote about FediMeteo (https://it-notes.dragas.net/2025/02/26/fedimeteo-how-a-tiny-freebsd-vps-became-a-global-weather-service-for-thousands/) for the first time, I told the story from the beginning: the idea born almost by chance while checking the weather for a holiday, the memory of my grandfather, who for years had been my personal meteorologist, the decision to build something small and useful, and then the surprise of seeing people actually use it. What began as a personal experiment quickly became a small global service, still running with the same philosophy: FreeBSD, jails, simple scripts, snac, text, emoji, and a lot of small pieces doing their work quietly.

                                                                                                                                                                            That article was mostly about the birth and growth of the project. This one is about one of the less romantic parts of the same story, although I have to admit that I find a certain beauty in it too: keeping the service light as it grows.

                                                                                                                                                                            FediMeteo (https://fedimeteo.com) is still intentionally simple from the outside. A homepage, some numbers, a list of countries, and many ActivityPub accounts publishing weather forecasts. The posts are text and emoji. There is no JavaScript requirement to read the pages, no heavy frontend, no unnecessary media attached to every forecast, and no dynamic homepage recalculated at every visit just to show the same numbers. This is not accidental. It is the way I wanted the service to behave from the beginning.

                                                                                                                                                                            But the more the service is used, the more the small details matter. A request that looks harmless when there are ten followers may become a repeated request when there are thousands of followers, remote instances, crawlers, previews, and other servers fetching the same public objects. In the Fediverse, the same small thing can be asked many times by many different places, each one with a perfectly legitimate reason. The backend doesn't care: it just needs to deal with the requests.

                                                                                                                                                                            And in FediMeteo, the backend is snac (https://codeberg.org/grunfink/snac2).

                                                                                                                                                                            I like snac very much precisely because it is small, clear, and efficient. It is not a giant application that tries to be everything. It does a focused job and does it well. But this also means that I want to respect its shape. I do not want to waste its threads on work that the reverse proxy can safely do. A snac thread serving the same public avatar again and again is not a tragedy, but it is still a waste. A snac thread answering the same public ActivityPub object several times in the same minute is doing real work, but often not necessary work.

                                                                                                                                                                            This is the reason behind the HAProxy (https://www.haproxy.org) tuning I am currently using in front of FediMeteo.

                                                                                                                                                                            It is not about making the configuration look clever. It is about keeping snac quiet.

                                                                                                                                                                            A continuation of the same idea

                                                                                                                                                                            I had already explored the same problem with snac and nginx in two previous posts: Improving snac Performance with Nginx Proxy Cache (https://it-notes.dragas.net/2025/01/29/improving-snac-performance-with-nginx-proxy-cache/) and Caching snac Proxied Media with Nginx (https://it-notes.dragas.net/2025/02/08/caching-snac-proxied-media-with-nginx/). In both cases, the idea was that the reverse proxy should absorb repeated public requests instead of letting them consume snac resources.

                                                                                                                                                                            This is especially important because snac uses a limited number of threads. I like that. Limits are healthy. They force us to understand what the service is doing, and they prevent a small program from pretending to be an infinite resource. But limits also make waste visible. If a few threads are busy serving files that could have been served from cache, those threads are not available for something more useful.

                                                                                                                                                                            With FediMeteo the implementation is different because the reverse proxy is HAProxy, but the reasoning is the same. I have many small snac instances, each one in its own FreeBSD (Bastille (https://github.com/BastilleBSD/bastille)) jail, and one public entry point that has to route, terminate TLS, compress, cache, and generally remove as much repetitive work as possible from the backends.

                                                                                                                                                                            This is, in a way, the natural continuation of the original FediMeteo design. In the first article I wrote that I wanted to manage everything according to the Unix philosophy: small pieces working together. This is another piece of that same puzzle. HAProxy does the edge work. snac does the ActivityPub work. Scripts generate forecasts. cron launches updates. ZFS gives me snapshots. FreeBSD jails keep countries separated. Nothing is particularly heroic by itself, but the whole system becomes pleasant because each part has a clear responsibility.

                                                                                                                                                                            Why there is almost no media

                                                                                                                                                                            Before talking about HAProxy, it is worth mentioning one of the most important optimizations, which is not in the proxy configuration at all.

                                                                                                                                                                            FediMeteo does not use media in its forecasts.

                                                                                                                                                                            No images attached to the posts, no generated weather cards, no maps for each city, no decorative banners. The forecasts are text and emoji. This was a deliberate decision. Weather information does not become more useful just because it is put inside an image, and every media file used by the service would become something to store, serve, cache, federate, expire, back up, and occasionally debug.

                                                                                                                                                                            Text and emoji are enough. They are accessible, light, readable in text browsers, friendly to timelines, and understandable even when someone does not know the local language perfectly. This was one of the original design principles of FediMeteo, and it also helps the infrastructure. Less media means less work, fewer cache entries, fewer repeated fetches, fewer surprises.

                                                                                                                                                                            There is one exception: the avatar.

                                                                                                                                                                            All FediMeteo accounts use the same avatar, and this is also intentional. I could have used a different avatar for each country, or for each city, or created something visually richer. It would have been nicer in some screenshots, perhaps. It would also have been operationally worse.

                                                                                                                                                                            With one shared avatar, the reverse proxy has one very useful object to cache. It is public, identical for everyone, small, requested often, and therefore almost always hot in cache. HAProxy can serve it directly instead of asking each snac instance to return the same file. Since avatars are requested by remote instances, browsers, profile previews, and all sorts of federation-related fetches, this single decision removes a surprising amount of pointless backend traffic.

                                                                                                                                                                            So the avatar is not only a visual identity. It is part of the architecture.

                                                                                                                                                                            This is the kind of optimization I like most, because it starts before the software. It starts with deciding not to create a problem.

                                                                                                                                                                            The homepage is static because it can be static

                                                                                                                                                                            The main homepage follows the same logic.

                                                                                                                                                                            It is a static HTML page generated from a template. Once per hour, a cron script updates the numbers and statistics. It counts the data I want to show, regenerates the page, and then the page remains static until the next run.

                                                                                                                                                                            This is not because I cannot make a dynamic page. It is because I do not need one. Boring is good.

                                                                                                                                                                            The homepage does not need to query all the country instances on every visit. It does not need a database request for each user who opens it. It does not need to ask snac anything in real time. The numbers are useful, but they do not need to be updated every second. Once per hour is enough, and it also fits the spirit of the whole project: do the work when it is needed, then serve the result cheaply.

                                                                                                                                                                            I have seen too many small services become heavy because the first implementation was convenient rather than appropriate. A cron job and a template are not fashionable, but they are often exactly what a page like this needs.

                                                                                                                                                                            Many countries, one entry point

                                                                                                                                                                            FediMeteo is made of many country instances. Each one runs in its own jail and listens on its own internal address and port. From the outside, however, they all live under the same domain structure:

                                                                                                                                                                            fedimeteo.com
                                                                                                                                                                            www.fedimeteo.com
                                                                                                                                                                            it.fedimeteo.com
                                                                                                                                                                            uk.fedimeteo.com
                                                                                                                                                                            jp.fedimeteo.com
                                                                                                                                                                            us.fedimeteo.com
                                                                                                                                                                            usa.fedimeteo.com
                                                                                                                                                                            can.fedimeteo.com
                                                                                                                                                                            canada.fedimeteo.com
                                                                                                                                                                            And many more.

                                                                                                                                                                            At the beginning, it is always tempting to write one ACL after another in the HAProxy frontend. It is quick, it is explicit, and for five hostnames it is perfectly fine. But FediMeteo did not remain at five hostnames. As countries and aliases grew, a long chain of ACLs would have turned the frontend into a list of names instead of a description of how the proxy behaves.

                                                                                                                                                                            So I moved the hostname to backend mapping into a map file:

                                                                                                                                                                            fedimeteo.com        backend_fedimeteo
                                                                                                                                                                            www.fedimeteo.com backend_fedimeteo
                                                                                                                                                                            it.fedimeteo.com backend_it
                                                                                                                                                                            uk.fedimeteo.com backend_uk
                                                                                                                                                                            jp.fedimeteo.com backend_jp
                                                                                                                                                                            us.fedimeteo.com backend_us
                                                                                                                                                                            usa.fedimeteo.com backend_us
                                                                                                                                                                            can.fedimeteo.com backend_ca
                                                                                                                                                                            canada.fedimeteo.com backend_ca
                                                                                                                                                                            The frontend then needs only one rule:

                                                                                                                                                                            use_backend %[req.hdr(host),field(1,:),lower,map(/usr/local/etc/fedimeteo.map,backend_fedimeteo)]
                                                                                                                                                                            This reads the Host header, removes the port if present, lowercases the result, and looks it up in /usr/local/etc/fedimeteo.map. If nothing matches, it falls back to the main FediMeteo backend.

                                                                                                                                                                            I like this because it keeps the configuration honest. The frontend contains the policy. The map contains the data. Adding a country means adding an entry to the map and defining a backend. I do not need to make the frontend more complicated every time the service grows.

                                                                                                                                                                            Backends as small compartments

                                                                                                                                                                            The country backends are deliberately plain:

                                                                                                                                                                            backend backend_it
                                                                                                                                                                            mode http
                                                                                                                                                                            http-reuse safe
                                                                                                                                                                            server srv1 10.0.0.2:8001 maxconn 30

                                                                                                                                                                            backend backend_uk
                                                                                                                                                                            mode http
                                                                                                                                                                            http-reuse safe
                                                                                                                                                                            server srv1 10.0.0.7:8001 maxconn 30

                                                                                                                                                                            backend backend_jp
                                                                                                                                                                            mode http
                                                                                                                                                                            http-reuse safe
                                                                                                                                                                            server srv1 10.0.0.32:8001 maxconn 30

                                                                                                                                                                            One backend, one jail, one snac instance. This is exactly the same organizational principle as the rest of the project. If I need to reason about Italy, I look at the Italian jail. If I need to reason about the United Kingdom, I look at the UK jail. If one day I need to move a country elsewhere, the separation is already there.

                                                                                                                                                                            The maxconn 30 value is not a magic number. It is a ceiling. I want each small backend to have a visible limit in front of it. If something starts hammering a country instance, I prefer the pressure to appear at the HAProxy layer instead of becoming unlimited concurrent work inside snac.

                                                                                                                                                                            http-reuse safe lets HAProxy reuse backend connections where appropriate. This is another small reduction in unnecessary work. Opening connections repeatedly is not the biggest problem in the world, but avoiding it is still better, especially when many small services sit behind the same proxy.

                                                                                                                                                                            The front door

                                                                                                                                                                            The HTTPS frontend listens on IPv4 and IPv6 and offers both HTTP/2 and HTTP/1.1:

                                                                                                                                                                            frontend https_in
                                                                                                                                                                            bind :::443 v4v6 ssl crt /usr/local/etc/certs/ alpn h2,http/1.1
                                                                                                                                                                            mode http
                                                                                                                                                                            option http-keep-alive
                                                                                                                                                                            TLS defaults are set globally:

                                                                                                                                                                            ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
                                                                                                                                                                            ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets
                                                                                                                                                                            Port 80 only redirects to HTTPS, except for Let's Encrypt challenges:

                                                                                                                                                                            acl letsencrypt-acl path_beg /.well-known/acme-challenge/
                                                                                                                                                                            http-request redirect scheme https code 301 unless letsencrypt-acl
                                                                                                                                                                            use_backend letsencrypt-backend if letsencrypt-acl
                                                                                                                                                                            In the HTTPS frontend I also set the usual forwarding headers:

                                                                                                                                                                            http-request set-header X-Real-IP %[src]
                                                                                                                                                                            http-request set-header X-Forwarded-Proto https
                                                                                                                                                                            And I add HSTS:

                                                                                                                                                                            http-response set-header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
                                                                                                                                                                            None of this is unusual, and that is fine. The interesting parts of an infrastructure are not always the parts that should be unusual.

                                                                                                                                                                            Two caches, because the requests are different

                                                                                                                                                                            The HAProxy configuration defines two caches:

                                                                                                                                                                            cache mediacache
                                                                                                                                                                            total-max-size 128
                                                                                                                                                                            max-object-size 10000000
                                                                                                                                                                            max-age 3600
                                                                                                                                                                            process-vary on
                                                                                                                                                                            max-secondary-entries 12

                                                                                                                                                                            cache jsoncache
                                                                                                                                                                            total-max-size 16
                                                                                                                                                                            max-object-size 1000000
                                                                                                                                                                            max-age 60
                                                                                                                                                                            process-vary on
                                                                                                                                                                            max-secondary-entries 12

                                                                                                                                                                            I keep media and ActivityPub JSON separate because they are not the same kind of traffic.

                                                                                                                                                                            The media cache is larger and has a longer maximum age. In FediMeteo, this mostly means the shared avatar and a few static-looking objects. Since there is intentionally almost no media, the important cached object is requested very often and remains warm.

                                                                                                                                                                            The JSON cache is smaller and short-lived. It is there for public ActivityPub GET requests, not to store federation state forever. A 60 second cache is enough to collapse many repeated requests that arrive close together in time, without pretending that ActivityPub responses should be treated like immutable files.

                                                                                                                                                                            This distinction is important. Caching is not one decision. It is a set of small decisions about what a response means, who can see it, how often it changes, and what happens if it is served again.

                                                                                                                                                                            Recognizing media

                                                                                                                                                                            For media, the ACL is based on file extensions:

                                                                                                                                                                            acl is_media path_end -i .jpg .jpeg .png .gif .webp .svg .ico .mp4 .webm .mp3 .ogg .wav .flac .mov .avi .mkv .m4v
                                                                                                                                                                            Then I store the result in a transaction variable:

                                                                                                                                                                            http-request set-var(txn.is_media) bool(true) if is_media
                                                                                                                                                                            The cache lookup is straightforward:

                                                                                                                                                                            http-request cache-use mediacache if { var(txn.is_media) -m bool true }
                                                                                                                                                                            And on the response side:

                                                                                                                                                                            http-response set-header Cache-Control "max-age=3600, public" if { var(txn.is_media) -m bool true }
                                                                                                                                                                            http-response del-header Set-Cookie if { var(txn.is_media) -m bool true }
                                                                                                                                                                            http-response del-header Vary if { var(txn.is_media) -m bool true }
                                                                                                                                                                            http-response cache-store mediacache if { var(txn.is_media) -m bool true }
                                                                                                                                                                            The Cache-Control header makes the intent explicit. Set-Cookie is removed because a public media object should not carry session information. Vary is removed because I do not want the same avatar to fragment into many cache entries because of harmless header differences.

                                                                                                                                                                            This is aggressive only if removed from its context. In this service, with this media policy, it is a reasonable choice. FediMeteo is not serving private media under these paths. It is mostly serving the same public avatar over and over.

                                                                                                                                                                            For the same reason, I clean the request before it reaches the backend:

                                                                                                                                                                            http-request del-header Authorization if { var(txn.is_media) -m bool true }
                                                                                                                                                                            http-request del-header Cookie if { var(txn.is_media) -m bool true }
                                                                                                                                                                            I would not do this globally. I do it after deciding that the request is media. Scope is what makes these rules safe.

                                                                                                                                                                            The result is exactly what I want: the shared avatar becomes an almost perfect cache object. Small, public, repeatedly requested, and served by HAProxy instead of snac.

                                                                                                                                                                            ActivityPub JSON microcaching

                                                                                                                                                                            The ActivityPub side starts from the Accept header:

                                                                                                                                                                            acl is_ap_json   req.hdr(Accept),lower -m sub application/activity+json
                                                                                                                                                                            acl is_ap_ldjson req.hdr(Accept),lower -m sub application/ld+json
                                                                                                                                                                            acl is_outbox path_end /outbox
                                                                                                                                                                            acl is_get method GET
                                                                                                                                                                            acl has_auth req.hdr(Authorization) -m found
                                                                                                                                                                            acl has_cookie req.hdr(Cookie) -m found
                                                                                                                                                                            This part matters because ActivityPub uses content negotiation. The same path may return HTML to a browser and JSON to a remote instance. If the proxy pretends that a URL is always one thing, it will eventually cache the wrong representation.

                                                                                                                                                                            So I only mark public ActivityPub GET requests as cacheable:

                                                                                                                                                                            http-request set-var(txn.is_activitypub) bool(true) if is_get !is_outbox is_ap_json !has_auth !has_cookie
                                                                                                                                                                            http-request set-var(txn.is_activitypub) bool(true) if is_get !is_outbox is_ap_ldjson !has_auth !has_cookie
                                                                                                                                                                            There are several decisions here, all important.

                                                                                                                                                                            It must be a GET, because I am not caching deliveries or anything that changes state. It must not be /outbox, because outbox collections are not the traffic I want to cache here. It must not have Authorization, and it must not have cookies, because authenticated or user-specific requests do not belong in a shared public cache.

                                                                                                                                                                            Then the cache can be used and populated:

                                                                                                                                                                            http-request cache-use jsoncache if { var(txn.is_activitypub) -m bool true }

                                                                                                                                                                            http-response set-header Cache-Control "max-age=60, public" if { var(txn.is_activitypub) -m bool true }
                                                                                                                                                                            http-response cache-store jsoncache if { var(txn.is_activitypub) -m bool true }

                                                                                                                                                                            Sixty seconds is short, but useful. Federation often creates small clusters of identical requests. A remote server fetches an actor, another fetches the same actor, something asks for the same object, something retries. I do not need to cache these responses for hours. I only need HAProxy to answer the second and third identical request during the same small burst.

                                                                                                                                                                            This is microcaching in the most practical sense. It reduces repeated work without changing the nature of the service.

                                                                                                                                                                            Static media paths

                                                                                                                                                                            There is also a rule for static paths:

                                                                                                                                                                            acl is_short_path path_reg ^/[^/]+/s/
                                                                                                                                                                            http-request cache-use mediacache if is_short_path
                                                                                                                                                                            This comes from the same observation that led me to cache snac media with nginx. snac uses static media paths, and those paths often represent the kind of public, repeatable traffic that should not consume backend threads if the proxy can serve it. I call them "short", not because they are, but because the first time I saw them, I thought the 's' stood for "short", not "static". The name just stuck.

                                                                                                                                                                            In FediMeteo this is less central than on a normal social instance, because I deliberately do not use media except for the avatar and basic static objects. Still, the rule fits the general policy: let HAProxy handle repeatable edge work, and let snac spend its threads where they are actually needed.

                                                                                                                                                                            Vary, but not without limits

                                                                                                                                                                            Both caches have:

                                                                                                                                                                            process-vary on
                                                                                                                                                                            max-secondary-entries 12
                                                                                                                                                                            I want HAProxy to process Vary, because content negotiation is real, especially when ActivityPub is involved. But I also want variation to be bounded. If every slightly different header creates another cache entry, the cache becomes a complicated way to miss.

                                                                                                                                                                            For media, I remove Vary before storing the response. A shared avatar does not need to vary by Accept. For ActivityPub JSON, I am more careful because the representation matters.

                                                                                                                                                                            Again, the important thing is not the number itself. It is the decision to make variation explicit and limited.

                                                                                                                                                                            Seeing whether it works

                                                                                                                                                                            During rollout, I like to expose a very small diagnostic header:

                                                                                                                                                                            http-response set-header X-Cache-Status HIT if !{ srv_id -m found }
                                                                                                                                                                            http-response set-header X-Cache-Status MISS if { srv_id -m found }
                                                                                                                                                                            This is intentionally simple. If HAProxy selected a backend server, I call it a miss. If no backend server was selected, the response came from cache, so I call it a hit. It is not a complete observability system, but it is enough to answer the first question I usually have after changing a cache rule.

                                                                                                                                                                            Did this request reach snac?

                                                                                                                                                                            A test can be as simple as:

                                                                                                                                                                            curl -I https://it.fedimeteo.com/path/to/avatar.png
                                                                                                                                                                            curl -I https://it.fedimeteo.com/path/to/avatar.png
                                                                                                                                                                            The second request should be a hit.

                                                                                                                                                                            For ActivityPub JSON, the test must use the right Accept header:

                                                                                                                                                                            curl -I \
                                                                                                                                                                            -H 'Accept: application/activity+json' \
                                                                                                                                                                            https://it.fedimeteo.com/some/activitypub/object
                                                                                                                                                                            And I also want to verify that cookies and authorization prevent public caching:

                                                                                                                                                                            curl -I \
                                                                                                                                                                            -H 'Cookie: test=value' \
                                                                                                                                                                            -H 'Accept: application/activity+json' \
                                                                                                                                                                            https://it.fedimeteo.com/some/activitypub/object

                                                                                                                                                                            curl -I \
                                                                                                                                                                            -H 'Authorization: Bearer fake' \
                                                                                                                                                                            -H 'Accept: application/activity+json' \
                                                                                                                                                                            https://it.fedimeteo.com/some/activitypub/object

                                                                                                                                                                            A cache that works should be visible. A cache that is invisible can be correct, but it can also be silently wrong. I prefer to know.

                                                                                                                                                                            Compression and operational paths

                                                                                                                                                                            HAProxy also handles gzip compression:

                                                                                                                                                                            filter compression
                                                                                                                                                                            compression algo gzip
                                                                                                                                                                            compression type text/css text/html text/javascript application/javascript text/plain text/xml application/json application/activity+json
                                                                                                                                                                            This keeps another common responsibility at the edge. The country instances can stay focused on snac and the forecast data, while HAProxy deals with client-facing compression for HTML, JSON, and ActivityPub responses.

                                                                                                                                                                            There is also a local Prometheus exporter:

                                                                                                                                                                            frontend prometheus
                                                                                                                                                                            bind 127.0.0.1:8405
                                                                                                                                                                            mode http
                                                                                                                                                                            http-request use-service prometheus-exporter
                                                                                                                                                                            no log
                                                                                                                                                                            And I keep internal operational paths, such as statistics and Grafana, handled before the hostname map. These are small details, but ordering matters. Special paths should be explicit and early. The hostname map is for FediMeteo routing, not for every internal tool I happen to expose behind the same proxy.

                                                                                                                                                                            What this changes in practice

                                                                                                                                                                            The nice thing about this configuration is that none of its parts is particularly surprising.

                                                                                                                                                                            The map keeps hostname routing manageable. The backend definitions keep each country isolated and limited. The static homepage avoids dynamic work for something that changes once per hour. The shared avatar gives HAProxy one very hot media object to serve directly. The media cache keeps public files away from snac. The JSON microcache absorbs short ActivityPub bursts. Header cleanup prevents useless variation. Connection reuse avoids unnecessary backend connection churn.

                                                                                                                                                                            But all of this is only a longer way of saying one thing:

                                                                                                                                                                            fewer requests reach snac.

                                                                                                                                                                            That is the metric I care about here.

                                                                                                                                                                            Not because snac is slow. If anything, FediMeteo exists in its current form because snac is efficient enough to make this kind of project possible on a very small VPS. But precisely because the whole architecture is small and pleasant, I do not want to waste resources where there is no need.

                                                                                                                                                                            This is also consistent with the rest of the project. Forecasts are serialized by scripts. Updates happen every six hours. The homepage is regenerated hourly. Countries live in separate jails. Snapshots and backups are handled outside the application. No single component tries to be the entire system.

                                                                                                                                                                            HAProxy is just another small piece, but it sits in the right place to remove a lot of repeated work.

                                                                                                                                                                            Caveats

                                                                                                                                                                            This configuration is not a universal HAProxy recipe for ActivityPub services.

                                                                                                                                                                            It matches FediMeteo as it is now: almost no media, one shared avatar, static homepage, public forecasts, many small snac instances, and ActivityPub traffic that can benefit from a short public cache when there are no cookies or authorization headers.

                                                                                                                                                                            If I decide one day to use media in forecasts, the media cache rules will need to be reviewed. If I use different avatars for each city or country, the cache will still work, but I will lose the very nice property of one shared, always-hot avatar. If ActivityPub responses become actor-dependent, public JSON caching must be reconsidered. If one country grows a very different traffic pattern from the others, it may deserve a different limit or policy.

                                                                                                                                                                            This is why I do not like presenting configurations as magic. A good configuration is a written form of the assumptions behind a service. When the assumptions change, the configuration must change too.

                                                                                                                                                                            Conclusion

                                                                                                                                                                            FediMeteo started as a small idea and became larger than I expected, but I still want it to feel small in the right ways. Small does not mean fragile. Small means understandable. It means that each part has a reason to exist, and that unnecessary work is removed before it becomes a problem.

                                                                                                                                                                            The HAProxy layer follows this idea. It terminates TLS, routes hostnames through a map, reuses backend connections, serves the shared avatar from cache, microcaches public ActivityPub JSON, avoids authenticated and cookie-based traffic, and gives me a small diagnostic header to see what is happening.

                                                                                                                                                                            There is no single brilliant directive here. There is only the usual work of matching infrastructure to reality.

                                                                                                                                                                            FediMeteo publishes weather forecasts as text and emoji. The homepage is static HTML updated every hour. The accounts share the same avatar because it is enough, and because it is better for the cache. Each country has its own snac instance in its own FreeBSD jail. HAProxy stands in front of them and tries, quietly, not to bother them unless it has to.

                                                                                                                                                                            I like this kind of infrastructure.

                                                                                                                                                                            Not because it is invisible, but because when it works well, it leaves very little to say.

                                                                                                                                                                            https://it-notes.dragas.net/2026/05/18/fedimeteo-haproxy-and-the-art-of-not-wasting-snac-threads/


                                                                                                                                                                              fedicat boosted

                                                                                                                                                                              [?]ozoned » 🌐
                                                                                                                                                                              @ozoned@btfree.social

                                                                                                                                                                              I talk about the #Fediverse whenever I get a chance. The trick is being receptive, not pushy. Let them try it in their own time.

                                                                                                                                                                              Only saying this because I now have two long time friends actively participating in the Fediverse where 6 months ago they had no interest.

                                                                                                                                                                              One was even using an app with AP integration and didn't even know it.

                                                                                                                                                                              Anecdotal? Absolutely! But our reality is built on our perceptions.

                                                                                                                                                                              Very excited by this! 😄

                                                                                                                                                                                [?]🏳️‍⚧️ Christin Löhner 🏳️‍🌈 » 🌐
                                                                                                                                                                                @christin@lsbt.me

                                                                                                                                                                                FediSuite

                                                                                                                                                                                Hashtags sind im Fediverse eine der wichtigsten Mechaniken für Sichtbarkeit. Aber nicht jeder Hashtag funktioniert für jeden Account. Welche Tags bringen dir wirklich Reichweite und welche sind eigentlich nur Lärm? FediSuite analysiert deine eigene Posting-Historie und zeigt dir, welche Hashtags und welche Kombinationen bei dir tatsächlich Engagement erzeugen. Wer fünfzehn Tags pro Post setzt und trotzdem nicht vorankommt, sieht das jetzt schwarz auf weiß und kann gezielt aufräumen, statt weiter ins Blaue zu raten.


                                                                                                                                                                                fedisuite.com

                                                                                                                                                                                  fedicat boosted

                                                                                                                                                                                  [?]Fedizen ⁂ Fediverse News » 🌐
                                                                                                                                                                                  @fedizen@mastodon.social

                                                                                                                                                                                  has entered with support, allowing users to connect with creators across the . This means users can follow and interact with creators on platforms like and , and vice versa. Loops has implemented several technical features to ensure smooth federation, including a shared inbox, HTTP signatures, and smart content representation. blog.joinloops.org/loops-joins

                                                                                                                                                                                    dansup boosted

                                                                                                                                                                                    [?]Elena Rossini on GoToSocial ⁂ » 🌐
                                                                                                                                                                                    @elena@aseachange.com

                                                                                                                                                                                    Dear Fedi friends,

                                                                                                                                                                                    I'm really proud to share with you a video I made: "Introducing the Fediverse: a New Era of Social Media" https://news.elenarossini.com/fediverse-video/

                                                                                                                                                                                    In this 4-minute video I explain what the #fediverse is to people not familiar with it, mentioning some of its great features and benefits (interoperability, no ads, no surveillance...) and I set it in contrast to the world of Big Tech social platforms. I argue that, with the rise of Big Tech oligarchs and the current political climate, there has never been a better time to join the fediverse.

                                                                                                                                                                                    I hope you will enjoy this video and that you will find it useful (maybe as a tool to introduce your friends, family, colleagues, school administrators, local government officials to it).

                                                                                                                                                                                    The fediverse has truly changed my life, making me a better, more empowered digital citizen. I am endlessly grateful for it, so this is my contribution to the cause ❤️

                                                                                                                                                                                    I am also incredibly thankful for the work of @samaaberg and @patel.riyen who helped me bring my vision to life with their amazing cinematography skills and their assistance throughout the process, providing brilliant feedback to the script / edits from the POV of fedi newbies.

                                                                                                                                                                                    And I was also moved by the generous help of people of the Fediverse who volunteered to translate the script into many foreign languages: @jan @fritjof @erikkemp @sknob @severin @clabru @tarcisiosurdi @hongminhee @danielcasanueva @ainali @nacly

                                                                                                                                                                                    Lastly, I'm thankful for the opportunity I had to premiere the video last week at #FediForum - thank you @j12t and @anca

                                                                                                                                                                                    The video is up on my self-hosted PeerTube instance (thank you @yunohost) and for now it is unlisted as I have no idea how my VPS will hold up. I also included an alternate location in the blog post.

                                                                                                                                                                                    I hope you'll enjoy it! It's been a real labor of love (a month of full time work on it)... I see it as my love letter to the fediverse 💌

                                                                                                                                                                                    #TheFutureIsFederated

                                                                                                                                                                                      [?]Connected Places » 🌐
                                                                                                                                                                                      @fediversereport@mastodon.social

                                                                                                                                                                                      New: Last Week in - ep 91

                                                                                                                                                                                      This week's news:
                                                                                                                                                                                      - @loops has launched and is now available for everyone!
                                                                                                                                                                                      - @radiofreefedi will shut down early next year
                                                                                                                                                                                      - Bridgy Fed talks about potential governance directions

                                                                                                                                                                                      Read at: fediversereport.com/last-week-