Coding Blocks - We Still Don’t Understand Open Source Licensing
Episode Date: December 28, 2013This 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)
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.
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.
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
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.
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.
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,
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,
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
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.
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
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.
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
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
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,
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
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.
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.
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.
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
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
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
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.
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
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.
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
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,
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
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,
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
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.
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,
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.
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?
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
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.
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
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,
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,
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,
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.
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.
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
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,
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,
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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
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?
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,
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
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
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
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?
Yo,
yo,
how do I license my stuff?
Yo.
So there,
uh, you know,
when we were doing some research for this,
uh,
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,
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
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
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.
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,
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,
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
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?
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.
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.
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
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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,
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
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,
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
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.
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?
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
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,
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,
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.
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
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
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,
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.
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.
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.
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.
Peace. © transcript Emily Beynon
