Coding Blocks - We Still Don’t Understand Open Source Licensing

Episode Date: December 28, 2013

This week we’re trying to wrap our heads around open source software licensing. We discuss the main types of licenses (and a few of our favorites!), what it means to violate a license, and take a fu...n look at a few weird questions. Download the episode on iTunes or Stitcher and make sure to send […]

Transcript
Discussion (0)
Starting point is 00:00:00 You're listening to Coding Blocks. I'm Joe Zak. I'm Michael Outlaw. And I'm Alan Underwood. And today we will be talking about what we still don't understand about open source licensing. So it's going to be a big show. I think so. So first of all, we wanted to give a disclaimer here. So we are not by any means legal counsel and we cannot and will not be held liable for any information provided in this podcast.
Starting point is 00:00:53 So please seek legal advice and talk to an attorney or your weird uncle before making any financial decisions on your own project. And the information provided in this podcast is meant to be a starting point for understanding that there is more out there to open source than just free. So you're saying that they should take our advice. Yeah, not so much. Whoa, what? All right, so. That was a premeditated statement.
Starting point is 00:01:17 Except for the part about the weird uncle. I don't know where that came from. Is that your past speaking note? All right, so getting into this, let's talk about just some of the general categories that licenses fall under. So you have commercial use, which basically means, you know, you plan on selling the product. You have can be modified, can be distributed, can be sub-licensed, and can be used for private use. And then there's also whether you can be held liable or not for code that you help distribute so all there are a ton of licenses out there but we're going to hit on the most common
Starting point is 00:01:52 ones and the first one that i believe is the absolute most common on the internet is the gpl license is that because it's a virus it might be considered that right yeah it's uh it's a virus? It might be considered that, right? Yeah, it's definitely viral. Yeah, so in the most basic terms, now there's multiple versions of the GPL. There's one, two, three. I think three is the most recent one. There's the LGPL. There's the LGPL, and we'll get into the differences and the similarities of that in just a minute, but in its most basic form, the GPL basically says you can use the software provided.
Starting point is 00:02:31 Let's say that you get it from GitHub and it's licensed under the GPL. You can get that code, but if you make any changes to it whatsoever, then you are basically obligated to provide that back to the community to use. So any changes you make whatsoever whatsoever you have to give back it's basically forcing you to contribute to the community yeah the open source community yeah basically you got free use of this stuff and and you got all the benefit of all the hard work of everybody else who did this so now you need to provide your hard work back so that other people can benefit from that as well yeah but, but just to point out, it's not just changes. If you distribute my code at all, then you need to release what you've got too.
Starting point is 00:03:11 So if I've got a math library or grep or some utility or something that was released, not that grep was, but some utility that was released under GPL, and you want to release that even as is without modifications, then you need to release your code under that license as well. And that's why it's often referred to as the term copy left or referred to as being viral because its license can kind of eat your license. Yeah, and as a matter of fact, we'll get into more of that in a little bit, but even the MIT license, which is a little bit more open,
Starting point is 00:03:43 they say if you use it in conjunction with the GPL you have to release your software under the GPL so but that's where uh so that the description that Joe just gave that's where the LGPL comes in yeah right to to lessen that effect yeah it's a little bit less strict and what that does is it lets you link to the gpl code the lgpl code without necessarily releasing your code as gpl so it's a little bit more permissive right um and i've got a great example here i've worked with the extjs library in the past is now owned by sentia and actually on their licensing open source fact page they have some pretty good rules that will help you identify what it actually means to make a change. So here's where they say,
Starting point is 00:04:31 the following are examples of modifications. If you modify an EXT JavaScript, Java, or CSS source file that they provided, then you've modified it. That's pretty straightforward. Well, here's where it gets a little bit hairier. If you extend an EXT class or override any EXT functions or methods, you've now modified that code. Even though it could have been your very own JavaScript file, you wrote it, but you basically were leveraging some part of that EXT.js framework, you've modified it. You now need to provide that
Starting point is 00:05:00 back to the community. And then if you modify any ext API, then again, you are extending or touching existing code that you now need to provide back to the community. Now it says the following are not modifications. And this is where it, this is where there's a lot of gray area in the GPL. Listen to this, creating a new theme and a new CSS file. It says you don't have to contribute that back. But if you touch any of the JavaScript, you do. So that's really hairy to me. Creating or applying a locale or language pack, that's not considered a modification.
Starting point is 00:05:36 Or overriding property defaults on class prototypes. That's a configuration. So they're saying you don't have to provide that back. So, you know, it's one of those gray areas. And, and one of the reasons I bring up EXTJS is because at a previous place, uh, we ended up programming with that and we ended up having to get the legal team involved because they started looking at it and we were only providing this application to our internal customers. There was nobody on the internet going to see this. This was only for internal business. And they ended up going back and forth and talking
Starting point is 00:06:09 with the legal team over at Cintra as well. But the really great area of this is this right here. GPL is generally considered when you are distributing your code to another place, or you're giving your code to somebody else. You have to make all your code to another place or you're giving your code to somebody else you have to make all your code available or if you're if you're packaging up an application and giving it then you have to open your code right what does that mean in terms of html and javascript which are all things that are technically viewable they're distributed by their nature distributed but their nature of their use they're they're distributed by their nature. Distributed. By the nature of their use, they're distributed. But you're not selling an application.
Starting point is 00:06:48 You're just serving up a web page, and this is where it all gets really great. But you're still distributing to people, to additional people, though. Right. Or, you know, additional computers. So if anybody views your application, I guess that's why this is such a – What if it's computer to computer? Good question. That's nasty. Right? And that's why this is What if it's computer to computer? Good question It's still distributed
Starting point is 00:07:08 So pretty much I think the takeaway from this is the safe way to think about this is if you modify it and anybody is going to use it other than you pretty much you're bound by the terms of having to copy your code back into
Starting point is 00:07:27 an open community to where they can do what they want with it right or getting sued or getting sued and and there's there's several precedences of court cases where you know this kind of stuff has happened so uh just something to be aware of. So moving on to... So as a general rule of thumb, though, you should probably stay away from anything that's GPL unless Express consent already has been given to you within your organization to use it. Yeah, or if you're doing your own project,
Starting point is 00:07:57 by all means, you can probably do whatever you want, right? But if you're actually doing something for a client or a business, you need to be careful because they probably don't want to give up all their business secrets in code. So it's definitely a big deal. So then the next one that's also extremely popular that we're going to discuss is the MIT license. And that pretty much states you can do whatever you want and you're not held liable yeah so i think uh you know this would be a good point time to point out some of the code samples that we've
Starting point is 00:08:31 provided on our site we've provided as a under an mit license if we had to give one we thought that would be the one to give yeah another thing to mention about about the MIT license is that you actually have to include attribution as well. Yeah, which is huge because, I mean, if you write some code or if we write some code and we provide it to you guys for sample or for you to understand concepts, if that starts floating around, you know, we kind of want to get credit for taking the time because it does take a lot of time to sit down and write code so i mit is a very flexible license that that pretty much you can just use however you want and not have to worry about any particular consequences right generally speaking that's what it seems to be so uh you know a big one under the mit license would be jqu. Yep. jQuery is huge, I believe.
Starting point is 00:09:26 I can't remember. Where's another one? jQuery, Rails uses the MIT license. There's actually quite a few pretty big ones. Dojo, Dojo Toolkit also uses the MIT, and it uses the AFL, but both of those are extremely liberal licenses. Yes, that's a prime example there of like you're allowed to use it in your application.
Starting point is 00:09:52 They just want the attribution back to them, and that's fine. And you can extend it as much as you want, and you never have to give anything back to the community. And if it breaks your system, they're not responsible for it. It's on you. Figure out what to do with it. Use at your own risk. And if you actually look at the top of any jQuery file, you can see a mention of the license right there. Pretty cool.
Starting point is 00:10:14 And another thing to point out is specifically with JavaScript files, you are literally distributing the source code to every person that downloads that file. Yep. to every person that downloads that file yep um and so then along the same vein another extremely popular license in the open source community is the apache license and again there's multiple versions of this as well right now they're on the apache 2.0 but essentially this is similar to mit in that you can pretty much do whatever you want except there are explicit uh grants um basically or or there's explicit rights granted to you for patents and any kind of any kind of uh what it provides an express grant of patent rights there you go is the difference here so um you know even talking amongst ourselves we had to talk through this one so the uh so not only are you giving the attribution but any patent that you
Starting point is 00:11:15 have as as a patent holder you're allowing others to use your patented solution under this license, but you still maintain the patent for it. Right. So they can't claim it as theirs. Yeah, and I think it's a little bit easier to understand this one kind of backwards. Imagine if this clause wasn't there and I submitted some information
Starting point is 00:11:42 that I had patented into some source code and other people started using it, I could either, A, sue them, or, B, I could not sue them and then later lose my rights to sue someone else who's using it because I didn't sue the people using that source code. So it's definitely a sticky subject, and licensing is gross enough without diving into patents, really. So we won't be talking too much about that. It's been quite the topic of conversation in recent years here with all the trolls the patent trolls out there yeah yeah it's it's unfortunate um but also again like mit though
Starting point is 00:12:18 you actually do have to retain all attribution and all that that information that is in the original source that has to be passed along. So if you redistribute it, modify it or whatever, that has to go along with it. But, you know, again, another very popular open source license. So there's also another one that Joe can probably explain a little bit better. This is the all rights reserved. Yeah, I mean, that's actually the default one.
Starting point is 00:12:48 So if you have a blog or you put some code up there on GitHub without actually placing an explicit license, then it defaults back to all rights reserved, which means that the owner, the person who wrote that code or text or anything really uh can any any time come and um you know do whatever they want they can enforce whatever rights they want on that so if you pick up some random project from github and start using it then you run the risk of one day having that person come knocking on your door and also um one thing we've been talking about a little bit um now that the we've been getting some traction on the the podcast we've actually released to itunes now and we desperately need to be reviews as uh we've been talking a little bit about switching over to a different license um the beer wear license and that one um it's pretty lax and so i'm just gonna go ahead and read it here
Starting point is 00:13:39 but um it basically states as long as you retain this notice, you can do whatever you want with this stuff. And if we meet someday and you think this stuff is worth it, you can buy me a beer in return. Or two. Yeah. Yeah, I think that should be a more widely used license than what it is. I would agree. I would agree.
Starting point is 00:14:04 And we also, if you're listening to this podcast you probably might have stumbled across a site called stack overflow possibly uh you know maybe what was it again right um so they happen to use a creative commons license and joe did some reading on this one as well that was pretty interesting. And they specifically chose this for some good reasons. Yeah, when Stack Overflow kind of first came out, they were targeting a couple of sites that, you know, question and answer sites
Starting point is 00:14:35 that actually owned the rights to any content that was provided. And so if someone, you know, asked a question or answered a question, that material belonged to the company. And then specifically, experts exchange accepted a bunch of questions and answers from people and then turned around and put up a paywall. And so Jeff Atwood and Joel Spolsky, when they were working on the site,
Starting point is 00:15:02 they wanted to specifically prevent that sort of thing from happening, and they wanted to keep people's information usable. So they released a license for the actual content. All content written and submitted to Stack Overflow is actually placed under a community commons license. And what that means is it's a generally permissive license, so you can read it, you can share it, you can do just about anything that's not commercial with it. So you couldn't publish a book and charge money for the top 10 funniest questions on Stack Overflow, but you could write a blog post or maybe distribute a free PDFdf with that information yeah so it's it's pretty cool how they actually made
Starting point is 00:15:46 sure that us as developers can use that information and basically all we have to do is provide you know a link back to where you provided or where you got that information so pretty awesome now one thing i do want to cover real quickly with these ones that we just mentioned and there are way more i mean these are just the hot ones um is that they all have their own governing rules like some of them will say explicitly that you need to create a license.txt file and include in your project others will say that you just need to put you know lines at the top of the source code files that are provided so being that you know if you are looking at these things,
Starting point is 00:16:26 make sure you do look through what these specify that you actually have to do when using them in your project. These are just brief overviews. Yeah, and I should have mentioned for Stack Overflow specifically, if you grab some code and use it off of Stack Overflow, it requires attribution. So actually on a project I work on, ColorMind, I did grab some some code
Starting point is 00:16:46 from stack overflow and i do have a link to the question and the person who actually wrote the code that i ended up using yeah so again i mean there's tons of rules revolving around these things but just being aware of them is probably the most important thing there is. And kind of knowing what you're getting into by picking up one of these libraries. And, uh, I mentioned the XTJS. I'll go back to that real quick.
Starting point is 00:17:12 Uh, they do have the GPL license, which means that, you know, anything that you change, you have to give back to them. They also have a commercial license and you're seeing a lot more companies do that nowadays offering dual licensing so that,
Starting point is 00:17:24 Hey, if, if you just want to benefit from what we provide publicly for free fine but you're going to have to put your code back in here if you want to pay for it and use it not have to worry about anything you got that option too as if one license wasn't confusing enough there's also stuff like you know my sequel has a community edition and like a pro version and the pro version includes the community version and a bunch of other stuff. Yeah, it's a mess nowadays. And one last thing. Open source does not mean free.
Starting point is 00:17:57 And free does not necessarily mean open source. They're two different things that I think a lot of people typically blur. So just be aware of that. Like they're two different things that I think a lot of people typically blur. All right. So just be aware of that. So with that, what about some when licensing goes bad? Yeah. You know, when things go sideways and they go wrong, what kind of stories might there be out there? What's the hot one right now?
Starting point is 00:18:27 So I'm sure if you've been out there shopping around for your insurance, coming around, you've been a big fan of healthcare.gov. If not, you've probably at least heard about it. You might be one of the six people that had registered on the first day. They were dinged with their use of a DataTables plug-in for jQuery and neglected to include the copyright information. So that attribution that we've been talking about here, they didn't do it and they got dinged for it. Yeah, and I mean this is a fairly minor slap on the wrist, but i mean i guess just with all the problems they've been having this was
Starting point is 00:19:09 just adding to the pile right yep another example i like is uh actually tivo if you remember those guys they had uh kind of like a digital video recording device similar to like a dvr but uh they actually got uh in a lot of trouble a couple years ago because someone figured out that they were distributing GPL code and they were in violation of the license. What they ended up doing was actually just going ahead and releasing the source for their box.
Starting point is 00:19:36 Which, depending on what your company is, having to give out all that intellectual property like that rather than paying out could be huge imagine google search your company yeah i mean so uh speaking of having to pay out so skype several years ago they actually tried to create a voip phone that they were going to sell that was being distributed with linux and essentially because of the open source license with Linux being GPL
Starting point is 00:20:05 and them not providing the source code that they wrote, they got sued by a third party, and essentially just to make it go away, they ended up settling out of court. So there's an example of actually losing to the open source license. Well, as we were researching this this though uh didn't you find a story where it was saying like most of the licensing issues happened because it was uh within heart with it it was hardware yeah it's with uh embedded systems and it seemed that linux was at the heart of a lot of these because a lot of lin is written with, you know, GPL software or,
Starting point is 00:20:45 you know, whatever the case is. But essentially if there's one, Oh, we failed. We need to go back real quick. So the difference between GPL and LGPL, I think this is important to know is,
Starting point is 00:20:55 uh, so with GPL, Joe, you want to explain the hard link versus the, uh, the soft links. I don't want to get too much into it, but it basically has to do with, um,
Starting point is 00:21:04 like static and dynamic linking so if if you've got a program that's gpl code um i could actually run that from say something that's mit license or even proprietary get the output of it and and i'm fine um i'm sorry if that if that code is lgpl gpl not so much yeah so with the gpl essentially what he's saying is if you have like a bunch of third-party libraries all all tied together making your program run if one of them is gpl basically you have to open source the code for all the ones that you've got whereas with the lgpl it says okay okay we understand that you're using other code that has different licenses. You know, we won't force you to open source that stuff.
Starting point is 00:21:53 So these things that are happening with these embedded systems that are using GPL software, anything that they wrote custom that they supplied with that device or whatever, basically, you know, somebody came after them and said, hey, we want to see the source code for this. And because you use GPL software, we should be able to see it. And then I thought Outlaw was going to hit on this a second ago, but here's the interesting thing. It's not typically the companies that wrote that software that are griping and complaining about this. It's third-party people and software founders. Or competitors. Or competitors that want to see your practices.
Starting point is 00:22:25 What was it the uh free software foundation is one of the big ones that goes after a lot of these companies to either get money out of them or to make sure that they that they open up the code so it's pretty interesting it may not even be the person who wrote the code trying to do it and in most cases it's not well the free software foundation i think they're doing it just for compliance right they're not necessarily going at it just for money they've got they've got like a political agenda like they want all software to be free and they are defending the rights of those gpl holders yeah so uh that's all pretty interesting i guess what i was saying though is that i didn't want to like phrase that as they're suing oh no no no they're doing it for a greater good is the intent they definitely have a cause yeah right and actually i'm speaking of you know um some of the issues i actually found a really nice ab testing
Starting point is 00:23:14 tool that i liked and uh it was open source um code was all up on the internet and uh there was no license so i actually wrote the author and asked him about it and he he responded a couple weeks later saying hey yeah sure use it but but still didn't especially provide a license. So I was not able to use it because just him saying okay in an email doesn't give me the actual right to use that software. Interesting. One of you guys also had a SecurityNow thing that you wanted to say that was pretty interesting. Yeah, actually on episode 434 of Security Now, they mentioned that there's this organization, 1BillionX, that is going through all their old episodes and actually translating them to sign language, creating videos. And they could do that without Security Now's podcast's permission because their pockets are all released under creative commons,
Starting point is 00:24:07 which means that this, this organization, 1 billion X can't sell this stuff, but they can release it for free. They don't need to ask. And, uh, it just requires, well,
Starting point is 00:24:16 they can make it. They're making a derivative work of it as well, though. Yeah. Yeah. It's pretty cool. I think they said that like all of the twit shows were licensed under that, including the security now. Yeah. Interesting. That's pretty cool. I think they said that all of the Twit shows were licensed under that, including the Security Now. Yeah.
Starting point is 00:24:27 Interesting. That's pretty cool. And what about your ColorMind thing here? That was someone who did a story where when I first started ColorMind, actually someone wrote me a name. It was like, hey, I'd like to use this, but I can't until you pick a license. So I ended up going MIT. Oh, cool. So what happens if I want to change my license there you can do it i've picked one like maybe maybe maybe what if i picked wrong what if i
Starting point is 00:24:54 picked what if i picked gpl and i'm like you know what that's just way too much i'm getting too much complaints about people where they want to use my stuff but then they gotta you know give their stuff away so i want to change to mit what what then they got to, you know, give their stuff away. So I want to change to MIT. What, what the. So it's really weird. You are the copyright holder. So you, you absolutely can do that. You can change your mind at any time.
Starting point is 00:25:13 And, you know, if you went from GPL to something else, you know, I'm assuming that something else is going to be more permissive. So that's not such a big deal. But what is a big deal? If you go from, say, if you try to go from, say, Creative Commons or public domain or MIT license to GPL, and then you could potentially, you know, you could try to go around and sue prove that they got your code when it was under the more permissive license and they're they don't lose the right to that just because you change the license now anyone who downloads it from now on has to consent to your newer license but yeah so so does that apply well i mean this might be more Does that apply? Like, that's easy to understand if you went from one version of code to the second version of code.
Starting point is 00:26:09 Yep. But what if you stayed on the same version of code and literally the only thing that changed is the license? Somebody would have to have the burden of proof, right? Yeah, I think it is a legal issue at that point. And how would you ever prove it? I mean, what you just said about changing versions, that's what EXT did. When they went from version 2 to 3, they changed licenses. It's cut and dry.
Starting point is 00:26:29 I mean, if you have this version of the code base, it's pretty easy to see that it's a newer version. And so that license follows. So I would imagine if, like, yeah, you made no changes to the code, but you just wanted to flip the license, how are you going to prove it? I think the answer there is, you know, it's a bad answer, but don't do it. Or version your code. Well, change it, right? Just understand. Add a line.
Starting point is 00:26:53 Yeah. Changing the license with a new version seems to be the easiest way to go. Absolutely. Where you can absolutely prove that this version was never released under uh you know the the more permissive uh license so i mean what's the worst that could happen anyway like what if i violated the gpl you can be sued sued and you can lose money or you can have to provide your your source code which could you know basically give away all your secrets. Yeah, I guess if you're using GPL code, you've agreed by using that software to release that software.
Starting point is 00:27:33 So if you don't do that, you're in violation of the license, and they can come after you. And what we've seen in a lot of these cases, TiVo went ahead and open sourced their stuff. Other people have settled out of court. I haven't actually seen any court cases that ended up just assigning monetary damages. Now, here's a thought for you. I don't know if you guys have thought about something like this. And again, this might be a better question for a lawyer.
Starting point is 00:27:57 Let's say you're using a GPL image creation software. You create some image. What license does the image fall under interesting oh you're not distributing the software so i think you'd be all right um but oh yeah i don't know well i mean because the file like assuming it had some kind of file format well like oh like a p uh like a psd does for Photoshop. How does that fall under? I wonder. Yeah, you can also use proprietary tools
Starting point is 00:28:35 that generate stuff too, and you own a single user license. There you are spreading out that image. Real quick, you said that you weren't aware of anywhere damages had been awarded apparently there was a uh a company called busy box oh yeah had basically leveraged a or had put a lawsuit against westinghouse digital electronics in 2010 and the ruling went to busy box and damages were awarded so there has been a precedent set. It's not as common.
Starting point is 00:29:07 It typically seems that it is either they open source the software, or I mean open the code base on the software, or they settle out of court. But there was a particular case where damages were awarded. I assume we're talking lots of zeros. I don't know what the number is. So, yeah, worst case scenario case scenario i mean it can be bad and you know i do want to point out real quick like it sounds like we're making gpl out to be a little bit evil really it's not right i mean at the end of the day you just have to know what you're getting right you're getting free software so if you're willing to take on the responsibility
Starting point is 00:29:44 that you've got to provide back to it you know it's not evil but if you go into it without knowing that then it could certainly feel that way yeah yeah i mean you definitely got to understand what you're getting into and again like i said before it's all about the community it's all about contributing back to the community so as long as you know that you're you know you're giving back to the community then that's that's what makes it so great is because you are obligated to give back to the community. But understand that you are giving back to the community. You're giving it all back to the community. All right, so what about this, are emails licensed?
Starting point is 00:30:18 Yeah, that's what I was thinking about. So if I write a blog entry and it's all rights reserved, does that mean it's something that I emailed to someone else is also, has a license. It's got a copyright. Well, wasn't it like that? Uh,
Starting point is 00:30:33 I had always heard like, you know, back when I guess you'd use more snail mail to do stuff that just mailing something to yourself was a copyright. Like if you, if you created something, you could mail it to yourself as a as a way to make sure it was copyrighted and protected just mail it to yourself
Starting point is 00:30:50 but never open it interesting then that established your copyright but but doesn't really have anything to do with licensing at that point and again we're not lawyers so yeah yeah don't try this at home we We're not endorsing this. You're going to mail yourself a hard drive. It's right there. We've seen a couple court cases. Was it the oatmeal guy was being sued? And I wonder about it because if someone writes an email to someone else and that someone else publishes that email you know what
Starting point is 00:31:25 does that mean yeah um so next on this we have how do we find out if i violated any licenses i guess wait for the court summons yeah this one's not so much for a for so if you haven't been sued yet you probably would have been sued by now. But there are actually tools out there for going through looking for code and looking for common programs. But that was just kind of one for like an organization. Like if you're the president of some big company one day and you wake up and you're like, oh, crap, you know what? I bet there's some GPL or I bet there's some stack overflow code in here without attribution. How do you figure
Starting point is 00:32:07 that out? And there are some tools out there, but really, I mean, it's impossible to have a tool that would find every violation. Alright, so how do you license stuff anyway? Yo. Yo. How do I license stuff anyway?
Starting point is 00:32:25 Yo, yo, how do I license my stuff? Yo. So there, uh, you know, when we were doing some research for this, uh,
Starting point is 00:32:33 for this episode and even, even before we were doing this episode, going, going back when we, uh, we're first putting, putting out some coding examples on our own, uh,
Starting point is 00:32:43 on our own site and deciding like okay what kind of license do we want to use we found this great resource uh tldrlegal.com uh and if that's too short it would be a too long didn't read legal um but it's a great resource i i really liked it for being able to if you wanted to pick and choose among the many licenses that are out there and but the way you want to pick and choose is you want to be able to pick the things that are important to you in your license and the things that aren't important to you and the things that you absolutely don't want like it's a great way to be able to pick and choose through a license so I really liked that one so again that
Starting point is 00:33:26 that's tldrlegal.com yeah and it's really kind of cool because i mean it's like a quick filter is what it boils down to it's pretty awesome yeah it's like guided navigation for uh the legal system yeah oh we didn't really answer the question though. How do I license my code? How do I apply a license to my code? I thought it was like how do I pick licenses? You pretty much just follow whatever the format is. If you go to MIT and they tell you
Starting point is 00:33:58 you have to create a license.txt then you say hey this is all licensed under the MIT license. That's pretty much it it can be pretty simple it but it all boils down to each individual uh open source license that you're looking at so they all have their various different rules and you really just have to follow them and include the uh the verbiage that they say you know this is licensed under the gpl3 or this is licensed under mit. And then follow the recommendations.
Starting point is 00:34:29 Follow the requirements they give you. Yeah. Actually, one of my favorite questions is, can I just write my own license? And what exactly can I write in my own license? Like, could I come up with a license that says, using this software, um, gives me rights to 10% of your income for the rest of your life. Like,
Starting point is 00:34:50 can I do that and hope that there's some sucker out there that does it? I would think so. If you have the legalese in place. Yeah. I don't know. I don't know if that would hold up in court, but yeah, that,
Starting point is 00:35:01 that, that's going to be here. I think, I think our, our beer wear might be in trouble there yeah your honor he owes me a beer he saw me yeah he saw me yeah but you know a lot of the licenses we've been talking about here though have been under the context of uh you know applying the license within the code itself, right? We haven't even, I don't think we've given one example yet
Starting point is 00:35:27 of all the EULAs that we don't read, we just agree to. And that's a great place of like. I've never done that. When you ask about, yeah. You read every bit of it. All 20 pages. Yeah. But when you were, you know, back to the question of how do I license it, right?
Starting point is 00:35:46 Yeah, that's another example. Yeah, and that's how we're actually agreeing just using the software, not even distributing. Yeah. Yeah. Just using iTunes or whatever else you're saying. Yeah, sure. I agree to whatever this says. Yeah, whatever Facebook put in there is probably okay.
Starting point is 00:36:02 Yeah. Just trust that. I think it's safe. Well, why wouldn't you trust them? What is the license? The pictures I post on Facebook, that belongs in there, doesn't it? They own that, yeah. As a matter of fact, they say they can use it in any advertising, whatever.
Starting point is 00:36:17 Yeah, I mean, the whole do no evil, they took that and multiplied it by negative one. Yeah. They're like, whatever the opposite of what that guy's doing yeah yeah so you might see my face on a billboard one day like advertising for you know uh getting dental work there it is wow grandpa as long as like not like that uh one episode of friends where uh the teeth whitening no no no wasn't there the one episode of Friends. The teeth whitening? No, no, no. It wasn't the one episode of Friends where Joey saw his picture being used for an
Starting point is 00:36:51 STD advertisement. Okay, yeah. Nobody do that to Joe. Obscure references to old sitcoms. I'm just imagining a billboard on my face that says, tired of online dating? Hey, Linus. Awesome. Old sitcoms. I'm just imagining a billboard on my face that says, Tired of online dating? I like this. Awesome. All right.
Starting point is 00:37:10 We also have on here, what are compatible licenses? This is a deep, deep question. Seek legal counsel. I swear. It's like we already mentioned. I think that's when two licenses meet and they fall in love. Yeah, right. Yeah, we already mentioned the GPL.
Starting point is 00:37:28 They later show up on a billboard. The GPL and the MIT. If you touch those two together, it comes out GPL. So, you know, one chromosome was stronger than the other. Yeah. I mean, this topic's pretty involved. And, you know, just be aware there are ramifications. Depending on what licenses you're trying to combine, the outcome could be crazy.
Starting point is 00:37:55 Can you imagine trying to distribute something like a set-top box that's running Linux, all the different software on there? There's going to be tons of different licenses, and you've got to make sure that you comply with all of them. And that's quite a task. Yeah, you better just patent that box and hope that that works, right? Not the software, the box. Yeah, but if the software are under, it's GPL.
Starting point is 00:38:16 No, but you can patent the box, not the software. That's enough. Right. Yeah. Now we're getting into patents. Now, if your code was all GPL in the box and you released it all, then you're all right. Yeah. Patent the box, let the code all be open.
Starting point is 00:38:33 I mean, that's probably the way you go about that. Yeah. See, if all code was GPL, then we wouldn't have this kind of problem. Everybody just gives up the trade secrets right on. Yeah. That's basically what would have to happen. Yeah. It would be like Star Trek.
Starting point is 00:38:48 Yeah. Free software foundation. Yeah. We get all about it. So what about these funny licenses? Yeah, we came across some pretty funny licenses out there. Unfortunately, especially if you look at the Do No Evil license by Douglas Crockford, the guy famous for JavaScript for Good Parts
Starting point is 00:39:06 and JS Min and JS Lint and a couple other cool tools. He actually got a lot of flack for writing this Do No Evil license, which basically just says that, like, use this however you want, just don't do evil. The problem is a lot of people are afraid to use that software because they're not sure what legally constitutes evil. And they don't really want that coming up in court.
Starting point is 00:39:29 That's excellent. There's also, because we have this fairly PG-13 show here, there's the WTFPL. If you don't know what WTF is, just Google it. But there's that one.
Starting point is 00:39:45 Basically, just do what you want. Yep, and there's also the notion of unlicensing, which basically just puts your work in the public domain, which means anyone could do whatever with it, including relicensing it, making changes, stuff like that. I meant to say sublicensing. Sorry. Yeah, and we didn't really talk about sublicensing simply because I don't really understand it that much, and I don't really talk about sub-licensing simply because i don't
Starting point is 00:40:05 really understand it that much and i don't do you guys it can go underwater that makes about as much sense as everything else i read yeah i mean oh my god the legalese we were reading for that stuff i was just like i give whatever um maybe one of the uh the attorneys who happens to want to be a coder can reply into us at comments at coding blocks and let us know the folly of our ways here but you know um so moving on then uh let's get to our tips of the week dun dun dun all right so mine is a little trick that i've showed a few people. Apparently, Oracle has something where you can describe a table,
Starting point is 00:40:52 and it will tell you all the columns and everything like that in a table. Well, SQL Server doesn't really have a describe function or anything like that. But what it does have in SQL Management Studio is if you are in the database that the table exists in, if you highlight that table name in your query window and hold down the alt and the F1 button at the same time, it'll basically spit out all the information about that table, which is really cool. So you get your columns, you get the data types and all that kind of stuff. So if you just quickly want to see what's in the table without having to hunt through the explorer window and expand everything that's a really quick nifty tip that a lot of people don't even know about yeah that's nice especially um autocomplete doesn't seem to work very well for me for some reason so i'd love to just all f1 and see what the stupid column's called you either well i know
Starting point is 00:41:38 it's horrible you know going back into the you know my ibm past uh IBM past, DB2 had a feature that I've never understood why other databases didn't provide it as easily. But, yeah, it was just a describe keyword. You could just type in describe and enter in a SQL statement, and boom, there's all the information about that table. Oh, you said about the whole SQL statement. Oh, that's all the information about that table. Oh, you said about the whole SQL statement. Oh, that's pretty interesting. Yeah, well, I mean, more often than not, like the way I use it a lot of times as a shortcut, which is like trying to remember, like,
Starting point is 00:42:13 what does that table look like? And so I would just, you know, describe select star from blah, blah, blah. Interesting. But if you included like only... Joins or something, it would do that too, right? Yeah, or if you narrowed down your column set you know you're going to change it that's pretty cool i know my sql has a described statement you can actually do describe table and it'll spit out the column information but
Starting point is 00:42:35 but yeah again it's pretty cool for sql server store procedures out there that somebody's going to come back with like uh well yeah you can also select star from information schema.com there's all kinds of stuff but but the alt f1 though is a fantastic trick it's a quick shortcut and it is really nice if you're just in the in the heat of the moment and you're frustrated you just want that information so that's mine all right mine is actually agent ransack it's a free version of file locator Pro by Mythic Software. And it's really awesome. It's almost like grep for Windows.
Starting point is 00:43:12 You can do lots of really cool searches, including regular expressions. And it'll actually bring up the files that match the text you're searching for. It shows you some snippets around that line. So you can get a sample of the context. And it's free. And it even employs pretty sophisticated caching, if I remember correctly. So if you're doing multiple searches trying to kind of refine that down, then it's really good and really fast and free. And what license?
Starting point is 00:43:34 I couldn't actually find an explicit license other than it's just saying this is free for use. And it's not open source. It's actually freeware. It's just free, yeah. Yeah, freeware. So fantastic. source it's actually freeware yeah yeah freeware so fantastic so uh my my tip of the week here would be using the attach to process feature within visual studio so if you're not already aware of this feature um let's say for example that you are working on a uh you know a web project
Starting point is 00:44:02 and you you want to debug something and under normal circumstances, you could just, you know, go up to the debug window and click on start debugging or hit F5 or click on the start button, you know, but that's going to spawn up a new worker process and, you know, a new, or not a new worker process business it's going to compile it and everything and then spawn up a new browser to get you into that and there's some time that's going to be delayed there right so uh if you just already want to attach to the worker process that's already more likely than not already running on your system, you can go to the debug menu, click on attach to process,
Starting point is 00:44:50 and then a list of processes will be presented. You can pick the one that you want to attach to, which in the case of a web project, you're going to be looking for a W3WP process. And you can highlight it and then click the attach button and then in one of your other browsers windows doesn't matter which window anything that would go to your web projects url is going to be running through that so any breakpoints that you have you're going to get it's going to stop at. Yeah, it's beautiful. Yeah, it's kind of like debugging on a remote machine,
Starting point is 00:45:30 except it's local and you get to save that build step, which can be pretty lengthy. Yeah, it can shave off half the time. With that, we'll be putting our links and show notes, in the show notes and everything, making that available for you on codingblocks.net slash episode five. Bam. So subscribe to us on iTunes, Stitcher, and more using your favorite podcast app.
Starting point is 00:45:49 Be sure to give us reviews on iTunes and Stitcher. Visit us at codingblocks.net where you can find our show notes, examples, discussion, and more. Send your feedback, questions, and rants to codingblocks... comments at codingblocks.net. Wow, it's been rough. Send your comments and blah blah blah blah drinky drinky i think it's done oh oh and a couple other things uh come follow us on twitter at coding blocks and uh check us
Starting point is 00:46:19 out on facebook at facebook.com slash codingcks and also come up to our site and subscribe to our newsletter. We've got a few people joined and we want more. Bring it up and definitely share with your friends, family, anybody else who's interested in coding and we got anything else? Let us know what you think. We mentioned
Starting point is 00:46:40 it a few times already and so as you might have gathered this is pretty important to us. We'd love to hear your feedback. Without that, we don't really know how we're doing, and we don't know how to make it better. Yeah, and I mean, that feedback can either come through the website, you can do it on iTunes,
Starting point is 00:46:56 do it wherever, but please, leave us some honest feedback. It doesn't even have to be good feedback. It could be a rant. Yeah. But if you're going to do a rant, don't leave it on iTunes. Do that through our site or something. Yeah, five-star review, and then email us a rant. Yeah. But if you're going to do a rant, don't leave it on iTunes. You know, do that through our site or something. Yeah, five star review and then email us your complaints.
Starting point is 00:47:09 Yeah, exactly. So good stuff public, bad stuff private. There we go. We got it. All right, now that we've got all that clear.
Starting point is 00:47:15 What license is that on there? Yeah, yeah, MIT that one. That's the do no evil license. All right, and that was comments at puttingblocks.net.
Starting point is 00:47:22 I don't know if you ever got it out there. Yeah, yeah, and at some point, I think we might. I think if you were to, like, piece it all together, it got there. Yeah, yeah. So, yeah, man. Hope everybody enjoyed.
Starting point is 00:47:35 Peace. © transcript Emily Beynon

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