This commit is contained in:
notplants 2023-05-31 12:14:57 +02:00
parent 3309ef1cbf
commit be5ba504e9
23 changed files with 5434 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.idea

687
cblgh-backup.html Normal file
View File

@ -0,0 +1,687 @@
#An Interview With @cblgh
*Table Of Contents*
<div class="table-of-contents">
I: COMPOSABLE SOLIDARITY INFRASTRUCTURE<br/>
II: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE<br/>
III: LIEU, CERCA, FORUMS & SEARCH<br/>
IV: FIVE MINUTES ABOUT THE INTERNET<br/>
V: CABAL & P2P DELETE<br/>
VI: CLOSING, LOCAL TRANSCRIPTION
</div>
==================================================
I: COMPOSABLE SOLIDARITY INFRASTRUCTURE
max: do you want to speak about some visions you're having?
cblgh: Do you want to narrow it down? I've got a lot of thoughts.
max: No, I don't feel like narrowing it down. It's whatever is most alive for you.
cblgh: Okay, interesting.
Yeah, so, one thing that's been on my mind for a year at least and that I've been starting to approach people about, is this idea of reusable and composable infrastructural components, in particular for peer-to-peer systems.
So it's like, we have these different projects, right? And this is not necessarily a take that a lot of people agree with, but personally I don't really like interoperability that much because we are underfunded as hell, you know? It's like, so if someone's going to tell me, well, now you need to support SSB in cabal as well, that just doesn't make sense for a lot of reasons because the contexts are different, right? Cabal is very much IRC style, whereas SSB clients today are more forum style. So the general viewing contexts are different.
So where can we collaborate instead of just like, you know, having literally the same protocol? And where I think it makes sense is on the infrastructure level where like, okay, we have this protocol, you have that protocol, this third group has another protocol, but we all need to reach each other, right? We have this notion of we want to find peers. Like, can we somehow collaborate on that level of things? Because that's a very, in some sense, permissionless level of collaborating. We don't need to change our protocol just because we're using the same infrastructure.
And it kind of makes it less competitive in some sense, it becomes way more collaborative. So that's kind of what I've been thinking about, like, okay, how, what parts of the stack, like what exists today that we could use in multiple projects? And that's kind of an ongoing research project right now for me.
Like I'm exploring this a little bit with the p2panda team, where we're doing small experiments on this kind of old technology called I2P, which is like tor, but it's way more kind of peer-to-peer oriented, whereas tor is kind of more client server in its architecture. We're doing small experiments there to kind of get a feel for it. Like, can we create a website and we can visit it like over like very unconfigured devices? And yes, we could. That was really cool. A person in UK on a mobile network could visit my website thats being hosted on i2p on a computer that was completely unconfigured with regards to firewalls and stuff. So that was super cool.
So yeah, that's kind of like exploring that general area of what infrastructure do we have today? What infrastructure could we kind of collectively manage you know, and could collectively use and what could that collaboration, what kind of shapes can that take for example? We could have maybe an open, if we do find a very good component that's usable in many projects, we could have an open collective for example, to fund all of the engagement for that, whereas some of it would go for server costs, but also just for stuff like, you know, like an hourly wage for everything that's relating to the infrastructure bits.
max: I like this idea, but what are some of the possibl<br/>
functionality for components that come to min<br/>
that could be shared between projects<br/>
So you said like peer discovery or something?
cblgh: Yeah, so we'd just be basically, you know, the underlying DHT. So yeah, it's peer discovery<br/>
It's like, so we have a peer-to-peer system, which means these peers need to find each other somehow and they need to find each other in some way that's resilient across, you know, regular, unconfigured computers. So are there components that exist that work in multiple programming languages? Which is a big barrier. For example, Hyperswarm today is very much Node-js only. It's been trying to be ported to Rust for a long time, which means it's very difficult to port to different languages. So yeah, it's for sure basically just like, how can these peers find each other? And then once they've found each other, you just do your application-level concerns.
max: Are there any other composable pieces that come to mind?
cblgh: - I mean, for me, it's mainly that because it's the biggest thing.
max: it breaks away from the current paradig<br/>
because it's like something smaller than most of the protocols are like the protocols are usuall<br/>
including more than just that they like include that plus other stuff yeah
cblgh: each protocol kind of makes their own decision on that and it would be great if we could find something that works for everyone or for many actors rather than just one.
==================================================
II: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE
max: I hear a fair amount of people talk about software governance<br/>
but I somehow feel like I haven't had first-hand experience to see when it goes wrong.
Have you ever had an experience where you were using something or contributing to something<br/>
and then it went in a direction that you didn't want or was like counter to the aims of som<br/>
group of users or contributors?
cblgh: Yeah I've had some -- I wouldn't put it so harshly, but in some senses I was making a lot of dat stuff, using this kind of foundational thing called hypercore and append-only logs, so that's what that was all built around.
So there was a very vibrant community of people, -- artists, software engineers, interested onlookers -- all making stuff using Hypercore and Dat and Beaker Browser. And that project kind of took a turn away from the community in some senses, where the lead developer, who's kind of written basically all of the foundational structure, decided to go a different path, away from making it community managed to instead being more managed by, or making more explicit, this foundational structure. hypercore is managed by the devs, which is good that it became very clear, because people were becoming confused on some decisions and stuff like that.
But you know, Beaker browser is no longer working, right? And all of the things that people built using Beaker browser are also in a sense inaccessible. And that's one example of where that kind of governance thing did not really go in the way of the community, but rather the way of the devs.
So it kind of was rebranded from that to Hypercore Protocol. And then more recently, its been rebranded to the holepunch platform, which has become VC funded in a way, but really it's more like a cryptocurrency funded thing; so there's a big Bitcoin backing in the company. It's very much taken a different path than I think a lot of people would have wanted.
max: Thanks for that story. That brought up a bunch of questions for me<br/>
One is what is success or failure for governanc<br/>
or sustainability of an open source project?
I have a first impulse, which is like<br/>
if it doesn't last forever, it's a failure.
But what are the really lasting open source project<br/>
we can look to<br/>
Are there even any<br/>
is it Linux or something else?
And then I had a second impulse, which was like<br/>
that's a little silly -- it's not really like things need to last forever<br/>
To be worthwhile, there's certainl<br/>
projects which were experimental and valuable.
Maybe Beaker Browser might be one of those where it inspired a lot of peopl<br/>
and maybe influenced the discourse and future projects that are going to be made.
And sure, it's a bummer that some of the things people mad<br/>
on Beaker are going to be unmaintained or abandoned<br/>
But it would also seem extreme to say this project was a failure.
cblgh: for sure, it all depends on what you are evaluating it along. One thing Beaker Browser could have done instead of labeling the project defunct, is at an earlier stage, they could have maybe tried to find someone in the community that was excited to receive the stewardship and take it in a different direction.
max: There could have been a more active engagement with that instead of just saying this is over.
cblgh: But it's also very difficult and intertwined with burning out and stuff. I'm not sure Paul burnt out on it<br/>
but I certainly think he worked very, very hard for very long. And now it's defunct. It's very hard to do a handoff when you're already struggling to keep your head above water in a way, you know?
max: Yeah, that might not be the most energizing part of the project.
cblgh: - so in some senses, if it's a success, then when you realize it's a success, you have to start preparing, like "the will" for the project while you have the energy to do that.
max: especially with a project that big<br/>
I would imagine there's someone who would be interested<br/>
even if it was just like a college student<br/>
for someone who wants to develop their skills and make a resume or something<br/>
maybe being able to take on the responsibilit<br/>
for such a big project is kind of an appealing concept in some ways.
cblgh: Yeah, and one of the benefits of this software is there's not this big expensive cloud infrastructure you need to keep running.
max: That's true. So it's not like it turns off one day<br/>
It just needs someone in their room with an internet connection still working on it.
cblgh: You could basically have had Beaker Browser as it was and just keep it on long-term support where people were just using the things that were already there, and maybe wishing for better tools. But if it could have just been kept alive, then I think that would have been a vibrant small corner instead of having to pursue the path of existing alongside Mozilla or Chromium.
max: The other project I've been thinking abou<br/>
on this topic is the Fedivers<br/>
because there's now this interest from Mediu<br/>
and even Meta to use ActivityPub<br/>
And we'll see what happens in the next years<br/>
But to me, it seems like one possible outcom<br/>
is that it actually gets a lot of adoption<br/>
And I've even heard the term, the corpoverse, thrown around.
And I was thinking, what would that mean<br/>
This is all a bit speculative, because it could also no<br/>
happen<br/>
But I was like, wow, that would be interestin<br/>
if this kind of slow burning project of anarchist<br/>
and volunteers eventually achieve such large-scale influence and even if th<br/>
original people setting up servers and stuff were kind of more at this lik<br/>
experimental scale - and so I feel like maybe that is how thing<br/>
sometimes happen - that an experiment ends up having a big influenc<br/>
not because the people doing the experiment try to make it have a bi<br/>
influence but because it eventually influences large-scale actors to do something different.
cblgh: Yeah, that's one of the rare occasions where scrappy people can kind of choose the fork in the future. It also brings to mind other examples -- I mean this has been going on for as long as there have been Bohemians and artists right? This is like gentrification by another name. Oh this was successful, this was a cool place to be. I guess we gotta exist there to be cool and extract the value.
max: Yea its an interesting analogy. I guess the other question though is because some people are critical of the corpoverse, asking is it gonna even have any of the good parts of the old fediverse, and my optimistic vision of it is that it does maintain the good parts. maybe it's not as pure as the original<br/>
the non-corpo fediverse, but it wouldn't be just like gentrification because with gentrification it sometimes feels like here's a place where some creative interesting things were happening and then once it reaches the commercialized stage it actually doesn't really have anything particularly in common with what it used to be like, it's just an extractive process that happens on top of something else. And also going back to how we started this conversation, "the internet" just popped into my head as a successful open source project. I think this might be what's actually getting me to research this more, because I feel like th<br/>
internet is weirdly one that worked. Obviously there's lots of shit things that have been done on top of the internet or with the internet, but the core protocols themselves seem lik<br/>
they were somehow like a fairly positive example of how open source can go.
cblgh: Yeah, I think so. Like sometimes you have these like runoff successes that the rest of the commercial world just has to cope with. Like I'm sure big companies would have rather had, you know, like what if we had Facebook, internet, where I just pay a monthly subscription to access like the zucknet right?
max: Totally yeah<br/>
If a corporation had done that from beginning it could have been like that<br/>
There could be an advertisement embedded into every packet.
cblgh: Yeah. You're doing like packet inspection and suddenly it's just like, "have you heard about this new movie?"
max: Literally, it could be like that but it's not<br/>
Wow, that just made me excited to have that clarity<br/>
So yeah, I would be hopeful that the mastodon or whatever protocols, even if they were t<br/>
eventually get success, could have that same capacity as the current internet where i<br/>
would be like, of course, these corporations would love to have their advertisements embedde<br/>
in every little stream, but like, it's just not the way the protocol works<br/>
So it's like you can't really do that.
cblgh: Yeah, I can imagine that. And then in some ways, you know, from like an ecosystem perspective, this is just something I've been learning like the last year of, you know, you have these, and I'm not sure what they're called, I think like forerunner frontier species that enter a degraded ecosystem, and they're the ones that are hardy enough to grow there. And when they grow, they kind of create the circumstances for other less hardy things to grow, which will eventually actually supplant these frontier species because it grows longer and stronger and start shading them out. And I think that really happens a lot with technologies that kind of tangent this social realm as well where you have these hardy, and I don't really like the term frontier because it has a lot of baggage, but yeah, like these hardy initiative takers or whatever that are willing to come into a new space and experiment.
And typically it's a lot of marginalized communities, are the ones who will first embrace something new<br/>
And they kind of work it out, you know, and they figure out what works, what doesn't work, and they start making it cool. But when it kind of becomes more popular more commercialized, you know, they might not feel comfortable there anymore. So it's an interesting dynamic and I'm not necessarily being very doomerism about Fediverse. I'm more like just observing dynamics. Just from how the technology works, I would think that you can still have you know, like a very alternative subset of the Fediverse that just like de-federates from everything except their friends.
max: Yeah, I would optimistically believe so as well.
cblgh: But I think we would still have a different vibe and people wouldn't get, you know, very radical or interesting minded people probably wouldn't even give it a chance if it was like as commonly accepted as Facebook or whatever. I don't know. I think it's interesting dynamic with these like groups that come in to a new space and experiment and then are eventually just like you know in some senses by the dynamics kind of crowded out.
max: Yeah, I like your comparison with the ecosyste<br/>
waves of succession. You know like intuitively I feel still like I don't really know how all thi<br/>
stuff works. I feel almost like my stomach dropping sometimes when I think about it<br/>
just feeling like its a mystery, but it's at least a nice possible model. I'm definitely not going to say that's not how it works. And it's a nice alternative that goes beyond, oh, you just d<br/>
small things or small things that don't matter or big things that make a difference<br/>
and it provides a different possible paradigm.
Because yeah, I guess when I felt that way when I was reading about the internet too<br/>
that it was kind of exhausting to feel like at this point with the tier one ISPs, they'r<br/>
so big that if you really wanted to do anything involving that, you would have to be so knee-deep in industrial workings that I'm just like, I don't...
cblgh: Yeah, it's impossible, right? I'm never going to do that. I don't have the wherewithal to become a T1 provider. That's just like in stories of revenge, you know, you aim to become the kings, so you can bring down the empire from within. Like nobody does that in real life.
max: - Yeah, I don't have the energy for that.
cblgh: - But I mean, in that case, you know, that realization opens up for like, well, I don't have the energy for that. Obviously. What can we do instead? Like maybe we just do some weird radio shit, you know, like where we buy a bunch of radios and we start sending packets over radios or something. It's a much smaller scale.
max: Yeah, I think this is why a lot of anarchist logics and like small scale projects appealed to me was because they were stuff you could do and you could start doing now and not necessarily have to like spend a lifetime learning like legal codes.
cblgh: Yeah, and once you get like the kind of immediacy from the feedback loop, it's really self-feeding as well like, "Oh, I got this thing working and I can show it to someone and they can become excited and then we can do it together." And instead of you know having to study something for like two years before you can actually see something on the screen or whatever.
max: That's true. Getting some real feedback. Also one of the joys and addictions of programming.
==================================================
III: LIEU, CERCA, FORUMS & SEARCH
max: So the projects I was thinking about talking about were cerca and lie<br/>
But was there anything else that you thought would be relevant to these topics?
cblgh: Is this the term that you want to use, like solidarity infrastructure? So like, Lieu and Cerca are definitely like two very clear projects in that respect. Like how I kind of got started into this way of doing things might be interesting, I'm not sure.
max: Yeah, that sounds great.
cblgh: It all goes back to 10, 12 years ago. Basically, I started my HTML, JavaScript<br/>
I mean, just like journey or whatever, like learning that kind of stuff through a projec<br/>
I made with two friends called Piraltorodio, which is Swedish for pirate radio, which is kind of like a tongue-in-cheek kind of name. And basically that kind of revolved around making these collaborative playlists. So the idea was like, I listened to music on YouTube and I listened to music on SoundCloud and on Bandcamp. And I thought it was kind of silly or annoying that I couldn't just make a playlist with music from all of these things and then send to someone or we could listen to it together<br/>
So that's what Keraltraudio was. It was basically just like a database that had lists of links and then a front-end that kind of put these links together. And we had some special kind of resolving and embedding things that put things on the page. So when we render the list of all these different links, we would kind of get the song title. And when you click on a thing, we'd actually start playing on the page. So that's kind of how I got into all of this stuff. Because from there, I found different kinds of--yeah, other projects, basically.
max: What type of things did you discover<br/>
if you remember from working on that?
cblgh: - Yeah, so one thing that was, I mean, very many things, it's like collaborating with other people and how to do that in a way that works best for the group, and for me. One thing that I reflected on, is that I really like this way of collaborating with people where you don't step on each other's toes too much. So like I have one area that I'm focusing on and then another person has another area. And our collaboration kind of consists of us working on these two different things and then gluing those things together, right?
max: - Totally.
cblgh: - So that's one thing. But the other thing was we kind of thought it was a bit scary to have this database of links, even if it was only links, we didn't download anything. And started looking for like, how could we do this in a decentralized way? Which is how I started looking into IPFS that then eventually found Scuttlebutt. Yeah, so then I started making stuff using that and I made a thing called Datradio, which was very inspired by this. Which was kind of doing the same thing, but using dat archives. So someone could work in the Beaker Browser, this now defunct, but very cool project where you could create websites directly in the browser. It was using its API.
So we just say like, here's the app itself, and then you would fork it. And now you have the entire app in your browser. And then you can add stuff into that app and share links so that other people can just listen to that.
max: And through that, remove yoursel<br/>
from this liability of hosting these links<br/>
if everyone was just forking their own and having them on their machine. It's really amazing how muc<br/>
creativity and innovation copyright law has fueled out of teenage angst towards the lik<br/>
annoyance that these people don't want you to download stuff for free.
cblgh: Yeah, because it's scary like people just want to make something fun, but then when they've they've made something fun, they're kind of getting anxious like, fuck, are we gonna get, are we gonna get wrecked for this? Like, I'm not a lawyer, like, I don't know literally everything about what's legal or not.
max: I feel you. And they did wreck some people back in the day<br/>
like, that was like a specific approach/strategy of ant<br/>
pirating legal stuff was to like, come down really hard on <br/>
few individuals who were kind of like, not really doing anythin<br/>
other than whatever downloaded a bunch of stuff.
cblgh: Yeah, yeah. And actually with that pirotroli thing, we actually did like go to a lawyer and like pay him like a small amount to just like review were we doing anything bad and his take was no, we're not doing anything bad, but we should add like a small like, uh, terms of service basically where people just agree like, yeah, this is, uh, this is my responsibility or something. The app's defunct now for other reasons.
max: That's cool, especially hearing this<br/>
Everyone's got an interesting Scuttlebutt origin story<br/>
And then, yeah, do you want to talk more about Cerca and Lieu<br/>
which I'm not pronouncing correctly.
cblgh: Yeah, yeah, sure. Yeah, I can do maybe a brief description.
max: Yeah, I guess starting with what they are just because that will help for the transcrip<br/>
and people listening and then maybe talking about what inspired it, wha<br/>
you learned, if there was anything that was weird.
cblgh: Yeah, for sure.
Yes, I can start with Lieu because that was the first thing I made of those two. And it's kind of described as a web ring search engine or communal search engine. So what it does is basically, instead of searching and crawling the entire internet, which most search engines do today, it instead searches only a pre-specified list of domains, which was natural for the context that I was coming from, which was I'm part o<br/>
a webring called the Merveilles webring. And we have like 200 odd sites in there.
There are many cool sites, but it's kind of daunting. You know, when you have this list of like 200 sites<br/>
like which one do I start with? I'm not really sure what's in here. And like, even if I start with one, I'll just click in and then maybe it's not really obvious where to go from clicking in.
So it kind of, I was noticing this like, I'm not sure, but like fatigue setting in or whatever, where I'm like, I'll click in on a random site. Then this didn't really, I couldn't find anything interesting. Then I'll click another one. Maybe I'll just do that two or three times and then I'm kind of like running into boredom or whatever. So I wanted to surface all of the really cool stuff that people in this webring were doing. And yeah, that's kind of where Lieu came from. So it crawls all of those sites and indexes different kinds of search terms that it's found either in titles or in the body of the text and that kind of stuff.
max: I Remember you writing something like, or I don't know if you just said this or wrot<br/>
this, but that like the limitation of Lieu was actually better for certain types of searching<br/>
The example with music was really nice<br/>
You were like, "If I Google search music, like, this is not going to give me good music.<br/>
There's actually certain things that Lieu is better at searching for because of its limitations or its focus.
cblgh: Yeah, exactly because I know that this is a particular kind of scene and I kind of have an intuition for what's there. And for like the Lieu instance I've deployed with the Merveilles Webring, I kind of know that it's kind of design-y focus and kind of a lot of weird niche topics. So a lot of the things that are linked in there will kind of suit the sensibilities that I understand that this collective has. So in that case, I can actually just type in »music» and I'll get lists of different kinds of things, maybe someone listing their favorite songs. And it won't be just like, if I search the same thing in DuckDuckGo or Google, there I'll get basically very random things, probably ad-fueled search results.
max: - It also makes me think something cool about this i<br/>
it's like a retrospective organizing<br/>
where instead of like some people would say<br/>
"Oh, we have a community<br/>
we're gonna make a music channel,<br/>
which I guess leads to your next project, Cerca<br/>
But instead, this is like<br/>
everyone just do your own thing<br/>
and then like let's find all the tim<br/>
someone mentioned music.
cblgh: - Yeah, yeah. Yeah, it's taking a different kind of approach to that, for sure. Yeah, so that's Lieu<br/>
And it started out as just being for the Merveilles webring. But then later I kind of made it basically easily deployable for anyone. So if you have, and it's written in Go and you can download a binary. And basically if you have kind of a small list of websites you want to make searchable, you could download Lieu. You write those small lists, I mean the list of websites in the file, and then you start crawling with Lieu. And you can just spin it up and start searching using it.
So that could work whether if you have a group of friends and you want to make your collective output searchable. That could be one thing. But you could also just like, oh, here are some cool sites that I want to be able to search as kind of a group. You could do that as well.
max: I wonder if we could try setting it u<br/>
for the websites of the folks in the SFPC class<br/>
That could be interesting<br/>
- Little project<br/>
That might be one I might try to like<br/>
what's the word, not delegate<br/>
but like if someone's looking for a project to do.
cblgh: - Yeah, yeah.
max: - This could be something fun to do.
cblgh: - Yeah, just let me know if someone's running into any problems. Like I think it may need to make a new build for people to use. And then Cerca is the other project you mentioned.
And that's kind of come from how I grew up on the internet in a way, like I grew up in internet forums of many different kinds. And I was really missing that kind of, you know, mode of communication that's slower than like real time social media or IRC and more kind of persistent as well. I wasn't really running into that in a lot of places. So it was on my mind for a long time, but I really didn't see, I was kind of waiting for a good time to make a forum, like to make this kind of forum software. Because there are existing software but there aren't that many kind of modern ones—I've been keeping track. The only one that I've seen is Discourse.
And I think it's great that it's kind of brought the forum sensibilities into the modern web, so to speak. But deploying Discourse for a community is super rough, I think. You have to have a pretty beefy machine to make it work. And honestly, I never really liked the aesthetics of Discourse. And I wanted to make something that was a bit more like, I don't know, home-y or customizable or just like, less clinically sterile, you know?
max: Yeah, very, very sterile, very gamified, quantitative vibe from discourse forums.
cblgh: Yeah, it's like "I have to level up like: oh, make five posts." I don't know. It kind of struck me as, I mean, great that exists, but I really didn't want to launch it myself<br/>
Yeah, so I was like, before making it, I was just like having fun and figuring out, you know, like designing a forum software interface that I would want. And the thing I designed didn't end up in cerca at all, but it kind of influenced the things I wanted in cerca. And how I ended up making it was basically in Merveilles<br/>
We have a mastodon instance, merveilles.town. People started getting excited about forums. And I was like, well, if I make one, would people want to join it? And people were pretty excited. And I had some time. So I kind of banged it out in a couple of weeks.
max: I remember thinking another thing I though<br/>
was cool about Cerca was the way that you kind of made i<br/>
in public and immediately had contributor<br/>
as soon as you started making it.
And just the dynamic of making a piece of softwar<br/>
for a community with the community<br/>
maybe you want to speak more about that for better or for worse?
cblgh: Yeah, no. It's really nice to be part of a community like that, because it wasn't just me creating something for me and then hoping someone would adopt it. It was like, as you say, like I was creating it and then people were joining it and were excited about it and creating like adding new things that I didn't even think of or I didn't have time to do. And that was really, it's really energizing in a way to just like be creating software in this kind of community context, like instead of just creating something and hoping that'll be used. Because that kind of leads to a lot of overgeneralization, which ultimately actually hinders usage because it's too general, it's not specific enough. It just like it becomes this really big unyielding beast because you don't know what to anticipate or not. So you have to anticipate everything.
max: Do everything.
cblgh: Yeah. Whereas for cerca, I was just like literally in the beginning making it for the Merveilles kind of use case, which has kind of very specific software sensibilities in some sense, which was fun to experiment with. Like a lot of people there don't like client-side JavaScript. So I was trying to make everything in a way where there would be no requirements for client-side JavaScript. And it still doesn't have anything. Which meant going back to like, okay, how do you actually make a web form? And how do you handle that stuff?
max: Some more traditional programming craft.
cblgh: Yeah, yeah. And in some sense, that's just really working with the grain of what you get in the web platform, because forms are one of the OG elements of the HTML standard. And they're really easy to work with once you know what you're kind of doing.
max: Yeah, I guess that also makes me feel like somethin<br/>
about that project then is the code itsel<br/>
It's part of what's interesting about it<br/>
Like, it feels like it's a very three-dimensional thing<br/>
Like, there's the way you use it<br/>
There's the way it was made<br/>
And there's the choice of technologies used to make it<br/>
And they're kind of like all a part of what makes it creativ<br/>
and interesting<br/>
And it seems like you found some joy in all the different part<br/>
was my impression.
cblgh: Yeah, and I mean, that's kind of one of my personal strategies in general, which has struck some people, I think, in a way that it's not, I mean, that's not part of it. And basically, my entire mode of operation is having fun while working on projects. And the reason behind that is it's kind of a burnout mitigation strategy. Because if you're having fun and you're being energized by projects, then that's activel<br/>
decreasing in some sense, like a burnout counter.
max: Totally.
cblgh: Where if you feel like you have like the entire burden of the world on you and just doing this to be a hero or something, that's a very depleting thing. You can only do it for so long. Whereas having fun, like on Cerca or whatever, making Lieu, that's just like giving more energy to work on that or to work on other things.
max: Yeah, it's amazing how many people I know get burned out by whatever work they're doing<br/>
It's almost prolific.
cblgh: Yeah, I don't know what it's about. People feel like they alone have to shoulder, you know, like the burdens of a community or something, which is wrong. Like if a community is letting something, you know, like burn down to the ground, then sometimes that's what needs to happen, you know? Like it's not your single responsibility to take care of that because there's an entire community. And if nobody's taking care of it, then yeah, that's just a natural result. We can rebuild something new afterwards.
max: Speaking of taking care<br/>
you wanna talk about maintenance a little bit<br/>
Yeah, how is it going with Cerca and who is taking car<br/>
and what's it like with people using it?
cblgh: Yeah, sure<br/>
So one of the strategies of it was really making something that was low maintenance. So I wanted to minimize external dependencies and external infrastructure. So that once you've deployed it, it just keeps on running and you don't have to, you know, like start debugging mailgun or something. And in that sense, it's been like a resounding success. Like it's just been running and people have been using it off and on.
It has its kind of high tides and low tides. Like I've seen it start to be used, like people kind of rediscovering the forum during things like what's it called like Inktober where there was a thread where people were like three or four or five people were posting every day and just like sharing each other on and then after that it was kind of quiet for a while and now it's kind of resurging a little bit again.
max: - Okay, I'm curious how that happens<br/>
or what will happen over time too<br/>
'cause I also have this dream of a slower form<br/>
communication place, and somehow forums do end u<br/>
doing that sometimes<br/>
Like there was this thread I starte<br/>
on the Activity Pub forum discourse two years ago<br/>
and it basically gets consistent replie<br/>
every few months for two years<br/>
And it's just like a really interesting timescale<br/>
It's like, if you were to read it all in a row<br/>
you'd be like, wow, this is a really interesting conversatio<br/>
with like 20 people<br/>
And, but it happens at like absolute snail pace<br/>
And it's cool too.
cblgh: - Yeah, it's fun to be on the receiving end of the, I mean, like you get to literally live that experience. So like it's taking so long in this conversation, which is nice, but an observer just thinks like, wow, this really came together quickly.
max: Yeah, they look at it all at once<br/>
Yeah, yeah, yeah<br/>
They have no idea<br/>
It's like a weird collapsing of time.
cblgh: Yeah<br/>
And it's like, that would never happen, you know, like, something like a Twitter or a Mastodon, right? Because it's very much fire and forget. Like, I'll have missed if you posted like yesterday because I wasn't online much yesterday. And then that will probably never be resurfaced again for me, which is totally the opposite of forums.
But yeah, with its maintenance, like, I've been taking a kind of very slow approach and working on it when I kind of felt like it or when something critical came up. And one kind of thing I think is really difficult is with well-intentioned kind of drive-by contributions. Or it's like there's this kind of balance you have to straddle between what you want to encourage people to do and make contributions but at the same time a specific contribution might actually be the wrong direction for the piece of software, if you're the one who has to maintain it in perpetuity. Yeah yeah and that's a really really difficult thing I think with with maintenance is like actually saying no to certain contributions.
And I think I've been good at it in some cases and in some, in other cases I've kind of, I think I have some lingering PRs where I'm just like, this is not the right thing, but I also feel bad saying no to someone. So it kind of is just, I don't know, kind of ghosting PRs while not in the chat too<br/>
(laughing<br/>
But it's like, I don't want to say, "I don't want this." But I also don't want to press merge.
max: Ghosting PRs, what a social dilemma of our times.
cblgh: I know, right?
max: I feel you<br/>
I've in the past months received a lot of gift<br/>
that I didn't want while I've been here in India<br/>
It's been interesting<br/>
Most of them I've actually just like to say yes to at thi<br/>
point because I appreciate the intention and I feel like there's some mutually nourishin<br/>
thing that happens when someone gives me some food, even if it's something that I don'<br/>
actually want to eat. But for me, it's different eating some like food that I don't reall<br/>
want to eat versus yeah, like I remember like someone offered me some clothes or somethin<br/>
that I did not take because I was like, I don't have space in my pack for this. An<br/>
I have a limit, a boundary where I will be like, I'm not<br/>
although I like accepting and receiving<br/>
I'm not willing to accept<br/>
I'm not willing to carry around this thin<br/>
for the next six months, just to like<br/>
be agreeable.
cblgh: - Yeah, yeah, no, it's interesting. Like this idea of like a gift that is an encumbrance versus a gift that's kind of more relation building in a way.
max: - Yeah.
cblgh: - Purely. So like if someone gave you food, then you can either toss it away or you can eat it, and that's just like, that's a very transient thing, but clothes or you know, like a painting or something. It won't just go away when you'll have it, right? You kind of become encumbered by it. Same thing with like someone adding a PR and you have to merge it because you feel bad. Then it's there and you have to actually actively work to either throw that piece of code out or throw the painting out.
max: Hmm. Well, this seems good about Cerca, I almost started to feel bad for interviewing you abou<br/>
Cerca as we were talking about it because I was like based on what you said you're doing this for fu<br/>
so it seems almos<br/>
like counter to its aim to become the lik<br/>
focus of such attention
cblgh: No, no, no, it's I I mean, I'm really happy with it and I think about it a lot and I'm very happy every time I see someone make a post, you know, it's like, oh, wow, this is great. Someone created thread and I didn't have to do anything.
max: Nice. Yes, I guess I did<br/>
Well, in that light, then I'm happy to talk about it. I just was thinking how som<br/>
some software, the default, the default mode is like, everything has to have a reason and it need<br/>
to be optimized and the best. And it's interesting that if you're making something more provisiona<br/>
for fun, maybe that's not true, maybe there are decisions one makes that are like, not ideal o<br/>
something, but like, it's fine because it's not the purpose of it.
cblgh: Well, I think it can be very intentional even with fun stuff. I am actually quite intentional with, for example, cerca and other things I do for fun. Like, if I do decide I'm doing this and I don't really care about the outcome. So that's actually an intention, right? It's kind of a way to approach a particular thing. So it's not very thoughtless in that sense.
Like every decision I've made with Cerca has been very informed, even if it seems like, oh, it's just--it's not using classes because I guess I didn't really care about that. It's like, oh, no, I'm actually doing that because it makes everything so much more composable.
max: Not using CSS classes.
cblgh: Yeah, exactly. I tried to minimize that.
max: Like just doing stuff more inline?
cblgh: Yeah, sometimes inline, but also just like styling actual, like the default elements.
max: Ah, okay, yeah, yeah, yeah, yeah, yeah, yeah.
max: Is there anything else you feel that you wanted to sa<br/>
about cerca and lieu? or Should we move on to the other stuff?
cblgh: - Well, I maybe have a few last thoughts on cerca.
max: - Sure.
cblgh: Like one thing I really wanted with it was to avoid external infrastructure that I mentioned, like which in my case was email and email registrations and email kind of, you know, password "I forgot my password"-functionality, which seems important. So I went with this kind of weird thing that was informed by doing way too much peer-to-peer stuff using like public keys and shit.
And I think I might be kind of, I haven't unpacked it yet, but I think it's an interesting thing where I didn't want the email infrastructure, but I did want people to be able to reset their passwords. So I kind of invented this thing of "here's a public key and you can use it to kind of reset your password", which was in effect kind of cumbersome for people. I mean, you have to download a separate tool and then you have to remember the second thing, but it kind of gave me permission to not do the default thing. And I think it's an interesting, not really sure what to call it, even like a technique or whatever concept of having this, you know, like plausibility, like: "okay, people can plausibly restore their passwords. So therefore, I'm freed of this kind of default constraint of having to service this by email."
max: I feel you on the email thing<br/>
actually that just reminded me one of my tasks for toda<br/>
is to fix the email sending for the self-hosted outline.
cblgh: - Yeah, yeah, yeah, it's just like such a thing.
max: an annoying task
cblgh: But where I think I want to go with it actually, and next time I'm gonna have a batch of work working on it, is I'm going to try to use what's it called like timed one-time passwords, which are basically these codes that you find if you use like a Google Authenticator; that's a standardized technique. And you can actually implement that in something like Cerca. It's decentralized as hell basically.
max: How do you send someone the code if there's no email?
cblgh: So basically you don't send a code, but they do have, I haven't actually implemented yet. So my details on this are very scant. But basically, when they register, they get this code that they put into their Authenticator app. And they probably have an Authenticator app for logging into all kinds of things today. So if they want to reset their password, they could do it using this kind of second proof from the Authenticator app.
max: I got you<br/>
So to prove that you're you-<br/>
You supply a password from the Authenticator ap<br/>
that is somehow connected to this account<br/>
but that only you can produce.
cblgh: - Yeah, and even you can even go further and you can just say, well, you don't even have to log i<br/>
with password if you don't want to, you could just use your Authenticator app.
max:- Nice.
cblgh: - Yeah, so that's something I wanna explore. And being able to explore that was only made possibl<br/>
by doing this really cumbersome strange thing that I started with, which is, yeah, I don't know. It's just like a small side note that I think is kind of interesting. Like if you do tread off the beaten path it opens up other things.
max: - It's a small but big choic<br/>
to not include email as dependency<br/>
It's like, it takes you off the standard app.
cblgh: - But yeah, I think that closes the chapter on cerca for now.
==================================================
IV: FIVE MINUTES ABOUT THE INTERNET
max: Okay. How about this? Can we talk about the internet for five minutes<br/>
Because I'm just curious. Okay, so I've heard some people say the internet i<br/>
decentralized. And then I was like, you know, people talk about how there can be many lik<br/>
on Scuttlebutt like an archipelago, many networks, internets and stuff. And it doesn't have t<br/>
have this global connectivity. But then when I researched it more, I had like heard abou<br/>
it, but I never really thought about how there's these like different tiers of Internet Servic<br/>
Providers. And basically, as I understand it, the definition of a Tier 1 Internet Servic<br/>
Provider is that they peer with all other Tier 1 Internet Service Providers for fre<br/>
and that they know the routes to like any possible IP address. And so another way o<br/>
saying that is that tier one ISP by its definition is centralized. There can only be one tier one<br/>
Like the definition of tier one is peers with all other tier ones and knows every route<br/>
And that was just interesting to me. I mean it's not centralized in that there's not on<br/>
player because there's multiple, but it's central or it's universal maybe. Which als<br/>
made more sense with like the common way people talk about the internet which is like, ar<br/>
Are you connected to The internet<br/>
Like using the word "the" instead of..<br/>
Um, and before I was like, oh, is that a misnomer<br/>
And then after learning about this, I was like<br/>
well, if you mean the tier one internet<br/>
then like maybe that is correct<br/>
It's singular.
cblgh: - Yeah, no, it's interesting. Like, I don't know so much about like, like the actual details there, but..<br/>
(bird squawks<br/>
Yeah, there's a lot that goes on outside of like, "Oh yeah, here's my domain. I registered it with, I don't know, GoDaddy" or whatever. Because as you say, like they have, we have these like tiers where, DNS is decentralized in that you have different regions that decide over their TLDs. And then you can register like in this kind of semi, basically hierarchical, but decentralized way. But at the end of everything you still have like root certificates that actually that's controlled by like 11 people or something scattered around the world who can like change the root domain name things. Yeah yeah that's that's it's kind of wild like anyone could start an isp but I don't really know how you become a t1 kind of provider.
max: Yeah that's what I was getting at. that's the way to say it. like anyone could start a tier <br/>
provider, that part you can definitely get going but if you want t<br/>
become a tier 1 provider you kind of have to be like a really big organizatio<br/>
with a ton of money but then on the positive side I get the feeling tha<br/>
maybe because of the way it's designed it's still like decentralizing of powe<br/>
because it doesn't really feel like the tier 1 providers, like they can't d<br/>
really preferred traffic. They're not able to like insert advertisement<br/>
into the stuff. So it's somehow there's something about it that's working even thoug<br/>
it's kind of centralized. This is all pretty half-baked.
cblgh: Who are some of the, you know, any of like the organizations that are tier one providers?
max: There's a bunch of them but like AT&T, level three<br/>
there's one in India called Tata Communication. So yeah, it doesn't feel like <br/>
a cabal to use your word. It just feels like a weird conglomerate of these giant companie<br/>
that somehow make some money from doing it, but it also seems competitive enough that it'<br/>
not like one monopoly where they're super hiking the price to profit off of everyon<br/>
using the internet.
cblgh: It's mostly like they need to cooperate because otherwise each... I would have to sign up with AT&T internet and I wouldn't be able to access like I don't know whatever this Swedish T1 provider would be right Yeah, exactly. So for them it's like well, we'll provide the best service if we just peer with each other for free and then we can together make money off of the internet users
max: that seems like a good five minutes. Let's switch to talking about cabal.
==================================================
V: CABAL & P2P DELETE
max: let's talk about Cabal. What's the state of cabal and what are your plans for it right now?
cblgh: The state of Cabal, yeah. So Cabal's a peer-to-peer group chat I kind of took the initiative on in 2018 April. So it's soon to be five years. Basically just started working on it with friends that I got to know through cabal. So we've been working on it since then. So: it's a community project, no company behind it, similar in concepts to like Discord, but what if you weren't owned by VCs and you didn't have to run a server and that kind of stuff. Peer to peer and it works offline.
What's been going on recently is last year I was kind of spending a lot of my time writing grants for it, like I wrote two grants and have been kind of lucky enough to stumble into a third one. The first one I wrote didn't actually pan out. Like I submitted but we didn't get anything from it and then the second one actually went through. Which is kind of what I'm in a sense, I mean like going to make a living off of this year. So it's me and Kira from the project who are working on it this year for this grant. And I can go into what that is.
And the third one was, I was lucky enough to just like get in touch with a friend who's working a lot in the design space. And through her, it turned out she had, this friend is Eileen, and it turned out she had kind of like like an independent budget to kind of help projects with. And that evolved into designing a new kind of web presence for cabal, which is wrapping up this week. And then we'll kind of make a new website base<br/>
on the designs we've gotten. So a lot of things that were kind of seeded last year are coming to fruition this year, which is really exciting.
max: that's cool<br/>
Speaking of the sustainability of open sourc<br/>
and different pathways for projects<br/>
It's been cool for me getting to see the slow bur<br/>
and multiple phases of Cabal over the years<br/>
That's cool that it's getting a new wave.
cblgh: Yeah, for sure. And one of the things that has kept it alive is really this perspective of this is a no burnout zone, which is like one of our explicitly stated values and just only working on it when it's fun and doing things for fun.
max: And also the fact it's no servers<br/>
I think was a beautiful point about Beaker<br/>
but also cabal, like you don't have operating cost<br/>
as far as I know<br/>
- So that's pretty cool<br/>
You don't really operate by startup logic.
cblgh: Exactly, exactly. Like as long as each person that kind of comes online in a cabal is adding more resources and kind of connectivity to it. So some people might have a really hard time connecting to others because of just how the way routers work today with NATs like stuff like that.
cblgh: so what we're doing for Cabal this year is we're actually rebuilding it from the ground up. So Cabal today, as it works when we're chatting on like any Cabal is building on top of this hypercore dat stack where we have the hypercore append-only log and we have the hyperswarm DHT. So each person in the cabal has this kind of append-only log that they write messages to. And then we kind of, we find other peers, other people, through using this hyperswarm network, the hyperswarm DHT. And we create a chat, like, you know, like—I'm saying something, you're saying something, the third person is saying something—that view, by taking all of these logs, and then kind of mixing them together and interlacing their different entries based on when they were written. The problem is we don't really control that tech stack at all. Like, and we've seen a lot of issues where, not issues, but I mean, it's been existing for five years. We have a lot of experience of like, what works and what kind of doesn't work as we would kind o<br/>
want it to work.
And one of those is just the question of delete. Like, hypercore is an append only log. And in the name you hear it's something you can only add to, you can't remove from it. And it's nice for some reasons, it makes synchronization across the network a lot easier because if you know that you have this list of things that is only ever added to, then you can have an efficient sync by saying, "oh, hey, Max, I know that you have, from where I'm sitting, your latest message was number 59. Give me anything that's newer than 59.<br/>
That's a very easy synchronization protocol. But in something that's append-only you can't delete. So if you accidentally post your credit card number because you think you're in a web form or accidentally leak something there, you can't retract it. And that's a really, really, really heavy concern for something like a group chat, especially where someone might come in and just like post something horrible and how you're stuck with that.
max: Are you trying to add delete in some patchwork fashio<br/>
or just accepting that as a limitation of the software?
cblgh: Yeah, so we're actually saying, "Well, how about we make something custom from the ground up?" And we're doing that with what we're calling cable, a wire protocol, which has kind of been collaboratively specced out among us Cabal devs and community. And what the grant is about is kind of officializing that and really implementing it in a way where we have a spec that's very clear for anyone who's outside of the dev team to be able to read and then implement an independent version. So that means that Cabal, instead of just living in nodejs land, will be able to be implemented in Rust or Ruby or Python or Go.
Because what we're doing is we're specing the individual bytes that each message is composed of. And instead of having this idea of an append-only log, we're kind of going this alternate route of saying, Well, we have this identity idea of public keys and private keys, where if I write a message, then I can sign that message with my private key. And as long as you get that message from anywhere, you don't even have to get directly from me, and if you know what my public key is, then you can verify the authenticity of that message by just checking the signature. So it kind of prevents fraudulent messages in a way where someone could not say, send a message that seems like it comes from me without that being able to be checked.And we're using that concept, but without having to put it into this linear, increase-only fashion.
Instead we have this idea of kind of a grab bag of messages. So since we don't have this strict append only concept anymore, we just have a bag of messages that makes delete very easy. Because if you want to delete something, you can just like basically, in one sense, remove it from your local database. And you can also publish your message. So when other people request like "what messages have you written", among those that you send as a response is "actually this thing that I wrote in the past, I've deleted that. Please delete that as well and save this delete message in case someone else requests new messages from you."
max: That's great<br/>
What does that mean that you are<br/>
so it's not depending on hypercore and hypers<br/>
you're like, you've made a new foundational protocol.
cblgh: - Yeah, it's a new protocol for sure.
max: Cable is the name of the new protoco<br/>
or cable is the whole thing<br/>
including the way that Kabal uses it?
cblgh: Yeah, so currently Cable is just the name of, what we're calling the wire protocol, like the specification of the bytes. And then we'll see where we go from there. But that's what we're doing as part of the grants. So Kira is right now finishing up the first draft of the specification. And then we're gonna have an RFC process where we invite people to come and give their feedback and read through the spec and say "well, this thing you should maybe do differently. This thing was very nicely written." and stuff like that. And in parallel to that, I'm basically implementing both the low level stuff as well as the kind of application level interfaces.
max: That's awesome<br/>
I'm really glad we got a chance to talk about this<br/>
I thought you were doing something totally different.
cblgh: What did you think?
max: I don't know<br/>
I think I thought you were continuing with Cabal as i<br/>
was, but making mobile clients and some other stuff<br/>
I just somehow missed the update that there was this ne<br/>
protocol.
cblgh: Yeah, for sure. I can maybe link to the--I wrote a text update when we announced the grant and stuff from our open-collective Yeah, I'll link that for sure. https://opencollective.com/cabal-club/updates/cabal-2022-in-review-two-grants-and-a-new-wire-protocol-later
max: That's really exciting to me.
I was having a somewhat like funny feeling just thinking, you know, it's a famous essay<br/>
the one that's like critical of P2P because it's bad on privacy written by the perso<br/>
from the New Design Congress whose name I'm forgetting.
cblgh: Yeah, Cade Diehm.
max: Yeah, yeah, yeah<br/>
Somehow I was thinking about that essay again and I was just feeling like, you know wha<br/>
What it was is because of the popularity of the Fediverse and the fact that I'm teachin<br/>
this class, it almost was feeling like an even more real possibility that there wil<br/>
be this infrastructural switch in the next 5, 10 years where way more stuff is not i<br/>
the corporate cloud and is in these more localized clouds and home servers<br/>
And I was just feeling like, okay, there's going to be some good parts about that, bu<br/>
The shitty part about that is how much more identifiable everyone is<br/>
There was this obscurity in the cloud, and it would be a bit sad if that's lost<br/>
And so just hearing about your implementing delete makes me happy because then that'<br/>
at least one major vector of vulnerability that is removed<br/>
because if you can really delete stuff, then that makes you a lot less vulnerable to accidentall<br/>
posting some shit that is going to cause problems for you later.
cblgh: And yeah, it'll be very interesting to see. And it feels like we're part of this wave of like, you know, okay, we've been using these peer-to-peer systems, what can we do differently now? Like, we started specing this out in 2021, when we (max and cblgh) actually met in Svendborg. we (some cabal devs) were actually cohacking on the spec there.
max: Yeah, yeah, yeah, I remember that.
cblgh: and we're not the only ones. Like there's a lot of kind of questioning going on, both in SSB, you know, where Andre Staltz has said, he was very close to burnout and his kind of answer to that was he needs to kind of take it easy with the main Manyverse development. I think he's gonna have some other devs continue doing patches, But instead research what could be a new version of SSB that keeps the good parts but kind of removes the bad parts that has been burning people out. So it's definitely kind of new wave kind of vibes going on in the space in general to kind of continue the speculative stuff. So we'll see what happens.
==================================================
VI: CLOSING / LOCAL TRANSCRIPTION
max: Thanks, and I'll message you once I get a chance to transcribe. I'm kind of hoping I can use some transcription software because this is really long. I have to look into that.
cblgh: As long as you don't send my stuff to OpenAI I am fine.
max: Is that an actual boundary? I haven't looked into how transcription will work.
cblgh: Well, I wouldn't want them to have my voice and shit, you know.
max: I'll look for some local transcription. I think I did see at least see someone share one for Mac. So I just need to find a Linux one.
cblgh: Nice.
OK, talk to you later<br/>
Sure<br/>
Bye-bye<br/>
(birds chirping<br/>
[whistle<br/>
[BEEP<br/>
(beeping<br/>
[BEEP<br/>
[whistle<br/>
[BLANK_AUDIO]

466
cblgh-html.html Normal file
View File

@ -0,0 +1,466 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" type="image/png" href="/favicon.ico">
<title>Solidarity Infrastructure Interviews</title>
<link rel="stylesheet" href="https://server-friends-ring.glitch.me/onionring.css">
<link rel="stylesheet" href="/styles.css">
</head>
<body>
<main>
<div>
<a href="/"> ← home </a>
</div>
<h2> An Interview With @cblgh </h2>
<div style="font-style: italic;">
cblgh is an independent researcher and programmer based in Sweden.
website: <a href="http://cblgh.org">cblgh.org</a>, mastodon: <a href="https://merveilles.town/@cblgh">@cblgh@merveilles.town</a>.
</div>
<br/>
<i>Table Of Contents</i><br/>
<br/>
<a href="#part1">I: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE</a><br/>
<a href="#part2">II: LIEU, CERCA, FORUMS & SEARCH</a><br/>
<a href="#part3">III: COMPOSABLE SOLIDARITY INFRASTRUCTURE</a><br/>
<a href="#part4">IV: FIVE MINUTES ABOUT THE INTERNET</a><br/>
<a href="#part5">V: CABAL & P2P DELETE</a><br/>
<a href="#part6">VI: CLOSING, LOCAL TRANSCRIPTION</a><br/>
<br/>
================================<br/>
<br/>
<a id="part1">I: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE</a><br/>
<br/>
<strong>max:</strong> I hear a fair amount of people talk about software governance, but I somehow feel like I haven't had first-hand experience to see when it goes wrong.<br/>
<br/>
Have you ever had an experience where you were using something or contributing to something, and then it went in a direction that you didn't want or was like counter to the aims of some group of users or contributors?<br/>
<br/>
<strong>cblgh:</strong> Yeah I've had some -- I wouldn't put it so harshly, but in some senses I was making a lot of dat stuff, using this kind of foundational thing called hypercore and append-only logs, so that's what that was all built around.<br/>
<br/>
So there was a very vibrant community of people -- artists, software engineers, interested onlookers -- all making stuff using Hypercore and Dat and Beaker Browser. And that project kind of took a turn away from the community in some senses, where the lead developer, who's written basically all of the foundational structure, decided to take a different path, away from making it community managed to instead being more managed by, or making more explicit, this foundational structure. hypercore is managed by the devs, which is good that it became very clear, because people were becoming confused on some decisions and stuff like that.<br/>
<br/>
But you know, Beaker browser is no longer working, right? And all of the things that people built using Beaker browser are also in a sense inaccessible. And that's one example of where that kind of governance thing did not really go in the way of the community, but rather the way of the devs.<br/>
<br/>
So it kind of was rebranded from that to Hypercore Protocol. And then more recently, its been rebranded to the holepunch platform, which has become VC funded in a way, but really it's more like a cryptocurrency funded thing; so there's a big Bitcoin backing in the company. It's very much taken a different path than I think a lot of people would have wanted.<br/>
<br/>
<strong>max:</strong> Thanks for that story. That brought up a bunch of questions for me. One is what is success or failure for governance or sustainability of an open source project?<br/>
<br/>
I have a first impulse, which is like, if it doesn't last forever, it's a failure. But what are the really lasting open source projects we can look to? Are there even any? is it Linux or something else?<br/>
<br/>
And then I had a second impulse, which was like, that's a little silly -- it's not really like things need to last forever to be worthwhile. There's certainly projects which were experimental and valuable.<br/>
<br/>
Maybe Beaker Browser might be one of those where it inspired a lot of people<br/>
and maybe influenced the discourse and future projects that are going to be made.<br/>
<br/>
And sure, it's a bummer that some of the things people made on Beaker are going to be unmaintained or abandoned, but it would also seem extreme to say this project was a failure.<br/>
<br/>
<strong>cblgh:</strong> for sure, it all depends on what you are evaluating it along. One thing Beaker Browser could have done instead of labeling the project defunct, is at an earlier stage, they could have maybe tried to find someone in the community that was excited to receive the stewardship and take it in a different direction.<br/>
<br/>
<strong>max:</strong> There could have been a more active engagement with that instead of just saying this is over.<br/>
<br/>
<strong>cblgh:</strong> But it's also very difficult and intertwined with burning out and stuff. I'm not sure Paul burnt out on it, but I certainly think he worked very, very hard for very long. And now it's defunct. It's very hard to do a handoff when you're already struggling to keep your head above water in a way, you know?<br/>
<br/>
<strong>max:</strong> Yeah, that might not be the most energizing part of the project.<br/>
<br/>
<strong>cblgh:</strong> so in some senses, if it's a success, then when you realize it's a success, you have to start preparing, like "the will" for the project while you have the energy to do that.<br/>
<br/>
<strong>max:</strong> especially with a project that big, I would imagine there's someone who would be interested, even if it was just like a college student, or someone who wants to develop their skills or resume or something, maybe being able to take on the responsibility for such a big project is kind of an appealing concept in some ways.<br/>
<br/>
<strong>cblgh:</strong> Yeah, and one of the benefits of this software is there's not this big expensive cloud infrastructure you need to keep running.<br/>
<br/>
<strong>max:</strong> That's true. So it's not like it turns off one day. It just needs someone in their room with an internet connection still working on it.<br/>
<br/>
<strong>cblgh:</strong> You could basically have had Beaker Browser as it was and just keep it on long-term support where people were just using the things that were already there, and maybe wishing for better tools. But if it could have just been kept alive, then I think that would have been a vibrant small corner instead of having to pursue the path of existing alongside Mozilla or Chromium.<br/>
<br/>
<strong>max:</strong> The other project I've been thinking about on this topic is the Fediverse because there's now this interest from Medium and even Meta to use ActivityPub. And we'll see what happens in the next years. But to me, it seems like one possible outcome is that it actually gets a lot of adoption. And I've even heard the term "the corpoverse" thrown around.<br/>
<br/>
And I was thinking, what would that mean? This is all a bit speculative, because it could also not happen. But I was like, wow, that would be interesting if this kind of slow burning project of anarchists and volunteers eventually achieves such large-scale influence, even if the original people setting up servers and stuff were kind of more at this like experimental scale. Maybe that's how things sometimes happen - that an experiment ends up having a big influence not because the people doing the experiment try to make it have a big influence but because it eventually influences large-scale actors to do something different.<br/>
<br/>
<strong>cblgh:</strong> Yeah, that's one of the rare occasions where scrappy people can kind of choose the fork in the future. It also brings to mind other examples -- I mean this has been going on for as long as there have been Bohemians and artists right? This is like gentrification by another name. Oh this was successful, this was a cool place to be. I guess we gotta exist there to be cool and extract the value.<br/>
<br/>
<strong>max:</strong> Yea its an interesting analogy. I guess the other question though is because some people are critical of the corpoverse, asking is it gonna even have any of the good parts of the old fediverse, and my optimistic vision of it is that it does maintain the good parts. maybe it's not as pure as the original, the non-corpo fediverse, but it wouldn't be just like gentrification because with gentrification it sometimes feels like here's a place where some creative interesting things were happening and then once it reaches the commercialized stage it actually doesn't really have anything particularly in common with what it used to be like and many of the people who used to live there are forced to leave, it's just an extractive process that happens on top of something else. And also going back to how we started this conversation, "the internet" just popped into my head as a successful open source project. I think this might be what's actually getting me to research this more, because I feel like the internet is weirdly one that worked. Obviously there's lots of shit things that have been done on top of the internet or with the internet, but the core protocols themselves seem like they were somehow a fairly positive example of how open source can go.<br/>
<br/>
<strong>cblgh:</strong> Yeah, I think so. Like sometimes you have these like runoff successes that the rest of the commercial world just has to cope with. Like I'm sure big companies would have rather had, you know, like what if we had Facebook-internet, where I just pay a monthly subscription to access the zucknet right?<br/>
<br/>
<strong>max:</strong> Totally yeah. If a corporation had done that from beginning it could have been like that. There could be an advertisement embedded into every packet.<br/>
<br/>
<strong>cblgh:</strong> Yeah. You're doing like packet inspection and suddenly it's just like, "have you heard about this new movie?"<br/>
<br/>
<strong>max:</strong> Literally, it could be like that but it's not. Wow, that just made me excited to have that clarity. So yeah, I would be hopeful that with mastodon or whatever protocols, even if they were to eventually get success, could have that same capacity as the current internet where it would be like, of course, these corporations would love to have their advertisements embedded in every little stream, but like, it's just not the way the protocol works. You just can't really do that.<br/>
<br/>
<strong>cblgh:</strong> Yeah, I can imagine that. And then in some ways, you know, from like an ecosystem perspective, this is just something I've been learning in the last year, you have these, and I'm not sure what they're called, I think like forerunner frontier species that enter a degraded ecosystem, and they're the ones that are hardy enough to grow there. And when they grow, they kind of create the circumstances for other less hardy things to grow, which will eventually actually supplant these frontier species because it grows longer and stronger and starts shading them out. And I think that really happens a lot with technologies that kind of tangent this social realm as well where you have these hardy, and I don't really like the term frontier because it has a lot of baggage, but yeah, like these hardy initiative takers or whatever that are willing to come into a new space and experiment.<br/>
<br/>
And typically it's a lot of marginalized communities, are the ones who will first embrace something new. And they kind of work it out, you know, and they figure out what works, what doesn't work, and they start making it cool. But when becomes more popular and more commercialized, they might not feel comfortable there anymore. So it's an interesting dynamic and I'm not necessarily being very doomerism about Fediverse. I'm more like just observing dynamics. Just from how the technology works I would think that you can still have a very alternative subset of the Fediverse that just like de-federates from everything except their friends.<br/>
<br/>
<strong>max:</strong> Yeah, I would optimistically believe so as well.<br/>
<br/>
<strong>cblgh:</strong> But I think we would still have a different vibe and people wouldn't get, you know, very radical or interesting minded people probably wouldn't even give it a chance if it was like as commonly accepted as Facebook or whatever. I don't know. I think it's an interesting dynamic with these groups that come in to a new space and experiment and then are eventually in some senses crowded out.<br/>
<br/>
<strong>max:</strong> Yeah, I like your comparison with the ecosystem waves of succession. Intuitively I feel like I don't really know how all this stuff works. I feel almost like my stomach dropping sometimes when I think about it, just feeling like its a mystery, but it's at least a nice possible model. I'm definitely not going to say that's not how it works. And it's a nice alternative that goes beyond, oh, you just do small things that don't matter or big things that make a difference -- it provides a different possible paradigm.<br/>
<br/>
Because yeah, I guess when I felt that way when I was reading about the internet too, that it was kind of exhausting to feel like at this point with the tier one ISPs, they're so big that if you really wanted to do anything involving that, you would have to be so knee-deep in industrial workings that I'm just like, I don't...<br/>
<br/>
<strong>cblgh:</strong> Yeah, it's impossible, right? I'm never going to do that. I don't have the wherewithal to become a T1 provider. That's just like in stories of revenge, you know, you aim to become the king, so you can bring down the empire from within. Like nobody does that in real life.<br/>
<br/>
<strong>max:</strong> Yeah, I don't have the energy for that.<br/>
<br/>
<strong>cblgh:</strong> But I mean, in that case, you know, that realization opens up, well I don't have the energy for that. Obviously. What can we do instead? Like maybe we just do some weird radio shit, you know, like where we buy a bunch of radios and we start sending packets over radios or something. It's a much smaller scale.<br/>
<br/>
<strong>max:</strong> Yeah, I think this is why a lot of anarchist logics and small scale projects appealed to me was because they were stuff you could do and you could start doing now and not necessarily have to spend a lifetime learning legal codes.<br/>
<br/>
<strong>cblgh:</strong> Yeah, and once you get the kind of immediacy from the feedback loop, it's really self-feeding as well like, "Oh, I got this thing working and I can show it to someone and they can become excited and then we can do it together." And instead of you know having to study something for like two years before you can actually see something on the screen or whatever.<br/>
<br/>
<strong>max:</strong> That's true. Getting some real feedback. Also one of the joys and addictions of programming.<br/>
<br/>
================================<br/>
<br/>
<a id="part2">II: LIEU, CERCA, FORUMS & SEARCH</a><br/>
<br/>
<strong>max:</strong> So the projects I was thinking about talking about were cerca and lieu But was there anything else that you thought would be relevant to these topics?<br/>
<br/>
<strong>cblgh:</strong> Is this the term that you want to use, solidarity infrastructure? Lieu and Cerca are definitely two very clear projects in that respect. How I got started into this way of doing things might be interesting, I'm not sure.<br/>
<br/>
<strong>max:</strong> Yeah, that sounds great.<br/>
<br/>
<strong>cblgh:</strong> It all goes back to 10, 12 years ago. Basically, I started my HTML, JavaScript, I mean, journey or whatever, like learning that kind of stuff through a project I made with two friends called Piratradio, which is Swedish for pirate radio, which is kind of like a tongue-in-cheek kind of name. And basically it revolved around making these collaborative playlists. So the idea was, I listened to music on YouTube and I listened to music on SoundCloud and on Bandcamp. And I thought it was kind of silly or annoying that I couldn't just make a playlist with music from all of these things and then send to someone or that we could listen to it together.<br/>
<br/>
So that's what Piratradio was. It was basically just like a database that had lists of links and then a front-end that kind of put these links together. And we had some special kind of resolving and embedding things that put things on the page. So when we render the list of all these different links, we would get the song title. And when you click on a thing, we'd actually start playing on the page. So that's kind of how I got into all of this stuff. Because from there, I found different kinds of other projects.<br/>
<br/>
<strong>max:</strong> What type of things did you discover, if you remember from working on that?<br/>
<br/>
<strong>cblgh:</strong> Very many things - one thing was collaborating with other people and how to do that in a way that works best for the group, and for me. One thing that I reflected on, is that I really like this way of collaborating with people where you don't step on each other's toes too much. So like I have one area that I'm focusing on and then another person has another area. And our collaboration kind of consists of us working on these two different things and then gluing those things together, right?<br/>
<br/>
<strong>max:</strong> Totally.<br/>
<br/>
<strong>cblgh:</strong> So that's one thing. But the other thing was we kind of thought it was a bit scary to have this database of links, even if it was only links and we didn't download anything. We started looking for how we could do this in a decentralized way? Which is how I started looking into IPFS that then eventually found Scuttlebutt. Yeah, so then I started making stuff using that and I made a thing called Datradio, which was very inspired by this. Which was kind of doing the same thing, but using dat archives. So someone could work in the Beaker Browser, now defunct, but very cool project, where you could create websites directly in the browser. It was using its API.<br/>
<br/>
So we just say like, here's the app itself, and then you would fork it. And now you have the entire app in your browser. And then you can add stuff into that app and share links so that other people can just listen to that.<br/>
<br/>
<strong>max:</strong> And through that, remove yourself from this liability of hosting these links. if everyone was just forking their own and having them on their machine. It's really amazing how much creativity and innovation copyright law has fueled out of teenage angst towards the annoyance that these people don't want you to download stuff for free.<br/>
<br/>
<strong>cblgh:</strong> Yeah, because it's scary -- like people just want to make something fun, but then when they've they've made something fun, they're kind of getting anxious like, fuck, are we gonna get wrecked for this? Like, I'm not a lawyer, I don't know literally everything about what's legal or not.<br/>
<br/>
<strong>max:</strong> I feel you. And they did wreck some people back in the day -- that was a specific approach/strategy of anti pirating legal stuff was to come down really hard on a few individuals who were not really doing anything other than downloading a bunch of stuff.<br/>
<br/>
<strong>cblgh:</strong> Yeah, and actually with that pirotroli thing, we actually did go to a lawyer and pay him a small amount to review if were we doing anything bad and his take was no, we're not doing anything bad, but we should add like a small terms of service basically where people just agree this is my responsibility or something. The app's defunct now for other reasons.<br/>
<br/>
<strong>max:</strong> That's cool to hear -- everyone's got an interesting Scuttlebutt origin story. Do you want to talk more about Cerca and Lieu, which I'm not pronouncing correctly.<br/>
<br/>
<strong>cblgh:</strong> Yeah, sure. I can do maybe a brief description.<br/>
<br/>
I can start with Lieu because that was the first thing I made of those two. Its described as a web ring search engine or communal search engine. So what it does is basically, instead of searching and crawling the entire internet, which most search engines do today, it instead searches only a pre-specified list of domains, which was natural for the context that I was coming from, which was a webring called the Merveilles webring that I'm a part of. We have like 200 odd sites in there.<br/>
<br/>
There are many cool sites, but it's kind of daunting. You know, when you have this list of like 200 sites -- which one do I start with? I'm not really sure what's in here. And like, even if I start with one, I'll just click in and then maybe it's not really obvious where to go from clicking in.<br/>
<br/>
So I was noticing this kind of fatigue setting in or whatever where I'll click a random site, and I couldn't find anything interesting. Then I'll click another one. Maybe I'll just do that two or three times and then I'm kind of running into boredom. So I wanted to surface all of the really cool stuff that people in this webring were doing -- so that's where Lieu came from. It crawls all of those sites and indexes different kinds of search terms that it's found either in titles or in the body of the text and that kind of stuff.<br/>
<br/>
<strong>max:</strong> I remember you writing something, or I don't know if you just said this or wrote this, but that the limitation of Lieu was actually better for certain types of searching. The example with music was really nice. You were like, "If I Google search 'music', this is not going to give me good music." There's actually certain things that Lieu is better at searching for because of its limitations or its focus.<br/>
<br/>
<strong>cblgh:</strong> Yeah, exactly because I know that this is a particular kind of scene and I kind of have an intuition for what's there. For the Lieu instance I've deployed with the Merveilles Webring, I kind of know that it's kind of design-y focus with a lot of weird niche topics. So a lot of the things that are linked in there will suit the sensibilities that I understand that this collective has. So in that case, I can actually just type in »music» and I'll get lists of different kinds of things -- maybe someone listing their favorite songs -- and it won't be just like, if I search the same thing in DuckDuckGo or Google, where I'll get basically very random ad-fueled search results.<br/>
<br/>
<strong>max:</strong> It also makes me think something cool about this is its sort of a form of retrospective organizing, where instead of someone saying, "we have a community, we're gonna make a music channel," which I guess leads to your next project, Cerca, but instead, this is like, everyone just do your own thing, and then let's find all the times someone mentioned music.<br/>
<br/>
<strong>cblgh:</strong> Yeah, It's taking a different kind of approach to that, for sure. So that's Lieu. And it started out as just being for the Merveilles webring. But then later I made it easily deployable for anyone. It's written in Go and you can download a binary. And basically if you have a small list of websites you want to make searchable, you could download Lieu. You write those small lists, I mean the list of websites in the file, and then you start crawling with Lieu. And you can just spin it up and start using it for search.<br/>
<br/>
So that could work if you have a group of friends and you want to make your collective output searchable. That could be one thing. But you could also just collect some cool sites that you want to be able to search as a kind of a group. You could do that as well.<br/>
<br/>
And then Cerca is the other project you mentioned.<br/>
<br/>
That's kind of come from how I grew up on the internet in a way -- I grew up in internet forums of many different kinds. And I was really missing that kind of, you know, mode of communication that's slower than like real time social media or IRC and more persistent as well. I wasn't really running into that in a lot of places. So it was on my mind for a long time, but II was waiting for a good time to make a forum. Because there are existing software but there aren't that many modern ones—I've been keeping track. The only one that I've seen is Discourse.<br/>
<br/>
And I think it's great that it's kind of brought the forum sensibilities into the modern web, so to speak. But deploying Discourse for a community is super rough. You have to have a pretty beefy machine to make it work. And honestly, I never really liked the aesthetics of Discourse. And I wanted to make something that was a bit more like, I don't know, home-y or customizable or just like, less clinically sterile, you know?<br/>
<br/>
<strong>max:</strong> Yeah, very sterile, very gamified, quantitative vibe from discourse forums.<br/>
<br/>
<strong>cblgh:</strong> Yeah, it's like "I have to level up like: oh, make five posts." I don't know. It kind of struck me as, great that it exists, but I really didn't want to launch it myself.<br/>
<br/>
So before making it I was just having fun and designing a forum software interface that I would want. And the thing I designed didn't end up in cerca at all, but it kind of influenced the things I wanted in cerca. And how I ended up making it was, basically, in Merveilles we have a mastodon instance: merveilles.town. On the instance people started getting excited about forums. And I asked "well, if I make one, would people want to join it?" And people were pretty excited. I had some time, so I kind of banged it out in a couple of weeks.<br/>
<br/>
<strong>max:</strong> I remember thinking another thing I thought was cool about Cerca was the way that you kind of made it in public and immediately had contributors as soon as you started making it.<br/>
<br/>
And just the dynamic of making a piece of software for a community with the community, maybe you want to speak more about that for better or for worse?<br/>
<br/>
<strong>cblgh:</strong> Yeah, it's really nice to be part of a community like that, because it wasn't just me creating something for me and then hoping someone would adopt it. It was like, as you say, I was creating it and then people were joining it and were excited about it and adding new things that I didn't even think of or I didn't have time to do. And that was really energizing in a way, to be creating software in this kind of community context, as opposed to creating something and hoping that it will be used. Because that kind of leads to a lot of overgeneralization, which ultimately actually hinders usage because it's too general, it's not specific enough. It just becomes this really big unyielding beast because you don't know what to anticipate or not. So you have to anticipate everything.<br/>
<br/>
<strong>max:</strong> Do everything.<br/>
<br/>
<strong>cblgh:</strong> Yeah. Whereas for cerca, I was literally in the beginning making it for the Merveilles use case, which has very specific software sensibilities in some sense, which was fun to experiment with. Like a lot of people there don't like client-side JavaScript. So I was trying to make everything in a way where there would be no requirements for client-side JavaScript. And it still doesn't have anything. Which meant going back to, how do you actually make a web form? And how do you handle that stuff?<br/>
<br/>
<strong>max:</strong> Some more traditional programming craft.<br/>
<br/>
<strong>cblgh:</strong> Yeah, and in some sense, that's just really working with the grain of what you get in the web platform, because forms are one of the OG elements of the HTML standard. And they're really easy to work with once you know what you're doing.<br/>
<br/>
<strong>max:</strong> Yeah, I guess that also makes me feel like something about that project then is the code itself It's part of what's interesting about it. It feels like it's a very three-dimensional thing. Like, there's the way you use it. There's the way it was made. And there's the choice of technologies used to make it. And they're kind of like all a part of what makes it creative and interesting. And it seems like you found some joy in all the different parts was my impression.<br/>
<br/>
<strong>cblgh:</strong> Yeah, and I mean, that's kind of one of my personal strategies in general -- basically, my entire mode of operation is having fun while working on projects. And the reason behind that is it's kind of a burnout mitigation strategy. Because if you're having fun and you're being energized by projects, then that's actively decreasing a burnout counter.<br/>
<br/>
<strong>max:</strong> Totally.<br/>
<br/>
<strong>cblgh:</strong> Where if you feel like you have the entire burden of the world on you and just doing this to be a hero or something, that's a very depleting thing. You can only do it for so long. Whereas having fun, like on Cerca or whatever, making Lieu, that's giving more energy to work on that or to work on other things.<br/>
<br/>
<strong>max:</strong> Yeah, it's amazing how many people I know get burned out by whatever work they're doing. It's almost prolific.<br/>
<br/>
<strong>cblgh:</strong> Yeah, I don't know what it's about. People feel like they alone have to shoulder the burdens of a community or something, which is wrong. Like if a community is letting something burn down to the ground, then sometimes that's what needs to happen, you know? It's not your single responsibility to take care of that, because there's an entire community. And if nobody's taking care of it, then yeah, that's just a natural result. We can rebuild something new afterwards.<br/>
<br/>
<strong>max:</strong> Speaking of taking care, you wanna talk about maintenance a little bit? How is it going with Cerca and who is taking care and what's it like with people using it?<br/>
<br/>
<strong>cblgh:</strong> Yeah, sure. So one of the strategies of it was really making something that was low maintenance. I wanted to minimize external dependencies and external infrastructure. So that once you've deployed it, it just keeps on running and you don't have to start debugging mailgun or something. And in that sense, it's been a resounding success. It's just been running and people have been using it off and on.<br/>
<br/>
It has its kind of high tides and low tides. I've seen it start to be used, people rediscovering the forum during things like Inktober where there was a thread where three or four or five people were posting every day and just like sharing each other on, and then after that it was kind of quiet for a while and now it's kind of resurging a little bit again.<br/>
<br/>
<strong>max:</strong> I'm curious what will happen over time too, 'cause I also have this dream of a slower form, communication place, and somehow forums do end up doing that sometimes. Like there was this thread I started on the Activity Pub forum discourse two years ago, and it basically gets consistent replies every few months for two years. It's a really interesting timescale. It's like, if you were to read it all in a row, you'd be like, wow, this is a really interesting conversation with like 20 people. But it happens at an absolute snail pace.<br/>
<br/>
<strong>cblgh:</strong> Yeah, it's fun to be on the receiving end -- you get to literally re-live that experience. It's taking so long in this conversation, which is nice, but an observer just thinks like, wow, this really came together quickly.<br/>
<br/>
<strong>max:</strong> Yeah, they look at it all at once. They have no idea. It's like a weird collapsing of time.<br/>
<br/>
<strong>cblgh:</strong> Yeah and that would never happen with something like a Twitter or a Mastodon, right? Because it's very much fire and forget. I'll have missed if you posted like yesterday because I wasn't online much yesterday. And then that will probably never be resurfaced again for me, which is totally the opposite of forums.<br/>
<br/>
With its maintenance I've been taking a kind of very slow approach and working on it when I felt like it or when something critical came up. One thing I think is really difficult is well-intentioned drive-by contributions. There's this kind of balance you have to straddle between what you want to encourage people to do and make contributions, but at the same time a specific contribution might actually be the wrong direction for the piece of software, if you're the one who has to maintain it in perpetuity. That's a really really difficult thing I think with with maintenance, actually saying no to certain contributions.<br/>
<br/>
And I think I've been good at it in some cases and in other cases, I have some lingering PRs where I'm just like, this is not the right thing, but I also feel bad saying no to someone. So it kind of is just, I don't know, kind of ghosting PRs. (laughing) I don't want to say, "I don't want this." But I also don't want to press merge.<br/>
<br/>
<strong>max:</strong> Ghosting PRs, what a social dilemma of our times.<br/>
<br/>
<strong>cblgh:</strong> I know, right?<br/>
<br/>
<strong>max:</strong> I feel you. I've in the past months received a lot of gifts that I didn't want while I've been in India. It's been interesting. Most of them I've actually just say yes to at this point because I appreciate the intention and I feel like there's some mutually nourishing thing that happens when someone gives me some food, even if it's something that I don't actually want to eat. But for me, it's different eating some food that I don't really want to eat versus yeah, like I remember someone offered me some clothes that I didn't take because I was like, I don't have space in my pack for this. I have a limit where I'll be like although I like accepting and receiving, I'm not willing to accept, I'm not willing to carry around this thing for the next six months, just to like, be agreeable.<br/>
<br/>
<strong>cblgh:</strong> Its interesting, this idea of a gift that is an encumbrance versus a gift that's kind of more relation building in a way.<br/>
<br/>
<strong>max:</strong> Yeah.<br/>
<br/>
<strong>cblgh:</strong> So if someone gave you food, then you can either toss it away or you can eat it, and that's just like, that's a very transient thing, but clothes or like a painting or something. It won't just go away. You kind of become encumbered by it. Same thing with someone adding a PR and you have to merge it because you feel bad. Then it's there and you have to actually actively work to either throw that piece of code out or throw the painting out.<br/>
<br/>
<strong>max:</strong> I almost started to feel bad for interviewing you about Cerca as we were talking about it because based on what you said you're doing this for fun it seems almost like counter to its aim to become the focus of such attention<br/>
<br/>
<strong>cblgh:</strong> No, no, I'm really happy with it and I think about it a lot and I'm very happy every time I see someone make a post, you know, it's like, oh, wow, this is great. Someone created a thread and I didn't have to do anything.<br/>
<br/>
<strong>max:</strong> Nice. Well, in that light, then I'm happy to talk about it. I just was thinking how with some software, the default mode is like, everything has to have a reason and it needs to be optimized and the best. And it's interesting that if you're making something more provisional for fun, maybe that's not true, maybe there are decisions one makes that are like, not ideal or something, but like, it's fine because it's not the purpose of it.<br/>
<br/>
<strong>cblgh:</strong> Well, I think it can be very intentional even with fun stuff. I am actually quite intentional with, for example, cerca and other things I do for fun. Like, if I do decide I'm doing this and I don't really care about the outcome, that's actually an intention, right? It's kind of a way to approach a particular thing.<br/>
<br/>
Every decision I've made with Cerca has been very informed, even if it seems like, oh--it's not using classes because I guess I didn't really care about that. It's like, oh, no, I'm actually doing that because it makes everything so much more composable.<br/>
<br/>
<strong>max:</strong> Not using CSS classes.<br/>
<br/>
<strong>cblgh:</strong> Yeah, exactly. I tried to minimize that.<br/>
<br/>
<strong>max:</strong> Like just doing stuff more inline?<br/>
<br/>
<strong>cblgh:</strong> Yeah, sometimes inline, but also just like styling the default elements.<br/>
<br/>
<strong>max:</strong> Is there anything else you feel that you wanted to say about cerca and lieu? or Should we move on to the other stuff?<br/>
<br/>
<strong>cblgh:</strong> Well, I maybe have a few last thoughts on cerca.<br/>
<br/>
<strong>cblgh:</strong> Like one thing I really wanted with it was to avoid external infrastructure that I mentioned, like which in my case was email and email registrations and email for "I forgot my password"-functionality, which seems important. So I went with this kind of weird thing that was informed by doing way too much peer-to-peer stuff using public keys and shit.<br/>
<br/>
And I think I might be kind of, I haven't unpacked it yet, but I think it's an interesting thing where I didn't want the email infrastructure, but I did want people to be able to reset their passwords. So I kind of invented this thing of "here's a public key and you can use it to kind of reset your password", which was in effect kind of cumbersome for people. I mean, you have to download a separate tool and then you have to remember the second thing, but it kind of gave me permission to not do the default thing. And I think it's an interesting, not really sure what to call it, even like a technique or whatever, like: "okay, people can plausibly restore their passwords. So therefore, I'm freed of this kind of default constraint of having to service this by email."<br/>
<br/>
<strong>max:</strong> I feel you on the email thing, actually that just reminded me one of my tasks for today is to fix the email sending for the self-hosted outline.<br/>
<br/>
<strong>cblgh:</strong> Yeah its just like such a thing.<br/>
<br/>
<strong>max:</strong> an annoying task<br/>
<br/>
<strong>cblgh:</strong> But where I think I want to go with it actually, and next time I'm gonna have a batch of work working on it, is I'm going to try to use what's called timed one-time passwords, which are basically these codes that you find if you use like a Google Authenticator; that's a standardized technique. And you can actually implement that in something like Cerca. It's decentralized as hell basically.<br/>
<br/>
<strong>max:</strong> How do you send someone the code if there's no email?<br/>
<br/>
<strong>cblgh:</strong> I haven't actually implemented yet. So my details on this are very scant. But basically, when they register, they get this code that they put into their Authenticator app. And they probably have an Authenticator app for logging into all kinds of things today. So if they want to reset their password, they could do it using this kind of second proof from the Authenticator app.<br/>
<br/>
<strong>max:</strong> I got you. So to prove that you're you-- You supply a password from the Authenticator app that is somehow connected to this account, but that only you can produce.<br/>
<br/>
<strong>cblgh:</strong> Yeah, and you can even go further and you can just say, well, you don't even have to log in with a password if you don't want to, you could just use your Authenticator app.<br/>
<br/>
<strong>max:</strong> Nice.<br/>
<br/>
<strong>cblgh:</strong> So that's something I wanna explore. And being able to explore that was only made possible by doing this really cumbersome strange thing that I started with. It's just like a small side note that I think is kind of interesting -- if you do tread off the beaten path it opens up other things.<br/>
<br/>
<strong>max:</strong> It's a small but big choice to not include email as dependency. It takes you off the standard app.<br/>
<br/>
<strong>cblgh:</strong> But yeah, I think that closes the chapter on cerca for now.<br/>
<br/>
<br/>
============================<br/>
<br/>
<a id="part3">III: COMPOSABLE SOLIDARITY INFRASTRUCTURE</a><br/>
<br/>
<strong>max:</strong> do you want to speak about some visions you're having?<br/>
<br/>
<strong>cblgh:</strong> Do you want to narrow it down? I've got a lot of thoughts.<br/>
<br/>
<strong>max:</strong> No, I don't feel like narrowing it down. It's whatever is most alive for you.<br/>
<br/>
<strong>cblgh:</strong> Okay, interesting.<br/>
<br/>
Yeah, so, one thing that's been on my mind for a year at least and that I've been starting to approach people about, is this idea of reusable and composable infrastructural components, in particular for peer-to-peer systems.<br/>
<br/>
So it's like, we have these different projects, right? And this is not necessarily a take that a lot of people agree with, but personally I don't really like interoperability that much because we are underfunded as hell, you know? It's like, so if someone's going to tell me, well, now you need to support SSB in cabal as well, that just doesn't make sense for a lot of reasons because the contexts are different, right? Cabal is very much IRC style, whereas SSB clients today are more forum style. So the general viewing contexts are different.<br/>
<br/>
So where can we collaborate instead of just like, you know, having literally the same protocol? And where I think it makes sense is on the infrastructure level where like, okay, we have this protocol, you have that protocol, this third group has another protocol, but we all need to reach each other, right? We have this notion of we want to find peers. Like, can we somehow collaborate on that level of things? Because that's a very, in some sense, permissionless level of collaborating. We don't need to change our protocol just because we're using the same infrastructure.<br/>
<br/>
And it kind of makes it less competitive in some sense, it becomes way more collaborative. So that's kind of what I've been thinking about, like, okay, how, what parts of the stack, like what exists today that we could use in multiple projects? And that's kind of an ongoing research project right now for me.<br/>
<br/>
Like I'm exploring this a little bit with the p2panda team, where we're doing small experiments on this kind of old technology called I2P, which is like tor, but it's way more kind of peer-to-peer oriented, whereas tor is kind of more client server in its architecture. We're doing small experiments there to kind of get a feel for it. Like, can we create a website and we can visit it like over like very unconfigured devices? And yes, we could. That was really cool. A person in UK on a mobile network could visit my website thats being hosted on i2p on a computer that was completely unconfigured with regards to firewalls and stuff. So that was super cool.<br/>
<br/>
So yeah, that's kind of like exploring that general area of what infrastructure do we have today? What infrastructure could we kind of collectively manage you know, and could collectively use and what could that collaboration, what kind of shapes can that take for example? We could have maybe an open, if we do find a very good component that's usable in many projects, we could have an open collective for example, to fund all of the engagement for that, whereas some of it would go for server costs, but also just for stuff like, you know, like an hourly wage for everything that's relating to the infrastructure bits.<br/>
<br/>
<strong>max:</strong> I like this idea, but what are some of the possible functionality for components that come to mind that could be shared between projects? So you said like peer discovery or something?<br/>
<br/>
<strong>cblgh:</strong> Yeah, so we'd just be basically, you know, the underlying DHT. So yeah, it's peer discovery. It's like, so we have a peer-to-peer system, which means these peers need to find each other somehow and they need to find each other in some way that's resilient across, you know, regular, unconfigured computers. So are there components that exist that work in multiple programming languages? Which is a big barrier. For example, Hyperswarm today is very much Node-js only. It's been trying to be ported to Rust for a long time, which means it's very difficult to port to different languages. So yeah, it's for sure basically just like, how can these peers find each other? And then once they've found each other, you just do your application-level concerns.<br/>
<br/>
<strong>max:</strong> Are there any other composable pieces that come to mind?<br/>
<br/>
<strong>cblgh:</strong> I mean, for me, it's mainly that because it's the biggest thing.<br/>
<br/>
<strong>max:</strong> it breaks away from the current paradigm because it's something smaller than most of the current protocols. most of the protocols are usually including more than just that<br/>
<br/>
<strong>cblgh:</strong> each protocol kind of makes their own decision on that and it would be great if we could find something that works for everyone or for many actors rather than just one.<br/>
<br/>
<br/>
===========================<br/>
<br/>
<a id="part4">IV: FIVE MINUTES ABOUT THE INTERNET</a><br/>
<br/>
<br/>
<strong>max:</strong> Okay. How about this? Can we talk about the internet for five minutes? Because I'm just curious -- so I've heard some people say the internet is decentralized. People talk about how there can be many networks on Scuttlebutt, like an archipelago, many networks, internets and stuff. And it doesn't have to have this global connectivity. But then when I researched it more, I had heard about it but I had never really thought about how there's these like different tiers of Internet Service Providers. And basically, as I understand it, the definition of a Tier 1 Internet Service Provider is that they peer with all other Tier 1 Internet Service Providers for free and that they know the routes to any possible IP address. And so another way of saying that is that tier one ISP by its definition is centralized. There can only be one tier one, if the definition of tier one is "peers with all other tier ones and knows every route".<br/>
<br/>
That was interesting to me. I mean it's not centralized in that there's not one player because there's multiple, but it's central or it's universal maybe. Which also made more sense with like the common way people talk about the internet which is like, are "Are you connected to The internet?" Like using the word "the" instead of "a". Before I was like, is that a misnomer? But then after learning about this, I was like, well, if you mean the tier one internet, then maybe that is correct. It's singular.<br/>
<br/>
<strong>cblgh:</strong> - Yeah, its interesting. I don't know so much about the actual details there (bird squawks) but there's a lot that goes on outside of like, "Oh yeah, here's my domain. I registered it with, I don't know, GoDaddy" or whatever. Because as you say, we have these like tiers where, DNS is decentralized in that you have different regions that decide over their TLDs. And then you can register like in this kind of semi, basically hierarchical, but decentralized way. But at the end of everything you still have like root certificates that are controlled by like 11 people or something scattered around the world who can like change the root domain name things. Yeah like anyone could start an isp but I don't really know how you become a t1 kind of provider.<br/>
<br/>
<strong>max:</strong> Yeah that's what I was getting at. that's the way to say it. anyone could start a tier 3 provider, that part you can definitely get going, but if you want to become a tier 1 provider you kind of have to be like a really big organization with a ton of money. But then on the positive side I get the feeling that maybe because of the way it's designed it's still like decentralizing of power because it doesn't really feel like the tier 1 providers have much power -- like they can't really do preferred traffic. They're not able to like insert advertisements into the stuff. So it's somehow there's something about it that's working even though it's kind of centralized. This is all pretty half-baked.<br/>
<br/>
<strong>cblgh:</strong> Who are some of the organizations that are tier one providers?<br/>
<br/>
<strong>max:</strong> There's a bunch of them but like AT&T, level three, there's one in India called Tata Communication. So yeah, it doesn't feel like a a cabal to use your word. It just feels like a weird conglomerate of these giant companies that somehow make some money from doing it, but it also seems competitive enough that it's not like one monopoly where they're super hiking the price to profit off of everyone using the internet.<br/>
<br/>
<strong>cblgh:</strong> It's mostly like they need to cooperate because otherwise I would have to sign up with AT&T internet and I wouldn't be able to access like I don't know whatever this Swedish T1 provider would be right. So for them it's like well, we'll provide the best service if we just peer with each other for free and then we can together make money off of the internet users<br/>
<br/>
<strong>max:</strong> that seems like a good five minutes. Let's switch to talking about cabal.<br/>
<br/>
<br/>
=========================<br/>
<br/>
<a id="part5">V: CABAL & P2P DELETE</a><br/>
<br/>
<br/>
<strong>max:</strong> let's talk about Cabal. What's the state of cabal and what are your plans for it right now?<br/>
<br/>
<strong>cblgh:</strong> The state of Cabal, yeah. So Cabal's a peer-to-peer group chat I kind of took the initiative on in 2018 April. So it's soon to be five years. Basically just started working on it with friends that I got to know through cabal. So we've been working on it since then. So: it's a community project, no company behind it, similar in concepts to like Discord, but what if you weren't owned by VCs and you didn't have to run a server and that kind of stuff. Peer to peer and it works offline.<br/>
<br/>
What's been going on recently is last year I was kind of spending a lot of my time writing grants for it, like I wrote two grants and have been kind of lucky enough to stumble into a third one. The first one I wrote didn't actually pan out. Like I submitted but we didn't get anything from it and then the second one actually went through. Which is kind of what I'm in a sense, I mean like going to make a living off of this year. So it's me and Kira from the project who are working on it this year for this grant. And I can go into what that is.<br/>
<br/>
And the third one was, I was lucky enough to just like get in touch with a friend who's working a lot in the design space. And through her, it turned out she had, this friend is Eileen, and it turned out she had kind of like like an independent budget to kind of help projects with. And that evolved into designing a new kind of web presence for cabal, which is wrapping up this week. And then we'll kind of make a new website based on the designs we've gotten. So a lot of things that were kind of seeded last year are coming to fruition this year, which is really exciting.<br/>
<br/>
<strong>max:</strong> that's cool. Speaking of the sustainability of open source and different pathways for projects, It's been cool for me getting to see the slow burn and multiple phases of Cabal over the years. That's cool that it's getting a new wave.<br/>
<br/>
<strong>cblgh:</strong> Yeah, for sure. And one of the things that has kept it alive is really this perspective of this is a no burnout zone, which is like one of our explicitly stated values and just only working on it when it's fun and doing things for fun.<br/>
<br/>
<strong>max:</strong> And also the fact it's no servers, I think was a beautiful point about Beaker, but also cabal, like you don't have operating costs as far as I know. So that's pretty cool. You don't really operate by startup logic.<br/>
<br/>
<strong>cblgh:</strong> Exactly, exactly. Like as long as each person that kind of comes online in a cabal is adding more resources and kind of connectivity to it. So some people might have a really hard time connecting to others because of just how the way routers work today with NATs like stuff like that.<br/>
<br/>
<strong>cblgh:</strong> so what we're doing for Cabal this year is we're actually rebuilding it from the ground up. So Cabal today, as it works when we're chatting on like any Cabal is building on top of this hypercore dat stack where we have the hypercore append-only log and we have the hyperswarm DHT. So each person in the cabal has this kind of append-only log that they write messages to. And then we kind of, we find other peers, other people, through using this hyperswarm network, the hyperswarm DHT. And we create a chat, like, you know, like—I'm saying something, you're saying something, the third person is saying something—that view, by taking all of these logs, and then kind of mixing them together and interlacing their different entries based on when they were written. The problem is we don't really control that tech stack at all. Like, and we've seen a lot of issues where, not issues, but I mean, it's been existing for five years. We have a lot of experience of like, what works and what kind of doesn't work as we would kind of want it to work.<br/>
<br/>
And one of those is the question of delete. Hypercore is an append only log. And in the name you hear it's something you can only add to, you can't remove from it. And it's nice for some reasons, it makes synchronization across the network a lot easier because if you know that you have this list of things that is only ever added to, then you can have an efficient sync by saying, "oh, hey, Max, I know that you have, from where I'm sitting, your latest message was number 59. Give me anything that's newer than 59." That's a very easy synchronization protocol. But in something that's append-only you can't delete. So if you accidentally post your credit card number because you think you're in a web form or accidentally leak something there, you can't retract it. And that's a really, really, really heavy concern for something like a group chat, especially where someone might come in and just like post something horrible and now you're stuck with that.<br/>
<br/>
<strong>max:</strong> Are you trying to add delete in some patchwork fashion or just accepting that as a limitation of the software?<br/>
<br/>
<strong>cblgh:</strong> Yeah, so we're actually saying, "Well, how about we make something custom from the ground up?" And we're doing that with what we're calling cable, a wire protocol, which has kind of been collaboratively specced out among us Cabal devs and community. And what the grant is about is kind of officializing that and really implementing it in a way where we have a spec that's very clear for anyone who's outside of the dev team to be able to read and then implement an independent version. So that means that Cabal, instead of just living in nodejs land, will be able to be implemented in Rust or Ruby or Python or Go.<br/>
<br/>
Because what we're doing is we're specing the individual bytes that each message is composed of. And instead of having this idea of an append-only log, we're kind of going this alternate route of saying, Well, we have this identity idea of public keys and private keys, where if I write a message, then I can sign that message with my private key. And as long as you get that message from anywhere, you don't even have to get directly from me, and if you know what my public key is, then you can verify the authenticity of that message by just checking the signature. So it kind of prevents fraudulent messages in a way where someone could not say, send a message that seems like it comes from me without that being able to be checked.And we're using that concept, but without having to put it into this linear, increase-only fashion.<br/>
<br/>
Instead we have this idea of kind of a grab bag of messages. So since we don't have this strict append only concept anymore, we just have a bag of messages that makes delete very easy. Because if you want to delete something, you can just like basically, in one sense, remove it from your local database. And you can also publish your message. So when other people request like "what messages have you written", among those that you send as a response is "actually this thing that I wrote in the past, I've deleted that. Please delete that as well and save this delete message in case someone else requests new messages from you."<br/>
<br/>
<strong>max:</strong> That's great. What does that mean that you are, so it's not depending on hypercore and hypers, you're like, you've made a new foundational protocol.<br/>
<br/>
<strong>cblgh:</strong> eah, it's a new protocol for sure.<br/>
<br/>
<strong>max:</strong> Cable is the name of the new protocol or cable is the whole thing, including the way that Cabal uses it?<br/>
<br/>
<strong>cblgh:</strong> Yeah, so currently Cable is just the name of, what we're calling the wire protocol, like the specification of the bytes. And then we'll see where we go from there. But that's what we're doing as part of the grants. So Kira is right now finishing up the first draft of the specification. And then we're gonna have an RFC process where we invite people to come and give their feedback and read through the spec and say "well, this thing you should maybe do differently. This thing was very nicely written." and stuff like that. And in parallel to that, I'm basically implementing both the low level stuff as well as the kind of application level interfaces.<br/>
<br/>
<strong>max:</strong> That's awesome. I'm really glad we got a chance to talk about this. I thought you were doing something totally different.<br/>
<br/>
<strong>cblgh:</strong> What did you think?<br/>
<br/>
<strong>max:</strong> I don't know. I think I thought you were continuing with Cabal as it was, but making mobile clients and some other stuff. I just somehow missed the update that there was this new protocol.<br/>
<br/>
<strong>cblgh:</strong> Yeah, for sure. I can maybe link to the--I wrote a text update when we announced the grant and stuff from our open-collective Yeah, I'll link that for sure. https://opencollective.com/cabal-club/updates/cabal-2022-in-review-two-grants-and-a-new-wire-protocol-later<br/>
<br/>
<strong>max:</strong> That's really exciting to me.<br/>
<br/>
I was having a somewhat funny feeling just thinking, you know, it's a famous essay, the one that's like critical of P2P because it's bad on privacy written by the person from the New Design Congress whose name I'm forgetting.<br/>
<br/>
<strong>cblgh:</strong> Yeah, Cade Diehm.<br/>
<br/>
<strong>max:</strong> Yeah, yeah. Somehow I was thinking about that essay again. You know what it was is because of the growing popularity of the Fediverse, it almost was feeling like an even more real possibility that there will be this infrastructural switch in the next 5, 10 years where way more stuff is not in the corporate cloud and is in these more localized clouds and home servers. And I was just feeling like, okay, there's going to be some good parts about that, but the shitty part about that is how much more identifiable everyone is. There was this obscurity in the cloud, and it would be a bit sad if that's lost. And so just hearing about your implementing delete makes me happy because then that's at least one major vector of vulnerability that is removed. Because if you can really delete stuff, then that makes you a lot less vulnerable to accidentally posting some shit that is going to cause problems for you later.<br/>
<br/>
<strong>cblgh:</strong> And yeah, it'll be very interesting to see. And it feels like we're part of this wave of like, you know, okay, we've been using these peer-to-peer systems, what can we do differently now? Like, we started specing this out in 2021, when we (max and cblgh) actually met in Svendborg. we (some cabal devs) were actually cohacking on the spec there.<br/>
<br/>
<strong>max:</strong> Mmm I remember that.<br/>
<br/>
<strong>cblgh:</strong> and we're not the only ones. Like there's a lot of kind of questioning going on, both in SSB, you know, where Andre Staltz has said, he was very close to burnout and his kind of answer to that was he needs to kind of take it easy with the main Manyverse development. I think he's gonna have some other devs continue doing patches, But instead research what could be a new version of SSB that keeps the good parts but kind of removes the bad parts that has been burning people out. So it's definitely kind of new wave kind of vibes going on in the space in general to kind of continue the speculative stuff. So we'll see what happens.<br/>
<br/>
<br/>
============================<br/>
<br/>
<a id="part6">VI: CLOSING / LOCAL TRANSCRIPTION</a><br/>
<br/>
<strong>max:</strong> Thanks, and I'll message you once I get a chance to transcribe. I'm kind of hoping I can use some transcription software because this is really long. I have to look into that.<br/>
<br/>
<strong>cblgh:</strong> As long as you don't send my stuff to OpenAI I am fine.<br/>
<br/>
<strong>max:</strong> Is that an actual boundary? I haven't looked into how transcription will work.<br/>
<br/>
<strong>cblgh:</strong> Well, I wouldn't want them to have my voice and shit, you know.<br/>
<br/>
<strong>max:</strong> I'll look for some local transcription. I think I did see at least see someone share one for Mac. So I just need to find a Linux one.<br/>
<br/>
<strong>cblgh:</strong> Nice.<br/>
<br/>
OK, talk to you later.<br/>
Sure.<br/>
Bye-bye.<br/>
(birds chirping)<br/>
[whistle]<br/>
[BEEP]<br/>
(beeping)<br/>
[BEEP]<br/>
[whistle]<br/>
[BLANK_AUDIO]<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<hr/>
<footer>
<p>
This micro-website is a part of the <a href="http://server-friends-ring.glitch.me/">server-friends!</a> web-ring, initiated by <a href="https://wangyifan.io/">Yifan</a>,
containing self-hosted websites by different participants of the Solidarity Infrastructures class.
</p>
<br/>
<div id='webring'>
<script type="text/javascript" src="http://server-friends-ring.glitch.me/onionring-variables.js"></script>
<!-- <script type="text/javascript" src="/onionring-variables.js"></script>-->
<script type="text/javascript" src="http://server-friends-ring.glitch.me/onionring-widget.js"></script>
<!-- <script type="text/javascript" src="/onionring-widget.js"></script>-->
</div>
</footer>
<br/><br/>
</main>
</body>
</html>

982
cblgh-processed.html Normal file
View File

@ -0,0 +1,982 @@
*Table Of Contents*<br/><br/>
<br/>
<br/>
I: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE<br/>
II: LIEU, CERCA, FORUMS & SEARCH<br/>
III: COMPOSABLE SOLIDARITY INFRASTRUCTURE<br/>
IV: FIVE MINUTES ABOUT THE INTERNET<br/>
V: CABAL & P2P DELETE<br/>
VI: CLOSING, LOCAL TRANSCRIPTION<br/>
<br/>
================================<br/>
<br/>
I: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE<br/>
<br/>
max: I hear a fair amount of people talk about software governance,<br/>
but I somehow feel like I haven't had first-hand experience to see when it goes wrong.<br/>
<br/>
Have you ever had an experience where you were using something or contributing to something,<br/>
and then it went in a direction that you didn't want or was like counter to the aims of some<br/>
group of users or contributors?<br/>
<br/>
cblgh: Yeah I've had some -- I wouldn't put it so harshly, but in some senses I was making a lot of dat stuff, using this kind of foundational thing called hypercore and append-only logs, so that's what that was all built around.<br/>
<br/>
So there was a very vibrant community of people, -- artists, software engineers, interested onlookers -- all making stuff using Hypercore and Dat and Beaker Browser. And that project kind of took a turn away from the community in some senses, where the lead developer, who's kind of written basically all of the foundational structure, decided to go a different path, away from making it community managed to instead being more managed by, or making more explicit, this foundational structure. hypercore is managed by the devs, which is good that it became very clear, because people were becoming confused on some decisions and stuff like that.<br/>
<br/>
But you know, Beaker browser is no longer working, right? And all of the things that people built using Beaker browser are also in a sense inaccessible. And that's one example of where that kind of governance thing did not really go in the way of the community, but rather the way of the devs.<br/>
<br/>
So it kind of was rebranded from that to Hypercore Protocol. And then more recently, its been rebranded to the holepunch platform, which has become VC funded in a way, but really it's more like a cryptocurrency funded thing; so there's a big Bitcoin backing in the company. It's very much taken a different path than I think a lot of people would have wanted.<br/>
<br/>
max: Thanks for that story. That brought up a bunch of questions for me.<br/>
One is what is success or failure for governance<br/>
or sustainability of an open source project?<br/>
<br/>
I have a first impulse, which is like,<br/>
if it doesn't last forever, it's a failure.<br/>
<br/>
But what are the really lasting open source projects<br/>
we can look to?<br/>
Are there even any?<br/>
is it Linux or something else?<br/>
<br/>
And then I had a second impulse, which was like,<br/>
that's a little silly -- it's not really like things need to last forever.<br/>
To be worthwhile, there's certainly<br/>
projects which were experimental and valuable.<br/>
<br/>
Maybe Beaker Browser might be one of those where it inspired a lot of people<br/>
and maybe influenced the discourse and future projects that are going to be made.<br/>
<br/>
And sure, it's a bummer that some of the things people made<br/>
on Beaker are going to be unmaintained or abandoned,<br/>
But it would also seem extreme to say this project was a failure.<br/>
<br/>
cblgh: for sure, it all depends on what you are evaluating it along. One thing Beaker Browser could have done instead of labeling the project defunct, is at an earlier stage, they could have maybe tried to find someone in the community that was excited to receive the stewardship and take it in a different direction.<br/>
<br/>
max: There could have been a more active engagement with that instead of just saying this is over.<br/>
<br/>
cblgh: But it's also very difficult and intertwined with burning out and stuff. I'm not sure Paul burnt out on it,<br/>
but I certainly think he worked very, very hard for very long. And now it's defunct. It's very hard to do a handoff when you're already struggling to keep your head above water in a way, you know?<br/>
<br/>
max: Yeah, that might not be the most energizing part of the project.<br/>
<br/>
cblgh: - so in some senses, if it's a success, then when you realize it's a success, you have to start preparing, like "the will" for the project while you have the energy to do that.<br/>
<br/>
max: especially with a project that big,<br/>
I would imagine there's someone who would be interested,<br/>
even if it was just like a college student,<br/>
for someone who wants to develop their skills and make a resume or something,<br/>
maybe being able to take on the responsibility<br/>
for such a big project is kind of an appealing concept in some ways.<br/>
<br/>
cblgh: Yeah, and one of the benefits of this software is there's not this big expensive cloud infrastructure you need to keep running.<br/>
<br/>
max: That's true. So it's not like it turns off one day.<br/>
It just needs someone in their room with an internet connection still working on it.<br/>
<br/>
cblgh: You could basically have had Beaker Browser as it was and just keep it on long-term support where people were just using the things that were already there, and maybe wishing for better tools. But if it could have just been kept alive, then I think that would have been a vibrant small corner instead of having to pursue the path of existing alongside Mozilla or Chromium.<br/>
<br/>
max: The other project I've been thinking about<br/>
on this topic is the Fediverse<br/>
because there's now this interest from Medium<br/>
and even Meta to use ActivityPub.<br/>
And we'll see what happens in the next years.<br/>
But to me, it seems like one possible outcome<br/>
is that it actually gets a lot of adoption.<br/>
And I've even heard the term, the corpoverse, thrown around.<br/>
<br/>
And I was thinking, what would that mean?<br/>
This is all a bit speculative, because it could also not<br/>
happen.<br/>
But I was like, wow, that would be interesting<br/>
if this kind of slow burning project of anarchists<br/>
and volunteers eventually achieve such large-scale influence and even if the<br/>
original people setting up servers and stuff were kind of more at this like<br/>
experimental scale - and so I feel like maybe that is how things<br/>
sometimes happen - that an experiment ends up having a big influence<br/>
not because the people doing the experiment try to make it have a big<br/>
influence but because it eventually influences large-scale actors to do something different.<br/>
<br/>
cblgh: Yeah, that's one of the rare occasions where scrappy people can kind of choose the fork in the future. It also brings to mind other examples -- I mean this has been going on for as long as there have been Bohemians and artists right? This is like gentrification by another name. Oh this was successful, this was a cool place to be. I guess we gotta exist there to be cool and extract the value.<br/>
<br/>
max: Yea its an interesting analogy. I guess the other question though is because some people are critical of the corpoverse, asking is it gonna even have any of the good parts of the old fediverse, and my optimistic vision of it is that it does maintain the good parts. maybe it's not as pure as the original,<br/>
the non-corpo fediverse, but it wouldn't be just like gentrification because with gentrification it sometimes feels like here's a place where some creative interesting things were happening and then once it reaches the commercialized stage it actually doesn't really have anything particularly in common with what it used to be like, it's just an extractive process that happens on top of something else. And also going back to how we started this conversation, "the internet" just popped into my head as a successful open source project. I think this might be what's actually getting me to research this more, because I feel like the<br/>
internet is weirdly one that worked. Obviously there's lots of shit things that have been done on top of the internet or with the internet, but the core protocols themselves seem like<br/>
they were somehow like a fairly positive example of how open source can go.<br/>
<br/>
cblgh: Yeah, I think so. Like sometimes you have these like runoff successes that the rest of the commercial world just has to cope with. Like I'm sure big companies would have rather had, you know, like what if we had Facebook, internet, where I just pay a monthly subscription to access like the zucknet right?<br/>
<br/>
max: Totally yeah.<br/>
If a corporation had done that from beginning it could have been like that.<br/>
There could be an advertisement embedded into every packet.<br/>
<br/>
cblgh: Yeah. You're doing like packet inspection and suddenly it's just like, "have you heard about this new movie?"<br/>
<br/>
max: Literally, it could be like that but it's not.<br/>
Wow, that just made me excited to have that clarity.<br/>
So yeah, I would be hopeful that the mastodon or whatever protocols, even if they were to<br/>
eventually get success, could have that same capacity as the current internet where it<br/>
would be like, of course, these corporations would love to have their advertisements embedded<br/>
in every little stream, but like, it's just not the way the protocol works.<br/>
So it's like you can't really do that.<br/>
<br/>
cblgh: Yeah, I can imagine that. And then in some ways, you know, from like an ecosystem perspective, this is just something I've been learning like the last year of, you know, you have these, and I'm not sure what they're called, I think like forerunner frontier species that enter a degraded ecosystem, and they're the ones that are hardy enough to grow there. And when they grow, they kind of create the circumstances for other less hardy things to grow, which will eventually actually supplant these frontier species because it grows longer and stronger and start shading them out. And I think that really happens a lot with technologies that kind of tangent this social realm as well where you have these hardy, and I don't really like the term frontier because it has a lot of baggage, but yeah, like these hardy initiative takers or whatever that are willing to come into a new space and experiment.<br/>
<br/>
And typically it's a lot of marginalized communities, are the ones who will first embrace something new.<br/>
And they kind of work it out, you know, and they figure out what works, what doesn't work, and they start making it cool. But when it kind of becomes more popular more commercialized, you know, they might not feel comfortable there anymore. So it's an interesting dynamic and I'm not necessarily being very doomerism about Fediverse. I'm more like just observing dynamics. Just from how the technology works, I would think that you can still have you know, like a very alternative subset of the Fediverse that just like de-federates from everything except their friends.<br/>
<br/>
max: Yeah, I would optimistically believe so as well.<br/>
<br/>
cblgh: But I think we would still have a different vibe and people wouldn't get, you know, very radical or interesting minded people probably wouldn't even give it a chance if it was like as commonly accepted as Facebook or whatever. I don't know. I think it's interesting dynamic with these like groups that come in to a new space and experiment and then are eventually just like you know in some senses by the dynamics kind of crowded out.<br/>
<br/>
max: Yeah, I like your comparison with the ecosystem<br/>
waves of succession. You know like intuitively I feel still like I don't really know how all this<br/>
stuff works. I feel almost like my stomach dropping sometimes when I think about it,<br/>
just feeling like its a mystery, but it's at least a nice possible model. I'm definitely not going to say that's not how it works. And it's a nice alternative that goes beyond, oh, you just do<br/>
small things or small things that don't matter or big things that make a difference.<br/>
and it provides a different possible paradigm.<br/>
<br/>
Because yeah, I guess when I felt that way when I was reading about the internet too,<br/>
that it was kind of exhausting to feel like at this point with the tier one ISPs, they're<br/>
so big that if you really wanted to do anything involving that, you would have to be so knee-deep in industrial workings that I'm just like, I don't...<br/>
<br/>
cblgh: Yeah, it's impossible, right? I'm never going to do that. I don't have the wherewithal to become a T1 provider. That's just like in stories of revenge, you know, you aim to become the kings, so you can bring down the empire from within. Like nobody does that in real life.<br/>
<br/>
max: - Yeah, I don't have the energy for that.<br/>
<br/>
cblgh: - But I mean, in that case, you know, that realization opens up for like, well, I don't have the energy for that. Obviously. What can we do instead? Like maybe we just do some weird radio shit, you know, like where we buy a bunch of radios and we start sending packets over radios or something. It's a much smaller scale.<br/>
<br/>
max: Yeah, I think this is why a lot of anarchist logics and like small scale projects appealed to me was because they were stuff you could do and you could start doing now and not necessarily have to like spend a lifetime learning like legal codes.<br/>
<br/>
cblgh: Yeah, and once you get like the kind of immediacy from the feedback loop, it's really self-feeding as well like, "Oh, I got this thing working and I can show it to someone and they can become excited and then we can do it together." And instead of you know having to study something for like two years before you can actually see something on the screen or whatever.<br/>
<br/>
max: That's true. Getting some real feedback. Also one of the joys and addictions of programming.<br/>
<br/>
================================<br/>
<br/>
II: LIEU, CERCA, FORUMS & SEARCH<br/>
<br/>
max: So the projects I was thinking about talking about were cerca and lieu<br/>
But was there anything else that you thought would be relevant to these topics?<br/>
<br/>
cblgh: Is this the term that you want to use, like solidarity infrastructure? So like, Lieu and Cerca are definitely like two very clear projects in that respect. Like how I kind of got started into this way of doing things might be interesting, I'm not sure.<br/>
<br/>
max: Yeah, that sounds great.<br/>
<br/>
cblgh: It all goes back to 10, 12 years ago. Basically, I started my HTML, JavaScript,<br/>
I mean, just like journey or whatever, like learning that kind of stuff through a project<br/>
I made with two friends called Piraltorodio, which is Swedish for pirate radio, which is kind of like a tongue-in-cheek kind of name. And basically that kind of revolved around making these collaborative playlists. So the idea was like, I listened to music on YouTube and I listened to music on SoundCloud and on Bandcamp. And I thought it was kind of silly or annoying that I couldn't just make a playlist with music from all of these things and then send to someone or we could listen to it together.<br/>
So that's what Keraltraudio was. It was basically just like a database that had lists of links and then a front-end that kind of put these links together. And we had some special kind of resolving and embedding things that put things on the page. So when we render the list of all these different links, we would kind of get the song title. And when you click on a thing, we'd actually start playing on the page. So that's kind of how I got into all of this stuff. Because from there, I found different kinds of--yeah, other projects, basically.<br/>
<br/>
max: What type of things did you discover,<br/>
if you remember from working on that?<br/>
<br/>
cblgh: - Yeah, so one thing that was, I mean, very many things, it's like collaborating with other people and how to do that in a way that works best for the group, and for me. One thing that I reflected on, is that I really like this way of collaborating with people where you don't step on each other's toes too much. So like I have one area that I'm focusing on and then another person has another area. And our collaboration kind of consists of us working on these two different things and then gluing those things together, right?<br/>
<br/>
max: - Totally.<br/>
<br/>
cblgh: - So that's one thing. But the other thing was we kind of thought it was a bit scary to have this database of links, even if it was only links, we didn't download anything. And started looking for like, how could we do this in a decentralized way? Which is how I started looking into IPFS that then eventually found Scuttlebutt. Yeah, so then I started making stuff using that and I made a thing called Datradio, which was very inspired by this. Which was kind of doing the same thing, but using dat archives. So someone could work in the Beaker Browser, this now defunct, but very cool project where you could create websites directly in the browser. It was using its API.<br/>
<br/>
So we just say like, here's the app itself, and then you would fork it. And now you have the entire app in your browser. And then you can add stuff into that app and share links so that other people can just listen to that.<br/>
<br/>
max: And through that, remove yourself<br/>
from this liability of hosting these links.<br/>
if everyone was just forking their own and having them on their machine. It's really amazing how much<br/>
creativity and innovation copyright law has fueled out of teenage angst towards the like<br/>
annoyance that these people don't want you to download stuff for free.<br/>
<br/>
cblgh: Yeah, because it's scary like people just want to make something fun, but then when they've they've made something fun, they're kind of getting anxious like, fuck, are we gonna get, are we gonna get wrecked for this? Like, I'm not a lawyer, like, I don't know literally everything about what's legal or not.<br/>
<br/>
max: I feel you. And they did wreck some people back in the day,<br/>
like, that was like a specific approach/strategy of anti<br/>
pirating legal stuff was to like, come down really hard on a<br/>
few individuals who were kind of like, not really doing anything<br/>
other than whatever downloaded a bunch of stuff.<br/>
<br/>
cblgh: Yeah, yeah. And actually with that pirotroli thing, we actually did like go to a lawyer and like pay him like a small amount to just like review were we doing anything bad and his take was no, we're not doing anything bad, but we should add like a small like, uh, terms of service basically where people just agree like, yeah, this is, uh, this is my responsibility or something. The app's defunct now for other reasons.<br/>
<br/>
max: That's cool, especially hearing this.<br/>
Everyone's got an interesting Scuttlebutt origin story.<br/>
And then, yeah, do you want to talk more about Cerca and Lieu,<br/>
which I'm not pronouncing correctly.<br/>
<br/>
cblgh: Yeah, yeah, sure. Yeah, I can do maybe a brief description.<br/>
<br/>
max: Yeah, I guess starting with what they are just because that will help for the transcript<br/>
and people listening and then maybe talking about what inspired it, what<br/>
you learned, if there was anything that was weird.<br/>
<br/>
cblgh: Yeah, for sure.<br/>
<br/>
Yes, I can start with Lieu because that was the first thing I made of those two. And it's kind of described as a web ring search engine or communal search engine. So what it does is basically, instead of searching and crawling the entire internet, which most search engines do today, it instead searches only a pre-specified list of domains, which was natural for the context that I was coming from, which was I'm part of<br/>
a webring called the Merveilles webring. And we have like 200 odd sites in there.<br/>
<br/>
There are many cool sites, but it's kind of daunting. You know, when you have this list of like 200 sites,<br/>
like which one do I start with? I'm not really sure what's in here. And like, even if I start with one, I'll just click in and then maybe it's not really obvious where to go from clicking in.<br/>
<br/>
So it kind of, I was noticing this like, I'm not sure, but like fatigue setting in or whatever, where I'm like, I'll click in on a random site. Then this didn't really, I couldn't find anything interesting. Then I'll click another one. Maybe I'll just do that two or three times and then I'm kind of like running into boredom or whatever. So I wanted to surface all of the really cool stuff that people in this webring were doing. And yeah, that's kind of where Lieu came from. So it crawls all of those sites and indexes different kinds of search terms that it's found either in titles or in the body of the text and that kind of stuff.<br/>
<br/>
max: I Remember you writing something like, or I don't know if you just said this or wrote<br/>
this, but that like the limitation of Lieu was actually better for certain types of searching.<br/>
The example with music was really nice.<br/>
You were like, "If I Google search music, like, this is not going to give me good music."<br/>
There's actually certain things that Lieu is better at searching for because of its limitations or its focus.<br/>
<br/>
cblgh: Yeah, exactly because I know that this is a particular kind of scene and I kind of have an intuition for what's there. And for like the Lieu instance I've deployed with the Merveilles Webring, I kind of know that it's kind of design-y focus and kind of a lot of weird niche topics. So a lot of the things that are linked in there will kind of suit the sensibilities that I understand that this collective has. So in that case, I can actually just type in »music» and I'll get lists of different kinds of things, maybe someone listing their favorite songs. And it won't be just like, if I search the same thing in DuckDuckGo or Google, there I'll get basically very random things, probably ad-fueled search results.<br/>
<br/>
max: - It also makes me think something cool about this is<br/>
it's like a retrospective organizing,<br/>
where instead of like some people would say,<br/>
"Oh, we have a community,<br/>
we're gonna make a music channel,"<br/>
which I guess leads to your next project, Cerca.<br/>
But instead, this is like,<br/>
everyone just do your own thing,<br/>
and then like let's find all the time<br/>
someone mentioned music.<br/>
<br/>
cblgh: - Yeah, yeah. Yeah, it's taking a different kind of approach to that, for sure. Yeah, so that's Lieu.<br/>
And it started out as just being for the Merveilles webring. But then later I kind of made it basically easily deployable for anyone. So if you have, and it's written in Go and you can download a binary. And basically if you have kind of a small list of websites you want to make searchable, you could download Lieu. You write those small lists, I mean the list of websites in the file, and then you start crawling with Lieu. And you can just spin it up and start searching using it.<br/>
<br/>
So that could work whether if you have a group of friends and you want to make your collective output searchable. That could be one thing. But you could also just like, oh, here are some cool sites that I want to be able to search as kind of a group. You could do that as well.<br/>
<br/>
max: I wonder if we could try setting it up<br/>
for the websites of the folks in the SFPC class.<br/>
That could be interesting.<br/>
- Little project.<br/>
That might be one I might try to like,<br/>
what's the word, not delegate,<br/>
but like if someone's looking for a project to do.<br/>
<br/>
cblgh: - Yeah, yeah.<br/>
<br/>
max: - This could be something fun to do.<br/>
<br/>
cblgh: - Yeah, just let me know if someone's running into any problems. Like I think it may need to make a new build for people to use. And then Cerca is the other project you mentioned.<br/>
<br/>
And that's kind of come from how I grew up on the internet in a way, like I grew up in internet forums of many different kinds. And I was really missing that kind of, you know, mode of communication that's slower than like real time social media or IRC and more kind of persistent as well. I wasn't really running into that in a lot of places. So it was on my mind for a long time, but I really didn't see, I was kind of waiting for a good time to make a forum, like to make this kind of forum software. Because there are existing software but there aren't that many kind of modern ones—I've been keeping track. The only one that I've seen is Discourse.<br/>
<br/>
And I think it's great that it's kind of brought the forum sensibilities into the modern web, so to speak. But deploying Discourse for a community is super rough, I think. You have to have a pretty beefy machine to make it work. And honestly, I never really liked the aesthetics of Discourse. And I wanted to make something that was a bit more like, I don't know, home-y or customizable or just like, less clinically sterile, you know?<br/>
<br/>
max: Yeah, very, very sterile, very gamified, quantitative vibe from discourse forums.<br/>
<br/>
cblgh: Yeah, it's like "I have to level up like: oh, make five posts." I don't know. It kind of struck me as, I mean, great that exists, but I really didn't want to launch it myself.<br/>
Yeah, so I was like, before making it, I was just like having fun and figuring out, you know, like designing a forum software interface that I would want. And the thing I designed didn't end up in cerca at all, but it kind of influenced the things I wanted in cerca. And how I ended up making it was basically in Merveilles.<br/>
We have a mastodon instance, merveilles.town. People started getting excited about forums. And I was like, well, if I make one, would people want to join it? And people were pretty excited. And I had some time. So I kind of banged it out in a couple of weeks.<br/>
<br/>
max: I remember thinking another thing I thought<br/>
was cool about Cerca was the way that you kind of made it<br/>
in public and immediately had contributors<br/>
as soon as you started making it.<br/>
<br/>
And just the dynamic of making a piece of software<br/>
for a community with the community,<br/>
maybe you want to speak more about that for better or for worse?<br/>
<br/>
cblgh: Yeah, no. It's really nice to be part of a community like that, because it wasn't just me creating something for me and then hoping someone would adopt it. It was like, as you say, like I was creating it and then people were joining it and were excited about it and creating like adding new things that I didn't even think of or I didn't have time to do. And that was really, it's really energizing in a way to just like be creating software in this kind of community context, like instead of just creating something and hoping that'll be used. Because that kind of leads to a lot of overgeneralization, which ultimately actually hinders usage because it's too general, it's not specific enough. It just like it becomes this really big unyielding beast because you don't know what to anticipate or not. So you have to anticipate everything.<br/>
<br/>
max: Do everything.<br/>
<br/>
cblgh: Yeah. Whereas for cerca, I was just like literally in the beginning making it for the Merveilles kind of use case, which has kind of very specific software sensibilities in some sense, which was fun to experiment with. Like a lot of people there don't like client-side JavaScript. So I was trying to make everything in a way where there would be no requirements for client-side JavaScript. And it still doesn't have anything. Which meant going back to like, okay, how do you actually make a web form? And how do you handle that stuff?<br/>
<br/>
max: Some more traditional programming craft.<br/>
<br/>
cblgh: Yeah, yeah. And in some sense, that's just really working with the grain of what you get in the web platform, because forms are one of the OG elements of the HTML standard. And they're really easy to work with once you know what you're kind of doing.<br/>
<br/>
max: Yeah, I guess that also makes me feel like something<br/>
about that project then is the code itself<br/>
It's part of what's interesting about it.<br/>
Like, it feels like it's a very three-dimensional thing.<br/>
Like, there's the way you use it.<br/>
There's the way it was made.<br/>
And there's the choice of technologies used to make it.<br/>
And they're kind of like all a part of what makes it creative<br/>
and interesting.<br/>
And it seems like you found some joy in all the different parts<br/>
was my impression.<br/>
<br/>
cblgh: Yeah, and I mean, that's kind of one of my personal strategies in general, which has struck some people, I think, in a way that it's not, I mean, that's not part of it. And basically, my entire mode of operation is having fun while working on projects. And the reason behind that is it's kind of a burnout mitigation strategy. Because if you're having fun and you're being energized by projects, then that's actively<br/>
decreasing in some sense, like a burnout counter.<br/>
<br/>
max: Totally.<br/>
<br/>
cblgh: Where if you feel like you have like the entire burden of the world on you and just doing this to be a hero or something, that's a very depleting thing. You can only do it for so long. Whereas having fun, like on Cerca or whatever, making Lieu, that's just like giving more energy to work on that or to work on other things.<br/>
<br/>
max: Yeah, it's amazing how many people I know get burned out by whatever work they're doing.<br/>
It's almost prolific.<br/>
<br/>
cblgh: Yeah, I don't know what it's about. People feel like they alone have to shoulder, you know, like the burdens of a community or something, which is wrong. Like if a community is letting something, you know, like burn down to the ground, then sometimes that's what needs to happen, you know? Like it's not your single responsibility to take care of that because there's an entire community. And if nobody's taking care of it, then yeah, that's just a natural result. We can rebuild something new afterwards.<br/>
<br/>
max: Speaking of taking care,<br/>
you wanna talk about maintenance a little bit?<br/>
Yeah, how is it going with Cerca and who is taking care<br/>
and what's it like with people using it?<br/>
<br/>
cblgh: Yeah, sure.<br/>
So one of the strategies of it was really making something that was low maintenance. So I wanted to minimize external dependencies and external infrastructure. So that once you've deployed it, it just keeps on running and you don't have to, you know, like start debugging mailgun or something. And in that sense, it's been like a resounding success. Like it's just been running and people have been using it off and on.<br/>
<br/>
It has its kind of high tides and low tides. Like I've seen it start to be used, like people kind of rediscovering the forum during things like what's it called like Inktober where there was a thread where people were like three or four or five people were posting every day and just like sharing each other on and then after that it was kind of quiet for a while and now it's kind of resurging a little bit again.<br/>
<br/>
max: - Okay, I'm curious how that happens,<br/>
or what will happen over time too,<br/>
'cause I also have this dream of a slower form,<br/>
communication place, and somehow forums do end up<br/>
doing that sometimes.<br/>
Like there was this thread I started<br/>
on the Activity Pub forum discourse two years ago,<br/>
and it basically gets consistent replies<br/>
every few months for two years.<br/>
And it's just like a really interesting timescale.<br/>
It's like, if you were to read it all in a row,<br/>
you'd be like, wow, this is a really interesting conversation<br/>
with like 20 people.<br/>
And, but it happens at like absolute snail pace.<br/>
And it's cool too.<br/>
<br/>
cblgh: - Yeah, it's fun to be on the receiving end of the, I mean, like you get to literally live that experience. So like it's taking so long in this conversation, which is nice, but an observer just thinks like, wow, this really came together quickly.<br/>
<br/>
max: Yeah, they look at it all at once.<br/>
Yeah, yeah, yeah.<br/>
They have no idea.<br/>
It's like a weird collapsing of time.<br/>
<br/>
cblgh: Yeah.<br/>
And it's like, that would never happen, you know, like, something like a Twitter or a Mastodon, right? Because it's very much fire and forget. Like, I'll have missed if you posted like yesterday because I wasn't online much yesterday. And then that will probably never be resurfaced again for me, which is totally the opposite of forums.<br/>
<br/>
But yeah, with its maintenance, like, I've been taking a kind of very slow approach and working on it when I kind of felt like it or when something critical came up. And one kind of thing I think is really difficult is with well-intentioned kind of drive-by contributions. Or it's like there's this kind of balance you have to straddle between what you want to encourage people to do and make contributions but at the same time a specific contribution might actually be the wrong direction for the piece of software, if you're the one who has to maintain it in perpetuity. Yeah yeah and that's a really really difficult thing I think with with maintenance is like actually saying no to certain contributions.<br/>
<br/>
And I think I've been good at it in some cases and in some, in other cases I've kind of, I think I have some lingering PRs where I'm just like, this is not the right thing, but I also feel bad saying no to someone. So it kind of is just, I don't know, kind of ghosting PRs while not in the chat too.<br/>
(laughing)<br/>
But it's like, I don't want to say, "I don't want this." But I also don't want to press merge.<br/>
<br/>
max: Ghosting PRs, what a social dilemma of our times.<br/>
<br/>
cblgh: I know, right?<br/>
<br/>
max: I feel you.<br/>
I've in the past months received a lot of gifts<br/>
that I didn't want while I've been here in India.<br/>
It's been interesting.<br/>
Most of them I've actually just like to say yes to at this<br/>
point because I appreciate the intention and I feel like there's some mutually nourishing<br/>
thing that happens when someone gives me some food, even if it's something that I don't<br/>
actually want to eat. But for me, it's different eating some like food that I don't really<br/>
want to eat versus yeah, like I remember like someone offered me some clothes or something<br/>
that I did not take because I was like, I don't have space in my pack for this. And<br/>
I have a limit, a boundary where I will be like, I'm not,<br/>
although I like accepting and receiving,<br/>
I'm not willing to accept,<br/>
I'm not willing to carry around this thing<br/>
for the next six months, just to like,<br/>
be agreeable.<br/>
<br/>
cblgh: - Yeah, yeah, no, it's interesting. Like this idea of like a gift that is an encumbrance versus a gift that's kind of more relation building in a way.<br/>
<br/>
max: - Yeah.<br/>
<br/>
cblgh: - Purely. So like if someone gave you food, then you can either toss it away or you can eat it, and that's just like, that's a very transient thing, but clothes or you know, like a painting or something. It won't just go away when you'll have it, right? You kind of become encumbered by it. Same thing with like someone adding a PR and you have to merge it because you feel bad. Then it's there and you have to actually actively work to either throw that piece of code out or throw the painting out.<br/>
<br/>
max: Hmm. Well, this seems good about Cerca, I almost started to feel bad for interviewing you about<br/>
Cerca as we were talking about it because I was like based on what you said you're doing this for fun<br/>
so it seems almost<br/>
like counter to its aim to become the like<br/>
focus of such attention<br/>
<br/>
cblgh: No, no, no, it's I I mean, I'm really happy with it and I think about it a lot and I'm very happy every time I see someone make a post, you know, it's like, oh, wow, this is great. Someone created thread and I didn't have to do anything.<br/>
<br/>
max: Nice. Yes, I guess I did.<br/>
Well, in that light, then I'm happy to talk about it. I just was thinking how some<br/>
some software, the default, the default mode is like, everything has to have a reason and it needs<br/>
to be optimized and the best. And it's interesting that if you're making something more provisional<br/>
for fun, maybe that's not true, maybe there are decisions one makes that are like, not ideal or<br/>
something, but like, it's fine because it's not the purpose of it.<br/>
<br/>
cblgh: Well, I think it can be very intentional even with fun stuff. I am actually quite intentional with, for example, cerca and other things I do for fun. Like, if I do decide I'm doing this and I don't really care about the outcome. So that's actually an intention, right? It's kind of a way to approach a particular thing. So it's not very thoughtless in that sense.<br/>
<br/>
Like every decision I've made with Cerca has been very informed, even if it seems like, oh, it's just--it's not using classes because I guess I didn't really care about that. It's like, oh, no, I'm actually doing that because it makes everything so much more composable.<br/>
<br/>
max: Not using CSS classes.<br/>
<br/>
cblgh: Yeah, exactly. I tried to minimize that.<br/>
<br/>
max: Like just doing stuff more inline?<br/>
<br/>
cblgh: Yeah, sometimes inline, but also just like styling actual, like the default elements.<br/>
<br/>
max: Ah, okay, yeah, yeah, yeah, yeah, yeah, yeah.<br/>
<br/>
max: Is there anything else you feel that you wanted to say<br/>
about cerca and lieu? or Should we move on to the other stuff?<br/>
<br/>
cblgh: - Well, I maybe have a few last thoughts on cerca.<br/>
<br/>
max: - Sure.<br/>
<br/>
cblgh: Like one thing I really wanted with it was to avoid external infrastructure that I mentioned, like which in my case was email and email registrations and email kind of, you know, password "I forgot my password"-functionality, which seems important. So I went with this kind of weird thing that was informed by doing way too much peer-to-peer stuff using like public keys and shit.<br/>
<br/>
And I think I might be kind of, I haven't unpacked it yet, but I think it's an interesting thing where I didn't want the email infrastructure, but I did want people to be able to reset their passwords. So I kind of invented this thing of "here's a public key and you can use it to kind of reset your password", which was in effect kind of cumbersome for people. I mean, you have to download a separate tool and then you have to remember the second thing, but it kind of gave me permission to not do the default thing. And I think it's an interesting, not really sure what to call it, even like a technique or whatever concept of having this, you know, like plausibility, like: "okay, people can plausibly restore their passwords. So therefore, I'm freed of this kind of default constraint of having to service this by email."<br/>
<br/>
max: I feel you on the email thing,<br/>
actually that just reminded me one of my tasks for today<br/>
is to fix the email sending for the self-hosted outline.<br/>
<br/>
cblgh: - Yeah, yeah, yeah, it's just like such a thing.<br/>
<br/>
max: an annoying task<br/>
<br/>
cblgh: But where I think I want to go with it actually, and next time I'm gonna have a batch of work working on it, is I'm going to try to use what's it called like timed one-time passwords, which are basically these codes that you find if you use like a Google Authenticator; that's a standardized technique. And you can actually implement that in something like Cerca. It's decentralized as hell basically.<br/>
<br/>
max: How do you send someone the code if there's no email?<br/>
<br/>
cblgh: So basically you don't send a code, but they do have, I haven't actually implemented yet. So my details on this are very scant. But basically, when they register, they get this code that they put into their Authenticator app. And they probably have an Authenticator app for logging into all kinds of things today. So if they want to reset their password, they could do it using this kind of second proof from the Authenticator app.<br/>
<br/>
max: I got you.<br/>
So to prove that you're you--<br/>
You supply a password from the Authenticator app<br/>
that is somehow connected to this account,<br/>
but that only you can produce.<br/>
<br/>
cblgh: - Yeah, and even you can even go further and you can just say, well, you don't even have to log in<br/>
with password if you don't want to, you could just use your Authenticator app.<br/>
<br/>
max:- Nice.<br/>
<br/>
cblgh: - Yeah, so that's something I wanna explore. And being able to explore that was only made possible<br/>
by doing this really cumbersome strange thing that I started with, which is, yeah, I don't know. It's just like a small side note that I think is kind of interesting. Like if you do tread off the beaten path it opens up other things.<br/>
<br/>
max: - It's a small but big choice<br/>
to not include email as dependency.<br/>
It's like, it takes you off the standard app.<br/>
<br/>
cblgh: - But yeah, I think that closes the chapter on cerca for now.<br/>
<br/>
<br/>
============================<br/>
<br/>
III: COMPOSABLE SOLIDARITY INFRASTRUCTURE<br/>
<br/>
max: do you want to speak about some visions you're having?<br/>
<br/>
cblgh: Do you want to narrow it down? I've got a lot of thoughts.<br/>
<br/>
max: No, I don't feel like narrowing it down. It's whatever is most alive for you.<br/>
<br/>
cblgh: Okay, interesting.<br/>
<br/>
Yeah, so, one thing that's been on my mind for a year at least and that I've been starting to approach people about, is this idea of reusable and composable infrastructural components, in particular for peer-to-peer systems.<br/>
<br/>
So it's like, we have these different projects, right? And this is not necessarily a take that a lot of people agree with, but personally I don't really like interoperability that much because we are underfunded as hell, you know? It's like, so if someone's going to tell me, well, now you need to support SSB in cabal as well, that just doesn't make sense for a lot of reasons because the contexts are different, right? Cabal is very much IRC style, whereas SSB clients today are more forum style. So the general viewing contexts are different.<br/>
<br/>
So where can we collaborate instead of just like, you know, having literally the same protocol? And where I think it makes sense is on the infrastructure level where like, okay, we have this protocol, you have that protocol, this third group has another protocol, but we all need to reach each other, right? We have this notion of we want to find peers. Like, can we somehow collaborate on that level of things? Because that's a very, in some sense, permissionless level of collaborating. We don't need to change our protocol just because we're using the same infrastructure.<br/>
<br/>
And it kind of makes it less competitive in some sense, it becomes way more collaborative. So that's kind of what I've been thinking about, like, okay, how, what parts of the stack, like what exists today that we could use in multiple projects? And that's kind of an ongoing research project right now for me.<br/>
<br/>
Like I'm exploring this a little bit with the p2panda team, where we're doing small experiments on this kind of old technology called I2P, which is like tor, but it's way more kind of peer-to-peer oriented, whereas tor is kind of more client server in its architecture. We're doing small experiments there to kind of get a feel for it. Like, can we create a website and we can visit it like over like very unconfigured devices? And yes, we could. That was really cool. A person in UK on a mobile network could visit my website thats being hosted on i2p on a computer that was completely unconfigured with regards to firewalls and stuff. So that was super cool.<br/>
<br/>
So yeah, that's kind of like exploring that general area of what infrastructure do we have today? What infrastructure could we kind of collectively manage you know, and could collectively use and what could that collaboration, what kind of shapes can that take for example? We could have maybe an open, if we do find a very good component that's usable in many projects, we could have an open collective for example, to fund all of the engagement for that, whereas some of it would go for server costs, but also just for stuff like, you know, like an hourly wage for everything that's relating to the infrastructure bits.<br/>
<br/>
max: I like this idea, but what are some of the possible<br/>
functionality for components that come to mind<br/>
that could be shared between projects?<br/>
So you said like peer discovery or something?<br/>
<br/>
cblgh: Yeah, so we'd just be basically, you know, the underlying DHT. So yeah, it's peer discovery.<br/>
It's like, so we have a peer-to-peer system, which means these peers need to find each other somehow and they need to find each other in some way that's resilient across, you know, regular, unconfigured computers. So are there components that exist that work in multiple programming languages? Which is a big barrier. For example, Hyperswarm today is very much Node-js only. It's been trying to be ported to Rust for a long time, which means it's very difficult to port to different languages. So yeah, it's for sure basically just like, how can these peers find each other? And then once they've found each other, you just do your application-level concerns.<br/>
<br/>
max: Are there any other composable pieces that come to mind?<br/>
<br/>
cblgh: - I mean, for me, it's mainly that because it's the biggest thing.<br/>
<br/>
max: it breaks away from the current paradigm<br/>
because it's like something smaller than most of the protocols are like the protocols are usually<br/>
including more than just that they like include that plus other stuff yeah<br/>
<br/>
cblgh: each protocol kind of makes their own decision on that and it would be great if we could find something that works for everyone or for many actors rather than just one.<br/>
<br/>
=========================<br/>
<br/>
II: LIEU, CERCA, FORUMS & SEARCH<br/>
<br/>
max: So the projects I was thinking about talking about were cerca and lieu<br/>
But was there anything else that you thought would be relevant to these topics?<br/>
<br/>
cblgh: Is this the term that you want to use, like solidarity infrastructure? So like, Lieu and Cerca are definitely like two very clear projects in that respect. Like how I kind of got started into this way of doing things might be interesting, I'm not sure.<br/>
<br/>
max: Yeah, that sounds great.<br/>
<br/>
cblgh: It all goes back to 10, 12 years ago. Basically, I started my HTML, JavaScript,<br/>
I mean, just like journey or whatever, like learning that kind of stuff through a project<br/>
I made with two friends called Piraltorodio, which is Swedish for pirate radio, which is kind of like a tongue-in-cheek kind of name. And basically that kind of revolved around making these collaborative playlists. So the idea was like, I listened to music on YouTube and I listened to music on SoundCloud and on Bandcamp. And I thought it was kind of silly or annoying that I couldn't just make a playlist with music from all of these things and then send to someone or we could listen to it together.<br/>
So that's what Keraltraudio was. It was basically just like a database that had lists of links and then a front-end that kind of put these links together. And we had some special kind of resolving and embedding things that put things on the page. So when we render the list of all these different links, we would kind of get the song title. And when you click on a thing, we'd actually start playing on the page. So that's kind of how I got into all of this stuff. Because from there, I found different kinds of--yeah, other projects, basically.<br/>
<br/>
max: What type of things did you discover,<br/>
if you remember from working on that?<br/>
<br/>
cblgh: - Yeah, so one thing that was, I mean, very many things, it's like collaborating with other people and how to do that in a way that works best for the group, and for me. One thing that I reflected on, is that I really like this way of collaborating with people where you don't step on each other's toes too much. So like I have one area that I'm focusing on and then another person has another area. And our collaboration kind of consists of us working on these two different things and then gluing those things together, right?<br/>
<br/>
max: - Totally.<br/>
<br/>
cblgh: - So that's one thing. But the other thing was we kind of thought it was a bit scary to have this database of links, even if it was only links, we didn't download anything. And started looking for like, how could we do this in a decentralized way? Which is how I started looking into IPFS that then eventually found Scuttlebutt. Yeah, so then I started making stuff using that and I made a thing called Datradio, which was very inspired by this. Which was kind of doing the same thing, but using dat archives. So someone could work in the Beaker Browser, this now defunct, but very cool project where you could create websites directly in the browser. It was using its API.<br/>
<br/>
So we just say like, here's the app itself, and then you would fork it. And now you have the entire app in your browser. And then you can add stuff into that app and share links so that other people can just listen to that.<br/>
<br/>
max: And through that, remove yourself<br/>
from this liability of hosting these links.<br/>
if everyone was just forking their own and having them on their machine. It's really amazing how much<br/>
creativity and innovation copyright law has fueled out of teenage angst towards the like<br/>
annoyance that these people don't want you to download stuff for free.<br/>
<br/>
cblgh: Yeah, because it's scary like people just want to make something fun, but then when they've they've made something fun, they're kind of getting anxious like, fuck, are we gonna get, are we gonna get wrecked for this? Like, I'm not a lawyer, like, I don't know literally everything about what's legal or not.<br/>
<br/>
max: I feel you. And they did wreck some people back in the day,<br/>
like, that was like a specific approach/strategy of anti<br/>
pirating legal stuff was to like, come down really hard on a<br/>
few individuals who were kind of like, not really doing anything<br/>
other than whatever downloaded a bunch of stuff.<br/>
<br/>
cblgh: Yeah, yeah. And actually with that pirotroli thing, we actually did like go to a lawyer and like pay him like a small amount to just like review were we doing anything bad and his take was no, we're not doing anything bad, but we should add like a small like, uh, terms of service basically where people just agree like, yeah, this is, uh, this is my responsibility or something. The app's defunct now for other reasons.<br/>
<br/>
max: That's cool, especially hearing this.<br/>
Everyone's got an interesting Scuttlebutt origin story.<br/>
And then, yeah, do you want to talk more about Cerca and Lieu,<br/>
which I'm not pronouncing correctly.<br/>
<br/>
cblgh: Yeah, yeah, sure. Yeah, I can do maybe a brief description.<br/>
<br/>
max: Yeah, I guess starting with what they are just because that will help for the transcript<br/>
and people listening and then maybe talking about what inspired it, what<br/>
you learned, if there was anything that was weird.<br/>
<br/>
cblgh: Yeah, for sure.<br/>
<br/>
Yes, I can start with Lieu because that was the first thing I made of those two. And it's kind of described as a web ring search engine or communal search engine. So what it does is basically, instead of searching and crawling the entire internet, which most search engines do today, it instead searches only a pre-specified list of domains, which was natural for the context that I was coming from, which was I'm part of<br/>
a webring called the Merveilles webring. And we have like 200 odd sites in there.<br/>
<br/>
There are many cool sites, but it's kind of daunting. You know, when you have this list of like 200 sites,<br/>
like which one do I start with? I'm not really sure what's in here. And like, even if I start with one, I'll just click in and then maybe it's not really obvious where to go from clicking in.<br/>
<br/>
So it kind of, I was noticing this like, I'm not sure, but like fatigue setting in or whatever, where I'm like, I'll click in on a random site. Then this didn't really, I couldn't find anything interesting. Then I'll click another one. Maybe I'll just do that two or three times and then I'm kind of like running into boredom or whatever. So I wanted to surface all of the really cool stuff that people in this webring were doing. And yeah, that's kind of where Lieu came from. So it crawls all of those sites and indexes different kinds of search terms that it's found either in titles or in the body of the text and that kind of stuff.<br/>
<br/>
max: I Remember you writing something like, or I don't know if you just said this or wrote<br/>
this, but that like the limitation of Lieu was actually better for certain types of searching.<br/>
The example with music was really nice.<br/>
You were like, "If I Google search music, like, this is not going to give me good music."<br/>
There's actually certain things that Lieu is better at searching for because of its limitations or its focus.<br/>
<br/>
cblgh: Yeah, exactly because I know that this is a particular kind of scene and I kind of have an intuition for what's there. And for like the Lieu instance I've deployed with the Merveilles Webring, I kind of know that it's kind of design-y focus and kind of a lot of weird niche topics. So a lot of the things that are linked in there will kind of suit the sensibilities that I understand that this collective has. So in that case, I can actually just type in »music» and I'll get lists of different kinds of things, maybe someone listing their favorite songs. And it won't be just like, if I search the same thing in DuckDuckGo or Google, there I'll get basically very random things, probably ad-fueled search results.<br/>
<br/>
max: - It also makes me think something cool about this is<br/>
it's like a retrospective organizing,<br/>
where instead of like some people would say,<br/>
"Oh, we have a community,<br/>
we're gonna make a music channel,"<br/>
which I guess leads to your next project, Cerca.<br/>
But instead, this is like,<br/>
everyone just do your own thing,<br/>
and then like let's find all the time<br/>
someone mentioned music.<br/>
<br/>
cblgh: - Yeah, yeah. Yeah, it's taking a different kind of approach to that, for sure. Yeah, so that's Lieu.<br/>
And it started out as just being for the Merveilles webring. But then later I kind of made it basically easily deployable for anyone. So if you have, and it's written in Go and you can download a binary. And basically if you have kind of a small list of websites you want to make searchable, you could download Lieu. You write those small lists, I mean the list of websites in the file, and then you start crawling with Lieu. And you can just spin it up and start searching using it.<br/>
<br/>
So that could work whether if you have a group of friends and you want to make your collective output searchable. That could be one thing. But you could also just like, oh, here are some cool sites that I want to be able to search as kind of a group. You could do that as well.<br/>
<br/>
max: I wonder if we could try setting it up<br/>
for the websites of the folks in the SFPC class.<br/>
That could be interesting.<br/>
- Little project.<br/>
That might be one I might try to like,<br/>
what's the word, not delegate,<br/>
but like if someone's looking for a project to do.<br/>
<br/>
cblgh: - Yeah, yeah.<br/>
<br/>
max: - This could be something fun to do.<br/>
<br/>
cblgh: - Yeah, just let me know if someone's running into any problems. Like I think it may need to make a new build for people to use. And then Cerca is the other project you mentioned.<br/>
<br/>
And that's kind of come from how I grew up on the internet in a way, like I grew up in internet forums of many different kinds. And I was really missing that kind of, you know, mode of communication that's slower than like real time social media or IRC and more kind of persistent as well. I wasn't really running into that in a lot of places. So it was on my mind for a long time, but I really didn't see, I was kind of waiting for a good time to make a forum, like to make this kind of forum software. Because there are existing software but there aren't that many kind of modern ones—I've been keeping track. The only one that I've seen is Discourse.<br/>
<br/>
And I think it's great that it's kind of brought the forum sensibilities into the modern web, so to speak. But deploying Discourse for a community is super rough, I think. You have to have a pretty beefy machine to make it work. And honestly, I never really liked the aesthetics of Discourse. And I wanted to make something that was a bit more like, I don't know, home-y or customizable or just like, less clinically sterile, you know?<br/>
<br/>
max: Yeah, very, very sterile, very gamified, quantitative vibe from discourse forums.<br/>
<br/>
cblgh: Yeah, it's like "I have to level up like: oh, make five posts." I don't know. It kind of struck me as, I mean, great that exists, but I really didn't want to launch it myself.<br/>
Yeah, so I was like, before making it, I was just like having fun and figuring out, you know, like designing a forum software interface that I would want. And the thing I designed didn't end up in cerca at all, but it kind of influenced the things I wanted in cerca. And how I ended up making it was basically in Merveilles.<br/>
We have a mastodon instance, merveilles.town. People started getting excited about forums. And I was like, well, if I make one, would people want to join it? And people were pretty excited. And I had some time. So I kind of banged it out in a couple of weeks.<br/>
<br/>
max: I remember thinking another thing I thought<br/>
was cool about Cerca was the way that you kind of made it<br/>
in public and immediately had contributors<br/>
as soon as you started making it.<br/>
<br/>
And just the dynamic of making a piece of software<br/>
for a community with the community,<br/>
maybe you want to speak more about that for better or for worse?<br/>
<br/>
cblgh: Yeah, no. It's really nice to be part of a community like that, because it wasn't just me creating something for me and then hoping someone would adopt it. It was like, as you say, like I was creating it and then people were joining it and were excited about it and creating like adding new things that I didn't even think of or I didn't have time to do. And that was really, it's really energizing in a way to just like be creating software in this kind of community context, like instead of just creating something and hoping that'll be used. Because that kind of leads to a lot of overgeneralization, which ultimately actually hinders usage because it's too general, it's not specific enough. It just like it becomes this really big unyielding beast because you don't know what to anticipate or not. So you have to anticipate everything.<br/>
<br/>
max: Do everything.<br/>
<br/>
cblgh: Yeah. Whereas for cerca, I was just like literally in the beginning making it for the Merveilles kind of use case, which has kind of very specific software sensibilities in some sense, which was fun to experiment with. Like a lot of people there don't like client-side JavaScript. So I was trying to make everything in a way where there would be no requirements for client-side JavaScript. And it still doesn't have anything. Which meant going back to like, okay, how do you actually make a web form? And how do you handle that stuff?<br/>
<br/>
max: Some more traditional programming craft.<br/>
<br/>
cblgh: Yeah, yeah. And in some sense, that's just really working with the grain of what you get in the web platform, because forms are one of the OG elements of the HTML standard. And they're really easy to work with once you know what you're kind of doing.<br/>
<br/>
max: Yeah, I guess that also makes me feel like something<br/>
about that project then is the code itself<br/>
It's part of what's interesting about it.<br/>
Like, it feels like it's a very three-dimensional thing.<br/>
Like, there's the way you use it.<br/>
There's the way it was made.<br/>
And there's the choice of technologies used to make it.<br/>
And they're kind of like all a part of what makes it creative<br/>
and interesting.<br/>
And it seems like you found some joy in all the different parts<br/>
was my impression.<br/>
<br/>
cblgh: Yeah, and I mean, that's kind of one of my personal strategies in general, which has struck some people, I think, in a way that it's not, I mean, that's not part of it. And basically, my entire mode of operation is having fun while working on projects. And the reason behind that is it's kind of a burnout mitigation strategy. Because if you're having fun and you're being energized by projects, then that's actively<br/>
decreasing in some sense, like a burnout counter.<br/>
<br/>
max: Totally.<br/>
<br/>
cblgh: Where if you feel like you have like the entire burden of the world on you and just doing this to be a hero or something, that's a very depleting thing. You can only do it for so long. Whereas having fun, like on Cerca or whatever, making Lieu, that's just like giving more energy to work on that or to work on other things.<br/>
<br/>
max: Yeah, it's amazing how many people I know get burned out by whatever work they're doing.<br/>
It's almost prolific.<br/>
<br/>
cblgh: Yeah, I don't know what it's about. People feel like they alone have to shoulder, you know, like the burdens of a community or something, which is wrong. Like if a community is letting something, you know, like burn down to the ground, then sometimes that's what needs to happen, you know? Like it's not your single responsibility to take care of that because there's an entire community. And if nobody's taking care of it, then yeah, that's just a natural result. We can rebuild something new afterwards.<br/>
<br/>
max: Speaking of taking care,<br/>
you wanna talk about maintenance a little bit?<br/>
Yeah, how is it going with Cerca and who is taking care<br/>
and what's it like with people using it?<br/>
<br/>
cblgh: Yeah, sure.<br/>
So one of the strategies of it was really making something that was low maintenance. So I wanted to minimize external dependencies and external infrastructure. So that once you've deployed it, it just keeps on running and you don't have to, you know, like start debugging mailgun or something. And in that sense, it's been like a resounding success. Like it's just been running and people have been using it off and on.<br/>
<br/>
It has its kind of high tides and low tides. Like I've seen it start to be used, like people kind of rediscovering the forum during things like what's it called like Inktober where there was a thread where people were like three or four or five people were posting every day and just like sharing each other on and then after that it was kind of quiet for a while and now it's kind of resurging a little bit again.<br/>
<br/>
max: - Okay, I'm curious how that happens,<br/>
or what will happen over time too,<br/>
'cause I also have this dream of a slower form,<br/>
communication place, and somehow forums do end up<br/>
doing that sometimes.<br/>
Like there was this thread I started<br/>
on the Activity Pub forum discourse two years ago,<br/>
and it basically gets consistent replies<br/>
every few months for two years.<br/>
And it's just like a really interesting timescale.<br/>
It's like, if you were to read it all in a row,<br/>
you'd be like, wow, this is a really interesting conversation<br/>
with like 20 people.<br/>
And, but it happens at like absolute snail pace.<br/>
And it's cool too.<br/>
<br/>
cblgh: - Yeah, it's fun to be on the receiving end of the, I mean, like you get to literally live that experience. So like it's taking so long in this conversation, which is nice, but an observer just thinks like, wow, this really came together quickly.<br/>
<br/>
max: Yeah, they look at it all at once.<br/>
Yeah, yeah, yeah.<br/>
They have no idea.<br/>
It's like a weird collapsing of time.<br/>
<br/>
cblgh: Yeah.<br/>
And it's like, that would never happen, you know, like, something like a Twitter or a Mastodon, right? Because it's very much fire and forget. Like, I'll have missed if you posted like yesterday because I wasn't online much yesterday. And then that will probably never be resurfaced again for me, which is totally the opposite of forums.<br/>
<br/>
But yeah, with its maintenance, like, I've been taking a kind of very slow approach and working on it when I kind of felt like it or when something critical came up. And one kind of thing I think is really difficult is with well-intentioned kind of drive-by contributions. Or it's like there's this kind of balance you have to straddle between what you want to encourage people to do and make contributions but at the same time a specific contribution might actually be the wrong direction for the piece of software, if you're the one who has to maintain it in perpetuity. Yeah yeah and that's a really really difficult thing I think with with maintenance is like actually saying no to certain contributions.<br/>
<br/>
And I think I've been good at it in some cases and in some, in other cases I've kind of, I think I have some lingering PRs where I'm just like, this is not the right thing, but I also feel bad saying no to someone. So it kind of is just, I don't know, kind of ghosting PRs while not in the chat too.<br/>
(laughing)<br/>
But it's like, I don't want to say, "I don't want this." But I also don't want to press merge.<br/>
<br/>
max: Ghosting PRs, what a social dilemma of our times.<br/>
<br/>
cblgh: I know, right?<br/>
<br/>
max: I feel you.<br/>
I've in the past months received a lot of gifts<br/>
that I didn't want while I've been here in India.<br/>
It's been interesting.<br/>
Most of them I've actually just like to say yes to at this<br/>
point because I appreciate the intention and I feel like there's some mutually nourishing<br/>
thing that happens when someone gives me some food, even if it's something that I don't<br/>
actually want to eat. But for me, it's different eating some like food that I don't really<br/>
want to eat versus yeah, like I remember like someone offered me some clothes or something<br/>
that I did not take because I was like, I don't have space in my pack for this. And<br/>
I have a limit, a boundary where I will be like, I'm not,<br/>
although I like accepting and receiving,<br/>
I'm not willing to accept,<br/>
I'm not willing to carry around this thing<br/>
for the next six months, just to like,<br/>
be agreeable.<br/>
<br/>
cblgh: - Yeah, yeah, no, it's interesting. Like this idea of like a gift that is an encumbrance versus a gift that's kind of more relation building in a way.<br/>
<br/>
max: - Yeah.<br/>
<br/>
cblgh: - Purely. So like if someone gave you food, then you can either toss it away or you can eat it, and that's just like, that's a very transient thing, but clothes or you know, like a painting or something. It won't just go away when you'll have it, right? You kind of become encumbered by it. Same thing with like someone adding a PR and you have to merge it because you feel bad. Then it's there and you have to actually actively work to either throw that piece of code out or throw the painting out.<br/>
<br/>
max: Hmm. Well, this seems good about Cerca, I almost started to feel bad for interviewing you about<br/>
Cerca as we were talking about it because I was like based on what you said you're doing this for fun<br/>
so it seems almost<br/>
like counter to its aim to become the like<br/>
focus of such attention<br/>
<br/>
cblgh: No, no, no, it's I I mean, I'm really happy with it and I think about it a lot and I'm very happy every time I see someone make a post, you know, it's like, oh, wow, this is great. Someone created thread and I didn't have to do anything.<br/>
<br/>
max: Nice. Yes, I guess I did.<br/>
Well, in that light, then I'm happy to talk about it. I just was thinking how some<br/>
some software, the default, the default mode is like, everything has to have a reason and it needs<br/>
to be optimized and the best. And it's interesting that if you're making something more provisional<br/>
for fun, maybe that's not true, maybe there are decisions one makes that are like, not ideal or<br/>
something, but like, it's fine because it's not the purpose of it.<br/>
<br/>
cblgh: Well, I think it can be very intentional even with fun stuff. I am actually quite intentional with, for example, cerca and other things I do for fun. Like, if I do decide I'm doing this and I don't really care about the outcome. So that's actually an intention, right? It's kind of a way to approach a particular thing. So it's not very thoughtless in that sense.<br/>
<br/>
Like every decision I've made with Cerca has been very informed, even if it seems like, oh, it's just--it's not using classes because I guess I didn't really care about that. It's like, oh, no, I'm actually doing that because it makes everything so much more composable.<br/>
<br/>
max: Not using CSS classes.<br/>
<br/>
cblgh: Yeah, exactly. I tried to minimize that.<br/>
<br/>
max: Like just doing stuff more inline?<br/>
<br/>
cblgh: Yeah, sometimes inline, but also just like styling actual, like the default elements.<br/>
<br/>
max: Ah, okay, yeah, yeah, yeah, yeah, yeah, yeah.<br/>
<br/>
max: Is there anything else you feel that you wanted to say<br/>
about cerca and lieu? or Should we move on to the other stuff?<br/>
<br/>
cblgh: - Well, I maybe have a few last thoughts on cerca.<br/>
<br/>
max: - Sure.<br/>
<br/>
cblgh: Like one thing I really wanted with it was to avoid external infrastructure that I mentioned, like which in my case was email and email registrations and email kind of, you know, password "I forgot my password"-functionality, which seems important. So I went with this kind of weird thing that was informed by doing way too much peer-to-peer stuff using like public keys and shit.<br/>
<br/>
And I think I might be kind of, I haven't unpacked it yet, but I think it's an interesting thing where I didn't want the email infrastructure, but I did want people to be able to reset their passwords. So I kind of invented this thing of "here's a public key and you can use it to kind of reset your password", which was in effect kind of cumbersome for people. I mean, you have to download a separate tool and then you have to remember the second thing, but it kind of gave me permission to not do the default thing. And I think it's an interesting, not really sure what to call it, even like a technique or whatever concept of having this, you know, like plausibility, like: "okay, people can plausibly restore their passwords. So therefore, I'm freed of this kind of default constraint of having to service this by email."<br/>
<br/>
max: I feel you on the email thing,<br/>
actually that just reminded me one of my tasks for today<br/>
is to fix the email sending for the self-hosted outline.<br/>
<br/>
cblgh: - Yeah, yeah, yeah, it's just like such a thing.<br/>
<br/>
max: an annoying task<br/>
<br/>
cblgh: But where I think I want to go with it actually, and next time I'm gonna have a batch of work working on it, is I'm going to try to use what's it called like timed one-time passwords, which are basically these codes that you find if you use like a Google Authenticator; that's a standardized technique. And you can actually implement that in something like Cerca. It's decentralized as hell basically.<br/>
<br/>
max: How do you send someone the code if there's no email?<br/>
<br/>
cblgh: So basically you don't send a code, but they do have, I haven't actually implemented yet. So my details on this are very scant. But basically, when they register, they get this code that they put into their Authenticator app. And they probably have an Authenticator app for logging into all kinds of things today. So if they want to reset their password, they could do it using this kind of second proof from the Authenticator app.<br/>
<br/>
max: I got you.<br/>
So to prove that you're you--<br/>
You supply a password from the Authenticator app<br/>
that is somehow connected to this account,<br/>
but that only you can produce.<br/>
<br/>
cblgh: - Yeah, and even you can even go further and you can just say, well, you don't even have to log in<br/>
with password if you don't want to, you could just use your Authenticator app.<br/>
<br/>
max:- Nice.<br/>
<br/>
cblgh: - Yeah, so that's something I wanna explore. And being able to explore that was only made possible<br/>
by doing this really cumbersome strange thing that I started with, which is, yeah, I don't know. It's just like a small side note that I think is kind of interesting. Like if you do tread off the beaten path it opens up other things.<br/>
<br/>
max: - It's a small but big choice<br/>
to not include email as dependency.<br/>
It's like, it takes you off the standard app.<br/>
<br/>
cblgh: - But yeah, I think that closes the chapter on cerca for now.<br/>
<br/>
<br/>
===========================<br/>
<br/>
IV: FIVE MINUTES ABOUT THE INTERNET<br/>
<br/>
<br/>
max: Okay. How about this? Can we talk about the internet for five minutes?<br/>
Because I'm just curious. Okay, so I've heard some people say the internet is<br/>
decentralized. And then I was like, you know, people talk about how there can be many like<br/>
on Scuttlebutt like an archipelago, many networks, internets and stuff. And it doesn't have to<br/>
have this global connectivity. But then when I researched it more, I had like heard about<br/>
it, but I never really thought about how there's these like different tiers of Internet Service<br/>
Providers. And basically, as I understand it, the definition of a Tier 1 Internet Service<br/>
Provider is that they peer with all other Tier 1 Internet Service Providers for free<br/>
and that they know the routes to like any possible IP address. And so another way of<br/>
saying that is that tier one ISP by its definition is centralized. There can only be one tier one.<br/>
Like the definition of tier one is peers with all other tier ones and knows every route.<br/>
And that was just interesting to me. I mean it's not centralized in that there's not one<br/>
player because there's multiple, but it's central or it's universal maybe. Which also<br/>
made more sense with like the common way people talk about the internet which is like, are<br/>
Are you connected to The internet?<br/>
Like using the word "the" instead of...<br/>
Um, and before I was like, oh, is that a misnomer?<br/>
And then after learning about this, I was like,<br/>
well, if you mean the tier one internet,<br/>
then like maybe that is correct.<br/>
It's singular.<br/>
<br/>
cblgh: - Yeah, no, it's interesting. Like, I don't know so much about like, like the actual details there, but...<br/>
(bird squawks)<br/>
Yeah, there's a lot that goes on outside of like, "Oh yeah, here's my domain. I registered it with, I don't know, GoDaddy" or whatever. Because as you say, like they have, we have these like tiers where, DNS is decentralized in that you have different regions that decide over their TLDs. And then you can register like in this kind of semi, basically hierarchical, but decentralized way. But at the end of everything you still have like root certificates that actually that's controlled by like 11 people or something scattered around the world who can like change the root domain name things. Yeah yeah that's that's it's kind of wild like anyone could start an isp but I don't really know how you become a t1 kind of provider.<br/>
<br/>
max: Yeah that's what I was getting at. that's the way to say it. like anyone could start a tier 3<br/>
provider, that part you can definitely get going but if you want to<br/>
become a tier 1 provider you kind of have to be like a really big organization<br/>
with a ton of money but then on the positive side I get the feeling that<br/>
maybe because of the way it's designed it's still like decentralizing of power<br/>
because it doesn't really feel like the tier 1 providers, like they can't do<br/>
really preferred traffic. They're not able to like insert advertisements<br/>
into the stuff. So it's somehow there's something about it that's working even though<br/>
it's kind of centralized. This is all pretty half-baked.<br/>
<br/>
cblgh: Who are some of the, you know, any of like the organizations that are tier one providers?<br/>
<br/>
max: There's a bunch of them but like AT&T, level three,<br/>
there's one in India called Tata Communication. So yeah, it doesn't feel like a<br/>
a cabal to use your word. It just feels like a weird conglomerate of these giant companies<br/>
that somehow make some money from doing it, but it also seems competitive enough that it's<br/>
not like one monopoly where they're super hiking the price to profit off of everyone<br/>
using the internet.<br/>
<br/>
cblgh: It's mostly like they need to cooperate because otherwise each... I would have to sign up with AT&T internet and I wouldn't be able to access like I don't know whatever this Swedish T1 provider would be right Yeah, exactly. So for them it's like well, we'll provide the best service if we just peer with each other for free and then we can together make money off of the internet users<br/>
<br/>
max: that seems like a good five minutes. Let's switch to talking about cabal.<br/>
<br/>
<br/>
=========================<br/>
<br/>
V: CABAL & P2P DELETE<br/>
<br/>
<br/>
max: let's talk about Cabal. What's the state of cabal and what are your plans for it right now?<br/>
<br/>
cblgh: The state of Cabal, yeah. So Cabal's a peer-to-peer group chat I kind of took the initiative on in 2018 April. So it's soon to be five years. Basically just started working on it with friends that I got to know through cabal. So we've been working on it since then. So: it's a community project, no company behind it, similar in concepts to like Discord, but what if you weren't owned by VCs and you didn't have to run a server and that kind of stuff. Peer to peer and it works offline.<br/>
<br/>
What's been going on recently is last year I was kind of spending a lot of my time writing grants for it, like I wrote two grants and have been kind of lucky enough to stumble into a third one. The first one I wrote didn't actually pan out. Like I submitted but we didn't get anything from it and then the second one actually went through. Which is kind of what I'm in a sense, I mean like going to make a living off of this year. So it's me and Kira from the project who are working on it this year for this grant. And I can go into what that is.<br/>
<br/>
And the third one was, I was lucky enough to just like get in touch with a friend who's working a lot in the design space. And through her, it turned out she had, this friend is Eileen, and it turned out she had kind of like like an independent budget to kind of help projects with. And that evolved into designing a new kind of web presence for cabal, which is wrapping up this week. And then we'll kind of make a new website based<br/>
on the designs we've gotten. So a lot of things that were kind of seeded last year are coming to fruition this year, which is really exciting.<br/>
<br/>
max: that's cool.<br/>
Speaking of the sustainability of open source<br/>
and different pathways for projects,<br/>
It's been cool for me getting to see the slow burn<br/>
and multiple phases of Cabal over the years.<br/>
That's cool that it's getting a new wave.<br/>
<br/>
cblgh: Yeah, for sure. And one of the things that has kept it alive is really this perspective of this is a no burnout zone, which is like one of our explicitly stated values and just only working on it when it's fun and doing things for fun.<br/>
<br/>
max: And also the fact it's no servers,<br/>
I think was a beautiful point about Beaker,<br/>
but also cabal, like you don't have operating costs<br/>
as far as I know.<br/>
- So that's pretty cool.<br/>
You don't really operate by startup logic.<br/>
<br/>
cblgh: Exactly, exactly. Like as long as each person that kind of comes online in a cabal is adding more resources and kind of connectivity to it. So some people might have a really hard time connecting to others because of just how the way routers work today with NATs like stuff like that.<br/>
<br/>
cblgh: so what we're doing for Cabal this year is we're actually rebuilding it from the ground up. So Cabal today, as it works when we're chatting on like any Cabal is building on top of this hypercore dat stack where we have the hypercore append-only log and we have the hyperswarm DHT. So each person in the cabal has this kind of append-only log that they write messages to. And then we kind of, we find other peers, other people, through using this hyperswarm network, the hyperswarm DHT. And we create a chat, like, you know, like—I'm saying something, you're saying something, the third person is saying something—that view, by taking all of these logs, and then kind of mixing them together and interlacing their different entries based on when they were written. The problem is we don't really control that tech stack at all. Like, and we've seen a lot of issues where, not issues, but I mean, it's been existing for five years. We have a lot of experience of like, what works and what kind of doesn't work as we would kind of<br/>
want it to work.<br/>
<br/>
And one of those is just the question of delete. Like, hypercore is an append only log. And in the name you hear it's something you can only add to, you can't remove from it. And it's nice for some reasons, it makes synchronization across the network a lot easier because if you know that you have this list of things that is only ever added to, then you can have an efficient sync by saying, "oh, hey, Max, I know that you have, from where I'm sitting, your latest message was number 59. Give me anything that's newer than 59."<br/>
That's a very easy synchronization protocol. But in something that's append-only you can't delete. So if you accidentally post your credit card number because you think you're in a web form or accidentally leak something there, you can't retract it. And that's a really, really, really heavy concern for something like a group chat, especially where someone might come in and just like post something horrible and how you're stuck with that.<br/>
<br/>
max: Are you trying to add delete in some patchwork fashion<br/>
or just accepting that as a limitation of the software?<br/>
<br/>
cblgh: Yeah, so we're actually saying, "Well, how about we make something custom from the ground up?" And we're doing that with what we're calling cable, a wire protocol, which has kind of been collaboratively specced out among us Cabal devs and community. And what the grant is about is kind of officializing that and really implementing it in a way where we have a spec that's very clear for anyone who's outside of the dev team to be able to read and then implement an independent version. So that means that Cabal, instead of just living in nodejs land, will be able to be implemented in Rust or Ruby or Python or Go.<br/>
<br/>
Because what we're doing is we're specing the individual bytes that each message is composed of. And instead of having this idea of an append-only log, we're kind of going this alternate route of saying, Well, we have this identity idea of public keys and private keys, where if I write a message, then I can sign that message with my private key. And as long as you get that message from anywhere, you don't even have to get directly from me, and if you know what my public key is, then you can verify the authenticity of that message by just checking the signature. So it kind of prevents fraudulent messages in a way where someone could not say, send a message that seems like it comes from me without that being able to be checked.And we're using that concept, but without having to put it into this linear, increase-only fashion.<br/>
<br/>
Instead we have this idea of kind of a grab bag of messages. So since we don't have this strict append only concept anymore, we just have a bag of messages that makes delete very easy. Because if you want to delete something, you can just like basically, in one sense, remove it from your local database. And you can also publish your message. So when other people request like "what messages have you written", among those that you send as a response is "actually this thing that I wrote in the past, I've deleted that. Please delete that as well and save this delete message in case someone else requests new messages from you."<br/>
<br/>
max: That's great.<br/>
What does that mean that you are,<br/>
so it's not depending on hypercore and hypers,<br/>
you're like, you've made a new foundational protocol.<br/>
<br/>
cblgh: - Yeah, it's a new protocol for sure.<br/>
<br/>
max: Cable is the name of the new protocol<br/>
or cable is the whole thing,<br/>
including the way that Kabal uses it?<br/>
<br/>
cblgh: Yeah, so currently Cable is just the name of, what we're calling the wire protocol, like the specification of the bytes. And then we'll see where we go from there. But that's what we're doing as part of the grants. So Kira is right now finishing up the first draft of the specification. And then we're gonna have an RFC process where we invite people to come and give their feedback and read through the spec and say "well, this thing you should maybe do differently. This thing was very nicely written." and stuff like that. And in parallel to that, I'm basically implementing both the low level stuff as well as the kind of application level interfaces.<br/>
<br/>
max: That's awesome.<br/>
I'm really glad we got a chance to talk about this.<br/>
I thought you were doing something totally different.<br/>
<br/>
cblgh: What did you think?<br/>
<br/>
max: I don't know.<br/>
I think I thought you were continuing with Cabal as it<br/>
was, but making mobile clients and some other stuff.<br/>
I just somehow missed the update that there was this new<br/>
protocol.<br/>
<br/>
cblgh: Yeah, for sure. I can maybe link to the--I wrote a text update when we announced the grant and stuff from our open-collective Yeah, I'll link that for sure. https://opencollective.com/cabal-club/updates/cabal-2022-in-review-two-grants-and-a-new-wire-protocol-later<br/>
<br/>
max: That's really exciting to me.<br/>
<br/>
I was having a somewhat like funny feeling just thinking, you know, it's a famous essay,<br/>
the one that's like critical of P2P because it's bad on privacy written by the person<br/>
from the New Design Congress whose name I'm forgetting.<br/>
<br/>
cblgh: Yeah, Cade Diehm.<br/>
<br/>
max: Yeah, yeah, yeah.<br/>
Somehow I was thinking about that essay again and I was just feeling like, you know what<br/>
What it was is because of the popularity of the Fediverse and the fact that I'm teaching<br/>
this class, it almost was feeling like an even more real possibility that there will<br/>
be this infrastructural switch in the next 5, 10 years where way more stuff is not in<br/>
the corporate cloud and is in these more localized clouds and home servers.<br/>
And I was just feeling like, okay, there's going to be some good parts about that, but<br/>
The shitty part about that is how much more identifiable everyone is.<br/>
There was this obscurity in the cloud, and it would be a bit sad if that's lost.<br/>
And so just hearing about your implementing delete makes me happy because then that's<br/>
at least one major vector of vulnerability that is removed.<br/>
because if you can really delete stuff, then that makes you a lot less vulnerable to accidentally<br/>
posting some shit that is going to cause problems for you later.<br/>
<br/>
cblgh: And yeah, it'll be very interesting to see. And it feels like we're part of this wave of like, you know, okay, we've been using these peer-to-peer systems, what can we do differently now? Like, we started specing this out in 2021, when we (max and cblgh) actually met in Svendborg. we (some cabal devs) were actually cohacking on the spec there.<br/>
<br/>
max: Yeah, yeah, yeah, I remember that.<br/>
<br/>
cblgh: and we're not the only ones. Like there's a lot of kind of questioning going on, both in SSB, you know, where Andre Staltz has said, he was very close to burnout and his kind of answer to that was he needs to kind of take it easy with the main Manyverse development. I think he's gonna have some other devs continue doing patches, But instead research what could be a new version of SSB that keeps the good parts but kind of removes the bad parts that has been burning people out. So it's definitely kind of new wave kind of vibes going on in the space in general to kind of continue the speculative stuff. So we'll see what happens.<br/>
<br/>
<br/>
============================<br/>
<br/>
VI: CLOSING / LOCAL TRANSCRIPTION<br/>
<br/>
max: Thanks, and I'll message you once I get a chance to transcribe. I'm kind of hoping I can use some transcription software because this is really long. I have to look into that.<br/>
<br/>
cblgh: As long as you don't send my stuff to OpenAI I am fine.<br/>
<br/>
max: Is that an actual boundary? I haven't looked into how transcription will work.<br/>
<br/>
cblgh: Well, I wouldn't want them to have my voice and shit, you know.<br/>
<br/>
max: I'll look for some local transcription. I think I did see at least see someone share one for Mac. So I just need to find a Linux one.<br/>
<br/>
cblgh: Nice.<br/>
<br/>
OK, talk to you later.<br/>
Sure.<br/>
Bye-bye.<br/>
(birds chirping)<br/>
[whistle]<br/>
[BEEP]<br/>
(beeping)<br/>
[BEEP]<br/>
[whistle]<br/>
[BLANK_AUDIO]<br/>
<br/>
<br/>
<br/>
<br/>

42
cblgh.html Normal file
View File

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" type="image/png" href="/favicon.ico">
<title>Solidarity Infrastructure Interviews</title>
<link rel="stylesheet" href="https://server-friends-ring.glitch.me/onionring.css">
<link rel="stylesheet" href="/styles.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<main>
<div>
<a href="/"> ← home </a>
</div>
<h2> An Interview With @cblgh </h2>
<iframe class="cryptpad-iframe" src="https://cryptpad.fr/pad/#/2/pad/view/qO+KhLnFZW0+80cRuPypYSvXRKfDuT1Vz--xp5PnMKM/embed/"></iframe>
<br/>
<hr/>
<footer>
<p>
This micro-website is a part of the <a href="http://server-friends-ring.glitch.me/">server-friends!</a> web-ring, initiated by <a href="https://wangyifan.io/">Yifan</a>,
containing self-hosted websites by different participants of the Solidarity Infrastructures class.
</p>
<br/>
<div id='webring'>
<script type="text/javascript" src="http://server-friends-ring.glitch.me/onionring-variables.js"></script>
<!-- <script type="text/javascript" src="/onionring-variables.js"></script>-->
<script type="text/javascript" src="http://server-friends-ring.glitch.me/onionring-widget.js"></script>
<!-- <script type="text/javascript" src="/onionring-widget.js"></script>-->
</div>
</footer>
<br/><br/>
</main>
</body>
</html>

418
cblgh.md Normal file
View File

@ -0,0 +1,418 @@
<br/>
<br/>
I: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE<br/>
II: LIEU, CERCA, FORUMS & SEARCH<br/>
III: COMPOSABLE SOLIDARITY INFRASTRUCTURE<br/>
IV: FIVE MINUTES ABOUT THE INTERNET<br/>
V: CABAL & P2P DELETE<br/>
VI: CLOSING, LOCAL TRANSCRIPTION<br/>
<br/>
================================<br/>
<br/>
I: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE<br/>
<br/>
max: I hear a fair amount of people talk about software governance, but I somehow feel like I haven't had first-hand experience to see when it goes wrong.<br/>
<br/>
Have you ever had an experience where you were using something or contributing to something, and then it went in a direction that you didn't want or was like counter to the aims of some group of users or contributors?<br/>
<br/>
cblgh: Yeah I've had some -- I wouldn't put it so harshly, but in some senses I was making a lot of dat stuff, using this kind of foundational thing called hypercore and append-only logs, so that's what that was all built around.<br/>
<br/>
So there was a very vibrant community of people -- artists, software engineers, interested onlookers -- all making stuff using Hypercore and Dat and Beaker Browser. And that project kind of took a turn away from the community in some senses, where the lead developer, who's written basically all of the foundational structure, decided to take a different path, away from making it community managed to instead being more managed by, or making more explicit, this foundational structure. hypercore is managed by the devs, which is good that it became very clear, because people were becoming confused on some decisions and stuff like that.<br/>
<br/>
But you know, Beaker browser is no longer working, right? And all of the things that people built using Beaker browser are also in a sense inaccessible. And that's one example of where that kind of governance thing did not really go in the way of the community, but rather the way of the devs.<br/>
<br/>
So it kind of was rebranded from that to Hypercore Protocol. And then more recently, its been rebranded to the holepunch platform, which has become VC funded in a way, but really it's more like a cryptocurrency funded thing; so there's a big Bitcoin backing in the company. It's very much taken a different path than I think a lot of people would have wanted.<br/>
<br/>
max: Thanks for that story. That brought up a bunch of questions for me. One is what is success or failure for governance or sustainability of an open source project?<br/>
<br/>
I have a first impulse, which is like, if it doesn't last forever, it's a failure. But what are the really lasting open source projects we can look to? Are there even any? is it Linux or something else?<br/>
<br/>
And then I had a second impulse, which was like, that's a little silly -- it's not really like things need to last forever to be worthwhile. There's certainly projects which were experimental and valuable.<br/>
<br/>
Maybe Beaker Browser might be one of those where it inspired a lot of people<br/>
and maybe influenced the discourse and future projects that are going to be made.<br/>
<br/>
And sure, it's a bummer that some of the things people made on Beaker are going to be unmaintained or abandoned, but it would also seem extreme to say this project was a failure.<br/>
<br/>
cblgh: for sure, it all depends on what you are evaluating it along. One thing Beaker Browser could have done instead of labeling the project defunct, is at an earlier stage, they could have maybe tried to find someone in the community that was excited to receive the stewardship and take it in a different direction.<br/>
<br/>
max: There could have been a more active engagement with that instead of just saying this is over.<br/>
<br/>
cblgh: But it's also very difficult and intertwined with burning out and stuff. I'm not sure Paul burnt out on it, but I certainly think he worked very, very hard for very long. And now it's defunct. It's very hard to do a handoff when you're already struggling to keep your head above water in a way, you know?<br/>
<br/>
max: Yeah, that might not be the most energizing part of the project.<br/>
<br/>
cblgh: so in some senses, if it's a success, then when you realize it's a success, you have to start preparing, like "the will" for the project while you have the energy to do that.<br/>
<br/>
max: especially with a project that big, I would imagine there's someone who would be interested, even if it was just like a college student, or someone who wants to develop their skills or resume or something, maybe being able to take on the responsibility for such a big project is kind of an appealing concept in some ways.<br/>
<br/>
cblgh: Yeah, and one of the benefits of this software is there's not this big expensive cloud infrastructure you need to keep running.<br/>
<br/>
max: That's true. So it's not like it turns off one day. It just needs someone in their room with an internet connection still working on it.<br/>
<br/>
cblgh: You could basically have had Beaker Browser as it was and just keep it on long-term support where people were just using the things that were already there, and maybe wishing for better tools. But if it could have just been kept alive, then I think that would have been a vibrant small corner instead of having to pursue the path of existing alongside Mozilla or Chromium.<br/>
<br/>
max: The other project I've been thinking about on this topic is the Fediverse because there's now this interest from Medium and even Meta to use ActivityPub. And we'll see what happens in the next years. But to me, it seems like one possible outcome is that it actually gets a lot of adoption. And I've even heard the term "the corpoverse" thrown around.<br/>
<br/>
And I was thinking, what would that mean? This is all a bit speculative, because it could also not happen. But I was like, wow, that would be interesting if this kind of slow burning project of anarchists and volunteers eventually achieves such large-scale influence, even if the original people setting up servers and stuff were kind of more at this like experimental scale. Maybe that's how things sometimes happen - that an experiment ends up having a big influence not because the people doing the experiment try to make it have a big influence but because it eventually influences large-scale actors to do something different.<br/>
<br/>
cblgh: Yeah, that's one of the rare occasions where scrappy people can kind of choose the fork in the future. It also brings to mind other examples -- I mean this has been going on for as long as there have been Bohemians and artists right? This is like gentrification by another name. Oh this was successful, this was a cool place to be. I guess we gotta exist there to be cool and extract the value.<br/>
<br/>
max: Yea its an interesting analogy. I guess the other question though is because some people are critical of the corpoverse, asking is it gonna even have any of the good parts of the old fediverse, and my optimistic vision of it is that it does maintain the good parts. maybe it's not as pure as the original, the non-corpo fediverse, but it wouldn't be just like gentrification because with gentrification it sometimes feels like here's a place where some creative interesting things were happening and then once it reaches the commercialized stage it actually doesn't really have anything particularly in common with what it used to be like and many of the people who used to live there are forced to leave, it's just an extractive process that happens on top of something else. And also going back to how we started this conversation, "the internet" just popped into my head as a successful open source project. I think this might be what's actually getting me to research this more, because I feel like the internet is weirdly one that worked. Obviously there's lots of shit things that have been done on top of the internet or with the internet, but the core protocols themselves seem like they were somehow a fairly positive example of how open source can go.<br/>
<br/>
cblgh: Yeah, I think so. Like sometimes you have these like runoff successes that the rest of the commercial world just has to cope with. Like I'm sure big companies would have rather had, you know, like what if we had Facebook-internet, where I just pay a monthly subscription to access the zucknet right?<br/>
<br/>
max: Totally yeah. If a corporation had done that from beginning it could have been like that. There could be an advertisement embedded into every packet.<br/>
<br/>
cblgh: Yeah. You're doing like packet inspection and suddenly it's just like, "have you heard about this new movie?"<br/>
<br/>
max: Literally, it could be like that but it's not. Wow, that just made me excited to have that clarity. So yeah, I would be hopeful that with mastodon or whatever protocols, even if they were to eventually get success, could have that same capacity as the current internet where it would be like, of course, these corporations would love to have their advertisements embedded in every little stream, but like, it's just not the way the protocol works. You just can't really do that.<br/>
<br/>
cblgh: Yeah, I can imagine that. And then in some ways, you know, from like an ecosystem perspective, this is just something I've been learning in the last year, you have these, and I'm not sure what they're called, I think like forerunner frontier species that enter a degraded ecosystem, and they're the ones that are hardy enough to grow there. And when they grow, they kind of create the circumstances for other less hardy things to grow, which will eventually actually supplant these frontier species because it grows longer and stronger and starts shading them out. And I think that really happens a lot with technologies that kind of tangent this social realm as well where you have these hardy, and I don't really like the term frontier because it has a lot of baggage, but yeah, like these hardy initiative takers or whatever that are willing to come into a new space and experiment.<br/>
<br/>
And typically it's a lot of marginalized communities, are the ones who will first embrace something new. And they kind of work it out, you know, and they figure out what works, what doesn't work, and they start making it cool. But when becomes more popular and more commercialized, they might not feel comfortable there anymore. So it's an interesting dynamic and I'm not necessarily being very doomerism about Fediverse. I'm more like just observing dynamics. Just from how the technology works I would think that you can still have a very alternative subset of the Fediverse that just like de-federates from everything except their friends.<br/>
<br/>
max: Yeah, I would optimistically believe so as well.<br/>
<br/>
cblgh: But I think we would still have a different vibe and people wouldn't get, you know, very radical or interesting minded people probably wouldn't even give it a chance if it was like as commonly accepted as Facebook or whatever. I don't know. I think it's an interesting dynamic with these groups that come in to a new space and experiment and then are eventually in some senses crowded out.<br/>
<br/>
max: Yeah, I like your comparison with the ecosystem waves of succession. Intuitively I feel like I don't really know how all this stuff works. I feel almost like my stomach dropping sometimes when I think about it, just feeling like its a mystery, but it's at least a nice possible model. I'm definitely not going to say that's not how it works. And it's a nice alternative that goes beyond, oh, you just do small things that don't matter or big things that make a difference -- it provides a different possible paradigm.<br/>
<br/>
Because yeah, I guess when I felt that way when I was reading about the internet too, that it was kind of exhausting to feel like at this point with the tier one ISPs, they're so big that if you really wanted to do anything involving that, you would have to be so knee-deep in industrial workings that I'm just like, I don't...<br/>
<br/>
cblgh: Yeah, it's impossible, right? I'm never going to do that. I don't have the wherewithal to become a T1 provider. That's just like in stories of revenge, you know, you aim to become the king, so you can bring down the empire from within. Like nobody does that in real life.<br/>
<br/>
max: Yeah, I don't have the energy for that.<br/>
<br/>
cblgh: But I mean, in that case, you know, that realization opens up, well I don't have the energy for that. Obviously. What can we do instead? Like maybe we just do some weird radio shit, you know, like where we buy a bunch of radios and we start sending packets over radios or something. It's a much smaller scale.<br/>
<br/>
max: Yeah, I think this is why a lot of anarchist logics and small scale projects appealed to me was because they were stuff you could do and you could start doing now and not necessarily have to spend a lifetime learning legal codes.<br/>
<br/>
cblgh: Yeah, and once you get the kind of immediacy from the feedback loop, it's really self-feeding as well like, "Oh, I got this thing working and I can show it to someone and they can become excited and then we can do it together." And instead of you know having to study something for like two years before you can actually see something on the screen or whatever.<br/>
<br/>
max: That's true. Getting some real feedback. Also one of the joys and addictions of programming.<br/>
<br/>
================================<br/>
<br/>
II: LIEU, CERCA, FORUMS & SEARCH<br/>
<br/>
max: So the projects I was thinking about talking about were cerca and lieu But was there anything else that you thought would be relevant to these topics?<br/>
<br/>
cblgh: Is this the term that you want to use, solidarity infrastructure? Lieu and Cerca are definitely two very clear projects in that respect. How I got started into this way of doing things might be interesting, I'm not sure.<br/>
<br/>
max: Yeah, that sounds great.<br/>
<br/>
cblgh: It all goes back to 10, 12 years ago. Basically, I started my HTML, JavaScript, I mean, journey or whatever, like learning that kind of stuff through a project I made with two friends called Piratradio, which is Swedish for pirate radio, which is kind of like a tongue-in-cheek kind of name. And basically it revolved around making these collaborative playlists. So the idea was, I listened to music on YouTube and I listened to music on SoundCloud and on Bandcamp. And I thought it was kind of silly or annoying that I couldn't just make a playlist with music from all of these things and then send to someone or that we could listen to it together.<br/>
<br/>
So that's what Piratradio was. It was basically just like a database that had lists of links and then a front-end that kind of put these links together. And we had some special kind of resolving and embedding things that put things on the page. So when we render the list of all these different links, we would get the song title. And when you click on a thing, we'd actually start playing on the page. So that's kind of how I got into all of this stuff. Because from there, I found different kinds of other projects.<br/>
<br/>
max: What type of things did you discover, if you remember from working on that?<br/>
<br/>
cblgh: Very many things - one thing was collaborating with other people and how to do that in a way that works best for the group, and for me. One thing that I reflected on, is that I really like this way of collaborating with people where you don't step on each other's toes too much. So like I have one area that I'm focusing on and then another person has another area. And our collaboration kind of consists of us working on these two different things and then gluing those things together, right?<br/>
<br/>
max: Totally.<br/>
<br/>
cblgh: So that's one thing. But the other thing was we kind of thought it was a bit scary to have this database of links, even if it was only links and we didn't download anything. We started looking for how we could do this in a decentralized way? Which is how I started looking into IPFS that then eventually found Scuttlebutt. Yeah, so then I started making stuff using that and I made a thing called Datradio, which was very inspired by this. Which was kind of doing the same thing, but using dat archives. So someone could work in the Beaker Browser, now defunct, but very cool project, where you could create websites directly in the browser. It was using its API.<br/>
<br/>
So we just say like, here's the app itself, and then you would fork it. And now you have the entire app in your browser. And then you can add stuff into that app and share links so that other people can just listen to that.<br/>
<br/>
max: And through that, remove yourself from this liability of hosting these links. if everyone was just forking their own and having them on their machine. It's really amazing how much creativity and innovation copyright law has fueled out of teenage angst towards the annoyance that these people don't want you to download stuff for free.<br/>
<br/>
cblgh: Yeah, because it's scary -- like people just want to make something fun, but then when they've they've made something fun, they're kind of getting anxious like, fuck, are we gonna get wrecked for this? Like, I'm not a lawyer, I don't know literally everything about what's legal or not.<br/>
<br/>
max: I feel you. And they did wreck some people back in the day -- that was a specific approach/strategy of anti pirating legal stuff was to come down really hard on a few individuals who were not really doing anything other than downloading a bunch of stuff.<br/>
<br/>
cblgh: Yeah, and actually with that pirotroli thing, we actually did go to a lawyer and pay him a small amount to review if were we doing anything bad and his take was no, we're not doing anything bad, but we should add like a small terms of service basically where people just agree this is my responsibility or something. The app's defunct now for other reasons.<br/>
<br/>
max: That's cool to hear -- everyone's got an interesting Scuttlebutt origin story. Do you want to talk more about Cerca and Lieu, which I'm not pronouncing correctly.<br/>
<br/>
cblgh: Yeah, sure. I can do maybe a brief description.<br/>
<br/>
I can start with Lieu because that was the first thing I made of those two. Its described as a web ring search engine or communal search engine. So what it does is basically, instead of searching and crawling the entire internet, which most search engines do today, it instead searches only a pre-specified list of domains, which was natural for the context that I was coming from, which was a webring called the Merveilles webring that I'm a part of. We have like 200 odd sites in there.<br/>
<br/>
There are many cool sites, but it's kind of daunting. You know, when you have this list of like 200 sites -- which one do I start with? I'm not really sure what's in here. And like, even if I start with one, I'll just click in and then maybe it's not really obvious where to go from clicking in.<br/>
<br/>
So I was noticing this kind of fatigue setting in or whatever where I'll click a random site, and I couldn't find anything interesting. Then I'll click another one. Maybe I'll just do that two or three times and then I'm kind of running into boredom. So I wanted to surface all of the really cool stuff that people in this webring were doing -- so that's where Lieu came from. It crawls all of those sites and indexes different kinds of search terms that it's found either in titles or in the body of the text and that kind of stuff.<br/>
<br/>
max: I remember you writing something, or I don't know if you just said this or wrote this, but that the limitation of Lieu was actually better for certain types of searching. The example with music was really nice. You were like, "If I Google search 'music', this is not going to give me good music." There's actually certain things that Lieu is better at searching for because of its limitations or its focus.<br/>
<br/>
cblgh: Yeah, exactly because I know that this is a particular kind of scene and I kind of have an intuition for what's there. For the Lieu instance I've deployed with the Merveilles Webring, I kind of know that it's kind of design-y focus with a lot of weird niche topics. So a lot of the things that are linked in there will suit the sensibilities that I understand that this collective has. So in that case, I can actually just type in »music» and I'll get lists of different kinds of things -- maybe someone listing their favorite songs -- and it won't be just like, if I search the same thing in DuckDuckGo or Google, where I'll get basically very random ad-fueled search results.<br/>
<br/>
max: It also makes me think something cool about this is its sort of a form of retrospective organizing, where instead of someone saying, "we have a community, we're gonna make a music channel," which I guess leads to your next project, Cerca, but instead, this is like, everyone just do your own thing, and then let's find all the times someone mentioned music.<br/>
<br/>
cblgh: Yeah, It's taking a different kind of approach to that, for sure. So that's Lieu. And it started out as just being for the Merveilles webring. But then later I made it easily deployable for anyone. It's written in Go and you can download a binary. And basically if you have a small list of websites you want to make searchable, you could download Lieu. You write those small lists, I mean the list of websites in the file, and then you start crawling with Lieu. And you can just spin it up and start using it for search.<br/>
<br/>
So that could work if you have a group of friends and you want to make your collective output searchable. That could be one thing. But you could also just collect some cool sites that you want to be able to search as a kind of a group. You could do that as well.<br/>
<br/>
And then Cerca is the other project you mentioned.<br/>
<br/>
That's kind of come from how I grew up on the internet in a way -- I grew up in internet forums of many different kinds. And I was really missing that kind of, you know, mode of communication that's slower than like real time social media or IRC and more persistent as well. I wasn't really running into that in a lot of places. So it was on my mind for a long time, but II was waiting for a good time to make a forum. Because there are existing software but there aren't that many modern ones—I've been keeping track. The only one that I've seen is Discourse.<br/>
<br/>
And I think it's great that it's kind of brought the forum sensibilities into the modern web, so to speak. But deploying Discourse for a community is super rough. You have to have a pretty beefy machine to make it work. And honestly, I never really liked the aesthetics of Discourse. And I wanted to make something that was a bit more like, I don't know, home-y or customizable or just like, less clinically sterile, you know?<br/>
<br/>
max: Yeah, very sterile, very gamified, quantitative vibe from discourse forums.<br/>
<br/>
cblgh: Yeah, it's like "I have to level up like: oh, make five posts." I don't know. It kind of struck me as, great that it exists, but I really didn't want to launch it myself.<br/>
<br/>
So before making it I was just having fun and designing a forum software interface that I would want. And the thing I designed didn't end up in cerca at all, but it kind of influenced the things I wanted in cerca. And how I ended up making it was, basically, in Merveilles we have a mastodon instance: merveilles.town. On the instance people started getting excited about forums. And I asked "well, if I make one, would people want to join it?" And people were pretty excited. I had some time, so I kind of banged it out in a couple of weeks.<br/>
<br/>
max: I remember thinking another thing I thought was cool about Cerca was the way that you kind of made it in public and immediately had contributors as soon as you started making it.<br/>
<br/>
And just the dynamic of making a piece of software for a community with the community, maybe you want to speak more about that for better or for worse?<br/>
<br/>
cblgh: Yeah, it's really nice to be part of a community like that, because it wasn't just me creating something for me and then hoping someone would adopt it. It was like, as you say, I was creating it and then people were joining it and were excited about it and adding new things that I didn't even think of or I didn't have time to do. And that was really energizing in a way, to be creating software in this kind of community context, as opposed to creating something and hoping that it will be used. Because that kind of leads to a lot of overgeneralization, which ultimately actually hinders usage because it's too general, it's not specific enough. It just becomes this really big unyielding beast because you don't know what to anticipate or not. So you have to anticipate everything.<br/>
<br/>
max: Do everything.<br/>
<br/>
cblgh: Yeah. Whereas for cerca, I was literally in the beginning making it for the Merveilles use case, which has very specific software sensibilities in some sense, which was fun to experiment with. Like a lot of people there don't like client-side JavaScript. So I was trying to make everything in a way where there would be no requirements for client-side JavaScript. And it still doesn't have anything. Which meant going back to, how do you actually make a web form? And how do you handle that stuff?<br/>
<br/>
max: Some more traditional programming craft.<br/>
<br/>
cblgh: Yeah, and in some sense, that's just really working with the grain of what you get in the web platform, because forms are one of the OG elements of the HTML standard. And they're really easy to work with once you know what you're doing.<br/>
<br/>
max: Yeah, I guess that also makes me feel like something about that project then is the code itself It's part of what's interesting about it. It feels like it's a very three-dimensional thing. Like, there's the way you use it. There's the way it was made. And there's the choice of technologies used to make it. And they're kind of like all a part of what makes it creative and interesting. And it seems like you found some joy in all the different parts was my impression.<br/>
<br/>
cblgh: Yeah, and I mean, that's kind of one of my personal strategies in general -- basically, my entire mode of operation is having fun while working on projects. And the reason behind that is it's kind of a burnout mitigation strategy. Because if you're having fun and you're being energized by projects, then that's actively decreasing a burnout counter.<br/>
<br/>
max: Totally.<br/>
<br/>
cblgh: Where if you feel like you have the entire burden of the world on you and just doing this to be a hero or something, that's a very depleting thing. You can only do it for so long. Whereas having fun, like on Cerca or whatever, making Lieu, that's giving more energy to work on that or to work on other things.<br/>
<br/>
max: Yeah, it's amazing how many people I know get burned out by whatever work they're doing. It's almost prolific.<br/>
<br/>
cblgh: Yeah, I don't know what it's about. People feel like they alone have to shoulder the burdens of a community or something, which is wrong. Like if a community is letting something burn down to the ground, then sometimes that's what needs to happen, you know? It's not your single responsibility to take care of that, because there's an entire community. And if nobody's taking care of it, then yeah, that's just a natural result. We can rebuild something new afterwards.<br/>
<br/>
max: Speaking of taking care, you wanna talk about maintenance a little bit? How is it going with Cerca and who is taking care and what's it like with people using it?<br/>
<br/>
cblgh: Yeah, sure. So one of the strategies of it was really making something that was low maintenance. I wanted to minimize external dependencies and external infrastructure. So that once you've deployed it, it just keeps on running and you don't have to start debugging mailgun or something. And in that sense, it's been a resounding success. It's just been running and people have been using it off and on.<br/>
<br/>
It has its kind of high tides and low tides. I've seen it start to be used, people rediscovering the forum during things like Inktober where there was a thread where three or four or five people were posting every day and just like sharing each other on, and then after that it was kind of quiet for a while and now it's kind of resurging a little bit again.<br/>
<br/>
max: I'm curious what will happen over time too, 'cause I also have this dream of a slower form, communication place, and somehow forums do end up doing that sometimes. Like there was this thread I started on the Activity Pub forum discourse two years ago, and it basically gets consistent replies every few months for two years. It's a really interesting timescale. It's like, if you were to read it all in a row, you'd be like, wow, this is a really interesting conversation with like 20 people. But it happens at an absolute snail pace.<br/>
<br/>
cblgh: Yeah, it's fun to be on the receiving end -- you get to literally re-live that experience. It's taking so long in this conversation, which is nice, but an observer just thinks like, wow, this really came together quickly.<br/>
<br/>
max: Yeah, they look at it all at once. They have no idea. It's like a weird collapsing of time.<br/>
<br/>
cblgh: Yeah and that would never happen with something like a Twitter or a Mastodon, right? Because it's very much fire and forget. I'll have missed if you posted like yesterday because I wasn't online much yesterday. And then that will probably never be resurfaced again for me, which is totally the opposite of forums.<br/>
<br/>
With its maintenance I've been taking a kind of very slow approach and working on it when I felt like it or when something critical came up. One thing I think is really difficult is well-intentioned drive-by contributions. There's this kind of balance you have to straddle between what you want to encourage people to do and make contributions, but at the same time a specific contribution might actually be the wrong direction for the piece of software, if you're the one who has to maintain it in perpetuity. That's a really really difficult thing I think with with maintenance, actually saying no to certain contributions.<br/>
<br/>
And I think I've been good at it in some cases and in other cases, I have some lingering PRs where I'm just like, this is not the right thing, but I also feel bad saying no to someone. So it kind of is just, I don't know, kind of ghosting PRs. (laughing) I don't want to say, "I don't want this." But I also don't want to press merge.<br/>
<br/>
max: Ghosting PRs, what a social dilemma of our times.<br/>
<br/>
cblgh: I know, right?<br/>
<br/>
max: I feel you. I've in the past months received a lot of gifts that I didn't want while I've been in India. It's been interesting. Most of them I've actually just say yes to at this point because I appreciate the intention and I feel like there's some mutually nourishing thing that happens when someone gives me some food, even if it's something that I don't actually want to eat. But for me, it's different eating some food that I don't really want to eat versus yeah, like I remember someone offered me some clothes that I didn't take because I was like, I don't have space in my pack for this. I have a limit where I'll be like although I like accepting and receiving, I'm not willing to accept, I'm not willing to carry around this thing for the next six months, just to like, be agreeable.<br/>
<br/>
cblgh: Its interesting, this idea of a gift that is an encumbrance versus a gift that's kind of more relation building in a way.<br/>
<br/>
max: Yeah.<br/>
<br/>
cblgh: So if someone gave you food, then you can either toss it away or you can eat it, and that's just like, that's a very transient thing, but clothes or like a painting or something. It won't just go away. You kind of become encumbered by it. Same thing with someone adding a PR and you have to merge it because you feel bad. Then it's there and you have to actually actively work to either throw that piece of code out or throw the painting out.<br/>
<br/>
max: I almost started to feel bad for interviewing you about Cerca as we were talking about it because based on what you said you're doing this for fun it seems almost like counter to its aim to become the focus of such attention<br/>
<br/>
cblgh: No, no, I'm really happy with it and I think about it a lot and I'm very happy every time I see someone make a post, you know, it's like, oh, wow, this is great. Someone created a thread and I didn't have to do anything.<br/>
<br/>
max: Nice. Well, in that light, then I'm happy to talk about it. I just was thinking how with some software, the default mode is like, everything has to have a reason and it needs to be optimized and the best. And it's interesting that if you're making something more provisional for fun, maybe that's not true, maybe there are decisions one makes that are like, not ideal or something, but like, it's fine because it's not the purpose of it.<br/>
<br/>
cblgh: Well, I think it can be very intentional even with fun stuff. I am actually quite intentional with, for example, cerca and other things I do for fun. Like, if I do decide I'm doing this and I don't really care about the outcome, that's actually an intention, right? It's kind of a way to approach a particular thing.<br/>
<br/>
Every decision I've made with Cerca has been very informed, even if it seems like, oh--it's not using classes because I guess I didn't really care about that. It's like, oh, no, I'm actually doing that because it makes everything so much more composable.<br/>
<br/>
max: Not using CSS classes.<br/>
<br/>
cblgh: Yeah, exactly. I tried to minimize that.<br/>
<br/>
max: Like just doing stuff more inline?<br/>
<br/>
cblgh: Yeah, sometimes inline, but also just like styling the default elements.<br/>
<br/>
max: Is there anything else you feel that you wanted to say about cerca and lieu? or Should we move on to the other stuff?<br/>
<br/>
cblgh: Well, I maybe have a few last thoughts on cerca.<br/>
<br/>
cblgh: Like one thing I really wanted with it was to avoid external infrastructure that I mentioned, like which in my case was email and email registrations and email for "I forgot my password"-functionality, which seems important. So I went with this kind of weird thing that was informed by doing way too much peer-to-peer stuff using public keys and shit.<br/>
<br/>
And I think I might be kind of, I haven't unpacked it yet, but I think it's an interesting thing where I didn't want the email infrastructure, but I did want people to be able to reset their passwords. So I kind of invented this thing of "here's a public key and you can use it to kind of reset your password", which was in effect kind of cumbersome for people. I mean, you have to download a separate tool and then you have to remember the second thing, but it kind of gave me permission to not do the default thing. And I think it's an interesting, not really sure what to call it, even like a technique or whatever, like: "okay, people can plausibly restore their passwords. So therefore, I'm freed of this kind of default constraint of having to service this by email."<br/>
<br/>
max: I feel you on the email thing, actually that just reminded me one of my tasks for today is to fix the email sending for the self-hosted outline.<br/>
<br/>
cblgh: Yeah its just like such a thing.<br/>
<br/>
max: an annoying task<br/>
<br/>
cblgh: But where I think I want to go with it actually, and next time I'm gonna have a batch of work working on it, is I'm going to try to use what's called timed one-time passwords, which are basically these codes that you find if you use like a Google Authenticator; that's a standardized technique. And you can actually implement that in something like Cerca. It's decentralized as hell basically.<br/>
<br/>
max: How do you send someone the code if there's no email?<br/>
<br/>
cblgh: I haven't actually implemented yet. So my details on this are very scant. But basically, when they register, they get this code that they put into their Authenticator app. And they probably have an Authenticator app for logging into all kinds of things today. So if they want to reset their password, they could do it using this kind of second proof from the Authenticator app.<br/>
<br/>
max: I got you. So to prove that you're you-- You supply a password from the Authenticator app that is somehow connected to this account, but that only you can produce.<br/>
<br/>
cblgh: Yeah, and you can even go further and you can just say, well, you don't even have to log in with a password if you don't want to, you could just use your Authenticator app.<br/>
<br/>
max: Nice.<br/>
<br/>
cblgh: So that's something I wanna explore. And being able to explore that was only made possible by doing this really cumbersome strange thing that I started with. It's just like a small side note that I think is kind of interesting -- if you do tread off the beaten path it opens up other things.<br/>
<br/>
max: It's a small but big choice to not include email as dependency. It takes you off the standard app.<br/>
<br/>
cblgh: But yeah, I think that closes the chapter on cerca for now.<br/>
<br/>
<br/>
============================<br/>
<br/>
III: COMPOSABLE SOLIDARITY INFRASTRUCTURE<br/>
<br/>
max: do you want to speak about some visions you're having?<br/>
<br/>
cblgh: Do you want to narrow it down? I've got a lot of thoughts.<br/>
<br/>
max: No, I don't feel like narrowing it down. It's whatever is most alive for you.<br/>
<br/>
cblgh: Okay, interesting.<br/>
<br/>
Yeah, so, one thing that's been on my mind for a year at least and that I've been starting to approach people about, is this idea of reusable and composable infrastructural components, in particular for peer-to-peer systems.<br/>
<br/>
So it's like, we have these different projects, right? And this is not necessarily a take that a lot of people agree with, but personally I don't really like interoperability that much because we are underfunded as hell, you know? It's like, so if someone's going to tell me, well, now you need to support SSB in cabal as well, that just doesn't make sense for a lot of reasons because the contexts are different, right? Cabal is very much IRC style, whereas SSB clients today are more forum style. So the general viewing contexts are different.<br/>
<br/>
So where can we collaborate instead of just like, you know, having literally the same protocol? And where I think it makes sense is on the infrastructure level where like, okay, we have this protocol, you have that protocol, this third group has another protocol, but we all need to reach each other, right? We have this notion of we want to find peers. Like, can we somehow collaborate on that level of things? Because that's a very, in some sense, permissionless level of collaborating. We don't need to change our protocol just because we're using the same infrastructure.<br/>
<br/>
And it kind of makes it less competitive in some sense, it becomes way more collaborative. So that's kind of what I've been thinking about, like, okay, how, what parts of the stack, like what exists today that we could use in multiple projects? And that's kind of an ongoing research project right now for me.<br/>
<br/>
Like I'm exploring this a little bit with the p2panda team, where we're doing small experiments on this kind of old technology called I2P, which is like tor, but it's way more kind of peer-to-peer oriented, whereas tor is kind of more client server in its architecture. We're doing small experiments there to kind of get a feel for it. Like, can we create a website and we can visit it like over like very unconfigured devices? And yes, we could. That was really cool. A person in UK on a mobile network could visit my website thats being hosted on i2p on a computer that was completely unconfigured with regards to firewalls and stuff. So that was super cool.<br/>
<br/>
So yeah, that's kind of like exploring that general area of what infrastructure do we have today? What infrastructure could we kind of collectively manage you know, and could collectively use and what could that collaboration, what kind of shapes can that take for example? We could have maybe an open, if we do find a very good component that's usable in many projects, we could have an open collective for example, to fund all of the engagement for that, whereas some of it would go for server costs, but also just for stuff like, you know, like an hourly wage for everything that's relating to the infrastructure bits.<br/>
<br/>
max: I like this idea, but what are some of the possible functionality for components that come to mind that could be shared between projects? So you said like peer discovery or something?<br/>
<br/>
cblgh: Yeah, so we'd just be basically, you know, the underlying DHT. So yeah, it's peer discovery. It's like, so we have a peer-to-peer system, which means these peers need to find each other somehow and they need to find each other in some way that's resilient across, you know, regular, unconfigured computers. So are there components that exist that work in multiple programming languages? Which is a big barrier. For example, Hyperswarm today is very much Node-js only. It's been trying to be ported to Rust for a long time, which means it's very difficult to port to different languages. So yeah, it's for sure basically just like, how can these peers find each other? And then once they've found each other, you just do your application-level concerns.<br/>
<br/>
max: Are there any other composable pieces that come to mind?<br/>
<br/>
cblgh: I mean, for me, it's mainly that because it's the biggest thing.<br/>
<br/>
max: it breaks away from the current paradigm because it's something smaller than most of the current protocols. most of the protocols are usually including more than just that<br/>
<br/>
cblgh: each protocol kind of makes their own decision on that and it would be great if we could find something that works for everyone or for many actors rather than just one.<br/>
<br/>
<br/>
===========================<br/>
<br/>
IV: FIVE MINUTES ABOUT THE INTERNET<br/>
<br/>
<br/>
max: Okay. How about this? Can we talk about the internet for five minutes? Because I'm just curious -- so I've heard some people say the internet is decentralized. People talk about how there can be many networks on Scuttlebutt, like an archipelago, many networks, internets and stuff. And it doesn't have to have this global connectivity. But then when I researched it more, I had heard about it but I had never really thought about how there's these like different tiers of Internet Service Providers. And basically, as I understand it, the definition of a Tier 1 Internet Service Provider is that they peer with all other Tier 1 Internet Service Providers for free and that they know the routes to any possible IP address. And so another way of saying that is that tier one ISP by its definition is centralized. There can only be one tier one, if the definition of tier one is "peers with all other tier ones and knows every route".<br/>
<br/>
That was interesting to me. I mean it's not centralized in that there's not one player because there's multiple, but it's central or it's universal maybe. Which also made more sense with like the common way people talk about the internet which is like, are "Are you connected to The internet?" Like using the word "the" instead of "a". Before I was like, is that a misnomer? But then after learning about this, I was like, well, if you mean the tier one internet, then maybe that is correct. It's singular.<br/>
<br/>
cblgh: - Yeah, its interesting. I don't know so much about the actual details there (bird squawks) but there's a lot that goes on outside of like, "Oh yeah, here's my domain. I registered it with, I don't know, GoDaddy" or whatever. Because as you say, we have these like tiers where, DNS is decentralized in that you have different regions that decide over their TLDs. And then you can register like in this kind of semi, basically hierarchical, but decentralized way. But at the end of everything you still have like root certificates that are controlled by like 11 people or something scattered around the world who can like change the root domain name things. Yeah like anyone could start an isp but I don't really know how you become a t1 kind of provider.<br/>
<br/>
max: Yeah that's what I was getting at. that's the way to say it. anyone could start a tier 3 provider, that part you can definitely get going, but if you want to become a tier 1 provider you kind of have to be like a really big organization with a ton of money. But then on the positive side I get the feeling that maybe because of the way it's designed it's still like decentralizing of power because it doesn't really feel like the tier 1 providers have much power -- like they can't really do preferred traffic. They're not able to like insert advertisements into the stuff. So it's somehow there's something about it that's working even though it's kind of centralized. This is all pretty half-baked.<br/>
<br/>
cblgh: Who are some of the organizations that are tier one providers?<br/>
<br/>
max: There's a bunch of them but like AT&T, level three, there's one in India called Tata Communication. So yeah, it doesn't feel like a a cabal to use your word. It just feels like a weird conglomerate of these giant companies that somehow make some money from doing it, but it also seems competitive enough that it's not like one monopoly where they're super hiking the price to profit off of everyone using the internet.<br/>
<br/>
cblgh: It's mostly like they need to cooperate because otherwise I would have to sign up with AT&T internet and I wouldn't be able to access like I don't know whatever this Swedish T1 provider would be right. So for them it's like well, we'll provide the best service if we just peer with each other for free and then we can together make money off of the internet users<br/>
<br/>
max: that seems like a good five minutes. Let's switch to talking about cabal.<br/>
<br/>
<br/>
=========================<br/>
<br/>
V: CABAL & P2P DELETE<br/>
<br/>
<br/>
max: let's talk about Cabal. What's the state of cabal and what are your plans for it right now?<br/>
<br/>
cblgh: The state of Cabal, yeah. So Cabal's a peer-to-peer group chat I kind of took the initiative on in 2018 April. So it's soon to be five years. Basically just started working on it with friends that I got to know through cabal. So we've been working on it since then. So: it's a community project, no company behind it, similar in concepts to like Discord, but what if you weren't owned by VCs and you didn't have to run a server and that kind of stuff. Peer to peer and it works offline.<br/>
<br/>
What's been going on recently is last year I was kind of spending a lot of my time writing grants for it, like I wrote two grants and have been kind of lucky enough to stumble into a third one. The first one I wrote didn't actually pan out. Like I submitted but we didn't get anything from it and then the second one actually went through. Which is kind of what I'm in a sense, I mean like going to make a living off of this year. So it's me and Kira from the project who are working on it this year for this grant. And I can go into what that is.<br/>
<br/>
And the third one was, I was lucky enough to just like get in touch with a friend who's working a lot in the design space. And through her, it turned out she had, this friend is Eileen, and it turned out she had kind of like like an independent budget to kind of help projects with. And that evolved into designing a new kind of web presence for cabal, which is wrapping up this week. And then we'll kind of make a new website based on the designs we've gotten. So a lot of things that were kind of seeded last year are coming to fruition this year, which is really exciting.<br/>
<br/>
max: that's cool. Speaking of the sustainability of open source and different pathways for projects, It's been cool for me getting to see the slow burn and multiple phases of Cabal over the years. That's cool that it's getting a new wave.<br/>
<br/>
cblgh: Yeah, for sure. And one of the things that has kept it alive is really this perspective of this is a no burnout zone, which is like one of our explicitly stated values and just only working on it when it's fun and doing things for fun.<br/>
<br/>
max: And also the fact it's no servers, I think was a beautiful point about Beaker, but also cabal, like you don't have operating costs as far as I know. So that's pretty cool. You don't really operate by startup logic.<br/>
<br/>
cblgh: Exactly, exactly. Like as long as each person that kind of comes online in a cabal is adding more resources and kind of connectivity to it. So some people might have a really hard time connecting to others because of just how the way routers work today with NATs like stuff like that.<br/>
<br/>
cblgh: so what we're doing for Cabal this year is we're actually rebuilding it from the ground up. So Cabal today, as it works when we're chatting on like any Cabal is building on top of this hypercore dat stack where we have the hypercore append-only log and we have the hyperswarm DHT. So each person in the cabal has this kind of append-only log that they write messages to. And then we kind of, we find other peers, other people, through using this hyperswarm network, the hyperswarm DHT. And we create a chat, like, you know, like—I'm saying something, you're saying something, the third person is saying something—that view, by taking all of these logs, and then kind of mixing them together and interlacing their different entries based on when they were written. The problem is we don't really control that tech stack at all. Like, and we've seen a lot of issues where, not issues, but I mean, it's been existing for five years. We have a lot of experience of like, what works and what kind of doesn't work as we would kind of want it to work.<br/>
<br/>
And one of those is the question of delete. Hypercore is an append only log. And in the name you hear it's something you can only add to, you can't remove from it. And it's nice for some reasons, it makes synchronization across the network a lot easier because if you know that you have this list of things that is only ever added to, then you can have an efficient sync by saying, "oh, hey, Max, I know that you have, from where I'm sitting, your latest message was number 59. Give me anything that's newer than 59." That's a very easy synchronization protocol. But in something that's append-only you can't delete. So if you accidentally post your credit card number because you think you're in a web form or accidentally leak something there, you can't retract it. And that's a really, really, really heavy concern for something like a group chat, especially where someone might come in and just like post something horrible and now you're stuck with that.<br/>
<br/>
max: Are you trying to add delete in some patchwork fashion or just accepting that as a limitation of the software?<br/>
<br/>
cblgh: Yeah, so we're actually saying, "Well, how about we make something custom from the ground up?" And we're doing that with what we're calling cable, a wire protocol, which has kind of been collaboratively specced out among us Cabal devs and community. And what the grant is about is kind of officializing that and really implementing it in a way where we have a spec that's very clear for anyone who's outside of the dev team to be able to read and then implement an independent version. So that means that Cabal, instead of just living in nodejs land, will be able to be implemented in Rust or Ruby or Python or Go.<br/>
<br/>
Because what we're doing is we're specing the individual bytes that each message is composed of. And instead of having this idea of an append-only log, we're kind of going this alternate route of saying, Well, we have this identity idea of public keys and private keys, where if I write a message, then I can sign that message with my private key. And as long as you get that message from anywhere, you don't even have to get directly from me, and if you know what my public key is, then you can verify the authenticity of that message by just checking the signature. So it kind of prevents fraudulent messages in a way where someone could not say, send a message that seems like it comes from me without that being able to be checked.And we're using that concept, but without having to put it into this linear, increase-only fashion.<br/>
<br/>
Instead we have this idea of kind of a grab bag of messages. So since we don't have this strict append only concept anymore, we just have a bag of messages that makes delete very easy. Because if you want to delete something, you can just like basically, in one sense, remove it from your local database. And you can also publish your message. So when other people request like "what messages have you written", among those that you send as a response is "actually this thing that I wrote in the past, I've deleted that. Please delete that as well and save this delete message in case someone else requests new messages from you."<br/>
<br/>
max: That's great. What does that mean that you are, so it's not depending on hypercore and hypers, you're like, you've made a new foundational protocol.<br/>
<br/>
cblgh: eah, it's a new protocol for sure.<br/>
<br/>
max: Cable is the name of the new protocol or cable is the whole thing, including the way that Cabal uses it?<br/>
<br/>
cblgh: Yeah, so currently Cable is just the name of, what we're calling the wire protocol, like the specification of the bytes. And then we'll see where we go from there. But that's what we're doing as part of the grants. So Kira is right now finishing up the first draft of the specification. And then we're gonna have an RFC process where we invite people to come and give their feedback and read through the spec and say "well, this thing you should maybe do differently. This thing was very nicely written." and stuff like that. And in parallel to that, I'm basically implementing both the low level stuff as well as the kind of application level interfaces.<br/>
<br/>
max: That's awesome. I'm really glad we got a chance to talk about this. I thought you were doing something totally different.<br/>
<br/>
cblgh: What did you think?<br/>
<br/>
max: I don't know. I think I thought you were continuing with Cabal as it was, but making mobile clients and some other stuff. I just somehow missed the update that there was this new protocol.<br/>
<br/>
cblgh: Yeah, for sure. I can maybe link to the--I wrote a text update when we announced the grant and stuff from our open-collective Yeah, I'll link that for sure. https://opencollective.com/cabal-club/updates/cabal-2022-in-review-two-grants-and-a-new-wire-protocol-later<br/>
<br/>
max: That's really exciting to me.<br/>
<br/>
I was having a somewhat funny feeling just thinking, you know, it's a famous essay, the one that's like critical of P2P because it's bad on privacy written by the person from the New Design Congress whose name I'm forgetting.<br/>
<br/>
cblgh: Yeah, Cade Diehm.<br/>
<br/>
max: Yeah, yeah. Somehow I was thinking about that essay again. You know what it was is because of the growing popularity of the Fediverse, it almost was feeling like an even more real possibility that there will be this infrastructural switch in the next 5, 10 years where way more stuff is not in the corporate cloud and is in these more localized clouds and home servers. And I was just feeling like, okay, there's going to be some good parts about that, but the shitty part about that is how much more identifiable everyone is. There was this obscurity in the cloud, and it would be a bit sad if that's lost. And so just hearing about your implementing delete makes me happy because then that's at least one major vector of vulnerability that is removed. Because if you can really delete stuff, then that makes you a lot less vulnerable to accidentally posting some shit that is going to cause problems for you later.<br/>
<br/>
cblgh: And yeah, it'll be very interesting to see. And it feels like we're part of this wave of like, you know, okay, we've been using these peer-to-peer systems, what can we do differently now? Like, we started specing this out in 2021, when we (max and cblgh) actually met in Svendborg. we (some cabal devs) were actually cohacking on the spec there.<br/>
<br/>
max: Mmm I remember that.<br/>
<br/>
cblgh: and we're not the only ones. Like there's a lot of kind of questioning going on, both in SSB, you know, where Andre Staltz has said, he was very close to burnout and his kind of answer to that was he needs to kind of take it easy with the main Manyverse development. I think he's gonna have some other devs continue doing patches, But instead research what could be a new version of SSB that keeps the good parts but kind of removes the bad parts that has been burning people out. So it's definitely kind of new wave kind of vibes going on in the space in general to kind of continue the speculative stuff. So we'll see what happens.<br/>
<br/>
<br/>
============================<br/>
<br/>
VI: CLOSING / LOCAL TRANSCRIPTION<br/>
<br/>
max: Thanks, and I'll message you once I get a chance to transcribe. I'm kind of hoping I can use some transcription software because this is really long. I have to look into that.<br/>
<br/>
cblgh: As long as you don't send my stuff to OpenAI I am fine.<br/>
<br/>
max: Is that an actual boundary? I haven't looked into how transcription will work.<br/>
<br/>
cblgh: Well, I wouldn't want them to have my voice and shit, you know.<br/>
<br/>
max: I'll look for some local transcription. I think I did see at least see someone share one for Mac. So I just need to find a Linux one.<br/>
<br/>
cblgh: Nice.<br/>
<br/>
OK, talk to you later.<br/>
Sure.<br/>
Bye-bye.<br/>
(birds chirping)<br/>
[whistle]<br/>
[BEEP]<br/>
(beeping)<br/>
[BEEP]<br/>
[whistle]<br/>
[BLANK_AUDIO]<br/>
<br/>
<br/>
<br/>
<br/>

982
cblgh2.md Normal file
View File

@ -0,0 +1,982 @@
*Table Of Contents*
I: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE
II: LIEU, CERCA, FORUMS & SEARCH
III: COMPOSABLE SOLIDARITY INFRASTRUCTURE
IV: FIVE MINUTES ABOUT THE INTERNET
V: CABAL & P2P DELETE
VI: CLOSING, LOCAL TRANSCRIPTION
================================
I: ANARCHISM, THE CORPOVERSE, ECOSYSTEM SPECIES SUCCESSION, SOFTWARE GOVERNANCE
max: I hear a fair amount of people talk about software governance,
but I somehow feel like I haven't had first-hand experience to see when it goes wrong.
Have you ever had an experience where you were using something or contributing to something,
and then it went in a direction that you didn't want or was like counter to the aims of some
group of users or contributors?
cblgh: Yeah I've had some -- I wouldn't put it so harshly, but in some senses I was making a lot of dat stuff, using this kind of foundational thing called hypercore and append-only logs, so that's what that was all built around.
So there was a very vibrant community of people, -- artists, software engineers, interested onlookers -- all making stuff using Hypercore and Dat and Beaker Browser. And that project kind of took a turn away from the community in some senses, where the lead developer, who's kind of written basically all of the foundational structure, decided to go a different path, away from making it community managed to instead being more managed by, or making more explicit, this foundational structure. hypercore is managed by the devs, which is good that it became very clear, because people were becoming confused on some decisions and stuff like that.
But you know, Beaker browser is no longer working, right? And all of the things that people built using Beaker browser are also in a sense inaccessible. And that's one example of where that kind of governance thing did not really go in the way of the community, but rather the way of the devs.
So it kind of was rebranded from that to Hypercore Protocol. And then more recently, its been rebranded to the holepunch platform, which has become VC funded in a way, but really it's more like a cryptocurrency funded thing; so there's a big Bitcoin backing in the company. It's very much taken a different path than I think a lot of people would have wanted.
max: Thanks for that story. That brought up a bunch of questions for me.
One is what is success or failure for governance
or sustainability of an open source project?
I have a first impulse, which is like,
if it doesn't last forever, it's a failure.
But what are the really lasting open source projects
we can look to?
Are there even any?
is it Linux or something else?
And then I had a second impulse, which was like,
that's a little silly -- it's not really like things need to last forever.
To be worthwhile, there's certainly
projects which were experimental and valuable.
Maybe Beaker Browser might be one of those where it inspired a lot of people
and maybe influenced the discourse and future projects that are going to be made.
And sure, it's a bummer that some of the things people made
on Beaker are going to be unmaintained or abandoned,
But it would also seem extreme to say this project was a failure.
cblgh: for sure, it all depends on what you are evaluating it along. One thing Beaker Browser could have done instead of labeling the project defunct, is at an earlier stage, they could have maybe tried to find someone in the community that was excited to receive the stewardship and take it in a different direction.
max: There could have been a more active engagement with that instead of just saying this is over.
cblgh: But it's also very difficult and intertwined with burning out and stuff. I'm not sure Paul burnt out on it,
but I certainly think he worked very, very hard for very long. And now it's defunct. It's very hard to do a handoff when you're already struggling to keep your head above water in a way, you know?
max: Yeah, that might not be the most energizing part of the project.
cblgh: - so in some senses, if it's a success, then when you realize it's a success, you have to start preparing, like "the will" for the project while you have the energy to do that.
max: especially with a project that big,
I would imagine there's someone who would be interested,
even if it was just like a college student,
for someone who wants to develop their skills and make a resume or something,
maybe being able to take on the responsibility
for such a big project is kind of an appealing concept in some ways.
cblgh: Yeah, and one of the benefits of this software is there's not this big expensive cloud infrastructure you need to keep running.
max: That's true. So it's not like it turns off one day.
It just needs someone in their room with an internet connection still working on it.
cblgh: You could basically have had Beaker Browser as it was and just keep it on long-term support where people were just using the things that were already there, and maybe wishing for better tools. But if it could have just been kept alive, then I think that would have been a vibrant small corner instead of having to pursue the path of existing alongside Mozilla or Chromium.
max: The other project I've been thinking about
on this topic is the Fediverse
because there's now this interest from Medium
and even Meta to use ActivityPub.
And we'll see what happens in the next years.
But to me, it seems like one possible outcome
is that it actually gets a lot of adoption.
And I've even heard the term, the corpoverse, thrown around.
And I was thinking, what would that mean?
This is all a bit speculative, because it could also not
happen.
But I was like, wow, that would be interesting
if this kind of slow burning project of anarchists
and volunteers eventually achieve such large-scale influence and even if the
original people setting up servers and stuff were kind of more at this like
experimental scale - and so I feel like maybe that is how things
sometimes happen - that an experiment ends up having a big influence
not because the people doing the experiment try to make it have a big
influence but because it eventually influences large-scale actors to do something different.
cblgh: Yeah, that's one of the rare occasions where scrappy people can kind of choose the fork in the future. It also brings to mind other examples -- I mean this has been going on for as long as there have been Bohemians and artists right? This is like gentrification by another name. Oh this was successful, this was a cool place to be. I guess we gotta exist there to be cool and extract the value.
max: Yea its an interesting analogy. I guess the other question though is because some people are critical of the corpoverse, asking is it gonna even have any of the good parts of the old fediverse, and my optimistic vision of it is that it does maintain the good parts. maybe it's not as pure as the original,
the non-corpo fediverse, but it wouldn't be just like gentrification because with gentrification it sometimes feels like here's a place where some creative interesting things were happening and then once it reaches the commercialized stage it actually doesn't really have anything particularly in common with what it used to be like, it's just an extractive process that happens on top of something else. And also going back to how we started this conversation, "the internet" just popped into my head as a successful open source project. I think this might be what's actually getting me to research this more, because I feel like the
internet is weirdly one that worked. Obviously there's lots of shit things that have been done on top of the internet or with the internet, but the core protocols themselves seem like
they were somehow like a fairly positive example of how open source can go.
cblgh: Yeah, I think so. Like sometimes you have these like runoff successes that the rest of the commercial world just has to cope with. Like I'm sure big companies would have rather had, you know, like what if we had Facebook, internet, where I just pay a monthly subscription to access like the zucknet right?
max: Totally yeah.
If a corporation had done that from beginning it could have been like that.
There could be an advertisement embedded into every packet.
cblgh: Yeah. You're doing like packet inspection and suddenly it's just like, "have you heard about this new movie?"
max: Literally, it could be like that but it's not.
Wow, that just made me excited to have that clarity.
So yeah, I would be hopeful that the mastodon or whatever protocols, even if they were to
eventually get success, could have that same capacity as the current internet where it
would be like, of course, these corporations would love to have their advertisements embedded
in every little stream, but like, it's just not the way the protocol works.
So it's like you can't really do that.
cblgh: Yeah, I can imagine that. And then in some ways, you know, from like an ecosystem perspective, this is just something I've been learning like the last year of, you know, you have these, and I'm not sure what they're called, I think like forerunner frontier species that enter a degraded ecosystem, and they're the ones that are hardy enough to grow there. And when they grow, they kind of create the circumstances for other less hardy things to grow, which will eventually actually supplant these frontier species because it grows longer and stronger and start shading them out. And I think that really happens a lot with technologies that kind of tangent this social realm as well where you have these hardy, and I don't really like the term frontier because it has a lot of baggage, but yeah, like these hardy initiative takers or whatever that are willing to come into a new space and experiment.
And typically it's a lot of marginalized communities, are the ones who will first embrace something new.
And they kind of work it out, you know, and they figure out what works, what doesn't work, and they start making it cool. But when it kind of becomes more popular more commercialized, you know, they might not feel comfortable there anymore. So it's an interesting dynamic and I'm not necessarily being very doomerism about Fediverse. I'm more like just observing dynamics. Just from how the technology works, I would think that you can still have you know, like a very alternative subset of the Fediverse that just like de-federates from everything except their friends.
max: Yeah, I would optimistically believe so as well.
cblgh: But I think we would still have a different vibe and people wouldn't get, you know, very radical or interesting minded people probably wouldn't even give it a chance if it was like as commonly accepted as Facebook or whatever. I don't know. I think it's interesting dynamic with these like groups that come in to a new space and experiment and then are eventually just like you know in some senses by the dynamics kind of crowded out.
max: Yeah, I like your comparison with the ecosystem
waves of succession. You know like intuitively I feel still like I don't really know how all this
stuff works. I feel almost like my stomach dropping sometimes when I think about it,
just feeling like its a mystery, but it's at least a nice possible model. I'm definitely not going to say that's not how it works. And it's a nice alternative that goes beyond, oh, you just do
small things or small things that don't matter or big things that make a difference.
and it provides a different possible paradigm.
Because yeah, I guess when I felt that way when I was reading about the internet too,
that it was kind of exhausting to feel like at this point with the tier one ISPs, they're
so big that if you really wanted to do anything involving that, you would have to be so knee-deep in industrial workings that I'm just like, I don't...
cblgh: Yeah, it's impossible, right? I'm never going to do that. I don't have the wherewithal to become a T1 provider. That's just like in stories of revenge, you know, you aim to become the kings, so you can bring down the empire from within. Like nobody does that in real life.
max: - Yeah, I don't have the energy for that.
cblgh: - But I mean, in that case, you know, that realization opens up for like, well, I don't have the energy for that. Obviously. What can we do instead? Like maybe we just do some weird radio shit, you know, like where we buy a bunch of radios and we start sending packets over radios or something. It's a much smaller scale.
max: Yeah, I think this is why a lot of anarchist logics and like small scale projects appealed to me was because they were stuff you could do and you could start doing now and not necessarily have to like spend a lifetime learning like legal codes.
cblgh: Yeah, and once you get like the kind of immediacy from the feedback loop, it's really self-feeding as well like, "Oh, I got this thing working and I can show it to someone and they can become excited and then we can do it together." And instead of you know having to study something for like two years before you can actually see something on the screen or whatever.
max: That's true. Getting some real feedback. Also one of the joys and addictions of programming.
================================
II: LIEU, CERCA, FORUMS & SEARCH
max: So the projects I was thinking about talking about were cerca and lieu
But was there anything else that you thought would be relevant to these topics?
cblgh: Is this the term that you want to use, like solidarity infrastructure? So like, Lieu and Cerca are definitely like two very clear projects in that respect. Like how I kind of got started into this way of doing things might be interesting, I'm not sure.
max: Yeah, that sounds great.
cblgh: It all goes back to 10, 12 years ago. Basically, I started my HTML, JavaScript,
I mean, just like journey or whatever, like learning that kind of stuff through a project
I made with two friends called Piraltorodio, which is Swedish for pirate radio, which is kind of like a tongue-in-cheek kind of name. And basically that kind of revolved around making these collaborative playlists. So the idea was like, I listened to music on YouTube and I listened to music on SoundCloud and on Bandcamp. And I thought it was kind of silly or annoying that I couldn't just make a playlist with music from all of these things and then send to someone or we could listen to it together.
So that's what Keraltraudio was. It was basically just like a database that had lists of links and then a front-end that kind of put these links together. And we had some special kind of resolving and embedding things that put things on the page. So when we render the list of all these different links, we would kind of get the song title. And when you click on a thing, we'd actually start playing on the page. So that's kind of how I got into all of this stuff. Because from there, I found different kinds of--yeah, other projects, basically.
max: What type of things did you discover,
if you remember from working on that?
cblgh: - Yeah, so one thing that was, I mean, very many things, it's like collaborating with other people and how to do that in a way that works best for the group, and for me. One thing that I reflected on, is that I really like this way of collaborating with people where you don't step on each other's toes too much. So like I have one area that I'm focusing on and then another person has another area. And our collaboration kind of consists of us working on these two different things and then gluing those things together, right?
max: - Totally.
cblgh: - So that's one thing. But the other thing was we kind of thought it was a bit scary to have this database of links, even if it was only links, we didn't download anything. And started looking for like, how could we do this in a decentralized way? Which is how I started looking into IPFS that then eventually found Scuttlebutt. Yeah, so then I started making stuff using that and I made a thing called Datradio, which was very inspired by this. Which was kind of doing the same thing, but using dat archives. So someone could work in the Beaker Browser, this now defunct, but very cool project where you could create websites directly in the browser. It was using its API.
So we just say like, here's the app itself, and then you would fork it. And now you have the entire app in your browser. And then you can add stuff into that app and share links so that other people can just listen to that.
max: And through that, remove yourself
from this liability of hosting these links.
if everyone was just forking their own and having them on their machine. It's really amazing how much
creativity and innovation copyright law has fueled out of teenage angst towards the like
annoyance that these people don't want you to download stuff for free.
cblgh: Yeah, because it's scary like people just want to make something fun, but then when they've they've made something fun, they're kind of getting anxious like, fuck, are we gonna get, are we gonna get wrecked for this? Like, I'm not a lawyer, like, I don't know literally everything about what's legal or not.
max: I feel you. And they did wreck some people back in the day,
like, that was like a specific approach/strategy of anti
pirating legal stuff was to like, come down really hard on a
few individuals who were kind of like, not really doing anything
other than whatever downloaded a bunch of stuff.
cblgh: Yeah, yeah. And actually with that pirotroli thing, we actually did like go to a lawyer and like pay him like a small amount to just like review were we doing anything bad and his take was no, we're not doing anything bad, but we should add like a small like, uh, terms of service basically where people just agree like, yeah, this is, uh, this is my responsibility or something. The app's defunct now for other reasons.
max: That's cool, especially hearing this.
Everyone's got an interesting Scuttlebutt origin story.
And then, yeah, do you want to talk more about Cerca and Lieu,
which I'm not pronouncing correctly.
cblgh: Yeah, yeah, sure. Yeah, I can do maybe a brief description.
max: Yeah, I guess starting with what they are just because that will help for the transcript
and people listening and then maybe talking about what inspired it, what
you learned, if there was anything that was weird.
cblgh: Yeah, for sure.
Yes, I can start with Lieu because that was the first thing I made of those two. And it's kind of described as a web ring search engine or communal search engine. So what it does is basically, instead of searching and crawling the entire internet, which most search engines do today, it instead searches only a pre-specified list of domains, which was natural for the context that I was coming from, which was I'm part of
a webring called the Merveilles webring. And we have like 200 odd sites in there.
There are many cool sites, but it's kind of daunting. You know, when you have this list of like 200 sites,
like which one do I start with? I'm not really sure what's in here. And like, even if I start with one, I'll just click in and then maybe it's not really obvious where to go from clicking in.
So it kind of, I was noticing this like, I'm not sure, but like fatigue setting in or whatever, where I'm like, I'll click in on a random site. Then this didn't really, I couldn't find anything interesting. Then I'll click another one. Maybe I'll just do that two or three times and then I'm kind of like running into boredom or whatever. So I wanted to surface all of the really cool stuff that people in this webring were doing. And yeah, that's kind of where Lieu came from. So it crawls all of those sites and indexes different kinds of search terms that it's found either in titles or in the body of the text and that kind of stuff.
max: I Remember you writing something like, or I don't know if you just said this or wrote
this, but that like the limitation of Lieu was actually better for certain types of searching.
The example with music was really nice.
You were like, "If I Google search music, like, this is not going to give me good music."
There's actually certain things that Lieu is better at searching for because of its limitations or its focus.
cblgh: Yeah, exactly because I know that this is a particular kind of scene and I kind of have an intuition for what's there. And for like the Lieu instance I've deployed with the Merveilles Webring, I kind of know that it's kind of design-y focus and kind of a lot of weird niche topics. So a lot of the things that are linked in there will kind of suit the sensibilities that I understand that this collective has. So in that case, I can actually just type in »music» and I'll get lists of different kinds of things, maybe someone listing their favorite songs. And it won't be just like, if I search the same thing in DuckDuckGo or Google, there I'll get basically very random things, probably ad-fueled search results.
max: - It also makes me think something cool about this is
it's like a retrospective organizing,
where instead of like some people would say,
"Oh, we have a community,
we're gonna make a music channel,"
which I guess leads to your next project, Cerca.
But instead, this is like,
everyone just do your own thing,
and then like let's find all the time
someone mentioned music.
cblgh: - Yeah, yeah. Yeah, it's taking a different kind of approach to that, for sure. Yeah, so that's Lieu.
And it started out as just being for the Merveilles webring. But then later I kind of made it basically easily deployable for anyone. So if you have, and it's written in Go and you can download a binary. And basically if you have kind of a small list of websites you want to make searchable, you could download Lieu. You write those small lists, I mean the list of websites in the file, and then you start crawling with Lieu. And you can just spin it up and start searching using it.
So that could work whether if you have a group of friends and you want to make your collective output searchable. That could be one thing. But you could also just like, oh, here are some cool sites that I want to be able to search as kind of a group. You could do that as well.
max: I wonder if we could try setting it up
for the websites of the folks in the SFPC class.
That could be interesting.
- Little project.
That might be one I might try to like,
what's the word, not delegate,
but like if someone's looking for a project to do.
cblgh: - Yeah, yeah.
max: - This could be something fun to do.
cblgh: - Yeah, just let me know if someone's running into any problems. Like I think it may need to make a new build for people to use. And then Cerca is the other project you mentioned.
And that's kind of come from how I grew up on the internet in a way, like I grew up in internet forums of many different kinds. And I was really missing that kind of, you know, mode of communication that's slower than like real time social media or IRC and more kind of persistent as well. I wasn't really running into that in a lot of places. So it was on my mind for a long time, but I really didn't see, I was kind of waiting for a good time to make a forum, like to make this kind of forum software. Because there are existing software but there aren't that many kind of modern ones—I've been keeping track. The only one that I've seen is Discourse.
And I think it's great that it's kind of brought the forum sensibilities into the modern web, so to speak. But deploying Discourse for a community is super rough, I think. You have to have a pretty beefy machine to make it work. And honestly, I never really liked the aesthetics of Discourse. And I wanted to make something that was a bit more like, I don't know, home-y or customizable or just like, less clinically sterile, you know?
max: Yeah, very, very sterile, very gamified, quantitative vibe from discourse forums.
cblgh: Yeah, it's like "I have to level up like: oh, make five posts." I don't know. It kind of struck me as, I mean, great that exists, but I really didn't want to launch it myself.
Yeah, so I was like, before making it, I was just like having fun and figuring out, you know, like designing a forum software interface that I would want. And the thing I designed didn't end up in cerca at all, but it kind of influenced the things I wanted in cerca. And how I ended up making it was basically in Merveilles.
We have a mastodon instance, merveilles.town. People started getting excited about forums. And I was like, well, if I make one, would people want to join it? And people were pretty excited. And I had some time. So I kind of banged it out in a couple of weeks.
max: I remember thinking another thing I thought
was cool about Cerca was the way that you kind of made it
in public and immediately had contributors
as soon as you started making it.
And just the dynamic of making a piece of software
for a community with the community,
maybe you want to speak more about that for better or for worse?
cblgh: Yeah, no. It's really nice to be part of a community like that, because it wasn't just me creating something for me and then hoping someone would adopt it. It was like, as you say, like I was creating it and then people were joining it and were excited about it and creating like adding new things that I didn't even think of or I didn't have time to do. And that was really, it's really energizing in a way to just like be creating software in this kind of community context, like instead of just creating something and hoping that'll be used. Because that kind of leads to a lot of overgeneralization, which ultimately actually hinders usage because it's too general, it's not specific enough. It just like it becomes this really big unyielding beast because you don't know what to anticipate or not. So you have to anticipate everything.
max: Do everything.
cblgh: Yeah. Whereas for cerca, I was just like literally in the beginning making it for the Merveilles kind of use case, which has kind of very specific software sensibilities in some sense, which was fun to experiment with. Like a lot of people there don't like client-side JavaScript. So I was trying to make everything in a way where there would be no requirements for client-side JavaScript. And it still doesn't have anything. Which meant going back to like, okay, how do you actually make a web form? And how do you handle that stuff?
max: Some more traditional programming craft.
cblgh: Yeah, yeah. And in some sense, that's just really working with the grain of what you get in the web platform, because forms are one of the OG elements of the HTML standard. And they're really easy to work with once you know what you're kind of doing.
max: Yeah, I guess that also makes me feel like something
about that project then is the code itself
It's part of what's interesting about it.
Like, it feels like it's a very three-dimensional thing.
Like, there's the way you use it.
There's the way it was made.
And there's the choice of technologies used to make it.
And they're kind of like all a part of what makes it creative
and interesting.
And it seems like you found some joy in all the different parts
was my impression.
cblgh: Yeah, and I mean, that's kind of one of my personal strategies in general, which has struck some people, I think, in a way that it's not, I mean, that's not part of it. And basically, my entire mode of operation is having fun while working on projects. And the reason behind that is it's kind of a burnout mitigation strategy. Because if you're having fun and you're being energized by projects, then that's actively
decreasing in some sense, like a burnout counter.
max: Totally.
cblgh: Where if you feel like you have like the entire burden of the world on you and just doing this to be a hero or something, that's a very depleting thing. You can only do it for so long. Whereas having fun, like on Cerca or whatever, making Lieu, that's just like giving more energy to work on that or to work on other things.
max: Yeah, it's amazing how many people I know get burned out by whatever work they're doing.
It's almost prolific.
cblgh: Yeah, I don't know what it's about. People feel like they alone have to shoulder, you know, like the burdens of a community or something, which is wrong. Like if a community is letting something, you know, like burn down to the ground, then sometimes that's what needs to happen, you know? Like it's not your single responsibility to take care of that because there's an entire community. And if nobody's taking care of it, then yeah, that's just a natural result. We can rebuild something new afterwards.
max: Speaking of taking care,
you wanna talk about maintenance a little bit?
Yeah, how is it going with Cerca and who is taking care
and what's it like with people using it?
cblgh: Yeah, sure.
So one of the strategies of it was really making something that was low maintenance. So I wanted to minimize external dependencies and external infrastructure. So that once you've deployed it, it just keeps on running and you don't have to, you know, like start debugging mailgun or something. And in that sense, it's been like a resounding success. Like it's just been running and people have been using it off and on.
It has its kind of high tides and low tides. Like I've seen it start to be used, like people kind of rediscovering the forum during things like what's it called like Inktober where there was a thread where people were like three or four or five people were posting every day and just like sharing each other on and then after that it was kind of quiet for a while and now it's kind of resurging a little bit again.
max: - Okay, I'm curious how that happens,
or what will happen over time too,
'cause I also have this dream of a slower form,
communication place, and somehow forums do end up
doing that sometimes.
Like there was this thread I started
on the Activity Pub forum discourse two years ago,
and it basically gets consistent replies
every few months for two years.
And it's just like a really interesting timescale.
It's like, if you were to read it all in a row,
you'd be like, wow, this is a really interesting conversation
with like 20 people.
And, but it happens at like absolute snail pace.
And it's cool too.
cblgh: - Yeah, it's fun to be on the receiving end of the, I mean, like you get to literally live that experience. So like it's taking so long in this conversation, which is nice, but an observer just thinks like, wow, this really came together quickly.
max: Yeah, they look at it all at once.
Yeah, yeah, yeah.
They have no idea.
It's like a weird collapsing of time.
cblgh: Yeah.
And it's like, that would never happen, you know, like, something like a Twitter or a Mastodon, right? Because it's very much fire and forget. Like, I'll have missed if you posted like yesterday because I wasn't online much yesterday. And then that will probably never be resurfaced again for me, which is totally the opposite of forums.
But yeah, with its maintenance, like, I've been taking a kind of very slow approach and working on it when I kind of felt like it or when something critical came up. And one kind of thing I think is really difficult is with well-intentioned kind of drive-by contributions. Or it's like there's this kind of balance you have to straddle between what you want to encourage people to do and make contributions but at the same time a specific contribution might actually be the wrong direction for the piece of software, if you're the one who has to maintain it in perpetuity. Yeah yeah and that's a really really difficult thing I think with with maintenance is like actually saying no to certain contributions.
And I think I've been good at it in some cases and in some, in other cases I've kind of, I think I have some lingering PRs where I'm just like, this is not the right thing, but I also feel bad saying no to someone. So it kind of is just, I don't know, kind of ghosting PRs while not in the chat too.
(laughing)
But it's like, I don't want to say, "I don't want this." But I also don't want to press merge.
max: Ghosting PRs, what a social dilemma of our times.
cblgh: I know, right?
max: I feel you.
I've in the past months received a lot of gifts
that I didn't want while I've been here in India.
It's been interesting.
Most of them I've actually just like to say yes to at this
point because I appreciate the intention and I feel like there's some mutually nourishing
thing that happens when someone gives me some food, even if it's something that I don't
actually want to eat. But for me, it's different eating some like food that I don't really
want to eat versus yeah, like I remember like someone offered me some clothes or something
that I did not take because I was like, I don't have space in my pack for this. And
I have a limit, a boundary where I will be like, I'm not,
although I like accepting and receiving,
I'm not willing to accept,
I'm not willing to carry around this thing
for the next six months, just to like,
be agreeable.
cblgh: - Yeah, yeah, no, it's interesting. Like this idea of like a gift that is an encumbrance versus a gift that's kind of more relation building in a way.
max: - Yeah.
cblgh: - Purely. So like if someone gave you food, then you can either toss it away or you can eat it, and that's just like, that's a very transient thing, but clothes or you know, like a painting or something. It won't just go away when you'll have it, right? You kind of become encumbered by it. Same thing with like someone adding a PR and you have to merge it because you feel bad. Then it's there and you have to actually actively work to either throw that piece of code out or throw the painting out.
max: Hmm. Well, this seems good about Cerca, I almost started to feel bad for interviewing you about
Cerca as we were talking about it because I was like based on what you said you're doing this for fun
so it seems almost
like counter to its aim to become the like
focus of such attention
cblgh: No, no, no, it's I I mean, I'm really happy with it and I think about it a lot and I'm very happy every time I see someone make a post, you know, it's like, oh, wow, this is great. Someone created thread and I didn't have to do anything.
max: Nice. Yes, I guess I did.
Well, in that light, then I'm happy to talk about it. I just was thinking how some
some software, the default, the default mode is like, everything has to have a reason and it needs
to be optimized and the best. And it's interesting that if you're making something more provisional
for fun, maybe that's not true, maybe there are decisions one makes that are like, not ideal or
something, but like, it's fine because it's not the purpose of it.
cblgh: Well, I think it can be very intentional even with fun stuff. I am actually quite intentional with, for example, cerca and other things I do for fun. Like, if I do decide I'm doing this and I don't really care about the outcome. So that's actually an intention, right? It's kind of a way to approach a particular thing. So it's not very thoughtless in that sense.
Like every decision I've made with Cerca has been very informed, even if it seems like, oh, it's just--it's not using classes because I guess I didn't really care about that. It's like, oh, no, I'm actually doing that because it makes everything so much more composable.
max: Not using CSS classes.
cblgh: Yeah, exactly. I tried to minimize that.
max: Like just doing stuff more inline?
cblgh: Yeah, sometimes inline, but also just like styling actual, like the default elements.
max: Ah, okay, yeah, yeah, yeah, yeah, yeah, yeah.
max: Is there anything else you feel that you wanted to say
about cerca and lieu? or Should we move on to the other stuff?
cblgh: - Well, I maybe have a few last thoughts on cerca.
max: - Sure.
cblgh: Like one thing I really wanted with it was to avoid external infrastructure that I mentioned, like which in my case was email and email registrations and email kind of, you know, password "I forgot my password"-functionality, which seems important. So I went with this kind of weird thing that was informed by doing way too much peer-to-peer stuff using like public keys and shit.
And I think I might be kind of, I haven't unpacked it yet, but I think it's an interesting thing where I didn't want the email infrastructure, but I did want people to be able to reset their passwords. So I kind of invented this thing of "here's a public key and you can use it to kind of reset your password", which was in effect kind of cumbersome for people. I mean, you have to download a separate tool and then you have to remember the second thing, but it kind of gave me permission to not do the default thing. And I think it's an interesting, not really sure what to call it, even like a technique or whatever concept of having this, you know, like plausibility, like: "okay, people can plausibly restore their passwords. So therefore, I'm freed of this kind of default constraint of having to service this by email."
max: I feel you on the email thing,
actually that just reminded me one of my tasks for today
is to fix the email sending for the self-hosted outline.
cblgh: - Yeah, yeah, yeah, it's just like such a thing.
max: an annoying task
cblgh: But where I think I want to go with it actually, and next time I'm gonna have a batch of work working on it, is I'm going to try to use what's it called like timed one-time passwords, which are basically these codes that you find if you use like a Google Authenticator; that's a standardized technique. And you can actually implement that in something like Cerca. It's decentralized as hell basically.
max: How do you send someone the code if there's no email?
cblgh: So basically you don't send a code, but they do have, I haven't actually implemented yet. So my details on this are very scant. But basically, when they register, they get this code that they put into their Authenticator app. And they probably have an Authenticator app for logging into all kinds of things today. So if they want to reset their password, they could do it using this kind of second proof from the Authenticator app.
max: I got you.
So to prove that you're you--
You supply a password from the Authenticator app
that is somehow connected to this account,
but that only you can produce.
cblgh: - Yeah, and even you can even go further and you can just say, well, you don't even have to log in
with password if you don't want to, you could just use your Authenticator app.
max:- Nice.
cblgh: - Yeah, so that's something I wanna explore. And being able to explore that was only made possible
by doing this really cumbersome strange thing that I started with, which is, yeah, I don't know. It's just like a small side note that I think is kind of interesting. Like if you do tread off the beaten path it opens up other things.
max: - It's a small but big choice
to not include email as dependency.
It's like, it takes you off the standard app.
cblgh: - But yeah, I think that closes the chapter on cerca for now.
============================
III: COMPOSABLE SOLIDARITY INFRASTRUCTURE
max: do you want to speak about some visions you're having?
cblgh: Do you want to narrow it down? I've got a lot of thoughts.
max: No, I don't feel like narrowing it down. It's whatever is most alive for you.
cblgh: Okay, interesting.
Yeah, so, one thing that's been on my mind for a year at least and that I've been starting to approach people about, is this idea of reusable and composable infrastructural components, in particular for peer-to-peer systems.
So it's like, we have these different projects, right? And this is not necessarily a take that a lot of people agree with, but personally I don't really like interoperability that much because we are underfunded as hell, you know? It's like, so if someone's going to tell me, well, now you need to support SSB in cabal as well, that just doesn't make sense for a lot of reasons because the contexts are different, right? Cabal is very much IRC style, whereas SSB clients today are more forum style. So the general viewing contexts are different.
So where can we collaborate instead of just like, you know, having literally the same protocol? And where I think it makes sense is on the infrastructure level where like, okay, we have this protocol, you have that protocol, this third group has another protocol, but we all need to reach each other, right? We have this notion of we want to find peers. Like, can we somehow collaborate on that level of things? Because that's a very, in some sense, permissionless level of collaborating. We don't need to change our protocol just because we're using the same infrastructure.
And it kind of makes it less competitive in some sense, it becomes way more collaborative. So that's kind of what I've been thinking about, like, okay, how, what parts of the stack, like what exists today that we could use in multiple projects? And that's kind of an ongoing research project right now for me.
Like I'm exploring this a little bit with the p2panda team, where we're doing small experiments on this kind of old technology called I2P, which is like tor, but it's way more kind of peer-to-peer oriented, whereas tor is kind of more client server in its architecture. We're doing small experiments there to kind of get a feel for it. Like, can we create a website and we can visit it like over like very unconfigured devices? And yes, we could. That was really cool. A person in UK on a mobile network could visit my website thats being hosted on i2p on a computer that was completely unconfigured with regards to firewalls and stuff. So that was super cool.
So yeah, that's kind of like exploring that general area of what infrastructure do we have today? What infrastructure could we kind of collectively manage you know, and could collectively use and what could that collaboration, what kind of shapes can that take for example? We could have maybe an open, if we do find a very good component that's usable in many projects, we could have an open collective for example, to fund all of the engagement for that, whereas some of it would go for server costs, but also just for stuff like, you know, like an hourly wage for everything that's relating to the infrastructure bits.
max: I like this idea, but what are some of the possible
functionality for components that come to mind
that could be shared between projects?
So you said like peer discovery or something?
cblgh: Yeah, so we'd just be basically, you know, the underlying DHT. So yeah, it's peer discovery.
It's like, so we have a peer-to-peer system, which means these peers need to find each other somehow and they need to find each other in some way that's resilient across, you know, regular, unconfigured computers. So are there components that exist that work in multiple programming languages? Which is a big barrier. For example, Hyperswarm today is very much Node-js only. It's been trying to be ported to Rust for a long time, which means it's very difficult to port to different languages. So yeah, it's for sure basically just like, how can these peers find each other? And then once they've found each other, you just do your application-level concerns.
max: Are there any other composable pieces that come to mind?
cblgh: - I mean, for me, it's mainly that because it's the biggest thing.
max: it breaks away from the current paradigm
because it's like something smaller than most of the protocols are like the protocols are usually
including more than just that they like include that plus other stuff yeah
cblgh: each protocol kind of makes their own decision on that and it would be great if we could find something that works for everyone or for many actors rather than just one.
=========================
II: LIEU, CERCA, FORUMS & SEARCH
max: So the projects I was thinking about talking about were cerca and lieu
But was there anything else that you thought would be relevant to these topics?
cblgh: Is this the term that you want to use, like solidarity infrastructure? So like, Lieu and Cerca are definitely like two very clear projects in that respect. Like how I kind of got started into this way of doing things might be interesting, I'm not sure.
max: Yeah, that sounds great.
cblgh: It all goes back to 10, 12 years ago. Basically, I started my HTML, JavaScript,
I mean, just like journey or whatever, like learning that kind of stuff through a project
I made with two friends called Piraltorodio, which is Swedish for pirate radio, which is kind of like a tongue-in-cheek kind of name. And basically that kind of revolved around making these collaborative playlists. So the idea was like, I listened to music on YouTube and I listened to music on SoundCloud and on Bandcamp. And I thought it was kind of silly or annoying that I couldn't just make a playlist with music from all of these things and then send to someone or we could listen to it together.
So that's what Keraltraudio was. It was basically just like a database that had lists of links and then a front-end that kind of put these links together. And we had some special kind of resolving and embedding things that put things on the page. So when we render the list of all these different links, we would kind of get the song title. And when you click on a thing, we'd actually start playing on the page. So that's kind of how I got into all of this stuff. Because from there, I found different kinds of--yeah, other projects, basically.
max: What type of things did you discover,
if you remember from working on that?
cblgh: - Yeah, so one thing that was, I mean, very many things, it's like collaborating with other people and how to do that in a way that works best for the group, and for me. One thing that I reflected on, is that I really like this way of collaborating with people where you don't step on each other's toes too much. So like I have one area that I'm focusing on and then another person has another area. And our collaboration kind of consists of us working on these two different things and then gluing those things together, right?
max: - Totally.
cblgh: - So that's one thing. But the other thing was we kind of thought it was a bit scary to have this database of links, even if it was only links, we didn't download anything. And started looking for like, how could we do this in a decentralized way? Which is how I started looking into IPFS that then eventually found Scuttlebutt. Yeah, so then I started making stuff using that and I made a thing called Datradio, which was very inspired by this. Which was kind of doing the same thing, but using dat archives. So someone could work in the Beaker Browser, this now defunct, but very cool project where you could create websites directly in the browser. It was using its API.
So we just say like, here's the app itself, and then you would fork it. And now you have the entire app in your browser. And then you can add stuff into that app and share links so that other people can just listen to that.
max: And through that, remove yourself
from this liability of hosting these links.
if everyone was just forking their own and having them on their machine. It's really amazing how much
creativity and innovation copyright law has fueled out of teenage angst towards the like
annoyance that these people don't want you to download stuff for free.
cblgh: Yeah, because it's scary like people just want to make something fun, but then when they've they've made something fun, they're kind of getting anxious like, fuck, are we gonna get, are we gonna get wrecked for this? Like, I'm not a lawyer, like, I don't know literally everything about what's legal or not.
max: I feel you. And they did wreck some people back in the day,
like, that was like a specific approach/strategy of anti
pirating legal stuff was to like, come down really hard on a
few individuals who were kind of like, not really doing anything
other than whatever downloaded a bunch of stuff.
cblgh: Yeah, yeah. And actually with that pirotroli thing, we actually did like go to a lawyer and like pay him like a small amount to just like review were we doing anything bad and his take was no, we're not doing anything bad, but we should add like a small like, uh, terms of service basically where people just agree like, yeah, this is, uh, this is my responsibility or something. The app's defunct now for other reasons.
max: That's cool, especially hearing this.
Everyone's got an interesting Scuttlebutt origin story.
And then, yeah, do you want to talk more about Cerca and Lieu,
which I'm not pronouncing correctly.
cblgh: Yeah, yeah, sure. Yeah, I can do maybe a brief description.
max: Yeah, I guess starting with what they are just because that will help for the transcript
and people listening and then maybe talking about what inspired it, what
you learned, if there was anything that was weird.
cblgh: Yeah, for sure.
Yes, I can start with Lieu because that was the first thing I made of those two. And it's kind of described as a web ring search engine or communal search engine. So what it does is basically, instead of searching and crawling the entire internet, which most search engines do today, it instead searches only a pre-specified list of domains, which was natural for the context that I was coming from, which was I'm part of
a webring called the Merveilles webring. And we have like 200 odd sites in there.
There are many cool sites, but it's kind of daunting. You know, when you have this list of like 200 sites,
like which one do I start with? I'm not really sure what's in here. And like, even if I start with one, I'll just click in and then maybe it's not really obvious where to go from clicking in.
So it kind of, I was noticing this like, I'm not sure, but like fatigue setting in or whatever, where I'm like, I'll click in on a random site. Then this didn't really, I couldn't find anything interesting. Then I'll click another one. Maybe I'll just do that two or three times and then I'm kind of like running into boredom or whatever. So I wanted to surface all of the really cool stuff that people in this webring were doing. And yeah, that's kind of where Lieu came from. So it crawls all of those sites and indexes different kinds of search terms that it's found either in titles or in the body of the text and that kind of stuff.
max: I Remember you writing something like, or I don't know if you just said this or wrote
this, but that like the limitation of Lieu was actually better for certain types of searching.
The example with music was really nice.
You were like, "If I Google search music, like, this is not going to give me good music."
There's actually certain things that Lieu is better at searching for because of its limitations or its focus.
cblgh: Yeah, exactly because I know that this is a particular kind of scene and I kind of have an intuition for what's there. And for like the Lieu instance I've deployed with the Merveilles Webring, I kind of know that it's kind of design-y focus and kind of a lot of weird niche topics. So a lot of the things that are linked in there will kind of suit the sensibilities that I understand that this collective has. So in that case, I can actually just type in »music» and I'll get lists of different kinds of things, maybe someone listing their favorite songs. And it won't be just like, if I search the same thing in DuckDuckGo or Google, there I'll get basically very random things, probably ad-fueled search results.
max: - It also makes me think something cool about this is
it's like a retrospective organizing,
where instead of like some people would say,
"Oh, we have a community,
we're gonna make a music channel,"
which I guess leads to your next project, Cerca.
But instead, this is like,
everyone just do your own thing,
and then like let's find all the time
someone mentioned music.
cblgh: - Yeah, yeah. Yeah, it's taking a different kind of approach to that, for sure. Yeah, so that's Lieu.
And it started out as just being for the Merveilles webring. But then later I kind of made it basically easily deployable for anyone. So if you have, and it's written in Go and you can download a binary. And basically if you have kind of a small list of websites you want to make searchable, you could download Lieu. You write those small lists, I mean the list of websites in the file, and then you start crawling with Lieu. And you can just spin it up and start searching using it.
So that could work whether if you have a group of friends and you want to make your collective output searchable. That could be one thing. But you could also just like, oh, here are some cool sites that I want to be able to search as kind of a group. You could do that as well.
max: I wonder if we could try setting it up
for the websites of the folks in the SFPC class.
That could be interesting.
- Little project.
That might be one I might try to like,
what's the word, not delegate,
but like if someone's looking for a project to do.
cblgh: - Yeah, yeah.
max: - This could be something fun to do.
cblgh: - Yeah, just let me know if someone's running into any problems. Like I think it may need to make a new build for people to use. And then Cerca is the other project you mentioned.
And that's kind of come from how I grew up on the internet in a way, like I grew up in internet forums of many different kinds. And I was really missing that kind of, you know, mode of communication that's slower than like real time social media or IRC and more kind of persistent as well. I wasn't really running into that in a lot of places. So it was on my mind for a long time, but I really didn't see, I was kind of waiting for a good time to make a forum, like to make this kind of forum software. Because there are existing software but there aren't that many kind of modern ones—I've been keeping track. The only one that I've seen is Discourse.
And I think it's great that it's kind of brought the forum sensibilities into the modern web, so to speak. But deploying Discourse for a community is super rough, I think. You have to have a pretty beefy machine to make it work. And honestly, I never really liked the aesthetics of Discourse. And I wanted to make something that was a bit more like, I don't know, home-y or customizable or just like, less clinically sterile, you know?
max: Yeah, very, very sterile, very gamified, quantitative vibe from discourse forums.
cblgh: Yeah, it's like "I have to level up like: oh, make five posts." I don't know. It kind of struck me as, I mean, great that exists, but I really didn't want to launch it myself.
Yeah, so I was like, before making it, I was just like having fun and figuring out, you know, like designing a forum software interface that I would want. And the thing I designed didn't end up in cerca at all, but it kind of influenced the things I wanted in cerca. And how I ended up making it was basically in Merveilles.
We have a mastodon instance, merveilles.town. People started getting excited about forums. And I was like, well, if I make one, would people want to join it? And people were pretty excited. And I had some time. So I kind of banged it out in a couple of weeks.
max: I remember thinking another thing I thought
was cool about Cerca was the way that you kind of made it
in public and immediately had contributors
as soon as you started making it.
And just the dynamic of making a piece of software
for a community with the community,
maybe you want to speak more about that for better or for worse?
cblgh: Yeah, no. It's really nice to be part of a community like that, because it wasn't just me creating something for me and then hoping someone would adopt it. It was like, as you say, like I was creating it and then people were joining it and were excited about it and creating like adding new things that I didn't even think of or I didn't have time to do. And that was really, it's really energizing in a way to just like be creating software in this kind of community context, like instead of just creating something and hoping that'll be used. Because that kind of leads to a lot of overgeneralization, which ultimately actually hinders usage because it's too general, it's not specific enough. It just like it becomes this really big unyielding beast because you don't know what to anticipate or not. So you have to anticipate everything.
max: Do everything.
cblgh: Yeah. Whereas for cerca, I was just like literally in the beginning making it for the Merveilles kind of use case, which has kind of very specific software sensibilities in some sense, which was fun to experiment with. Like a lot of people there don't like client-side JavaScript. So I was trying to make everything in a way where there would be no requirements for client-side JavaScript. And it still doesn't have anything. Which meant going back to like, okay, how do you actually make a web form? And how do you handle that stuff?
max: Some more traditional programming craft.
cblgh: Yeah, yeah. And in some sense, that's just really working with the grain of what you get in the web platform, because forms are one of the OG elements of the HTML standard. And they're really easy to work with once you know what you're kind of doing.
max: Yeah, I guess that also makes me feel like something
about that project then is the code itself
It's part of what's interesting about it.
Like, it feels like it's a very three-dimensional thing.
Like, there's the way you use it.
There's the way it was made.
And there's the choice of technologies used to make it.
And they're kind of like all a part of what makes it creative
and interesting.
And it seems like you found some joy in all the different parts
was my impression.
cblgh: Yeah, and I mean, that's kind of one of my personal strategies in general, which has struck some people, I think, in a way that it's not, I mean, that's not part of it. And basically, my entire mode of operation is having fun while working on projects. And the reason behind that is it's kind of a burnout mitigation strategy. Because if you're having fun and you're being energized by projects, then that's actively
decreasing in some sense, like a burnout counter.
max: Totally.
cblgh: Where if you feel like you have like the entire burden of the world on you and just doing this to be a hero or something, that's a very depleting thing. You can only do it for so long. Whereas having fun, like on Cerca or whatever, making Lieu, that's just like giving more energy to work on that or to work on other things.
max: Yeah, it's amazing how many people I know get burned out by whatever work they're doing.
It's almost prolific.
cblgh: Yeah, I don't know what it's about. People feel like they alone have to shoulder, you know, like the burdens of a community or something, which is wrong. Like if a community is letting something, you know, like burn down to the ground, then sometimes that's what needs to happen, you know? Like it's not your single responsibility to take care of that because there's an entire community. And if nobody's taking care of it, then yeah, that's just a natural result. We can rebuild something new afterwards.
max: Speaking of taking care,
you wanna talk about maintenance a little bit?
Yeah, how is it going with Cerca and who is taking care
and what's it like with people using it?
cblgh: Yeah, sure.
So one of the strategies of it was really making something that was low maintenance. So I wanted to minimize external dependencies and external infrastructure. So that once you've deployed it, it just keeps on running and you don't have to, you know, like start debugging mailgun or something. And in that sense, it's been like a resounding success. Like it's just been running and people have been using it off and on.
It has its kind of high tides and low tides. Like I've seen it start to be used, like people kind of rediscovering the forum during things like what's it called like Inktober where there was a thread where people were like three or four or five people were posting every day and just like sharing each other on and then after that it was kind of quiet for a while and now it's kind of resurging a little bit again.
max: - Okay, I'm curious how that happens,
or what will happen over time too,
'cause I also have this dream of a slower form,
communication place, and somehow forums do end up
doing that sometimes.
Like there was this thread I started
on the Activity Pub forum discourse two years ago,
and it basically gets consistent replies
every few months for two years.
And it's just like a really interesting timescale.
It's like, if you were to read it all in a row,
you'd be like, wow, this is a really interesting conversation
with like 20 people.
And, but it happens at like absolute snail pace.
And it's cool too.
cblgh: - Yeah, it's fun to be on the receiving end of the, I mean, like you get to literally live that experience. So like it's taking so long in this conversation, which is nice, but an observer just thinks like, wow, this really came together quickly.
max: Yeah, they look at it all at once.
Yeah, yeah, yeah.
They have no idea.
It's like a weird collapsing of time.
cblgh: Yeah.
And it's like, that would never happen, you know, like, something like a Twitter or a Mastodon, right? Because it's very much fire and forget. Like, I'll have missed if you posted like yesterday because I wasn't online much yesterday. And then that will probably never be resurfaced again for me, which is totally the opposite of forums.
But yeah, with its maintenance, like, I've been taking a kind of very slow approach and working on it when I kind of felt like it or when something critical came up. And one kind of thing I think is really difficult is with well-intentioned kind of drive-by contributions. Or it's like there's this kind of balance you have to straddle between what you want to encourage people to do and make contributions but at the same time a specific contribution might actually be the wrong direction for the piece of software, if you're the one who has to maintain it in perpetuity. Yeah yeah and that's a really really difficult thing I think with with maintenance is like actually saying no to certain contributions.
And I think I've been good at it in some cases and in some, in other cases I've kind of, I think I have some lingering PRs where I'm just like, this is not the right thing, but I also feel bad saying no to someone. So it kind of is just, I don't know, kind of ghosting PRs while not in the chat too.
(laughing)
But it's like, I don't want to say, "I don't want this." But I also don't want to press merge.
max: Ghosting PRs, what a social dilemma of our times.
cblgh: I know, right?
max: I feel you.
I've in the past months received a lot of gifts
that I didn't want while I've been here in India.
It's been interesting.
Most of them I've actually just like to say yes to at this
point because I appreciate the intention and I feel like there's some mutually nourishing
thing that happens when someone gives me some food, even if it's something that I don't
actually want to eat. But for me, it's different eating some like food that I don't really
want to eat versus yeah, like I remember like someone offered me some clothes or something
that I did not take because I was like, I don't have space in my pack for this. And
I have a limit, a boundary where I will be like, I'm not,
although I like accepting and receiving,
I'm not willing to accept,
I'm not willing to carry around this thing
for the next six months, just to like,
be agreeable.
cblgh: - Yeah, yeah, no, it's interesting. Like this idea of like a gift that is an encumbrance versus a gift that's kind of more relation building in a way.
max: - Yeah.
cblgh: - Purely. So like if someone gave you food, then you can either toss it away or you can eat it, and that's just like, that's a very transient thing, but clothes or you know, like a painting or something. It won't just go away when you'll have it, right? You kind of become encumbered by it. Same thing with like someone adding a PR and you have to merge it because you feel bad. Then it's there and you have to actually actively work to either throw that piece of code out or throw the painting out.
max: Hmm. Well, this seems good about Cerca, I almost started to feel bad for interviewing you about
Cerca as we were talking about it because I was like based on what you said you're doing this for fun
so it seems almost
like counter to its aim to become the like
focus of such attention
cblgh: No, no, no, it's I I mean, I'm really happy with it and I think about it a lot and I'm very happy every time I see someone make a post, you know, it's like, oh, wow, this is great. Someone created thread and I didn't have to do anything.
max: Nice. Yes, I guess I did.
Well, in that light, then I'm happy to talk about it. I just was thinking how some
some software, the default, the default mode is like, everything has to have a reason and it needs
to be optimized and the best. And it's interesting that if you're making something more provisional
for fun, maybe that's not true, maybe there are decisions one makes that are like, not ideal or
something, but like, it's fine because it's not the purpose of it.
cblgh: Well, I think it can be very intentional even with fun stuff. I am actually quite intentional with, for example, cerca and other things I do for fun. Like, if I do decide I'm doing this and I don't really care about the outcome. So that's actually an intention, right? It's kind of a way to approach a particular thing. So it's not very thoughtless in that sense.
Like every decision I've made with Cerca has been very informed, even if it seems like, oh, it's just--it's not using classes because I guess I didn't really care about that. It's like, oh, no, I'm actually doing that because it makes everything so much more composable.
max: Not using CSS classes.
cblgh: Yeah, exactly. I tried to minimize that.
max: Like just doing stuff more inline?
cblgh: Yeah, sometimes inline, but also just like styling actual, like the default elements.
max: Ah, okay, yeah, yeah, yeah, yeah, yeah, yeah.
max: Is there anything else you feel that you wanted to say
about cerca and lieu? or Should we move on to the other stuff?
cblgh: - Well, I maybe have a few last thoughts on cerca.
max: - Sure.
cblgh: Like one thing I really wanted with it was to avoid external infrastructure that I mentioned, like which in my case was email and email registrations and email kind of, you know, password "I forgot my password"-functionality, which seems important. So I went with this kind of weird thing that was informed by doing way too much peer-to-peer stuff using like public keys and shit.
And I think I might be kind of, I haven't unpacked it yet, but I think it's an interesting thing where I didn't want the email infrastructure, but I did want people to be able to reset their passwords. So I kind of invented this thing of "here's a public key and you can use it to kind of reset your password", which was in effect kind of cumbersome for people. I mean, you have to download a separate tool and then you have to remember the second thing, but it kind of gave me permission to not do the default thing. And I think it's an interesting, not really sure what to call it, even like a technique or whatever concept of having this, you know, like plausibility, like: "okay, people can plausibly restore their passwords. So therefore, I'm freed of this kind of default constraint of having to service this by email."
max: I feel you on the email thing,
actually that just reminded me one of my tasks for today
is to fix the email sending for the self-hosted outline.
cblgh: - Yeah, yeah, yeah, it's just like such a thing.
max: an annoying task
cblgh: But where I think I want to go with it actually, and next time I'm gonna have a batch of work working on it, is I'm going to try to use what's it called like timed one-time passwords, which are basically these codes that you find if you use like a Google Authenticator; that's a standardized technique. And you can actually implement that in something like Cerca. It's decentralized as hell basically.
max: How do you send someone the code if there's no email?
cblgh: So basically you don't send a code, but they do have, I haven't actually implemented yet. So my details on this are very scant. But basically, when they register, they get this code that they put into their Authenticator app. And they probably have an Authenticator app for logging into all kinds of things today. So if they want to reset their password, they could do it using this kind of second proof from the Authenticator app.
max: I got you.
So to prove that you're you--
You supply a password from the Authenticator app
that is somehow connected to this account,
but that only you can produce.
cblgh: - Yeah, and even you can even go further and you can just say, well, you don't even have to log in
with password if you don't want to, you could just use your Authenticator app.
max:- Nice.
cblgh: - Yeah, so that's something I wanna explore. And being able to explore that was only made possible
by doing this really cumbersome strange thing that I started with, which is, yeah, I don't know. It's just like a small side note that I think is kind of interesting. Like if you do tread off the beaten path it opens up other things.
max: - It's a small but big choice
to not include email as dependency.
It's like, it takes you off the standard app.
cblgh: - But yeah, I think that closes the chapter on cerca for now.
===========================
IV: FIVE MINUTES ABOUT THE INTERNET
max: Okay. How about this? Can we talk about the internet for five minutes?
Because I'm just curious. Okay, so I've heard some people say the internet is
decentralized. And then I was like, you know, people talk about how there can be many like
on Scuttlebutt like an archipelago, many networks, internets and stuff. And it doesn't have to
have this global connectivity. But then when I researched it more, I had like heard about
it, but I never really thought about how there's these like different tiers of Internet Service
Providers. And basically, as I understand it, the definition of a Tier 1 Internet Service
Provider is that they peer with all other Tier 1 Internet Service Providers for free
and that they know the routes to like any possible IP address. And so another way of
saying that is that tier one ISP by its definition is centralized. There can only be one tier one.
Like the definition of tier one is peers with all other tier ones and knows every route.
And that was just interesting to me. I mean it's not centralized in that there's not one
player because there's multiple, but it's central or it's universal maybe. Which also
made more sense with like the common way people talk about the internet which is like, are
Are you connected to The internet?
Like using the word "the" instead of...
Um, and before I was like, oh, is that a misnomer?
And then after learning about this, I was like,
well, if you mean the tier one internet,
then like maybe that is correct.
It's singular.
cblgh: - Yeah, no, it's interesting. Like, I don't know so much about like, like the actual details there, but...
(bird squawks)
Yeah, there's a lot that goes on outside of like, "Oh yeah, here's my domain. I registered it with, I don't know, GoDaddy" or whatever. Because as you say, like they have, we have these like tiers where, DNS is decentralized in that you have different regions that decide over their TLDs. And then you can register like in this kind of semi, basically hierarchical, but decentralized way. But at the end of everything you still have like root certificates that actually that's controlled by like 11 people or something scattered around the world who can like change the root domain name things. Yeah yeah that's that's it's kind of wild like anyone could start an isp but I don't really know how you become a t1 kind of provider.
max: Yeah that's what I was getting at. that's the way to say it. like anyone could start a tier 3
provider, that part you can definitely get going but if you want to
become a tier 1 provider you kind of have to be like a really big organization
with a ton of money but then on the positive side I get the feeling that
maybe because of the way it's designed it's still like decentralizing of power
because it doesn't really feel like the tier 1 providers, like they can't do
really preferred traffic. They're not able to like insert advertisements
into the stuff. So it's somehow there's something about it that's working even though
it's kind of centralized. This is all pretty half-baked.
cblgh: Who are some of the, you know, any of like the organizations that are tier one providers?
max: There's a bunch of them but like AT&T, level three,
there's one in India called Tata Communication. So yeah, it doesn't feel like a
a cabal to use your word. It just feels like a weird conglomerate of these giant companies
that somehow make some money from doing it, but it also seems competitive enough that it's
not like one monopoly where they're super hiking the price to profit off of everyone
using the internet.
cblgh: It's mostly like they need to cooperate because otherwise each... I would have to sign up with AT&T internet and I wouldn't be able to access like I don't know whatever this Swedish T1 provider would be right Yeah, exactly. So for them it's like well, we'll provide the best service if we just peer with each other for free and then we can together make money off of the internet users
max: that seems like a good five minutes. Let's switch to talking about cabal.
=========================
V: CABAL & P2P DELETE
max: let's talk about Cabal. What's the state of cabal and what are your plans for it right now?
cblgh: The state of Cabal, yeah. So Cabal's a peer-to-peer group chat I kind of took the initiative on in 2018 April. So it's soon to be five years. Basically just started working on it with friends that I got to know through cabal. So we've been working on it since then. So: it's a community project, no company behind it, similar in concepts to like Discord, but what if you weren't owned by VCs and you didn't have to run a server and that kind of stuff. Peer to peer and it works offline.
What's been going on recently is last year I was kind of spending a lot of my time writing grants for it, like I wrote two grants and have been kind of lucky enough to stumble into a third one. The first one I wrote didn't actually pan out. Like I submitted but we didn't get anything from it and then the second one actually went through. Which is kind of what I'm in a sense, I mean like going to make a living off of this year. So it's me and Kira from the project who are working on it this year for this grant. And I can go into what that is.
And the third one was, I was lucky enough to just like get in touch with a friend who's working a lot in the design space. And through her, it turned out she had, this friend is Eileen, and it turned out she had kind of like like an independent budget to kind of help projects with. And that evolved into designing a new kind of web presence for cabal, which is wrapping up this week. And then we'll kind of make a new website based
on the designs we've gotten. So a lot of things that were kind of seeded last year are coming to fruition this year, which is really exciting.
max: that's cool.
Speaking of the sustainability of open source
and different pathways for projects,
It's been cool for me getting to see the slow burn
and multiple phases of Cabal over the years.
That's cool that it's getting a new wave.
cblgh: Yeah, for sure. And one of the things that has kept it alive is really this perspective of this is a no burnout zone, which is like one of our explicitly stated values and just only working on it when it's fun and doing things for fun.
max: And also the fact it's no servers,
I think was a beautiful point about Beaker,
but also cabal, like you don't have operating costs
as far as I know.
- So that's pretty cool.
You don't really operate by startup logic.
cblgh: Exactly, exactly. Like as long as each person that kind of comes online in a cabal is adding more resources and kind of connectivity to it. So some people might have a really hard time connecting to others because of just how the way routers work today with NATs like stuff like that.
cblgh: so what we're doing for Cabal this year is we're actually rebuilding it from the ground up. So Cabal today, as it works when we're chatting on like any Cabal is building on top of this hypercore dat stack where we have the hypercore append-only log and we have the hyperswarm DHT. So each person in the cabal has this kind of append-only log that they write messages to. And then we kind of, we find other peers, other people, through using this hyperswarm network, the hyperswarm DHT. And we create a chat, like, you know, like—I'm saying something, you're saying something, the third person is saying something—that view, by taking all of these logs, and then kind of mixing them together and interlacing their different entries based on when they were written. The problem is we don't really control that tech stack at all. Like, and we've seen a lot of issues where, not issues, but I mean, it's been existing for five years. We have a lot of experience of like, what works and what kind of doesn't work as we would kind of
want it to work.
And one of those is just the question of delete. Like, hypercore is an append only log. And in the name you hear it's something you can only add to, you can't remove from it. And it's nice for some reasons, it makes synchronization across the network a lot easier because if you know that you have this list of things that is only ever added to, then you can have an efficient sync by saying, "oh, hey, Max, I know that you have, from where I'm sitting, your latest message was number 59. Give me anything that's newer than 59."
That's a very easy synchronization protocol. But in something that's append-only you can't delete. So if you accidentally post your credit card number because you think you're in a web form or accidentally leak something there, you can't retract it. And that's a really, really, really heavy concern for something like a group chat, especially where someone might come in and just like post something horrible and how you're stuck with that.
max: Are you trying to add delete in some patchwork fashion
or just accepting that as a limitation of the software?
cblgh: Yeah, so we're actually saying, "Well, how about we make something custom from the ground up?" And we're doing that with what we're calling cable, a wire protocol, which has kind of been collaboratively specced out among us Cabal devs and community. And what the grant is about is kind of officializing that and really implementing it in a way where we have a spec that's very clear for anyone who's outside of the dev team to be able to read and then implement an independent version. So that means that Cabal, instead of just living in nodejs land, will be able to be implemented in Rust or Ruby or Python or Go.
Because what we're doing is we're specing the individual bytes that each message is composed of. And instead of having this idea of an append-only log, we're kind of going this alternate route of saying, Well, we have this identity idea of public keys and private keys, where if I write a message, then I can sign that message with my private key. And as long as you get that message from anywhere, you don't even have to get directly from me, and if you know what my public key is, then you can verify the authenticity of that message by just checking the signature. So it kind of prevents fraudulent messages in a way where someone could not say, send a message that seems like it comes from me without that being able to be checked.And we're using that concept, but without having to put it into this linear, increase-only fashion.
Instead we have this idea of kind of a grab bag of messages. So since we don't have this strict append only concept anymore, we just have a bag of messages that makes delete very easy. Because if you want to delete something, you can just like basically, in one sense, remove it from your local database. And you can also publish your message. So when other people request like "what messages have you written", among those that you send as a response is "actually this thing that I wrote in the past, I've deleted that. Please delete that as well and save this delete message in case someone else requests new messages from you."
max: That's great.
What does that mean that you are,
so it's not depending on hypercore and hypers,
you're like, you've made a new foundational protocol.
cblgh: - Yeah, it's a new protocol for sure.
max: Cable is the name of the new protocol
or cable is the whole thing,
including the way that Kabal uses it?
cblgh: Yeah, so currently Cable is just the name of, what we're calling the wire protocol, like the specification of the bytes. And then we'll see where we go from there. But that's what we're doing as part of the grants. So Kira is right now finishing up the first draft of the specification. And then we're gonna have an RFC process where we invite people to come and give their feedback and read through the spec and say "well, this thing you should maybe do differently. This thing was very nicely written." and stuff like that. And in parallel to that, I'm basically implementing both the low level stuff as well as the kind of application level interfaces.
max: That's awesome.
I'm really glad we got a chance to talk about this.
I thought you were doing something totally different.
cblgh: What did you think?
max: I don't know.
I think I thought you were continuing with Cabal as it
was, but making mobile clients and some other stuff.
I just somehow missed the update that there was this new
protocol.
cblgh: Yeah, for sure. I can maybe link to the--I wrote a text update when we announced the grant and stuff from our open-collective Yeah, I'll link that for sure. https://opencollective.com/cabal-club/updates/cabal-2022-in-review-two-grants-and-a-new-wire-protocol-later
max: That's really exciting to me.
I was having a somewhat like funny feeling just thinking, you know, it's a famous essay,
the one that's like critical of P2P because it's bad on privacy written by the person
from the New Design Congress whose name I'm forgetting.
cblgh: Yeah, Cade Diehm.
max: Yeah, yeah, yeah.
Somehow I was thinking about that essay again and I was just feeling like, you know what
What it was is because of the popularity of the Fediverse and the fact that I'm teaching
this class, it almost was feeling like an even more real possibility that there will
be this infrastructural switch in the next 5, 10 years where way more stuff is not in
the corporate cloud and is in these more localized clouds and home servers.
And I was just feeling like, okay, there's going to be some good parts about that, but
The shitty part about that is how much more identifiable everyone is.
There was this obscurity in the cloud, and it would be a bit sad if that's lost.
And so just hearing about your implementing delete makes me happy because then that's
at least one major vector of vulnerability that is removed.
because if you can really delete stuff, then that makes you a lot less vulnerable to accidentally
posting some shit that is going to cause problems for you later.
cblgh: And yeah, it'll be very interesting to see. And it feels like we're part of this wave of like, you know, okay, we've been using these peer-to-peer systems, what can we do differently now? Like, we started specing this out in 2021, when we (max and cblgh) actually met in Svendborg. we (some cabal devs) were actually cohacking on the spec there.
max: Yeah, yeah, yeah, I remember that.
cblgh: and we're not the only ones. Like there's a lot of kind of questioning going on, both in SSB, you know, where Andre Staltz has said, he was very close to burnout and his kind of answer to that was he needs to kind of take it easy with the main Manyverse development. I think he's gonna have some other devs continue doing patches, But instead research what could be a new version of SSB that keeps the good parts but kind of removes the bad parts that has been burning people out. So it's definitely kind of new wave kind of vibes going on in the space in general to kind of continue the speculative stuff. So we'll see what happens.
============================
VI: CLOSING / LOCAL TRANSCRIPTION
max: Thanks, and I'll message you once I get a chance to transcribe. I'm kind of hoping I can use some transcription software because this is really long. I have to look into that.
cblgh: As long as you don't send my stuff to OpenAI I am fine.
max: Is that an actual boundary? I haven't looked into how transcription will work.
cblgh: Well, I wouldn't want them to have my voice and shit, you know.
max: I'll look for some local transcription. I think I did see at least see someone share one for Mac. So I just need to find a Linux one.
cblgh: Nice.
OK, talk to you later.
Sure.
Bye-bye.
(birds chirping)
[whistle]
[BEEP]
(beeping)
[BEEP]
[whistle]
[BLANK_AUDIO]

BIN
favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

193
glyph-html.md Normal file
View File

@ -0,0 +1,193 @@
I: P2PANDA, LIBP2P, P4P, MDNS, NATS<br/>
<br/>
<strong>max:</strong> I'm going to start recording again. OK, nice.<br/>
<br/>
<strong>glyph:</strong> That's my first time using this software.<br/>
<br/>
<strong>max:</strong> Big blue button?<br/>
<br/>
<strong>glyph:</strong> Yeah.<br/>
<br/>
<strong>max:</strong> It's really nice. There's a nice paper someone wrote about their intentions for it, too, as this self-hostable software that is supposed to be particularly designed for learning, I think, [INAUDIBLE] and stuff.<br/>
<br/>
<strong>glyph:</strong> OK, nice.<br/>
<br/>
<strong>max:</strong> But yeah, we're kind of gorilla occupying this big blue button instance at the moment. Because I haven't talked to the people at domainepublic.net. Alice just noticed that they had an open instance that you could sign up for. So we wanted to email them and confirm that they were OK with us using their instance for our class, which seemed like good etiquette. Rather than just arriving like I just noticed you had a yard where some stuff was happening, and all of a sudden we just started teaching a 30 person class on it...<br/>
<br/>
<strong>glyph:</strong> Yeah, might be a breach of etiquette.<br/>
<br/>
<strong>max:</strong> So anyway, we started talking about your recent work with P2Panda, but then paused so that we could turn on recording. I would love to hear more about what's going on there and with libp2p. And maybe even just to introduce the project a little bit.<br/>
<br/>
<strong>glyph:</strong> Yeah, so hopefully I do it justice. I'm told P2Panda was born out of festival organization. I think that's what Sam and Andreas and their friends were involved in originally. They kind of have backgrounds as musicians and are quite active in the art space. So they wanted to be able to to organize festivals and build software to aid in that, like how do you share information relating to a festival and how do you allow participants to communicate with one another. And I think there may be some commercial offerings for that. But eventually that led to build P2Panda, which is a toolkit for building decentralized applications, and they've done their best to make it really flexible at the lower levels so that the sort of shape of the data for your application can be quite dynamic. It's not predefined by P2Panda software itself.<br/>
<br/>
They were funded by an NLNet grant. So it's Andreas and Sam and Vincent and I think Pete and Sophistica were all involved and maybe Aljoscha a little bit as well and now they've gotten a second NLnet grant to extend the work that they've done and part of that is networking and replication. So I was originally brought on board to write a connection manager. That was something that I'd voiced to Sam that I was interested in. We have a weekly, it's called a P4P meeting, like peer for peer, mumble call that we have every Monday, which is kind of like a, I guess, like a peer to peer coffee meeting -- it's kind of got that vibe of like sitting down with your friends to have some tea. So we chat a little bit about personal stuff. And then we share what we're working on at the moment.<br/>
<br/>
Gwill from EarthStar, is also a part of that. And I'd mentioned in those calls, like, Oh, I want to write a connection manager, like just for the sake of learning. And then it was also going to be applicable for solar, which is this scuttlebutt node that I've been contributing to. So that was sort of my entry to the project.<br/>
<br/>
And one of the cool things about the P2Panda team is they really put a big emphasis on research and reading and planning before any code is written. So we did quite a stack of reading in terms of what our options were for the networking layer. and libp2p was coming up in those conversations. It's kind of interesting because I think in some of the, like at least among some of the, what I call the scuttlebut crowd, maybe libp2p had this, I don't know, there's some like tension about it or animosity or dislike. And I think I'm missing some context to understand quite why that is. Maybe because of the association with protocol labs and IPFS. But the more research we did and the more folks we spoke with, we thought like actually this is a really good fit for what we're trying to build because libP2P has basically created this toolkit for the networking layer of peer-to-peer applications.<br/>
<br/>
Like ok, we realize that this is an inherently difficult thing. You have nodes with kind of different levels of connectivity, a lot of the nodes are behind NATs or firewalls. So there's some really smart engineers working on solutions to this for several years. And there are implementations in many languages. So we just thought, wow, this actually meets our needs and allows us to focus on other parts of the stack and other parts of the development process rather than having to rewrite everything from scratch ourselves. So yeah, that's what I've been working on -- getting the transport up and running and the connection layer done and then starting to work on the discovery layer. So we're using MDNS for example to do local peer discovery.<br/>
<br/>
<strong>max:</strong> What is MDNS?<br/>
<br/>
<strong>glyph:</strong> MDNS, yeah. So it's-- I think it's often used for like network attached devices like printers, for example, where they can advertise a service using UDP multicast, like just broadcasting on the local network. And then other devices can listen for those broadcasts and automatically discover the services on the network.<br/>
<br/>
<strong>max:</strong> Gotcha. I feel like that's a great overview. For me personally, I'm curious about the connection manager. That's a term that I don't really know what it means. So maybe we can make it a little more concrete. Like, is it sort of like, you have different devices or users that are running some type of peer-to-panda thing and you need to find each other and start communicating?<br/>
<br/>
<strong>glyph:</strong> Yeah, so the connection manager, so there's quite a spectrum of definitions. So what I think of is like a minimal connection manager. It comes before the kind of peer discovery stuff. So let's say you're using TCP as the kind of transport protocol to make connections between your node and another one or your application and another one. So you sort of have to manage the lifecycle of that connection. So you could imagine it going through various phases. Like, at first, maybe the connection is pending. You know, you're reaching out, trying to make the connection. And then it could fail, or you could have a connection established. And then when the connection's established, at one higher level, you want to be aware of, like, how many connections in total do we have established? Because you might be dialing multiple peers at the same time. And if you had lots of peers, you may end up with hundreds or even thousands of connections open. And that might swamp the resources of your device, or your computer. So that's part of the role of the connection manager is saying like, okay, let's set a maximum, maybe a maximum and a minimum limit on how many established connections we can have at one time. That's the sort of very core of it. Then you can extend that functionality a bit by saying, okay, maybe we wanna keep track of all the peers that we've tried to connect to. and we want to persist some state for each peer. So maybe I've tried to dial you five times in a row and it's failed every time. So I wanna keep track of how many failed attempts have there been, when was the last attempt? That kind of a thing. So that's sort of kind of separate from discovering peers because discovery has to do with, "What is your address? How do I find you?" And the connection manager is almost like a level below that.<br/>
<br/>
<strong>max:</strong> I'm getting a little bit confused about below or above. So it's like once you already know who the possible peers are, managing the connections with them?<br/>
<br/>
<strong>glyph:</strong> That's right, that's right.<br/>
<br/>
<strong>max:</strong> And then my next question there-- so probably then, if the connection manager is starting and stopping these connections, are those actually calls to libp2p functions? So are you working with libp2p as a tool that the connection manager uses?<br/>
<br/>
<strong>glyph:</strong> Yeah, that's right. So libp2p has the concept of a swarm, which is sort of, I guess, the network abstraction. So they give you tools whereby you can create a transport. So this is where you're defining what protocol you're using to make the connections in the first place. So that could just be simple TCP, for example, or for P2Panda, we're using Quic, which runs on top of UDP. So you could create a transport and configure a swarm. And then you start, you sort of, yeah, you start the swarm and that emits events. So you have this kind of event-driven model. And then you can act on any of those events which occur. So let's say one of the swarm events, if you're running the MDNS network protocol would be "peer discovered", or like "MDNS discovery". So a peer is discovered and it triggers this event. And then you can take some action, you could match on that event and say, "Okay, once we discover an MDNS peer, we want to dial them. We wanna try and make a connection." And then if that connection is established successfully, you can run other protocols on top of that. So that's where replication would come in, for example. Okay, once we have this connection established, then we can match on that event, and then we can start our replication protocol, which might be something just very straightforward, like, oh, I've got this information, and what have you got? Let's trade.<br/>
<br/>
<strong>max:</strong> Cool, I think I'm following. It's reminding me that I was reading the blog and research of Julia Evans in the past couple days. Have you seen her research before by any chance?<br/>
<br/>
<strong>glyph:</strong> Yeah, I have. Some of the zines I've taken a look at.<br/>
<br/>
<strong>max:</strong> Yeah, yeah, yeah, yeah, those ones. And I was learning a lot about networking and internet from reading the stuff, but sometimes it would kind of end up veering into like big tech scale level networking. And I was realizing there's a little bit of an interesting issue that like trying to figure out how much of our current tech stack works the way it does because it's something inherent about networking or does it work this way because this is how you need it to work when you have this centralized model where you have to serve millions of users from particular nodes. And then the degree to which I was wondering how much these networking primitives and tools were going to have to be reinvented or have new people working on them for the context, self-hosted software, peer-to-peer software. And that kind of sounds like that's a little bit what the work you're doing is with the libp2p stuff and even I guess peer-to-panda could also be understood that way too kind of.<br/>
<br/>
<strong>glyph:</strong> Yeah just trying to make it a bit easier. I mean I think because of the way the network is we have to add in all these things. if the internet were like one big local area network then we could just pull a whole lot of this stuff out, like we just wouldn't need it. So like one of the big issues that I mentioned earlier is nat traversal so when you're behind a home router or firewall and you're not able to make these direct kind of peer-to-peer connections through the internet. So then we have to come up with all these kind of fancy techniques for getting around that, and that often involves a sort of third peer, with a clear accessible IP address that can either act as kind of like a tunnel or a relay or it can help with some synchronization to create a direct connection.<br/>
<br/>
<strong>max:</strong> I'm glad you bring that up. I started talking about that a bit with Alex last time and he actually gave me the brief intro to hole punching but then was like, I'm not the person to talk to learn more about this. But I would be happy to talk more about it if you feel like there's more to explain or if you know good resources to point to for like actually learning about this stuff in detail and what's out there.<br/>
<br/>
<strong>glyph:</strong> Yeah I'm not sure I'm the right person either. I guess there are a ton, I think ton and stun are two, I forget what the acronyms stand for, but two protocols that are used for this. I could point to a project. I think like there's the hole punch or hole punch IO has maybe come out of the dat ecosystem. I think that's some of the folks who were involved with the dat ecosystem who are working on tools to make this easier. And then I think there are some papers out there on NAT reversal and then on libp2p there are there's something called AutoNAT which is one of their protocols for detecting whether or not your node is behind a NAT and then they have a circuit relay which is this kind of third node which can pass along messages and then they have something called direct connection upgrade through Relay, DC-UTR, which is another one of their protocols. In terms of the specifics of how it all works, I'm not well versed in that.<br/>
<br/>
<strong>max:</strong> Well, that's still some good leads. even just hearing that it relies on the third peer to help create a tunnel or some other way to get y'all connected. That makes sense. But yeah, at some point I would be curious to talk with someone or read something to maybe look through in more detail, at least some of the common ways that people go about that. Because I guess it comes up for me when we were talking about self-hosting, because we had to do port forwarding, which is basically one simple way that we make a local IP address accessible to the internet. But I guess it's more complicated when you're doing it with multiple peers and continually and stuff and not just one server.<br/>
<br/>
<strong>glyph:</strong> Yeah, I think that's why we sort of have this need for, I guess I think of it as a heterogeneous network where some peers do have kind of enhanced capabilities, or in the context of Scuttlebutt we had pubs and now kind of maybe more prevalent or certainly more popular in a contemporary sense in our root servers. You know some other node which has these additional features which can kind of bridge the gap as it were.<br/>
<br/>
<strong>max:</strong> That's a super interesting pattern you're observing kind of zoomed out across different protocols that there are these special actors in this heterogeneous network but that yeah the special actors don't need to have all the powers of the corporate centralized server model. They can maybe have lesser powers.<br/>
<br/>
<strong>glyph:</strong> Yeah, they could have a subset or what we're trying right now, we'll see how it works out with Aquadogo, which is the sort of the node of P2Panda, is to have switches for all these capabilities so that actually you're running the same node, you're running the same software, but with some configuration switches, you can say, OK, I would like this to run as a rendezvous server or a relay server so that we still have one piece of software which can adapt and be kind of plastic to meet the needs.<br/>
<br/>
==================<br/>
<br/>
II: Terrence Mckenna, "Find The Others", Network Weaving, The Standardization Of Time<br/>
<br/>
<strong>max:</strong> Totally. Is there more that you want to say about what's going on with Peer2Panda or potentially we could switch to talking about ScuttleButt a little bit??<br/>
<br/>
<strong>glyph:</strong> I think I'm good on Peter Panda for now. I guess I was trying to subtly or not to subtly communicate this by mentioning the P4P Mumble group, but that's part of the really interesting thing for me of how I got involved in the work of getting to to know people over years on Scuttlebutt and then being like, oh, like actually a bunch of us are working on projects with overlapping interests, even if we have slightly different goals, you know, we should really be talking to one another more often. And then through that kind of community that arose from that, that was how I had the opportunity to work on Peer2Panda. So it's just kind of like, yeah, speaking about patterns, like applying these same things to one's social life as well, and like bridging gaps between networks and different groups, and seeing the opportunities that come from developing that trust.<br/>
<br/>
<strong>max:</strong> thank for bringing up the social dimension of the open source and peer-to-peer world. I think of you as someone who is a really inspiring network weaver in terms of the way you've actively cultivated and maintained connections within projects, within Scuttlebutt like, but also between protocols. And it's cool that that is panning out with concrete effects for you, like this work with Peer2Panda. And also, like, going back to the way we met, the spell you cast by creating the SolarPunk.network, Scuttlebut Pub, I think was how we originally connected on Scuttlebutt.<br/>
<br/>
<strong>glyph:</strong> Hmm, yeah, thanks. Yeah, I guess it is. So I listened to a lot of Terrence McKenna recordings in my university years, like a lot. And one of the things that Terrence was famous for saying was "find the others". And when I heard that, I was like particularly interested in consciousness and psychedelics. And I didn't know many people who were interested in those things. So the internet gave me a way of reaching out and connecting and being part of forums and that kind of thing. And I can sort of apply the same thing to those of us who are interested in peer to peer and decentralized socio-technologies. Oftentimes we are the only ones in our physical vicinity. And so it's a case of like reaching out, trying to find those with similar interests and then trying to take it a step further 'cause it can be slightly lonely and isolated work. So trying to just lean on my sense of empathy and what others must be feeling and trying to create opportunities to work together and to share and just travel together.<br/>
<br/>
<strong>max:</strong> For some reason, when I think of this topic, I sometimes feel exhausted, but I haven't fully analyzed why. But there's almost this feeling of I would love to help weave multiple networks together. And I know that sometimes I do, just through existing in the world and my interests. But it also reminds me of when I was younger and I used to feel like I wanted to read all the books in the world and I would freak myself out that that was never going to happen. And sometimes for some reason feel like the active maintenance of networks is also daunting to me.<br/>
<br/>
<strong>glyph:</strong> Yeah, it's a lot. It's a lot. And yeah, I guess it sort of comes and goes. So like there are times where maybe you are quite inspired by that and you have the capacity and energy and the timing is right and other times where it is daunting and a bit exhausting. I tend to think the sort of thing I have in my mind and I think it's something you've seen through your travels and your experiences. It's something certainly that Luandro has spoken about. And Eric as well, is the power of doing this kind of work in shared physical space. So like having a farm or a village or a place where people are doing this work on a continued basis, even if it's just one or two people. And then there are kind of waves of other people who come to join in and practice and learn together. I really think that's gonna lead to a flourishing peer-to-peer future. Yeah, I mean, we're all trying to build local first software. And that can be most powerful when it's kind of homegrown and meeting local needs, right in the context.<br/>
<br/>
<strong>max:</strong> Totally. And yeah, I guess I've also felt once you get this chance to meet and be in person, even for some short period of time, it then makes the network richer in its online form often too.<br/>
<br/>
<strong>glyph:</strong> Absolutely.<br/>
<br/>
<strong>max:</strong> Yeah, and I feel you about having different energy at different times for this type of network weaving or cultivation. And it also reminds me that, I guess ever since I left Instagram, I haven't deleted my account, but I don't use it so much, I noticed I don't manage to maintain connections with certain folks, but through Scuttlebutt and the Fediverse, there have been some digital connections that stayed, So I also do see the power of these networks for kind of like passively keeping connection alive. 'Cause like, yeah, maybe even if it's great, if you have the energy to organize in-person meetings or like this mumble call where you're really actively consciously getting people together, that's obviously like a really powerful way of keeping things alive. But when you don't have that energy and you're kind of more passively just like posting, that still can keep things alive. Or sometimes, yeah, you just see someone who you haven't thought about in a while post something and you're like, oh yeah, that person, you still feel like you're connected in some way.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. In the question prompts in the document you drew up, you spoke a little bit about biomimicry and observing non-human beings and processes and then applying those observations to one's life and one's work. And I think this quality of ebb and flow or like pulses and waves is something that I see in the world around me. Like there's nothing, there are no constant outputs. And I think in contemporary times, and maybe it's a product of like capitalism and many parts of the world now having like always on internet, always on electricity. it kind of creates a sort of pressure and it can be a little bit more difficult to time one's actions in a way that's balanced and healthy because the capacity to connect is always there, right? Even if it's like making a post or liking someone's post. I think of it as quite unnatural and I think it throws us out of balance in a lot of ways.<br/>
<br/>
<strong>max:</strong> that's really beautiful<br/>
<br/>
<strong>glyph:</strong> Like now in South Africa, well for at least a decade we've had power cuts and so on a daily basis where we have daylight hours anywhere between two and four hours of no electricity and that actually helps me be more balanced because it's like okay, it's 2 p.m. Power is going out What am I gonna do? I could read or I could wash dishes or I could go for a walk. It sort of breaks that unnatural cycle<br/>
<br/>
<strong>max:</strong> Yeah, I wonder how we can connect more with healthy timing? Yeah, because you're right that does seem like very much how all of nature works from the seasons to the day to life cycle evolution and it's pretty funny that with 24/7 stuff we can get disconnected from that and get into sort of weird relationships with time.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. It's like the standardization of time. I guess maybe it's like a Cartesian thing of wanting to measure and divide everything neatly and then an hour is is sort of standardized. an hour is an hour. So then nine to five, Monday to Fridays, it's kind of easy to impose. And yeah, so that's what I think like, gardening, long bike rides, anything where you're sort of outside of that form of time and you can observe, like I say, like non-human processes and beings and just see what they're doing. And then you can learn from that. I know in Daoist philosophy, timing is a big, is quite an important point. Like sometimes timing is of primary importance and action is a secondary thing, then it's a case of like cultivating some kind of intuition for timing and when is the appropriate time because then the activation energy is that much lower. I kind of think of it like, I don't know if you're a surfer trying to catch a wave and if the wave is the swell is 100 meters away and you start frantically paddling, you're going to run out of energy by by the time it actually reaches you. And so by initiating your paddle at just the right time, you can catch the wave with the smallest amount of energy, and then from a third party perspective, it looks effortless. And that can be applied throughout life.<br/>
<br/>
<strong>max:</strong> This is making me think about my initial reaction to how to cultivate timing is just to sensitize the perception and to be in a place where we can notice things. Yeah, like your tips of gardening or getting out, but then for my own journey I was thinking about sobriety and other ways to just try to become more aware of what's happening. so that when you do have to do some swimming, hopefully you can do it at the right moment.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. And I guess part of that is guilt as well. Because this was something that I was thinking about a lot in years gone by. Like after my travels in South America and then when I was basically working for myself I didn't have any external time constraints, then it's like, gee, how do I organize my time? And there was this part of my mind that was highly critical and I would feel guilty about like, oh, it's 10 a.m. on a Tuesday and I'm not working, like I should be working, you know, I should be doing XYZ. And then again, observing the creatures around me, I was like, well, when the cheetah is like taking a nap under the tree, I don't think it's berating itself for not hunting. You know, it's not like gee I'm a terrible cheetah. I'm just laying around. I should be trying to catch some dinner, but I'm not I'm the worst. I don't think that happens somehow.<br/>
<br/>
<strong>max:</strong> that also makes me think of a chipmunk I was watching the other day that was just like going up and down some tree. This was kind of a reverse issue, but I was just like, what are you doing? (laughing) Like you just keep, like what are you looking for? You're so active. I assume he or she had some good reason for going up and down this tree, so frequently. Maybe not.<br/>
<br/>
<strong>glyph:</strong> maybe it just felt good.<br/>
<br/>
<strong>max:</strong> Yeah, yeah, he just needed to move around a bit. Well, I'm looking back at the notes now to see. It's good that we took a winding journey through it so that we could get to some good stuff even if we don't get to everything. Timing is interesting with planning software projects too. I was thinking about this with our work on PeachCloud, but like figuring out when is the right time to build on top of something, the timing of all the different Scuttlebutt components working together or not working together.<br/>
<br/>
<strong>glyph:</strong> absolutely. Yeah, that's an interesting lens to look at it with and again this kind of activation energy thing of like, okay, well if all the components are available then you can build something quite quickly and without having to put too much energy in. But if you're trying to build something when those other pieces are not Not ready then yeah, you can end up expending a lot of that extra energy It's difficuly, I think especially if you are creative in some capacity, or have something visionary in you, then sometimes you might enjoy that thrill of being on the edge, being like a front runner or something. And you're trying to sort of explore this possibility space that maybe is relatively, it's just not mapped out. You've got to go and check it out for yourself. And sometimes you can bring something back for the group from your adventures and say, "Okay, we learned something, we have something to share." Sometimes you're able to build something that really works and other times it might be relatively fruitful in terms of fulfilling your mission, but you gain other things in the process.<br/>
<br/>
<strong>max:</strong> Totally. And like you said about this, even getting into other protocols, I feel like when you're exploring that unknown territory and you're meeting the others who are also exploring that unknown territory. There's like something that's happening that goes beyond any fruits of one particular project or mission<br/>
<br/>
<strong>glyph:</strong> That's it totally yeah, so if you're able to take that holistic perspective which I mean for me it's not not always easy, But then there really are no failures in sense, if you are prioritizing community and sharing and fun and just the joy of discovery and creation, then if the product you were trying to build fails, it's just one more learning experience. I think if I were approaching software as a kind of venture capital funded startup and we were like, we just need to build this product and grow this thing as as quick as possible so we can be acquired and then we'll put our feet up. If that failed, it would be crushing, right? Because it would be like, "Oh, geez, we didn't get our goal and we didn't have much fun." We didn't enjoy each other, or any basic nice things about existing on this planet.<br/>
<br/>
<br/>
========================<br/>
<br/>
IV: Mycofiltration, Urban & Rural Exchange<br/>
<br/>
<strong>max:</strong> Do you still have a little energy? I was thinking it would be cool to talk about myco-filtration because I'd love to hear about that and I also thought maybe yeah it was a cool prompt to mention other solidarity infrastructure projects too -- those were two ones I was thinking about.<br/>
<br/>
<strong>glyph:</strong> Yeah, that's good. I've got energy, the morning for me. So I'm feeling good<br/>
<br/>
<strong>max:</strong> so do you want to talk a little bit about what's going on with the micro filtration?<br/>
<br/>
<strong>glyph:</strong> Yeah, so it hasn't really got past the kind of planning phase but Essentially right now I live in I guess it's called an eco village, but A friend of mine who lives here says it's really more akin to an eco-estate in terms of there's not a kind of community body that decides on who can buy in or not and there's no like community vetting process it's more like willing buyer willing seller in terms of the properties that are here in the village. But there is certainly a kind of more of a trend towards like living harmoniously with the surroundings, trying to leave a light impact. There's a lot of rainwater harvesting. There's some like solar for electricity generation, these kinds of things. And one of my neighbors, I think he has an engineering background, and he is putting together kind of like an artificial wetland installation for gray water filtering. And he's been doing the research on the plants of like, okay, which plants can we use to clean the water? And I think he'd read a little bit about using mycelium for this purpose and integrating it into a gray water filtration system. And that's something I'm quite interested in. So yeah, I've sort of looked at the site and what he's working with. I think there's a bit of a pause while he works on other aspects of his property. And then we would likely, because we're in quite a forested area, there's no lack of biomass. any kind of tree trimming that goes on which goes on frequently that generates a lot of material which can then be chipped so we have a lot of wood chips and so there's a species strypharia righosa annulata which is commonly known as king strypharia or wine cap which is particularly capable as a filtration mechanism because the mycelium exudes antimicrobial compounds which are able to control the population for example of E. coli so you could inoculate wood chips and have this myceliated wood chip bed which the water flows through and in the process of flowing through that water it is kind of cleaned in a sense that makes it healthier to flow out into the ecosystem or into the ground or towards the stream.<br/>
<br/>
<strong>max:</strong> When we talk about great water filtration does that so that means the water that's not drinking water that's come after we've used it from like showering or other things and when you're trying to filter it, is it to be drinkable again or just to return to the land?<br/>
<br/>
<strong>glyph:</strong> Yeah, in this case it's just to return to the land and your characterization is accurate. So dishwashing water, shower water, yeah those are the main things I guess, maybe from the laundry, clothes watching water. So yeah, then it's just a case of cleaning and filtering that water before it goes back to the land. You could do a, maybe if we were in an arid area and we were trying to recapture and cycle as much of our water as possible, then you could filter that grey water with the aim of having it be drinkable again at the end. But<br/>
that objective would influence your design choices. You'd have to do some extra steps, I think, to ensure that it was safe for drinking.<br/>
<br/>
<strong>max:</strong> And so you're more at a site survey stage and not at a stage of inoculating wood-chips<br/>
<br/>
<strong>glyph:</strong> That's right. Yeah, that's right. Just kind of, yeah, just observing the site, seeing what's going on, doing a little bit of research into best practices, and then the next steps would be contacting a local mycology supplier, and seeing first of all if they could cultivate the species we want on sawdust and then using that sawdust spawn to inoculate locally sourced woodchips probably in big plastic totes, like big containers at first just to have a contained environment for the mycelium to become acquainted with the types of wood that make up the woodchips here and to expand that mycelium from the sawdust onto a larger amount of biomass and then to inoculate the wood-chip bed with that.<br/>
<br/>
<strong>max:</strong> Cool. Well, I'm curious to hear in some time. Where it goes next.<br/>
<br/>
<strong>glyph:</strong> Yeah, I think it's probably the next on my list. Like, we're about to do a small oyster mushroom workshop, just kind of doing the classic cardboard and used coffee grounds thing. So I'm hoping that'll be a nice springboard for kind of like amplifying the interest which already exists in this place and passing on some knowledge and skills so that hopefully when I leave here there can be a continuation of cultivation efforts.<br/>
<br/>
<strong>max:</strong> How many people are around in this eco-state?<br/>
<br/>
<strong>glyph:</strong> Yeah, good question. So if I think of like households, there's probably 20 or 30 households I would say. And there are quite a few families with young children. So there's like a learning center that's been established nearby and there's probably a dozen children there. So yeah, maybe about 30 people, maybe a bit more.<br/>
<br/>
<strong>max:</strong> It seems like an interesting model and size of people to come together. enough to<br/>
have some unknowns to it, some town-like feelings, but not so much to be anonymous.<br/>
<br/>
<strong>glyph:</strong> Yeah, exactly. And I think that's kind of a place where a lot of the people who've moved here have moved from Cape Town and some of like the outlying areas of Cape Town. So they've sort of undergone this journey from the center of busy city or suburban life to more of the quieter suburbs and then they make the big jump out here which is more of a semi-rural place. Some cool stuff like just communal buying groups for example. Okay, someone says I'm going to do a big food order. Is anyone else interested? And I think those kind of slightly low stakes communal efforts are a nice stepping stone, like to build trust and practice working together. And that could lead to, I hope it would lead to bigger communal projects where there is more cultivation and emphasis on the commons and trying to break out of this kind of like privatized model of being<br/>
<br/>
<strong>max:</strong> So this is a random thought from my travels and spending time in rural areas. I guess before I was imagining rural and urban ways of life as more separate. And for some reason I've been having this perception recently that they're not really separate. They're like so entangled because mostly the rural areas are providing food to the cities. But also urban industry is often providing like phones and other forms of knowledge that go back to rural areas and they just feel like, just more connected to me than they did in the past. so it's cool hearing about like this pathway of a group of people from the city going to the suburbs and then to somewhere rural. I guess also this sharings comes from meeting some folks in more conservative rural areas where there's like among young people some like really genuine desire go to city and learn about the world or even like people where they aren't allowed to have independence or like certainly not queer people and there could be some kind of like cycle and return of like a movement of people wanting to go to the cities to like meet other people and learn new things but also maybe not wanting to stay there.<br/>
<br/>
<strong>glyph:</strong> Yeah, yeah, I think people, I think humans have always moved and certainly there are these flows of goods and people that kind of link these areas. I think in the South African context, there's a massive draw. Like the city holds a powerful draw and it's often around employment opportunities, education opportunities, which is, I think, quite common in a lot of parts of the world. But the city tends to have this kind of magnetism and if you are coming from a background of limited means, especially like limited financial resources, you can get stuck in the city. And yeah, I've met some people and heard some heartbreaking stories of people just really wanting to go back to their home village and be with their mom and their friends and family, but they're kind of stuck in this.<br/>
<br/>
<strong>max:</strong> They're stuck because they get a job in the city, but then they don't have the mobility to leave that job? Or something else?<br/>
<br/>
<strong>glyph:</strong> Yeah, or even sometimes not having a job and being stuck in the city, basically being stuck in poverty. Yeah, being a long way from home without the financial resources, without the stability of a set income, and then it's like, okay, well, my village is on the other the side of the country or my village is several countries away and just not having the means to make that journey. And there's also often the pressure of if you are the one who's leaving the rural area to go to the city, there are a lot of expectations on you. It's like an excitement. You're like, oh, you're going to the city, you're going to get a good job, like you're going to be making money, you're going to send some of that money back to us and help us, and if that works out then it's awesome and if it doesn't then I think it's just a lot of pressure.<br/>
<br/>
<strong>max:</strong> Totally. The thing about getting stuck resonates with me too for some people I've met too where they seem like they're almost living in a circumstance that no one would have chosen. But I guess that's what happens by circumstance. when plans change along the way. And then there's this interesting feeling of a second generation too where at some point that becomes home, even though it seems like it's not where one would have planned it.<br/>
<br/>
===================<br/>
<br/>
IV: Open Source & Decentralized Cooperatives, Income Sharing<br/>
<br/>
<strong>max:</strong> do you want to mention some references of other projects that inspire you when we're talking about solidarity infrastructure, stuff you're dreaming of or have been keeping an eye on?<br/>
<br/>
<strong>glyph:</strong> Yeah, I was thinking about this a little bit. Strangely, I don't have like a really long list. I think there is co-op cloud, like involving decentralized and KawaiiPunk and adyl. That's cool to see like a cooperative, you know, doing good work and trying to build things on a different model -- still run a business but with a different model where it's non-hierarchical and there's solidarity amongst the workers.<br/>
<br/>
I know @cblgh who you just interviewed the other day came up with a a nice idea for a mutual aid experiment amongst members of Merveilles, the Merveilles mastodon instance or Fediverse instance. So that hasn't quite gotten off the ground yet, but I'm interested to see how that works out.<br/>
<br/>
The idea there was like, okay, we already have open collective for the instance, what if we received contributions to that open collective? And during the court, we run the experiment for three months and any member of Merveilles can say, "I would like to participate as a recipient." And then at the end of the month, the total amount of donations would be divided equally between all those who said they'd like to participate as recipients and they receive that money. So it was just really straightforward. And I think it came out of the observation that many of the members of Merveilles, because the creative people made a music project or an art project, and they might have a Patreon account or a Koffei account or something like that where they are trying to receive support for their work. And CBLGH was like, Well, maybe we could utilize our kind of community reach to receive contributions for the collective. So I'm quite interested in like simple experiments like that. Just to almost create like a safe space to practice shared earning and different models of income. I know some years ago, I don't know if it's still active and I guess I won't name them but there were some friends of mine that I met through Scuttlebutt who had a kind of shared income system where I think there were maybe four or five of them where every month they would put their income into a pile into like a joint account and then draw a salary off that. So especially for freelancers, if you have a variable income, you're going to have some good months and some bad months. And this was an attempt to try to flatten that out and add a bit more security and knowledge of what will be coming in.<br/>
<br/>
<strong>max:</strong> Are you personally interested in participating in some of these shared schemes? you're kind of also in this open source freelancer route right now it seems like, just developing a network and finding different projects or do you have any dreams of changing how you work?<br/>
<br/>
glpyh: I'm really happy and I'd love to keep doing this. I've been very, very fortunate to be funded to work on open source peer-to-peer stuff for the last few years. So I guess part of my personal strategy and approach is to continue building relationships and friendships amongst those who are working in this kind of direction. And I'm really happy that this year I'm contributing to P2Panda. I'm going to be be contributing to Cabal, and then I'm doing some Scuttlebutt stuff, so that feels really good in terms of just having a little bit more resilience. But I would like to take that next step and do some kind of collective finance management sort of thing. I think in some sense, the relationships that I've been developing over these years and the work that I've been doing is building towards that because I think it is something that requires a lot of trust. But certainly it's also something that human people have been doing for a long, long time. There's all kinds of places around the world where there are like collective savings pools and different kinds of community finance structures. So I think that would help because that is the tricky thing with freelancing, is having that security or I've also heard it spoken about in terms of, especially if you're getting a lot of your income from grants, maybe halfway through a grant project and you're already having to think about grant applications for the future.<br/>
<br/>
<strong>max:</strong> This was a topic on Alex's mind as well.<br/>
<br/>
<strong>glyph:</strong> Nice. Yeah, I think Alex has thought quite a lot about this kind of thing and has some really good ideas.<br/>
<br/>
<strong>max:</strong> It's cool to hear and to imagine more ldecentralized or open source focused collaborative groups, whether autonomic or peer2panda. And yeah, I feel you too that the work you're doing already is maybe creating the groundwork that could blossom into that later.<br/>
<br/>
<strong>glyph:</strong> Yeah, I guess quite a few of us who work on peer-to-peer open source stuff, we're already used to having, well put it this way, we don't lead extravagant lives. like we're not driving fancy cars and living in expensive apartments and that kind of thing. I think generally fairly simple people in terms of our material needs and expenditure. So we're already used to living quite cheaply, but just that level of stability and security that comes with knowing like, okay, at the end of this month, I'm going to receive X amount and for the next 12 months that's going to be what's happening just to even things out a bit. But yeah, we'll see what the future holds.<br/>
<br/>
<strong>max:</strong> Well, I think this is good. won't go on forever and ever. I guess maybe this small question if there's any books, videos or references that you would like to share?<br/>
<br/>
<strong>glyph:</strong> I might have to come back to you on that one -- especially about technology stuff, I wouldn't call myself a fraud, but sometimes I feel like I know so little. And many of my inspirations come from other places. But yeah, let me think about this.<br/>
<br/>
<strong>max:</strong> Outside of technology is fine too. The inspirations could also be not directly related to technology.<br/>
<br/>
<strong>glyph:</strong> Well in that case I'd say read more mycology papers. Really dig deep into it, get outside of the human realm and learn about those things and then try to apply them to the human work you do.<br/>
<br/>
Thanks a lot for taking the time, I will end the recording, but that seems like a good note to end on. Cool, cool. Thank you very much. Thanks. Thanks.<br/>

BIN
glyph-interview.mp3 Normal file

Binary file not shown.

926
glyph-raw.md Normal file
View File

@ -0,0 +1,926 @@
an interview with @glyph
I'm going to start recording again.
OK, nice.
glyph: That's my first time using this software.
max: Big blue button?
glyph: Yeah.
max: It's really nice.
There's a nice paper someone wrote about their intentions
for it, too, as this self-hostable software that
is supposed to be particularly designed for learning,
I think, like class [INAUDIBLE] and stuff.
glyph: OK, nice.
max: But yeah, we're kind of gorilla occupying this big blue button instance at the moment.
Because I haven't talked to the people at domainpublic.net.
Alice just noticed that they had an open instance that you could sign up for.
So it's actually coming up for the class because we wanted to email them and confirm that they
were OK with us using their instance for our class, which seemed like good etiquette.
rather than just arriving and doing something.
glyph: So like someone else shows up halfway through your class?
max: I don't know, if someone just noticed you had a yard
where some stuff was happening,
and all of a sudden they just started teaching
a 30 person class on it... I guess you could do that there.
glyph: Yeah, yeah, might be a breach of etiquette for sure.
max: So yeah, we started talking about your recent work with Peer2Panda, but then pause so that we could turn on recording.
But yeah, I would love to hear more about what's going on there and libp2p.
And maybe even just to introduce the project a little bit.
glyph: Yeah, so I guess hopefully I do justice. P2Panda I guess, was born out of
really festival organization. I think that's what Sam and Andreas and their
friends were involved in originally. They kind of have backgrounds as musicians
and quite active in I guess the art space. So they wanted to be able to
to organize festivals and sort of build software to aid in that, you know, like how do you share
information relating to a festival and how do you allow participants to communicate with
one another. And I think there may be some commercial offerings for that. But eventually
that led to build P2Panda, which is kind of like, I guess, a toolkit for building decentralized
applications and they've done their best to make it really flexible at the lower
levels so that the sort of shape of the data for your application can be quite
dynamic. It's not sort of predefined by P2Panda software itself. And so
they've been, I think they were funded by an NLNet grant. So it's Andreas and Sam
and Vincent and I think Pete and Sophistica were all involved and maybe
Aljoscha a little bit as well and now they've gotten a second NLnet grant to
kind of extend the work that they've done and part of that is networking and
replication. So I was originally brought on board to write a connection
manager. That was something that I'd voiced to Sam that I was
interested in. We have a weekly, it's called like a P4P meeting
like peer for peer, mumble call that we have every Monday, which
is kind of like a, I guess, like a peer to peer coffee meeting
that it's kind of got that vibe like sitting down with your
friends to have some tea. So we chat a little bit about personal
stuff. And then we share what we're working on at the moment.
And gwill from EarthStar, is also a part of that. And I'd
mentioned in those calls, like, Oh, I want to write a connection
manager, like just for the sake of learning. And then it was
also going to be applicable for solar, which is this scuttlebutt
node that I've been contributing to.
So that was sort of my entry to the project.
And one of the cool things about the P2Panda team
is they really put a big emphasis on research and reading
and planning before any code is written.
So we did quite a stack of reading
in terms of what our options were for the networking layer.
and libp2p was coming up in those conversations.
It's kind of interesting because I think in some of the,
like at least among some of the,
what I call the scuttlebut crowd,
maybe libp2p had this,
I don't know, there's some like tension about it
or animosity or dislike.
And I think I'm missing some context
to understand quite why that is.
Maybe has because of the association
with protocol labs and IPFS.
But the more research we did
and the more folks we spoke with,
we thought like actually this is a really good fit
for what we're trying to build
because libP2P has basically created this toolkit
for the networking layer of peer-to-peer applications.
They're like, okay, we realize that
this is an inherently difficult thing.
You have nodes with kind of different levels of
connectivity, a lot of the nodes are behind NATs or firewalls.
So there's some really smart engineers working on solutions for several years.
And there are implementations in many languages.
So we just thought, wow, this actually meets our needs and allows us to focus on other parts
of the stack and other parts of the development process rather than having to rewrite everything
from scratch ourselves. So yeah, that's what I've been working on, like getting the transport up
and running and the connection layer done and then starting to work on the discovery layer.
So we're using MDNS for example to do local peer discovery.
max: What was the last thing?
glyph: MDNS, yeah.
So it's-- I think it's often used for like network
attached devices like printers, for example,
where they can advertise a service using UDP multicast,
like just broadcasting on the local network.
And then other devices can listen for those broadcasts
and automatically discover the services on the network.
max: Gotcha. First, I feel like there's a great overview.
For me personally, I'm curious more about connection manager.
That's a term that I don't really know what it means.
So maybe we can make it a little more concrete.
Like, is it sort of like,
you have different devices or users
that are running some type of peer-to-panda thing
and you need to find each other and start communicating?
glyph: Yeah, so the connection manager,
so there's quite a spectrum of definitions.
So what I think of is like a minimal connection manager.
It comes before the kind of peer discovery stuff.
So let's say you're using TCP as the kind of transport
protocol to make connections between your node
and another one or your application and another one.
So you sort of have to manage the lifecycle of that connection.
So you could imagine it going through various phases.
Like, at first, maybe the connection is pending.
You know, you're reaching out, trying to make the connection.
And then it could fail, or you could
have a connection established.
And then when the connection's established,
at one higher level, you want to be aware of,
like, how many connections in total do we have established?
Because you might be dialing multiple peers at the same time.
And if you had lots of peers, you
may end up with hundreds or even thousands of connections open.
And that might swamp the resources of your device,
or your computer.
So that's part of the role of the connection manager
is saying like, okay, let's set a maximum,
maybe a maximum and a minimum limit
on how many established connections we can have at one time.
That's the sort of very core of it.
Then you can extend that functionality a bit by saying,
okay, maybe we wanna keep track of all the peers
that we've tried to connect to.
and we want to persist some state for each peer.
So maybe I've tried to dial you five times in a row
and it's failed every time.
So I wanna keep track of how many failed attempts
have there been, when was the last attempt?
That kind of a thing.
So that's sort of kind of separate from discovering peers
because discovery has to do with,
"What is your address?
How do I find you?"
And the connection manager is almost like a level below that.
max: I'm getting a little bit confused about below or above.
So it's like once you already know
who the possible peers are, managing
the connections with them?
glyph: That's right, that's right.
max: And then my next question there--
so probably then, if the connection manager is
starting and stopping these connections,
are those actually calls to libp2p functions?
So are you working with libp2p as a tool that the connection
manager uses?
glyph: Yeah, that's right.
So libp2p has the concept of a swarm, which
is sort of, I guess, the network abstraction.
So they give you tools whereby you can create a transport.
So this is where you're defining what protocol you're
using to make the connections in the first place.
So that could just be simple TCP, for example,
or for P2Panda, we're using Quic, which
runs on top of UDP.
So you could create a transport and configure a swarm.
And then you start, you sort of, yeah, you start the swarm
and that emits events.
So you have this kind of event-driven model.
And then you can act on any of those events which occur.
So let's say one of the swarm events,
if you're running the MDNS network protocol
would be "peer discovered", or like "MDNS discovery".
So a peer is discovered and it triggers this event.
And then you can take some action,
you could match on that event and say,
"Okay, once we discover an MDNS peer,
we want to dial them.
We wanna try and make a connection."
And then if that connection is established successfully,
you can run other protocols on top of that.
So that's where replication would come in, for example.
Okay, once we have this connection established,
then we can match on that event,
and then we can start our replication protocol,
which might be something just very straightforward,
like, oh, I've got this information,
and what have you got?
Let's trade.
max: Cool, I think I'm following. It's reminding me that I was reading the blog and research of Julia Evans in the past couple
days. Have you seen her research before by any chance?
glyph: Yeah, I have. Some of the zines I've taken a look at.
max: Yeah, yeah, yeah, yeah, those ones.
And I was learning a lot about networking and internet from reading the stuff, but sometimes
it would kind of end up veering into like big tech scale level networking.
And I was realizing there's a little bit of an interesting issue that like trying to figure
out how much of our current tech stack works the way it does because it's something inherent
about networking or does it work this way because this is how you need it to work
when you have this centralized model where you have to serve millions of users from particular
nodes. And then the degree to which I was wondering how much these networking primitives
and tools were going to have to be reinvented or have new people working on them for the
context, self-hosted software, peer-to-peer software. And that kind of sounds like that's
a little bit what the work you're doing is with the libp2p stuff and even I guess
peer-to-panda could also be understood that way too kind of.
glyph: Yeah just trying to make it a bit easier. I mean I think because of the way the network is we have to add in all these things.
if the internet were like one big local area network then we could just pull a whole
lot of this stuff out, like we just wouldn't need it. So like one of the big issues that I mentioned
earlier is nat traversal so when you're behind a home router or firewall and you're not able to make
these direct kind of peer-to-peer connections through the internet. So then we have to come up
with all these kind of fancy techniques for getting around that, and that often involves a sort of
third peer, with a clear accessible IP address that can either act as kind of like a tunnel
or a relay or it can help with some synchronization to create a direct connection.
max: I'm glad you bring that up. I started talking about that a bit with Alex last time and he
actually gave me the brief intro to hole punching but then was like, I'm not the person
to talk to learn more about this. But I would be happy to talk more about it if you
feel like there's more to explain or if you know good resources to point to for
like actually learning about this stuff in detail and what's out there.
glyph: Yeah I'm not sure I'm the right person either. I guess there are a ton, I think
ton and stun are two, I forget what the acronyms stand for, but two protocols
that are used for this. I could point to a project. I think like there's the
hole punch or hole punch IO has maybe come out of the dat ecosystem. I think
that's some of the folks who were involved with the dat ecosystem who are
working on tools to make this easier. And then I think there are some papers
out there on NAT reversal and then on libp2p there are there's something called
AutoNAT which is one of their protocols for detecting whether or not your node is behind a NAT
and then they have a circuit relay which is this kind of third node which can pass along messages
and then they have something called direct connection upgrade through Relay, DC-UTR,
which is another one of their protocols.
In terms of the specifics of how it all works, I'm not well versed in that.
max: Well, that's still some good leads. even just hearing that it relies on the third peer to help
create a tunnel or some other way to get y'all connected.
That makes sense.
But yeah, at some point I would be curious to talk with someone
or read something to maybe look through in more detail, at least
some of the common ways that people go about that.
Because I guess it comes up for me when we were talking about self-hosting,
because we had to do port forwarding, which is basically
one simple way that we make a local IP address accessible to the internet.
But I guess it's more complicated when you're doing it with multiple peers and continually
and stuff and not just one server.
glyph: Yeah, I think that's why we sort of have this need for,
I guess I think of it as a heterogeneous network where some peers do have kind of enhanced capabilities,
or in the context of Scuttlebutt we had pubs and now kind of maybe more prevalent or certainly
more popular in a contemporary sense in our root servers. You know some other node which has these
additional features which can kind of bridge the gap as it were.
max: That's a super interesting pattern you're observing kind of zoomed out across different protocols
that there are these special actors in this heterogeneous network but that yeah the special
actors don't need to have all the powers of the corporate centralized server model. They can maybe
have lesser powers.
glyph: Yeah, they could have a subset or what we're trying
right now, we'll see how it works out with Aquadogo,
which is the sort of the node of P2Panda,
is to have switches for all these capabilities
so that actually you're running the same node,
you're running the same software,
but with some configuration switches, you can say,
OK, I would like this to run as a rendezvous server
or a relay server so that we still
have one piece of software which can adapt and be
kind of plastic to meet the needs.
max: Totally. Is there more that you want to say
about what's going on with Peer2Panda
or potentially we could switch to talking
about ScuttleButt a little bit??
glyph: I think I'm good on Peter Panda for now. I guess I was trying to
subtly or not to subtly communicate this by mentioning the P4P Mumble group, but that's
part of the really interesting thing for me of how I got involved in the work of getting to
to know people over years on Scuttlebutt and then being like, oh, like actually a bunch
of us are working on projects with overlapping interests, even if we have slightly different
goals, you know, we should really be talking to one another more often. And then through
that kind of community that arose from that, that was how I had the opportunity to work
on Peer2Panda. So it's just kind of like, yeah, speaking about patterns, like applying
these same things to one's social life as well, and like bridging gaps between networks
and different groups, and seeing the opportunities that come from developing that trust.
max: thank for bringing up the social dimension of the open source and peer-to-peer world.
I think of you as someone who is a really inspiring network weaver in terms of the way you've
actively cultivated and maintained connections within projects, within Scuttlebutt like,
but also between protocols.
And it's cool that that is panning out with concrete
effects for you, like this work with Peer2Panda.
And also, like, going back to the way we met,
the spell you cast
by creating the SolarPunk.network, Scuttlebut Pub,
I think was how we originally connected on Scuttlebutt.
glyph: Hmm, yeah, thanks. Yeah, I guess it is. So I listened to a lot of Terrence McKenna recordings
in my university years, like a lot.
And one of the things that Terrence was famous for saying
was "find the others".
And when I heard that,
I was like particularly interested in consciousness
and psychedelics.
And I didn't know many people who were interested in those things.
So the internet gave me a way of reaching out and connecting and
being part of forums and that kind of thing.
And I can sort of apply the same thing to those of us who are interested in
peer to peer and decentralized socio-technologies.
Oftentimes we are the only ones in our physical vicinity.
And so it's a case of like reaching out,
trying to find those with similar interests
and then trying to take it a step further
'cause it can be slightly lonely and isolated work.
So trying to just lean on my sense of empathy
and what others must be feeling
and trying to create opportunities to work together
and to share and just travel together.
max: For some reason, when I think of this topic, I sometimes feel exhausted, but I haven't
fully analyzed why.
But there's almost this feeling of I would love to help weave multiple networks together.
And I know that sometimes I do, do that just through existing in the world and my interests.
But it also reminds me of when I was younger and I used to feel like I wanted to read all
the books in the world and I would like freak myself out that that was
never going to happen.
And then I sometimes for some reason feel like the active maintenance of networks is
daunting to me.
glyph: Yeah, it's a lot.
It's a lot.
And yeah, I guess it sort of comes and goes.
So like there are times where maybe you are quite inspired by that and you have the capacity
and energy and the timing is right and other times where it is daunting and a bit exhausting.
I tend to think the sort of thing I have in my mind and I think it's something you're
seeing or that you've seen through your travels and your experiences.
It's something certainly that Luandro has spoken about.
And Eric is the power of doing this kind of work in shared physical space.
So like having a farm or a village or a place where people are doing this work on a continued
basis, even if it's just one or two people.
And then there are kind of waves of other people who come to join in and practice and
learn together.
I really think that's gonna lead to a flourishing peer-to-peer future.
Yeah, I mean, we're all trying to build local first software.
And that can be most powerful when it's kind of homegrown
and meeting local needs, right in the context.
max: Totally. And yeah, I guess I've also felt once you get this chance to meet and be in person, even
for some short period of time, it then makes the network richer in its online form often
too.
glyph: Absolutely.
max: Yeah, and I feel you about having different energy
at times to you for this type of network weaving
or cultivation.
And it also reminds me that when,
I guess ever since I left Instagram,
I haven't deleted my account,
but I don't use it so much.
I noticed I don't manage to maintain connections
with certain folks,
but through Scuttlebutt and the Fediverse,
there have been some digital connections that stayed,
So I also do see the power of these networks
for kind of like passively keeping connection alive.
'Cause like, yeah, maybe even if it's great,
if you have the energy to organize in-person meetings
or like this mumble call where you're really actively
consciously getting people together,
that's obviously like a really powerful way
of keeping things alive.
But when you don't have that energy
and you're kind of more passively just like posting,
that still can keep things alive.
Or sometimes, yeah, you just see someone
who you haven't thought about in a while post something
and you're like, oh yeah, that person,
you still feel like you're connected in some way.
glyph: Yeah, totally.
Yeah, I think at least in your kind of question prompts
in the document you drew up,
you spoke a little bit about biomimicry
and observing non-human beings and processes
and then applying those observations to one's life
and one's work.
And I think this quality of ebb and flow
or like pulses and waves is something that I see
in the world around me.
Like there's nothing, there are no sort of constant outputs.
And I think in contemporary times, and maybe it's a product of like capitalism and many parts of the world now having like always on internet always on electricity.
it kind of creates the sort of pressure and it can be a little bit more difficult to time
one's actions in a way that's sort of balanced and healthy because the capacity to connect is
always there, right? Even if it's like making a post or liking someone's post. So it's a bit,
I think of it as quite unnatural and I think it throws us out of balance in a lot of ways.
max: that's really beautiful
glyph: Like now in South Africa, well for at least a decade we've had power cuts and so on a daily basis where we have
daylight hours anywhere between two and four hours of no electricity and
That actually helps me be more balanced because it's like okay, it's
2 p.m. Power is going out
What am I gonna do? I could read or I could wash dishes or I could go for a walk.
It sort of breaks that unnatural cycle
max: Yeah, I wonder how we can connect more with healthy timing?
Yeah, because you're right that does seem like very much how all of nature works
from the seasons to the day to
life cycle evolution and it's pretty funny that yeah with 24/7 stuff we can get disconnected from that and
get into sort of
weird relationships with time.
glyph: Yeah, totally. It's like the standardization of
time. I guess maybe it's like a Cartesian thing of wanting to measure and divide everything neatly and then an hour is
is sort of standardized. an hour is an hour.
So then nine to five, Monday to Fridays,
it's kind of easy to impose.
And yeah, so that's what I think like,
gardening, long bike rides,
anything where you're sort of outside of that
form of time and you can observe,
like I say, like non-human processes and beings and just see what they're doing.
And then you can learn from that. I know in Daoist philosophy, timing is a big,
is quite an important point. Like sometimes timing is of primary importance and action is
a secondary thing, then it's a case of like cultivating some kind of intuition for timing and
when is the appropriate time because then the activation energy is that much lower. I kind of
think of it like, I don't know if you're a surfer trying to catch a wave and if the wave is the swell
is 100 meters away and you start frantically paddling, you're going to run out of energy by
by the time it actually reaches you.
And so by initiating your paddle at just the right time,
you can catch the wave with the smallest amount of energy,
and then from a third party perspective,
it looks effortless.
And that can be applied throughout life.
max: This is making me think about my initial reaction
to how to cultivate timing is just to sensitize the perception and to be in a place where
we can notice things.
Yeah, like your tips of gardening or getting out, but then for my own journey I was thinking
about sobriety and other ways to just try to become more aware of what's happening.
so that when you do have to do some swimming, hopefully you can do it at the right moment.
glyph: Yeah, totally.
And I guess part of that is guilt as well.
Because this was something that I was thinking about a lot in years gone by.
Like after my travels in South America and then when I was basically working for myself
I didn't have any external time constraints,
then it's like, gee, how do I organize my time?
And there was this part of my mind
that was highly critical and I would feel guilty
about like, oh, it's 10 a.m. on a Tuesday
and I'm not working, like I should be working,
you know, I should be doing XYZ.
And then again, observing the creatures around me,
I was like, well, when the cheetah is like taking a nap under the tree,
I don't think it's berating itself for not hunting. You know,
it's not like gee I'm a terrible cheetah. I'm just laying around.
I should be trying to catch some dinner, but I'm not I'm the worst.
I don't think that happens somehow.
max: that also makes me think of a chipmunk I was watching the other day that was just like
going up and down some tree. This was kind of a reverse issue,
but I was just like, what are you doing?
(laughing)
Like you just keep, like what are you looking for?
You're so active.
I assume he or she had some good reason
for going up and down this tree, so frequently. Maybe not.
glyph: maybe it just felt good.
max: Yeah, yeah, he just needed to move around a bit. Well, I'm looking back at the notes now to see. It's good that we
took a winding journey through it so that we could get to some good stuff even if we
don't get to everything. Timing is interesting with planning software projects too.
I was thinking about this with our work on PeachCloud, but like figuring out when is the right time to build on top of something,
the timing of all the different Scuttlebutt components working together or not working together.
glyph: absolutely. Yeah, that's an interesting lens to look at it with and again this kind of activation energy thing of like,
okay, well if all the components are available then you can build something
quite quickly and without having to put too much energy in.
But if you're trying to build something when those other pieces are not
Not ready then yeah, you can end up expending a lot of that extra energy
It's difficuly, I think especially if you are creative in some capacity,
or have something visionary in you, then sometimes you might
enjoy that thrill of being on the edge,
being like a front runner or something.
And you're trying to sort of explore
this possibility space that maybe is relatively,
it's just not mapped out.
You've got to go and check it out for yourself.
And sometimes you can bring something back
for the group from your adventures and say,
"Okay, we learned something, we have something to share."
Sometimes you're able to build something that really works and other times it might be relatively fruitful in terms of fulfilling your mission, but you gain other things in the process.
max: Totally. And like you said about this, even getting into other protocols, I feel like when you're exploring that unknown territory and you're meeting the others who are also exploring that unknown territory.
There's like something that's happening that goes beyond any
fruits of one particular project or mission
glyph: That's it totally yeah, so if you're able to take that holistic perspective which I mean for me it's not not always easy,
But then there really are no failures in sense,
if you are prioritizing community and sharing and fun and just the joy of discovery and creation,
then if the product you were trying to build fails,
it's just one more learning experience.
I think if I were approaching software as a kind of venture capital funded startup
and we were like, we just need to build this product and grow this thing as
as quick as possible so we can be acquired and then we'll put our feet up.
If that failed, it would be crushing, right?
Because it would be like, "Oh, geez, we didn't get our goal and we didn't have much fun."
We didn't meet each other, or any basic nice things about existing on this planet.
maxh: Yeah, if you throw all those nice things out at the start and you're only waiting for your payout, thats a rough starting point.
I actually still would love to hear an update on the state of
Scuttlebutt in part because I'm currently locked out of my account. I switched
laptops from my Mac to this ThinkPad I got from the Libre Tech Shop running
Linux and I haven't been able to install patchwork yet so far or actually I did
install it but then when I tried to reseed my account in the method that I thought worked
from doing it in the past so far it hasn't worked. My posts have not come back.
Ah, I still might be able to figure it out at some point but I haven't tried to reseed
an account using manyverse and I don't even know where exactly I would put my secret key
and so yeah for now I'm locked out.
glyph: Sorry to hear that. Yeah manyverse might be
be worth a try because I know they've done a lot of work on like the sort of UX of migration
and they've tried to make it as easy as possible to do that. So maybe that's worth a try.
Yeah, Scuttlebutt's in an interesting phase right now. I don't know if you saw,
well, basically Andre Staltz who leads the Manyverse project. For a while now,
he's seen the writing on the wall, what you could call
the sustainability problem of Scuttlebutt, because of the nature of append only logs,
the logs just get bigger and bigger. So especially for those of us who've been around for a few
years and are quite active, there's a lot of messages and that means it takes up a quite
a lot of storage space, I think is the primary limitation for particularly mobile
devices.
So the MetaFeeds work that was done a couple of years ago now was trying to come up with
some solutions for that problem.
I think Andre felt quite a big personal responsibility for this kind of danger that was looming around
the corner and finding some way to solve it.
So essentially what's being discussed now is SSB2
or kind of deciding on a different protocol
that would still utilize some of the same aspects
of the existing protocol.
So probably like the secret handshake would still be used,
probably MUX RPC would still be used,
but there would be a different log format
that would be put to work.
So that would allow, for example, deletion of posts
and also sparse replication so that you could say,
"Actually, I only want the latest messages from a peer"
or you might decide that there is a hard limit
on the size of the log
and so that you could automatically prune old messages.
So this is all undergoing active discussion
and exploration right now.
And there are some contrasting opinions
about what direction we should go in.
There are those who say actually preserving the messages
that we currently have is really important for continuity.
And therefore any new protocol should still have the ability
to read those old message types.
And others are saying, well, actually we've got
this really cool, fresh opportunity.
The momentum is carried in the community itself
and not the technology.
Let's really use this opportunity to make some breaking
changes that are going to help the network to grow,
help more developers to get involved.
So yeah, it's a very interesting time in Scuttlebutt land.
max: I guess which such a big shift potentially happening
to a lot of other things might be sort of paused
until that direction is clarified.
glyph: Yeah, that's it.
I think everyone's sort of waiting to see what happens.
it's kind of an exciting time in general because there's quite a plethora of peer-to-peer
projects now, I mean EarthStar is quite advanced, there's Peer2Panda, Scuttlebutt and Quacha is
another one. there's just seemingly an explosion of peer-to-peer projects and many of them have been
inspired or informed by Scuttlebutt. So that's really cool to see.
max: Yeah, I mean Nostr is having a sort of moment as well. I didn't know the other one.
Kwa something? What was it called?
glyph: Kwa-ha. Yeah, Kwa-ha was like a zebra-like creature lived in parts of I think mostly
Sub-Saharan Africa. So that is by DTBY is the handle of the creator of that.
I don't know too much about it, but I know it's written in Elixir and it uses bamboo as the
like entry format for the log. And bamboo is also used by P2Panda.
max: Do you still have a little energy? I was thinking it would be
cool to talk about micro filtration because I'd love to hear about that and
I also thought maybe yeah it was a cool prompt to mention other
solidarity infrastructure projects too -- those were two ones I was thinking about.
glyph: Yeah, that's good. I've got energy, the morning for me. So I'm feeling good
max: so do you want to talk a little bit about what's going on with the micro filtration?
glyph: Yeah, so it hasn't really got past the kind of planning phase but
Essentially right now I live in I guess it's called an eco village, but
A friend of mine who lives here says it's really more akin to an eco-estate in terms of
there's not a kind of community body that decides on who can buy in or not and there's no like
community vetting process it's more like willing buyer willing seller in terms of the
properties that are here in the village. But there is certainly a kind of
more of a trend towards like living harmoniously with the surroundings, trying to leave a light
impact. There's a lot of rainwater harvesting. There's some like solar for electricity generation,
these kinds of things. And one of my neighbors, I think he has an engineering background,
and he is putting together kind of like an artificial wetland installation
for gray water filtering. And he's been doing the research on the plants of like, okay,
which plants can we use to clean the water? And I think he'd read a little bit about
using mycelium for this purpose and integrating it into a gray water filtration system.
And that's something I'm quite interested in. So yeah, I've sort of looked at the site and what he's working with.
I think there's a bit of a pause while he works on other aspects of his property.
And then we would likely, because we're in quite a forested area, there's no lack of biomass.
any kind of tree trimming that goes on which goes on
frequently that generates a lot of material which can then be chipped
so we have a lot of wood chips and so there's a species strypharia righosa
annulata which is commonly known as king strypharia or wine cap which is
particularly capable as a filtration mechanism because the mycelium exudes
antimicrobial compounds which are able to control the population for example of
E. coli so you could inoculate wood chips and have this myceliated wood chip bed
which the water flows through and in the process of flowing
through that water it is kind of cleaned in a sense that makes it healthier to flow out
into the ecosystem or into the ground or towards the stream.
max: When we talk about great water filtration does that so that means the water that's not
drinking water that's come after we've used it from like showering or other things and
when you're trying to filter it, is it to be drinkable again or just to return to the land?
glyph: Yeah, in this case it's just to return to the land and your characterization is accurate. So
dishwashing water, shower water,
yeah those are the main things I guess, maybe from the laundry,
clothes watching water. So yeah, then it's just a case of cleaning and filtering that water
before it goes back to the land. You could do a, maybe if we were in an arid area
and we were trying to recapture and cycle as much of our water as possible, then you could
filter that grey water with the aim of having it be drinkable again at the end. But
that objective would influence your design choices. You'd have to do some extra steps,
I think, to ensure that it was safe for drinking.
max: And so you're more at a site survey stage and not at a stage of inoculating wood-chips
glyph: That's right. Yeah, that's right. Just kind of, yeah, just observing the site, seeing what's going
on, doing a little bit of research into best practices, and then the next steps would be
contacting a local mycology supplier, and seeing first of all if they could cultivate the species
we want on sawdust and then using that sawdust spawn to inoculate locally sourced woodchips
probably in big plastic totes, like big containers at first just to have a
contained environment for the mycelium to become acquainted with the types of wood
that make up the woodchips here and to expand that mycelium from the sawdust onto
a larger amount of biomass and then to inoculate the wood-chip bed with that.
max: Cool. Well, I'm curious to hear in some time. Where it goes next.
glyph: Yeah, I think it's probably the next on my list. Like, we're about to do a small oyster
mushroom workshop, just kind of doing the classic cardboard and used coffee grounds thing.
So I'm hoping that'll be a nice springboard for kind of like amplifying the interest which
already exists in this place and passing on some knowledge and skills so that hopefully when I
leave here there can be a continuation of cultivation efforts.
max: How many people are around in this eco-state?
glyph: Yeah, good question.
So if I think of like households, there's probably 20 or 30 households I would say.
And there are quite a few families with young children.
So there's like a learning center that's been established nearby and there's probably a
dozen children there.
So yeah, maybe about 30 people, maybe a bit more.
max: It seems like an interesting model and size of people to come together. enough to
have some unknowns to it, some town-like feelings, but not so much to be anonymous.
glyph: Yeah, exactly. And I think that's kind of a place where a lot of the people who've moved here have
moved from Cape Town and some of like the outlying areas of Cape Town. So they've sort of undergone
this journey from the center of busy city or suburban life to more of the quieter suburbs
and then they make the big jump out here which is more of a semi-rural place.
Some cool stuff like just communal buying groups for example.
Okay, someone says I'm going to do a big food order. Is anyone else interested?
And I think those kind of slightly low stakes communal efforts are a nice stepping stone,
like to build trust and practice working together. And that could lead to, I hope it would lead to
bigger communal projects where there is more cultivation and emphasis on the commons and
trying to break out of this kind of like privatized model of being
max: So this is a random thought from my travels and spending time in rural areas.
I guess before I was imagining rural and urban ways of life as more separate.
And for some reason I've been having this perception recently that they're not really
separate. They're like so entangled because mostly the rural areas are providing food to the cities.
But also urban industry is often providing like phones and other forms of knowledge that go back
to rural areas and they just feel like, just more connected to me than they did in
the past. so it's cool hearing about like this pathway
of a group of people from the city going to the suburbs and then to somewhere rural.
I guess also this sharings
comes from meeting some folks in more conservative rural areas where there's
like among young people some like really genuine desire go to city and learn
about the world or even like people where they aren't allowed to have independence or
like certainly not queer people and there could be some kind of like cycle
and return of like a movement of people wanting to go to the cities to like meet other people
and learn new things but also maybe not wanting to stay there.
glyph: Yeah, yeah, I think people, I think humans have always moved and certainly there are
these flows of goods and people that kind of link these areas.
I think in the South African context, there's a massive draw.
Like the city holds a powerful draw and it's often around
employment opportunities, education opportunities,
which is, I think, quite common in a lot of parts of the world.
But the city tends to have this kind of
magnetism and if you are coming from a background of limited means,
especially like limited financial resources, you can get stuck in the city.
And yeah, I've met some people and heard some heartbreaking stories of people just really
wanting to go back to their home village and be with their mom and their friends and family,
but they're kind of stuck in this.
max: They're stuck because they get a job in the city,
but then they don't have the mobility to leave that job? Is that where it comes from?
glyph: Yeah, or even sometimes not having a job and being stuck in the city, basically being stuck in poverty.
Yeah, being a long way from home without the financial resources, without
the stability of a set income, and then it's like, okay, well, my village is on the other
the side of the country or my village is several countries away and just not having the means
to make that journey. And there's also often the pressure of if you are the one who's leaving
the rural area to go to the city, there are a lot of expectations on you. It's like an
excitement. You're like, oh, you're going to the city, you're going to get a good job,
like you're going to be making money, you're going to send some of that money back to us
and help us, and if that works out then it's awesome and if it doesn't then I think it's
just a lot of pressure.
max: Totally. The thing about getting stuck resonates with me too for some people I've met too
where they seem like they're almost living in a circumstance that no one would have chosen.
I guess I'm thinking about things I've been seeing in Indian cities where it's really,
I don't know, just kind of like a random spot that it feels like a bunch of people are living next to each other.
But I guess that's what happens by circumstance.
when plans change along the way.
And then there's this interesting feeling of a second generation too where at some point
At some point that becomes home,
even though it seems like it's not where one would have planned
to have started a life or something. Yeah, I guess in particular in Bangalore,
there's the metro and then there's like a whole,
beyond the metro, there's like another hour of driving
where there's still just so many people living.
Like it's just like such an endless, unplanned city.
So it just seems like so much was unplanned.
It just happened by some kind of, yeah, circumstance.
Sorry, I think I'm getting a little tired.
So easily falling into rambling.
I was really curious if you wanted to just maybe mention some references of other projects
that inspire you or when we're talking about solidarity infrastructure, either in person
or the type of community, stuff you're dreaming of for the eco-estate or through the digital
stuff, just like other stuff you've been keeping an eye on or experience that comes to mind.
glyph: Yeah, I was thinking about this a little bit.
Strangely, I don't have like a really long list.
I think there is co-op cloud, like involving decentralized and KawaiiPunk and adyl.
So that's cool to see like a cooperative, you know, doing good work and trying to, trying to build things on a different model.
model, like still run a business with a different model where it's like non-hierarchical and
there's like solidarity amongst the workers. And what else? Inspiring projects, I mean it's a lot of
the community networking projects and community mesh networking projects. So some of the work that
Luandro is involved in in Brazil. You know some of the kind of wider efforts that
digital democracy are involved in, like the Earth Defenders Toolkit, the MAPEO project.
I know CBLGH who you just interviewed the other day came up with a
a nice idea for a mutual aid experiment amongst members of
Merveilles, the Merveilles mastodon instance or Fediverse instance.
So that hasn't quite gotten off the ground yet, but I'm
interested to see how that works out.
The idea there was like, okay, we already have open collective
for the instance, what if we received contributions
to that open collective?
And during the court, we run the experiment for three months
and any member of Merve can say,
"I would like to participate as a recipient."
And then at the end of the month,
the total amount of donations would be divided equally
between all those who said they'd like
to participate as recipients
and they receive that money.
So it was just really straightforward.
And I think it came out of the observation
that many of the members of Merveilles,
because the creative people made a music project
or an art project,
and they might have a Patreon account
or a Koffei account or something like that
where they are trying to receive support for their work.
And CBLGH was like,
Well, maybe we could utilize our kind of community reach
to receive contributions for the collective.
So I'm quite interested in like simple experiments like that.
Just to almost create like a safe space to practice
yeah, shared earning and different models of income.
I know some years ago, I don't know if it's still active and I guess I won't name them
but there were some friends of mine that I met through Scuttlebutt who had a kind of
shared income system where I think there were maybe four or five of them where every month
they would put their income into a pile into like a joint account and then draw a salary
off that. So especially for freelancers, if you have a variable income, you're going to have some
good months and some bad months. And this was an attempt to try to flatten that out and add a bit
more security and knowledge of what will be coming in.
max: Are you personally interested in
participating in some of these shared schemes? you're kind of also in this open source
freelancer route right now it seems like, just developing a network and finding different projects
or do you have any dreams of changing how you work?
glpyh: I'm really happy I'd love to keep doing this
I've been very, very fortunate to be funded to work on open source peer-to-peer stuff for the
last few years. So I guess part of my personal strategy and approach is to continue building
relationships and friendships amongst those who are working in this kind of direction.
And I'm really happy that this year I'm contributing to P2Panda. I'm going to be
be contributing to Cabal, and then I'm doing some Scuttlebutt stuff, so that feels really
good in terms of just having a little bit more resilience. But I would like to take
that next step and do some kind of collective finance management sort of thing. I think
in some sense, the relationships that I've been developing over these years and the work
that I've been doing is building towards that because I think it is something that requires
a lot of trust. But certainly it's also something that human people have been doing for a long,
long time. There's all kinds of places around the world where there are like collective savings
pools and different kinds of community finance structures. So I think that would help because
that is the tricky thing with freelancing, is having that security or I've also heard it spoken about in terms of,
especially if you're getting a lot of your income from grants, maybe halfway through a grant project and you're already having to think about grant applications for the future.
max: This was a topic on Alex's mind as well.
glyph: Nice. Yeah, I think Alex has thought quite a lot about this kind of thing and has some really good ideas.
max: It's reminding me of my, when I was doing freelancing for like VC-backed startups and random tech companies.
And my journey was from being an individual freelancer, like getting my first job on Upwork.com,
this gig economy thing to then like
banding up with other freelancers to start a consultancy and how that
gave me a lot more sense of security at that time in my life and
also We were able to charge way more and be more well-known and receive more
possibilities, but then
That also didn't fit me at that time and wouldn't fit me now because I don't want to do freelance work for startups,
Particularly when they don't have any special aspect,
But it's cool to hear, and to imagine more like
Decentralized or open source focused groups, whether
autonomic or peer2panda. Yeah, there's some possibility for people to also come together
with a more, with a focus that's like closer to our interests. And yeah, I feel you too
that it doesn't, the work you're doing already is maybe creating the groundwork that could
blossom into that later.
glyph: Yeah, yeah, I think I mean, I guess quite a few of us who work on peer-to-peer open source stuff, we're already used to having, well put it this way, we don't lead extravagant lives.
like we're not driving fancy cars and living in expensive apartments and that kind of thing.
I think generally fairly simple people in terms of our material needs and expenditure.
So we're already used to living quite cheaply, but just that level of stability and security
that comes with knowing like, okay, at the end of this month, I'm going to receive X amount and
for the next 12 months that's going to be what's happening just to even things out a bit.
But yeah, we'll see what the future holds.
max: As I was going to share, based on my bike journey was to do some type of
resource collaboration or programming school while on a bike trip. I thought you might
glyph: Oh, that sounds right.
max: Different possible variations of it, but
I'm noticing with biking is that people are
really supportive to take you in on the
road because they know we're mobile, so we won't stay around forever.
But also, I think because it's something about biking, they just like
they're like you're putting in the effort, like you deserve a break.
glyph: Yeah, people want to feed you and care for you.
max: Yeah, yeah, so yeah, I was thinking it would be cool to
I don't know go on some multi-month, I mean like I said there's many different versions of it, but
where you would bring like solar panel and that's it or the stuff you need to do some work along the
way and then mostly just like yeah like like living very simply you know you can you can
very much have pretty pretty low expenses while you're looking on a bicycle but then also getting
finding people along the way to take you in for longer periods of time so you could like
sit and get some work done.
glyph: Yeah I think I remember there's someone who had done something similar, I think lots of people
but there's one person I remember who had done a similar thing but with photography. So I think
they were like teaching people about photography as they traveled but then also were just like taking
people's photos. You know they were visiting a lot of like rural places where maybe a lot of those
folks had like never had their photo taken and didn't have a nice printout photo that they could keep.
So yeah, there's some cool different possibilities there.
glyph: if you have a link to that or something, I'd be curious.
I'm still just in the brainstorming phase here, but this was a trip where I
was able to do a fair amount of work on the road and there've been a few places I stopped where I
was like, wow, if I could just have some power, proper power out here, like I could probably
I stay out here a long time. And I guess this would also meet a need of mine from traveling, which is to do something more collective.
Because I like being on my own, but it would be nice to have some type of shared container.
max: Well, I think this is good.
won't go on forever and ever.
I guess maybe this small question if there's any books, YouTube videos or references that
you would like to share.
glyph: I might have to come back to you on that one
Yeah, I sometimes feel like, especially about technology stuff, I wouldn't call myself a
fraud, but like, I don't, I feel like I know so little. And many of my, I guess, inspirations
come from other places. But yeah, let me think about this.
max: Outside of technology is fine too. The inspirations could also be directly related
to technology.
glyph: Cool. Well in that case I'd say read more mycology papers.
Like really dig deep into, like get outside of the human realm and learn about those things and then try to apply them to the human work you do.
Thanks a lot for taking the time, I will end the recording, but that seems like a good,
good note to end on.
Cool, cool.
Thank you very much.
Thanks.
Thanks.

261
glyph.html Normal file
View File

@ -0,0 +1,261 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" type="image/png" href="/favicon.ico">
<title>Solidarity Infrastructure Interviews</title>
<link rel="stylesheet" href="https://server-friends-ring.glitch.me/onionring.css">
<link rel="stylesheet" href="/styles.css">
</head>
<body>
<main>
<div>
<a href="/"> ← home </a>
</div>
<h2>An Interview With @glyph</h2>
<div style="font-style: italic;">
a lawnmower could he heard out the window, at the time of the interview. <br/>
website: <a href="https://mycelial.technology">mycelial.technology</a>, mastodon: <a href="https://merveilles.town/@glyph">@glyph@merveilles.town</a>
</div>
<br/>
<audio class="mp3-controller" controls>
<source src="glyph-interview.mp3" type="audio/mp3" />
<a href="glyph-interview.mp3">Download mp3</a>.
</audio>
<br/>
<br/>
<div style="max-width: 600px;">
You can download an mp3 (73.6 MB) of the interview <a href="glyph-interview.mp3" download>here</a> or
read the transcript below.
</div>
</div>
<br/>
<i>Table Of Contents</i><br/>
<br/>
<div style="text-align: left">
<a href="#part1">I: P2PANDA, LIBP2P, P4P, MDNS, NATS </a><br/>
<a href="#part2">II: Terrence Mckenna, "Find The Others", Network Weaving, The Standardization Of Time</a><br/>
<a href="#part3">III: Mycofiltration, Urban & Rural Exchange</a><br/>
<a href="#part4">IV: Open Source & Decentralized Cooperatives, Income Sharing</a><br/>
</div>
<br/>
=================================<br/>
<br/>
<a id="part1">I: P2PANDA, LIBP2P, P4P, MDNS, NATS</a><br/>
<br/>
<strong>max:</strong> I'm going to start recording again. OK, nice.<br/>
<br/>
<strong>glyph:</strong> That's my first time using this software.<br/>
<br/>
<strong>max:</strong> Big blue button?<br/>
<br/>
<strong>glyph:</strong> Yeah.<br/>
<br/>
<strong>max:</strong> It's really nice. There's a <a href="https://journals.openedition.org/ardeth/2194?lang=en">nice paper</a> someone wrote about it too, as this self-hostable software that is supposed to be particularly designed for learning, I think, [INAUDIBLE] and stuff.<br/>
<br/>
<strong>glyph:</strong> OK, nice.<br/>
<br/>
<strong>max:</strong> But yeah, we're kind of gorilla occupying this big blue button instance at the moment. Because I haven't talked to the people at <a href="http://domainepublic.net">domainepublic.net</a>. Alice just noticed that they had an open instance that you could sign up for. So we wanted to email them and confirm that they were OK with us using their instance for our class, which seemed like good etiquette. Rather than just arriving like I just noticed you had a yard where some stuff was happening, and all of a sudden we just started teaching a 30 person class on it...<br/>
<br/>
<strong>glyph:</strong> Yeah, might be a breach of etiquette.<br/>
<br/>
<strong>max:</strong> So anyway, we started talking about your recent work with <a href="https://p2panda.org/">P2Panda</a>, but then paused so that we could turn on recording. I would love to hear more about what's going on there and with <a href="https://libp2p.io/">libp2p</a>. And maybe even just to introduce the project a little bit.<br/>
<br/>
<strong>glyph:</strong> Yeah, so hopefully I do it justice. I'm told P2Panda was born out of festival organization. I think that's what Sam and Andreas and their friends were involved in originally. They kind of have backgrounds as musicians and are quite active in the art space. So they wanted to be able to to organize festivals and build software to aid in that, like how do you share information relating to a festival and how do you allow participants to communicate with one another. And I think there may be some commercial offerings for that. But eventually that led to build P2Panda, which is a toolkit for building decentralized applications, and they've done their best to make it really flexible at the lower levels so that the sort of shape of the data for your application can be quite dynamic. It's not predefined by P2Panda software itself.<br/>
<br/>
They were funded by an NLNet grant. So it's Andreas and Sam and Vincent and I think Pete and Sophistica were all involved and maybe Aljoscha a little bit as well and now they've gotten a second NLnet grant to extend the work that they've done and part of that is networking and replication. So I was originally brought on board to write a connection manager. That was something that I'd voiced to Sam that I was interested in. We have a weekly, it's called a P4P meeting, like peer for peer, mumble call that we have every Monday, which is kind of like a, I guess, like a peer to peer coffee meeting &mdash; it's kind of got that vibe of like sitting down with your friends to have some tea. So we chat a little bit about personal stuff. And then we share what we're working on at the moment.<br/>
<br/>
Gwil from <a href="https://earthstar-project.org/">EarthStar</a>, is also a part of that. And I'd mentioned in those calls, like, Oh, I want to write a connection manager, like just for the sake of learning. And then it was also going to be applicable for solar, which is this scuttlebutt node that I've been contributing to. So that was sort of my entry to the project.<br/>
<br/>
And one of the cool things about the P2Panda team is they really put a big emphasis on research and reading and planning before any code is written. So we did quite a stack of reading in terms of what our options were for the networking layer. and libp2p was coming up in those conversations. It's kind of interesting because I think in some of the, like at least among some of the, what I call the scuttlebut crowd, maybe libp2p had this, I don't know, there's some like tension about it or animosity or dislike. And I think I'm missing some context to understand quite why that is. Maybe because of the association with protocol labs and IPFS. But the more research we did and the more folks we spoke with, we thought like actually this is a really good fit for what we're trying to build because libP2P has basically created this toolkit for the networking layer of peer-to-peer applications.<br/>
<br/>
Like ok, we realize that this is an inherently difficult thing. You have nodes with kind of different levels of connectivity, a lot of the nodes are behind NATs or firewalls. So there's some really smart engineers working on solutions to this for several years. And there are implementations in many languages. So we just thought, wow, this actually meets our needs and allows us to focus on other parts of the stack and other parts of the development process rather than having to rewrite everything from scratch ourselves. So yeah, that's what I've been working on &mdash; getting the transport up and running and the connection layer done and then starting to work on the discovery layer. So we're using MDNS for example to do local peer discovery.<br/>
<br/>
<strong>max:</strong> What is MDNS?<br/>
<br/>
<strong>glyph:</strong> MDNS, yeah. So it's&mdash; I think it's often used for like network attached devices like printers, for example, where they can advertise a service using UDP multicast, like just broadcasting on the local network. And then other devices can listen for those broadcasts and automatically discover the services on the network.<br/>
<br/>
<strong>max:</strong> Gotcha. I feel like that's a great overview. For me personally, I'm curious about the connection manager. That's a term that I don't really know what it means. So maybe we can make it a little more concrete. Like, is it sort of like, you have different devices or users that are running some type of peer-to-panda thing and you need to find each other and start communicating?<br/>
<br/>
<strong>glyph:</strong> Yeah, so the connection manager, so there's quite a spectrum of definitions. So what I think of is like a minimal connection manager. It comes before the kind of peer discovery stuff. So let's say you're using TCP as the kind of transport protocol to make connections between your node and another one or your application and another one. So you sort of have to manage the lifecycle of that connection. So you could imagine it going through various phases. Like, at first, maybe the connection is pending. You know, you're reaching out, trying to make the connection. And then it could fail, or you could have a connection established. And then when the connection's established, at one higher level, you want to be aware of, like, how many connections in total do we have established? Because you might be dialing multiple peers at the same time. And if you had lots of peers, you may end up with hundreds or even thousands of connections open. And that might swamp the resources of your device, or your computer. So that's part of the role of the connection manager is saying like, okay, let's set a maximum, maybe a maximum and a minimum limit on how many established connections we can have at one time. That's the sort of very core of it. Then you can extend that functionality a bit by saying, okay, maybe we wanna keep track of all the peers that we've tried to connect to. and we want to persist some state for each peer. So maybe I've tried to dial you five times in a row and it's failed every time. So I wanna keep track of how many failed attempts have there been, when was the last attempt? That kind of a thing. So that's sort of kind of separate from discovering peers because discovery has to do with, "What is your address? How do I find you?" And the connection manager is almost like a level below that.<br/>
<br/>
<strong>max:</strong> I'm getting a little bit confused about below or above. So it's like once you already know who the possible peers are, managing the connections with them?<br/>
<br/>
<strong>glyph:</strong> That's right, that's right.<br/>
<br/>
<strong>max:</strong> And then my next question there&mdash; so probably then, if the connection manager is starting and stopping these connections, are those actually calls to libp2p functions? So are you working with libp2p as a tool that the connection manager uses?<br/>
<br/>
<strong>glyph:</strong> Yeah, that's right. So libp2p has the concept of a swarm, which is sort of, I guess, the network abstraction. So they give you tools whereby you can create a transport. So this is where you're defining what protocol you're using to make the connections in the first place. So that could just be simple TCP, for example, or for P2Panda, we're using Quic, which runs on top of UDP. So you could create a transport and configure a swarm. And then you start, you sort of, yeah, you start the swarm and that emits events. So you have this kind of event-driven model. And then you can act on any of those events which occur. So let's say one of the swarm events, if you're running the MDNS network protocol would be "peer discovered", or like "MDNS discovery". So a peer is discovered and it triggers this event. And then you can take some action, you could match on that event and say, "Okay, once we discover an MDNS peer, we want to dial them. We wanna try and make a connection." And then if that connection is established successfully, you can run other protocols on top of that. So that's where replication would come in, for example. Okay, once we have this connection established, then we can match on that event, and then we can start our replication protocol, which might be something just very straightforward, like, oh, I've got this information, and what have you got? Let's trade.<br/>
<br/>
<strong>max:</strong> Cool, I think I'm following. It's reminding me that I was reading the blog and research of <a href="https://jvns.ca/">Julia Evans</a> in the past couple days. Have you seen her research before by any chance?<br/>
<br/>
<strong>glyph:</strong> Yeah, I have. Some of the zines I've taken a look at.<br/>
<br/>
<strong>max:</strong> Yeah, yeah, yeah, yeah, those ones. And I was learning a lot about networking and internet from reading the stuff, but sometimes it would kind of end up veering into like big tech scale level networking. And I was realizing there's a little bit of an interesting issue that like trying to figure out how much of our current tech stack works the way it does because it's something inherent about networking or does it work this way because this is how you need it to work when you have this centralized model where you have to serve millions of users from particular nodes. And then the degree to which I was wondering how much these networking primitives and tools were going to have to be reinvented or have new people working on them for the context of self-hosted software and peer-to-peer software. And that kind of sounds like that's a little bit what the work you're doing is with the libp2p stuff and even I guess peer-to-panda could also be understood that way too kind of.<br/>
<br/>
<strong>glyph:</strong> Yeah just trying to make it a bit easier. I mean I think because of the way the network is we have to add in all these things. if the internet were like one big local area network then we could just pull a whole lot of this stuff out, like we just wouldn't need it. So like one of the big issues that I mentioned earlier is nat traversal so when you're behind a home router or firewall and you're not able to make these direct kind of peer-to-peer connections through the internet. So then we have to come up with all these kind of fancy techniques for getting around that, and that often involves a sort of third peer, with a clear accessible IP address that can either act as kind of like a tunnel or a relay or it can help with some synchronization to create a direct connection.<br/>
<br/>
<strong>max:</strong> I would be curious to talk with someone or read something to understand Nat Traversal in more detail, at least some of the common ways that people go about that. Because I guess it comes up for me when we were talking about self-hosting, because we had to do port forwarding, which is basically one simple way that we make a local IP address accessible to the internet. But I guess it's more complicated when you're doing it with multiple peers and continually and stuff and not just one server.<br/>
<br/>
<strong>glyph:</strong> Yeah, I think that's why we sort of have this need for, I guess I think of it as a heterogeneous network where some peers do have kind of enhanced capabilities, or in the context of Scuttlebutt we had pubs and now kind of maybe more prevalent or certainly more popular in a contemporary sense in our root servers. You know some other node which has these additional features which can kind of bridge the gap as it were.<br/>
<br/>
<strong>max:</strong> That's a super interesting pattern you're observing kind of zoomed out across different protocols that there are these special actors in this heterogeneous network but that yeah the special actors don't need to have all the powers of the corporate centralized server model. They can maybe have lesser powers.<br/>
<br/>
<strong>glyph:</strong> Yeah, they could have a subset or what we're trying right now, we'll see how it works out with Aquadogo, which is the sort of the node of P2Panda, is to have switches for all these capabilities so that actually you're running the same node, you're running the same software, but with some configuration switches, you can say, OK, I would like this to run as a rendezvous server or a relay server so that we still have one piece of software which can adapt and be kind of plastic to meet the needs.<br/>
<br/>
==================<br/>
<br/>
<a id="part2">II: Terrence Mckenna, "Find The Others", Network Weaving, The Standardization Of Time</a><br/>
<br/>
<strong>max:</strong> Is there more that you want to say about what's going on with Peer2Panda or potentially we could switch to talking about ScuttleButt a little bit?<br/>
<br/>
<strong>glyph:</strong> I think I'm good on P2Panda for now. I guess I was trying to subtly or not to subtly communicate this by mentioning the P4P Mumble group, but that's part of the really interesting thing for me of how I got involved in the work of getting to to know people over years on Scuttlebutt and then being like, oh, like actually a bunch of us are working on projects with overlapping interests, even if we have slightly different goals, you know, we should really be talking to one another more often. And then through that kind of community that arose from that, that was how I had the opportunity to work on Peer2Panda. So it's just kind of like, yeah, speaking about patterns, like applying these same things to one's social life as well, and like bridging gaps between networks and different groups, and seeing the opportunities that come from developing that trust.<br/>
<br/>
<strong>max:</strong> thank for bringing up the social dimension of the open source and peer-to-peer world. I think of you as someone who is a really inspiring network weaver in terms of the way you've actively cultivated and maintained connections within projects, within Scuttlebutt like, but also between protocols. And it's cool that that is panning out with concrete effects for you, like this work with Peer2Panda. And also, like, going back to the way we met, the spell you cast by creating the SolarPunk.network, Scuttlebut Pub, I think was how we originally connected on Scuttlebutt.<br/>
<br/>
<strong>glyph:</strong> Hmm, yeah, thanks. Yeah, I guess it is. So I listened to a lot of Terrence McKenna recordings in my university years, like a lot. And one of the things that Terrence was famous for saying was "find the others". And when I heard that, I was like particularly interested in consciousness and psychedelics. And I didn't know many people who were interested in those things. So the internet gave me a way of reaching out and connecting and being part of forums and that kind of thing. And I can sort of apply the same thing to those of us who are interested in peer to peer and decentralized socio-technologies. Oftentimes we are the only ones in our physical vicinity. And so it's a case of like reaching out, trying to find those with similar interests and then trying to take it a step further 'cause it can be slightly lonely and isolated work. So trying to just lean on my sense of empathy and what others must be feeling and trying to create opportunities to work together and to share and just travel together.<br/>
<br/>
<strong>max:</strong> For some reason, when I think of this topic, I sometimes feel exhausted, but I haven't fully analyzed why. But there's almost this feeling of I would love to help weave multiple networks together. And I know that sometimes I do, just through existing in the world and my interests. But it also reminds me of when I was younger and I used to feel like I wanted to read all the books in the world and I would freak myself out that that was never going to happen. And sometimes for some reason feel like the active maintenance of networks is also daunting to me.<br/>
<br/>
<strong>glyph:</strong> Yeah, it's a lot. It's a lot. And yeah, I guess it sort of comes and goes. So like there are times where maybe you are quite inspired by that and you have the capacity and energy and the timing is right and other times where it is daunting and a bit exhausting. I tend to think the sort of thing I have in my mind and I think it's something you've seen through your travels and your experiences. It's something certainly that Luandro has spoken about. And Eric as well, is the power of doing this kind of work in shared physical space. So like having a farm or a village or a place where people are doing this work on a continued basis, even if it's just one or two people. And then there are kind of waves of other people who come to join in and practice and learn together. I really think that's gonna lead to a flourishing peer-to-peer future. Yeah, I mean, we're all trying to build local first software. And that can be most powerful when it's kind of homegrown and meeting local needs, right in the context.<br/>
<br/>
<strong>max:</strong> Totally. And yeah, I guess I've also felt once you get this chance to meet and be in person, even for some short period of time, it then makes the network richer in its online form often too.<br/>
<br/>
<strong>glyph:</strong> Absolutely.<br/>
<br/>
<strong>max:</strong> Yeah, and I feel you about having different energy at different times for this type of network weaving or cultivation. And it also reminds me that, I guess ever since I left Instagram, I haven't deleted my account, but I don't use it so much, I noticed I don't manage to maintain connections with certain folks, but through Scuttlebutt and the Fediverse, there have been some digital connections that stayed, So I also do see the power of these networks for kind of like passively keeping connection alive. 'Cause like, yeah, maybe even if it's great, if you have the energy to organize in-person meetings or like this mumble call where you're really actively consciously getting people together, that's obviously like a really powerful way of keeping things alive. But when you don't have that energy and you're kind of more passively just like posting, that still can keep things alive. Or sometimes, yeah, you just see someone who you haven't thought about in a while post something and you're like, oh yeah, that person, you still feel like you're connected in some way.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. In the question prompts in the document you drew up, you spoke a little bit about biomimicry and observing non-human beings and processes and then applying those observations to one's life and one's work. And I think this quality of ebb and flow or like pulses and waves is something that I see in the world around me. Like there's nothing, there are no constant outputs. And I think in contemporary times, and maybe it's a product of like capitalism and many parts of the world now having like always on internet, always on electricity. it kind of creates a sort of pressure and it can be a little bit more difficult to time one's actions in a way that's balanced and healthy because the capacity to connect is always there, right? Even if it's like making a post or liking someone's post. I think of it as quite unnatural and I think it throws us out of balance in a lot of ways.<br/>
<br/>
<strong>max:</strong> that's really beautiful<br/>
<br/>
<strong>glyph:</strong> Like now in South Africa, well for at least a decade we've had power cuts and so on a daily basis where we have daylight hours anywhere between two and four hours of no electricity and that actually helps me be more balanced because it's like okay, it's 2 p.m. Power is going out What am I gonna do? I could read or I could wash dishes or I could go for a walk. It sort of breaks that unnatural cycle<br/>
<br/>
<strong>max:</strong> Yeah, I wonder how we can connect more with healthy timing? Yeah, because you're right that does seem like very much how all of nature works from the seasons to the day to life cycle evolution and it's pretty funny that with 24/7 stuff we can get disconnected from that and get into sort of weird relationships with time.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. It's like the standardization of time. I guess maybe it's like a Cartesian thing of wanting to measure and divide everything neatly and then an hour is is sort of standardized. an hour is an hour. So then nine to five, Monday to Fridays, it's kind of easy to impose. And yeah, so that's what I think like, gardening, long bike rides, anything where you're sort of outside of that form of time and you can observe, like I say, like non-human processes and beings and just see what they're doing. And then you can learn from that. I know in Daoist philosophy, timing is a big, is quite an important point. Like sometimes timing is of primary importance and action is a secondary thing, then it's a case of like cultivating some kind of intuition for timing and when is the appropriate time because then the activation energy is that much lower. I kind of think of it like, I don't know if you're a surfer trying to catch a wave and if the wave is the swell is 100 meters away and you start frantically paddling, you're going to run out of energy by by the time it actually reaches you. And so by initiating your paddle at just the right time, you can catch the wave with the smallest amount of energy, and then from a third party perspective, it looks effortless. And that can be applied throughout life.<br/>
<br/>
<strong>max:</strong> This is making me think about my initial reaction to how to cultivate timing is just to sensitize the perception and to be in a place where we can notice things. Yeah, like your tips of gardening or getting out, but then for my own journey I was thinking about sobriety and other ways to just try to become more aware of what's happening. so that when you do have to do some swimming, hopefully you can do it at the right moment.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. And I guess part of that is guilt as well. Because this was something that I was thinking about a lot in years gone by. Like after my travels in South America and then when I was basically working for myself I didn't have any external time constraints, then it's like, gee, how do I organize my time? And there was this part of my mind that was highly critical and I would feel guilty about like, oh, it's 10 a.m. on a Tuesday and I'm not working, like I should be working, you know, I should be doing XYZ. And then again, observing the creatures around me, I was like, well, when the cheetah is like taking a nap under the tree, I don't think it's berating itself for not hunting. You know, it's not like gee I'm a terrible cheetah. I'm just laying around. I should be trying to catch some dinner, but I'm not I'm the worst. I don't think that happens somehow.<br/>
<br/>
<strong>max:</strong> that also makes me think of a chipmunk I was watching the other day that was just like going up and down some tree. This was kind of a reverse issue, but I was just like, what are you doing? (laughing) Like you just keep, like what are you looking for? You're so active. I assume he or she had some good reason for going up and down this tree, so frequently. Maybe not.<br/>
<br/>
<strong>glyph:</strong> maybe it just felt good.<br/>
<br/>
<strong>max:</strong> Yeah, yeah, he just needed to move around a bit. Well, I'm looking back at the notes now to see. It's good that we took a winding journey through it so that we could get to some good stuff even if we don't get to everything. Timing is interesting with planning software projects too. I was thinking about this with our work on PeachCloud, but like figuring out when is the right time to build on top of something, the timing of all the different Scuttlebutt components working together or not working together.<br/>
<br/>
<strong>glyph:</strong> absolutely. Yeah, that's an interesting lens to look at it with and again this kind of activation energy thing of like, okay, well if all the components are available then you can build something quite quickly and without having to put too much energy in. But if you're trying to build something when those other pieces are not Not ready then yeah, you can end up expending a lot of that extra energy It's difficuly, I think especially if you are creative in some capacity, or have something visionary in you, then sometimes you might enjoy that thrill of being on the edge, being like a front runner or something. And you're trying to sort of explore this possibility space that maybe is relatively, it's just not mapped out. You've got to go and check it out for yourself. And sometimes you can bring something back for the group from your adventures and say, "Okay, we learned something, we have something to share." Sometimes you're able to build something that really works and other times it might be relatively fruitful in terms of fulfilling your mission, but you gain other things in the process.<br/>
<br/>
<strong>max:</strong> Totally. And like you said about this, even getting into other protocols, I feel like when you're exploring that unknown territory and you're meeting the others who are also exploring that unknown territory. There's like something that's happening that goes beyond any fruits of one particular project or mission<br/>
<br/>
<strong>glyph:</strong> That's it totally yeah, so if you're able to take that holistic perspective which I mean for me it's not not always easy, But then there really are no failures in sense, if you are prioritizing community and sharing and fun and just the joy of discovery and creation, then if the product you were trying to build fails, it's just one more learning experience. I think if I were approaching software as a kind of venture capital funded startup and we were like, we just need to build this product and grow this thing as as quick as possible so we can be acquired and then we'll put our feet up. If that failed, it would be crushing, right? Because it would be like, "Oh, geez, we didn't get our goal and we didn't have much fun." We didn't enjoy each other, or any basic nice things about existing on this planet.<br/>
<br/>
<br/>
========================<br/>
<br/>
<a id="part3">III: Mycofiltration, Urban & Rural Exchange</a><br/>
<br/>
<strong>max:</strong> Do you still have a little energy? I was thinking it would be cool to talk about myco-filtration because I'd love to hear about that and I also thought maybe yeah it was a cool prompt to mention other solidarity infrastructure projects too &mdash; those were two ones I was thinking about.<br/>
<br/>
<strong>glyph:</strong> Yeah, that's good. I've got energy, the morning for me. So I'm feeling good<br/>
<br/>
<strong>max:</strong> so do you want to talk a little bit about what's going on with the micro filtration?<br/>
<br/>
<strong>glyph:</strong> Yeah, so it hasn't really got past the kind of planning phase but Essentially right now I live in I guess it's called an eco village, but A friend of mine who lives here says it's really more akin to an eco-estate in terms of there's not a kind of community body that decides on who can buy in or not and there's no like community vetting process. It's more like willing buyer willing seller in terms of the properties that are here in the village. But there is certainly a kind of trend here towards like living harmoniously with the surroundings, trying to leave a light impact. There's a lot of rainwater harvesting. There's some solar for electricity generation, these kinds of things. And one of my neighbors, I think he has an engineering background, and he is putting together kind of like an artificial wetland installation for gray water filtering. And he's been doing the research on the plants of like, okay, which plants can we use to clean the water? And I think he'd read a little bit about using mycelium for this purpose and integrating it into a gray water filtration system. And that's something I'm quite interested in. So yeah, I've sort of looked at the site and what he's working with. I think there's a bit of a pause while he works on other aspects of his property. And then we would likely, because we're in quite a forested area, there's no lack of biomass. any kind of tree trimming that goes on which goes on frequently that generates a lot of material which can then be chipped so we have a lot of wood chips and so there's a species Stropharia Rugosoannulata which is commonly known as king stropharia or wine cap which is particularly capable as a filtration mechanism because the mycelium exudes antimicrobial compounds which are able to control the population for example of E. coli so you could inoculate wood chips and have this myceliated wood chip bed which the water flows through and in the process of flowing through that water it is kind of cleaned in a sense that makes it healthier to flow out into the ecosystem or into the ground or towards the stream.<br/>
<br/>
<strong>max:</strong> When we talk about gray water filtration does that mean the water that's not drinking water that's come after we've used it from like showering or other things and when you're trying to filter it, is it to be drinkable again or just to return to the land?<br/>
<br/>
<strong>glyph:</strong> Yeah, in this case it's just to return to the land and your characterization is accurate. So dishwashing water, shower water, yeah those are the main things I guess, maybe from the laundry, clothes washing water. So yeah, then it's just a case of cleaning and filtering that water before it goes back to the land. You could do a, maybe if we were in an arid area and we were trying to recapture and cycle as much of our water as possible, then you could filter that grey water with the aim of having it be drinkable again at the end. But that objective would influence your design choices. You'd have to do some extra steps, I think, to ensure that it was safe for drinking.<br/>
<br/>
<strong>max:</strong> And so you're more at a site survey stage and not at a stage of inoculating wood-chips<br/>
<br/>
<strong>glyph:</strong> That's right. Yeah, that's right. Just kind of, yeah, just observing the site, seeing what's going on, doing a little bit of research into best practices, and then the next steps would be contacting a local mycology supplier, and seeing first of all if they could cultivate the species we want on sawdust and then using that sawdust spawn to inoculate locally sourced woodchips probably in big plastic totes, like big containers at first just to have a contained environment for the mycelium to become acquainted with the types of wood that make up the woodchips here and to expand that mycelium from the sawdust onto a larger amount of biomass and then to inoculate the wood-chip bed with that.<br/>
<br/>
<strong>max:</strong> Cool. Well, I'm curious to hear more some time where it goes next.<br/>
<br/>
<strong>glyph:</strong> Yeah, I think it's probably the next on my list. Like, we're about to do a small oyster mushroom workshop, just kind of doing the classic cardboard and used coffee grounds thing. So I'm hoping that'll be a nice springboard for kind of like amplifying the interest which already exists in this place and passing on some knowledge and skills so that hopefully when I leave here there can be a continuation of cultivation efforts.<br/>
<br/>
<strong>max:</strong> How many people are around in this eco-state?<br/>
<br/>
<strong>glyph:</strong> Yeah, good question. So if I think of like households, there's probably 20 or 30 households I would say. And there are quite a few families with young children. So there's like a learning center that's been established nearby and there's probably a dozen children there. So yeah, maybe about 30 people, maybe a bit more.<br/>
<br/>
<strong>max:</strong> It seems like an interesting model and size of people to come together. enough to have some unknowns to it, some town-like feelings, but not so much to be anonymous.<br/>
<br/>
<strong>glyph:</strong> Yeah, exactly. And I think that's kind of a place where a lot of the people who've moved here have moved from Cape Town and some of like the outlying areas of Cape Town. So they've sort of undergone this journey from the center of busy city or suburban life to more of the quieter suburbs and then they make the big jump out here which is more of a semi-rural place. Some cool stuff like just communal buying groups for example. Okay, someone says I'm going to do a big food order. Is anyone else interested? And I think those kind of slightly low stakes communal efforts are a nice stepping stone, to build trust and practice working together. And that could lead to, I hope it would lead to bigger communal projects where there is more cultivation and emphasis on the commons and trying to break out of this kind of privatized model of being.<br/>
<br/>
<strong>max:</strong> So this is a random thought from my travels and spending time in rural areas. I guess before I was imagining rural and urban ways of life as more separate. And for some reason I've been having this perception recently that they're not really separate. They're like so entangled because mostly the rural areas are providing food to the cities. But also urban industry is often providing like phones and other forms of knowledge that go back to rural areas and they feel more connected to me than they did in the past. so it's cool hearing about this pathway of a group of people from the city going to the suburbs and then to somewhere rural. I guess also this sharing comes from meeting some folks in more conservative rural areas where among young people there's some really genuine desire go to the city and learn about the world or even like people where they aren't allowed to have independence or like certainly not queer people and there could be some kind of like cycle and return of like a movement of people wanting to go to the cities to meet other people and learn new things but also maybe not wanting to stay there.<br/>
<br/>
<strong>glyph:</strong> Yeah, yeah, I think people, I think humans have always moved and certainly there are these flows of goods and people that kind of link these areas. I think in the South African context, there's a massive draw. Like the city holds a powerful draw and it's often around employment opportunities, education opportunities, which is, I think, quite common in a lot of parts of the world. But the city tends to have this kind of magnetism and if you are coming from a background of limited means, especially like limited financial resources, you can get stuck in the city. And yeah, I've met some people and heard some heartbreaking stories of people just really wanting to go back to their home village and be with their mom and their friends and family, but they're kind of stuck in this.<br/>
<br/>
<strong>max:</strong> They're stuck because they get a job in the city, but then they don't have the mobility to leave that job? Or something else?<br/>
<br/>
<strong>glyph:</strong> Yeah, or even sometimes not having a job and being stuck in the city, basically being stuck in poverty. Yeah, being a long way from home without the financial resources, without the stability of a set income, and then it's like, okay, well, my village is on the other side of the country or my village is several countries away and just not having the means to make that journey. And there's also often the pressure of if you are the one who's leaving the rural area to go to the city, there are a lot of expectations on you. It's an excitement. You're like, oh, you're going to the city, you're going to get a good job, like you're going to be making money, you're going to send some of that money back to us and help us, and if that works out then it's awesome and if it doesn't then I think it's just a lot of pressure.<br/>
<!--<br/>-->
<!--<strong>max:</strong> Totally. The thing about getting stuck resonates with me too for some people I've met too where they seem like they're almost living in a circumstance that no one would have chosen. But then there's this interesting feeling of a second generation too where at some point that becomes home, even though it seems like it's not where one would have planned it.<br/>-->
<br/>
===================<br/>
<br/>
<a id="part4">IV: Open Source & Decentralized Cooperatives, Income Sharing</a><br/>
<br/>
<strong>max:</strong> do you want to mention some references of other projects that inspire you when we're talking about solidarity infrastructure, stuff you're dreaming of or have been keeping an eye on?<br/>
<br/>
<strong>glyph:</strong> Yeah, I was thinking about this a little bit. Strangely, I don't have like a really long list. I think there is <a href="https://coopcloud.tech/">co-op cloud</a>, like involving decentralized and KawaiiPunk and aadil. That's cool to see like a cooperative, you know, doing good work and trying to build things on a different model &mdash; still run a business but with a different model where it's non-hierarchical and there's solidarity amongst the workers.<br/>
<br/>
I know @cblgh who you just interviewed the other day came up with a nice idea for a mutual aid experiment amongst members of <a href="https://merveilles.town">Merveilles</a>, the Merveilles mastodon instance or Fediverse instance. So that hasn't quite gotten off the ground yet, but I'm interested to see how that works out.<br/>
<br/>
The idea there was like, okay, we already have open collective for the instance, what if we received contributions to that open collective? And during the court, we run the experiment for three months and any member of Merveilles can say, "I would like to participate as a recipient." And then at the end of the month, the total amount of donations would be divided equally between all those who said they'd like to participate as recipients and they receive that money. So it was just really straightforward. And I think it came out of the observation that many of the members of Merveilles, because the creative people made a music project or an art project, and they might have a Patreon account or a Koffei account or something like that where they are trying to receive support for their work. And cblgh was like, Well, maybe we could utilize our kind of community reach to receive contributions for the collective. So I'm quite interested in like simple experiments like that. Just to almost create like a safe space to practice shared earning and different models of income. I know some years ago, I don't know if it's still active and I guess I won't name them but there were some friends of mine that I met through Scuttlebutt who had a kind of shared income system where I think there were maybe four or five of them where every month they would put their income into a pile into like a joint account and then draw a salary off that. So especially for freelancers, if you have a variable income, you're going to have some good months and some bad months. And this was an attempt to try to flatten that out and add a bit more security and knowledge of what will be coming in.<br/>
<br/>
<strong>max:</strong> Are you personally interested in participating in some of these shared schemes? you're kind of also in this open source freelancer route right now it seems like, just developing a network and finding different projects or do you have any dreams of changing how you work?<br/>
<br/>
<strong>glyph:</strong> I'm really happy and I'd love to keep doing this. I've been very, very fortunate to be funded to work on open source peer-to-peer stuff for the last few years. So I guess part of my personal strategy and approach is to continue building relationships and friendships amongst those who are working in this kind of direction. And I'm really happy that this year I'm contributing to P2Panda. I'm going to be be contributing to Cabal, and then I'm doing some Scuttlebutt stuff, so that feels really good in terms of just having a little bit more resilience. But I would like to take that next step and do some kind of collective finance management sort of thing. I think in some sense, the relationships that I've been developing over these years and the work that I've been doing is building towards that because I think it is something that requires a lot of trust. But certainly it's also something that human people have been doing for a long, long time. There's all kinds of places around the world where there are like collective savings pools and different kinds of community finance structures. So I think that would help because that is the tricky thing with freelancing, is having that security or I've also heard it spoken about in terms of, especially if you're getting a lot of your income from grants, maybe halfway through a grant project and you're already having to think about grant applications for the future.<br/>
<br/>
<strong>max:</strong> This was a topic on Alex's mind as well.<br/>
<br/>
<strong>glyph:</strong> Nice. Yeah, I think Alex has thought quite a lot about this kind of thing and has some really good ideas.<br/>
<br/>
<strong>max:</strong> It's cool to hear and to imagine more decentralized or open source focused collaborative groups, whether <a href="https://autonomic.zone/">autonomic</a> or peer2panda. And yeah, I feel you too that the work you're doing already is maybe creating the groundwork that could blossom into that later.<br/>
<br/>
<strong>glyph:</strong> Yeah, I guess quite a few of us who work on peer-to-peer open source stuff, we're already used to having, well put it this way, we don't lead extravagant lives. like we're not driving fancy cars and living in expensive apartments and that kind of thing. I think generally fairly simple people in terms of our material needs and expenditure. So we're already used to living quite cheaply, but just that level of stability and security that comes with knowing like, okay, at the end of this month, I'm going to receive X amount and for the next 12 months that's going to be what's happening just to even things out a bit. But yeah, we'll see what the future holds.<br/>
<br/>
<strong>max:</strong> Well, I think this is good. won't go on forever and ever. I guess maybe this small question if there's any books, videos or references that you would like to share?<br/>
<br/>
<strong>glyph:</strong> I might have to come back to you on that one &mdash; especially about technology stuff, I wouldn't call myself a fraud, but sometimes I feel like I know so little. And many of my inspirations come from other places. But yeah, let me think about this.<br/>
<br/>
<strong>max:</strong> Outside of technology is fine too. The inspirations could also be not directly related to technology.<br/>
<br/>
<strong>glyph:</strong> Well in that case I'd say read more mycology papers. Really dig deep into it, get outside of the human realm and learn about those things and then try to apply them to the human work you do.<br/>
<br/>
Thanks a lot for taking the time, I will end the recording, but that seems like a good note to end on. Cool, cool. Thank you very much. Thanks. Thanks.<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<hr/>
<footer>
<p>
This micro-website is a part of the <a href="http://server-friends-ring.glitch.me/">server-friends!</a> web-ring, initiated by <a href="https://wangyifan.io/">Yifan</a>,
containing self-hosted websites by different participants of the Solidarity Infrastructures class.
</p>
<br/>
<div id='webring'>
<script type="text/javascript" src="http://server-friends-ring.glitch.me/onionring-variables.js"></script>
<!-- <script type="text/javascript" src="/onionring-variables.js"></script>-->
<script type="text/javascript" src="http://server-friends-ring.glitch.me/onionring-widget.js"></script>
<!-- <script type="text/javascript" src="/onionring-widget.js"></script>-->
</div>
</footer>
<br/><br/>
</main>
</body>
</html>

196
glyph.md Normal file
View File

@ -0,0 +1,196 @@
an interview with @glyph<br/>
<br/>
<br/>
I: P2Panda, libP2P, P4P, MDNS, NATS,<br/>
<br/>
<strong>max:</strong> I'm going to start recording again. OK, nice.<br/>
<br/>
<strong>glyph:</strong> That's my first time using this software.<br/>
<br/>
<strong>max:</strong> Big blue button?<br/>
<br/>
<strong>glyph:</strong> Yeah.<br/>
<br/>
<strong>max:</strong> It's really nice. There's a nice paper someone wrote about their intentions for it, too, as this self-hostable software that is supposed to be particularly designed for learning, I think, [INAUDIBLE] and stuff.<br/>
<br/>
<strong>glyph:</strong> OK, nice.<br/>
<br/>
<strong>max:</strong> But yeah, we're kind of gorilla occupying this big blue button instance at the moment. Because I haven't talked to the people at domainepublic.net. Alice just noticed that they had an open instance that you could sign up for. So we wanted to email them and confirm that they were OK with us using their instance for our class, which seemed like good etiquette. Rather than just arriving like I just noticed you had a yard where some stuff was happening, and all of a sudden we just started teaching a 30 person class on it...<br/>
<br/>
<strong>glyph:</strong> Yeah, might be a breach of etiquette.<br/>
<br/>
<strong>max:</strong> So anyway, we started talking about your recent work with P2Panda, but then paused so that we could turn on recording. I would love to hear more about what's going on there and with libp2p. And maybe even just to introduce the project a little bit.<br/>
<br/>
<strong>glyph:</strong> Yeah, so hopefully I do it justice. I'm told P2Panda was born out of festival organization. I think that's what Sam and Andreas and their friends were involved in originally. They kind of have backgrounds as musicians and are quite active in the art space. So they wanted to be able to to organize festivals and build software to aid in that, like how do you share information relating to a festival and how do you allow participants to communicate with one another. And I think there may be some commercial offerings for that. But eventually that led to build P2Panda, which is a toolkit for building decentralized applications, and they've done their best to make it really flexible at the lower levels so that the sort of shape of the data for your application can be quite dynamic. It's not predefined by P2Panda software itself.<br/>
<br/>
They were funded by an NLNet grant. So it's Andreas and Sam and Vincent and I think Pete and Sophistica were all involved and maybe Aljoscha a little bit as well and now they've gotten a second NLnet grant to extend the work that they've done and part of that is networking and replication. So I was originally brought on board to write a connection manager. That was something that I'd voiced to Sam that I was interested in. We have a weekly, it's called a P4P meeting, like peer for peer, mumble call that we have every Monday, which is kind of like a, I guess, like a peer to peer coffee meeting -- it's kind of got that vibe of like sitting down with your friends to have some tea. So we chat a little bit about personal stuff. And then we share what we're working on at the moment.<br/>
<br/>
Gwill from EarthStar, is also a part of that. And I'd mentioned in those calls, like, Oh, I want to write a connection manager, like just for the sake of learning. And then it was also going to be applicable for solar, which is this scuttlebutt node that I've been contributing to. So that was sort of my entry to the project.<br/>
<br/>
And one of the cool things about the P2Panda team is they really put a big emphasis on research and reading and planning before any code is written. So we did quite a stack of reading in terms of what our options were for the networking layer. and libp2p was coming up in those conversations. It's kind of interesting because I think in some of the, like at least among some of the, what I call the scuttlebut crowd, maybe libp2p had this, I don't know, there's some like tension about it or animosity or dislike. And I think I'm missing some context to understand quite why that is. Maybe because of the association with protocol labs and IPFS. But the more research we did and the more folks we spoke with, we thought like actually this is a really good fit for what we're trying to build because libP2P has basically created this toolkit for the networking layer of peer-to-peer applications.<br/>
<br/>
Like ok, we realize that this is an inherently difficult thing. You have nodes with kind of different levels of connectivity, a lot of the nodes are behind NATs or firewalls. So there's some really smart engineers working on solutions to this for several years. And there are implementations in many languages. So we just thought, wow, this actually meets our needs and allows us to focus on other parts of the stack and other parts of the development process rather than having to rewrite everything from scratch ourselves. So yeah, that's what I've been working on -- getting the transport up and running and the connection layer done and then starting to work on the discovery layer. So we're using MDNS for example to do local peer discovery.<br/>
<br/>
<strong>max:</strong> What is MDNS?<br/>
<br/>
<strong>glyph:</strong> MDNS, yeah. So it's-- I think it's often used for like network attached devices like printers, for example, where they can advertise a service using UDP multicast, like just broadcasting on the local network. And then other devices can listen for those broadcasts and automatically discover the services on the network.<br/>
<br/>
<strong>max:</strong> Gotcha. I feel like that's a great overview. For me personally, I'm curious about the connection manager. That's a term that I don't really know what it means. So maybe we can make it a little more concrete. Like, is it sort of like, you have different devices or users that are running some type of peer-to-panda thing and you need to find each other and start communicating?<br/>
<br/>
<strong>glyph:</strong> Yeah, so the connection manager, so there's quite a spectrum of definitions. So what I think of is like a minimal connection manager. It comes before the kind of peer discovery stuff. So let's say you're using TCP as the kind of transport protocol to make connections between your node and another one or your application and another one. So you sort of have to manage the lifecycle of that connection. So you could imagine it going through various phases. Like, at first, maybe the connection is pending. You know, you're reaching out, trying to make the connection. And then it could fail, or you could have a connection established. And then when the connection's established, at one higher level, you want to be aware of, like, how many connections in total do we have established? Because you might be dialing multiple peers at the same time. And if you had lots of peers, you may end up with hundreds or even thousands of connections open. And that might swamp the resources of your device, or your computer. So that's part of the role of the connection manager is saying like, okay, let's set a maximum, maybe a maximum and a minimum limit on how many established connections we can have at one time. That's the sort of very core of it. Then you can extend that functionality a bit by saying, okay, maybe we wanna keep track of all the peers that we've tried to connect to. and we want to persist some state for each peer. So maybe I've tried to dial you five times in a row and it's failed every time. So I wanna keep track of how many failed attempts have there been, when was the last attempt? That kind of a thing. So that's sort of kind of separate from discovering peers because discovery has to do with, "What is your address? How do I find you?" And the connection manager is almost like a level below that.<br/>
<br/>
<strong>max:</strong> I'm getting a little bit confused about below or above. So it's like once you already know who the possible peers are, managing the connections with them?<br/>
<br/>
<strong>glyph:</strong> That's right, that's right.<br/>
<br/>
<strong>max:</strong> And then my next question there-- so probably then, if the connection manager is starting and stopping these connections, are those actually calls to libp2p functions? So are you working with libp2p as a tool that the connection manager uses?<br/>
<br/>
<strong>glyph:</strong> Yeah, that's right. So libp2p has the concept of a swarm, which is sort of, I guess, the network abstraction. So they give you tools whereby you can create a transport. So this is where you're defining what protocol you're using to make the connections in the first place. So that could just be simple TCP, for example, or for P2Panda, we're using Quic, which runs on top of UDP. So you could create a transport and configure a swarm. And then you start, you sort of, yeah, you start the swarm and that emits events. So you have this kind of event-driven model. And then you can act on any of those events which occur. So let's say one of the swarm events, if you're running the MDNS network protocol would be "peer discovered", or like "MDNS discovery". So a peer is discovered and it triggers this event. And then you can take some action, you could match on that event and say, "Okay, once we discover an MDNS peer, we want to dial them. We wanna try and make a connection." And then if that connection is established successfully, you can run other protocols on top of that. So that's where replication would come in, for example. Okay, once we have this connection established, then we can match on that event, and then we can start our replication protocol, which might be something just very straightforward, like, oh, I've got this information, and what have you got? Let's trade.<br/>
<br/>
<strong>max:</strong> Cool, I think I'm following. It's reminding me that I was reading the blog and research of Julia Evans in the past couple days. Have you seen her research before by any chance?<br/>
<br/>
<strong>glyph:</strong> Yeah, I have. Some of the zines I've taken a look at.<br/>
<br/>
<strong>max:</strong> Yeah, yeah, yeah, yeah, those ones. And I was learning a lot about networking and internet from reading the stuff, but sometimes it would kind of end up veering into like big tech scale level networking. And I was realizing there's a little bit of an interesting issue that like trying to figure out how much of our current tech stack works the way it does because it's something inherent about networking or does it work this way because this is how you need it to work when you have this centralized model where you have to serve millions of users from particular nodes. And then the degree to which I was wondering how much these networking primitives and tools were going to have to be reinvented or have new people working on them for the context, self-hosted software, peer-to-peer software. And that kind of sounds like that's a little bit what the work you're doing is with the libp2p stuff and even I guess peer-to-panda could also be understood that way too kind of.<br/>
<br/>
<strong>glyph:</strong> Yeah just trying to make it a bit easier. I mean I think because of the way the network is we have to add in all these things. if the internet were like one big local area network then we could just pull a whole lot of this stuff out, like we just wouldn't need it. So like one of the big issues that I mentioned earlier is nat traversal so when you're behind a home router or firewall and you're not able to make these direct kind of peer-to-peer connections through the internet. So then we have to come up with all these kind of fancy techniques for getting around that, and that often involves a sort of third peer, with a clear accessible IP address that can either act as kind of like a tunnel or a relay or it can help with some synchronization to create a direct connection.<br/>
<br/>
<strong>max:</strong> I'm glad you bring that up. I started talking about that a bit with Alex last time and he actually gave me the brief intro to hole punching but then was like, I'm not the person to talk to learn more about this. But I would be happy to talk more about it if you feel like there's more to explain or if you know good resources to point to for like actually learning about this stuff in detail and what's out there.<br/>
<br/>
<strong>glyph:</strong> Yeah I'm not sure I'm the right person either. I guess there are a ton, I think ton and stun are two, I forget what the acronyms stand for, but two protocols that are used for this. I could point to a project. I think like there's the hole punch or hole punch IO has maybe come out of the dat ecosystem. I think that's some of the folks who were involved with the dat ecosystem who are working on tools to make this easier. And then I think there are some papers out there on NAT reversal and then on libp2p there are there's something called AutoNAT which is one of their protocols for detecting whether or not your node is behind a NAT and then they have a circuit relay which is this kind of third node which can pass along messages and then they have something called direct connection upgrade through Relay, DC-UTR, which is another one of their protocols. In terms of the specifics of how it all works, I'm not well versed in that.<br/>
<br/>
<strong>max:</strong> Well, that's still some good leads. even just hearing that it relies on the third peer to help create a tunnel or some other way to get y'all connected. That makes sense. But yeah, at some point I would be curious to talk with someone or read something to maybe look through in more detail, at least some of the common ways that people go about that. Because I guess it comes up for me when we were talking about self-hosting, because we had to do port forwarding, which is basically one simple way that we make a local IP address accessible to the internet. But I guess it's more complicated when you're doing it with multiple peers and continually and stuff and not just one server.<br/>
<br/>
<strong>glyph:</strong> Yeah, I think that's why we sort of have this need for, I guess I think of it as a heterogeneous network where some peers do have kind of enhanced capabilities, or in the context of Scuttlebutt we had pubs and now kind of maybe more prevalent or certainly more popular in a contemporary sense in our root servers. You know some other node which has these additional features which can kind of bridge the gap as it were.<br/>
<br/>
<strong>max:</strong> That's a super interesting pattern you're observing kind of zoomed out across different protocols that there are these special actors in this heterogeneous network but that yeah the special actors don't need to have all the powers of the corporate centralized server model. They can maybe have lesser powers.<br/>
<br/>
<strong>glyph:</strong> Yeah, they could have a subset or what we're trying right now, we'll see how it works out with Aquadogo, which is the sort of the node of P2Panda, is to have switches for all these capabilities so that actually you're running the same node, you're running the same software, but with some configuration switches, you can say, OK, I would like this to run as a rendezvous server or a relay server so that we still have one piece of software which can adapt and be kind of plastic to meet the needs.<br/>
<br/>
==================<br/>
<br/>
II: Terrence Mckenna, "Find The Others", Network Weaving, The Standardization Of Time<br/>
<br/>
<strong>max:</strong> Totally. Is there more that you want to say about what's going on with Peer2Panda or potentially we could switch to talking about ScuttleButt a little bit??<br/>
<br/>
<strong>glyph:</strong> I think I'm good on Peter Panda for now. I guess I was trying to subtly or not to subtly communicate this by mentioning the P4P Mumble group, but that's part of the really interesting thing for me of how I got involved in the work of getting to to know people over years on Scuttlebutt and then being like, oh, like actually a bunch of us are working on projects with overlapping interests, even if we have slightly different goals, you know, we should really be talking to one another more often. And then through that kind of community that arose from that, that was how I had the opportunity to work on Peer2Panda. So it's just kind of like, yeah, speaking about patterns, like applying these same things to one's social life as well, and like bridging gaps between networks and different groups, and seeing the opportunities that come from developing that trust.<br/>
<br/>
<strong>max:</strong> thank for bringing up the social dimension of the open source and peer-to-peer world. I think of you as someone who is a really inspiring network weaver in terms of the way you've actively cultivated and maintained connections within projects, within Scuttlebutt like, but also between protocols. And it's cool that that is panning out with concrete effects for you, like this work with Peer2Panda. And also, like, going back to the way we met, the spell you cast by creating the SolarPunk.network, Scuttlebut Pub, I think was how we originally connected on Scuttlebutt.<br/>
<br/>
<strong>glyph:</strong> Hmm, yeah, thanks. Yeah, I guess it is. So I listened to a lot of Terrence McKenna recordings in my university years, like a lot. And one of the things that Terrence was famous for saying was "find the others". And when I heard that, I was like particularly interested in consciousness and psychedelics. And I didn't know many people who were interested in those things. So the internet gave me a way of reaching out and connecting and being part of forums and that kind of thing. And I can sort of apply the same thing to those of us who are interested in peer to peer and decentralized socio-technologies. Oftentimes we are the only ones in our physical vicinity. And so it's a case of like reaching out, trying to find those with similar interests and then trying to take it a step further 'cause it can be slightly lonely and isolated work. So trying to just lean on my sense of empathy and what others must be feeling and trying to create opportunities to work together and to share and just travel together.<br/>
<br/>
<strong>max:</strong> For some reason, when I think of this topic, I sometimes feel exhausted, but I haven't fully analyzed why. But there's almost this feeling of I would love to help weave multiple networks together. And I know that sometimes I do, do that just through existing in the world and my interests. But it also reminds me of when I was younger and I used to feel like I wanted to read all the books in the world and I would like freak myself out that that was never going to happen. And then I sometimes for some reason feel like the active maintenance of networks is<br/>
daunting to me.<br/>
<br/>
<strong>glyph:</strong> Yeah, it's a lot. It's a lot. And yeah, I guess it sort of comes and goes. So like there are times where maybe you are quite inspired by that and you have the capacity and energy and the timing is right and other times where it is daunting and a bit exhausting. I tend to think the sort of thing I have in my mind and I think it's something you're seeing or that you've seen through your travels and your experiences. It's something certainly that Luandro has spoken about. And Eric is the power of doing this kind of work in shared physical space. So like having a farm or a village or a place where people are doing this work on a continued basis, even if it's just one or two people. And then there are kind of waves of other people who come to join in and practice and learn together. I really think that's gonna lead to a flourishing peer-to-peer future. Yeah, I mean, we're all trying to build local first software. And that can be most powerful when it's kind of homegrown and meeting local needs, right in the context.<br/>
<br/>
<strong>max:</strong> Totally. And yeah, I guess I've also felt once you get this chance to meet and be in person, even for some short period of time, it then makes the network richer in its online form often too.<br/>
<br/>
<strong>glyph:</strong> Absolutely.<br/>
<br/>
<strong>max:</strong> Yeah, and I feel you about having different energy at times to you for this type of network weaving or cultivation. And it also reminds me that when, I guess ever since I left Instagram, I haven't deleted my account, but I don't use it so much. I noticed I don't manage to maintain connections with certain folks, but through Scuttlebutt and the Fediverse, there have been some digital connections that stayed, So I also do see the power of these networks for kind of like passively keeping connection alive. 'Cause like, yeah, maybe even if it's great, if you have the energy to organize in-person meetings or like this mumble call where you're really actively consciously getting people together, that's obviously like a really powerful way of keeping things alive. But when you don't have that energy and you're kind of more passively just like posting, that still can keep things alive. Or sometimes, yeah, you just see someone who you haven't thought about in a while post something and you're like, oh yeah, that person, you still feel like you're connected in some way.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. Yeah, I think at least in your kind of question prompts in the document you drew up, you spoke a little bit about biomimicry and observing non-human beings and processes and then applying those observations to one's life and one's work. And I think this quality of ebb and flow or like pulses and waves is something that I see in the world around me. Like there's nothing, there are no sort of constant outputs. And I think in contemporary times, and maybe it's a product of like capitalism and many parts of the world now having like always on internet always on electricity. it kind of creates the sort of pressure and it can be a little bit more difficult to time one's actions in a way that's sort of balanced and healthy because the capacity to connect is always there, right? Even if it's like making a post or liking someone's post. So it's a bit, I think of it as quite unnatural and I think it throws us out of balance in a lot of ways.<br/>
<br/>
<strong>max:</strong> that's really beautiful<br/>
<br/>
<strong>glyph:</strong> Like now in South Africa, well for at least a decade we've had power cuts and so on a daily basis where we have daylight hours anywhere between two and four hours of no electricity and That actually helps me be more balanced because it's like okay, it's 2 p.m. Power is going out What am I gonna do? I could read or I could wash dishes or I could go for a walk. It sort of breaks that unnatural cycle<br/>
<br/>
<strong>max:</strong> Yeah, I wonder how we can connect more with healthy timing? Yeah, because you're right that does seem like very much how all of nature works from the seasons to the day to life cycle evolution and it's pretty funny that yeah with 24/7 stuff we can get disconnected from that and get into sort of weird relationships with time.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. It's like the standardization of time. I guess maybe it's like a Cartesian thing of wanting to measure and divide everything neatly and then an hour is is sort of standardized. an hour is an hour. So then nine to five, Monday to Fridays, it's kind of easy to impose. And yeah, so that's what I think like, gardening, long bike rides, anything where you're sort of outside of that form of time and you can observe, like I say, like non-human processes and beings and just see what they're doing. And then you can learn from that. I know in Daoist philosophy, timing is a big, is quite an important point. Like sometimes timing is of primary importance and action is a secondary thing, then it's a case of like cultivating some kind of intuition for timing and when is the appropriate time because then the activation energy is that much lower. I kind of think of it like, I don't know if you're a surfer trying to catch a wave and if the wave is the swell is 100 meters away and you start frantically paddling, you're going to run out of energy by by the time it actually reaches you. And so by initiating your paddle at just the right time, you can catch the wave with the smallest amount of energy, and then from a third party perspective, it looks effortless. And that can be applied throughout life.<br/>
<br/>
<strong>max:</strong> This is making me think about my initial reaction to how to cultivate timing is just to sensitize the perception and to be in a place where we can notice things. Yeah, like your tips of gardening or getting out, but then for my own journey I was thinking about sobriety and other ways to just try to become more aware of what's happening. so that when you do have to do some swimming, hopefully you can do it at the right moment.<br/>
<br/>
<strong>glyph:</strong> Yeah, totally. And I guess part of that is guilt as well. Because this was something that I was thinking about a lot in years gone by. Like after my travels in South America and then when I was basically working for myself I didn't have any external time constraints, then it's like, gee, how do I organize my time? And there was this part of my mind that was highly critical and I would feel guilty about like, oh, it's 10 a.m. on a Tuesday and I'm not working, like I should be working, you know, I should be doing XYZ. And then again, observing the creatures around me, I was like, well, when the cheetah is like taking a nap under the tree, I don't think it's berating itself for not hunting. You know, it's not like gee I'm a terrible cheetah. I'm just laying around. I should be trying to catch some dinner, but I'm not I'm the worst. I don't think that happens somehow.<br/>
<br/>
<strong>max:</strong> that also makes me think of a chipmunk I was watching the other day that was just like going up and down some tree. This was kind of a reverse issue, but I was just like, what are you doing? (laughing) Like you just keep, like what are you looking for? You're so active. I assume he or she had some good reason for going up and down this tree, so frequently. Maybe not.<br/>
<br/>
<strong>glyph:</strong> maybe it just felt good.<br/>
<br/>
<strong>max:</strong> Yeah, yeah, he just needed to move around a bit. Well, I'm looking back at the notes now to see. It's good that we took a winding journey through it so that we could get to some good stuff even if we don't get to everything. Timing is interesting with planning software projects too. I was thinking about this with our work on PeachCloud, but like figuring out when is the right time to build on top of something, the timing of all the different Scuttlebutt components working together or not working together.<br/>
<br/>
<strong>glyph:</strong> absolutely. Yeah, that's an interesting lens to look at it with and again this kind of activation energy thing of like, okay, well if all the components are available then you can build something quite quickly and without having to put too much energy in. But if you're trying to build something when those other pieces are not Not ready then yeah, you can end up expending a lot of that extra energy It's difficuly, I think especially if you are creative in some capacity, or have something visionary in you, then sometimes you might enjoy that thrill of being on the edge, being like a front runner or something. And you're trying to sort of explore this possibility space that maybe is relatively, it's just not mapped out. You've got to go and check it out for yourself. And sometimes you can bring something back for the group from your adventures and say, "Okay, we learned something, we have something to share." Sometimes you're able to build something that really works and other times it might be relatively fruitful in terms of fulfilling your mission, but you gain other things in the process.<br/>
<br/>
<strong>max:</strong> Totally. And like you said about this, even getting into other protocols, I feel like when you're exploring that unknown territory and you're meeting the others who are also exploring that unknown territory. There's like something that's happening that goes beyond any fruits of one particular project or mission<br/>
<br/>
<strong>glyph:</strong> That's it totally yeah, so if you're able to take that holistic perspective which I mean for me it's not not always easy, But then there really are no failures in sense, if you are prioritizing community and sharing and fun and just the joy of discovery and creation, then if the product you were trying to build fails, it's just one more learning experience. I think if I were approaching software as a kind of venture capital funded startup and we were like, we just need to build this product and grow this thing as as quick as possible so we can be acquired and then we'll put our feet up. If that failed, it would be crushing, right? Because it would be like, "Oh, geez, we didn't get our goal and we didn't have much fun." We didn't enjoy each other, or any basic nice things about existing on this planet.<br/>
<br/>
<br/>
========================<br/>
<br/>
IV: Mycofiltration, Eco-Estates<br/>
<br/>
<strong>max:</strong> Do you still have a little energy? I was thinking it would be cool to talk about myco-filtration because I'd love to hear about that and I also thought maybe yeah it was a cool prompt to mention other solidarity infrastructure projects too -- those were two ones I was thinking about.<br/>
<br/>
<strong>glyph:</strong> Yeah, that's good. I've got energy, the morning for me. So I'm feeling good<br/>
<br/>
<strong>max:</strong> so do you want to talk a little bit about what's going on with the micro filtration?<br/>
<br/>
<strong>glyph:</strong> Yeah, so it hasn't really got past the kind of planning phase but Essentially right now I live in I guess it's called an eco village, but A friend of mine who lives here says it's really more akin to an eco-estate in terms of there's not a kind of community body that decides on who can buy in or not and there's no like community vetting process it's more like willing buyer willing seller in terms of the properties that are here in the village. But there is certainly a kind of more of a trend towards like living harmoniously with the surroundings, trying to leave a light impact. There's a lot of rainwater harvesting. There's some like solar for electricity generation, these kinds of things. And one of my neighbors, I think he has an engineering background, and he is putting together kind of like an artificial wetland installation for gray water filtering. And he's been doing the research on the plants of like, okay, which plants can we use to clean the water? And I think he'd read a little bit about using mycelium for this purpose and integrating it into a gray water filtration system. And that's something I'm quite interested in. So yeah, I've sort of looked at the site and what he's working with. I think there's a bit of a pause while he works on other aspects of his property. And then we would likely, because we're in quite a forested area, there's no lack of biomass. any kind of tree trimming that goes on which goes on frequently that generates a lot of material which can then be chipped so we have a lot of wood chips and so there's a species strypharia righosa annulata which is commonly known as king strypharia or wine cap which is particularly capable as a filtration mechanism because the mycelium exudes antimicrobial compounds which are able to control the population for example of E. coli so you could inoculate wood chips and have this myceliated wood chip bed which the water flows through and in the process of flowing through that water it is kind of cleaned in a sense that makes it healthier to flow out into the ecosystem or into the ground or towards the stream.<br/>
<br/>
<strong>max:</strong> When we talk about great water filtration does that so that means the water that's not drinking water that's come after we've used it from like showering or other things and when you're trying to filter it, is it to be drinkable again or just to return to the land?<br/>
<br/>
<strong>glyph:</strong> Yeah, in this case it's just to return to the land and your characterization is accurate. So dishwashing water, shower water, yeah those are the main things I guess, maybe from the laundry, clothes watching water. So yeah, then it's just a case of cleaning and filtering that water before it goes back to the land. You could do a, maybe if we were in an arid area and we were trying to recapture and cycle as much of our water as possible, then you could filter that grey water with the aim of having it be drinkable again at the end. But<br/>
that objective would influence your design choices. You'd have to do some extra steps, I think, to ensure that it was safe for drinking.<br/>
<br/>
<strong>max:</strong> And so you're more at a site survey stage and not at a stage of inoculating wood-chips<br/>
<br/>
<strong>glyph:</strong> That's right. Yeah, that's right. Just kind of, yeah, just observing the site, seeing what's going on, doing a little bit of research into best practices, and then the next steps would be contacting a local mycology supplier, and seeing first of all if they could cultivate the species we want on sawdust and then using that sawdust spawn to inoculate locally sourced woodchips probably in big plastic totes, like big containers at first just to have a contained environment for the mycelium to become acquainted with the types of wood that make up the woodchips here and to expand that mycelium from the sawdust onto a larger amount of biomass and then to inoculate the wood-chip bed with that.<br/>
<br/>
<strong>max:</strong> Cool. Well, I'm curious to hear in some time. Where it goes next.<br/>
<br/>
<strong>glyph:</strong> Yeah, I think it's probably the next on my list. Like, we're about to do a small oyster mushroom workshop, just kind of doing the classic cardboard and used coffee grounds thing. So I'm hoping that'll be a nice springboard for kind of like amplifying the interest which already exists in this place and passing on some knowledge and skills so that hopefully when I leave here there can be a continuation of cultivation efforts.<br/>
<br/>
<strong>max:</strong> How many people are around in this eco-state?<br/>
<br/>
<strong>glyph:</strong> Yeah, good question. So if I think of like households, there's probably 20 or 30 households I would say. And there are quite a few families with young children. So there's like a learning center that's been established nearby and there's probably a dozen children there. So yeah, maybe about 30 people, maybe a bit more.<br/>
<br/>
<strong>max:</strong> It seems like an interesting model and size of people to come together. enough to<br/>
have some unknowns to it, some town-like feelings, but not so much to be anonymous.<br/>
<br/>
<strong>glyph:</strong> Yeah, exactly. And I think that's kind of a place where a lot of the people who've moved here have moved from Cape Town and some of like the outlying areas of Cape Town. So they've sort of undergone this journey from the center of busy city or suburban life to more of the quieter suburbs and then they make the big jump out here which is more of a semi-rural place. Some cool stuff like just communal buying groups for example. Okay, someone says I'm going to do a big food order. Is anyone else interested? And I think those kind of slightly low stakes communal efforts are a nice stepping stone, like to build trust and practice working together. And that could lead to, I hope it would lead to bigger communal projects where there is more cultivation and emphasis on the commons and trying to break out of this kind of like privatized model of being<br/>
<br/>
<strong>max:</strong> So this is a random thought from my travels and spending time in rural areas. I guess before I was imagining rural and urban ways of life as more separate. And for some reason I've been having this perception recently that they're not really separate. They're like so entangled because mostly the rural areas are providing food to the cities. But also urban industry is often providing like phones and other forms of knowledge that go back to rural areas and they just feel like, just more connected to me than they did in the past. so it's cool hearing about like this pathway of a group of people from the city going to the suburbs and then to somewhere rural. I guess also this sharings comes from meeting some folks in more conservative rural areas where there's like among young people some like really genuine desire go to city and learn about the world or even like people where they aren't allowed to have independence or like certainly not queer people and there could be some kind of like cycle and return of like a movement of people wanting to go to the cities to like meet other people and learn new things but also maybe not wanting to stay there.<br/>
<br/>
<strong>glyph:</strong> Yeah, yeah, I think people, I think humans have always moved and certainly there are these flows of goods and people that kind of link these areas. I think in the South African context, there's a massive draw. Like the city holds a powerful draw and it's often around employment opportunities, education opportunities, which is, I think, quite common in a lot of parts of the world. But the city tends to have this kind of magnetism and if you are coming from a background of limited means, especially like limited financial resources, you can get stuck in the city. And yeah, I've met some people and heard some heartbreaking stories of people just really wanting to go back to their home village and be with their mom and their friends and family, but they're kind of stuck in this.<br/>
<br/>
<strong>max:</strong> They're stuck because they get a job in the city, but then they don't have the mobility to leave that job? Or something else?<br/>
<br/>
<strong>glyph:</strong> Yeah, or even sometimes not having a job and being stuck in the city, basically being stuck in poverty. Yeah, being a long way from home without the financial resources, without the stability of a set income, and then it's like, okay, well, my village is on the other the side of the country or my village is several countries away and just not having the means to make that journey. And there's also often the pressure of if you are the one who's leaving the rural area to go to the city, there are a lot of expectations on you. It's like an excitement. You're like, oh, you're going to the city, you're going to get a good job, like you're going to be making money, you're going to send some of that money back to us and help us, and if that works out then it's awesome and if it doesn't then I think it's just a lot of pressure.<br/>
<br/>
<strong>max:</strong> Totally. The thing about getting stuck resonates with me too for some people I've met too where they seem like they're almost living in a circumstance that no one would have chosen. But I guess that's what happens by circumstance. when plans change along the way. And then there's this interesting feeling of a second generation too where at some point that becomes home, even though it seems like it's not where one would have planned it.<br/>
<br/>
===================<br/>
<br/>
IV: Open Source Cooperatives, Freelancing, Income Sharing<br/>
<br/>
<strong>max:</strong> do you want to mention some references of other projects that inspire you when we're talking about solidarity infrastructure, stuff you're dreaming of or have been keeping an eye on?<br/>
<br/>
<strong>glyph:</strong> Yeah, I was thinking about this a little bit. Strangely, I don't have like a really long list. I think there is co-op cloud, like involving decentralized and KawaiiPunk and adyl. That's cool to see like a cooperative, you know, doing good work and trying to build things on a different model -- still run a business but with a different model where it's non-hierarchical and there's solidarity amongst the workers.<br/>
<br/>
I know @cblgh who you just interviewed the other day came up with a a nice idea for a mutual aid experiment amongst members of Merveilles, the Merveilles mastodon instance or Fediverse instance. So that hasn't quite gotten off the ground yet, but I'm interested to see how that works out.<br/>
<br/>
The idea there was like, okay, we already have open collective for the instance, what if we received contributions to that open collective? And during the court, we run the experiment for three months and any member of Merve can say, "I would like to participate as a recipient." And then at the end of the month, the total amount of donations would be divided equally between all those who said they'd like to participate as recipients and they receive that money. So it was just really straightforward. And I think it came out of the observation that many of the members of Merveilles, because the creative people made a music project or an art project, and they might have a Patreon account or a Koffei account or something like that where they are trying to receive support for their work. And CBLGH was like, Well, maybe we could utilize our kind of community reach to receive contributions for the collective. So I'm quite interested in like simple experiments like that. Just to almost create like a safe space to practice shared earning and different models of income. I know some years ago, I don't know if it's still active and I guess I won't name them but there were some friends of mine that I met through Scuttlebutt who had a kind of shared income system where I think there were maybe four or five of them where every month they would put their income into a pile into like a joint account and then draw a salary off that. So especially for freelancers, if you have a variable income, you're going to have some good months and some bad months. And this was an attempt to try to flatten that out and add a bit more security and knowledge of what will be coming in.<br/>
<br/>
<strong>max:</strong> Are you personally interested in participating in some of these shared schemes? you're kind of also in this open source freelancer route right now it seems like, just developing a network and finding different projects or do you have any dreams of changing how you work?<br/>
<br/>
glpyh: I'm really happy and I'd love to keep doing this. I've been very, very fortunate to be funded to work on open source peer-to-peer stuff for the last few years. So I guess part of my personal strategy and approach is to continue building relationships and friendships amongst those who are working in this kind of direction. And I'm really happy that this year I'm contributing to P2Panda. I'm going to be be contributing to Cabal, and then I'm doing some Scuttlebutt stuff, so that feels really good in terms of just having a little bit more resilience. But I would like to take that next step and do some kind of collective finance management sort of thing. I think in some sense, the relationships that I've been developing over these years and the work that I've been doing is building towards that because I think it is something that requires a lot of trust. But certainly it's also something that human people have been doing for a long, long time. There's all kinds of places around the world where there are like collective savings pools and different kinds of community finance structures. So I think that would help because that is the tricky thing with freelancing, is having that security or I've also heard it spoken about in terms of, especially if you're getting a lot of your income from grants, maybe halfway through a grant project and you're already having to think about grant applications for the future.<br/>
<br/>
<strong>max:</strong> This was a topic on Alex's mind as well.<br/>
<br/>
<strong>glyph:</strong> Nice. Yeah, I think Alex has thought quite a lot about this kind of thing and has some really good ideas.<br/>
<br/>
<strong>max:</strong> It's cool to hear and to imagine more ldecentralized or open source focused collaborative groups, whether autonomic or peer2panda. And yeah, I feel you too that the work you're doing already is maybe creating the groundwork that could blossom into that later.<br/>
<br/>
<strong>glyph:</strong> Yeah, I guess quite a few of us who work on peer-to-peer open source stuff, we're already used to having, well put it this way, we don't lead extravagant lives. like we're not driving fancy cars and living in expensive apartments and that kind of thing. I think generally fairly simple people in terms of our material needs and expenditure. So we're already used to living quite cheaply, but just that level of stability and security that comes with knowing like, okay, at the end of this month, I'm going to receive X amount and for the next 12 months that's going to be what's happening just to even things out a bit. But yeah, we'll see what the future holds.<br/>
<br/>
<strong>max:</strong> Well, I think this is good. won't go on forever and ever. I guess maybe this small question if there's any books, videos or references that you would like to share?<br/>
<br/>
<strong>glyph:</strong> I might have to come back to you on that one -- especially about technology stuff, I wouldn't call myself a fraud, but sometimes I feel like I know so little. And many of my inspirations come from other places. But yeah, let me think about this.<br/>
<br/>
<strong>max:</strong> Outside of technology is fine too. The inspirations could also be not directly related to technology.<br/>
<br/>
<strong>glyph:</strong> Well in that case I'd say read more mycology papers. Really dig deep into it, get outside of the human realm and learn about those things and then try to apply them to the human work you do.<br/>
<br/>
Thanks a lot for taking the time, I will end the recording, but that seems like a good note to end on. Cool, cool. Thank you very much. Thanks. Thanks.<br/>

64
index.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" type="image/png" href="/favicon.ico">
<title>Solidarity Infrastructure Interviews</title>
<link rel="stylesheet" href="https://server-friends-ring.glitch.me/onionring.css">
<link rel="stylesheet" href="/styles.css">
</head>
<body>
<main>
<h2> Solidarity Infrastructures Interviews </h2>
<figure class="main-figure">
<img class="main-img" src="/soli-infra-small.png" alt="drawing by alice yuan zhang">
<figcaption>drawing by alice yuan zhang</figcaption>
</figure>
<p>
This website contains two interviews which I conducted while
preparing for teaching <a href="https://sfpc.study/sessions/spring-23/solidarity-infra">Solidarity Infrastructures</a> at the <a href="https://sfpc.study">School For Poetic Computation</a> in the Spring of 2023.
</p>
<p>
I interviewed them both loosely about their work,
and then just rambling about different topics of mutual interest.
</p>
<p>
At some point I was thinking of doing a larger set of interviews,
but I found that interviewing is a lot more time-consuming than I imagined
&mdash; so it ended up just being two interviews for now, but thats also special in its own way.
<p>
I'm really inspired by both their work, their approaches to navigating
how to be a creative and ethical open source software developer during late stage capitalism,
and their kindness as friends and collaborators.
Without furter ado, the interviews are below:
</p>
<p>
<strong> Interviews </strong>
<ul>
<li> <a href="cblgh-html.html">@cblgh</a> </li>
<li> <a href="glyph.html">@glyph</a> </li>
</ul>
</p>
<br/>
<hr/>
<footer>
<p>
This micro-website is a part of the <a href="http://server-friends-ring.glitch.me/">server-friends!</a> web-ring, initiated by <a href="https://wangyifan.io/">Yifan</a>,
containing self-hosted websites by different participants of the Solidarity Infrastructures class.
</p>
<br/>
<div id='webring'>
<script type="text/javascript" src="http://server-friends-ring.glitch.me/onionring-variables.js"></script>
<!-- <script type="text/javascript" src="/onionring-variables.js"></script>-->
<script type="text/javascript" src="http://server-friends-ring.glitch.me/onionring-widget.js"></script>
<!-- <script type="text/javascript" src="/onionring-widget.js"></script>-->
</div>
</footer>
<br/><br/>
</main>
</body>
</html>

20
onionring-index.js Normal file
View File

@ -0,0 +1,20 @@
// onionring.js is made up of four files - onionring-widget.js, onionring-index.js (this one!), onionring-variables.js, and onionring.css
// it's licensed under the cooperative non-violent license (CNPL) v4+ (https://thufie.lain.haus/NPL.html)
// it was originally made by joey + mord of allium (蒜) house, last updated 2020-11-24
// === ONIONRING-INDEX ===
//this file builds the list of sites in the ring for displaying on your index page
var tag = document.getElementById('index');
regex = /^https:\/\/|\/$/g; //strips the https:// and trailing slash off the urls for aesthetic purposes
list = "";
for (i = 0; i < sites.length; i++) {
list += `<li><a href='${sites[i]}'>${sites[i].replace(regex, "")}</a></li>`;
}
tag.insertAdjacentHTML('afterbegin', `
<ul>
${list}
</ul>
`);

32
onionring-variables.js Normal file
View File

@ -0,0 +1,32 @@
// onionring.js is made up of four files - onionring-widget.js, onionring-index.js, onionring-variables.js (this one!), and onionring.css
// it's licensed under the cooperative non-violent license (CNPL) v4+ (https://thufie.lain.haus/NPL.html)
// it was originally made by joey + mord of allium (蒜) house, last updated 2020-11-24
// === ONIONRING-VARIABLES ===
//this file contains the stuff you edit to set up your specific webring
// === ONIONRING-VARIABLES ===
//this file contains the stuff you edit to set up your specific webring
//the full base URLs of all the sites in the ring
var sites = [
'https://example.com/',
'https://example.com/',
'http://interviews.commoninternet.net/',
'https://waachxwiiw.noho.st/blog/',
'https://outline.commoninternet.net/doc/helen-shewolfe-tseng-p0LJYHvxCW',
'https://internet-undercommons.nohost.me/site/our-server-friend/',
];
//the name of the ring
var ringName = 'server-friends!';
//should the widget include a link to an index page?
var useIndex = true;
//the full URL of the index page
var indexPage = 'https://server-friends-ring.glitch.me/';
//should the widget include a random button?
var useRandom = true;

72
onionring-widget.js Executable file
View File

@ -0,0 +1,72 @@
// onionring.js is made up of four files - onionring-widget.js (this one!), onionring-index.js, onionring-variables.js and onionring.css
// it's licensed under the cooperative non-violent license (CNPL) v4+ (https://thufie.lain.haus/NPL.html)
// it was originally made by joey + mord of allium (蒜) house, last updated 2020-11-24
// === ONIONRING-WIDGET ===
//this file contains the code which builds the widget shown on each page in the ring. ctrl+f 'EDIT THIS' if you're looking to change the actual html of the widget
var tag = document.getElementById(ringID); //find the widget on the page
thisSite = window.location.href; //get the url of the site we're currently on
thisIndex = null;
// go through the site list to see if this site is on it and find its position
for (i = 0; i < sites.length; i++) {
if (thisSite.startsWith(sites[i])) { //we use startswith so this will match any subdirectory, users can put the widget on multiple pages
thisIndex = i;
break; //when we've found the site, we don't need to search any more, so stop the loop
}
}
function randomSite() {
otherSites = sites.slice(); //create a copy of the sites list
otherSites.splice(thisIndex, 1); //remove the current site so we don't just land on it again
randomIndex = Math.floor(Math.random() * otherSites.length);
location.href = otherSites[randomIndex];
}
//if we didn't find the site in the list, the widget displays a warning instead
if (thisIndex == null) {
tag.insertAdjacentHTML('afterbegin', `
<table>
<tr>
<td>This site isn't part of the ${ringName} webring yet. You should talk to the manager to have your site added to the list!</td>
</tr>
</table>
`);
}
else {
//find the 'next' and 'previous' sites in the ring. this code looks complex
//because it's using a shorthand version of an if-else statement to make sure
//the first and last sites in the ring join together correctly
previousIndex = (thisIndex-1 < 0) ? sites.length-1 : thisIndex-1;
nextIndex = (thisIndex+1 >= sites.length) ? 0 : thisIndex+1;
indexText = ""
//if you've chosen to include an index, this builds the link to that
if (useIndex) {
indexText = `<a href='${indexPage}'>index</a> | `;
}
randomText = ""
//if you've chosen to include a random button, this builds the link that does that
if (useRandom) {
randomText = `<a href='javascript:void(0)' onclick='randomSite()'>random</a> | `;
}
//this is the code that displays the widget - EDIT THIS if you want to change the structure
tag.insertAdjacentHTML('afterbegin', `
<table>
<tr>
<td class='webring-prev'><a href='${sites[previousIndex]}'> previous</a></td>
<td class='webring-info'>This site is part of the ${ringName} webring</br>
<span class='webring-links'>
${randomText}
${indexText}
<a href='https://garlic.garden/onionring/'>what is this?</a></span></td>
<td class='webring-next'><a href='${sites[nextIndex]}'>next </a></td>
</tr>
</table>
`);
}

36
onionring.css Executable file
View File

@ -0,0 +1,36 @@
/* onionring.js is made up of four files - onionring-widget.js, onionring-index.js, onionring-variables.js and onionring.css (this one!)
// it's licensed under the cooperative non-violent license (CNPL) v4+ (https://thufie.lain.haus/NPL.html)
// it was originally made by joey + mord of allium () house, last updated 2020-10-24 */
/* === ONIONRING.CSS === */
/* this file affects the style of the widget. remember to replace all instances of #webring with whatever value you have for ringID in the onionring-widget.js file. make sure it still has the # at the front, though! probably easiest to use find+replace to do it */
#webring {
margin: 0 auto;
padding: 15px; /* creates some space around the widget */
}
#webring table {
background-color: #ffffff; /* makes the background pure white */
margin: 0 auto; /* centers the widget */
}
#webring table tr td {
padding: 15px; /* creates some space between the links and text inside the widget */
}
#webring .webring-prev {
text-align:right;
}
#webring .webring-info {
text-align:center;
}
#webring .webring-next {
text-align:left;
}
#webring .webring-links {
font-size:small;
}

BIN
onionring.zip Normal file

Binary file not shown.

1
push.sh Executable file
View File

@ -0,0 +1 @@
rsync -avWh -e "ssh -i ~/.ssh/do_rsa2" ~/computer/projects/solidarity-infrastructures/onion-ring/ root@147.182.177.135:/srv/interviews.commoninternet.net/

BIN
soli-infra-small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 KiB

BIN
soli-lichen.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 MiB

55
styles.css Normal file
View File

@ -0,0 +1,55 @@
.mp3-controller {
width: 100%;
max-width: 600px;
}
body {
font-family: "mono";
background-color: lightblue;
color: purple;
}
main {
max-width: 700px;
margin: auto;
line-height: 1.5;
text-align: justify;
padding: 15px;
}
.main-img {
width: 100%;
}
.main-figure {
max-width: 400px;
margin: auto;
margin-bottom: 50px;
}
figcaption {
color: gray;
text-align: center;
width: 100%;
margin-top: 5px;
margin-bottom: 25px;
font-family: "mono";
}
h2 {
width: 100%;
text-align: center;
margin-bottom: 30px;
}
footer {
margin-top: 20px;
margin-bottom: 20px;
}
a {
color: #8900ff;
text-decoration: none;
}
a:hover {
background-color: yellow;
}
.cryptpad-iframe {
width: 100%;
min-height: 80vh;
margin-bottom: 20px;
}