Discuss this episode in the Muse community
Follow @MuseAppHQ on Twitter
Show notes
00:00:00 - Speaker 1: What I think happened was that you got people who
knew how to bend and to mold computers and software in the same place as
people who were very efficient and effective and curious and playful
around things like design and getting things done, and had real needs,
right? And sort of that’s some biases there, I think is what drove Mac
OS to become such a successful platform.
00:00:29 - Speaker 2: Hello and welcome to Meta Muse. Use as a tool for
thought on iPad. This podcast isn’t about Muse product, it’s about
Muse’s company and the small team behind it. I’m Adam Wiggins here
with Mark McGranaghan. Hey, Adam. And joined today by Rasmus Anderson.
00:00:45 - Speaker 1: Hello, hello.
00:00:48 - Speaker 2: And Rasmus, I understand you’re an amateur
gardener.
00:00:51 - Speaker 1: Yeah, that wouldn’t be very far from a lie. I do
have a little front yard, tiny tiny one, and a tiny backyard, and it is
a constant fight with nature, but, you know, it’s kind of fun.
00:01:07 - Speaker 2: And I always find it funny, weeds are not
particularly a thing that there’s no like clear definition other than
just a plant that you don’t want to be growing there. So one man’s
weed is another person’s desired plant, is that about right?
00:01:22 - Speaker 1: I think that’s right, yeah. I mean, I grew up in
Sweden and I remember my parents playing this like really smart game on
me and my brother, where we would have these, they’re called mscruso,
which are kind of pretty, but they’re definitely weed. There’s these
beautiful kind of yellow flowers, and they can break through asphalt.
They’re like really strong growers. You know, and as a kid, you know,
parents would be like, hey, let’s do like an adventure thing, and like
you find all these in the yard, and like for each of them, we line them
up and count them and we would just like, Wow, this is cool. And we
would go and pick them and light them up.
And our parents would be like, you know, behind the corner, that would
be like, we totally fooled them.
So yeah, they' weeding as a kid without really knowing that I was doing
that.
00:02:07 - Speaker 2: Nice one. We lived on a farm just for a little
while, while my dad was stationed at a naval station that was kind of in
the boonies, you might say, and my mom was a pretty serious gardener
growing her own vegetables and fruits, and we had fruit trees and stuff
like that.
But I certainly remember that some things, the tomato plants grew fast
and easy. There was the watermelon plants that we got one summer with me
and my brother just ate watermelon and spit the seeds into a nearby
garden bed, and then there were some others that were endless
frustration for my mom trying to coax out of the ground.
So yeah, I think my strategy if I’m ever in the position of being a
yard owner, will be to just identify all of the hardiest plants that
grow, even if you don’t want them to, and just say these are what I’m
specifically cultivating.
00:02:51 - Speaker 1: I like this strategy. This someone once said this.
I’m sure that there are like children books and stuff written around
this. I’m not sure, but someone said this and I thought it was kind of
interesting that there’s a gardening approach to like steering a
system, right? And there’s sort of like more of the plan and design
approach to steering a system, meaning that if you have this sort of
like organic type of system, like a garden, right? Or maybe software.
It’s going to just keep changing, and the gardener’s approach is that
by doing something like Adam, what you were saying, you kind of identify
the things that you want to cultivate, and you give them a better
opportunities. And then you look at things like weed or things that you
want to move, and you sort of like give them worse opportunities, right?
You sort of steer the system like that and see where it goes, whereas
the I don’t know if there’s a better word for it, but the planning and
the signing of the system from scratch, you’re like constantly trying
to hope that it evolves in the direction you want to, which is, I think,
never really the case, right?
00:03:52 - Speaker 2: Yeah, I think that is I use gardening as a
metaphor often for those kinds of organic growth things for something
like a community where you just can’t directly direct what’s going to
happen, what you can do is encourage and nurture and create
opportunities, as you said, for the kinds of things you want to see and
and discourage the kinds of things you don’t want to see.
But that’s part of the joy maybe is you don’t know exactly how it’s
going to turn out. If you come at it from a kind of a builder, engineer,
architect perspective that I’m gonna plan down to every last little
detail in the blueprint, and then I’ll make reality match that exactly,
you’re likely to be frustrated and disappointed.
00:04:33 - Speaker 1: Yeah, that’s right. I think this somehow we just
kind of slipped into this, and that’s interesting in itself, but this
is kind of what I’m trying to do with my project Playbit.
See, we can get into it a little bit more in detail in a few minutes,
but I think that there’s this opportunity to encourage, sort of like a
different way of building software, not like radically different, but
sort of like somewhere in between big scale and tiny tiny scale
software, kind of like personal software.
But anyhow, I think that a cultural change, right? Sort of like creating
this garden where interesting like plants and stuff can grow to kind of
spin off this metaphor. It’s a really interesting idea, and that’s
sort of like the core of playbit. That is the idea around it. That’s
what I’m trying to do with it, rather than to build on a specific type
of technology. Now, software is like part of, you know, my strategy to
make the change happen, or at least I hope I can. But the goal of play
but this is sort of like cultural change or really like offering and,
you know, a different or a slightly different at least culture to
software building.
00:05:39 - Speaker 2: Culture is so important, certainly for programming
communities, but more broadly just creation of any end artifact comes
not just from the tools and the materials and the intentions of the
creators, but also this ineffable thing we call culture.
Yeah, well, I’m really excited to hear more about Playbit, which is a
brand new project you’re working on, just for the listener’s sake. It
would be great to briefly touch on your background.
You’ve got a very impressive resume fresh off of working at FIMA.
Before that you did Dropbox. You were early at Spotify, and just looking
down that list, you know, I find myself thinking, well, if you were an
investor, that would be pretty impressive, and I would assume you’re
just sort of leaving the things out that were misses. But as someone
that goes to work for companies, you don’t have the ability to do such
a portfolio strategy. I’m wondering if you feel like you have a
particular knack for spotting high potential companies early on, or is
it more a spot of luck or some combination?
00:06:35 - Speaker 1: That’s a good question. I think it’s probably
the latter. It’s a little bit of a combination.
Really, it’s this kind of idea of intuition, right? You have a lot of
experience. I do have quite a lot of experience at this point, and I
think that has put up these neurons in such a way that I have some sense
at least, at least within this particular kind of industry that I’m
in.
Someone was asking me this the other day actually, this little Twitter
like texting back and forth, but I think that there’s a couple of
things you can do that don’t require experience to build up intuition.
And one thing is just to like really understand what you like to do,
right? And so this is not specifically around, you know, successful
technology companies, but I think it’s like a foundational sort of like
a cornerstone.
To being successful with like, really anything, is to understand like
what you really want, right? Not what your parents told you that you
should want, or not what like your peers tell you that you should want,
but what you really want. No, no, that’s really hard, and maybe that’s
the hardest thing in life actually to know what you really want.
00:07:37 - Speaker 2: I’ll echo that as well, which is for me, I had
this experience of growing up with video games and that being my
passion, and I was just convinced I would go into the game industry, and
that was my path, and I actually did that and then I was miserable and I
didn’t like it and I what on paper you might say, or hypothetically, I
thought I wanted to do in practice didn’t actually work for me. And
then when I had an opportunity to join a company. Making basically from
my perspective, pretty boring business software. I jumped into that and
discovered I loved it and I was much better at a thing that I loved to
do or fit with my natural passion somehow.
So I think it’s also a maybe coming back to our gardening metaphor, a
bit of a discovery and looking for opportunities and noticing what’s
growing, what’s sprouting really naturally, and then encouraging. that
rather than having some preconceived notion of what you think you should
do, which might come from parents, certainly could come from, you know,
the tech industry, which lionizes certain kinds of companies or certain
kinds of people and instead kind of paying attention to your own
internal compass for this is a thing that I could really see myself
spending every minute thinking about for the next 5 years, 10 years, or
career.
00:08:47 - Speaker 1: That’s just so interesting to hear you say that,
but you had that experience, which I think a lot of us have, right? If
we had this idea, maybe we want to be a chef or an astronaut, or, you
know, a fire person or whatever when we’re kids, right? And like most
of us end up not doing that, right? We end up doing something else. And
I think that happens a few times in life where, like you, you know, We
see this thing, it’s like very exciting, we pursue it, and then we
stumble upon something else, and that just, you know, we stumble upon
probably 100 different things, right? But one of those things where
like, whoa, damn, this is really fun, and this is really interesting.
Yeah, so getting back to your question a few minutes ago, I think that
if you have that sort of like cornerstone idea of the learning about
myself, it’s just something that I should always work on. Then on top
of that, I think what you can do is To try to learn about the people
that are working at various different companies or like looking for
passion in people, like finding out what incentives are driving them to
make a change. And with a change, I mean like a technology startup,
right, usually exists for one of two reasons, and the first reason is
that people want to make a change or want to see a change in the world,
right? It can be a very small scale, a very big scale.
And the second thing, I think that often you have these ulterior
motives, you have power, fortune, you know, impressing other people,
like all those things. There’s nothing bad about those things, right?
But they are usually then hidden away that there’s this facade of like,
no, we’re really trying to make a machine here with this YouTube for
cats or whatever. And really like someone just wanted to like build a
really cool thing so they can sell it and get rich, right? And again,
there’s no judgment here if that’s your thing, that’s cool, but
that’s not what I’m interested in.
So that’s one of the things that I tried to see and figure out and
really spend time on understanding when speaking with a company or a few
people who want to make a change, right? Like, are they driven by
passion for this change? Like, can they see this world and like, you
know, in 3 years, if we have this thing, and people are using it, like,
this is how their lives are different. This is how they can like do
things that they can’t do before. Like that’s the sort of thing. To me
it’s like, kind of rare. It might be surprisingly rare, actually, which
is kind of weird. And to find that out, I think the easiest way is just
to spend a little bit of time with a lot of different people. So if
you’re interviewing for a company, ask if you can spend a few hours
with 1 or 2 people on the team, rather than, can I spend half an hour
with like 10 different people.
00:11:20 - Speaker 2: Interesting. So it sounds like you’re, you know,
come back to that investor kind of analogy I made before where going to
work for a company, you’re investing your time rather than your money,
which in many ways is even a more scarce and valuable resource. You
think of it as less in terms of let me a value. I don’t know, the
market opportunity here, whether I think this has the potential to be
something good or big or what have you, and instead more is kind of
looking into the souls of the people who are working on it to understand
their motivation and their drive and their passion.
00:11:52 - Speaker 1: For sure, yeah. This is probably a cliche at this
point, but If you have a group of good people that you’re working on,
it’s not that important what you’re working on. Right, I think that’s
a very extreme way of looking at it. I think in reality it’s not as
clear cut as that. It’s not as true as that.
But I do think that it does hold true to some extent, right, that if you
flip it around, right, if you do some sort of kind of Greek philosophy
approach then, you know, you say sort of like, what if everything is
good, right? So you start out in like ideal scenario. So it’s every
person is amazing on the team. The business is doing great. The mission
is something that is so close to my heart, like, I’m just thinking
about it day and night, right? And so on.
And now you start like taking things away, right? You have this kind of
little thing in front of you, and now you start thinking that, OK,
let’s see if I take away the mission, right? And I have all the other
things still, like, does this feel like something I want to do for 4
years, right? Not in day, right? It’s like, oh maybe, you know, you
start taking things away, and I think If you start out in the ideal
case, right, you play these different stories out, and you take away the
group of people, right? So you replace that with like, people who you
would consider, like, not being good, right? Like, maybe they had a bad
influence on you, maybe they create a lot of stress for you, maybe
they’re just not good at the craft and so on, whatever that means to
you.
I think for most people, like, it stops pretty early in terms of like,
yeah, I would still do this. Like you would be like, well, you know.
With making such a big change, and I’m really involved emotionally in
this mission and everything, but like the people I work with are paying,
it’s like, I don’t wanna do that, right? Life is so tiny, it’s so
short, and you look back in the past and the things you remember, it’s
not the bugs you squashed in code or like the pixels you made. It’s
gonna be the people and like. The change that the company is trying to
make and the group of people are trying to make, I think it is very
important, right? And this is where it really loops back the first thing
that I was talking about a few minutes ago about like learning about
yourself and knowing yourself. I have a few friends who are very
concerned about the environment of Earth and stuff like that, and choose
to leave their traditional tech jobs to go work for, you know, uh
renewable energy companies and stuff like that. And for them, you know,
the mission is very important, right? And the people are very important.
So, I think you want to really like look at all of these different
things, like, a group of people who are amazing, who are very
unsuccessful at doing what they do, is not gonna be a fun experience
anyways, right? So yeah, I don’t think there’s a magic bullet,
there’s no sort of golden arrow or whatever metaphor here, but I think
one really good thing to look for is this sort of like passionate
people, and what drives them to make that change.
00:14:39 - Speaker 2: Yeah, I’m a fan of that. Seeking opportunities in
my own career and when I’m in the position of giving career advice to
others, I usually say something like optimize for the people, find the
team that you have that collaboration magic with, and that will be just
far greater return than the exact perfect mission. Um, I do think, you
know, those things related, probably because if you share values and you
share passions around a particular mission, that’s likely to be a team
that you work really well with. But yeah, given the choice between a
thing that’s slightly off from what I might actually be my ideal, the
perfect team, and the other way around, I always go for the team.
00:15:16 - Speaker 1: I’m curious here, Adam and Mark, how you’re
looking at this as well. You’re both experienced in the software
industry, yes I am, like, kind of flipping the question back to you.
What are some of the things you might do or look for in order to
understand if this, you know, company group of people are gonna be
successful. It’s just gonna be like a fun ride for me, so to speak.
00:15:38 - Speaker 2: Yeah, I’d love to hear from Mark on that since
he’s actually, now that I think of it, picked some pretty good ones,
including for Muse, he was at Stripe. And so, yeah, I guess I never
asked, did you see that as, oh, these guys are gonna be huge, I really
want to be on board early. My stock will be worth a lot, or was it more,
this is an interesting domain, and I want to work with these people who
knows the company will be successful, or that wasn’t part of your
calculation.
00:16:00 - Speaker 3: Yeah, it’s tough for me to give an answer to
that, because to my mind, there’s a lot of, you know, it, when you see
it, and to your point about having experience and neurons and pattern
matching.
I feel like I’ve been lucky enough to work in the industry for a while,
so I now I’m able to have perhaps some judgment of that.
I do think as a tactical matter, if people actually want to have a
better chance of working at a high potential company in the classic
sense, you can get a lot of information by asking people whose job it is
to know these things.
So, Investors and hiring managers will often have a lot of data about
companies that will do well. And then it kind of becomes like investors
will always say, oh, it’s, it’s actually not hard to pick the company,
it’s hard to get the deals. I think there’s a similar dynamic with
joining companies where often a big part of it is actually getting
hired.
But yeah, I think it’s a tactical matter, if you do ask around, you can
get a lot of good data points.
But I also have similar sentiment in terms of, at a more personal level,
what I look for in a company, and I would also say it’s about the
people and the mission.
And I always go back to this idea of You know, we don’t have a whole
lot of mortal life, and it would be a shame to spend the next 2 to 4
years of it working with people you didn’t care for. And when you say
it like that, oh wow, you know, really should, uh, make sure that the
people that you trust and look up to and want to become more alike,
because as you spend 124 years with this team, you are going to
basically become more like them. So is that something that you would be
proud and excited to do, or that you would be afraid and ashamed of?
00:17:18 - Speaker 2: There’s a great patio. I think it’s even in an
article writing about the culture at Stripe. He says, when you’re
choosing your colleagues, these are people you’re essentially giving
right access in your consciousness to. We don’t realize it, but just
the people you’re around all the time, you become like them, whether
you like it or not. So surround yourself with people you admire and you
want to become more like, and that will come true.
00:17:42 - Speaker 1: Absolutely, I really like that.
00:17:44 - Speaker 3: This also might connect a little bit to our topic
of playful software, because to my mind, one aspect of playfulness is
sort of undertaking the process and the work for its own sake, without a
lot of accountability to the end result and just kind of enjoying the
process, you know, doing it for the memes, if you will. And I feel like
you can only do that well if you actually really love what you’re
working on and the discipline, but I’m curious to hear Rasmus, what
your perspective on playful software is.
00:18:11 - Speaker 1: Well, I think for most people playful software,
the first that comes to mind is probably games, right? And games,
they’re sort of like almost the purest type of playful software. That
is their primary and often only goal, right? To just be playful, to just
entertain.
And so I think playful software that is not games have some amount of
that sort of like entertainment that, you know, a privy guest of yours
that Jason was saying sort of like fidget ability, you know, the idea
that There’s some quality to the software that makes you want to just
like, kind of toy around and play around with the software itself, not
to produce something necessarily, although that might be the main reason
for the software to exist. So I think if we’re looking for a definition
of playful software, it’s probably something in the realms of game like
entertainment like qualities that are kind of intertwined with some sort
of utility.
00:19:09 - Speaker 3: Yeah, this is really interesting, this nexus of
entertainment versus playfulness versus utility.
So I feel like actually there’s some relations certainly between
entertainment and playfulness, but I feel like they’re also somewhat
separable.
Like you can have a game where it’s sort of a mindless game where you
just plan to get really good at it, like a competitive game. And the
flip side, you can have playfulness that is more just about exploring
and seeing what you can do and what you can make and perhaps the stuff
in the middle, like Minecraft is kind of in the middle there, it’s both
entertaining and it’s playful, and I do think people tend to go towards
games, but I think there’s another important element around what we’re
calling playfulness that’s really important.
00:19:42 - Speaker 1: Yeah, that’s good points.
00:19:44 - Speaker 2: I’m suddenly reminded of a book by one of my
favorite authors, Virginia Postrell.
And in there is a chapter where it asks the question of what actually is
the difference between work and play. And it’s one of those things
where you go, oh well, it’s obvious, and then when you try to come up
with a definition like, well, you get paid to work and you don’t get
paid to play, and really quickly, especially if you’re someone that’s,
you know, in the tech industry, a designer, a developer, whatever, you
find yourself doing things that look very, very similar, maybe in your
free time that you do at your work, but it’s hard to pin down really
what the difference is and She ends up defining it exactly as you said
there, Mark, which is play is something that’s open ended, you don’t
have a specific goal in mind, you can start out with, I’m gonna paint
the painting of the sunset, and by the time you get to the end, you’ve
decided instead to fold the canvas into an origami. Swan and, you know,
you could do that if you want, whereas work you have this specific end
goal that you need to get to, often in a particular time frame, and even
if you find some interesting detour along the way, you kind of have to
ignore that because you have made this commitment to deliver some
specific result.
00:20:54 - Speaker 1: And I’d say that as a designer, like playing is
often a very important part of the understanding part of design, which I
think is like a really big chunk of design work, right? You know, you
have this opportunity or this kind of problem, like there’s something
you’re pursuing, right, with your design project and Before you can
make any decisions and any changes, right, in terms of like getting
closer to solving it or changing it, you have to understand it, right?
And so you take things apart, you put them back together, right? You’ll
learn about things as you take things apart, you’ll find new parts so
you didn’t see before, right? You’ll find new constraints of the
project, you’re like, oh shoot, oh I guess this material is different,
right? And so, I think, as you were saying, Adam, if you take a step
back and you think about like, well, this kind of looks like play,
doesn’t it? And I think in many ways it is straight up play. But it is
sort of a semi open ended, closed ended play, right? It’s sort of like
play for the purpose of learning. And I think this is where most of us
in the tech industry, like, Can relate to playfulness in like the way we
use software. So maybe on a weekend you’re like, oh, I’ve heard about
this new like rust thing. Maybe I should like take the first bit, right?
And you put together a whole world thing and you find a rust compiler
and you write some code and you’re like, oh, what is, why can’t I
borrow this thing, right, whatever. And the goal here, right, is play.
You might not call it play, but unless your goal is to actually like get
an output in the end or make a change or something like that, really
what you’re doing, right, is learning. And I think that is often the
reward, so to speak, the outcome. The product of play is to learn
something.
00:22:35 - Speaker 3: Absolutely. I think it’s a great point. And just
to reiterate, I think it’s really important to have this play access be
separate from work versus entertainment. So that is, you can play in a
domain that we typically think of as work, whether that’s design,
engineering. Another example that I might throw in there is Elon Musk
sending the roadster to space. It’s like, why are you doing that? I
don’t know, it’d be fun, I guess. That’s also in a very serious
domain where he is in fact learning a lot by undertaking that activity.
00:23:02 - Speaker 2: Also connects a bit to just our humanity, which
is, of course, we’re trying to achieve things, be productive in the
broad sense of the word, in our pursuits in our work life, but at the
same time, we’re all people, we like stuff that’s fun, we like stuff
that’s playful, and if you can find ways to do that, that fit in with
the work and fit in with accomplishing your ends, I think it makes it
more fun and engaging and enjoyable for everyone who’s involved.
00:23:31 - Speaker 1: Yeah, there’s something naturally even about play
for sure. We can’t imagine our like ancestors running around naked in
the woods with clubs, you know, kind of finding a pine cone or something
on the ground or a stick and be like, oh, this kind of looks like a
goat, you know, and you start playing with those things, and there’s
something I think is very interesting, like when I was a kid, so I grew
up in the countryside and Me and, you know, the other like 5 neighbors
or whatever, and the kids, we would, you know, go into the woods and
that’s how we would play, we, you know, build a little like imaginary
little airplanes out of a pine cone and stick through it and stuff like
that, right? And as a kid, you see a stick, and the stick is like
anything. It can be anything you want, it can be an airplane, it can be
a rocket, right? It can be a person, right? And as an adult we lose
that, and I don’t know why, but I see a stick today and I’m like, oh,
that’s a stick, right? And I’m like, damn it. You know, I wanna see
the stick and I wanna feel like, whoa, this could be a weird sort of
creature, you know, from a different planet that has like multiple
heads, that kind of looks like a stick, but it’s not a stick. At some
point I listened to someone who was trying to make a point of the
educational system, at least in sort of like most of the world. Takes in
one end of a machine, right? Imagine people walking in one end of the
machine and they come out in the other end and like, in the end you walk
in, there’s all these color and difference and, you know, different
voices and stuff. And the other end is like this marching uniformed
people, right? School kind of prints this pattern onto us, right? This
is real, that is not real. This is play, that is not play, this is
serious, right? And I’m not sure that’s like good for us, especially
not for people in sort of the creative industry. Which I think is like a
growing industry generally.
00:25:15 - Speaker 3: Yeah, I think that’s a great point. Another way
to articulate this might be as we get older and as we go through
institutional education, we tend to get annealed, that is kind of
solidified, optimized, focused, structured, and play in addition to a
way to learn, is a way to kind of foam roll your mind, you know, get
some plasticity, break up some connective tissue so you can think of
some new stuff. And so now that you make that point, I see that as a
second key outcome. You know, you learn some stuff and you have some
more flexibility in your head.
00:25:46 - Speaker 2: It also occurs to me that that means that play and
imagination have a strong relationship and maybe this, as you said
earlier, Erasmus, that like, when you talk about in design, play is very
important. You might even say, this isn’t quite solved yet, let me play
with it and try some stuff. And that’s connected to a little bit of an
open-ended divergent thinking, imagination, out of the box, you know,
looking at the stick and seeing the person of the rocket ship, and that
actually is what could potentially lead you to the more practical
breakthrough in doing your work.
00:26:17 - Speaker 1: It’s so true, so true, I think. If you think
about cool stuff that people have made, right, like art or tools or
anything, what have you, that you think it’s like, wow, this is
brilliant, you know, this is so fun, or this is really smart, whatever.
And you start digging into like the history of that in pretty much every
single case, you’ll find that it’s a remix of other things, right? And
so I think imagination and playfulness. is sort of like at least
partially a practice of just exploring things, right? It’s maybe
that’s a play part, right? You explore stuff, you see new things,
right? And then here comes the imagination part, which is like, oh, out
of all these different things, there’s like a new thing that can
emerge, right? Like the iPod is a remix of this like brawn handheld
radio, right? And then the iPhone is a remix of the iPod. You know,
those things are very obviously remixes, because they’re, you know,
visually very similar, but I think that there’s also conceptual
remixes, and there’s like straight up like the word I’m using a remix,
right, like from audio, there’s like, that is a very common practice.
00:27:24 - Speaker 3: This is also reminding me that there’s an
important element of intellectual humility in play.
So we said perhaps play is when you don’t have accountability for the
end work product, but wait a second, we’re in creative fields, our
entire purpose is to come up with novel ideas by definition.
You don’t know how to get to that work product yet. If you did, you
just go right there. So really it’s taking away some of your
constraints and preconceptions about what it takes to create a novel
work product and and exploring for a bit and saying, you know, press on
the other side, it’ll be clear that what you were calling play was in
fact work or fed into work, but you don’t know what that path is yet,
so who are you to say what is or isn’t gonna have a good result
eventually.
00:28:01 - Speaker 1: That is really interesting.
So Mark, what level of constraints, or what level of sort of like
boundaries do you think you need to define in order for that to not be
like this totally open ended sort of quick detour of what I’m talking
about is to make sure this makes sense.
So like, I’ve seen this happening a couple of times in tech companies
where you have a couple of interesting smart people who are playful, and
the company recognizes that, and it recognizes the value and innovation
and stuff, right? So they say, hey, you know, Lisa and Robin. Would you
be interested in sitting in this corner just coming up with crazy shit,
right? Maybe we’ll ship it. And I think in most cases that is like a
failure, right? That will come up with all these incredible stuff, but
there’s never any sort of traction around it. Maybe the constraints are
way too vague, similarly to an art class, you know, if you ask someone
to just paint anything they want, there’s just this paralysis, right,
of like where they even start. So within that framework, like looping
back to my question to you, Mark, what and how do you think about like
setting up the right amount of constraints to be able to play around
within there?
00:29:01 - Speaker 3: Yeah, that’s a great question. I I don’t think
there’s an easy answer, but One strategy that I like a lot is to follow
the energy. So if you’re undertaking this project, let’s say we’re
going to relax the constraint about classically measured business
output, but we’re gonna maintain the constraint around there needs to
be some energy here, which could be, you’re able to get other people
excited about it, you’re able to get customers excited about it,
you’re able to create something that’s aesthetically interesting. That
to me is an important Source of energy.
And so we’re not gonna kind of constantly inorganically add energy to
the system. We’re gonna give you a little bit of spark and some initial
fuel, but then you need to build it up from there and kind of find your
own path.
But you’re free to not go directly to this end destination. It could be
that you go through basically an art project, or a recruiting project or
a publication project, and then you go from there.
That helps a lot with kind of the mechanics of keeping the project going
but again people are living their short moral lives and not gonna want
to work on something that doesn’t have a lot of energy on it. So as you
have more success, you tend to attract more people and it goes from
there.
00:29:59 - Speaker 1: So energy that makes a lot of sense, kind of sense
of urgency in different words, the sort of like things are happening. Do
you think that Results or milestones, or even just celebrating like
discrete moments of success or progress are important as well.
00:30:15 - Speaker 3: So this is a classic atomism back from the Hiroki
days to make it real. We can link to the full list of atomisms. But
it’s this idea of, even if it’s just a prototype or even a CLI session
mockup, something that makes it real and makes it concrete for people,
really helps people understand what it is and again build that energy. I
also, I mentioned it briefly, but I think this idea of aesthetics is
really important. There are good threads to pull when you have an idea
that’s aesthetically exciting or appealing. That’s the way that I
often draw energy on projects, even like programming type projects.
00:30:45 - Speaker 1: There’s this thing I’m thinking about now, which
is And this varies in different parts of the world, but I think the same
thing is sort of the financial thing is true.
Like, you look at a particular industry, like hairdressers, right, or
pizza joints, and you look at like the topography and the colors and
sort of like styling they put on their storefronts.
And there seems to be these sort of like pretty tight clusters of style,
right? You’re like, why are all the pizza joints in this town using
hobo for the typeface, right? It will be so much more interesting if
like someone used copper Gothic, you know, or comic sense or any of the
other sort of, you know, funky typefaces or something, you know, stern
like Helvetica.
And I think what’s going on is this recognition or this thing to like
make it real, right? Imagine that we were starting a pizza joint, right?
And we have ambition, right? We want this to be like the freaking best
pizza in our town, right? So, you know, we look at other pizza places,
and we have this intuition that we talked about before, right? Of what
is like a real pizza place, right? We have our heroes, right? And
chances are that they use hobo, right? We might not be aware of this,
this might be unconscious.
So we go to, you know, our local printing press who make a sign for us,
and they show us, you know, a bunch of different typefaces, they have an
option, and we see the hobo one and we’re like, oh, that just feels
right, you know. So you go with that and you reinforce this idea at a
real pizza place to use hobo for a typeface.
And so I think this connects directly to what we’re talking about with
a static being important and to make it real and a good atimus, which
I’m gonna start saying now, by the way, so you’re all kind of wow, is
that same thing, right? Let’s say you’re building like a MacOS app.
And you have this idea for it.
If you create a design, just a picture, that’s like a fake screenshot
that looks real, I think that there is a similar quality to that pizza
you want.
People are gonna look at it and they’re gonna feel like, oh damn, this
can be real, you know, we can make this happen. That looks like a real
thing. I didn’t think of that, right? So yeah, I think aesthetics and
presentation, and that mapping that to like your heroes and your
ambitions, I think it’s super important for people to feel that this is
possible, you know, and to drive the energy you were talking about,
Mark.
00:32:58 - Speaker 3: This reminds me of another quick story here of
kind of aesthetic and emotionally driven play session.
A long time ago at Hiroku, we had an issue with the command line client
being very slow, and I was very frustrated with it, and I wanted to have
a faster client.
So I undertook this playful project of just trying to make a very fast
Hoku client that kind of only does Hello World, like it just lists your
apps, but does it fast.
And that ended up not really going anywhere, but by undertaking that
project, I discovered Go, and then eventually will go by example, and
now we use Go for some of our server stuff, and that’s a whole world
that I never would have been introduced to if I hadn’t just kind of
followed my nose up. It would be cool if even with relaxing the
constraint that eventually needs to shift to production.
00:33:36 - Speaker 1: Wait, are you behind Gobi sample? Oh yeah, man, I
love that. Oh, that’s funny. Oh, that’s brilliant. Yeah. Oh, that’s
fantastic, yeah.
00:33:44 - Speaker 2: Yeah, we actually use this as a bit of, I think of
it as the mark publishing style, which is static HTML, maybe a little
bit of, I don’t know, did you even have some kind of like template or
build script for the basic site, but otherwise it’s this very almost I
call brutalist HTML but a very effective design in the sense that it has
the side by side code and description, if I’m remembering correctly.
And yeah, it’s this very kind of sleek, it loads fast because it’s a
static site, it probably still works fine now with zero maintenance, and
we were certainly inspired by that, both for the you can switch articles
and later all the muse stuff. I’m just basically seeing the way that
Mark does kind of HTML publishing of these essentially kind of a mini
book on the web, was very influential for me and everything I’ve done
subsequently.
00:34:35 - Speaker 1: Hm. In an interesting way, I think go by example
is playful, right? It seems to be very uniform, right? And I think that
uniformity creates this, rather than create, I think it removes some
anxiety around navigation.
A lot of the web, I think, has this problem of creating anxiety around
like, The user interface because everything is different, right? It’s
like you you jumping between different planets. Anyhow, I think what
makes go by example playful is that I’m guessing here and I’m
extrapolating mostly from my own experience with using it. Like, when
you’re in the mode of using it or visiting it, you are exploring,
right? Otherwise you probably wouldn’t be visiting it, or you are there
for entertainment, right, which is kind of playful too, as we talked
about. So I think that there’s this category of things that They look
and smell like pure utilities. They’re very uniform, they might seem
boring, but they really are these like enablers or pieces of a puzzle
for playfulness.
00:35:29 - Speaker 3: Yeah, and I also think that’s often an origin
story, so maybe we can use this as a way to learn more about your
project where, you know, one lens on these projects is, you know, it’s
a way to learn a programming language.
That doesn’t sound very interesting. But the other lens is it’s the
result of a path that someone walked down around the change they wanted
to see in the world.
So likewise for your project Playbi, you could describe it as someone’s
building a new operating system, another one of those, right? But
there’s much more to it in terms of where you’re coming from and why
you’re building this and how you’re approaching it. So maybe you can
tell us a little bit about Playbit.
00:35:59 - Speaker 1: Yeah, so this, like many things, there was no
eureka moments, which is interesting, I think you guys have talked about
that on the show previously.
The slow hunch, the slow hunch, yeah, exactly.
So this very much is what happened with Playbit. So for years and years,
probably over 10 years, you know, I’ve been interested in operating
systems and systems. This is one of these things that I’ve learned
about myself that what I find really fun and exciting to work on in
terms of software are things that enable a lot of people to make things
with them, right? So tools, in other words, I mean, you guys are there
with me. And so I started thinking about MacO 9, it’s so tight, you
know, it’s so nice. Windows 2000 came around, I was like, wow, it’s so
snappy. Anyhow, fast forwarding a little bit.
MacOS 10, I think is just like this wonderful amazing operating system.
And this very interesting point in time in 2001 or 2002 or so, when Mac
was 10.1 or so is the first kind of usable version of it, started
getting some traction.
I think what happened was that this is probably mostly accidental, but
You got these people who were really interested in kind of moldable,
malleable software and like poking at things, hacking at things, and
they were using BSD and Linux and stuff, right? And they had to give up
a good user experience and sure people have different opinions about
this, but this is my opinion.
00:37:19 - Speaker 2: I was a Linux on the desktop user for many years
and Many things I really loved about it, but I do not miss fighting with
getting the Wi Fi chip working or wake from sleep or editing. I spent so
many hours of my life editing XOg.com trying to get the resolution to
match the refresh rate of my monitor or whatever. And that’s the kind
of pain you’re willing to go through for this hackable interface. And
yet, my experience was the same. I landed on Mac OS eventually because
it gave me so much of that Unix underpinning that’s very kind of
powerful and moldable uh with also good hardware integration.
00:37:57 - Speaker 1: Yeah, I think that’s right, that Linux
traditionally and still today at least the Linux kernel is most
distributions, right, is configuration over convention, whereas Mark,
you were talking about Go briefly and Go is sort of like the opposite of
that.
I’m, I’m a huge fan of Go, like the way it’s designed as a
programming language too, but in particular the way it went about the
design, where it’s convention over configuration, and we can talk more
about that later. But I think what happened was that you have that one
part, right, of people who are really interested like you had um of the
moldability of software and like the ability to fully customize your
computing experience. And then on the other hand, you have people who
want to use a computer and be efficient as users of a computer, right?
And before MacOS 10, I think you had to make a choice. You had to say,
I’m gonna use Windows or Mac OS 9. I’m not gonna be able to do this
like multiple hackable stuff. I can do some basic programming or
whatever, or I’m gonna do that stuff, but I’m gonna live with all this
pain, right? And that quiz 10 came around and it’s like, hey, you know
what, you can have both, right? And so, what I think happened was that
you got people who knew how to bend and to mold computers and software
in the same place as people who were very efficient and effective, and
curious and playful around things like design and getting things done,
and had real needs, right? And sort of that’s some biases there, I
think is what drove Mac OS to become such a successful platform in terms
of application quality, right? You just go and look at evidence of this,
right? You go and look at a lot of web apps that are trying to mimic
desktop apps. In most cases you will find them using metaphors and
sometimes even a statics from Macan. It’s pretty rare that you find
these things that are in the absence of a native host to mimic Windows,
right? Anyhow, so that happened. I think that was very interesting.
It’s clear to me now that that is a slowly dying thing, right? Macco is
10:15, you can’t use the VM Nets thing unless you have a special signed
certificate from Apple that you can. To get if you’re like become a
partner with them, right? You actually cannot run it, even as the owner
of the computer, you cannot use it, right? Sure, you can be roots,
right? You can pseudo and use it, whatever, but you can’t make any apps
using it. And Mac OS 11, takes that to the next step, right? And that’s
fine. Anyhow.
So, in the context of all of these things, I think that there is going
to be a need, right, in terms of like allowing people to keep being
playful and exploring. Software at this sort of like more, I own a
desktop computer. I want to be able to like do crazy shit with it, even
if that means breaking it, right? And so I started thinking a few years
ago, I was saying to myself that I’m gonna put a bet that in the next
10 years, there’s not gonna be a Mac OS 10 more, and Apple is just
gonna be about iOS. And I think that’s, I’m still believing that. And
what then, right? Is there gonna be sort of a Linux based desktop thing
that emerges? Is Windows kind of like, finally. Start like a skunkworks
team somewhere. They’re just like, let’s throw out like 95% of all the
crap and build that. I don’t know. So I was like, should I try to do
something about this? It’s really hard to build a business, I think,
around the idea of an operating system, especially replacing Windows
MacOs, which are just so good, right? They’re just so good and asking
someone to just replace that with something is a big ask.
00:41:24 - Speaker 2: Well, maybe the way I would characterize it
actually is less about good or not and more just the amount of stuff
that needs to go into what people would consider a modern operating
system today ranging from hardware support to networking to languages
and various kinds of input devices and so on and APIs and the ability to
run software and browse the web. and so on is just so huge that it is
not something that an individual or even a startup can easily
undertake.
Hence, it’s only within reach of these incumbents that have these large
existing platforms and the rare case of maybe something like Google and
ChromoS being able to come in and throw quite a lot of resources and
quite a lot of time at the problem.
00:42:09 - Speaker 1: But I think even in the case of Chromois, you
would end up in the same place, I think, right? You would have business
and money driving the main incentives, right, of like, well, if we make
this work for everyone and anyone, we can just make a ton of money and
then You have these competing incentives, and more importantly,
competing sort of like constraints on those, right? You’re gonna need
sandboxing, you’re gonna need all of these safety features, right?
You’re not gonna allow people to like mess around with the OS because
then most people are not gonna like know what they’re doing, right? And
so I think the only way to go about this is to not trying to build an
operating system or computing environment that fulfills all the
expectations we have.
But rather to just change our expectations or offer sort of like a,
imagine like a picture on the wall, right? It’s a big picture is very
complicated. And you’re very familiar with this picture, and now
you’re putting a smaller picture, a much simpler picture next to it on
the wall. And you say, you know, you can walk around, you can look at
the simple picture, still have this big picture. And I think like,
offering this idea of like, what if we shift our expectations a little
bit, right? Maybe we do that just in the mode of playful software.
So where Playbit started out was as more of an ambitious idea of an
actual operating system.
And ideas of, you know, I have like a GPU and stuff like that on a
remote computer and people has time shared this because GPUs, there’s a
kind of, I think a very important slightly concerning environmental
impact. And right now we’ve seen this with all the foundry issues,
right? And, you know, TSM and stuff like that, right? Like having issues
creating ships, right? Because rare earth’s limitations, and this is
mostly, you know, impacted by COVID and stuff like that, to my
understanding, but still, you buy like an Nvidia high-end GPU today, and
it’s very possible that a year from now, you’re gonna have to replace
it with a new one, right? Because that industry has moved so quickly.
And how often are you gonna use all that power, right? Probably not all
the time, right? You’re gonna use that in virt a little here and there.
So there’s this crazy shirt on hardware, especially if you’re in the
PC world, right? Macs tend to have a longer lifetime, I think.
And now I’m talking about like high end kind of high-end hardware. So
this is kind of where I started and I got a lot of feedback from a lot
of people who I was speaking with to try to understand, you know, and
try to navigate what this would mean, and if this was crazy, and I think
it was kind of like, it’s probably a little too early, and I think the
approach to making this kind of change needs to happen differently. And
so, through a pretty slow boil and slow process of just doing a lot of
iteration, what is playbit sort of like just came out of this. So the
very concretely, I think that Playbit is probably more similar to a web
browser or Flash, technologically speaking. And, you know, jump in here
if I’m taking this too far or there’s any curiosities to it, but I
think the web is successful for a couple of different reasons, right?
But one of the reasons is this uniform programming environment, this
uniform runtime environment. You know, if I make this little like web
program, right, and I tossed it over to you, you can use pretty much any
OS, any web browser, and I have a pretty good idea that C is gonna run
the same way for you. And this wasn’t always true. I think in the last
10 years this is kind of solidified to be like pretty much true. And I
think that’s really remarkable, right?
00:45:32 - Speaker 2: I’ll add on to that, that, yeah, not only does it
fulfill the right ones run anywhere, it was a dream of a lot of platform
technologies including Flash and Java and so on, but it does it in a way
that is sort of instantaneous to download and run.
And then, by far the most important part of it, I think, is the
sandboxing. It really gets that right. I can completely trust my program
to download a program from a website. A website is a program now, a very
sophisticated one potentially with all the JavaScript can do. And I can
trust that I can just point my browser to URL that I don’t know who’s
on the other side of that, and it will download and run that because the
sandboxing is essentially perfect within that tab. It can’t go out and
access the rest of my computing device. As far as I know, no other
computing environment has achieved that.
00:46:23 - Speaker 1: Well, I’d say the Flash did achieve that, and I
think that Flash was really brilliant in many different ways. The demise
of Flash, I think, has reasons that are really unrelated to its user
experience or development experience is mostly, you know, kind of a
monolith owned by a single corporation, right? But the model, yeah,
think about Flash or think about the web, I think it’s kind of the same
thing. That model is really interesting to me and I think the one. Piece
of the foundation for creating a culture where you feel empowered to
play around with software and to make little fun programs is some sort
of safety. And I think that’s what the sandbox does.
The good part of a sandbox that you’re talking about Adam is I’m never
writing perfect code, right? I’m gonna do something and I’m gonna run
it and maybe like delete all the things, right? If I run it on a
sandbox, it’s just gonna delete all the things in the sandbox, not, you
know, my passport from a Dropbox or something like that. So, I think
that’s the good part of the sandbox. The bad part, of course, is like,
when you want to do something interesting, like, let’s say you have a
photo sensor or something connected to a USB and you want to access
that, you can’t, and you’re be damn it. And that’s why you have to
jump out of if you’re like a web developer, you have to just be, well,
I can’t use web for, right? And then usually you’re outside of a
sandbox and there’s no sandbox.
And in the last couple of years, there’s been this kind of advancement
with virtualization, and virtualization sometimes is Mixed up or messed
up with like emulation or the idea of like a virtual machine, right?
It’s a virtual machine I would think of as a super set of emulation and
virtualization. So emulation, when you run a program like let’s say
like a Nintendo emulator, right? You have this program that appears to
have the original Nest CPU and did they have a co-processor, I can’t
remember. And DSP and all these like actual hardware things, right? So
the program inside that you load it up things that is running on this
hardware and stuff right there. Whereas virtualization is this idea of
running the program in a way so that it’s environment, not necessarily
it’s hardware, but it’s environment, appears to be that of a unique
computer, right? And this is kind of how AWS and Google Cloud and all
these things do it, right. And this has been around for quite a long
time, probably about 20 years or so as a concept, and probably in the
last 15 years it’s been increasingly like common to develop software
doing this. Docker is like a popular kind of virtualization environment,
right? And now you have these features built into Mac OS since 10.10.
You have built into in Windows 10 with Hyper-V, you have it built in in
Linux with KVM. And there’s similar things for a couple of other
operating systems, right? And this has happened in the last few years.
And so I was thinking that why not just make that the sandbox, right? So
like, instead of making the sandbox be this, you know, there’s a DOM,
right? And you have a JavaScript API and you have a fetch function, you
have an array type, and so on, right? That’s sort of like the uniform
runtime environment then, you know, you run that in Firefox or Chrome or
Safari, that’s just kind of called completely different code, right?
Implemented totally different ways, right? That’s sort of like the
uniformity. Like what if that’s just like Linux and then, you know. So
like when you run a program, instead of running it as JavaScript or
something like that, you just run it as whatever programming language
you want, you know, Mark can write in Go. And Adam, you can write in
Ruby, and it’s like totally fine, you can interoperate.
00:50:01 - Speaker 2: Part of the appeal there is something like Flash.
You have to use a very specific programming language and APIs through
for the web as well. JavaScript is not a language a lot of people love
and yet because you want to be on the web, you need to write things in
JavaScript and using the web APIs. And so it sounds like this
virtualization method lets you use more of the standard world of desktop
computing or server computing tools, uh, but with some of those same
benefits of the flash or web style sandbox.
00:50:32 - Speaker 1: Exactly. So you have the ability to think about it
as this portable little box, right? As a zip file or whatever kind of
metaphor you want to use. This little thing that you can copy, you can
send to a friend, you can put it on a server, then you can suspend, and
you can resume later.
That I think is a very powerful concept. Like the idea that I can open a
FIMA file or a notion document or something. And I can make some changes
to it, and I just close it, right? I toss it away. I evicted from my
computer, right? I clean up my work desk, and a week later I go back and
it’s retains most of its state, right? I can pick up where I left off.
Like, why can’t I have that on a lower level, like, in my experience on
the computer? Why can’t that be like below where the windows are? Why
is it just taps, right? Why is it not just entire apps or in my entire
desktop? What if I had like, you know, 4 buttons on the side of my
screen, right? And each button was like one of my different, this is not
what I’m built, by the way, but I think this would be fun to have. What
if, like, yeah, each button was mapped to one kind of VM in your
computer. When you push the button, it’s instantly, like a millisecond
swapped your entire computer to another one, then you have 4 computers
at the reach of like a thumb, right? Yeah, so I think there now is a
really good time to take this idea for a spin, and this is kind of like
the technical approach to Playbit, what it is as a piece of software.
And again, the goal of Playbit is not to build this piece of software.
The goal of Playbit is to create and encourage like the development of
small scale personal software. Maybe we can get into that more a little
bit later. So like, when I’m building it right now and what I’m trying
to get out in the next couple of months is kind of a Macintosh
application, and I’m sure I can make a Windows app and Linux up and
stuff.
So Macintosh application, you start it up, and what it does is that it
uses the the hypervisor of Mac OS and it boots up a Playbit OS which is
this kind of based on the Linux kernel. It takes like 2 seconds or so to
start it, and once it’s started inside there. You have this feature of
Linux called namespaces, which you can use to create these kind of
little isolated processes, right? So you can run a program and the
program thinks that it’s like ha ha, I’m the operating system, I have
all the power, and it kind of appears as that and it doesn’t have to be
bothered about it and stuff like that. And those would be the little
products that you would build and you would kind of play around with.
They can crash, they can write stuff to disk, they can mess with the
network. None of that is like leaking out to your real computer and not
even to like the playbi OS. So the manifestation of it in the first
attempt to creating a piece of software that encourages this playful
thing, is this very resumable, very sort of like, Kind of stop and go,
pick it up, leave it off type of software that you can play around with
like today, like on your computer. And the runtime environment that you
have is not the web platform, but it’s the Linux OS. So if you want to
write things in in JavaScript, you can do that, right? If you want to
write things and see, you can do that too. If you want interoperate
between these two different things, you can just like write shit to the
file system, right? You can use it as a database or you can build around
an actual database if you want to.
00:53:47 - Speaker 3: Yeah, one of the reasons I was intrigued by
Playbit is it seems to share this aesthetic I have around kind of
collapsing the stack down.
So I think it’s easiest to explain this in terms of its contrast. I
feel like there’s this pathology with modern software systems where we
keep adding layers and layers and layers, and that’s a few things.
First of all, it tends to make it slower cause you’re going through a
bunch of calls.
It also tends to reduce your ability to do things because in order to
have access to a feature as a programmer, that feature needs to thread
through all the layers. So if any layer happens to drop or corrupt a
feature, you’ve lost it.
This happens a lot with graphics APIs because the original middle layers
were designed for bitmaps, and then we changed it out to GPUs
underneath. But then the middle layers haven’t kind of fully caught up,
so you get this weird like impedance mismatch that means you don’t have
access to the full power of the GPU. Anyways.
And there’s also this element of you don’t understand what’s going
on, because you’re kind of just casting the stone into 19 layers.
Of libraries and, you know, who knows what it does, and that to me
really interferes with my ability to play because I don’t kind of know
what’s happening. I don’t have control over my environment.
And I like these platforms, these operating system ideas where you
squash that way down, you kind of start from scratch again.
OK, we got name spaces and we got the GPU. What can you do now? Well, it
turns out it’s a lot if you have a clean slate like that. I’m curious
if that aesthetic sense resonates with what you’re trying to do with
Playbit.
00:55:07 - Speaker 1: Oh, absolutely. It’s so fun to hear you talk
about this, Mark. Yeah, I think that this is very, very real, and it’s
something that I care a lot about. I was really early on working and
using like no JS and I thought that was very exciting.
And I think what ended up happening with MPM I think it’s still like
fantastic, you know, both a fantastic group of people and culture and
all of that stuff.
But by making it really easy to pile stuff on top of stuff, people are
gonna do that, path of least resistance, right? That’s why you have
like someone who says, oh, look at my web server, it’s just 12 lines of
code, wink wink, and the wink is like this package adjacent file that
says dependencies, long freaking list, and each of those have a long
freaking list of dependencies.
And it’s a quick deter to the sandbox thing that we were talking about,
like, isn’t it kind of bonkers that like, we don’t dare installing
this program on our computer and just run it because, you know, it might
just go and delete our hard drive, right? But we’re totally fine.
We’re just pulling in some like random ass like MPM packages, right?
One of those can just go and like delete your whole hard drive or upload
all of your contacts to some remote server, you wouldn’t know, right?
00:56:17 - Speaker 3: This reminds me of a funny, so I gotta mention
this, so an acquaintance back in San Francisco has the Ruby jam, I think
it’s called bundle, because there’s the jam for the actual package
manage for Ruby is called Bundler, or it’s 3 verse. It kind of doesn’t
matter. But he got the corresponding shortened or lengthened name by one
character, Bundle versus Bundler, and he very helpfully made the jam
redraft, download the proper package, but there’s nothing that would
have prevented someone like that from just saying, you know, I don’t
know, zip up your entire hard drive and send it to the cloud. And to
your point, there’s many such cases where we’re only one step away
from a disaster.
00:56:48 - Speaker 1: For sure, and in some way, it’s good that people
are so open with this and just be, you know, fuck it. I mean, I just
wanna get some stuff done, and I think that that is one of my drives for
wanting to make this change in the first place. I think software today
has just become so very complex.
00:57:03 - Speaker 3: And it’s also not clear what you would do with
the sandboxing. Like, I think the sandboxing problem is actually a huge
open problem.
We have pretty good technical solutions for sandboxing at the resources.
Hardware virtualization level. It’s not perfect, but you can kind of
control how much, you know, I owe and network and disk space the process
is used.
But if you think at the application layer, so say for example, you have
an application that needs to reach out to a few different domains for
network requests, how do you enforce a sandbox that’s like reach out to
the good domains, but don’t send my data to a bad domain. And what if
the data gets proxyed through a good domain to a bad domain? Like, it’s
very hard in practice to control these things. And so we’ve done a
combination of onerous review processes and punting it slash ignoring
it, and it’s not even clear there’s a better option. I think it’s
again, it’s an open research question.
00:57:50 - Speaker 1: See, the way I think about that is from the
operator’s perspective, the person’s perspective, right? So like
you’re sitting in front of a computer and I want you to be in full
control. I want you to be educated about the opportunities and dangers,
right, but I want you to be able to do anything. If you want to like,
put your computer on fire, you should be able to do that. I mean, you
pay your hard earned money for this computer, right? So why would it
like not like to do shit with it.
Now, if you start with that perspective, and you have some idea of
grouping, right, you know, a folder inside a folder kind of thing. If
you can say that like this subfolder has these little doors in it, has
this little openings in it, right? To the outside world. Yeah, then
you’re in control of saying this thing can do that thing, right? And
maybe for some people it’s gotta be like, you know, I’m gonna do
asterisk or Amir is gonna do Wildcard is it can do whatever he wants,
right? And it’s gonna go for it, right? And for some projects, that’s
what probably what you want.
With other things maybe you intend to share it with a couple of family
members who are not tech savvy. Maybe then you want to say this thing
should really only be able to connect to LOLcat.com or whatnot. Yeah. So
I think that they’re probably like. No solution that works in all
domains, but if you narrow down your domain, I think that there are some
viable solutions. This is the approach I’m taking. I can bring up an
example of what you can imagine. I have a little drawing in front of me
here as we’re kind of recording this. They are sort of played around
with. So imagine that you want to make a program that you collect all
your bookmarks together, right? Mhm. So you might create then a little
sandbox called my bookmarks, right? And now you create a second sandbox
called Safari Bookmarkscraper. In this sandbox, you just put this
program, it’s a really simple like, think of it as it’s rather than a
sandbox is a program, you call it Safari Bookmarkscraper. What it does
is it goes to Safari, like on your host file system. It reads the eS
file, it parses that, it removes duplicates, and then it just stores
those in a local file as local file system, right? And so in the
sandbox, you’re gonna say this is access to read this file on my host
computer, right? from the outside.
So imagine this little box, and you can zoom into the box, you’re
writing the code for your safari bookmark scraper, and you zoom out and
now you look at the box and you can now give it little connections,
right? So you draw a little thread to your safari bookmarks file on your
computer and say it’s got access to this. And the next thing you do is
you say this kind of exports, or I’m gonna mount this, again, this is
kind of termin but I’m going to mount this safari bookmark scraper. In
my play that environment and so my global thing as the safari bookmark
scraper. Now I do a similar thing. I build a similar thing for Twitter
bookmark scraper, you know, write a little program that goes to Twitter,
sets up a little API thing, it puts stuff on a disk. Again, I zoom out
and I say give this access to the Twitter website or API thing, mount
this at safari Bookmarkscraper. So what we have now, right, is these two
files, right? One is called Twitter bookmarks, the other one is called
Safari bookmarks. If we read from either of these two files, we get this
like really nice list of bookmarks, right? And these lists are really
created by these programs, right? At this point, we have this, we have
made this kind of abstraction, um, that chooses to use the file system.
And now we make a third sandbox and we call this my bookmarks, right?
And this program is gonna be really simple. This program just opens
those two files. It opens the Twitter bookmarks file, and it opens the
Safari bookmarks file, and it just sorts them together, and it draws a
simple little UI, right? And now, this is the one we use, and now, on a
day to day basis, we just look at this thing and we have a list of all
our different bookmarks from all our different places, right? I think if
you take this kind of nested approach where you can zoom out and you can
zoom in, and when you zoom out, you have the ability to say allow or
deny sort of thing, or and map names that make sense, right? So when you
zoom in, there’s gonna be some names that make sense within that
specific domain, right? If you’re working on this Twitter bookmark
scraper, there’s gonna be API key has a specific meaning in that
context, right? It’s the API key for Twitter, right? It’s not the API
key for this course or Facebook, right? It’s for Twitter. Well, when
you zoom out, you don’t care about the API key for Twitter, right? Now
you just care about the fact that you have these Twitter bookmarks.
01:02:27 - Speaker 3: It’s sort of like the practice of encapsulation
and programming, but for personal data instead of functions.
01:02:33 - Speaker 2: Yeah, well, another way to think of it is the two
big Kind of abstractions we have for managing the system resources and
all the things that are on your computer, including programs you want to
run and storage you want to access is classic desktop, Mac, Windows,
Linux, those that came before, which is essentially just totally open
access to any program you ever run. There’s the root user concept, but
that’s basically irrelevant because it’s just some system things that
don’t personally matter to me, and then everything else has total
access to everything. And then you have the mobile sandboxing
environments, which is a very strict sandboxing per app. Each little
tile on your home screen comes with its own storage, but except for some
extremely limited things, it can’t really reach outside of that very
easily. And so this seems like sort of a third model that gets some of
the benefits of that sandboxing, but also gets you some of the benefits
of the desktop ability, moldability, programming environments,
PlaySpace.
01:03:35 - Speaker 1: Hopefully, we’ll see, it’s still a work in
progress.
01:03:39 - Speaker 2: Erasmus earlier you mentioned sandboxing in the
context of a play space where I could feel comfortable just doing stuff
and I don’t need to worry about messing up the other programs and
within that space I can write a little program and I can just do
whatever.
And we were also talking a bit about things like the node ecosystem or
that sort of thing, and there you’re running software or libraries
written by other people and In that context, sandboxing has this
security protect you from bad actors sort of context, but it seems to me
that the goal of sandboxing as you’re talking about it within the
context of the playbit vision is really about this personal software and
about writing things for yourself rather than something that’s big
scale for, I don’t know, tens of thousands or millions of other people.
01:04:27 - Speaker 1: Yeah, I think that’s right. No matter how you
turn and twist on it, like what we’re talking about is like trust,
right, and safety, but it’s trust and safety for very different
purposes, right? And from and two very different types of actors. Like
if you’re building software like very large scale, and you do that in
such a way that you enable people to essentially run their own arbitrary
like programs in your thing, right? So when we worked the Sigma, for
instance, we built this plug-in feature where people can just write some
plug-ins that we just do things, right? And it would be shared with
other people, so we were like, well. We can’t just make this just run
straight into the app, right? If someone writes a bad for a loop
likeigMO will crash for everyone who visits this phone, right, runs the
fuck. So that type of sandboxing and that type of trust and security, I
think that’s lack of trust, right? You’re like, we cannot trust the
things coming in, and it’s a lot about safety and security. It’s like,
we’re gonna assume that the things coming in because we don’t trust it
are bad, right? So the sandboxing here is really the safety net to make
sure that shit outside is not gonna be affected. Whereas the type of
sandbox that we’ve been talking about mostly today is that it creates a
safety for yourself, like an emotional safety for you, right? That like,
well, I know I’m gonna screw up, right? I trust myself, but I also know
that I screw up sometimes, right? So, when you look at it that way, it
is indeed very different, I think.
01:05:54 - Speaker 2: And I think this, you know, smaller scale software
is also of great interest to me.
There’s sort of the end user programming angle that is writing stuff
for yourself, but even writing for a few people, friends and family, or
just a really niche piece of software, I think baked into the assumption
about almost all software development is big scale, and in fact it’s
almost when people talk about the economics of software, it’s the cost
of developing it, you can assume is zero, because that’s true when you
get to enough.
Users and customers, if you have many millions or tens of millions or
hundreds of millions of customers, the upfront developer time, which is
relatively fixed, you can think of as approaching zero, but that’s
quite different when you’re talking about 5 users because it’s
everyone in your family, or 1 user because it’s just you or 100 users
because it’s everyone in your company, and I’m really interested in
anything that kind of takes us in this direction of As Robin Sloan
writes in his article that I’ll link in the show notes, which is the
idea of apps as a home cooked meal and seeing a difference between the
kind of large scale food production versus just making something at home
for yourself or for a small circle.
01:07:04 - Speaker 1: Yeah, I think that is a really insightful and fun
article and idea that Robin is writing about.
And he actually touches a little bit on this, which is the writing
software today like has this really steep cliff, right? Meaning that you
have to make all these different choices if you’re gonna make something
today. If you, let’s say that you want to make this fun little thing
over a Sunday, you have a couple of hours, right? And I think that today
most people who don’t do this regularly, and I think that the people
who do it regularly will like stop doing it for these reasons, is that
you’ll be like, OK, you can stretch your knuckles a little bit, you’ll
be like, nice cup of tea or coffee, and you’re like, OK, I gotta make
this thing and I got several hours, so you start out and you’re gonna
be like, OK, should I make this like a web thing or should I like make
this a coke app or, you know, um a windows up or whatever, you’re sort
of like, hm, you do a little research and take a little while and
you’re like, well, maybe I should make this as like web app. And then
you’re like, OK, should I write this in, you know, JavaScript, or
should I maybe like write this in like this rust thing to web assembly?
Should I use like this typescript thing? OK, which like bundler should I
use? Roll up or this thing, which plug-in should I use? How to make
these MFs work, you know, like, before you know it, you’ve spent hours
just making these like choices that actually are not part of the essence
of what your Sunday project is about, right? And then you’re gonna be
like, well, which of these 100 different databases or ways to store data
am I gonna use? And they all have very compelling kind of marketing like
idea and like things like, when you read about these things, you’re
like, wow, every single project has these brilliant people behind them,
right? Every single project like has good reasons to exist, right? And
this does not make it easier, it just makes it harder to make a choice.
And I think what happens is that you end up spending most of your Sunday
you just like poking at different technologies. You just read about all
these different things, and you gain knowledge about, like, oh, I now
know that there’s CopaScript, JavaScript, TypeScript, and like, X
script, white script, and so on, right? And I know that there are these
different databases and my SQL is called Maria DB these days and stuff
like that. But you didn’t make your thing, right? If you want to learn
about those things, maybe you would have gone about it in a different
way. And I think there was a point in time when the choices were a lot
fewer, right? I’m not saying that’s better, it’s just different, but
for this scenario, it’s better. Like, you just end up making much fewer
choices, you get started earlier.
01:09:35 - Speaker 2: I’ve noticed that in many learned programming
type things, short term boot camps or online resources, they often end
up telling you to use.
What’s basically just a command line program written in something like
Python or Ruby and your interface is read and write, so you can type
stuff in on the keyboard and you print stuff out to a text console
that’s essentially identical to what I learned when I was doing
programming 30 years ago.
And maybe you’ve got some more sophisticated ways to execute that, like
repel it or something like that lets you run, essentially. This Python
kind of CLI type thing in your browser, but I think it’s for precisely
that reason that all those choices and options and infrastructure that
probably do make sense for large scale software just make no sense for
someone who wants to just quickly learn what is this programming thing
and how can I get to a satisfying result of writing my own program that
does something interesting.
01:10:34 - Speaker 3: Yeah, it’s kind of recapitulate.
I think there’s several things that conspire against the informal
novice personal programmer.
There’s all of the choices, there’s the complexity of the platforms,
and increasingly there’s the kind of forced hurdles of the platforms,
especially on mobile, where if you want to build an iOS app, for
example, I think you need like a developer account and you got to get
basically permission from Apple to run the stuff on your own devices,
and you got to use their language and their SDK and everything. And this
also relates to the idea of ideally having a gradual ramp. So I think
the Unix ecosystem for all its challenges is actually a really good
example of this. So you can start by just having a series of commands
that you kind of remember and you string together on the command line to
do whatever, you know, cat pipe, filter, you know, whatever you’re
trying to do. And then you can anneal that as a little script that you
save and give an execute a little bit to, and then you can eventually
perhaps it becomes more sophisticated and you rewrite it in Ruby, and
then later you want it to be fast, so you write it and see, and later it
becomes a bigger deal, so you want to put it in the package manager and
eventually gets promoted to the OS and enshrined in the standard, right?
And those are all on the same path and there’s a, there’s a clear step
from one to the other. Whereas in a lot of our systems, either there’s
a huge jump to get started or you hit a wall at some point and you have
to Kind of change the way you’re doing it. So there’s no gradual ramp.
And I think that’s important, not only because of the accessibility
element of perhaps you want to just get started programming or you want
to do some personal programming, but also because, again, this
intellectual humility element of it can’t be the case that all of the
good software ideas come from the programmer priest class, right? You
know, the people who know all the incantations for setting up weback or
whatever. It needs to be the case that you can write a mod and it
eventually becomes a huge game and the equivalent for other domains.
01:12:10 - Speaker 1: With the video games, I think this ramp you’re
talking about is pretty crucial to the experience, you experience,
right? If a game is incredibly hard on the first level, you just gonna
give up, right? And it’s not gonna be fun. If a game is like super
easy, right? Then similarly it’s gonna be in a place where, like, why
am I doing this, right? Like the perfect sort of like game has this like
flight of stairs where level one, you take a small step off the first
flight of the first stair, right, and you kind of feel, oh, I took a
step, right? And you know, there’s there’s so much art and magic to
like making a game that works well, right? But like, ideally you would
take these small small steps over and over and some steps are a little
higher, right? and some steps are a little lower. But the experience you
have there, and I think this kind of like compliments the way you’re
talking about Mark, which is, you were saying you pipe some stuff
together, you put it in a shell script, right? You make a Ruby file, you
make a C program, you make a real and so on. That is kind of utility and
that’s the ability to grow.
And I think to complement that, there’s also this user experience that
is important of like feeling that you’re making progress as you’re
building things, right? Because a big reason for why a lot of us are
making these things is because we enjoy it. And I don’t know about you,
but I don’t enjoy spending 3 hours picking like a JavaScript bundler
that can do the things I want and trying to like choose one of the 184
different services that AWS alone provides, right? Now, Google Cloud has
a similar number, right?
01:13:37 - Speaker 3: Yeah, and it’s also. Reminds me, and it’s one of
the reasons why I’m so excited about projects like yours, and I think
they’re so important.
Suppose we want to have new and different and better computing
platforms. Well, the reality is that if you want to build them outright,
it’s going to cost, I don’t know, at least $100 million and probably
a billion dollars plus, like just to get all of the engineer years, you
need to actually build everything up from scratch. It’s As an empirical
matter, it’s just a huge investment and unless you’re one of a small
handful of companies, you can’t do that outright. So you need a trick.
And I think the trick is making the programming game, you know, making
the programmers actually want to build up the pieces around the platform
over time. So you start with something that’s like a raspberry pie or a
playbi. It seems like a toy, it seems like something you just play with,
and perhaps over time you can build up more pieces and get a new
computing platform. That’s my hope that someday we’re able to get
there.
01:14:24 - Speaker 1: Yeah, I love that. It’s sort of like Dream, I
think it’s called for PlayStation 4, where you kind of build these
things, you share them with a shutter.
The web is very much like that, right? People kind of like building
things and remixing stuff.
There’s an article, it’s kind of old, it’s titled The Cathedral and
the Bazaar by this guy called Eric Raymond. Classic, and it’s kind of
like a a long piece, but I’m sure Adam, you can add it in the notes
link to it, but it kind of like reflects a little bit how the Linux
project. So this very unique approach to software development, where you
have essentially this guy in a bathrobe, you’re sort of like
coordinating some emails here and there, and then you have like 1000
people around the world, just building stuff, and this is the bizarre
metaphor. You have this babbling bazaar of just like, all these
different little vendors, right, all these different ideas, all these
little like things people are building for the Linux kernel. And somehow
you look at this and you’re like, this is never gonna work, right? This
is total chaos. The quality is gonna be shit, like it’s gonna be
incohesive, the cathedral model is much better, which is the kind of the
monolith the, the team with the leader and the sprints and all of that
stuff. Right? But somehow Linux is like by far, far, far, right? The
most high quality, most stable operating system in terms of global use,
right? It is easily the most deployed OS, right? Like every Android
phone, every server pretty much it’s all Linux. So I think it’s
interesting when you think about like, if you can create a culture that
is like a bazaar, that is a bazaar with like a theme, you know, like
people, the vendors in this bazaar, the people who go there to shop
around. To explore things, they’re they’re under this kind of shared
umbrella of like, you know, we’re gonna make software for each other,
you know, we’re gonna make this little program for me and my family,
right? Like Robin did. Or I just want to automate this thing that I do
all the time. I’m gonna make my own little note taking app, right?
Like, this is the sort of play the bazaarre that I hope can exist one
day, you know.
01:16:28 - Speaker 2: Well, we’ve been going a while. Before we wrap it
up, I thought it would be fun to hear from each of you what is an
example of software that exists today or that you’ve used in the past
that you find playful or exemplifying the spirit of play.
01:16:43 - Speaker 1: For me, I think there’s a lot, it’s it’s tough
to name one, but Macromedia director, or it’s called um oh gosh, I
forgot now. It was called something else before it was acquired by
Micromedia, but Micromedia director, I’m gonna call it that now. To me
that was just this incredible software that offered me to build
something that felt real.
It had a very narrow set of constraints. You had to write in this like,
actually pretty bad program language called Lingo. But it had all these
primitives and stuff for like making things that felt like real desktop
apps, and it didn’t in a pretty approachable way at the time. And so
for me, Macromedia director like it was a very interesting blend between
utility and playfulness that also really inspired me.
01:17:26 - Speaker 2: Nice one. Yeah, for me, I was recently thinking
about some of my youthful time with computers, and I’m kind of an 80s,
90s kid. And there’s lots of cool stuff going on then with the
demoscene and BBS culture and that sort of thing, but I spent a good bit
of time in these mod trackers, which are basically once computers could
play back samples and could play multiple samples at a time, you could
finally do something that resembled sort of real time music creation,
but it was still very limited.
But these things were kind of divided into 16 sections and kind of like
a drum machine, a little bit, but a little more, it created this
particular aesthetic of music, which also probably connected also to the
aesthetic of that time, yeah, again, like demoscene and and BBS World,
but I spent far too much time playing with them. on one hand, yeah, you
say it’s a tool for creating something, but on the other hand, it had a
not very serious sense to it because it was this specific computer scene
art. No one thought you were going to be composing an orchestral piece
that people took, let’s say seriously. It was clearly for fun.
01:18:37 - Speaker 1: When I lived this stuff called Mobilities. Clubs
that had all these nerds like myself perform these kind of mod music,
usually on like a modified Game Boy, and it would go on stage, and it
will make some little like cool like in air quotes kind of demo thing,
and it would kind of play on the Game Boy, you know, this kind of like
mud like bit like music and yeah, you’re totally right. I think like no
one there thought there was gonna be like, you know, the next Madonna or
Childish Gambino, whatever. Yeah, it was just like out of pure fun, you
know.
01:19:07 - Speaker 3: Yeah, and for me, I’m a huge fan of the raspberry
Pi project. I actually kind of surprised myself. I got one because
basically everyone else was getting them I’m like, Mark, you should get
one of these. I’m like, OK, and you know, they’re cheap, so they’re
accessible and didn’t expect you to be the type to bend a peer pressure
mark.
01:19:23 - Speaker 3: Yeah, yeah, I got it, and it, the amount of kind
of polish and accessibility was so impressive. You know, just having
this physical device that you can just start. Plugging stuff into and it
does things in the real world. That sounds so simple, but in all other
computing platforms that’s become so harder and indeed in many cases
impossible. And having this device you have full control over, you can
do whatever you want, you can reformat it, you can plug in all these
wild peripherals. That was very accessible yet empowering, and it gave
me a glimpse of what I think if you play it out a half dozen steps, that
type of platform could become.
01:19:54 - Speaker 1: I want to share this, by the way, I was playing
around with these flipped out this place. Oh yeah, yeah, I’ve seen
these. So, there’s a couple of Swedish friends of mine, they have this
small company called Teenage Engineering that it is really cool, like
audio equipment and stuff. And there’s some kind of contracting work
too. They did this like really huge display with these, they built
together hundreds of these into a massive display at a hotel in
Stockholm, and I got a couple of these things that I hook it up to a pie
and a real little, I had to reverse engineer protocol. So I bought these
from the company, it’s like a Polish company called Alpha Sea and the
Protocol was like really simple, but it’s kind of like serial port
thing.
But this is really fun, and I listened to what you say, Mark, about how
like physical it is, like the flipped out display is like in all senses,
terrible compared to anything else. It’s loud, it’s expensive, it’s
low rest, blah blah blah.
01:20:49 - Speaker 3: The loud is a feature though, the flippy sound,
it’s all about that.
01:20:55 - Speaker 2: Yeah, my experience with Raspberry Pi was similar.
Even the hello world, which is essentially just plugging in an LED and
getting it to light up.
Why is it that getting an LED you plugged in yourself to light up is
more satisfying than, for example, lighting up a pixel on a screen? I
don’t know, perhaps it’s that we spend so much time in the virtual
environments that being somehow out in the physical environment, but
then being able to access that through the power of computing and
programming is something quite magical to that. Well, let’s wrap it
there. Thanks everyone for listening. If you have feedback, write us on
Twitter at museAppHQ or via email, hello at museapp.com. You can help us
out by leaving a review on Apple Podcasts, and I’m really looking
forward to playing with Playbi. Thanks for coming on, Rasmus. Thank you.
See you both later.