Tech Over Tea - The Importance Of Open Source | Dan Brown

Episode Date: June 21, 2024

Last 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)
Starting point is 00:00:00 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
Starting point is 00:00:37 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
Starting point is 00:01:05 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.
Starting point is 00:01:50 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.
Starting point is 00:02:27 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.
Starting point is 00:03:00 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.
Starting point is 00:03:30 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
Starting point is 00:04:12 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.
Starting point is 00:04:45 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.
Starting point is 00:05:07 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.
Starting point is 00:05:50 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,
Starting point is 00:06:10 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
Starting point is 00:06:38 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
Starting point is 00:07:21 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
Starting point is 00:08:16 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,
Starting point is 00:08:50 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
Starting point is 00:09:19 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.
Starting point is 00:10:08 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
Starting point is 00:10:50 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.
Starting point is 00:11:07 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
Starting point is 00:11:22 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?
Starting point is 00:11:41 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.
Starting point is 00:12:05 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.
Starting point is 00:12:17 Okay. Awesome. Awesome. Oh, wait. Hold on. That might... That's not... That might be outdated
Starting point is 00:12:26 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
Starting point is 00:12:41 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.
Starting point is 00:13:04 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
Starting point is 00:13:23 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
Starting point is 00:13:56 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
Starting point is 00:14:23 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.
Starting point is 00:14:57 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
Starting point is 00:15:41 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
Starting point is 00:16:08 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
Starting point is 00:16:35 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.
Starting point is 00:17:24 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
Starting point is 00:18:01 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,
Starting point is 00:18:38 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
Starting point is 00:19:12 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.
Starting point is 00:19:27 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
Starting point is 00:20:15 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
Starting point is 00:21:03 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
Starting point is 00:21:45 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
Starting point is 00:22:50 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
Starting point is 00:23:37 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...
Starting point is 00:24:13 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
Starting point is 00:24:58 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
Starting point is 00:25:46 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,
Starting point is 00:26:19 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.
Starting point is 00:26:50 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
Starting point is 00:27:30 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
Starting point is 00:28:25 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,
Starting point is 00:29:12 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.
Starting point is 00:29:49 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.
Starting point is 00:30:37 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
Starting point is 00:31:14 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
Starting point is 00:31:58 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
Starting point is 00:32:59 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...
Starting point is 00:33:48 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
Starting point is 00:34:31 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.
Starting point is 00:35:12 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.
Starting point is 00:35:25 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
Starting point is 00:35:58 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
Starting point is 00:36:52 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.
Starting point is 00:37:43 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
Starting point is 00:38:08 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
Starting point is 00:38:24 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
Starting point is 00:39:17 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
Starting point is 00:39:56 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.
Starting point is 00:40:20 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
Starting point is 00:41:06 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
Starting point is 00:41:55 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
Starting point is 00:42:46 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
Starting point is 00:43:44 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
Starting point is 00:44:25 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
Starting point is 00:45:11 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
Starting point is 00:45:49 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.
Starting point is 00:46:06 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,
Starting point is 00:46:34 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.
Starting point is 00:46:57 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
Starting point is 00:47:31 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,
Starting point is 00:48:03 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
Starting point is 00:48:52 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,
Starting point is 00:49:25 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
Starting point is 00:49:54 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,
Starting point is 00:50:40 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
Starting point is 00:51:26 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...
Starting point is 00:52:07 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
Starting point is 00:52:43 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
Starting point is 00:53:07 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
Starting point is 00:53:50 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.
Starting point is 00:54:36 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
Starting point is 00:55:02 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.
Starting point is 00:55:24 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.
Starting point is 00:55:47 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,
Starting point is 00:56:27 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.
Starting point is 00:56:47 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
Starting point is 00:57:38 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.
Starting point is 00:58:01 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
Starting point is 00:58:31 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
Starting point is 00:58:52 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?
Starting point is 00:59:34 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
Starting point is 01:00:20 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
Starting point is 01:00:53 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?
Starting point is 01:01:20 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
Starting point is 01:02:14 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
Starting point is 01:02:46 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
Starting point is 01:03:36 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
Starting point is 01:04:11 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
Starting point is 01:04:56 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
Starting point is 01:05:23 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.
Starting point is 01:06:00 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
Starting point is 01:06:25 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
Starting point is 01:07:12 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
Starting point is 01:07:39 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
Starting point is 01:08:27 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
Starting point is 01:09:11 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
Starting point is 01:09:48 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
Starting point is 01:10:27 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
Starting point is 01:11:12 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.
Starting point is 01:12:07 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
Starting point is 01:12:44 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
Starting point is 01:13:22 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
Starting point is 01:14:12 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
Starting point is 01:15:19 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
Starting point is 01:16:07 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.
Starting point is 01:16:57 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.
Starting point is 01:17:46 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.
Starting point is 01:18:35 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
Starting point is 01:19:17 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?
Starting point is 01:19:53 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
Starting point is 01:20:38 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
Starting point is 01:21:39 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.
Starting point is 01:22:08 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
Starting point is 01:22:23 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,
Starting point is 01:22:54 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,
Starting point is 01:23:15 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.
Starting point is 01:24:05 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
Starting point is 01:24:44 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,
Starting point is 01:25:12 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
Starting point is 01:25:40 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.
Starting point is 01:26:04 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
Starting point is 01:26:54 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
Starting point is 01:27:39 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
Starting point is 01:28:18 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.
Starting point is 01:29:07 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.
Starting point is 01:29:52 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
Starting point is 01:30:25 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.
Starting point is 01:31:07 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.
Starting point is 01:31:39 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
Starting point is 01:32:23 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
Starting point is 01:32:41 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,
Starting point is 01:33:13 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
Starting point is 01:34:07 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
Starting point is 01:34:55 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
Starting point is 01:35:36 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,
Starting point is 01:35:55 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.
Starting point is 01:36:12 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
Starting point is 01:36:44 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
Starting point is 01:37:29 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
Starting point is 01:38:09 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,
Starting point is 01:38:57 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
Starting point is 01:39:40 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
Starting point is 01:40:22 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.
Starting point is 01:41:04 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
Starting point is 01:41:55 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.
Starting point is 01:42:46 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
Starting point is 01:43:01 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
Starting point is 01:43:45 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.
Starting point is 01:44:31 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
Starting point is 01:45:13 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
Starting point is 01:45:49 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
Starting point is 01:46:25 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
Starting point is 01:47:05 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
Starting point is 01:47:21 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
Starting point is 01:47:48 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.
Starting point is 01:48:05 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.
Starting point is 01:48:29 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
Starting point is 01:48:52 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
Starting point is 01:49:33 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
Starting point is 01:50:05 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
Starting point is 01:50:19 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
Starting point is 01:50:37 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
Starting point is 01:51:13 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.
Starting point is 01:51:57 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
Starting point is 01:52:28 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
Starting point is 01:52:43 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.
Starting point is 01:53:10 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
Starting point is 01:53:45 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
Starting point is 01:54:30 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
Starting point is 01:55:17 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.
Starting point is 01:55:39 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
Starting point is 01:55:53 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
Starting point is 01:56:19 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
Starting point is 01:57:13 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.
Starting point is 01:57:53 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.
Starting point is 01:58:07 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.
Starting point is 01:58:29 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
Starting point is 01:59:13 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,
Starting point is 01:59:40 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
Starting point is 02:00:15 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.
Starting point is 02:00:34 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.
Starting point is 02:00:49 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
Starting point is 02:01:13 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,
Starting point is 02:01:50 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.
Starting point is 02:02:19 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
Starting point is 02:02:58 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.
Starting point is 02:03:21 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

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.