Lots to do yet but the new Kitten¹ settings section (that’s common to all Kitten apps / Small Web places) is coming along nicely. (With the general style/layout borrowed from Domain².)
(It’s currently a single page and I’m breaking it up into multiple ones because it’s time.)
Once I’m done with this I should really record a screencast of Kitten’s new backup and restore feature/data portability.
"Our online spaces are not ecosystems, though tech firms love that word. They’re plantations; highly concentrated and controlled environments, closer kin to the industrial farming of the cattle feedlot or battery chicken farms that madden the creatures trapped within." https://www.noemamag.com/we-need-to-rewild-the-internet/
My friend Evan Henshaw-Plath wrote recently about some concerns with ActivityPub. I want to go over his concerns one by one and give some assessment of how accurate and important I think they are. Rabble’s words in italics; my responses in just normal text.
User identities are tied to a server. This is only partially true; your user identity is tied to a domain, not a server. But most servers only handle one domain, and most people don’t move their domains between servers. We have a section on domain portability between servers on the ActivityPub Data Portability report.
Using domains is also how much of the Internet works. Email addresses are tied to a domain; Web sites are tied to a domain. You can move the domain between different implementations transparently. It’s a really robust architecture that has stood the test of time for almost 50 years.
Users can’t migrate between servers. Partially true. Rabble covers the essentials; you can move followers and not much else. It’s also possible to move your “stuff” between identities; that’s most of what our Data Portability task force is working on.
On a single server, it is impossible to change your username! Somewhat true. ActivityPub identities are URLs like https://social.example/user/vtles1XgZkPUEulBsFmRX . That identity URL is immutable; you can’t change it. Some implementations include a username in that url, like https://other.example/user/evanp. With that kind of server software, it’s true, you can’t change the username.
Also, we use a standard called Webfinger that maps an identity string like username@domain to an URL. You can read about it in the ActivityPub Webfinger report. Some servers use that string, instead of the ActivityPub ID, as the unique ID for a remote user. That’s discouraged, but if someone does that, changing your user ID will make you no longer findable for those other servers. I think as we stabilize our use of WebFinger, some of these usages are going to get better.
Fediverse servers have total control over your account and data. True. This is the “federation” part of the fediverse. It’s how Web sites and email work. Don’t use a fediverse server without a good trust relationship with your server admin; ideally someone you have a business relationship with, or your employer, or your university. Same goes for email!
It also means that if you control your own server, you have total control over your account and data. That’s a feature, not a bug.
Another option is using a cooperative server, like cosocial.ca or social.coop. A cooperative is a legal structure in which members pay for and manage their own service. I think cooperatives are awesome.
The fediverse is a network of fiefdoms, each server admin having total control over their users. This seems about the same as the previous statement, but OK. I think the key strength of the fediverse here is that we can have dozens of different models for server governance — coops, enterprises, city libraries, family servers, individual servers. That level of experimentation is a feature, not a bug. Governance is not baked into the protocol.
Each kind of fediverse server is isolated. This one is just plain wrong. ActivityPub is based on an open data standard called Activity Streams 2.0 (AS2) which models social data. There is an extensive standard vocabulary that can represent Web content like text, images, video and audio, and the social graph, but also well-known social interactions like check-ins, events, and groups. More importantly, Activity Streams 2.0 is extensible, meaning you can add properties to existing types, or whole new types of objects or interactions. And every ActivityPub server is built to handle AS2.
What is true is that we have had a lot of servers that only handle a subset of the AS2 vocabulary, and reject content they don’t know how to handle. This is mostly due to mimicking the siloed social networks; we’ve gotten used to thinking of different social networks for different kinds of content. I think this is changing, especially as new kinds of content hit the network. Developers are just learning how to effectively handle extension content with fallback representations. I look forward to this improving over time.
The fediverse has no privacy; there is no system of end-to-end encrypted messaging. The first part is false; you can mark your posts as followers-only, or directed to a single person, or a group of people. Servers enforce this privacy. You can also mark that you don’t want your public posts to be indexable or your public account to be discoverable.
However, the second part is true; we don’t have end-to-end encryption. So, if you send a private message to someone on another server, you message can be read by both your admin and their admin. It’s stored in the clear on both servers. This is also how email works, as well as most direct messages on commercial social networks. However, it’s something worth working on. I’ve sketched out an architecture for end-to-end encryption over ActivityPub, and I’ve got a proposal out to work on it for Summer of Protocols. I think it will be good to level this up!
The fediverse has no system for micropayments. This is true. The fediverse is also first and foremost for social networking — connecting to friends, family, colleagues and neighbours. Most of these interactions are not mediated by payment; in fact, payment cheapens those interactions.
However, there are other relationship types on the fediverse — supporting creators, journalists, or publishers. The main way to do this today is with paid subscriptions; for example, you can subscribe to evanplus@prodromou.pub to get access to premium content I publish. You have to send me US$5 out-of-band or I won’t approve the follow; that’s the state of play right now on the fediverse.
I think in-band payments are kind of cool for this kind of work, as well as for marketplaces — buying and selling services or goods over the fediverse. I think the easiest structure is adding payment URLs like a PayPal account, or blockchain wallets like a Bitcoin Lightning address.
Lastly, and most importantly for me, the culture of fediverse server admins and developers is vindictive. I don’t think this is the case; I love the culture of the fediverse, which is playful, conversational, and collaborative.
I think there are a plenty of good points in Rabble’s critique, but there’s one way that I think he’s extremely wrong. There is still a lot to do in the ActivityPub ecosystem, but we have the architecture and extension mechanisms to make them possible. It’s totally not required to go start a whole new social protocol to build those things in from scratch. In fact, it’s a real mistake; it’s far better to work from the existing standard and build on it. Open standards like ActivityPub have a legitimacy that ad hoc systems like Nostr can never have, and it’s the reason that there is so much interesting development going on in the ActivityPub world.
Coming soon: it’s going to be trivial to deploy a different app on your Small Web server. Useful if you’re a dev and you’re playing around with different apps.
(Also, notice the speed at which deployment happens. I’m one step away from implementing this in Domain using pre-warmed Kitten instances – called toasty kittens – thereby bringing the time it takes to deploy your own Small Web place down to a handful of seconds.)
… and why I’ve had to build so much infrastructure in the past few years. It wasn’t just to reinvent the wheel but to have control over every aspect of the experience.
Well, it’s getting closer to being a reality and I’m really excited to hopefully finally be able to share what will be the culmination of the last decade of my work with more of you starting this year.
It now takes ~10 seconds to set up your own Small Web¹ place using Domain².
This was closer to one-minute last week.
Been working towards this for six years… That’s ~10 seconds to get up and running with your own Small Web place at your own VPS server and at your own domain name.
Can owning your own place on the Web be as simple as setting up a Facebook account? Yes. Likely simpler. And this brings us one step closer to that goal.
Right, I’m back to focussing on Domain* now that another round of dev is complete on Kitten** and, two years after I originally asked the question: does anyone know of a comparable service to Hetzner Cloud (API, affordable, very quick server setup, VPS) that supports CoreOS?
I still can’t find any. And my attempts to get Hetzner to support it have failed (mostly due to lack of interest on Fedora’s side) 🤷♂️
Looks like Vultr has it but it’s too expensive. We’d have to charge at least €25/mo instead of ~€10/mo for a Small Web site with Hetzner to make the same ~€5/mo to try and make Small Technology Foundation sustainable.
And I really want Small Web sites to be affordable so folks can experiment and play with them.
Right, I’ll leave you with a cute bunny someone drew (naughty cute bunny artist did not rewind though, tsk, tsk). Back to working on Kitten and Domain tomorrow so your timelines will be blissfully empty of pixel sketches :)
’night ’night all – and thank you to all the folks who contributed pixels to our shared ether of Draw Together over the weekend for restoring my faith in humanity a bit :)
Gründer wissen es bereits: Ein #Startup braucht die richtige Domain, das ideale Webhosting und ein effektives Toolkit. Doch wo soll man anfangen? Unser neuester Blogartikel hält die Antworten bereit: jetzt lesen!
On another front, I am now in the process of setting up our new #thai#company together with my wife. The #lawyer is already at work. 🥰️
The name is set, the #logo and a minimal #corporate design are made (I used an #opensource font and did all the work in #inkscape), the #domain is bought and set up, the #website is in the works (with #grav) and our thai #friends are on board as shareholders as well. 😃️
Unfortunately I can't share the details yet, but I'm still really excited. 🥳️
KI-gestützte Phishing-Angriffe verändern die Landschaft der Cyber-Sicherheit radikal. Erfahren Sie hier, wie Sie den Betrügern trotzdem einen Schritt voraus bleiben. 🔗 https://bit.ly/3UTsTRC
It's dark and miserable outside, on account of it being rainy ⛈ in my little corner of Canada, but in this little corner of the fediverse, there are some definitely exciting things happening!
Today marks the day that our community forum connects to the fediverse. We've updated the code and switched over to the activitypub branch, and enabled federation on two categories, the NodeBB Development category (which is read-only for everybody but NodeBB staff), and the Testing Ground, which is meant for content of no consequence.
It also means that henceforth any bugs discovered are public and I'd be on the hook to fix them post-haste 😅
We're doing this gradual rollout not only because I'm quite excited to share what I've achieved so far, but also because I'm developing in public and it's important to gather feedback as early on as feasible.
It also means that — barring some crazy regression causing me to roll everything back — I'll be providing development updates on this account instead of my personal (@devnull).
So, what works, and what doesn't?
User-specific topic lists and the global topic list
If you navigate to /world, you'll be brought to your custom topic list of remote content, of which there won't be any unless you start following some users
Bi-directional user follows
You are able to follow a remote user from within NodeBB by navigating to their profile. Doing so at this time is rather difficult, see below.
Likewise, people outside of NodeBB can follow you from sites like Mastodon, Pixelfed, kbin, etc. simply by searching for your username.
Your "handle" is your username followed by @community.nodebb.org.
Bi-directional federation of content
Topic and replies posted to this category and the testing ground will be automatically propagated out to your followers (if any), and responses to that content from outside of NodeBB will show up here.
Propagation of likes to the local NodeBB
Likewise, if your post is liked by someone outside of NodeBB, it will be reflected in the topic
Announces (aka "Boosts")
If your post is "boosted" or shared by someone outside of NodeBB, there will be a notification within the topic.
No update would be complete without a list of what doesn't work, so here goes...
Finding remote content and users
Discoverability of remote content is currently quite limited. You are not able to search for content outside of the local NodeBB, but this will be worked on in due course.
My Mastodon instance, for example, has the local domain set to vivaldi.net, but the web domain is set to social.vivaldi.net, so my handle looks like @\AltCode@vivaldi.net (or at least it does when viewed from remote servers that respect this configuration).
Do you have any suggestions on where to easily sell a domain? 💡
It would be due in a couple of days. 🗓️
I have found many sites online, but I would like some advice from someone who has actually sold their domain successfully. 🙏 #domain#monetize
As an "independent source" it was used by politicians, students, and many everyday people alike.
It was used for #publications & #documentaries, and triggered some inquires where I assisted in shaping national & international political statements. It's been fun & fulfilling 🙂
In today's siloed internet its usefulness is gone. No more days with 5.000 unique visitors & multiple email inquires.
Overfishing.org contained both an introduction to the issue of #overfishing, and #teaching resources. See attached some evergreens (low resolution, DM me for high res).
The demise of the queer.af domain (that just happened to follow a conversation I had with my wife on the weekend, who wanted a new domain name for a new business she wants to set up) made me write up some thoughts on Domain Names:
It's pathetic that the domain name for X is STILL called 'twitter'. It's very unlikely that Musk would be able to claim a domain name that's simply named 'X'
I'm considering creating another personal #website, but for more formal things like writing articles and programming updates, as opposed to the usual #blog stuff I have on my #Neocities site. It'll also have a simpler design, optimised more for reading than having a fun appearance.
I'll most likely buy a domain from #Namecheap; but Neocities requires a subscription in order to use a custom #domain, so does anyone have any suggestions for cheap or free web #hosting that I could use?