Programming Throwdown - 132: Funding Open-Source Projects
Episode Date: April 25, 202200:00:15 Introduction00:01:24 Gaming setups00:12:25 News00:12:27 I was wrong, CRDTs are the future00:17:18 How we lost 54k Github stars00:21:10 DALL-E 00:25:45 Inside the Longest Atlassian O...utage of All Time00:35:11: Sponsor00:36:22 Book of the Show00:36:38 Indie Boardgame Designers Podcast00:37:24 The Laundry Files00:40:35 Tool of the Show00:40:39 Zapier00:42:21 Earthly00:46:46 Funding open-source projects01:19:44 How to get funding for open-source projects01:22:47 Farewells  Resources mentioned in this episode:Media:The King of Kong: A Fistful of Quarters (2017)Class Action Park (2020)Indie Boardgame Designers Podcast: https://indieboardgamedesigners.com/GitHub Stars Won’t Pay Your Rent: https://medium.com/@kitze/github-stars-wont-pay-your-rent-8b348e12baedNews:I Was Wrong, CRDTs Are The Future: https://josephg.com/blog/crdts-are-the-future/How We Lost 54k GitHub Stars: https://httpie.io/blog/stardustDALL-E: https://openai.com/blog/dall-e/Inside the Longest Atlassian Outage of All Time: https://newsletter.pragmaticengineer.com/p/scoop-atlassian?s=rBooks:Indie Board Game Designers PodcastThe Laundry Files: https://amzn.to/3kdWWQgTools:Zapier: https://zapier.com/N8n: https://n8n.io/Earthly: https://earthly.dev/Adam Gordon Bell:Twitter: https://twitter.com/adamgordonbellWebsite: https://adamgordonbell.com/LinkedIn: https://www.linkedin.com/in/adamgordonbell/CoRecursive: https://corecursive.com/  If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: programmingthrowdown@gmail.com You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
Transcript
Discussion (0)
programming throwdown episode 132 funding open source projects take it away jason
hey everybody so uh if that voice sounded different to you,
that's because we have Adam from Co-Recursive on the show.
So thanks so much, Adam, for coming on.
Thanks for having me.
I'm super excited.
Cool.
Yeah, Patrick is getting a tan.
He is on vacation.
And part of us wanting to do two shows a month
and trying to make the show more oriented or focused is trying to make
sure we actually put out that show and that content. We have a ton of stuff we want to talk
about. And so I think it's great that when one of us is out, instead of us just not, you know,
making that content and pushing everything back, that we find folks who are friends of ours, who
love podcasting and love tech to jump in. And so Adam's doing that for Patrick. So thank you
again, Adam, for coming on. Yeah, no problem. I'm excited. Anytime, by the way. Yeah. Cool.
We'll take you up on that. Yeah, I think I'm planning on being out in July. So we'll see how
that all goes. But cool. So yeah, I wanted to start by just jumping into gaming setups i recently redid the gaming
setup i had in my living room and i was pretty stoked about it you know i have i'm really big
into the whole emulator scene you know i worked on maim for a long time and all of that and so
i've always had a kind of special place in my heart for those like retro games like snes and n64 and all of
these things and so i have accumulated over the years like usb versions of all of these controllers
i don't know if they even had wireless when i started this collection but i just kind of stuck
with the whole wire thing and so i have you know those like big they call them fight sticks but
they're big it looks kind of like you took the the controller
part of an arcade cabinet and just ripped it out and just it's this big thing it's like it weighs
it has a weight in it so it's heavy it's got the big buttons and it's got the octagonal joystick
and everything and so you just kind of it's like putting an arcade uh controller in your lap
that's awesome so you rest it on your lap and then does it give you the
feel yeah yeah exactly yeah it gives you a feel it's got the uh yeah the big buttons everything
so i've got those i have two of those i have two of the snes controllers the ones i got are the
like buffalo brand or i buffalo brand they're solid i mean they've lasted forever and so similar
i have all sorts of different ones and so here I am with all these controllers, they're all USB.
And when I play on my computer, that'd be fine.
But I wanted to play in the living room.
And so what I used to do is I used to have just a really long USB extension.
But I think USB can go like 50 feet or something.
I think occasionally we would lose like an input
but it wasn't too bad but it's kind of janky and you people are tripping over it and everything
so what i found online on amazon i didn't know this existed but blew my mind is it's a usb dongle
and what comes out the other end is an ethernet port and then you can run ethernet cable like through the wall in your
house so i have this going from the tv through the wall and then it comes up where my couch is
and so i actually took the the other end of it is a usb hub so the ethernet plugs into this usb hub
and i have that kind of attached to my couch. And so I can actually plug controllers into the
couch and they work with the TV. I have a big fan. Yeah, it was amazing. I found it to be really low
latency, which I guess in hindsight, isn't that surprising? Because, you know, we have
Cat5 running through the house for, you know, online gaming and all of that. But yeah, for
some reason, I just thought that with all these moving, with all these parts, that there would
be some kind of issue, but it works works flawlessly and we have a little cabinet
right behind the couch you can kind of reach behind you pull out you know a snes controller
and then have at it that's amazing we have this mocha have you ever heard of mocha no i haven't
okay so our house does not have ethernet throughout the house so this is not
so much gaming as internet so mocha is i think multimedia over coax so the the coax cables that
they did run through the house you can get this like mocha controller and you plug ethernet in
one side and then coax the other side and then it runs a high speed ethernet over top of these coax
cables wow really yeah so that's what we're talking on right now so for whatever reason like
the hookup i have fiber coming into the house that's super fast but then like wi-fi could
barely make it from the basement where the setup is like anywhere else right but you put in these
mocha things and like it's super high
speed like it it doesn't slow it down at all that is awesome you'll have to look into that yeah my
house actually i ran this cat6 cable just for this but other than that it has similar to you
has as cable as coax all over the house which we're not even using right now yeah and like you
a lot of people will try to get there there's, there's like power line ethernet
where you run it over your plugs.
Oh, I've seen that in the store, but I didn't really understand it totally.
Yeah.
So I guess it's not as good because like there's other things going on.
Like, you know, you get interference from the actual products that you plug in.
Right.
That's what I thought would happen.
Yeah.
Yeah.
Where your coax cable, I guess has lots of bandwidth, but the Mocha controllers are more
expensive. Like it's a proprietary thing. Oh, I see. But it's awesome. I totally recommend it.
That is super cool. My parents recently ditched their cable provider and got 5G home internet,
which I didn't even know was a thing. But yeah, that was pretty cool. I helped them set it up. It's like, this is like every tech son has to do this, like go to their parents'
house, try to fix their internet. And so it came in the mail from T-Mobile. And it took me forever
to figure out like where to plug in the cable line because I didn't know what they had gotten.
And then I'm like reading instructions. And then finally it hit me. It's like, oh,
this is like a 5G thing. It just plugs into the wall and that's it you're done
and my first reaction was oh this internet can't be that great but it's amazing like the speed test
i think it was 15 megabytes per second down which is huge yeah i mean i don't it's probably more
than what i have and uh yeah phenomenal quality i mean it's just this little tower looks like a mac pro
trash can you know like one of those form factors and yeah I thought that was really impressive
so it's basically a cell phone that we're using 5g that provides yeah that's all it is but yeah
it gets a amazing maybe it has a stronger antenna not sure but it gets amazing transfer speeds it's actually
pretty big so it must be basically just a giant antenna yeah a whole bunch of in yeah composite
antenna inside somehow yeah right cool um so your gaming setup is nintendo switch oh yeah so i'm not
a hardcore gamer but like me and my wife always like to play mario kart so who's better she she
is clearly better my wife is way better too there's just something about i forget which i
think it was on the wii maybe years ago and uh yeah she just played it so often against me and
and she just got so good and and now we play online, like we have like Nintendo online or whatever.
So we're competing against, you know, 13 year olds from all over the world.
Yeah, that's right.
I remember, I mean, this is a, I'm sure it's a very common thing, but you play in your
social network, your local hyperlocal network.
And you think I have to be the best in the world.
I mean, I've beaten every person in my neighborhood.
And then you go to play mario kart online it's like oh yeah i guess you could leave a banana peel right there so that someone misses the jump and dies like you know it's something i
really thought about yeah they're amazing if you play online it's really i mean i guess that should
be a surprise to no one but yeah yeah yeah exactly same thing happened with starcraft this is a really long
time ago but this is like 1998 or something starcraft one you know we had a little tournament
a land party tournament at our high school and there was this guy who won it and i also i think
i came in second or third and then we thought oh if we form a team of the two of us you know we have
to be the best in the world and we just got completely demolished by people as you said people from all over the world have you ever seen that documentary
the king of kong oh that is amazing such a good documentary what is that gentleman's name
they got the long hair i'll look it up yeah but it's about a guy it's pac-man right no it's king
kong right king kong yeah that's right he's gonna beat the
world champion surprise like surprisingly a lot of drama in a thing about people competing with
arcade games billy mitchell that's who it is yeah so billy mitchell was uh i think he made hot sauce
yeah his like day job was making hot sauce and then on the side, he just played Donkey Kong endlessly.
I guess Donkey Kong's way harder than I thought
before I saw the movie.
Yeah, there's whole intricacies to it
that I wasn't aware of,
but also he was quite the character,
like quite a, at least portrayed as quite a villain.
Yeah, yeah, definitely.
Definitely a larger-than-life character.
That's a phenomenal movie, by the way, King of Kong, highly, definitely. Definitely larger than life character. That's a phenomenal movie, by the way.
King of Kong, highly recommend it.
Have you seen the movie,
somewhat similar in the sense of like a documentary,
a class action park?
It's on HBO Max.
Is this the water slide place?
Yeah, yeah.
Oh my gosh.
So folks out there should check this out.
There's this water park in i think the
80s and 90s called action park and their claim one of their claim to fames was a loop-de-loop
a vertical loop-de-loop water slide so basically like it's exactly what you would think like you'd
see in a roller coaster where you know you go down this water slide and you build up so much speed
you can literally do a loop-de-loop and just the g-forces
are holding you against the edge of the loop-de-loop until they don't so so it turns out if your weight
if you're either too light or too heavy from this like pretty tight bound then you would not get
enough momentum and what would happen is you would get you know near the top and then you would smack
you know the inside of the wall of the loop on
your way down. And this is just one of the attractions that they talk about in class action
park. The thing that blew my mind was not only the obvious like, oh my God, I can't believe that
they're able to run for 20, 30 years. But then also the fact that a lot of the rides later came from those ideas.
So those ideas actually spawned a lot of, you know, safe rides.
So in a sense, it was like a necessary evil or something.
But man, it's an unbelievable story.
Yeah, they were quite innovative, but horrible.
Like they, I think in the thing it said, like the local municipality was upset because they had to send ambulances there
so much to get people and so they bought them an ambulance they're like here you go
yeah problem solved dedicated ambulance for this theme park they had one section where
you would drive uh golf carts with armor and little uh cannonball cannons that would shoot
tennis balls and if the tennis ball hit the armor there was some
vibration sensor on there and if it felt enough of an impact it would start spinning the tank around
and these are all gasoline powered and people were passing out from the fumes because and all
this crazy stuff but then it turns out i went to disney this is years ago but much many years after
action park had shut down and disney actually had the same
ride i mean of course much safer electric and and they're using foam balls not tennis balls and
everything but it's actually super super fun and it was inspired by action parks that's awesome
yeah innovators yeah definitely yeah it's kind of that yang, that kind of like chaotic energy, you know. Cool. All right, on to news.
So my news, first news item is really interesting.
The title is I Was Wrong, CRDTs of the Future.
And this is from Joseph Gentle.
Yeah, Joseph Gentle.
And so people who might have heard of Joseph.
So Joseph worked on Google Wave, which was a really old product that died, but kind of,
you know, a lot of that carried over into Google Docs and some of these other things.
So the Google Wave, I think, predates all of that stuff.
And it was the first time where you could really edit a document in real time with other
people and they could see your changes in real time.
And so it was really exciting seeing sort of that tech on the web. And then of course, Google Docs, now it's ubiquitous.
And so all of that worked with something called operational transformations, or OTs.
And the way it works is basically, you know, imagine, just take a string, for example,
there's some long string, and I go and i delete a section of that string
right maybe i delete three lines this means a multi-line string i go and delete like three
lines of it so ot will send a command to the server saying you know jason deleted you know
this position to this position and then let's say adam at the same time deletes something else, like maybe a non-fully overlapping
section of text.
So Adam submits a delete right at the same time.
So the server is going to get those two commands and the server is going to be smart enough
to reconcile that conflict.
So it's going to say, okay, now Jason's command came in first.
Let's do the delete.
When Adam's command comes in, in addition to the delete command and
what he wants to delete, there's also a hash saying this is sort of a hash of the state of
the string when I wanted to do my delete. Or you could use a timestamp. There's other ways to do
it. So the system will say, okay, when Adam was doing his delete, you know, this text was there
that's been deleted. And so, you you know now if i sort of fast forward
that change then we only actually need to delete this much text and now we have adam semantically
we have what adam wanted to delete and what jason wanted to delete right and so you have this server
that's you know similar to when you do get pull right you have this server it's like fast forwarding
these requests as they come in
because the requests are based on old state, right?
And the server is also taking those requests
once they've been reconciled and pushing them
so that everyone has the latest information, right?
And so there's this constant back and forth going on.
Now, it's complicated to get that right.
There's share.js and like a bunch of libraries that do this for you now. Complicated to get it right, but it's complicated to get that right. There's Share.js and a bunch of libraries that do this for you now.
Complicated to get it right, but it's simple to understand.
The problem with OT is you have that server.
You have to have that one authority who's making all of those judgment calls and doing all of that fast forwarding.
And so you have naturally a bottleneck there. So CRDTs is a like truly distributed way to do it,
where you don't need a server, you're kind of achieving a consensus among a group of people.
And so it could be, you know, in theory, completely serverless and peer to peer.
And so super, super exciting, really hard to get right. Because as you can imagine,
there's no authority. And so that
just makes everything so much harder. But like everything, you know, over time, hard things
become easier. And Joseph Gentle has decided that after spending a decade on OTs, that CRDTs have
just gotten to the point now where that's the way to go. And he's actually going to drop all of his
OT work and switch over to CRDTs, which is pretty
wild to see. That's cool. I think that Martin, another guy, Martin Kleppman, I think is his name
who wrote. Yeah, that's right. Designing data intensive applications or something. He's been
working on CRDTs for some time now, I think one of the JavaScript projects. So just seeing him
interested in it made me think like,
oh, I think there's something here, you know,
that this can be unlocked.
Yeah, totally agree.
Yeah, and he's called out by name in this article.
And so, yeah, I actually, I know a lot about OTs.
I implemented an operational transform.
That's basically how MAME Hub
and how the network Mame stuff works.
I guess tying this back to the intro.
So you would do button presses and then it would sort of fast forward your button presses.
But yeah, so I definitely want to learn about CRDTs and maybe we'll do a follow up show
on CRDTs and how they work.
Because at the moment, I know almost nothing.
I'm just really excited that all these people who know this field better
than anyone are getting on board. So there's just clearly something amazing here. It's just to
digest it. Yeah, the conflicts, I think is the tricky part. And I guess they've figured that out.
That's why it's conflict free. So for myself, I saw this article that was called how we lost
54,000 GitHub stars. It's kind of a sad story. So there's this
open source library called, I don't know if it's HTTP or HTTP. Anyways, I've used it before. Let's
say it's HTTP, HTTP. I think it's pi. Yeah. Yeah. So it's a replacement for curl with some really nice defaults so that it's it's easy to get
back like a json document it auto formats it and like it prettifies it it has some nice default so
like it assumes a get if it makes sense you could send like key values and in a really nice way so
it's has a lot of nice syntactic sugar for making these rest requests and it's not a new project
it's been around for 10 years has a website you know very heavily invested in well-polished open source project and so the
author of it he was working on the project and also working on a personal project and i think
he wanted to make a change to something on his personal github and so he decided to make it
private so he hit the like yes in github i to make this private. But he wasn't under his own name. Actually, he was under the
the HTTPy organization. Oh, no. So accidentally took it private. And then when he turned it back
public, the star count had reset to zero. So somewhere inside the internal implementation
details of GitHub, if you take
a project private and then bring it back, like that counter resets. So 10 years of people following
on GitHub was lost. That is unbelievable. I mean, it kind of makes sense. Like if something is
private, then only the people who have access to it can star it so probably in this case is nobody and so but that's
rough yeah it's rough so i mean the blog post was actually nice though because he kind of said like
oh here's what happened so fyi if you were following us you might want to do it again
and then he also said like here's the things that we've planned like we're still doing lots of stuff
and so he's focused on the positive i guess but it was an interesting story and a warning for us
who have open source projects not to turn it on and off again yeah that is unbelievable yeah i
mean it's really rough i mean there's not really any way to it's i think in general configuration
changes are the cause of so many issues it's just extremely hard to test something like that
and you know almost every time i don't want to say
every time but almost every time you go to the news and you see you know google is down youtube
is down facebook is down it's almost always a configuration change yeah totally 99 out of 100
times because it's like the thing that you can't test well right you just kind of got to make the
change yeah yeah exactly especially you start dealing with dns and these other things it's like the thing that you can't test well right you just kind of got to make the change yeah yeah exactly especially you start dealing with dns and these other things it's really hard
dns is the worst dns is brutal i mean it's like email you know the protocol was invented so long
ago and that's just you know everyone's on it and what are you going to do you know i mean the dns
might actually be you know perfectly fine and a great protocol it's just
it's a distributed protocol right where people are caching things and so it's very as corner cases
yeah exactly yeah it'd be nice if dns worked more like git where somehow like in your i guess it
does or it could like it'd be nice if you could somehow change like every dns change could
somehow only affect your company and so then you know you would you would kick your entire company
off of google or facebook or something before you'd kick the public off but then you could
somehow like push that change to everyone else i mean yeah that's actually dns would be another
really interesting show,
but we'd have to get somebody
who deeply understands it.
But yeah, I think that's fascinating.
So my next topic is Dali,
making fun of the,
or I guess an homage to Salvador Dali,
creating images from text.
This is from OpenAI.
This is super, super cool.
And yet they're getting a lot of flack
saying they cherry pick these examples and everything. I mean, I don't want to dispute
any of that. But all I have to say is, this is really cool. I mean, the way they presented this
is really exciting. The choices are really nice. It's extremely compelling. And so what this does
is you give DALI a text prompt, and the AI generates images. And it's remarkable. Like I'm
just looking at the site here. This says that the first one's an illustration of a baby daikon
radish in a tutu walking a dog. And it just does it like there it is, you know, and an armchair in
the shape of an avocado. And it's exactly what it sounds like. It's a chair in the shape of an avocado. And it's exactly what it sounds like.
It's a chair in the shape of an avocado.
Yeah, just amazing.
I mean, it blows my mind.
I feel like there's so much potential here.
There's so many amazing things people could do.
I think that, you know, there's an uncanny valley here.
So I'm looking at the last one.
It says a cat on top and a sketch.
Or sorry, the exact same cat on top as a sketch on the bottom
so in other words it wants the ai to generate a picture of a cat and then a sketch of the same cat
below it that seems really hard i mean it does it the thing is you know anything that's you know
an animal or a person you know there's this's this, it has to be super, super accurate. And so this is just weird looking to be honest, but for things that are kind of abstractions like concept
art, it does an amazing job. And I mean, I'm just waiting for somebody, some really creative person
to do something truly, you know, earth shattering with this because you have effectively an infinite
amount of graphical content here.
Yeah, it's so neat to play.
Like, I don't have access to it,
but there was some earlier versions of this that were open source and were more limited.
But it's very fun to like put in a phrase
and see what you get.
Like, yeah, it's just, it's amazing.
Yeah, you know, I mean, here's a very simple thing.
And maybe someone out there should do this.
If you do this, I would love, you know, at us on Twitter.
Adam, what are you on Twitter?
Are you co-recursive?
Adam Gordon Bell.
Adam Gordon Bell.
Okay, at Adam Gordon Bell at Neural Nets for Life.
At us if you do this.
I'd love to see this.
Basically, just take a text game and, you know, just put a picture next to it.
So whatever the description that comes out of the text game, you just set put a picture next to it so whatever the description that comes out of the
text game you just set up a two-paned type thing and just have a picture next to it i think that'd
be amazing there is there's this thing called z machine which is a sort of a virtual machine for
text-based games and so it was created to play zork and so all of the zork games use z machine
and it just became that for adventure games, it became sort of the gold standard.
And so there's probably over 100 text-based adventure games you can play on Z Machine.
And so someone would just have to fork Z Machine or even just fork a front end for Z Machine,
like Frotz or one of these things, and just make it draw the dolly picture next to it i
think it'd be super fun definitely there was a twitter thread where somebody was taking people's
profile descriptions on twitter and feeding it in to dolly it was pretty pretty interesting what
really like yeah given two sentences of somebody's description so can i know you're saying you don't have access
to dolly how does someone get access to this do you know oh there you can see you click a link
to to like join their waitlist basically they're i think they're just one by one adding people
okay and they also have some restrictions so they don't want you using it for uh
kind of not safe for work type content.
Oh, sure.
Yeah, it makes sense.
But yeah, so it works similar with GPT-3.
Like I had applied for that and got some pretty early access.
And that was also a really neat tool to play around with.
Wow, super cool.
Yeah, so yeah, definitely folks should try this.
Sign up for OpenAI. My guess is, definitely folks should try this, you know, sign up for OpenAI.
My guess is, let me just try this out really quickly. I want to see if there's a thing where
you can say you're a student. Yeah, exactly. Yeah. So you can kind of tell OpenAI, hey,
I'm a student. Yeah, I just want to try this out. And that might bump you up on the list,
or at least maybe they'll give you a free tier or something like that. But yeah,
a ton of cool stuff you could do here. Definitely check it out. Yeah. So for my next one, I found this new story inside the longest Atlassian
outage of all time. So this was from pragmaticengineer.com. This is like,
this is just a wild story. Yeah. So, so Atlassian, you know, makers of Jira, which is very central to many people's developer workflows, they had this downtime. So 40 customers lost access to Jira. And Atlassian didn't really put out an announcement or say anything. And 40 customers might not sound like a lot. But it turned out that the customers were of the size 50 000 to 800 000 users these were very
large companies and yeah Atlassian wasn't saying anything but the I think they reached out
individually to people at these companies but the companies are getting very nervous
then they started talking about it on twitter this guy who runs the pragmatic engineer started
talking about on twitter and then Atlassian kind of put out a statement but if you don't have your ticket tracking system like if it's just not available
for going on days and days like it's very hard to get your job done right and there's a lot of
important data in there like people are starting to worry like what's going on like have we lost
all of this information and it doesn't look good when the
company doesn't get back to you at all right so so eventually they came out and they kind of said
what happened do you any guesses what happened jason was it a dns issue sadly no so so they had
i believe for they said for legal reasons which i think think means like GPDR, they have a script that removes customers.
And there's two ways that it runs.
One is like a soft delete, where it just kind of says, this customer's data is considered deleted, but it's still there.
And then the other way for legal reasons is it actually deletes all the data from the database for that customer so they had run this script which i
assume they run on like a nightly basis to clean up customers and it's the same script whether it
does the hard delete or the soft delete and it got run when it was supposed to be in soft delete mode
like just hide the customers it got run in the hard delete mode where it
actually blows all the data out of the database oh man so that's not good and then the the further
thing that happened was it ran with the wrong set of customer ids i was going to say i mean
why would you even blow away this huge customer yeah so like apparently not only did they run it wrong in hard delete mode,
but they ran it with the wrong customer IDs. So they ended up deleting these 40 customers,
probably intending to delete 40 other customers or soft delete them. They actually hard deleted
these 40 very large customers. So then they had to come up with what to do from that point.
Turns out they back up all the data every day they do backups
right but it took them a while to discover that this problem happened and in the meantime you
know real customers are doing real things right so they can't just restore the backup from last
night because every customer who's not the 40 customers who are down like they would all of a
sudden lose all those you you know, data.
Oh, cause they're all sharing the same database.
Yeah, exactly.
Oh, wow.
So yeah, so those were their options, right?
Okay, we can restore,
but then all these non-affected customers will lose data.
Or what they ended up doing is like one by one,
like restoring their data by like selectively inserting rows like i
assume they stood up the they stood up a backup as like another database and like inserted records
across like customer by customer which is why it took them nine days oh my gosh i love this part
here it says they can't report the problem because they don't have a Jira account?
Oh, it's a crazy story.
Like, I feel for them.
Like, there's been a lot of backlash and people complaining about how horrible this is.
But at the same time, like, I just feel bad
for these people who had to man this issue or, you know.
I guess even with GDPR,
you can still have like a glacier, like a deep glacier backup, right? Because otherwise, the data would literally be gone.
Oh, yeah, that's true. Yeah.
Yeah. Oh, man, that is unbelievable. I mean, yeah, that if they had literally lost their data, because of that would have been really like a disastrous i mean at least this is
uh they can recover from yeah but they that i think that they made an error by not talking about
this like they kind of left everybody guessing for quite some time until you know this came out
not by them but by people you know being scared and talking about it
on hacker news and on twitter and stuff right right wow yeah this is an amazing story and i'm
so glad you share this with me this is a wild ride folks should definitely uh check this out
that is that's totally wild actually you know this reminds me of, did you hear about Fast, the company Fast?
Yeah, yeah.
Oh my God. I mean, that is just unbelievable. So basically, okay, so this is a caveat. I mean,
maybe we should have had a fifth news story here, but definitely people should do their own research.
But what I believe I read was they were, I guess, like, you know, you could always kind of play with statistics.
Right. So, for example, you could say, well, we have this many visits on our Web site, but it's not unique visits.
So so, you know, then maybe like if somebody was or you could say I have this many calls to my Web site, but maybe it takes 10 calls to render the page, right? So there's all these games you can kind of play where you're saying things that are true, but you're misleading people
at the same time, right? And so I think what was going on reading is kind of reading between the
lines here is I think fast was, you know, giving out a bunch of statistics on their growth, which
was looking really great, but they weren't using sort of these really core statistics that are
hard to fabricate, or these core metrics that are hard to fabricate or these core metrics that are hard to fabricate.
And so at some point, I think it was a reporter. I don't know if this was leaked or if the reporter
reverse engineered it. I think I've heard both stories now. But basically, a reporter wrote an
article just proving beyond any doubt that on all the core metrics that matter, that FAST was
more than an order of magnitude
behind what everyone thought.
Maybe two orders of magnitude or something.
And so just to kind of explain it with an example,
they had all this cloud infrastructure.
They had a cloud infrastructure organization,
but with the amount of traffic they were doing,
they could have run it on one desktop.
So that's the analogy that I was given.
And that by itself is shocking, but that's not the most shocking part.
The most shocking part was that within three days, the company shut down. And so there wasn't an
acquisition. There wasn't like a hey, we're going to see you through this. There wasn't like we're
going to turn the ship around. It wasn't like we work going to turn the ship around it wasn't like we work where eventually they got their feet back on the ground they just shut down and the only thing I can think
of and you have obviously there's not a lot of information here the only thing I can think of
is that you know the investors were just worried about lawsuits and the liability there and some
of these things you know a lot of people don't know this but there's certain things you can do
that will make you personally liable. Like I'll
give you an example. You know, if you're involved in some kind of like really overt discrimination
on the job, you could actually be held personally liable. So in other words, they can sue you as an
individual separate from or in addition to suing your employer, right? That's an example of a thing
where like, even though you have an LLC,
you know, under those conditions,
the law has been designed
so people can actually punch through the LLC
and sue you directly.
And so, you know, I think that some of these things
around, you know, fraud are in that category.
And so I think that was really the catalyst
that made them just instantly, boom,
shut down the whole company.
And I mean that, and they were out of down the whole company and i mean that and they
were out of money that definitely didn't help but they didn't try and look for a buyer or anything
they completely shut down i have friends who worked there and you know yeah i feel for them
you know obviously they're super talented that's a hot market so so they'll land on their feet but
it was a huge shock that the people who work there had no idea oh wow yeah it really went down fast i think that
it's hard if you're looking for new investors like people invest because they don't want to
miss out on the new hot thing right and once your reputation has become tarnished like you're really
you're not attractive yeah yeah totally i mean yeah, I mean, a lot of the engineers
end up going to a company called Affirm. That is, you know, someone in a similar vertical.
And I think under normal circumstances or ordinary circumstances, you know, there would
have been some fire sale acquisition and some employees would have got, you know, some return
on their stock and all of that. But yeah, this is just a wild story. And fortunately,
it's extremely rare that something like that happens.
Sponsor for today's show is Imparticle. At the end of the day, your customer has to be at the
center of everything you do. This starts with the right customer data strategy, as well as the right
foundation to solve the challenges that typically inhibit success, such as data quality, data governance, and connectivity.
MParticle is your real-time customer data infrastructure that helps accelerate your
data strategy by cleansing, visualizing, and integrating your customer data from anywhere
to anywhere.
Ultimately, better data leads to better decisions,
better customer experiences, and better outcomes.
Some of the best brands in retail, financial services, hospitality, media, travel, gaming,
and many other industries have chosen MParticle.
Learn more by visiting www.mparticle.com.
Better data, better decisions, better outcomes.
Visit mparticle.com to learn how teams at Postmates, NBCUniversal, Spotify, and Airbnb
use MParticle's customer data infrastructure to accelerate their customer data strategy.
Cool.
So on to book of the show my book of the show is actually a podcast but i've been uh
listening to it neglecting my audible books and instead doing the podcast thing it's really fun
though it's the indie board game designers podcast and it's really fascinating i mean first you might even wonder
how can that exist like how can someone make a board game you know on their own you know without
a big budget or anything it turns out there's a ton of nice infrastructure there on the supply
chain side and so as long as you're willing to stick with this canonical things you would find
in a board game right like the punch out cardboard pieces
and dice and as long as you don't anything too crazy you can get pretty much any board game
design made relatively cheaply and so there's a bunch of indie board game designers who do this
there's whole conventions and it's just fascinating the whole process think, is really fascinating. That's really cool.
Yeah.
So I picked for my book of the show, it's actually a series, but the series of books called The Laundry Files.
And specifically, I just finished this one called Quantum of Nightmares.
So this is a series of books by Charles Strauss.
And it's hard to describe the genre they're in, but think if you like science fiction you'd probably like them so the laundry files is this series the concept of it is
that like the right kind of like computer algorithms can like unlock some sort of demons
from some other plane of the universe that's awesome yeah but the books are comedies so it's like a mixture of
horror and like dilbert so in the very first book i read the atrocity archives like this guy is like
an it worker and he accidentally you know is doing some sort of combinatronics and summon some sort
of demon and so it's a bit men in black style. Like there's the secret organization who comes and gets them and says like,
listen,
yes,
demons are real and computer science is how you unleash them.
And then like,
yeah.
So it's like the books often mix these genres together to humorous effect.
So in the very first book,
it's like,
he is the it guy at this secret government agency.
So he has to make sure the printers work,
but also he has to like fight demons and yeah,
very humorous and strange series of books.
That is awesome.
Yeah.
There was a,
there was a game for the Nintendo DS that was similar.
Like you had,
that was,
it was had the same premise.
Yeah.
I think that's,
that sounds awesome.
I'm definitely going to give this a read.
I love stuff like that. Very cool. Is is it so you said it's three books are they
like pretty heavy like roughly like how many pages like is this you know 20 30 hours audio or
oh that's a good question so the laundry files is like a series i think there's probably like
12 books or something oh wow so i would pick the first one, which is called the Atrocity Archives.
And the books themselves aren't massive, but there's a number of books.
Ah, cool.
Kind of like Terry Pratchett.
Yeah, yeah.
Definitely some similar vibes, I would say.
Yeah.
Oh, very cool.
Yeah, that is awesome.
Cool.
And if you want to listen to that or Terry Pratchett,
you can check both of those out on Audible. Audible is a lot of fun. I actually just,
I don't know at what point I switched over, but I have the thing now where you pay once a year
and you get all your credits up front. And so I just rolled over. So I have 12 credits to spend
and yeah, I still have about three or four books to finish up. So a little bit behind, but, but overall, I love it.
I mean, especially if you go for a run or go for a hike and you can download the book
so you don't have to worry about blowing through all of your internet on your cell phone device
and everything.
So check out Audible.
And if you want to check out Audible, you can go to audibletrial.com slash programming
throw down.
That helps us out.
If you want to help us out and you already have
Audible or you don't want to get Audible, you can check us out on Patreon. So that's
patreon.com slash programming throwdown. And with that, it's time for tool of the show.
My tool of the show is Zapier. And so Zapier is a like internet workflow automation platform, I guess if I had to describe
it in one line, what it does is it lets you connect things and automate things that involve,
you know, common services on the internet. So for example, you might say, if I if someone sets up a calendar invite with me so if i get any new calendar
meetings on my google calendar then send me a text message right or you might say something like
when i email this special address at zapier i want zapier to take the subject line and create
a calendar meeting from it right um there's all sorts of
things you can do zapier kind of lets you connect all these things together i found an open source
one called n8n which i thought was really interesting i guess what would that be natan
i don't know but i actually found zapier to be pretty generous they give you i think it's like
a thousand triggers so you can trigger something a thousand times a month before you have to start paying anything. I'm well below that.
And overall, I thought the experience was great. It was really solid and I've used it to streamline
a lot of different processes. So I've been really digging that.
Very cool. Yeah. I've used it for things here and there. It definitely has that kind of flow chart
coding feel to it, but it's cool the
things you can hook up to it yeah totally i mean the big thing is it's uh it's totally serverless
i mean it's you know it's on their their network so you don't need a computer you know running cron
you know running 24 7 and all that they handle all the infrastructure for you so for my tool this is a totally bias picked but i'm going to choose i'm going to choose earthly
which is an open source tool and also a company uh that employs me so so bias be noted there but
so earthly is a a build tool that that tries to bring together these ideas of both building software and continuous integration. So Earthly uses containers
like as in Docker containers to build your software. And it has a format that is kind of a
mix of a make file and a Docker file. And so you can specify how you would build, you know, your
software inside this format. And then, you know, the feature that often brings people to Earthly is then you can run your CI build on your local machine, or you can run it
in Jenkins or in GitHub actions, or whatever you happen to be using. So yeah, the thing that we're
really excited about is just, you know, making builds, and CI like, like code and something that
you can run on your local environment that you
don't have to like put in little commits that says like oh hopefully this will get the build working
and then push that and so it's a really cool tool at least from my perspective and yeah i'll have to
i'll have to check that out because i if you look at the eternal terminal repo you'll find a ton of
these commits that are like maybe this will work maybe that'll work maybe this will work and they're all commits where i using the github website you know you can
edit single files and yeah yeah so it's all done through that and i tried some homebrew thing
that was like a local github actions oh yeah where yeah i tried it and you know it just didn't work
and i just i think maybe I needed to be on Linux
and I was doing this on my MacBook,
but I feel like it either works or it doesn't.
If it doesn't work, it's not a thing I could easily debug.
And so this is a real problem.
Yeah, I know I've personally had it.
So yeah, I'll have to check that out.
So what is Earthly's, like, do you sign up
or how does it work?
Is it a thing you download yeah so
go to earthly.dev and you can follow the links to download there you can also find it on on github
and so yeah it's a command line tool and yeah so you write you kind of write your build in the
earth file format and then you can call earthly from within github actions or within jenkins
or or whatever and also on your local so to provide some backstory so so vlad who created earthly
he he worked at google and google has like internally a blaze i believe is their build
system and then it was open sourced as basil or they made something similar that's open source i
don't know the exact history there.
Yeah, I think it's like a fork,
but yeah, you have the right idea.
Yeah, so Vlad wanted a tool like that,
but that was easier to use.
Like Bazel is known to be really amazing
if you have like a platform engineering team
who can set up like distributed builds
and get everything working.
And if you use a monorepo
and the type of languages that Google uses, it can be really powerful. But for everybody else, it's really a
big hurdle to overcome. So Vlad built Earthly as kind of a middle ground between something like
Bazel and something like GitHub Action. So it allows you to, you know, have caching built in
and to kind of do things in parallel. But it also has like a really nice, simple to use format.
You know, you don't have to use a monorepo.
You can use the tools you already use.
If you're using NPM to build something, you can use that in Earthly.
If you're already using Jenkins, you can use Earthly inside Jenkins.
Yeah, so that's kind of the backstory behind it.
And yeah, you can find it on GitHub Act actions or you can just do brew install i think
it's brew install earthly for some strange reason nice but yeah go to earthly.dev so earthly isn't
like running your ci right you're still the ci is still running on github actions it's just earthly
is facilitating that that's right yeah you would write an earth file that is similar to a make file but with some
improvements such that it's containerized and runs in parallel and then you it would still run in
get up actions but it would be running in get up actions via earthly command line tool got it got
it cool yeah i'll have to check that out. That'd be nice. So that gets actually a good segue to our topic, which is funding open source projects. And you know, it's one thing that I always wondered, you know, especially when I was in high school and in college, I was wondering, like, these massive projects like Linux, you know, how do you how does this massive group, you know, community coordinate and how do people, you know, it costs a lot of resources to run a big project like that.
And then also, you know, if we, you know, if these companies decide to be enterprising, you know, how can they make money and how do people who have sort of put everything in open source, how did they sort of, how did they not just lose all their intellectual property?
And these things are always really fascinating and i definitely don't have all the answers now but i've spent many years
kind of in this ecosystem i know you have two adam and we have a pretty good understanding now of how
how that all works and so i think if you're out there you know and you're building kind of tools
you're interested in tools or you're just using a lot of open source and i think that this can
you know answer a lot of those a lot of I think that this can answer a lot of those questions.
Yeah, it's a super fascinating area.
And especially also if you're just thinking like,
hey, I'm building an open source tool.
And I would love if this were something I was paid to do,
or if I were at least remunerated enough to make it more than just something that I have to do
or that keeps me busy on the weekends.
Yeah, that's true. It's like that um ancient you know artist dilemma yeah like like how can i practice my craft or do that thing that i is my sort of core strength that
i really love and you know also be able to sustain money yeah so you know full disclaimer you know
you don't have to make money you know
if you have an open source project i mean eternal terminal makes zero dollars and i did put a
donations link but i didn't promote it or anything and so yeah unsurprisingly eternal terminal has
never made even a dollar and that for me is fine so you know we're not saying here that open source
projects need to be funded or that they're better you know
ones that are funded are better any anything like there's no value judgment here what we are going
to explain is the ones that are funded how do they go about doing that yeah that makes sense
yeah so so i guess you know as i kind of started off here donations are really difficult to get right. I think there's this
interesting Medium article, which we'll link to in the show notes. The title is GitHub stars won't
pay your rent, which I think is a cute way of saying it. But at a high level, what this person
is saying, which I definitely can agree with is, you know, if you put a donation page there,
sometimes even if you in the read me,
you kind of point up to the donations button and everything, you know, it's generally not enough,
you know, for people to donate, right? I think that, you know, you need to do something more.
I don't think you have to provide anything material, but clearly just telling people to
donate on your read me isn't going to be enough. And this person does a much better job than I could kind of really diving into details.
They spent a ton of time and energy on how to, you know, how to monetize their repository
and donations just didn't work for them.
But Adam, you found a couple of places where it did work.
Yeah, so two projects that I actually really look up to, like one is Serenity OS and the
other one is the Zig programming language. And so both the people behind these have managed to build up enough
support of their open source projects to support themselves full time. And it's kind of interesting
the way that they approach that. So Andrew Kelly, who created Zig, you know, he built a community around himself and this language.
He blogged about it. He talked about it. He streamed himself building it and he asked for
donations when he streamed it. So, you know, a little bit, his key was almost becoming like a,
like an influencer, but for developers, like, here's how I'm building a programming language.
And he also talked a lot, you know, to people about how
he wanted to work on this for the rest of his life and build this really amazing programming
language. And I think that inspired people to say like, you know, I, you know, I'm the type of
person who would, I would love to see somebody who can pursue their passion like that. And so he,
he was able to leave his job to, to work on Zig full time. And Serenity OS is a similar project by Andreas Kling, who worked at
Apple and then left Apple to work on this Serenity OS, which is operating system he's, you know, he
was building totally from scratch, streaming himself on YouTube, doing that, and built up
enough supporters that it's supporting him. And now for both of these projects, it's now bigger
than just the two of them, they have had other people join and yeah i think the big lesson is that you need to you know
build up a community you need to use patreon you need to tell people you know i i would like your
support that will help me continue to build this and i think this is a new idea right like this
isn't what's the word i want like like building up a community to support you like this in software is kind of an interesting
new way to approach things.
Yeah, totally.
I think that, yeah, I think that we've seen this in other art forms, right?
So you see, like we go to the, we have a local kind of arts and crafts fair that happens
once a year, you know, in downtown.
And so we'll go there and
there'll be a bunch of local artists creating things. And one time we bought a painting from
this lady. She gave us her business card and then we needed a similar kind of thing in a different
room. And so these people become part of this local community. They set up this community event.
And so they are able to kind of organize and bootstrap you know this reputation
right so so we went there because we thought there was a chance there's going to be some
really interesting stuff and so what you're getting out of that is you're getting kind of
a relationship you're seeing the person you're interacting with and then you get to take a piece
of their kind of effort home and and when you see it you kind of can connect that painting that you see
with this person you kind of imagine them kind of working on it and so it feels like you really
contributed to something real and so you feel like like you actually get something out of it versus
if you just put a donation button then it's hard for somebody to really feel like they really
contributed or they don't know necessarily where
their money's going or who's the person working on it or is this like something that the person
has abandoned and so your money is not actually going to get you anything right and so so yeah
to your point you're having that patreon and having that constant discourse with your community is a
collateral that you know you're in this for the long call and that they're you know
really supporting you and your passion and i feel like it i mean in some ways it's the oldest
method of funding creative endeavors like i think da vinci was you know there were kings that that
were his patrons that paid him to to create things just the same way that you know you can donate to the programming
throwdown patreon you know people supported da vinci and michelangelo and etc yeah yeah it's a
really good analogy exactly right so what is this link you posted a link here oss.cash it's a very
short link i like it yeah so um working for as i do for a open source dev tool company i think
one of the venture capitalists shared this with us so this is a list of all of the companies with
like a value of over 100 million dollars that are open source And so the business models have changed over time, like the very first
open source company to get that large was Red Hat. And Red Hat's model was charging for support.
So you would pay for support and maintenance to get like RHEL, like Red Hat Linux, but the models,
I don't know, should I jump to talking about that article?
Yeah, let's just do it. Yeah.
Yeah. So Red Hat, that was their
model, they became a very large company with the support model. But if you talk to the type of
investors who fund open source businesses, they would consider the support model to be
sort of a failure, like only Red Hat really made it work. And there was like a whole number of companies that tried and red hat you know
also wasn't spectacularly successful yeah i remember i remember just riffing on that i
remember when optimizely went to a support model so optimizely used to charge basically i think it
was per click or per you know it's a product, then you'd pay an incremental
fee, but you're basically paying for the product. And then I guess, you know, there wasn't just
enough product there. But for some reason, they switched to optimize the X, where it was sort of a
support type system where if you had trouble with your how to design your optimization,
you would go to them and that
actually to me it's a double click on what you're saying that to me was a sign that it wasn't in a
good place and then they i think optimizely sold later on they got acquired i don't remember by
who i'll look it up right now but to your point it seems like when companies go the you know we'll
support this software and that's how we'll all get paid.
It seems like that never actually works in practice. This article does a really good job
explaining why. Yeah, it's a hard model to make work. Like it is true. Like, okay, I have a product,
I open source it, big companies are using it. I'm the best person in the world to offer them support.
But like that doesn't really scale into becoming a big business right that's
just hoping that businesses will pay you because they use something you've made for free yeah it's
holding them hostage right it's like you know like you at any point you could kind of drop a poison
pill and then force those people to get on your support you know it's kind of it's a really weird dynamic economically yeah and it's a weird dynamic also just because those big companies can have a lot
of power over you right like i don't know like they they could have a they could have a feature
that's being blocked because of your open source product and be very demanding right right that makes sense
so epi server is the company that acquired optimizely which epi servers i haven't heard
of it so it's not like they got acquired by google or something that is a massive like
fang company or something so so yeah i think yeah and to your point you know if you're going to
have premium support you might as well go all the way and just have a separate premium version
of your software, right? Because at the end of the day, the support is going to translate into
new features that company needs. So why not just make an enterprise version? And I think that model
tends to work much better. Yeah, I think like that's one of the models you see more commonly
today, I guess is what is like what they call
open core model, right? A core product that is open source, and then certain differentiating
things that large companies might want would pay for. So I have a friend who works at Mattermost,
which is like a Slack open source alternative to Slack or discord and my understanding is they like it's an open
source product but if you want to have like single sign-on using like saml or open id or the types of
features that you know a large company demands and will pay for then those are premium features so
that's like open core as they call that yeah exactly and i think that works pretty well i
think i mean that's been going all the way back to visual studio right i mean visual studio had the
the student edition which i mean well actually we should talk about that as well so in addition to
paying for extra functionality there's sometimes where the you're paying for the license so yeah
so i think as a student now you can get you know the full visual studio but you're paying for the license. So I think as a student now, you can get the full Visual Studio, but you're not licensed to run a business that makes a certain amount of revenue with that software. At that point, you have to pay money to get the appropriate license. there's feature parity there but it's technically i guess illegal or i guess civilly like illegal to
to to run that to run a business off the virtual box without paying for a business license but oh
yeah but visual studio used to have like a student edition which was really pared down
and so if you wanted the professional edition then you would have to you know pay microsoft
and you get all these extra features so even in the 90s this was a thing and it's interesting because like you know what is
the difference between something that's open source and something that's free i mean they are
different right so like that's a good point i believe right visual studio has free editions
but it's not open source yep yep yeah you're totally right so yeah they had the whole i guess
yeah that's more like a freemium model than an open core model so those are two different things
and like my understanding is like for a lot of developer tools developers have kind of come to
expect that things are open source and especially one reason for that is that maybe if you hit a limitation and
you're really locked in to this ecosystem that you might be able to add that feature, right? By being
having access to the source, you might be able to add things you need. Also, you can kind of inspect
it if you're like, hey, this is something that stores the secrets in my organization. Like you
might really want it to be something non proprietary
that you can look through and make sure it doesn't like curl somebody's password off to some URL or
something like that. So there can be security reasons why people might want something to be
a very least like source available, like you could see the source.
Yeah, that makes sense. Yeah, I mean, other things that companies will pay for that individuals
wouldn't really get a lot of value out of our, as you said, like security and auditing. So there's a good example of this is Century. So Century, interestingly, I'll tell you the history of Century was started by one, I forgot the person's name, but he was working at a startup. And he wanted to catch crashes, and then also catch breadcrumbs and look at performance
monitoring and all these things. And some of these things, I mean, you can kind of piecemeal it
together. So you can use open telemetry for the performance monitoring. There's like roll bar and
some of these things for catching crashes on your crash reporter. But there wasn't really one
solution that did it all and had a really nice interface
people would have to then put their crashes into data dog and use data dogs like pattern finding
right because you can imagine you might get back 10 000 crashes and it's all basically the same
issue just with you know i expected 32 but i got but I got 16. I expected 30 or I expected,
I expected 32, but I got 17. I expect 32, but I got 18. It's like, how do you sort of turn that
into a pattern that says, you know, this error happened, you know, 17 times, right? And so they
did really nice sort of pattern, I guess, discovery and all of that. Actually, they,
there's a whole bunch of cool
papers on NLP stuff on how to do that, which they wrote. But so they did an amazing job of that.
And then I think, I don't know if the company went under or if this person just left his startup,
but he was able to take the IP with him and he just ended up creating that as a service.
And to this day, Sentry, even the the server the sentry server is open source which
is kind of mind-blowing yeah you can run a sentry server yourself with like one docker command but
where they you know could like continue to make money is you know they have a version of sentry
that's enterprise that has all the auditing so if if someone's like looking through all the errors
you on the back end have a record like you know like looking through all the errors, you on the back end have a record
like, you know, Adam looked through all these errors today, you know, Jason went to this project
yesterday. And so, you know, companies, you know, that have a lot of liability, you know, that's
really important to them. And so even though like literally everything in Sentry is open sourced,
you know, they still have a viable business model wow i didn't realize the server was open source
that's interesting yeah there's a project in their organization their github organization
called get century and it's their entire server wow yeah so after like after the whole red hat
thing like after the many companies that tried to copy red hat with offering support like one of the
other models that really took off is just software as a service so that you see this a lot wherein
we make a product and it's open source if you run it yourself right but if you want it hosted
somewhere and running on a server you know and you don't want to have to worry about setting it up, then we'll do that.
So, you know, this is, I think like HashiCorp works like this,
I believe, and a lot of database vendors work like this.
So you can use, what's an example?
Yeah, what's the Mongo one called?
It's like Mongo World or something.
I want to look.
Yeah, like Mongo.
There's a self-hosted mongo db
mongo db will have their own cloud i believe that confluent the kafka company has their own like
host kafka in the cloud thing that you can use ah it's mongo db atlas that's what it's called
and so that you know they hold all the data they take care of all of it for you you're a sandbox
so you obviously can't see other people's data but they take care of all of it for you you're a sandbox so you obviously can't
see other people's data but they take care of the whole platform yeah and then the interesting thing
with databases in particular like would seem to be a very good fit for this model because you want
people to take very good care of your data but there there is a hiccup right which is basically aws right if you have an open source
database mongodb for instance and amazon can make a hosted version of it they may actually be better
at building a hosted version of it than you are or at very least yeah they already have most of
your customers already have an account there where they don't have an account with your service.
So this kind of concern about Amazon led to open source database companies to kind of shift licensing.
So I think MariaDB was the first company to do a, I believe they call a source available license.
So MariaDB is like a replacement for MySQL and it it's a commercial company, and you can access the source for it. They have a license that looks much like the Mozilla public license, except it says, you can't compete with us. You can't make any money doing something using this source that we do with it. So that's basically like, cloud providers you can't this isn't right and i think this has been a controversial thing in some areas you know because people are like
is that really open source the source is available but you can't do whatever you want with it it is
limited in certain cases yeah i mean it's a good question what was the amazon one called
it was it called beanstalk or was that something else? I think.
I'm going to look it up right now.
Yeah, I don't know.
Oh, I think.
Okay.
They used to have a name.
I think they changed the name because they were getting in.
Part of the problem was AWS basically made it seem, I think it was called Beanstalk, but they made it seem like this is AWS's take on MongoDB.
When in fact, it literally was MongoDB. And so now they call it
MongoDB on AWS. So they've sort of taken the blinds down on that. But yeah, that caused a
huge stir, completely disrupted MongoDB's business model. The more extreme version of this is Docker,
Swarm, and Kubernetes, where Kubernetesubernetes basically took the you know docker d
and the daemon and all the the core from docker and built their own version of docker swarm that's
just much better than docker swarm and uh just completely undercut docker's entire business model
that's true although like the thing with kubernetes is that it is also open source
so that's a good point so yeah i guess i guess it's it is also open source oh i see but it's
i think it's really just that google can just afford to hemorrhage money on it and yeah
exactly yeah the interesting one to me and i don't know all the history on it though is elastic
search so ria db like they thought of this ahead of time they said we're going to use this license it's not
quite open source right and it basically says like not for you amazon elastic search was open source
you know search databasey thing um like they had an apache license i believe and they started their own hosted cloud for Elasticsearch.
They're like, we're really good
at managing this distributed database.
So let us do it.
But Amazon also was really good at running Elasticsearch.
And so Elasticsearch changed their license,
like I think like a year or two ago,
after, you know, like years of people contributing to it,
thinking it was like true open source they changed the
license to be sort of a source available license to prevent amazon from using it but they really
upset a lot of people who were like i contributed to this project i thought it was open source
and you're changing the license on me and so it's a tricky area yeah yeah it's it's wild yeah i i think you really have to
be providing additional value i think that the license model it's just very tricky
to get right i mean i wonder if there's any data on financially how that ended up like
it's counterfactual right we'll never know what would have happened if they hadn't changed the license but what we could do is we could see okay once they change the license
then i guess amazon would have to stop just having their own fork of elastic search and then how many
people went to the elastic search it'd be really interesting to see a post-mortem on what the
effect was of that yeah one thing amazon has now is is they used
to host neo4j and now they wrote their own called neptune they have their own graph database and
that's the other concern is is you know like you could have a really well-crafted license but then
like what is your actual ip you know and what And if Amazon makes their own object database,
how can you sort of prove that they took your idea, right?
Yeah.
And I believe with Elasticsearch
that they rebranded their Elasticsearch type product
to have a different name,
but under the hood, it's probably the same thing.
Yeah.
Yeah.
So not to say it's
all doom and gloom though i think databases are are the trickiest area but if you look at
like wordpress is probably like one of the big successes in my mind yeah like i think like all
of the internet uh runs on wordpress if you look close enough. Yeah, that's right. And it's completely open
source and all they do is offer hosting for WordPress and people, you know, are happy to
use wordpress.com because, hey, they're good at hosting WordPress. Yeah. WordPress is a great
example. I'll give a little shout out to my wife. My wife has a site called, what is it called?
I'm totally failing here. It's called Lone Star Family Fun. And so my wife has a site called, what is it called? I'm totally failing here. It's called Lone Star Family Fun.
And so my wife has a site where she posts
like fun things to do around Texas for kids, right?
So for families.
And so I was helping her set it up years ago.
And I knew that WordPress is gonna be the thing
because she didn't have to do anything that complicated
and WordPress super popular.
But when you search for WordPress, you originally get like bluehost.com and some
other ones. And so this is similar to what we were saying with Amazon, where someone
is hosting WordPress. And so you could say they're kind of undercutting WordPress.
And we ran Bluehost for less than a month. And then we ended up switching to wordpress proper and it was ultimately because
of bad service so so this is like this is where what is it called like customer service is key
right so wordpress you know even though it's open either open core or entirely open source
and anyone can run their own wordpress site relatively easily. They have just phenomenal
customer service and they've built a moat through interacting with a lot of people who want to start
websites. So for example, in my case, I was there helping my wife out, but we'd go to Bluehost and
they're asking all these really technical questions and what's your DNS entry and your CNAME name record and and he was able to do all this but normal person would just would have
a lot of trouble there right someone who's not really tech savvy you know wordpress has all of
those battle scars from putting up so many sites right and so they the wordpress site creator like
almost knows what you want and it's like an eight ball magic eight ball it narrows down what you want and then gives it to you so so all of that is to say that you could easily build
uh you know an open core open source project that is and monetize that project through just
you know relentless you know care and and love for your customers. Yeah, totally. I feel like it's interesting.
If I were building an open source product project,
like I like to make like command line tools and stuff, right?
So I could start making that if I were following some of these things we
discussed, right.
If I might want to build up a community,
so like get on Twitch or something and like show people how I build it,
build up a following around that make
it open source but then like it's hard past that getting supporters like how would you get people
to pay for a developer command line tool well people don't really pay for developer command
line tools right like that's not i mean maybe some but the next thing i would probably try
is like oh are there like software as a service
components that that i would add right like is there okay it's a command line tool but maybe
there's something i can do in the cloud that kind of alleviates some of the burden like with earthly
it's a build tool and so you can use it in jenkins but our ultimate plan is to have our own like kind
of build servers in the sky and because of the way we've structured things, we will be able to build people's software much faster than, you know, CircleCI think about that. Like, okay, I want to build something really cool that's open source for people to use. And then if I want to take it to the next stage, like what
do businesses, you know, what are they willing to pay for? What are the problems they have?
Yep. Yeah, that makes sense. I think too, with open source, I got a lot of pushback when I added
instrumentation to Eternal Terminal. You know, people were very sensitive to that and to this
day you know every now and then we'll get an issue you know now it's like every time someone
this is kind of like a bit of a tangent but anytime i see an issue that's related to documentation or
something like that i always tell the person like file a pr and even if it's redundant documentation
it means that person didn't find that item where, you know, we put it, right? So
file a PR and whatever you write, we'll put it into the site. And so now most people are pretty
copacetic with it, you can turn it off. But there's a lot of pushback with adding instrumentation.
And there's no way to hide it. It's an open source project. So everyone can go to the code and see,
oh, you know, when there's a crash, you know, it goes and sends a crash to some web endpoint
somewhere. So I got a lot of pushback for that. But I'm really glad that I did. Because even you know when there's a crash you know it goes and sends a crash to some web endpoint somewhere
so so i got a lot of pushback for that but i'm really glad that i did because even though i'm
not making any money from eternal terminal it still matters to me the developer experience
and so i still strive to make that better with you know a little time i have that i can spend on it
and so you know in the case of, there are clear things that we can do
to make it better. And I could come up with like a top 10 list of things that I would do to improve
it. And so you need to do that, collect that data and focus on giving people what they want and what
value matters to them. And you'll hear a lot of things we talked about already. There are things that don't really matter to the creator very often, like auditing.
Very few people who make an open source tool care how many times someone goes to this part of the tool.
But companies care, right? that might mean, you know, building things that aren't that interesting to you, but are really
important for that company and allow, you know, you to be funded to build everything else. And
this is similar to going back to your example, you know, Michelangelo, you know, people at the
time did a lot of like religious and cultural icons and these things, because that's what
brought in the bills, right? And a lot of these people were really religious so so they're not
cynics or anything but you know that's what brought in the bills and then they could you know
do like their artwork and their craft and and do both of those at the same time yeah i was just
thinking like if you wanted to make yeah like what imagine you got a lot of requests for eternal
terminal that they wanted like some way to have
a central server so that they could both you know so they could punch out through firewalls by you
know reaching out instead of in then that might be like a commercial you know add-on like oh you'll
somehow reflect the connections off some central server oh yeah yeah like like what is that called
you know when they do the web rtc and if you can't do a punch
through a turn like a turn server that like reflects the information yeah i think you know
for companies using a terminal i think a lot of them you know want auditing i want the ability
to say okay who logged into this machine and for how long and that's definitely a business need
um another example here of someone doing this right is, and we had them on the show,
is Vercel. So Vercel makes Next.js and they also make a hosting system called Vercel. And so
you can do like NextUp or something like that. And it will by default pick Vercel,
although it's open source, so you could pick other things and it would take your site and publish it to Vercel.
So AWS, and so Amazon's going to come off looking like a jerk in this podcast, but it is what it is.
So Amazon made their own version of Vercel called Amplify. And the user experience is just terrible. It doesn't work. I ran into so many errors. I would go through GitHub issues and find issues with the same error and so many thumbs ups and no progress. And so they just didn't know, there's a David and Goliath example, you know, even though Vercel is, I want to say maybe 200 engineers, maybe that's being generous, they're able to provide just a really nice experience. And so, you know, as an end user, I tried Amplify and went back to Vercel like almost right away because Vercel's never not worked even as I've updated the project. Yeah, that's a super interesting example. And I think
if you're building an open source project, because like you want it to exist in the world,
and then like, okay, I can put more resources into it. If I get funded, I think you approach
it differently than an organization that's like, Oh, yeah, another thing to run in our cloud.
Yeah, like, I think you're much more invested
in the process yeah there's a cool tool called buff it's like with one f buf uh it's like a grpc
and protobuf linter and so they have it's open source their command line tool but then they have
some additional features where like you can document things or i forget what their i forget
what their feature ads are but they're all like kind of hosted on their website right
so there's kind of like a oh like a schema registry for your protobuf files that you can host with
them but like i talked to some of the developers there and they just care like really a lot about
protobufs and the people have been using them wrong and you know here's problems that people
hit with grpc i think that really the real secret to to funding an open source project is like that
it's something that you're really you know impassioned about and you know you want to talk
to people about it and you want to make it better yeah that makes sense and i guess so so maybe we'll
end it by just talking about we'll take turns talking about how like uh how you can get your
project funded or what it takes and i think we talked very mechanically here but from my perspective
a lot of people who build things are people who love systems and love things and so
it's not intuitive to then sort of go out and solicit.
It's not intuitive to sort of be like a product advocate
and go out and solicit advice
and build the product that other people want, right?
And so most products like a Red Hat, for example,
it started as like a hobby project
where this person was building something for themselves.
And so then at some point,
you have to sort of look behind the mirror
and build
the product for everybody else that's a hard transition and you see it everywhere i know
musicians i have friends who are musicians but they're only making the music for themselves
and and so that you know just it's kind of like a hard thing to explain for music it's much more
clear in software but it ends up being you know my friend's music ends up
being like super technical in certain areas that most people can't really appreciate and it's sort
of like climbing on top of challenges that they faced in their mastery of their instrument that
like no one else can really relate to right and it's the same kind of thing where you know you're
going to have to really be good at starting on your own or with a small group and building something that's going to take a long time, many hours by yourself in your basement.
But then also have those skills to go out, ask the audience, solicit feedback and build an ecosystem.
So to have a really successful financial open source project, you have to do both of those things, you know, either as a partnership or by yourself.
Yeah, I totally agree. And yeah, like the key in my thinking, like, if you're having an open
source project, like just, you know, I built something, I think it's kind of cool. And I
throw it up for myself. That's great. if you really want to build a lot of traction probably it's just important that
you are solving a problem that other people have and and oftentimes you know that's just the case
like you know i have a problem and i build a tool for it and other people have it but the only real
way you can find that out is probably by talking to people you know like just like ask you know other people who you think might use this project if it would be helpful
like you know earthly you know i kind of mentioned that problem of like having the build fail in ci
and trying to have to poke with it you know there's many solutions to that problem but i think what's
important is that like usually when i talk to people and i have that complaint like they
immediately understand like oh yeah that's a pain and so i think you want
something like that you want to have a problem like a clear problem statement you're like a lot
of people have this problem and even if i'm not going to make a business out of this you know
i just know if i build this open source project that it will serve a lot of people's interest
totally makes sense i think it's a phenomenal way to end it. So Adam, thanks so much for coming
on the show, being a guest host. We've had a lot of guests. This is our first time with a guest
host. I think it was awesome to have you on board. A really great episode. And thank you again for
putting in the time and coming on the show. Yeah. Thanks for having me. I apologize.
I got a bit of a cough and I took a lot of cough medicine.
So hopefully everything I've said is coherent.
It sounds totally fine.
A lot of folks don't know that,
you know,
for the,
for a duo episode,
you know,
an episode that isn't,
and even for the interview episodes,
you know,
we do a lot of prep works.
There's a lot that goes behind the scenes on really any podcast and ours,
ours as well.
So it's a huge effort.
Thanks again,
Adam,
for coming on and a phenomenal episode.
For folks out there,
we have a couple more interviews lined up,
but we will probably do a couple of duo episodes as well
over the next couple of months.
And thanks so much for listening,
for supporting the show.
And if you want to catch Adam's show,
this show is called the Co-Recursive Podcast.
It's phenomenal.
I recently interviewed interviewed we talked about
the one we that you mentioned before we uh started recording yeah is that live okay it's not it'll be
it'll be may may 1st or 2nd ah cool so you'll hear an interview between adam and a gentleman
who worked on the mars rover which is uh super super cool so thanks again adam thanks folks
out there for listening and we will catch you on a couple of weeks.
Music by Eric Barnella.
Programming Throwdown is distributed under a Creative Commons
Attribution Share Alike
2.0 license. You're free
to share, copy, distribute, transmit
the work, to remix, adapt the work,
but you must provide an attribution
to Patrick and I
and share alike in time. you