Tech Over Tea - The Importance Of Open Source | Dan Brown
Episode Date: June 21, 2024Last week I discussed a blog post about FUTO on the main channel, and here on the podcast we have the author of said blog post Dan Brown who also happens to be the developer of the Bookstack project. ...==========Support The Channel========== ► Patreon: https://www.patreon.com/brodierobertson ► Paypal: https://www.paypal.me/BrodieRobertsonVideo ► Amazon USA: https://amzn.to/3d5gykF ► Other Methods: https://cointr.ee/brodierobertson ==========Guest Links========== Github: https://github.com/ssddanbrown Website: https://danb.me Mastodon: https://fosstodon.org/@danb Bookstack: https://www.bookstackapp.com/ Bookstack YouTube: https://www.youtube.com/c/BookStackApp ==========Support The Show========== ► Patreon: https://www.patreon.com/brodierobertson ► Paypal: https://www.paypal.me/BrodieRobertsonVideo ► Amazon USA: https://amzn.to/3d5gykF ► Other Methods: https://cointr.ee/brodierobertson =========Video Platforms========== 🎥 YouTube: https://www.youtube.com/channel/UCBq5p-xOla8xhnrbhu8AIAg =========Audio Release========= 🎵 RSS: https://anchor.fm/s/149fd51c/podcast/rss 🎵 Apple Podcast:https://podcasts.apple.com/us/podcast/tech-over-tea/id1501727953 🎵 Spotify: https://open.spotify.com/show/3IfFpfzlLo7OPsEnl4gbdM 🎵 Google Podcast: https://www.google.com/podcasts?feed=aHR0cHM6Ly9hbmNob3IuZm0vcy8xNDlmZDUxYy9wb2RjYXN0L3Jzcw== 🎵 Anchor: https://anchor.fm/tech-over-tea ==========Social Media========== 🎤 Discord:https://discord.gg/PkMRVn9 🐦 Twitter: https://twitter.com/TechOverTeaShow 📷 Instagram: https://www.instagram.com/techovertea/ 🌐 Mastodon:https://mastodon.social/web/accounts/1093345 ==========Credits========== 🎨 Channel Art: All my art has was created by Supercozman https://twitter.com/Supercozman https://www.instagram.com/supercozman_draws/ DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase we may receive a small commission or other compensation.
Transcript
Discussion (0)
Good morning, good day, and good evening. I'm, as always, your host, Brodie Robinson, and today
we are gonna try not to get in trouble. Um, we're gonna, we're gonna, you know, talk about open source,
we're gonna talk about why this is important, and I'm sure there's gonna be certain people that either
willingly misunderstand what's being said, or, um, you know.
I've had plenty of people respond to some of the things I said about
the Futo video.
So welcome to the show, Dan Brown.
You are the developer of Bookstack and you also wrote a recent blog post about Futo redefining
the definition of open source.
So I agreed with most of the things you said, but I guess before we get into the main point,
how about you just explain sort of who you are, your background, all that sort of stuff.
Sure.
So I'm Dan, a full stack web developer in the UK.
I started development probably about 2012, looking to create Minecraft mods and Android
apps.
And then I think somewhere along the way I got lost and confused
between Java and JavaScript and then I accidentally learned a JavaScript tutorial and that sent me on
the path of web. So I got further into that and switched from being a sales engineer for a
temperature sensor company. So it was a fairly significant change but then yeah I went into
a new job in web development and then ended
up working there for about seven years but during that time in about 2015 I came across a use case
for a particular application or a particular need that we had which is to centralize our
documentation so I was looking for options out there, and the main offerings that looked suitable were commercial offerings,
the main one being Confluence.
But I really didn't like the idea of having to go to our billing department
to add a whole set of new users to our documentation system.
I think a system like that is really core to your business.
You don't want to be limited by fees for getting people onboarded.
So I looked at open source options but I saw a bit of a gap in the market for a nice all-in-one documentation platform
with a nice easy to use user experience that's kind of focused on that ease of use so if someone
knew word they could use the documentation platform so I thought that would be a fairly
simple endeavor just hooking up a WYSIWYG editor to a database, really.
But I carried that on and almost a decade later, I'm still trying to build that WYSIWYG editor hooked up to a database.
So that was mainly a side project.
I did some interactions with open source before that, but that got me much deeper into it,
especially like the maintainer side
and all the trickiness that comes with that.
And yeah, so that was a side project up until about 2021
where I left my full-time job to work on Bookstack
as my main focus.
It was just an experiment at first
because I wasn't getting any solid funds.
I was getting a few donations that I was just forwarding on to a lot of the projects that we depended on.
But it's at that point where I thought, OK, let's stop that. Let's see if this is viable.
So I had like six months in mind and my parents initially supported me during that first year throughout 2022, just for a bit of that.
Otherwise, I also dipped into my savings quite a lot.
But by 2023, I managed to then be kind of self-sufficient.
So I now cover my own living expenses, essentially.
So I'm no longer dipping into my savings.
And then hopefully this year should be even better.
And also during those years,
probably because I've had a bit more time,
I've got deeper into the open source world,
just watching across and looking, kind of interested at the social complexities because open source, especially from the maintainer point of view becomes quite a big social element to that.
And in particular, I got interested to seeing
how people may misrepresent open source
or misrepresent licenses
or how they kind of look like they go against
what I would expect to be,
kind of the spirit of open source.
And it's doing that that i got deeper into that and created
a project around that which is open source confusion cases project that's on github
where i kind of look at those cases um so it's more to document those to see if there's kind of
common themes common sources of that kind of activity.
And yeah, just to sort of understand
that social interaction a bit better
about where that comes from.
So when you start deciding to get more deep
into the social side of it
and understanding really what was going on
with these licenses and going on with open source,
when did that switch actually happen for you? really what was going on with these licenses and going on with open source.
When did that switch actually happen for you?
I'd say the general social side was building up as I spent more time working on my project and probably going more full-time on it than I'm looking at how other projects organize
and how other companies act.
projects organize and how other companies act.
And through that, you see the challenges about what faces open source companies, projects,
code, and the licenses around that.
And I think one of the initial cases was one that I came across on Reddit, where a developer was quite scared because they had forked a project.
And they had, I think, made some changes and contacted the original developer of that project.
And they had got back, I think it was quite threatening messages.
I have heard similar cases to this before.
Like, this is not like a one-off thing.
I've heard the developer of...
Was it... I think it was Distrobox.
I think the developer of Distrobox
has told me something similar to that.
I might be thinking of someone else,
but yeah, like some people don't understand
like what it means to actually use these licenses
and what it means to make something open source.
They sort of just think they're...
I don't know how people think about it, actually.
I think people just don't really know what they're getting themselves into't know how people think about it actually i i think people just don't
really know what they're getting themselves into yeah i think people just see them as complicated
legal documents a lot of the time and may kind of gloss over those and or read summaries that
i've seen a lot of cases that kind of don't relay the full picture so the the end user of that
license doesn't understand the full text of that um and that can lead to questionable things but then it's always a
difficult case of whether it's a misunderstanding whether someone's being potentially you know
specifically quite malicious with that and it was in that in in that case that kind of really warned
me to these situations just because that person that posted on reddit was
seemed quite scared because they would be legally threatened and the developer was saying remove
everything because they've now made that a commercial project so they're rescinding the
license right um which i said that they can't do that so i just created a clone a private kind of
not private it was a public fork on github but just complete detached so
then they could go in there and play with that separately without potentially being harassed by
the original developer um but yeah that was the first major case and then probably the one that
got me really into looking at the licenses was one that's in my confusion cases project and that's for cal.com which advertises itself as an open
source alternative to calendly so this is an open source um project that's under the agpl v3
and they had i mean i originally came across this from another project um a very little known
project didn't have really a following and again posted on reddit and i queried one of the lines
in there because they had something along the lines of if you clone this to a private location
to abide by the agpl3 make sure you keep it public and i kind of looked at that and as far as I'm aware in terms of the AGPL3, nothing
like that exists. I haven't really seen that in any licenses because it's not very practical.
Because what does that essentially mean? As soon as you put it down, are you now in breach of that
license? Is that private online? Is that private locally on your computer? I mean, as soon as you
make a change, you have to make sure it's published as soon as you possibly can.
What does that mean?
So I queried that, and then they said
they just copied it from cow.com,
and that's quite a common thing within this landscape,
is that one person will misrepresent a license
or misunderstand it,
and then that kind of spreads to other projects.
So I queried it with them.
So this is the first time probably having an actual
direct interaction with a established project and the full conversation is available i've got a
screenshot of it as part of that project um but yeah i went into their slack and just queried
that line and it was just really interesting to me throughout that conversation and then from
subsequent conversations on hacker news i think it was that i got the feeling they didn't really
understand the full terms of their license they were quoting me um like summaries from
other websites to summarize the agpl and things like that but i was asking you know what specifically
prevents me from cloning into
a private location and what counts as a private location and it was very very mixed and they
couldn't quite a specific part of the license and I think they just generally had a wrong idea of
the license because they were saying how this license was intended to prevent big companies like Amazon stealing projects.
And they pointed to Elasticsearch as an example. And under the AGPL, Amazon can do exactly the same.
If anything, Amazon kept that project open source when the original company changed their license.
So they kind of had the wrong idea
about what this license does for them and how it protects their um their project in general and i
just kind of found that interesting and also their kind of i guess stubbornness not to take on the
information because if you look at the wording and it's still on there actually still on the project
let me just
double check the current wording because I think it did change
slightly
if you can show me where that is
that would be awesome
so this is
are you on my open source confusion cases
project
no, I mean the
if it is still on their actual website.
Oh, okay.
Yeah, if that is still there,
I would definitely like to show that.
This is the joy
of trying to live-find material.
Yeah.
I don't really use Discord
for
screen sharing. Can I still post this?
Oh if you can just send a link that would be fine
Yeah but how do I actually
Oh don't try to screen share
you're going to break my layout
No I'm just trying to get back to
get back to chat
How do you get a chat window?
Okay
I pop the window out i'd actually know how
to get back to the main window
this is this is incredible let's see how
long is it gonna take you to find it
is there a way to get there is definitely
a way yeah
don't go back onto your name.
It just goes back onto this video.
There should be a button.
I feel like such a boomer right now.
There we go.
There's a tiny little arrow in the bottom corner.
Yeah, there you go.
Okay.
Thank you.
Okay.
Awesome.
Awesome.
Oh, wait.
Hold on.
That might...
That's not...
That might be outdated
bear with me
Okay, yep
Do you edit these videos?
Or are you viewers going to be having this awkward
long adventure?
I might include it
Okay, where are we looking on the page? What am I searching for?
So hopefully
that takes you direct to it
So it's the setup heading, So it's development setup heading.
Okay.
Yep.
Under there.
And under step one, you'll see clone this repo into a public GitHub repository or fork.
If you plan to distribute the code, keep the source code public to comply with the HCPLV3.
To clone in the private repository, acquire a commercial license.
Right.
So, it's that... You know, if it was just the first text,
I'd say it's just misunderstanding.
But it's also they bank that up
with a link to their commercial license conveniently,
which goes to their sales page.
Which, to me, that feels like
they're happy to be misleading
about the AGPL3 to send people off to their sales team.
Well, it'd be one thing if they were doing that beforehand, but after they'd been informed about it, continuing to do that, that's where I think it would come from.
Yeah, and this was a couple of years ago now.
So, yeah, and that isn't representative of the AGPL3.
There are conditions with the AGPL-3. There are conditions with the AGPL-V3,
but it's a complex license,
and this is a common thing that people use that license specifically
to scare people into doing certain things
or abiding by certain extra conditions.
Kind of like it's done here.
And I can't say this is malicious.
It might be perfectly fine,
and they're just kind of stubborn about a randomer coming up to them and questioning this when probably no one else has done to be fair
but with the agpl3 you'd only have to you don't have to keep the source code public you just have
to distribute to those that you're providing the application to which does mean also just
accessing that if you're hosting as a web app people are accessing it you also have to abide
by those terms provide them access to the source code but there's loads of situations like if you're hosting it
internally with a company you could use that without having to make it public with edits and
everything like that or you could uh you know host it for a particular user group and as long as
they only they have access then you don't need to distribute to them it's only when you the
service is public itself that you might need to provide or have a means to access the code publicly.
Yeah, that's one of the things a lot of people misunderstand about GPL-style licenses.
You don't have to have it publicly on some GitHub.
That's not what that means.
It's not that every single person has to be able to access the code.
It is the users of the software that need to be able to access it.
to be able to access the code it is the users of the software that needs to be able to access it so if you only provide it to a certain group of people if you have this software and the only
way to access it is behind a paywall the only people that need access to the code then are the
people behind the paywall once people have access to the code they're allowed to share it but the
company does not have to provide it to you if you are not one of the people actually making use of it yeah exactly it's all about it comes down to distribution
you know if you're receiving the product and it's under that license you need to have the access to
the source going to be able to build it and things like that um so which is quite practical and a
sense and it allows things like being able to charge for software and build things around that.
Of course, everything can kind of be weaponized.
Like Red Hat is a classic example of recent times
of they're not really going in the spirit of it,
but they'll sure as cancel your account
or if you break the terms of their service,
which is if you exercise your rights under the license effectively.
Yeah, Red Hat's a example
that turned from being very open source friendly
to doing this.
Like they're still technically following it,
technically.
Like, yeah, I guarantee they've spoken to their lawyers
and know exactly where the line is
and getting as close to it as possible.
Like they're not, they haven't done that just out of nowhere now that you might be able to argue in a court with what they're doing is not allowed but they definitely know that they have
some ground to stare i stand on the companies that i find really annoying are the ones who
they are willing to share the code but they're only willing to do so
in the most obtuse way possible it's like okay well we will send you the code on 12 cds that
will mail to you with the slowest shipping possible it'll get to you in a month and you have to pay for the shipping costs. Like that's still within the realm of a sensible way to distribute the code,
but it's clearly not in the spirit of what this system is supposed to be.
Like they,
they know that they have to provide the code in some form,
but they really don't want anyone to try to acquire it.
Yeah. And that's why you end up with super long licenses like the AGPLv3 and
those class of licenses where they try and account for a lot of these scenarios, like
that tries to build in to, you know, you're providing that source under reasonable terms,
you're not encrypting it or doing something stupid and things like that. And you're using
standard tools. Um, but then but then you know these licenses get
so long and then people read summarized versions and then you get into kind of misrepresentation
and then you have a lot of people who
github i think does a good job at making it so it's easy to provide a license and get lab in
the same way but the way they summarize a license is only the very
very minor points of it a lot of people apply licenses to projects without actually understanding
what license they are applying and what that license actually entails for both them and for
other people interacting with the codebase. Yeah, for sure.
And I mean, if you're publishing some software,
it's really important that you fully understand the terms
that you're providing that software under.
And it's a couple of times just this year,
I've notified projects that are using the AGPL,
often in somewhat defensive ways and where they might have also a
SaaS offering that has more features. I've notified them to say hey you need to understand with this
license you don't have the right to relicense other people's contributions
you've had past pull requests
but you're relicensing that
for your commercial offerings
you need to have permission
for that and it's really important
that you kind of know that from the start
and that
gets onto the whole kind of area of like
CLAs and how they're used
these licenses
which a lot of like CLAs and how they're using these licenses, which, you know, a lot
of people are against.
And I, you know, I don't blame anyone for being against that because a lot of them don't
make it clear that you're handing over your rights and it might not be clear to the users
exactly what that means long term and what that means the original authors that you're
contributing to can do with
that um but i think they can still be they're a common tool um but it's just uh it's just a shame
if they're kind of again misused yeah yeah for sure like licensing is a very complex topic and
it's it's weird right because it's a topic where you really need
to be a lawyer to understand it properly but at the end of the day we have this whole open source
ecosystem where it's run by developers for developers and it's kind of just like... People have this general rule of thumb of how things should be used, and I think...
I think for the most part, you're probably safest go-
and this is why a lot of projects nowadays are licensed like this,
you're safest just going with something like an MIT license if you don't
really know what you're getting into, because at the end of the day, if you want to do open source,
you're gonna have to license it somehow but like it's
hard to decide a license without really knowing in depth what each of them
actually do yeah yeah I mean it's tricky because a lot of people don't like those
permissive licenses um because of the
freedom because they're because they're so they're really focused on the freedoms of what the user
can do with the code um whereas the licenses like the copy left ones like the gpl licenses
do a great job at ensuring the freedom of the code to all users in general um so it's really
a balance of freedoms and where you lie on that
but the permissive licenses tend to have um much simpler text and they're usually a lot easier to
read you're definitely gonna get comments because you just referred to open source licenses as
protecting freedoms there's there's always people i have arguing with me every time i bring this up
like i people will say oh they're not protecting freedoms because they're free for the companies
to abuse you you know when people have a i have a lot of people who are very diehard free software
people who will argue to the death that free software is the only correct way to license software and open source
because of what companies are able to do with it you know when you have someone who is not willing
to have a proper discussion about free software there's gonna be uh there's gonna be some
interesting arguments being made yeah that always tends to come up because at the end of the day, you have different sets of freedoms, different avenues for freedoms, and they're not always compatible.
In a lot of the case, they aren't because you can't do something like the GPL, which is, as I said, great at making sure the code stays open,
great at making sure the code stays open while also giving totality and freedom to people that want to do whatever they want and want to mix that code with whatever other code
that they have.
Yes.
So yeah, you have to decide what freedoms are important to you.
And on that note, with free software versus open source, that comes up a lot. But in practical terms, again, going by the FFSF guidance, they're very similar in functional
use. If you had a Venn diagram of them, they'll be pretty much overlapping, just with free software
being slightly within the open source circle, in that all free software is classed as open source but not all open source is classed
as free software with the difference being fairly minor and i don't have any examples to mine so i
can't remember exactly where those come into play but functionally very similar but with a very
different philosophy and origins and backing and that's where you can often get some contention
before we move on to another topic i
kind of want to ask you about like not the philosophies themselves but about the terms
about the terms free software and open source because i've brought this up plenty of times
myself i feel like both of them are really bad terms and have a lot of really annoying baggage
attached to them because free software most people when they think of the term free,
they think of monetarily free.
And then open source has kind of...
You have a lot of people that think, and this relates to the Futo thing,
think open source just means source available.
Yeah, don't blame anyone for thinking that.
These terms are so ubiquitous nowadays, especially to developers coming to AI or anyone interested
with open source projects in any way, that you make those assumptions.
I think that's just natural because it usually will be some text saying, hey, check out our open source project here.
You go there, you see the code open, and you make that assumption.
But realistically, I think that's a natural part of trying to get any kind of shorter branding sexy term
that summarizes a much wider thing because you know you don't want to be quoting all 10 points
of the open source definition every time you're talking about a project so there's always going
to be kind of that education piece to it and that's where I think some of the difficulties
can lie in this part of trying to communicate,
of kind of protecting that original term and educating on that.
Because, you know, when you come into it, you often are focused on the viewing and or the using.
Those are the important parts.
And it's not really until you get deeper into it until you're maybe you know choosing a
license for your own project or you spend enough time to see how these projects evolve over time
that you kind of see how important the other aspects of openness are and how those rules of
the osi stewarded open source definition come into play and how they protect the freedoms that it ensures
because it's not open just based on viewing
because if someone steals the GTA 6 source code,
puts that on GitHub,
it's not really open source.
I mean, you can get to it,
you can view it,
but you're essentially handling stolen goods at that stage.
And so you certainly don't
have permission to even see that well example that's already happened is the windows xp source
code leaked a couple years ago whenever it happened um yeah the windows xp source code
leaked like that doesn't mean it's now open source it's just the source like this is the
other problem because you have source code that is available, you have source available, and then open source.
All three of these categories are very different.
Both source available and open source.
These are code bases that have been licensed in a way that you're allowed to see that code, you're allowed to access that code,
and depending on whether it's source available or open source, there's different things you're allowed to do with that code.
In open source, you're allowed to derive work from that and things like that.
But then there's source code, which is available, which is, you know, all of those categories as
well, but also leaked source code is part of that as well. And when you're looking at this from a
non-technical user perspective, when you're're someone who especially if you're someone who
doesn't have a programming background you don't have a background in open source all of these
look very very similar absolutely yeah and that's why i don't think we should uh you know necessarily
go off the people for using the wrong term um because there is that education piece because
i wouldn't have known that until getting into it and as i said there's always going to be that
when you're shortening a term and it's but i do think it's it's important to defend a term i mean
i guess the way that i see it is that a term like open source um it is up to the public
it is up to the communities for how something like that is defined if everyone goes a different way
the osi definition doesn't mean anything but at the end of the day i think that's only so
ubiquitous now because of the efforts that are being built up around it, that have been built up to that
definition, that have been built around publishing software under those terms. And it's still the
case today. I see a lot of comments saying, oh, it's a lost cause, just give up on it and use
something else. But I really don't agree because I still see like 99.9% of the software that's put out there
under a banner of open source still adheres to those essential core freedoms that the
open source provides in viewing, use, modification and distribution.
So I think it's not worth just binning it up and giving up because other people are
trying to use it because realistically that is a quite a small percent.
And even though a lot of people say, oh, we should use free software instead or,
or leave a software is if it happens for open source, nothing's to say just won't
happen to those terms as well, where there's value, where there's reputation
as there
has been built up around open source from all the work that everyone's put into it providing code
under that definition then people will want to use that for marketing because it is a sexy term
especially for you know vc funded startups that are really trying to take every advantage they
can they they want to have every banner.
And it's, you know, open source is great for adoption.
It's an amazing adoption driver, which everyone really wants to in their early stages.
So, yeah, I think it's a difficult one.
But I think fundamentally kind of made a decision that is worth worth uh trying to defend and educating
about because there always does need to be that kind of step with any kind of shortened term
the numbers are kind of not properly tracked but this is a um this is a github blog post from 2015
according to those numbers which i'm sure have changed since then, MIT was 44.69% of projects.
15% were other.
I wish they properly explained what that other was and broke that down into a better category.
Third place was GPLv2 at 12.96.
Fourth place, Apache.
Fifth place, GPLv3.
And then sixth place, BSD3 clause.
And then it's not until you get under that we start seeing things like unlicensed, which is only at 2%, but even so.
Like, on a more recent numbers, it's MIT, Apache, GPLv3, MPL.
MPL I don't think was around at the time, and then BSD3 clause.
All of these, obviously GPLv3 is a free software license, but the rest of these are very much
within the realm of what we define as an open source license.
And a lot of those are quite permissive as well, which is what you'd kind of expect on,
especially on a platform like GitHub, where permissive licenses are going to be way more
useful for things like libraries, which are going to have a lot more of in general than
projects, which tend or are more likely to go down the copy left route, because it makes
more sense at that higher level um and plus yeah
as we said earlier that those uh permissive licenses are simpler and i was certainly kind
of less scared of those permissive license when coming into open source so it's usually just an
easy route to go to when you mentioned uh open source and vc funding i was reminded the fact that you have a lot of ai
companies referring to the models they have as open source models whereas they're not really
open source what you have is open training weights which is a very very different meaning
and they're kind of just using the the goodwill attached to the term of open source as a way to get attention for what they're doing.
Yeah, it's interesting to see then how open source applies to different categories.
And I'm pretty sure the OSI are currently going through a process to try and define what that means in the AI landscape
because it would be useful if all companies kind of mean the same thing because I know that some
companies will go a bit step further and open their training data as well or some companies
will then reduce that training data to make sure it's only done on certain acceptable sources so yeah as we
get new categories of software that change software especially with you know what does it
mean when stuff's gone through a washing machine into a into a bunch of numbers um how does that
get represented and what's that considered as when it comes to open source so yeah it's not
definitely not easy things to consider but yeah i think people
are people are on it it looks like at this stage their plan is to get a initial stable version of
their definition by october this year so we should have an answer, at least an initial answer, sometime soon, hopefully.
But anytime...
Yeah, but then there's the question, will companies care?
You know, is Facebook going to start caring what the OSI say?
I mean, a lot of their software that they've...
You know, standard software they've published as open source will be under those um osi approved licenses that fit that open
source definition but but yeah whether they will change to to suit uh the osi i don't know remains
to be seen yeah because a lot of the well the osi is kind of being grandfathered in because it's
just been this definition has been around for so long at this point i don't know if it's going to apply retroactively to what is
happening in ai now i i hope it does that would be nice and we have a clear understanding of what
is open source and what is not open source but yeah i have that same worry as well and
i expect companies to just kind of hand wave the term away, and they're already using it in weird
ways now, I, I don't expect, I don't expect that to change, at least anytime soon, hopefully at
some point in the future it does, but at least in the short term, I, I, I do think it is gonna be
just a mess of companies just trying to get VC funding, trying to build up goodwill, trying to do this and that.
And you're going to have non-technical users again
who rightfully don't understand what's going on
because they're not technical users.
They're someone who's just using the project.
They see a news article.
It's like, oh, this is open source.
Oh, it's open source.
That's cool.
But, you know, they're focused on other things.
They've got bills to pay.
They've got a day job and all that stuff.
And it's not their job to care what the definition is.
So I think it's important for the people who do understand this
to take the topic seriously
and actually treat this terminology with the respect that it deserves
to make sure that the people who are in this space
and should be understanding it
that they actually understand it properly
exactly yeah because i mean even if you're you know putting your software out there to a whole
bunch of new users and they don't particularly know or care about these definitions. There's still that core audience base that might be quite attached to open source,
like myself and like you, that knows the basic freedoms it represents.
If you start seeing projects and content that's provided under the open source banner,
it can be quite misleading.
Especially if that's not ultimately cleared by a license up front on their repository or on their project.
So we should probably at some point segue into the whole FUTO stuff,
because I feel like that is definitely worth talking about.
So where do we start with this um i guess probably should just start with like what futo is because i'm sure a lot of people probably have heard of it because lewis
rossman you know has talked plenty about it but the general idea from my understanding is they
are basically just trying to build software and build software in a way that is more sustainable
because that's sort of a problem we have in the open source space where a lot of people are really
great developers in high school in university and then they want to buy a house and have to
leave and get a real job and that's the Like, there's just not that much money in this space.
And it's a problem that is really difficult to solve.
And individual projects may have solved it, but it hasn't been solved as a whole field.
And we lose a lot of incredible talent just because people need to pay their bills.
And that's totally respectable.
I'm not in the Stallman camp of, you know,
you should only write free software or you should die.
Like, that's just not viable.
I think if you need to go work at Google or Facebook or some,
you know, just some random average dev firm just to pay your bills,
I think that's completely reasonable.
But it would be nice if there was more
of an ability for people to actually
be able to continue
operating in this space.
Yeah, and I think
that comes
down to having kind of honest
and open conversations about where
open source is weak and where it
does make things more difficult because I think I think a lot of those things can be fine in open source if you do
things in certain ways like for example I've managed to cover my living costs but I'm not
earning as much as I was far from it but I'm getting to a point where I'm more and more
sustainable and there's a lot of businesses that are able to make it succeed. So when I see headlines out there saying,
open source is not sustainable, or it needs to change, what they really say is not sustainable
for their particular business model, or for their idea of growth, or for exactly how they want to
run their business or how they want to do things which is perfectly valid and I think being more open about that is important so people
coming into it and know those challenges up front rather than being hit with them later and then
having to revert a course or be trapped by their license, and things like that. And it's, yeah, the FUTO themselves are saying a lot of the right things.
Like they had a video on saying how we need to change the discourse of payment in open source.
We need to be more open about how we should be happy to pay for open source,
and it should be an acceptable practice.
But, I mean, this isn't something new.
I remember when Elementary os put that kind of
paywall up where you can put zero in um well i thought that was a great idea because at least it
it just made people think about the process as they go and try and download that software
they're put up with that barrier thinking oh should i be paying for this i thought it was
open source um which it absolutely is.
But yeah, we need to be open on it.
It's like Krita.
Krita?
I'm never sure how to say that.
I mispronounce everything,
so just don't take my word for anything.
It's like they put themselves on the Steam store
and Windows store and charge some money.
And you see people kind of give them some grief for that, saying, why do I have to download this?
Or what is this? This is a kind of scam because I thought it was free.
And it's like, no, all the power to that project.
We have to find ways to fund projects.
So, yeah, all those things are perfectly valid and they're real problems.
But I don't think that we need to change what open source is to meet those particular problems, because that's what we'd have to do. requirements then it basically fundamentally conflicts on those central freedoms of open
source or free software which is where you get this contention because people really want to
use that open source term because of its reputation its sexiness its uh adoption um but a lot of time
or actually in very few times um they don't want to accept the the the loss of
giving up rights to users that that would require and again that may be not intentionally um sometimes
it is sometimes it isn't um and that's why i think it's important to also accept and somewhat embrace
um other options out there as well such as what
FUTO want to do with their licenses and what their vision is for their software
I think it's perfectly reasonable to be able to define terms to protect your own
efforts if that's what's going to make you a living if you're putting the
effort in and as long as you're allowed to do so as per the terms of the
software that you're using to build that, then yeah, absolutely go ahead.
But doing that as part of open source, I think, is where the trouble lies, which is I think it would be healthier to establish something adjacent.
Because like you said, there's source available, but no one, it's not a very sexy term. People really don't like to use source available but no one it's not a very
sexy term people really don't like to use source available and people say it's confusing
so i think having a term established in that area would really help you know people have a choice
over open source as a term which is where i think um the fair code movement is quite good so I think that was
originally created by the authors of the N8N project the automation software and I think
that's quite emotionally evocative fair code again it's a simplified term so there's an education
piece behind that of what it means which is why they've attempted to define that but i think by having that word fair
i think that's quite a powerful thing that could be branded and i like futile i came across
century doing a lot of um advocation for changing open source and a lot of effort trying to put in by many blog post streams to get users to want to change open source
and I saw they're having discussions over their own licensing which I jumped in and got involved
with and I really kind of try to get them to understand it will be more beneficial if they
kind of create that separate brand because they've got some resources they've got contacts they're
fairly well known within that especially within that vc space um they could really kind of make
some difference there and i think they're going to team up with the fair code uh people and kind
of rebrand that under fair source uh later this year which i think yeah should kind of ease the
contention within the landscape a little bit by providing those options. Yeah, I think the main issue with trying to redefine open source is there is a lot of people out there who are happy with what open source is.
They are happy with the way the OSI is defined it.
They're happy with the way these licenses work.
And if that's what you're happy with, that's awesome, right?
Keep doing what you're happy with that's awesome right keep doing what
you're doing i think if you start trying to redefine open source and you brought this up
in your blog post what you're going to have happen is there are going to be people that are now
even more confused about what it means for this to be open source like are we talking about
futo open source are we talking about sentry open source are we talking about osi open source
are we talking about the non-technical usage of open source like what are we actually referring to
when we are talking about this and the only way to properly know that is you would need to have
a good understanding of the license which in the state
We're currently in a lot of people don't have a good understanding of the license so
Requiring both a good understanding and knowledge of the existing
definitions that are out there all this ends up doing is confusing both the user who isn't really sure about
up doing is confusing both the user who isn't really sure about what protections they have under the software and the developer who may be incredibly unaware
of what they're allowed to do with the software. Like one obvious difference
between FUTO open source and OSI open source is the whole way you can do
funding. The fact that you are not allowed to change
payment links in the
FUTO open source definition
which
I get
where they're coming from with that but
I think it completely kills the concept of
derived works and
I don't think
in the long run is going to make the most sense
to keep a project alive.
It'll keep it alive as long as the developers are working on it.
But if they ever step away, that project is dead.
Yeah, it's about who you're providing those freedoms to.
And those really kind of...
A lot of these cases are where people are putting terms on protect the
original authors for a lot of the time,
sustainability reasons,
instead of putting your code out there to the users,
which is more what open source is really about.
And especially in a case like Futo is a lot of it really makes sense,
especially if you're not deep into this world,
because a lot of things they're sense, especially if you're not deep into this world,
because a lot of things they're saying is like,
oh, yeah, we want to do this to protect other people from freeloading off of our work.
We want to do it to prevent adware, to prevent malware.
And all that seems absolutely reasonable.
And I truly believe they're trying to do something good,
and I think they're doing something good.
But you see, it's like when they talk about
being brought up upon open source, they're confused about it, because they're doing something good um but you see it's like when they talk about being brought up upon open source they're confused about it because they're saying oh
people calling us out for calling us open source but we're just trying to prevent malware and
adware who wouldn't want that um so it's difficult because you then have to have that bit of
past experience and know some history or some see some of those examples and know
the freedoms that these protects because especially on that distribution element
that's the one that's probably the hardest to see because that seems reasonable like
you know an author protecting their work and it totally is. But that does prevent a large class of being able to fork software
and for it to build up over time,
which is not something you're gonna immediately think about
when coming to a project as a new user,
because everything's probably all hunky dory, it's all fine.
And I've seen authors make the case of this as well.
They say, oh yeah, this license,
for the majority of our users,
it doesn't matter that it's not fully open source you know they can still use it and everything
and that's fine for now and that's fine for the perspective of the author
but i think it's more common than ever within the software world that users tend to get screwed over at some point in time or other um either by you know the original authors
changing directions wanting to you know change up the license in terms to suit their business model
sneakily taking bits out of maybe the open offering and put them under a different license
or maybe the company gets acquired um down the line and now the new people
have a completely different idea of what they want to do so that's where these kind of terms can
cause trouble because within standard kind of open source software other people will be able to then
pick that up and take that away it allows momentum to build by allowing other businesses to start using your software.
It's like with my software Bookstack, other people can host it.
So there's now service providers using that for business income.
Other people have asked if they could provide support for that.
And so, yeah, that's fine.
And then there's more businesses using it.
And as you're gaining that momentum around a project,
around an open source project,
that's more people depending on that software
and that's more energy and momentum
that can carry that on past that original author.
And I think that's a really important part
of open source software
is that things can survive past that original author.
It's like even with um futo with lewis rossman involved he says a lot of times you know don't don't trust me don't trust me
you know go by what we're doing and essentially a license like that does require a bit of trust
because that's forever tied to the authors of that software and again
i'm not saying that's a bad thing and he's proved himself very respectable in a lot of ways um but
there still is that kind of implicit tie within the license within the idea of open source there
um whereas yeah open source is really about kind of letting that go. Well, when you brought up Bookstack and people building off of that and hosting themselves,
like, an even bigger example is WordPress.
Like, the core WordPress is open source.
But there are massive businesses that have built around this software, around hosting it,
around doing all of these plugin developments for it.
And that, like, that's awesome. that like that's awesome like that that's
amazing that that's actually been able to happen um but what one of the examples i brought up in
my video about derived works was x3d6 and xorg this is a very long story so tldr version but
in the early 2000s there was a lot of drama with the developers of the project who were actually running it
and other developers who had been working on it for a long time.
In some cases, people who'd been involved in X11 since, like, it had actually started, since the formation of the MIT license.
And the people that were running it at the time they wanted to re-license it do some
commercial stuff with it and a lot of the people who were really core to the project who'd been
around for a long time weren't happy with it people started getting kicked out of the project
and ultimately this led to the fork of x36 that we now know as xorg that ended up massively
outliving that because people just were not
happy with the direction that the original project was going. That project kept going for
another couple of years, ended up dying out. But because this was under the MIT license,
this project was able to thrive in its own way, in a way where it was not still dependent
on the upstream project. Because that's, I think, where the...
where what Futo is doing makes a lot of sense is with soft forks.
If we're talking about something where it's still tracking changes,
if it's like, say, like a Linux distro shipping a modified kernel,
it's not its own separate thing.
Most of what it is at its core is still the original project. I think it makes sense there
but then you have a project like the
ST yeah, not ST, DWM window manager and the awesome WM window manager where
DWM is this very lightweight
basically, it's effectively a framework for a desktop.
And then Awesome came along
and they were like, this is a really cool core.
And they added a Lua plugin framework,
Lua configuration,
this massive, massive changes to the project.
And Awesome WM now stands on its own
as a separate project from what it originally was and I think the people who've
spent you know hundreds or thousands of hours working on this new on this new project also
deserve something from the work they've done there I don't think that just because they started off of somebody else's project initially,
that until the end of time,
all of the payment to that system should keep going back to upstream.
And again, I get why they've done it like this,
and it makes a lot of sense for projects like RayJ,
but I don't think it's suitable for a lot of,
especially smaller projects yeah it hinders options and it hinders
that momentum for those forks to to generate and take off and this is this is the most common thing
that i see around um people what i think misusing open source is they're essentially trying to prevent forks or
they're scared of forks or they want to prevent competitors within their space and that's what
they really care about which again fair enough um as you say that's what's allowed so many projects
especially in the linux community to thrive all the all the different variations of distros and
desktop environments and everything like that.
A lot of those do have some level of commercial backing.
And again, because those groups of people, those businesses as well, have allowed Momentum to build.
And another example of quite recent is Terraform by HashiCorp.
Okay.
And they swapped out the license terms
to a now non-open source license.
Source available, I think, still.
But a lot of...
Because it's a...
I think it's like a production environment tool
or it's a tool to ultimately create specific environments.
I'm not too sure exactly on how the tool is used.
But a lot of businesses depended on it
and there was businesses offering services around that
and that might have been what the original authors were threatened by.
I think they got taken over by new leadership at some point
but that might not fit into their business model.
They wanted more control over their software.
But because there was that following,
because there were people using that,
businesses using that,
and businesses providing services around that,
there was enough momentum for that to be a successful fork
into what I think is now called Open Tofu.
And same with Redis as well.
Developers are not great at naming things.
Redis is a recent example where that got its license swapped out,
and then we got a couple of forks, one LGPL license by Drew DeVault,
and then a more commercially backed version under the original,
I think it was Apache license.
So, yeah, it's a core part of what has made open source software
successful it's just one that you don't realize may be important until you need
to exercise it really right I think that's a really good point when things
are going okay the license doesn't really matter. It's when you need to decide,
are we going to fork this project?
Are we going to do something different?
Where do we go from here?
Where if you've signed a CLA,
if you've got a certain license,
it is going to really matter
the structure of the project.
Yeah.
So in this case, what if Futo gets gets bought what if some of the owners come in and then have you know want to suck all the profit out of it
like we see so many times when companies get bought out of then you're kind of beholden to
the original terms that prevent those other options from really taking off becoming commercial
offerings so yeah it's really important part and that's one thing again why i think that education
piece about the risks of open source is important because i put my software out there i mean it
wasn't commercially focused at all to start with but even now i knowingly understand that there's
risk to that someone could walk a big company could take that on and put a lot more effort into it than i'm putting on and then release that in the open or they could close
it off because it's under the mit license but i'm kind of fundamentally okay i know that i knew that
when i was deciding a license i know that still and i don't intend to change the license because
i think that's kind of a healthy part
of what I want users to be able to do.
I don't want them to be concerned
about extra requirements of the license.
I really wanted this to be able to go into businesses
with limited friction,
but that does limit possibilities in the future.
Someone can take it.
Someone could put me out of business
and then I'll have to get a proper job, but that's the risk of it, I guess. possibilities in the future someone can take it someone could put me out of business um
and then i'll forget a proper job but that's that's the risk of it i guess
yeah that's yeah you know what that's a a good way to put it i guess um
um one of the things that fututo brought up is the idea of
let me find their specific wording
about malware just so I'm not misquoting
them on it
put advertisements or
other malware in our software
this is something you are not allowed to do
I think the issue
with
trying to disallow something like that
is you are in a situation where you now have to define what is and is not
malware. Because one of the examples I like to bring up is what
is the difference between a hotkey daemon and a keylogger? Under the hood
they are both functionally the exact same thing.
They both serve the function of logging the keys that you press and doing some action based on that key press.
The only difference is the intention of that software.
The intention of a keylogger is, you know, logging your keys, sending them to some server, do bad things with them.
Hotkey Daemon, the intention is provide a way to do hotkeys.
But you now need to get into this weird debate of where is the line?
Like, what is an advertisement?
Is an advertisement something like including a link to your website,
including a link to your GitHub somewhere in the application?
Is it a pop-up notifying you
of a new version like where does this line exist and i i think without clear guidelines there which
are going to be incredibly difficult to design i don't know how you can properly enforce a term like that
yeah and there's so much open to interpretation there and it's really within the either the
holder and the way that i see it there is that it's really in the perspective of the author in
that case um because you know if you're taking that on you're kind of accepting what they're
defining as that which you might not know until it's too late and it's even you know what what
doesn't advertisement count if i change the logo to be the logo of a fork and is that technically
an advertisement for that fork um and yeah this is a common issue that we get whenever people try and define their own terms.
There's ambiguity in commonly
established licenses like the GPL
licenses. What does it mean to have
a combined works
that you have to
provide the same rights to?
It's a
challenge just to reduce that as much
as possible.
We've seen that in other things like, I think it was for JSON, where there was something
along the lines of don't use this for evil or don't do any evil with the source code,
which then caused a lot of contention because, you know, what does that mean?
Right.
I think that was a case where certain large companies had to go asking permission to be able to do evil from the author um so they can be assured that they're abiding by the license
so yeah it's always a bit of a a tricky scenario whenever you're trying to define these custom
bits which again kind of locks it to the author that bit more yeah and when you are locking to the author you end up in situations
where sometimes people will make use of a license and maybe they want it to be open but they don't
really want people to interact with it they want they want people to be able to help them but they
don't want people to be able to fork it and you have developers who don't have the best intentions there who are going to attempt to misuse those terms.
And I think the goal should be eliminating as much ambiguity as possible
with the licenses we make use of.
Obviously, you can't do that entirely.
At the end of the day, these are legal documents
and there's a reason why a lawyer is a job. Like, at the end of the day, these are legal documents, and the law...
There's a reason why lawyer is a job.
Like, you can't just say something is within the terms and something is not within the terms.
There is going to be room for discussion here.
But the goal should be to eliminate this ambiguity and provide a set of guidelines that people can at least approximate that they're in
it's probably a good point an hour in to confirm that neither of us are legal experts
that is very true i am a dude in my bedroom um
but yeah sorry what was the question um we should be making sure that we don't introduce
new ambiguity into the way we do licensing to make sure that especially people who are not
legal experts are able to navigate this space yeah and we should also consider you know does
that need to be part of the license like you could say, don't put adware in our software,
but are the type of people that are going to be putting adware and malware into software
really the people that are going to be abiding by a license file
within the project as well?
And you've got to think, are these common occurrences
within the open source world
i imagine they absolutely do happen um but usually those kind of cases get shut down and it's kind of
you know you get a community reaction and they become known issue points that that do get solved
um so yeah i don't think they always need to be done via the license as they're wanting to do here
but also you know it depends what exactly
rights you want to retain which i think is the main thing that they'd really want they want that
extra control well one of the good points that you brought up in your blog post was
a lot of what you can do here can be better done through trademark enforcement anyway and i don't
i don't like the way that some projects operate with their trademarks,
but at the end of the day, I think it is a better solution, and, like, Mozilla is a really good
example of this, like, especially in the early 2000s, um, Debian wasn't shipping Firefox, they
were shipping Icecat, because, uh, Mozilla didn't like them, I think they changed
some settings, or cherry-picked some patches, or it, something like that, Mozilla were like,
hey, you can't do that and still call it Firefox, which is reasonable, they have the trademark for
it, so they just forked it, it was a very soft fork, became IceCat, uh, I think it later became Ice Weasel again, developers can't name things my point is
that I think trademarks make more sense
to handle this problem
and again, if people
are going to be the kind of person
who's actually putting out
actual malware, like Trojans
Keyloggers, things that are not debatable
whether they are malware, like they are
specifically there to be malicious those people are not going to be following your license
anyway they're not going to follow your trademark they're going to be doing things that are illegal
because they're trying to distribute malware those people were never going to be stopped no matter
how you try to approach it i think it makes more sense to worry about the people who are trying to be good actors
who you actually can have a reasoned discussion with.
Yeah.
Yeah, and at the end of the day, trademark is just another tool.
It's like I've got a trademark for my software, for Bookstack,
It's just another tool.
It's like I've got a trademark for my software, for Bookstack,
just because there is that concern of what if someone creates a fork,
then puts the burden on the original project? What if they create a fork, work on it,
and then kind of mislead users to think that we're supporting their project?
Right.
And that's the thing they'll always worry about
and i've never really had to use my trademark and i'm pretty open to it you know if someone
wants to create a fork and say a fork of bookstack then that's fine it's just if you call it the same
thing and put a burden on that original project and i think this the value a lot of the time will
be in that trademark like if someone's copying a bit of their software to because it's a popular bit of software that they want to add malware and get that distributed then
the value is really in that trademark name they're going to want to use that name to push that out to
make it think it's a respected bit of software that they're putting malware into so that's where
that um mechanism can can help there uh was there anything else i want to say on futo i don't
honda i i think we're pretty much i think we pretty much talked about everything i wanted
to mention with that topic um yeah i mean i'm just the only thing with futo is that
they have offered um to answer my questions okay um so lewis rossman commented on a Reddit thread.
He was happy to answer my questions, which I
posted in response
six days ago, and I'm just
awaiting a response there.
Specifically,
I've asked him
what you need to use open source instead of
helping establish an alternative that doesn't
hinder or affect the definition that many people believe in, especially as you have some resources and the audience to do this?
Because I think that is a question.
What is fundamentally the impact to Futo of having to change?
Right, right.
Realistically, I don't see it as being significant unless they want to use the reputation that's been established by something different that they're trying to use.
Yeah, I haven't had like a proper discussion with anyone at Futo yet, but I think if they are trying to operate in good faith, I think it makes more sense for them to use a different term. Now, if they aren't, and they actually are trying
to, you know, just take the goodwill of open source and try to build their own system, I think
that's something different. But I don't know. I don't know Lewis Rossman personally, but he seems
like someone who is actually trying to do good and is trying to build a like trying to get
involved with a system that is actually going to what he feels like be better for developers
so hopefully this is just a matter of i guess how how maybe like
miss miss misinformed initial direction, possibly.
Like that's my hope here.
Yeah, I totally believe they're trying to do something good
and they have all the good intentions
and they're trying to build something great that they believe in.
I just think that this is kind of a nuanced issue
that their ultimate goal,
like Lewis Rossman is used to battling likes of Apple
and these major corporations in the um right to repair area so i think they're coming down they're believing
they're doing something absolutely great they're trying to find a solution to a problem that people
have with open source without maybe fully living in this area understanding the benefits of that original definition um the importance
of those freedoms and yeah maybe just being somewhat blinded by their attempts to do
something that they believe is really good which it probably is um but it just has this
kind of nuance issue it pops up and it probably doesn't help that they must get a lot of comments
and reactions to their videos that are very summarized
along the lines of, you know, this is not open source
or stop ruining open source without providing context.
And I think that's a really important piece about how I go
across a lot of these conversations with Futo and other companies
you know I never go in there saying you need to stop using this you need to you're using the wrong
words this is wrong it's like that post is a plea to Futo followed by examples of
why it's potentially going to have an impact.
And it's the same when I raise it with others.
I'll say how it could be potentially misleading to many that believe in that original open source definition.
And I think if you go in there with a fairly hard edge, you're going to get a fairly hard edge back.
You know, people usually go into more defensive positions always
try and go into this with a kind of uh empathetic view about where they're coming from and why they
might have um come from this perspective it would be i do have another question to lewis on there as
well of um do you not think the ability to fork and for projects to grow under
new alternative leadership is a fundamentally important factor to open source because i'd
just like to get to their view if if they've kind of thought about that that forking aspect and you
know growing under alternative leadership beyond beyond just them yeah yeah i think the forking part is like as i've brought up i think that's that's
such an important issue to concern yourself with because so much of what we have in the open source
space only exists because of forks you brought up the whole idea of linux distros where you know we
have a couple of distros that sort of started everything.
There's so many projects that are based off of Debian.
Well, even Debian.
Debian was based off of another project called Soft Landing Linux System.
And that's the same thing that Slackware built off of.
Both of those forked off of that because that project, it was the early 90s, horribly managed.
No one knew how to manage open source projects back then, which is fair because it was the 90s and it was a very new concept.
But Debian forked off of that and Slackware forked off of that. Then at some point along
the line, you had Red Hat come along and then Fedora spawned off of that. You have Arch Linux
at some point, then Manjaro spawned off of that. And have Manjaro, you have Arch Linux at some point, then Manjaro
spawned off of that, and you have all of these other distros that are only possible because
these exist under, in this case, the Linux kernel is under a free software license, but
a lot of the software they're shipping is under open source licenses as well,
and that's obviously the biggest example, but you have different Linux
desktops that spawn off of each other like Gnome is a major desktop and then at some point
projects like Cinnamon they spawned off of that because they didn't like the direction
It was going Budgie have spawned off of that you have the Trinity desktop which spawned off of KDE a long time ago and
I
think to write like derive works is such an important part of the Linux world obviously but also just the general open source world like there's a lot
of libraries that spawned off of other libraries that really that could only happen because derived works is such a powerful and such a, I guess,
supported part of what we're trying to do here.
Yeah, which is why I thought it was important to put that question across, because I'd like
to see what their perspective is on that, because even if they haven't thought about
that as how it fits into their fundamental licensing and
definition of what they believe to be open source i would have thought they've come across
that within the paths that they've trodden um whether it's lewis rossman or the others at
futo um because it's so ubiquitous having forks but it's just one of those things that you might not think about because you don't
do it nearly as often as the other freedoms that open source provides i do think that what they're
trying to do is definitely better than something like open core open core is yeah yeah open cores are minefield it's it can be done well and it can be done very bad
and i think that range yeah it's a wide range you're gonna see some projects that are open core
but then if you actually go into them then then you remove the non-open code,
and then try to build them and run them, you can't do because they actually depend on the proprietary
code. And that's not an open source project at that stage. And that's something that I'll also
try and raise combat, but it's also one of those things that's much more difficult to judge and get into
because a lot of times you don't know until you cipher through the project and a lot of the times
they have much more complex licensing they'll be under one license except for one particular
folder or maybe some other files that you have to search for that might have a different license
header file and it it can be abused and it is abused quite a
lot um so yeah i agree i'd rather see someone move into this space of um you know fair source or
somewhere else within a source of aid or space whatever you name it under that's very open and
honest about the freedoms that they're providing or not providing then the mess that can be in
open source in open core um i think open core it can be done well if if a company really separates
out the parts of their project if they have a very clear okay this is our open source offering and this is our paid proprietary offering. If that's clear to users
then I personally don't have an issue with that as long as contributors know what rights they're
giving up or providing or what might be done with their code as long as users know what they're
using. What troubles me is when you see a project you know it'll be posted on reddit
check out the latest updates in our open source project.
But then you go into it and then maybe look on the homepage and like five of the features are only available in the enterprise licensing.
And you have to pay extra for authentication options.
And it's just like this. This isn't within the spirit. And it's actually quite misleading.
isn't within the spirit and it's actually quite misleading and i do advocate i've done a few times now to companies like please can you separate this out because how you're advertising here
it's not clear at all i think what we get way too sidetracked on that um for anyone who doesn't know
and hasn't heard the term open core open core is basically when it's done cleanly obviously there
are cases where you just can't build it unless you have both parts but when it is done cleanly obviously there are cases where you just can't build it unless
you have both parts but when it is done cleanly you have an open source core of the project
and then a larger generally proprietary but you can have other source available or other sorts
of licenses where the other part of the project is under that.
So a great example of this, two great examples actually, Bitwarden and GitLab.
I think they do it in a fairly clean way, where if you're using the open source version
of Bitwarden, which is the version you get if you're using the free version, you get
basically everything that you want from the project. Everything that you would need from
a password manager, Bitwarden has there. There are things you might want, there are some additional
things for sure, but Bitwarden's main focus is making money off of the enterprise users. And I think that's probably as clean of a separation as you can get.
GitLab is in a fairly similar model where GitLab's core is open source.
You can go and host yourself.
You can go and do all that stuff.
But then they also have their paid tier that has a lot more features
that if you are running a big company might make a lot of sense for you
but most people if they're just doing development it probably doesn't matter to them
yeah i'm not sure about bitwarden but i did use um gitlab for a while
half a decade now ago and from what i saw then they did do it quite well it seemed like they
always labeled the open source offering gitlab ce so it's under a different name and then on
their updates page it was clearly labeled um what versions were in the open offering what were in
the ce version and i think it all comes down to clarity and i've been meaning to a blog post on
what counts as an
open source project because it's a bit more of an abstract term than what is open source code
because initially i would have thought just you know a project that you can run on open source
code alone but you get into these edge cases like i thought about um open rct2 open road coaster
tycoon 2 where it's an open source project, but to run it,
to make use of it, you need a copy, original copy of the game, which isn't open source.
So is that an open source project?
I'd still say that that is.
So I generally go by, if you can use the value that's being advertised for that project on
open source code, then that's what you consider
as an open source project. Well, that sounds fairly similar to like a game emulator where
the game emulator itself is open source, but it's not very useful unless you actually have
the ROMs to run in the emulator. Yeah, exactly. It's not always just about yeah being able to run something it's just uh
can you get can you get the value that you're being told you're going to get from that project
under the open source code alone right right that does make sense so i would imagine there
probably are some projects which don't have a clea- like they-
Where you- you have part of the project open source, but
realistically, it's not actually...
Like, in some cases I would imagine that you have issues even building stuff without having some other part there as well.
Where they just have a part- they it open source open source but it's it's not really useful without whatever else they have they're not showing you
yeah and this is this is where open core gets difficult and it's it's hard to even double
check this from a user perspective especially if you're not familiar with the code or the specific languages um that they're using like i recently came across
a project called paper mark and as part of that you know i just i generally have a quick scan
through the code because i'm interested in how projects license themselves. And you go to that on GitHub, and GitHub just shows you it's AGPL3 license.
So you might think,
oh, that's just under the AGPL3 license.
And then within the readme,
there's nothing about any additional license terms.
There's nothing there to state.
Otherwise, actually in the readme at the top,
there's another little badge, license AGPLB3.
And then in the read to be at the top there's another little badge license AGPLv3 and then in the license file itself that's unmodified
AGPLv3
that's what GitHub's picking up basically
but I did notice there's also an EE
folder which is usually a
bit of a warning sign
but then if you go into that you'll find
another license file
that is a commercial license
that requires you to like basically have a commercial subscription to their software
and so what i do when seeing that is then i search across the whole repo for like slash ee slash and
then i can find other parts of the project that might not be in that folder that depend on code within that folder,
which is the case here.
And I picked that up with the author
because it's not clear to users.
If you go to that project,
it's not clear there's another license involved.
It's not clear that you're essentially
going to be running that other code
that requires an enterprise commercial license
when you run the project in general,
and it's required by a lot of those other files.
And it's not obvious why that's there as well,
because when you go into it, it actually defines quite arbitrary limits,
like team counts and stuff like that, really just numerical values.
But looking over the project, it's advertised as open source all happy and everything but it's not
clear that just at least from the repository itself that there's quite arbitrary limits
put upon it which you know many may see against what they might be advertising since advertising
is you know for the open source project this is this like a common thing
like to have your your limits just in a file in your repo yes i've never seen this but i don't
go around like digging deep into how projects like do their licensing i've never seen this before
that's that's how some projects do it.
They'll just have a whole bunch of numbers.
So technically you could scrap up that folder and then re-implement those files yourself.
It gets to be a question of, okay, how much can you change those or re-implement them
without them being exactly the same really?
But yeah, these projects do it in all different ways the projects that do it well will keep their
enterprise code or their differently licensed code in a completely separate repo maybe private as
well and then it gets joined in and gets put into a different product and that's what I really
support although then there's an in-between where they might just have completely different parts
of code and then they might just have completely different parts of code
and then they might have a script that kind of patches over that with enterprise code.
So the core project works perfectly fine as is and is all perfectly usable.
But this is a sketchier example, especially because it's hidden.
And unfortunately, this is frustratingly quite common.
And unfortunately, this is frustratingly quite common.
I think from when I last checked, Cal.com,
the company that I mentioned earlier,
does the same thing as well.
And they might have got,
I know PaperMark has some links to that project as well.
So it's another example where things might have spread from one project to another thinking,
you know, these terms are fine
and the way that they're doing it is fine but i think there could be a much more visibility you
know i have nothing against them trying to well the arbitrary limits i think are a bit iffy i
i usually have that as a red flag um but you know it's up to them how they license their works as
long as it's clear to the user yeah yeah that yeah. That, I think, is a very important point.
There's no issue...
Like, I know the free software people are going to be like,
well, no, you can't do this, you can't do that.
At the end of the day, if you have a project,
I do not care how you want to license it.
If you think the best way to license it is MIT, do that.
If you think the best way to license it is AGPL, do that.
If you think the best way to license it is AGPL, do that. If you think the best way to
license it is some open-core solution or proprietary solution, and for whatever reason that is the
approach you want to take, do that. But make sure that what you are doing, you understand it, and
you convey what you are doing clearly, so that people who are trying to interact with what you're
doing are also aware of where they stand. Because if they are not aware of where they stand,
like, you cannot be surprised when people operate in a way that you don't think they
should be operating. If you are not clear about how your license is how your license actually works and how your license applies
to this project you cannot be surprised when other people don't understand it either yeah for sure
i think also i'd say to those that i would more strongly advocate for free or at least copy left
kind of licenses um to keep code more open.
I'd say a lot of the work that I try and do is to prevent miscommunication
and misrepresentation of those lessons because they are essentially weaponized
and used for defensive tactics to give the author more rights.
And I think a large part in helping the movement in general
whether that's the copy left specific licenses and free software and open source is to um prevent a
lot of this representation and educate more about what these licenses mean because there's a lot of
because because when people use it in this defensive way then people might be more scared
to use licenses like the AGPL
because they have a misunderstood idea of what they actually mean.
So I think by being honest and clear about what these terms of licenses provide
and the freedoms they provide and the benefits of different licenses,
we can make those kind of licenses much more approachable because i think licenses like those
are really important although i don't often use them for my own software i completely respect the
the rights that they give users and i think it's important that people publishing software know what
those rights are so then they can easily use those if they'd like to well let's shift gears a bit and talk about uh book
stack because we haven't really talked that much about it and i think as i said earlier i don't
know who we're recording at the time but i do think it's a really cool project and clearly a
bunch of people do as well and that's why it has 14 000 stars on github whatever it is, 14.2 thousand stars. So, for anyone who hasn't heard of it,
I don't know, maybe people in this audience have,
let people know what it is and sort of what its goal is.
So, it's an opinionated platform
for storing and organizing documentation.
So it's really, as I said earlier, I created it for my workplace.
So it's intended for a mixed skill audience.
And the idea I had is anyone that's able to use Word should be able to get involved and use the platform.
So, I mean, it's really on the
surface of it not very complicated at all it's just a WYSIWYG editor and a database so you can
go in there create pages and it's done on the analogy of books and hence the name so you have
books which are basically like kind of top level containers and then chapters within those. And then your content is stored in pages.
And then, you know, you can add images, code, attachments, videos, whatever you want to those pages.
So it's, yeah, quite, quite simple in theory.
A lot of people I would say, because you're going to mainly have a technical audience,
it's probably will feel quite limiting.
And that's done on purpose because it's got that kind of
fixed structure it's set to that fixed level of depth of content um and that was a purposeful
decision early on originally when i developed this i thought oh you want infinite content so
i just had pages that infinitely nestable which a lot of applications have um but for the kind
of audience that I was targeting
I felt that was a bit of a user experience nightmare because it's very easy to lose
documentation so I thought like a fixed depth hierarchy really made sense to make the experience
easier because then we could really design the user experience and the UI to accommodate and fit
to that depth so everything's generally
within view but for technical people um i don't know most of your audience would be better off
probably with like a bunch of markdown files and a git repo to be honest but it's it can be
useful together with uh with hugo it is yeah exactly that's um i get i get some stick for
that sometimes because the bookstack website is on Hugo, including the Bookstack documentation.
And people are like, why are you using Bookstack for the documentation for Bookstack?
Which just seems obvious, you know.
But ultimately, it doesn't really fit the use case that I built it for.
And people give me stick for that.
But the documentation is a wide field.
You know, it's, it's so much depends on the, the audience, not just the whole audience,
but who's editing, who's viewing, how easy of access they need.
And really the website and docs is maintained by just me.
Um, and I wanted an easy way to manage that.
And I, you know, get and mark down files is a more direct way for me to do that.
But then in the team sense, you know, I was using Bookstack at work because that's what I built it for.
And I still use it for my personal kind of long-term storage, I guess, of notes and content for that.
But, yeah, I think it works well in a lot of um especially mixed mixed skill teams and it teams
use it a lot as well well the fact that you have the um the demo site here at least you have some
way to demo it like it obviously i can see why people would say yeah you probably should have
your documentation in your documentation software like that that makes sense like you know you'll
see a like the react documentation site is... Like, the React documentation site is building React.
The Hugo documentation site is building Hugo.
Like, that makes sense, right?
But you have the demo site here,
so people can still see what the software is capable of doing.
Yeah.
Yeah.
Ultimately, it's not like I'm collaborating
with a whole bunch of people for the documentation.
It's really just me.
So at the end of the day, it made sense to combine that in with the website.
And it all depends on use case.
I don't like to push Bookstack as the solution for everyone because that just creates more friction for me.
When people have an idea of what it is, but it's actually something else that they're after,
or they come to use it for a slightly different use case, that usually creates more friction.
And I have to be really quite firm with the scope of something like Bookstack,
because you can easily get lost in scope as people request features.
It's a surprising thing once you get started maintaining an open source project,
because just imagine being at work and then you have thousands of people in the public able to read your to-do list, comment on it, add to your to-do list.
It's, as I said, a very social thing with a lot of interesting dynamics combined within that.
So scope is an immensely important thing.
within that so scope is an immensely important thing and that's why on the bookstack website the bottom i think i've got a page that links to other open source alternatives including static
site generators like hugo um just so people have those options um to best fit what what works for
their situation right well when you started bookstack what was really available at the time
because you said like there was nothing that was open source that really suited what you wanted to
do but what what had you looked at at the time and what what was the open source space like if you're
if you recall um there was i mean the prime options shown would have been Wikimedia.
That's what it's called.
The fundamental open source project behind Wikipedia.
But that is really built for a scale that I wasn't working towards.
And they've got a focus on on scale really whereas i wanted
more ease of use and a similar story to uh doco wiki um which is very was the most popular kind
of open source option along those lines at the time and it still is quite popular because it's
a great bit of software um i was looking at that and to get it to kind of the usability level that i want for
the people that weren't specifically technical it looks like there's going to be quite a few
plugins that were needed and backed up by early developer arrogance um i thought you know
how i can whip this together yeah it's easy it's just infinite surprising
how far
things can go because there's so much
to do I've got 519
issues open I'm quite liberal with that I keep them
open quite a lot but
it's yeah
the scope grows
it was 518 last time I refreshed the page so there's been another one during the show It's, yeah, the scope grows.
It was 518 last time I refreshed the page,
so there's been another one during the show.
And that's what I'd recommend to someone, you know,
wanting to start their own open source project.
Think about what you want from the software and where you draw the lines of scope.
Because when I released this initially on Reddit,
I got a little good reception,
but then you're instantly followed up with,
oh, can we have a Markdown editor?
Can we have LDAP integration?
And you'll get all these requests.
And me being eager, it's like, yeah, sure.
Let's get building on that.
And it's very easy to get burnt out on those things,
especially when you're building a lot of things
that you
won't personally use and especially when you know looking back on those now I mean LDAP would have
probably gone in but Markdown editor is kind of like suiting a different audience than I was
originally building for realistically but now I don't want to let those users down so that's
something I've got to maintain forever and that's a common thing it's a lot of people think the effort is implementation
and that's why a lot get a lot of companies offering to pay like can we pay you to build
this feature or can we get our developers to build this feature and put it as a progress i just say
no like that's the effort is not an implementation if anything that's the fun bit
and that would be kind of taken away of it um but the effort is in long-term maintenance
and support and those are the real long-term challenges that you have to think about if you
want to be maintaining it for a long time like i do with bookstacks i have to be really quite
strict with those requirements um and especially on that money side, it's fundamentally important to me with Bookstack
that money doesn't drive the direction of the project because I don't want the bigger enterprises
to be getting what they want without focusing on the core audience.
So I just have to say no to all of those.
So everything's you know
scope to what the current users need and that's that's how i define my scope i think about what
what we've built for and how we serve those current users because i require people when
they create a feature request to say what the benefits and it's a very common thing is oh this
will introduce bookstack to a whole new audience and it will help it gain popularity and grow and i have to explain no i don't want that
it sounds counterintuitive but but that's just a road to an unreasonable end it's just you can get
just that's where you go to maintain a burnout yeah um and so by focusing and building a better
platform for who you're really focused on
you're naturally going to grow to a bigger audience anyway just by being a bigger more mature platform
yeah scope creep is going to kill any project and unless you also have uh more developers
helping out you just there's only a certain amount of work that you can take on before things just become unmaintainable.
The point you said there about implementation is only the start, that's the fun bit.
I think a lot of people don't understand how important maintenance is,
and how important it is to make sure that...
The Linux kernel is a great example of this.
The Linux kernel is this massive project, millions of lines of code,
and they have drivers from 25 years ago that nobody working on the kernel now has hardware for.
Nobody has any idea if it still works with API changes they've done and refactors they've done.
And, like, yes, obviously, at the scale ofstack it's it's less of a concern than that
but this is a problem no matter how big a project is and how many developers you have like there's
always going to be parts of the code base that do not get the attention that you would like to
give them and end up sort of drifting because of that not because the code changes
itself but because everything else changes around it yeah it's such a cool part you have to think
about how you can make that easy for yourself like we're quite hot and making sure everything
gets added is fully tested um but it's easy to come into a project and be quite naive if you
haven't maintained before thinking
oh yeah contribute this feature that i want that's all handy dandy and and someone observing
the project could say oh a person's just sitting back accepting they're getting everyone else to
do the work whereas pull requests are one of the most difficult aspects that i've found with
maintaining because a lot of the time people
are essentially kind of doing that fun develop of it and then I'm absolutely happy to help and
if people are putting in the effort and where it suits the scope of the project work with them and
help kind of train them because they might be that might help them contribute more in the future and require less of my input.
But a lot of the time, it ends up probably taking more time
handing that via pull request because that's leaving me to now
understand what they've done, understand how that might fit into
maybe standards that are supposed to be working to it.
It's like for something like authentication. Often often the testing isn't provided with that so i have to go
and do the testing work both manual functionally in practice and write coded tests and then
maintainance you know people don't come back usually um and maintain things that they've added because they
might not know when they break yeah so it's uh yeah it's a difficult dynamic on how you ramp up
something like that to have more maintainers and i think there's probably good ways to go about it
but it's going to heavily depend on your social skills because there's a very social aspect and
how much time you're willing to support people and hopefully get more core maintainers that can be with you
long term because that's what really benefits a project is those core long-term maintainers
and that might differ depending on the type of project like a project that's suited more to end
users like bookstack you might not see so many developer focused people coming across it
um that want features they're going to be more likely to be those end users whereas if you're
coding a specific like code library your audience and the people that might be providing pull
requests they might be able to jump in a bit easier i'd imagined, but I don't know for sure. Well, your contributor graph is the definition of GitHub contributor graphs.
You have 3,000 commits, 800,000 lines of code added,
so total code added and removed, so 500,000 added, 350,000 removed.
Second person, done great work, I'm sure. 4,000 added, 2,000 removed. Second person, done great work, I'm sure.
4,000 added, 2,000
removed. Like, that's
the second person, and it only gets
less and less from there, and so many
projects are like this, where you have
one person who started it,
they do tons
of work, and
it's very rare for a project
to get a second or third or fourth big contributor like
you mentioned um drew the vault before so uh the w roots project that started as drew the vault
and then it was taken over by simon sir and simon does incredible work now but that's so rare for a project to swap
from one developer doing everything to another developer doing everything like
it can happen but like it needs to be a very special project you need to have
another person who was really dedicated to that workload and finding someone who
is going to be dedicated to a project that they didn't start to
the same level that you are is really difficult to find yeah for sure and it's it's so heavily
leans on how how you socially engage in your social skills and the people they have around
you and you know maybe if you're able to get people from your workplace if it was something for the workplace and things like that
and it can be very difficult as long as that's definitely something i found really difficult
how do you get people on board long term um but yeah that's just one of the one of the difficulties
in even source i mean the only thing that worries me currently with something like this is what But yeah, that's just one of the difficulties in Oven Source.
I mean, the only thing that worries me currently with something like this is what happens if I get hit by a bus tomorrow?
Right.
Where does that leave the project?
But that's where I think pushing forward with having commercial options out there,
like having people host Bookstack, provide services for Bookstack,
and the audience
space it does mean that although i might not have a massive amount of contributors right now
there's hopefully a bit of a momentum there by people depending on the project in some sort of
way that can keep it going and that should only increase as the the project is even more established but uh yeah i'm
still trying to solve the long-term contributor uh issue yeah if you'd solve the problem uh there
wouldn't be such a big gap between first and second yeah maybe it comes to the case where if
i continue on the current path i um start making enough revenue that I can pay to bring someone on board.
Maybe someone that has already engaged with the project,
that would be quite good.
But you never know where things go.
You have to get to that point before starting to think about that route.
So what kind of use cases have you heard of Bookstack being used in?
Obviously, you mentioned that it was initially initially you made it because your company was needing some sort of
documentation solution but what have you heard from other people using it
for? Because I did hear you mention that you're surprised that it has like a
self-hosting sort of popularity? Yeah so I mean the self-hosted
subreddit has been very kind to uh
kind of bookstack and that's where i originally launched it and that's where it gets the most
publicity i mean i'm very um concerned about marketing i don't like to push it in community
so it's very rare that i specifically post in there but it gets mentioned quite a lot so that
seems to be where it spreads and across other places on reddit
so it gets used for some quite interesting use cases via that because it was built for that
internal business use case but then the people use it for all types of groups like
a lot of them like like tabletop for games, those kind of things.
They will use it for their group.
And then I've seen one that was about weed
and all the different strains of weed.
I've seen an instance about mechanical keyboards.
Yeah, I mean, you see it used
some people use it as a recipe book as well
that's a fairly
thoughtful use case
but yeah I mean it's a very
abstract or plain
system I guess
in a way that you could use for any of those
I still use it just for long term
notes where
it works a bit better sometimes
instead of using files for various things.
So yeah, it's got quite a wide range use case,
but we do have to make sure we focus
on that original sort of scope that we set out
instead of making it specifically for keyboards and weed.
I don't know why
that use case just amuses me, but
I don't know.
Obviously, you're going to have
people using it for all sorts of different things
because it sounds like a very
it's a very
I guess approachable system,
but it's still a very generic system.
Like, it's not designed around a specific...
Like, you made it for the use case of the business
that needed the documentation,
but it's not designed just around
how they wanted to lay the documentation out.
It still is generic enough where you can make use of it for these various
other cases you might have.
Yeah.
Any,
anywhere where you have like groups of groups of people working on things.
And cause I've built it for that business use cases,
a lot of things built in around that,
like like a full roles and permission system and that you can get quite
specific with,
but then that still abstract can be used by other use cases
so yeah it's a generic generic platform really you don't there's nothing in the ui that specifies the
use case it's quite broad i've seen some people take it a step further it appears that they've
probably forked the project made it into something quite different um like used it for basically like a
website um that they can easily basically like a cms system i guess and then i did have a somewhat
malicious fork um a while back where someone forked it changed the name removed all attribution
and then they had like a website up saying how their fork was
used by the Indian government.
And
the annoying thing about that is
I'm absolutely happy if people
forked the project and want to use it,
but you are supposed to give attribution.
Yeah, there's not many requirements for the
MIT license, but that's kind of the
big one.
The thing that annoyed me most was that they were um filing issues on our repo but when i like dig into them i was like this isn't a problem is this is this specific to your fork and be like oh
yeah it's just our fork okay don't make me support your dodgy fork that you've removed
my name from
and he also used to email me
directly to my email address
saying hey when's the next release gonna happen
we need a new release made soon
to support customers
I was just like what are you doing
you know
luckily I just seemed to drift away
what a mess
I guess those people are just gonna come along luckily I just seem to drift away what a mess like you're gonna
I guess those people are just
gonna come along
yeah
there's nothing
you just gotta learn to deal with it I guess
like there's no way you're gonna stop
them
yeah
as you say there's not many requirements so i'm happy for
people to do it but just uh do the bare minimum well why did you choose specifically the mit
license because obviously there are other permissive licenses that are out there you know
bsd3 clause patchy things like that um just because it was simple really i mean it's a lot simpler than i
think the patchy is a fair bit longer um plus it was the it was the license that i probably had
most exposure to right so the framework that basebooks like on laravel that's also under the
mit license a lot of the front end web technologies um and javascript libraries and css libraries
so many of them will say mit license so realistically it was familiarity and just
and i was happy with what it provides basically yeah i wasn't concerned about
um ensuring the freedom over reducing friction,
which was my main concern, just because being in a company,
you can know what it's like as soon as you maybe want to use a bit of software
and people panic because they might have a GPL license.
And again, that's where I think the education piece would really help,
to know when you really don't need to panic because in most cases you don't
But for me I wanted people to be able to take it modify it within their business
And then maybe use it for other use cases and not have to worry about it
I didn't really have an issue of that. I was just more focused on
Adoption and getting out to as many people as possible and the MIT license simple enough and it
Kind of appeared to do that quite well
Fair enough
We didn't establish this earlier
but yes you are a PHP developer
which you know people have their opinions on
PHP
Yeah I think it gets
a hard
I think it's
I don't know it's just
I've dabbled in loads of other languages.
I've dabbled with some Go, obviously Java.
I did publish a couple of apps when originally learning, and I still kind of keep them maintained.
I've touched on a whole bunch of languages.
I did a lot of Node.js work in my profession.
It got really quite deep into the JavaScript world.
Node.js work in my profession.
It got really quite deep into the JavaScript world.
And I probably prefer a lot of what JavaScript has in some ways,
but there's a lot of PHP, which I think is really powerful,
really easy to use, and it's so practical,
and especially with the things like Laravel,
which is a fantastic framework that just takes out so many decisions. Like, that's something, I mean, it all comes down to preference at the end of the day what you're most comfortable with and php is
something that i learned early on and when learning kind of more in the golang and javascript world
always had trouble with um knowing the right approach because i like from the php world and
using larry but i liked having
like the um all batteries included approach the framework had everything which i needed
whereas when i dabbled in those other languages it felt like you needed to pick the little
elemental parts it was much more modular which is a really good thing in a lot of cases a lot
of flexibility that but a lot more trouble with um you know the how basically you
get stuck in selecting those parts and i felt like i could never get going with that code as
much as i could do with php so at the end of the day it's whatever you're most confident and
what you can practically achieve the most with no that's fair that's fair i just wanted to bring
up the php thing just because yeah i want i i want to see if i get any uh comments about php
because i know there are there are people that have a very people there are people that have
a violent reaction to php it's like how oh my god how does he like php because you you say on your
on your github your preferred language for backend is php so you know it's a nice language
i'd say to people that are harsh on it you know don't don't discount it there's a lot of things
that are nice to like about especially in the last i don't know half a decade it's really come on
and it's just that balance of i think when i get into like harder typed languages like go i really get stuck on how i
do things that i'm able to do very easily in php and in other languages whereas i don't know php
just always had that nice flexibility where it does have a lot of typing within the language now
it does have a lot of nice helpers and things that can make nice class-based organized code
and yeah i just haven't been able to get as productive in other things and that that can make nice class-based organized code.
And yeah, I just haven't been able to get as productive in other things.
And that is probably the same for a lot of people.
They'll learn one thing, be very productive in it.
Then as soon as you try and get into something else,
start using this.
Like, not as productive.
I could be doing this in like half the time.
Yeah, yeah, yeah, yeah.
So, yeah.
Yeah, that's how... I'm a
big fan of doing a lot of stuff in Python
I've written enough Python
at this point where I'm comfortable with it
and when I
go to something else
it's easy enough to pick up another language but
getting to the point where you feel like
you can just write it without
thinking about the language constructs
and like the libraries you the that's the biggest hurdle like people think when
they're when they're new to programming the biggest issue is syntax the real
issue is knowing just what you can write to achieve your goal and once you have
that then like then it just feels really easy to do any problem obviously it's still difficult to
solve certain issues like certain issues may be difficult to break down but once you have that
understanding of a language where the language you know feels fluent like it would for a language you
speak that's when you can really start solving the actual problem rather than trying to solve
the language yeah and it's yeah fundamentally comes down what helps you build what you want
to build like i see a lot of uh kind of code newbies and i i think i did the same when i came
into code as well whereas uh you're like looking at the landscaping thing
oh do i need to switch to rust to make my application fast and it's like no it's the most
cases whatever you write is going to be fast enough you can always optimize specific cases
it's just a focus on what you can actually get stuff done with otherwise you're just jumping
between languages you're jumping between the latest hot new framework without actually getting
anything done yeah front-end web developers are very uh very good at doing that yeah always had
trouble kind of stick to older school stuff i guess what's yeah yeah what's the hot new
javascript library you go work at some company, they're building off of some 10-year-old library
that is not the hot new thing anymore.
It's jQuery.
They haven't swapped off of jQuery yet.
It works.
Who cares about whatever the new hot thing is?
Hey, don't go dissing jQuery.
jQuery is great.
It was my first experience with JavaScript development.
I like jQuery. jQuery's great. It was my first experience with JavaScript development. I like jQuery.
Yeah.
I mean, it's less, I guess it's a bit more redundant nowadays.
Yeah.
Well, yeah, it's main reason.
My previous job, we used to hack up like so many single one-off HTML pages
for like marketing content.
And it's great that I just whack out like a one-liner that does everything
you need to do functionally on the web page.
Yeah, I've got a big soft spot for jQuery.
Yeah, jQuery was a lot more important back in the days
where different browsers actually did legitimately cause
big website incompatibility issues
where Chrome would do it one way firefox would do it another way
internet explorer was internet explorer and microsoft was trying to redefine the web that
he wanted the web to be and jquery just made all of that stuff just disappear so it made sense why
it became popular but yeah now now like i i don't even know what the new hot thing is with with
web development i've been out of that space for long enough that like i it would take me a bit
of time to get back up to speed but i'm sure it's it's gonna be some like 12 layers of different
libraries that people now rely on to do stuff. Yeah, I can tell you.
I personally like in Bookstack,
it's just write my little simple component framework.
I know I say never build your own thing from scratch,
but it's just a real simplistic thing
because it's mostly backend rendered
and then with a few sprinklings of JavaScript,
so I'll build a system that kind of builds on that world.
But I used to do a lot of,
well, initially, I guess AngularJS 1, then jumped over to Vue.js because that was the nice thing to jump
over to. And I built a lot with Vue.js in my previous work and I enjoyed that. But I don't
know, I always flip-flopped. Whenever I'm doing like, whenever you're deep into like front-end
JavaScript work like that, you're always like, oh, why can't we just
have a simple like back-end rendered like application?
And then you're doing the back-end application, you're working on something like that, and
you're thinking, oh, if only I had like a framework I could easily do this like UI stuff
with.
It's always like a grass is greener kind of scenario.
So just, yeah, live
wherever works best for the application.
Absolutely. Well, on that note,
we've just passed the two hour mark, so
I guess we've probably ended off there.
Alright. Yeah, it's been
lovely to speak to you today.
Thanks for having me on. Yeah, absolute pleasure.
I'd be more than happy to do this at any point
again in the future if you've got something to
say about Bookstack or anything else. Yeah, I'd be more than happy to do this at any point again in the future. If you've got something to say about Bookstack or anything else,
yeah, I'd be more than happy to chat again.
All right.
I'll see you next time.
Call some drama in the open source world.
Well, before you go,
let people know where they can find Bookstack
and find anything else you want to send people to.
So Bookstack can be found at...
Or you just search in whatever search engine you like bookstack and
it should pop up unless one of our competitors is uh paid more um to get it higher looks like
you have good seo bookstack website bookstack github then the bookstack reddit yeah look it
looks pretty good to be yeah otherwise it's bookstackapp.com um or you can find me at my personal site uh danb.me
awesome um nothing else i don't think i showed the website before but yes i i as i said i did
i do really like this website i think it looks very nice um cheers i i i'm sure that some people
might have an issue with the style but but no, I really appreciate it.
We can agree that they're wrong.
Absolutely.
Is there anything else you want to send people to,
or is that all you want to mention?
If you're interested in the kind of open source stuff
and looking at cases where that may be used misleadingly
or where licenses are misrepresented,
then that is at... Oh, it's a bit of an awkward...
Open source confusion cases?
That's the one. Yeah. Do you support links in your description?
Yeah, yeah. I'll chuck all the links in the description.
Cool. So yeah, check out the description to go to that. But yeah, it's the open source confusion
cases repo. And generally the issues there are pending cases and then they get promoted to be cool so yeah check out the description um to go to that but yes the open source confusion cases
repo and generally the issues there are pending cases and then they get promoted to be part of the
part of the readme as part of the main project below um but yeah i think that's that's everything
i've got to share awesome okay well as for me the main channel is brody robertson i do linux videos
there six-ish days a week uh i have no idea what it will be out by then by the time this comes out so
Check it out. See what's there probably something Wayland probably I don't know
Definitely maybe something cosmic because that should be coming out soon
I don't know check it out the gaming channel is Brody on games. I stream there twice a week
I don't know what I'll be playing.
Probably finishing off Sekiro, I reckon.
And if you're listening to the audio version of this,
you can find the video version on YouTube at Tech Over Tea.
If you want to find the audio version,
it is going to be available on basically any podcast platform.
Search for Tech Over Tea.
There is an RSS feed as well.
Put it in your favorite app and you'll be good to go.'ll give you the final word what do you want to say it's a lot of pressure i always
put people on the spot for this it's great especially when they've never seen one of the
episodes uh well keep uh keep building great software everyone sure that's fine see you guys
later