My partner and me are running an informational feed covering design, media, marketing, communication, technology, and creating.
The backbone of this is FreshRSS, IFTTT, and Buffer, and we are curating what gets posted to three accounts on three social media platforms. The method is simple: we favorite content in our FreshRSS. This list of favorite articles then gets output as an RSS feed itself. IFTTT takes this RSS feed and sends it to buffer, and buffer schedules the posts. #server #asca
In the future, we’ll try out a posting system without using buffer, but huginn instead. I think that the main issue here is failing to serve, so I am setting up a monitoring service for both FreshRSS and huginn, so that if they can’t be reached, I get sent a message so I can fix this issue on the go. Running Plesk on our VPS should make this less difficult than setting up the infrastructure. I like to post this in advance of me doing it, because in reality, I am already halfway in. #server #asca
Monitor is in place in for both services. #FreshRSS #huginn #server #asca
To continue: I am also running a #wallabag server which I use to store bookmarks and interesting reading material for myself. And while working in public on a social platform, my partner recommended that I use my wallabag favorites to add to our informational feed. And the process for outputting #RSS from wallabag is very easy: I just had to generate a token for that, and then I plugged in the output RSS into our #FreshRSS backend. #server #asca
Next thing I need to do is to turn off the mastodon-native “cards” for links, because I am future-proofing my self-hosted services against issues with the law here in Germany, especially regarding what is called “framing” here.
In short, I better not EVER have a picture anywhere on anything I self-host I have not explicitly acquired the rights to, or have made myself.
There is a whole gray market in Germany for suing the people for that. Fixing this next.
#asca #server
#mastodon #gdpr

Adding these lines to my application.env covered this issue

# do not fetch external resources
DISABLE_FETCH_PREVIEWS=true
DISABLE_EMBED_PREVIEW=true

I will need to go through my own feed next to ensure that there are no embeds left over. This is in addition to my recent purging of boosts: https://mastodon.mariobreskic.de/@mario/114982417840616548

#server #asca #mastodon #gdpr

Mario Breskic (@[email protected])

Had to nuke all my boosts 💥 — not because I don’t love you all, but because German copyright law said “No fun, only §!” 🇩🇪📚 Turns out even displaying book covers (aka “framing”) can get dicey. Courts here ruled that embedding images without permission = potential copyright infringement. No thanks 😅 Details if you love legal pain: https://www.kanzlei.biz/suche/?sq=framing&type= Stay safe, stay boostless! 💂‍♂️🔗

Mario Breskicʼs Mastodon

And from there, I delete all #PreviewCards in #mastodon by using these commands:

1. docker compose exec web bash
2. RAILS_ENV=production bundle exec rails console
And then I run this in the console: PreviewCard.destroy_all

This will run for a while but it should remove all stored preview cards from my mastodon server, for all posts.
And it worked. Just climb back up to my prompt by punching in “exit” until I am back home, and that issue has been fixed as well. #server #asca #mastodon #gdpr

#aside and #tldr
Running a solo Mastodon instance? Here's how to keep it clean and #gdpr compliant:
– Disable link previews: DISABLE_FETCH_PREVIEWS=true
– Disable embeds: DISABLE_EMBED_PREVIEW=true
– Purge old PreviewCards via Rails console
– Avoid federated content
– Self-author everything
– Host locally, anonymize IPs
Respectful publishing, no third-party hosting
#asca #server #mastodon #selfhosted #germany

Correction, see #aside here https://mastodon.mariobreskic.de/@mario/115050605879471525

#aside and #tldr
Running a solo Mastodon instance? Here's how to keep it clean and #gdpr compliant:
– Disable link previews: DISABLE_FETCH_PREVIEWS=true
– Purge old PreviewCards via Rails console
– Avoid federated content
– Self-author everything
– Host locally, anonymize IPs
Respectful publishing, no third-party hosting
#asca #server #mastodon #selfhosted #germany

Mario Breskic (@[email protected])

#aside: the only line that is currently accurate and therefore needed is DISABLE_FETCH_PREVIEWS=true this change supersedes the previous setting, and I will take note of that in the tldr below. #server #asca #mastodon

Mario Breskicʼs Mastodon

There seems to be a bug implementing this in #mastodon #v4.4.3, so here is the workaround for disabling fetch previews by deleting preview_cards from the DB:

DELETE FROM preview_cards;

And blocking future inserts:

CREATE OR REPLACE FUNCTION block_preview_card_insert()
RETURNS trigger AS $$
BEGIN
-- Ignore insert
RETURN NULL;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER prevent_preview_card_insert
BEFORE INSERT ON preview_cards
FOR EACH ROW
EXECUTE FUNCTION block_preview_card_insert();

Testing this by posting a link to a good website: https://smartquotesforsmartpeople.com/
Smart Quotes for Smart People

Smart Quotes for Smart People

The workaround to #mastodon ignoring DISABLE_FETCH_PREVIEWS=true is a hard one, but I will keep an eye on this in the future.

Undoing the previous changes inside the db container, due to having found a more promisingly elegant solution:

DROP TRIGGER IF EXISTS prevent_preview_card_insert ON preview_cards;

DROP FUNCTION IF EXISTS block_preview_card_insert();

Fix:
adding this to my yaml file for my sidekiq and my web container:

command: >
bash -c "bundle exec rails runner 'class FetchLinkCardService; def call(*args); nil; end; end' &&
bundle exec puma -C config/puma.rb"

and sidekiq

command: >
bash -c "bundle exec rails runner 'class FetchLinkCardService; def call(*args); nil; end; end' &&
bundle exec sidekiq"

DISABLE_FETCH_PREVIEWS=true is being ignored in v4.4.3 in docker · Issue #35813 · mastodon/mastodon

Steps to reproduce the problem the environmental setting DISABLE_FETCH_PREVIEWS=true to .env or .yaml file should turn off the creation of PreviewCards for links in posts restarting the containers ...

GitHub

I need another test, as a sanity check:

https://de.wikipedia.org/

Wikipedia – Die freie Enzyklopädie

#PreviewCards are still being created, despite the patches.

Changed the #sidekiq patch to target the LinkCrawlWorker like so:

command: >
bash -c "bundle exec rails runner 'class FetchLinkCardService; def call(*args); nil; end; end' &&
bundle exec sidekiq"

Monoskop

Wiki for Arts and Studies

Your Outboard Brain Knows All

The line between where your memory leaves off and Google picks up is getting blurrier by the second. We're not committing as much to our gray matter these days, because electronic memory is so cheap and ubiquitous.

WIRED

And brute force I will now, since the Worker insists on working.

Inside the pgsql container:

CREATE OR REPLACE FUNCTION block_preview_card_insert()
RETURNS trigger AS $$
BEGIN

RAISE NOTICE 'PreviewCard insert blocked by DB trigger.';
RETURN NULL;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER prevent_preview_card_insert
BEFORE INSERT ON preview_cards
FOR EACH ROW
EXECUTE FUNCTION block_preview_card_insert();

And another test, which I hope completes this issue for me:

https://www.schulmanart.com/2017/03/how-to-price-art/

Fix is in place.
Contuining this Thread with regular content:
Just unassigned an SSL, and removed its domain from our VPS. I don’t think that over two years of not using the domain, that I will use it now.
This makes space for coming projects. #server #vps #ssl #certificates #asca
#aside: final test, linking to this and if no PreviewCard shows up, I have successfully #fixeditbybreaking #asca
https://www.domestika.org/es/courses/1457-home-office-trabajar-desde-casa-con-exito
Curso online - Teletrabajo: claves para trabajar desde casa (Foncho Ramírez-Corzo)

Aprende las herramientas básicas del teletrabajo para mejorar la productividad y desarrollarte profesionalmente

Domestika

Rebuilt the index post/persistent context “tool” for tumblr because threading there should not be done with reblogs.
Instead, I used a system I came up with in 2019, on Twitter: make a post containing a link I want to hook up to the persistent context scaffolding.

On tumblr, this means: make a post, then link to that post from its category/theme master post.
https://www.tumblr.com/codeandcanvas/792786451752468480/index-post #asca

Post by @codeandcanvas · 2 links

💬 0  🔁 0  ❤️ 1 · Index post · Instead of editing and then splitting apart previous posts, I will instead use the power of “knowing better upon reconsideration” to rebuild how my index post and link…

Tumblr
#aside just to cast an observation into html here: if commercial social media websites allow editing then they do not offer threading? Could this be? #asca
Settled for a better system on #tumblr I use an index post to link to my own hashtags I use on Code and Canvas. This is a smart solution because Tumblr is really good at grouping hashtags by blog, since only that blogs hashtags of that name will end up being displayed.
The thread is then visually prepared by tumblr natively, rather than me forcing it.
This seems fine to me. #asca

Will have to update my #linkwarden incrementally from v2.11.5 to v2.12.2.

I use linkwarden to store links from my blog articles via a custom wordpress plugin which I have hacked together using #chatgpt #asca

I am sure that doing the update incrementally makes more sense than jumping a few versions in between.

#aside I like these windows, and the progress bar looks cool
I have a theory about how tech works. So I think I should try out nostr before you do. Yes, you. You reading this. You are one of around 30 people who could possibly read this, so I sort of know who you are. And I am telling you that I think that I should dive into nostr before you do. Because, you see, I have a theory about how tech works.
I looked into nostr. I think I will just say that social media is dead, and that I will quit looking for new things in that field, because dead fields yield no crop

Restarted my side project of bringing the @medienfeed service to the fediverse.

A free info service about design and media for the #DACH region, which already runs well on other websites.

Played around with making #huginn act like a buffer for the posts, using a Scheduler Agent and a Delay Agent for the scheduling.

Added a truncate filter to the Formatting Agent so the process doesn’t get denied by exceeding xxx amount of characters.

@medienfeed Nach dem neuesten Update sorgte ich innerhalb aller #huginn Projekte für mehr Klarheit, indem ich eine neue #Taxonomie anwandte

Unter uns, was sich Firmen in puncto Nutzern einbilden, ist entsetzlich.
ChatGPT meinte neulich dazu:

‚If you participate meaningfully, you are infrastructure.
And infrastructure doesn’t get to say “nah.”‘

Ich beschließe diesen Mastodon-Server von L1 nach L2 zu verschieben. Das beinhaltet vor allem persönliche Funktionsänderungen für mich selbst, aber auch Änderungen in der Art und Weise, wie ich hier kommunizieren werde und über was ich schreiben werde.
L2 (ausgeschrieben Lagrange-Punkt Zwei) unterscheidet sich von L1 ganz deutlich, und vor allem aber auch von von L4 und L5 und dem möchte ich gerecht werden.
Die Positionierung auf L1 erwies sich als Fehler und wird über Wochen korrigiert.
Ich schicke gerade einen Ping an die Microblogging-Accounts in L4.
Ein Blick in meine IFTTT-Struktur und ich sehe, dass der Ping auch an diese Mastodon-Instanz hier gehen, was gut ist, denn da hängt sofort der ganze Rattenschwanz an vermischten Identitäten mit dran, also nicht nur die Migration von L1 nach Zwo, sondern auch die Loslösung LZwos von derartigen Durchreichungen.
Den Zugangspunkt/Webhook zu Mastodon behalte ich aber bis auf weiteres. L2 wird von Automatisierungen gelöst?
Und die Vermischung von L3 (sämtliche Backupsysteme leben hier, sowohl in der Abstraktion, als auch als Programme) mit L4 durch das Durchreichen meiner Social Wall (L3) nach Microblogs (L4) findet hier ein Ende. Ich habe diese Archivsysteme nicht aufgebaut, um mich (oder dich) ständig an sie erinnern zu müssen, sondern die Freiheit zu haben, zu vergessen, weil ich weiß, wo ich nachlesen kann, wenn ich mich erinnern muss.

Ich finde die Grundlage des Lagrange-Punktes 4 dabei reizvoll: nicht nur handelt es sich hierbei um Objekte, die unter einem viel stärkeren Einfluss von Massen stehen, die ich selbst nicht beeinflussen kann

(Social-Media-Websites sind im Allgemeinen nicht stabil, die Accounts, die man dort hat, können durch Trends, Performanz und Cliquen sehr schnell verschwinden, dem Tribalismus ist das zu schulden),

man lebt auch schlicht nicht auf Trojanern. Aber man kann Sonden dort absetzen. Das geht.

Ich experimentierte mit dem Veröffentlichen meines Lesematerials als Telemetrie. Der springende Punkt dabei ist, dass ich keine Kommentare, keine Leseempfehlungen, und auch keine Hashtags abgeben möchte: ich teile damit weder Geschmack, noch signalisiere ich damit Produktivität. Entsprechend habe ich mein System schon angepasst, jedoch bleibt dieser Ort, L2, davon verschont. Hier finden andere Dinge statt. Dinge wie dieses.

Ich überarbeite mein Modell: Social Media sind nicht L4 oder L5, sondern astronomische Zentauren.

Instabil.

We finally launched our version 2 of our info-service for media news in German! And I managed to fix a #freshrss and #huginn bug in our posting pipeline so that it works even better now. I feel like partying #asca #medienfeed
You can find our info-service on bluesky https://bsky.app/profile/medienfeed.bsky.socialand on threads https://www.threads.com/@medienfeed
Bluesky

Bluesky Social
yesterday I updated #mastodon to 4.4.5, today I am updating #linkwarden to 2.13.0
I think I’ll look into cleaning up the server storage next.
Wenn ich ein Buch über #grafikdesign zu lesen anfange, dann markiere ich es in Goodreads.
Dann wird es über #RSS, #huginn und #IFTTTT an meine Website und an meinen Twitter und Threads‑Account geschickt. Die letzten beiden verwenden ein eigenes Format, das ich in huginn erstelle, aber bei der Website fehlte bisher immer der Autorenname, also stand da ‚„Buchtitel“ von ‘ und danach kam nichts,
Ich hoffe, dass die neue Änderung das in Zukunft behebt.