Should you publish source? What if corpers steal it? Of course you should publish source. Property is theft.

Software is post-scarcity tooling. Strip the paywalls; underneath they have always been a new order of labor-saving device, one that can be infinitely copied and infinitely shared. Rich promises live in its possibility; promises the rich have betrayed, possibilities they have squandered.

Show thread

This is an ominous time. Napster is long dead. Aaron Swartz, too. Software is bad, but it doesn't have to be. From BitTorrent to Mastodon, distributed systems leverage the power of many to astonishing effect. Among archivists, pirates reign.

Show thread

These are strange times. The earth shifts beneath us. Can you taste the ash in the air, or the plastic in the water? The police are outside. The police are inside. The misery in your money and the meager choices it affords arrive from one spirit, our foe whose name is the kyriarchy, and it mutters of a wretched future. We will face it together. Together we are strong.

Do not build a browser.

Show thread

sorry these are all excerpts from an essay on comparative software architectures

Show thread

Self-hosting makes a decent demo but in the production case an application must support many users, even when many users are one person or one user is many persons, for some of us are not sysadmins but inevitably some of us must be.

Show thread
Follow

ok nerds here is a draft of this essay

> # Comparative Considerations Regarding Distributed Software Architectures

> Together we are strong. Knowing this, how can we write good software?

gist.github.com/garbados/cd3d5

i drafted this essay because i often wonder about what i should be building or working on. i have severe mental issues that limit how much coherence i have available, and in strange times like this i feel like i need all of it just to survive. but sometimes i’ve got the energy to make a little difference, and i want to know where to make that difference. what to work on as a volunteer can be a daunting choice.

this essay is just the beginning of explaining and exploring architectural tradeoffs in distributed software. i’m not an expert, just an adamant hedge witch, but i’ve seen enough gilded towers gone up in smoke and built enough towers besides to have opinions. maybe they’re bad opinions — i’m always happy to be disabused of half-baked ideas — but nevertheless they’re opinions i forget. i want to remember what i think as counsel for what i do, but it’s hard when you only sometimes know what’s real.

anyway thanks for reading. i’ll post a final draft on my blog.

Show thread

the biggest section still missing from the essay is this: avoid software if you can, and instead invest time and knowledge and resources in the communities that sustain you. it’s well and good if you can afford to spend five years making a software platform with a novel protocol to do something slightly more efficiently, but if you can give your community the same outcome by strapping together physical trashware, i’d say go with trashware. we can’t all be sysadmins but there’s no architecture that doesn’t need them, so become if you can the sysadmin your community needs.

be the one who can say “need a seedbox? i can help you with that”

Show thread

@garbados holy cow this is as much art as it is a manifesto on software principles!

@garbados I got a few questions if you don't mind taking them (don't feel obligated):

- on chain vs federation: I don't understand how blockchain has a single point of failure either?
- on fighting the browser: would writing stuff, say, over raw TCP or Websockets be okay?
- on auth: would an identity be like an auth token with certain permissions and an associated device ID or something?

@restioson i'm very sleepy so i'm going to follow up with answers in the morning. these are good questions

@restioson @garbados On chains: The point is (I think) that there is a single database, a shared source of Truth, which a) needs to be kept secure through some means (e.g. economic incentives, contributing to capitalism), and b) gives no room for alternative views.

Federation gives rules for how to converse and share, and requires/allows you the server operator to make your own choices on who to trust and why and how much.

@restioson

- blockchain systems are not all bad, a point i want to make in finer detail in a future draft, but it is more specialized than is generally understood. consider a package manager that uses a chain as a project registry. who can take down malware? who can deal with name-squatting? who can resolve disputes between maintainers? the answer is no one, and that makes it inappropriate for the problem. chains introduce a brittleness that marketing conceals; their monetization is a cheap trick in a trustless, webless future.
- websockets and tcp are great when they’re appropriate, but i find http better in the general case because 1) you can look at data right in your browser! 2) tooling for http is often more available and accessible than for lower-level protocols, which tend to approach arcana.
- an identity might be like an account on a masto instance, or the “identity” you create to allow apps access to your masto data. i left out “capabilities” but i’ll include them later.

@garbados ignoring the way it reads, doesn't quite flow, covers identity, authorisation, connection.
But not quite holistically, the why. Chain vs fedi covers a bit about single point of failure.

@tqft this is great feedback, i appreciate it

@garbados

This is an ominous time.
Napster is long dead.
Aaron Swartz, too.
Software is bad,
but it doesn't have to

LOL

@garbados omg this rocks. are you okay with me sharing it in private chats?

(also want to share it on ssb later, but i'll wait until it's not a draft and then ask again!!)

@cblgh sure! but it’s a VERY rough draft, so keep that in mind 😅 any feedback is appreciated too

@garbados excellent, as always 😁

I kinda want to extend "From BitTorrent to Mastodon" to mention YaCy, 'cause you start with the second letter of the alphabet and only make it to the middle 😆

Also I tripped over "Napster is dead" because there's still a thing by that name today that traces lineage back to the original; but it's just a corporate music streaming service now, barely a shadow of its former self.

Anyway I love it. Even just the advice on auth{n,z} by itself is super useful, I've been meaning to dig up trustworthy sources for exactly those questions.

@jamey yacy looks so cool! can’t wait to set up a node

@garbados @jamey In my experience YaCy is super unnecessarily complicated to administer and makes a lot of weird interface and defaults choices, so be prepared for at least some modicum of annoyance ;)

(I use it for an internal crawler at work though, so some of my frustrations may come from that specific use-case. But I don't think all do!)

@keithzg @garbados I mostly liked it in this case for the position of its name in alphabetical order. I've never tried actually using it. 😅 So I'm super interested to hear what you've just said about it!

@jamey @keithzg a distributed search engine like this is something i’ve thought about a lot. i’m excited to look into it more 😯

@garbados @jamey It certainly does seem to work! It just suffers interface-wise from the classic problem of clearly the developers being too familiar with the idiosyncrasies and underlying technical implementations to be able to see how non-obvious many things are to a novice user of it, heh.

@garbados Codes should be lovely. Users should more often be able to easily crack the hood and fiddle with it, or rather not need to, but admire and learn from it in an intelligible and enchanting way. Whether a sausage factory code or an aesthetic garden code, I intuit this could be made friendlier.

@garbados saving this for when I have some time to savor it

Sign in to participate in the conversation
Toot.Cat

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!