1
0
Fork 0

timeblock (culture): timed and refined

This is way too long; it needs to be gutted even further.  But the substance
must remain---this is an important, core part of my talk, and it's important
that everyone take home this message---the message of the fundamnetal
problem with today's Web.
master
Mike Gerwitz 2016-03-17 01:02:57 -04:00
parent 9c63a44946
commit a9e48abdd9
No known key found for this signature in database
GPG Key ID: F22BB8158EE30EAB
1 changed files with 115 additions and 128 deletions

243
talk.tex
View File

@ -702,57 +702,51 @@
%%%=== BEGIN TIMEBLOCK Nm ==============================================
%%% !!! way too long
%%%=== BEGIN TIMEBLOCK 10m ==============================================
\begin{frame}{The Web Is Easy}
\lecture{Let's explore another aspect of why the Web is so appealing for
software developers.}
%% TODO: let's emphasize the benefits a bit more
\begin{itemize}[<+->]
\begin{itemize}
\item Low Barrier To Entry
\lecture{Most everyone has a web browser. Everything rendered in that
browser uses standardized document and styling formats---HTML
and CSS---which have been used for decades to represent
documents. This retrofitting of sorts makes it easy to
inspect programs' UIs and play with them. Every modern
browser comes with debugging tools for inspecting the DOM and
running scripts, for monitoring and inspecting network
traffic, for debugging scripts. This is \emph{great} for a
free Web---it encourages studying and tinkering. So
interested users can easily tweak the page, or type some
scripts in the browser's console to see what happens. And
when they start writing software, they can see it in the
familiar environment that is their web browser. There's not
much that is alien to them; if you introduce someone to shell
scripting, C, Perl, Python, etc, they're diving into a world
that is entirely hidden from their perspective as a
\emph{user} of software.}
browser uses standardized document and styling formats. This
retrofitting of sorts makes it easy to inspect programs' UIs
and play with them. Every major browser comes with debugging
tools for inspecting the DOM, monitoring and inspecting
network traffic, debugging scripts, and much more. This is
\emph{great} for a free Web---it encourages studying and
tinkering. And when users start writing software, they can
see it in the familiar environment that is their web
browser. There's not much that is alien to them; if you
introduce someone to shell scripting, C, Perl, Python, etc,
they're diving into a world that is entirely hidden from
their perspective as a \emph{user} of software.}
\item Huge number of libraries and tools for web development
\lecture{Now, the leap from a document format to a program can be a
bit daunting. But, because of all the reasons I mentioned,
the number of libraries focused on web development is growing
at an \emph{unbelievable} rate. You can have working
software running on most every modern operating systems
quickly and easily, and not even have to worry about how
you're going to package and distribute it! And most of these
popular libraries are free software. The most daunting task
for new web developers is often what library to pick.}
at a startling rate. You can have working software running
on most every modern operating system quickly and easily,
and not even have to worry about how you're going to package
and distribute it! And most of these popular libraries are
free software. The most daunting task for new web developers
is often what library to pick.}
\item Even desktop software using web libraries
\item Even server/desktop software [substitutes] using web libraries
\lecture{And then we have software like Node.js that allows running
code written for the web directly, without a web browser. So
it often makes sense to write software in JavaScript or a
language that compiles into it, because then you can share
code between the server and client. It makes sense to write
your UI using HTML and CSS, because you can execute the
program in a way that it doesn't look like a website;
Chromium, for example, has a ``app'' mode that makes the
loaded page look like a normal program. And then you have
those that only really know web development, but are now able
to take that knowledge and apply it directly to the server or
the desktop.}
program in a way that it doesn't look like a website.
And then you have those that only really know web
development, but are now able to take that knowledge and
apply it directly to the server or the desktop.}
\end{itemize}
\end{frame}
@ -777,12 +771,12 @@
making it easy for the bad guys! And there's an explanation for
that.}
\begin{itemize}[<+->]
\item We have a licensing problem.
\begin{itemize}
\item<2-> We have a licensing problem.
\lecture{What we have is a licensing problem! We have a \emph{lot} of
free software,}
\item Permissive licensing \emph{enables} proprietary software
\item<3-> Permissive licensing \emph{enables} proprietary software
\lecture{but most of it is licensed under a permissive license---the
most popular being the MIT~Expat license, which allows for
non-free derivatives. What this means is that proprietary
@ -796,33 +790,32 @@
\end{itemize}
\end{frame}
\begin{frame}{Philosophy/Culture Problem}
\lecture{The predominant underlying reason of the licensing problem is a
philosophical and cultural one.}
%% this frame: 3--3.5m
\begin{frame}{Philosophy/Culture Problem}
\begin{itemize}
\item<2-> ``Open source almost everything''---Tom Preston-Werner
\item<1-> ``Open source almost everything''---Tom Preston-Werner (GitHub)
\lecture{If you've listened to any in-depth criticism about licensing
practices of the modern web development community, then
you've probably heard of Tom Preston-Werner's post entitled
``Open source almost everything''. It has some startling
statements that illustrate the mindset of the larger web
development community, and the open source community in
general. Let's take a look at a few. Now, just a warning,
some of what you are about to see may shock and confuse
you. Viewer discretion is advised.}
``Open source almost everything''. Now, I want to go over
some snippets, because this is an incredibly important topic
and his post has some startling statements that illustrate
the mindset of the larger web development community, and the
open source community in general. Some of what you are about
to see may shock and confuse you. Viewer discretion is
advised.}
\end{itemize}
\only<3>{
\only<2>{
\begin{quote}
\hangleft{``}If you do it right, open sourcing code is \textbf{great
advertising} for you and your company. [...] we like to talk publicly
about libraries and systems we've written that are still closed but
destined to become open source. [...] It helps determine what to open
source [...]. We recently open sourced [...] our chat bot
[...]. Within two days it had 500 watchers on GitHub and 409 upvotes
on Hacker News. This translates into goodwill for GitHub and more
superfans than ever before.'' (Emphasis \emph{not} mine.)
\hangleft{``}If you do it right, open sourcing~[sic] code is
\textbf{great advertising} for you and your company. [...] we like to
talk publicly about libraries and systems we've written that are still
closed [sic] but destined to become open source~[sic]. [...] It helps
determine what to open source~[sic] [...] This translates into
goodwill for GitHub and more superfans than ever before.'' (Emphasis
\emph{not} mine.)
\end{quote}
\lecture{This is an excellent example of why we should reject ``open
source''---as a development methodology, it ignores users' freedoms
@ -833,7 +826,7 @@
to do.}
}
\only<4>{
\only<3>{
\begin{quote}
\hangleft{``}If your code is popular enough to attract outside
contributions, you will have created a \textbf{force multiplier} that
@ -845,9 +838,9 @@
community writes the rest of the software for them.}
}
\only<5>{
\only<4>{
\begin{quote}
\hangleft{``}When you open source useful code, you \textbf{attract
\hangleft{``}When you open source~[sic] useful code, you \textbf{attract
talent}. Every time a talented developer cracks open the code to one
of your projects, you win.'' (Emphasis \emph{not} mine.)
\end{quote}
@ -856,99 +849,89 @@
proprietary software.}
}
\only<6>{
\only<5>{
\begin{quote}
\hangleft{``}Ok, then what shouldn't I open source? That's
easy. Don't open source anything that represents core business
\hangleft{``}Ok, then what shouldn't I open source~[sic]? That's
easy. Don't open source~[sic] anything that represents core business
value.''
\end{quote}
\lecture{But what about the stuff that is truly innovative and valuable
enough that you consider it a core part of your business? The
stuff that you think is the most valuable to you? The stuff
that the free software community needs to compete with this
ever-growing proprietary world? You hide it. And you suggest
that others do the same.}
enough that you consider it a core part of your business?
The stuff that the free software community needs to compete
with this ever-growing proprietary world? You keep it
hidden. And you suggest that others do the same.}
}
\lecture{Alright, now this last quote blows my mind.}
\only<7>{
\only<6>{
\begin{quote}
\hangleft{``}Lastly, \textbf{it's the right thing to do}. It's almost
impossible to do anything these days without directly or indirectly
executing huge amounts of open source code. If you use the internet,
you're using open source. That code represents millions of man-hours
of time that has been spent and then given away so that everyone may
benefit. We all enjoy the benefits of open source software, and I
believe we are all morally obligated to give back to that community.''
(Emphasis \emph{not} mine.)
executing huge amounts of open source [sic] code. If you use the
internet, you're using open source [sic]. That code represents
millions of man-hours of time that has been spent and then given away
so that everyone may benefit. We all enjoy the benefits of open
source software [sic], and I believe we are all morally obligated to
give back to that community.'' (Emphasis \emph{not} mine.)
\end{quote}
}
\lecture{What!? We are all \emph{``morally obligated''}, he says. This
is baffling. He recognizes how much he benefits from the free
software community after talking about how to exploit it and
contribute back only what might benefit their business by
attracting free labor and good talent. To quote Bradley~Kuhn
from one of his talks, this is incredibly self-serving.}
\lecture{To quote Bradley~Kuhn from one of his talks, this is incredibly
self-serving.}
\end{frame}
\begin{frame}{The Web Scene}
\lecture{Tom's philosophy is pervasive throughout the modern web
development community. And if we look at the composition, we can
see why:}
development community. His post has influenced it. And, if we
take a look at the community, we can see why:}
\begin{itemize}
\item<2-5> Contributions by large corporations (e.g. Google, Facebook,
Twitter, GitHub)
%% TODO: Examples
\lecture{It's no question that life today is largely online, and there
are many major corporations that play a big role in
that. Many of the popular free libraries for the web are
written by those corporations and used within their own
proprietary software as well.}
\item<3-5> Startups (e.g. YCombinator-funded)
\item<2-> Startups (e.g. YCombinator-funded)
\lecture{Most new software startups today are going to have some sort
of online component---if even just for the social
aspect. But as has already been discussed, the web is an
aspect. As has already been discussed, the web is an
attractive platform, and an easy way to create vendor
lock-in---something that many misguided startups will
consider to be a very important thing for their long-term
success. For this to happen---for these young startups to be
able to get software out cheaply and quickly with limited
resources---they need free software. So there is immense
community pressure to create permissively licensed software;
it's more difficult to distribute proprietary software for
the web when the client libraries carry a copyleft.}
consider to be vital to their long-term success. For this to
happen---for these young startups to be able to get software
out cheaply and quickly with limited resources---they need
free software. So there is immense community pressure to
create permissively licensed software; it's more difficult to
distribute proprietary software for the web when the client
libraries carry a copyleft.}
\item<4-5> New programmers, new culture
\item<3-> New programmers, new culture
\lecture{And speaking of that community pressure---the web development
community is home to many new or inexperienced
programmers. Those programmers are immersed in a culture that
talks about ``rockstar'' and ``10x'' programmers; about
``brogrammers'' and ``hipster'' languages---these are very
different terms than hackers are used to, and highlight very
different concepts. Importantly, they focus on
\emph{methodology}---performance, producing something that is
cool and will be accepted by your peers. This is not a focus
on freedom at all. ``Copyleft'' is a dirty word: if you want
to be accepted by your peers---\emph{especially} in the
startup community, which you might want to be a part of
yourself---you'd better license your libraries
permissively. If you don't, someone's going to ask you to
relicense so that they can use it in their own proprietary
software, and lecture you on how copyleft restricts their
freedom as a developer. But that's assuming that you've even
been introduced to the concept of copyleft to begin
with. And besides, all your friends are doing it, and
they're all 10x rockstars!}
different concepts.}
\begin{itemize}
\item<3-> ``Open Source''
\lecture{Importantly, they focus on
\emph{methodology}---performance, producing something
that is cool and will be accepted by your peers. This is
not a focus on freedom.}
\item<3-> ``Copyleft'' is a dirty word
\lecture{``Copyleft'' is a dirty word: if you want
to be accepted by your peers, you'd better license your
libraries permissively. If you don't, someone's either going
to ask you to relicense so that they can use it in their own
proprietary software, and lecture you on how copyleft
restricts their freedom as a developer, or your project will
be shunned. But many haven't even been introduced to the
concept of copyleft to begin with.}
\end{itemize}
\item<5> Peer pressure
\lecture{So there is immense peer pressure---pressure to ignore
talking about the awkward politics and philosophy of freedom
entirely and just stick to the brogramming, man.}
\item<4-> Peer pressure
\lecture{And besides, all your friends are doing it, and they're all
10x rockstars! So there is immense peer pressure---pressure
to ignore talking about the awkward politics and philosophy
of software freedom, and just stick to writing software.}
\end{itemize}
\end{frame}
@ -962,25 +945,29 @@
arguments---which are hard, because they involve
confrontation. It's therefore trivial to push ``open
source'' and permissive licensing with the end goal of
fighting copyleft, without actually bringing up the issue
most of the time, thereby creating a large community that
works against copyleft without actually \emph{thinking} about
fighting copyleft, without actually bringing up the issue,
thereby creating a large community that works against
copyleft without actually \emph{thinking} about
copyleft. This is very dangerous. As I know many others
here have witnessed when trying to defend copyleft, it can be
very hard to explain these issues to someone who isn't aware
that issues even exist. It's an army of ignorance; an army
of non-enemies that we can't just tear down, because they
might not know better, and we'd do best to try to convince
them that their freedoms are important, and that users'
freedoms are too. And when we go after the leaders---the
mentors---the army swarms to their defense.}
that issues even exist. And when we go after the
leaders---the mentors---the army swarms to their
defense. It's an army of ignorance; an army of non-enemies
that we can't just tear down, because they might not know
better, and we'd do best to try to convince them that their
freedoms are important, and that users' freedoms are too.}
\end{center}
\lecture{Well, having spoken of Bradley Kuhn: as of last month, we even
have a term describing broad issue. And, no, it's not a hipster
word.}
have a term describing this broad issue. And, no, it's not a
hipster word.}
\end{frame}
%%%=== END TIMEBLOCK 10m ==============================================
%%%=== BEGIN TIMEBLOCK Nm ==============================================
\begin{frame}
\lecture{Kuhn's paradox!}