Here we talk about the creation of open standards and open source, freely licensed reference implementations for safe, decentralized networked communities. A new social layer for the internet, with no gatekeepers - instead, people are in direct control of their identities and relationships.
Hi everyone, and welcome!
I’m Randy Farmer, cofounder and Executive Director of the institute. I’ll expand this post later with pointers to my 40+ years of work in online communities and platforms.
I’m so glad you’re here to help!
I am Douglas Crockford. My name is Douglas Crockford. I am my name.
I founded Electric Communities with Chip Morningstar and Randy Farmer (see above).
Hello! I’m Christine Lemmer-Webber, co-founder of the Spritely Institute (along with @frandallfarmer). I also am the founding developer of the Spritely open source project. Presently I’m most well known for my work co-authoring/co-editing the popular ActivityPub decentralized social networking system, which I am proud of, but I hope that Spritely grows even bigger.
A lot of threads lead to me starting Spritely after ActivityPub, but the main motivator was wanting to figure out how to solve what ActivityPub did not yet do. It’s convenient that @crock and @frandallfarmer introduced themselves already, because the work that came out of Electric Communities Habitat (especially the E programing language) directly painted the path that Spritely was to take to get us the rest of the way. Hence Randy and I connecting.
BTW I see that @jar is also on the forum now; I’ll pre-empt their introduction by mentioning that A Security Kernel Based on the Lambda Calculus (W7) was the paper that made me go “Oh my gosh… security can be as simple as ordinary reference-passing programming patterns? I can actually wrap my mind around this!” In many ways, Goblins can be seen as “E meets W7”. Mark Miller’s patient explainations helped fill in many of the pieces I was confused by so I could make it the rest of the way. Actually, same with so many people in the ocap community. I suppose I’ll leave people to do their own introductions and reply with hellos from there.
A side note: even well before ActivityPub, I co-ran MediaGoblin with @eximious; I was very proud of the community we formed together. The need for a federation solution for MediaGoblin lead to my ActivityPub standardization involvement (as well as Jessica Tallon’s). The choice of the name “Goblins” in Spritely Goblins is partly a nod to the continuation of that work, but also because goblins are small sprites who often do interesting things, alone or in sizable numbers.
Welcome @frandallfarmer! It’s great to be working with you, and thanks for all your work getting this forum up and running
Hi @crock, nice to have you here! Thanks for all your work on Electric Communities… without EC, Spritely wouldn’t have happened! I wouldn’t have figured it all out on my own if it weren’t for all the research that flowed from it!
I’m responsible for Zocalo, a Prediction Market toolkit.
I’ve been a fan of capability discipline for the clean approach to object-oriented design more than the security implications, but security has become crucial in the smart contracting context.
Welcome @hibbert! It’s nice to have Agoric friends showing up here, and thank you for being the first! I actually didn’t know about Zocalo… seems like an interesting project!
Re: capability discipline being a clean approach to “OO” design, I agree, or better yet, capability discipline is a great place to re-approach “objects”.
Speaking of, we will eventually have to tackle on here “what is an object anyway?” I still think JAR on Object-Oriented (thanks @jar!) is the best article I’ve seen. But maybe that warrants a new thread, actually!
Anyway, welcome again!
I’m much more ecumenical than JAR seems to expect of OO adherents. I learned OO in the Smalltalk group at PARC. While there was a particular approach embodied in the Smalltalk-80 system, the people who developed it had built a number of other systems with vastly different styles. They were also active participants in the early OO community (helping to start the OOPSLA conference, which accepted all approaches.) Randy Smith co-developed the Self language while at PARC, and that has a very different style.
One of the earliest papers at OOPSLA presented a taxonomy, which included all the concepts that JAR discusses. They all have their place in different systems.
For me, after encapsulation (which is probably the only core concept that is necessarily part of every OO variant) the most important aspect of OO is polymorphism, which means the client of an API can know what messages are allowed to be sent to an object, but can’t be certain about the implementation. Anytime we write code that queries an object’s type the object interface hasn’t been designed cleanly and thoroughly.
Edited to add
I wrote the above after reading only about the first half of the linked article. Below that Rees reports on an interaction where he softened and qualified the part I responded to and ended up closer to mine. Different combinations of OO features are useful in different situations.
I don’t think that OO is limited to meaning any one combination of features.
Hi all - right now I’m consulting for a couple of biodiversity projects but in the past I’ve been active in Scheme compiler development and what have come to be called object capabilities. I was also a W3C groupie a while.
I’m excited to be associated with Spritely, and am trying to understand how I can contribute.
We’ve also been having a lot of private ocap conversations we haven’t documented, but which have had a significant impact on Spritely. I’m excited to apply your thinking and knowledge towards building a better Spritely!
I wrote that little piece of email a long time ago, in anger. Haven’t read it since and I don’t know what I’d think about it now. It’s possible most of the usages of ‘OO’ have faded away and there is consensus now; things were very different in 1979. I continue to find the use of metaphors (like ‘object’) in software engineering to be not to my taste, but don’t have much of a stake.
I suppose the email was partly self-admonishment since for a while I was as guilty as anyone else of sowing terminological confusion.
Hi! I’m Jonathan Frederickson (jfred on IRC). I haven’t done much of note at this point re: object capabilities, but I’ve played with Spritely a decent amount and am eager to learn. Thanks for the invite!
@jfred Welcome! You were one of the first really serious testers of Goblins and definitely tried pushing it in ways I didn’t expect, which I was and am grateful for! Your thinking on ocaps has always been fresh feeling, so I’m excited to have you here!
I’m Jessica Tallon. I’m working on Spritely projects full time. Before that, you might know me because I worked on the ActivityPub spec with @cwebber.
Hello @tsyesika, welcome to the forum! And it’s nice to be working with you again
Two recent Spritely blogposts featuring Jessica btw, both worth reading:
I’m Alan Karp. I have a Ph.D. in astronomy and was an assistant professor of physics at Dartmouth before I went over to the dark side, spending the bulk of my career at IBM and HP, mostly in research roles. That background gives me a more enterprisey perspective than many of the capabilities people I know.
By 1990 I had gotten fed up with having to constantly be aware of the boundary between machines. Why can’t you access your stuff, no matter where that stuff is and no matter what device you’re using? I’m hoping I can incorporate some of that vision, which I’ve been calling The Global Computer, into the Spritely Project.
In 1996 that idea got funded by HP Labs as the Client Utility project, a P2P system designed to support a million machines (which sounded like a big number back then). All I knew about access control was ACLs, but an hour or two of thinking convinced me that approach would never scale. I put my feet up on my desk for a couple of days to think, something you can do when you have a research job, and reinvented capabilities. It turned out I reinvented them wrong, but the “wrong” had some interesting properties. Unfortunately, the Client Utility got hijacked into a B2B product called E-Speak. The good news was that it still used capabilities, just in the form of SPKI certificates.
Later, Marc Stiegler and I built a couple of interesting prototypes using Tyler Close’s waterken system. Working with Marc taught me a lot about how capabilities make it easier to build user experiences that are so natural that one of our users asked us how to turn on security. I’m hoping to bring some of what I learned to Spritely.
Hi! I’m Danny O’Brien. I grew up in the UK, where as a teenager in the mid-eighties I managed to talk my way into an account on the (arguably) first multi-user text adventure, Essex MUD1. A little bit later, and I was desperately attempting to learn everything I could about AMiX, and the community around it, out of excitement at the vision I’d seen, of a shared, participatory, composable environment.
Cut to the present, where having gone through various micro-careers in TV, journalism and, most persistently, in the non-profit space at the Committee to Protect Journalists and the Electronic Frontier Foundation, I find myself here, talking to the very people whose work I could only dimly perceive in the days when it was easier for a zine to cross the ocean than it was a set of bits.
My current role here, apart from official Spritely overenthusiast, is as part of my work as Senior Fellow for Decentralization at the Filecoin Foundation. We see object capabilities, and free software as vital elements in a secure, private, decentralized future, and Spritely as a demonstration platform and a harbinger for the opportunities those fundamental innovations will bring.
Alan, I’m sorry your invite was delayed, I had a typo in your email address - we’re excited to have have your experience helping with what we’re trying to do. The UI lessons you and Stiegler worked on will be invaluable in the work on the future capability based world!
Danny, it was amazing when I first learned that you were that guy that was phoning in to AMiX from England all those years ago. We’re going to lean on you and the Foundation heavily ramping this consortium up to scale.
Hi all, my name’s Dan Finlay.
I’m a co-founder of MetaMask, a cryptographic key manager that lets you interact with websites that can propose signatures and blockchain-based smart-contract transactions to the user, and has become synonymous with what is being called web3 these days.
I keep a lot of my thoughts related to how my work intersects with ocaps on my public Roam Research database capabul.
Through a desire to see more safe and scalable economics, I found myself trying to chew on what a truly decentralized organization looks like, where membership was totally fluid, but accountability was as optimal as possible. This line of thinking led me first to the concept of delegated lending known in economics as social collateral, and when trying to build an efficient computer system for digital social collateral, found myself basically reinventing the chained delegation messages that Christine and MarkM had called ocap-ld (now zcap-ld). Once I was introduced to that work, I fell down the ocap rabbit hole, and found that language-level is a great way to express these concepts (since informed consent depends on the readability of the system at some level, so you already need a readable layer).
Once I’d begun that rabbit hole, we began a number of ocap-related projects at MetaMask, largely in collaboration with Agoric and their SES/endo initiatives:
- An extensibility system for our wallet
- A build system (LavaMoat) for confining our dependencies: Still an ongoing project mostly by my co-founder Kumavis.
- A better set of principles for thinking about what a user might use to “connect to” an untrusted application.
Anyways, once your brain thinks in POLA and delegation, it seems like a very powerful mental model that gives us a common language for talking about some very important topics, so I’ve found that I now fall in pretty quickly with ocap-minded folks like the Spritely Institute! I love their designs and I hope deeply for them to succeed in all of their goals, and would eagerly interoperate with their systems.
A fun aside: I recently was going through a box of business cards and I found one from Alan Karp, where I’d made a note based on our conversation, which said “Says MetaMask will never work, he already solved this problem, look up ScoopFS”. I hadn’t remembered that, but I since had become a fan of his HP labs research, and have been recommending it to anyone on my team, including reading a Stiegler paper aloud on a brief Secure UI podcast I recorded.