I wonder whether they are aware of the ForgeFed project?
I wonder whether they are aware of the ForgeFed project?
Thought that’s already supported? e.g. https://gitlab.com/diasporg/diaspora.atom
Oh wow thanks! :) One program syncs my home Mastodon timeline, with all replies, to a Maildir. Dovecot serves that over IMAP. Sending involves a custom SMTP server which reads the mail message and creates a post from it.
For Mastodon it was all about converting statuses (toots? Posts?) into RFC 5322 messages. Using the status’ ID as Message-Id
in the message header is handy. Mail clients do the heavy lifting of rendering threads thankfully!
Ha good eyes! :) I have basic receive-only working with Lemmy using a virtual file system interface I wrote (https://pkg.go.dev/olowe.co/lemmy). Just realised we actually spoke about this a while ago haha (https://lemmy.sdf.org/post/1035382 )
But synchronising to disk is super inefficient: too many API calls. Should subscribe using ActivityPub proper and store updates received as RFC 5322 messages.
From there we could serve the messages via NNTP. Then, finally, we could use nntpfs(4)
AM radio paywall? Where?
I suppose there’s positive, then there’s “totally changed how I work”. It’s a big call. Maybe a real-world example would make it sound more believable: “before ChatGPT, I would have to sift through stacks of outdated VB6 documentation on $task. This took up most of the day. Yesterday I used a LLM to get a basic implementation of $task then I tidied it up and installed it within an hour.”
Devil’s advocate: what about the posts and comments I’ve made via Lemmy? They could be presented as files (like email). I could read, write and remove them. I could edit my comments with Microsoft Word or ed
. I could run some machine learning processing on all my comments in a Docker container using just a bind mount like you mentioned. I could back them up to Backblaze B2 or a USB drive with the same tools.
But I can’t. They’re in a PostgreSQL database (which I can’t query), accessible via a HTTP API. I’ve actually written a Lemmy API client, then used that to make a read-only file system interface to Lemmy (https://pkg.go.dev/olowe.co/lemmy). Using that file system I’ve written an app to access Lemmy from a weird text editing environment I use (developed at least 30 years before Lemmy was even written!): https://lemmy.sdf.org/post/1035382
More ideas if you’re interested at https://upspin.io
They even have a term for this — local-first software — and point to apps like Obsidian as proof that it can work.
This touches on something that I’ve been struggling to put into words. I feel like some of the ideas that led to the separation of files and applications to manipulate them have been forgotten.
There’s also a common misunderstanding that files only exist in blocks on physical devices. But files are more of an interface to data than an actual “thing”. I want to present my files - wherever they may be - to all sorts of different applications which let me interact with them in different ways.
Only some self-hosted software grants us this portability.
I wonder if their compositors would be laggy and bloated with features, too?
This was the provider I went with after self-hosting my mail for 7+ years on an OpenBSD VPS. I feel like Migadu is an honest and good-value service.
Each time your browser makes a request (such as updating the graphs), it’s submitting a new DNS query each time.
That would be surprising; most HTTP clients reuse network connections and connections are deliberately kept open to reduce the overhead of reopening a connection (including latency in doing a DNS lookup).
Then again, I’ve seen worse ;)
We can never know exactly. For me I always think about the (incidental) complexity of these huge apps like Instagram.
Somebody mentioned the phone overheating when watching Reels - those short videos. Here’s a made-up example (but I’ve written some software for video streaming services)…
Those videos are pretty short, and some people skip the clip even after less than 1 second. Instagram want that next video to be playing instantly (gotta get that dopamine hit ASAP!). A strategy you could take is have the app load the next, say, 5 possible videos in the background before you’ve even seen them. When the user swipes, that video is already playing. To make this even faster we could execute some recommendation decisions on-device rather than on some servers (over a relatively much slower 4G connection).
With all this complexity comes greater chance of some unexpected behaviour. Instead of loading 5 videos, maybe we accidentally load 100 and never clean up the old ones. Maybe after an OS update we need to change the way we mark a task as low priority.
Cool insight - thanks! All points even more to bad planning by the Instagram team as you said originally.
I guess I wouldn’t be particularly surprised. Apple put shitloads of R&D into power-efficiency. Can’t imagine the culture at Instagram/Meta is like that.
Slightly off-topic: I’m not too familiar with FreeBSD (I use OpenBSD), but others may be interested to know you may be able to configure wireguard interfaces without installing any packages.
It probably just involves running some ifconfig
commands at boot via some entries in /etc/rc.conf
. See https://docs.freebsd.org/en/books/handbook/network/
Yeah I’ve always found that AllowedIPs
name a little bit misleading. It is mentioned in the manpage:
A comma-separated list of IP (v4 or v6) addresses with CIDR masks from which incoming traffic for this peer is allowed and to which outgoing traffic for this peer is directed.
But I think it’s a little funny how setting AllowedIPs
also configures how packets are routed. I dunno.
You could start troubleshooting by manually executing DNS queries from mainDesktop.lan
, and watching the DNS server logs.
Not sure what OS the desktop is running, but assuming Windows you could run:
nslookup -type=A pihole.example.duckdns.org.
On macOS/Linux/etc.:
dig -t A pihole.example.duckdns.org.
This could rule out behaviour from the proxy or applications.
I can imagine it’s a collection of bugs where it’s sorta the OS’ problem but sorta the application’s problem. It probably reached a stalemate. Nobody really wanted to spend the extra engineering effort; maybe it would all have to be undone then rewritten again to get something out in time.
Does ActivityPub even share the user’s IP address with other nodes in the network?
No this is not in the specification.
A malicious instance could in theory distribute this information but it would be non-standard. Of the 2 systems I’ve studied - Mastodon and Lemmy - neither do this.
Are they talking about your IP address or the service’s?
In this scenario they would be talking about the IP address(es) of the services.
Depends how you look at it! Here’s me accessing Mastodon and the fediverse via email: https://lemmy.world/post/11020167 I’ve written a a couple more prototypes to connect one to the other. If anyone is interested I could write up more about how it works or do a more public demo