Avatar
Alex Gleason
79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6
I create Fediverse software that empowers people online. I'm vegan btw. Note: If you have a question for me, please tag me publicly. This gives the opportunity for others to chime in, and bystanders to learn.

S3 is one-click to provision a bucket, but good luck actually configuring it if it's not really S3. DigitalOcean, Wasabi, Minio, are all different and would need separate instructions in the install guide for how to configure them. The S3 API itself is an insane overly-complex unmaintainable nightmare, only made better by the various libraries that obfuscate how bad it is.

IPFS looks like it's just one REST endpoint with auth. I think you can just apt-install it and grab a token. But I haven't actually gone through it myself yet, so I might be missing something.

IPFS is more resistant to censorship and resilient, in theory, assuming it will actually resolve your file. S3 is reliable with better scaling capabilities.

I'm going to play with ipfs a bit more and see how much it struggles.

So should I make Ditto upload to an s3 compatible bucket or IPFS? I kind of want one way of doing things for the first release before adding configurable media stuff.

S3 means you need to run Minio or a cloud service. Ipfs means you need to run a local ipfs gateway.

I'm not gonna support local file uploads. Ipfs would be the closest thing.

It's not a gateway yet, I'm just using a CID instead of plain sha256 so it could enable ipfs features later.

Here's what I've been working on the past few days: processing deletions.

https://gitlab.com/soapbox-pub/ditto/-/merge_requests/36

- Add a deleteFilters function to delete events by filter from the database

- Reworked the `tags` database table, renamed `value_1` to `value`, dropped `value_2`, `value_3`, added a foreign key on `event_id`

- Enabled autovacuum on the database.

- Automatically delete events older than 7 days. Fixes #63

- Broadcast deletions from local users to all known relays.

- Process deletion events through the pipeline, delete from our database if authorized.

- Protect against deleted events being resubmitted (not perfect).

- Improved the terminal output for migrations.

- Fix various bugs.

Deleting a deletion would potentially cause deletions to be deleted.

Fun facts about databases:

SQLite's VACUUM is like Postgres' VACUUM FULL.

SQLite's AUTOVACUUM is like Postgres' VACUUM.

Postgres' autovacuum has no SQLite equivalent.

This is what happens you do decentralized coding.

Hey fellas, name one thing

Does Mastodon do it in the background as it runs? Ditto is designed around this idea, it's not even a toggle.

https://fe.soapbox.pub

It's better if you run a development copy of ditto, the one on ditto.pub is unusable. Latest dev branch is almost usable.

I looked back at the blog post for Revolver. The thing it describes is Nostr. And making it work with the Fediverse is exactly what Ditto is doing.

The insecure manbaby Pete @ FSE, instead of building his failed Revolver backend, is apparently "trolling" Soapbox servers by wrapping all FSE posts in the .inline-quote compatibility class so the message won't be visible on Soapbox. I assumed he had just messed up his server due to incompetence, but apparently it was done on purpose out of jealousy and spite. Major :lose: and self-own.

nostr:note18w588v0wqs4v7244x2d4c4u2z4fpgzvks07dpnnl07s0t2ufl9jsa5rmkg

All it takes is confidence and a little Pikachu cologne.

Men simply don't know how to attract the ladies anymore.