1
0
Fork 0

all: reduce transitions

This'll be a little less stressful to present.  But I still have a bunch of
stuff to remove because of time restrictions.
master
Mike Gerwitz 2016-03-18 13:04:08 -04:00
parent 8c2e9ccda5
commit cf7b022f32
No known key found for this signature in database
GPG Key ID: F22BB8158EE30EAB
1 changed files with 42 additions and 42 deletions

View File

@ -524,7 +524,7 @@
exploitative, and highly alluring to many. Two things that go
great in the same sentence.}
\begin{itemize}[<+->]
\begin{itemize}
\item Software is downloaded \emph{automatically}---guaranteed!
\lecture{So, when you visit a website---as we've already
discussed---your browser just starts saying ``Yes!'' to
@ -533,28 +533,27 @@
and executed, and it will be done so immediately. If not,
their browser is broken, right? Right.}
%% Shackle as a Service
\item It's so easy for you---just click here!
\item<1-> It's so easy for you---just click here!
\lecture{Baiting the user into downloading that software is also a
trivial task---there's no trying to trick the user into
downloading and invoking an executable. Just provide the
user with a link, and their freedoms are automatically
robbed.}
\item Cross-\{device,platform\}!
\item<2-> Cross-\{device,platform\}!
\lecture{In the modern web, platform or operating system isn't a
border---you can rob someone of their freedoms anywhere, any
time, whether they're on a mobile device, their home
computer, or their television.}
\item Automatic updates! We know best! (Ephemeral software)
\item<3-> Automatic updates! We know best! (Ephemeral software)
\lecture{And let's not worry about those pesky users who decide to
exercise their freedom to decide what software they want to
run. Just overwrite their software for them, at any
time. Updates are automatic, and the user has no
choice.}
\begin{itemize}
\item Your browser is effectively a backdoor
\item<3-> Your browser is effectively a backdoor
\lecture{You might hear from security experts that most
computers have a backdoor---software updates. Well, in
this case, the backdoor is the front door. You have no
@ -565,12 +564,12 @@
disappears until you next load it again.}
\end{itemize}
\item We control your data and computing (SaaSS)!
\item<4-> We control your data and computing (SaaSS)!
\lecture{But that's not enough. How can we take even greater
advantage of the user? Ah, let's also hold their data
hostage, and control what they can and cannot do with it!}
\item So easy to spy on you!
\item<5-> So easy to spy on you!
\lecture{And what's a magnificent consequence of all of this? We get
to spy on you for free! It's part of the package! We know
exactly what you are doing, when your are doing it, how you
@ -592,16 +591,17 @@
\only<2>{SaaS---Shackles as a Service}
\lecture{But as it happens, the answer fell right into their
laps---``Shackles as a Service''. We're at the point today
where the next step to strip all power from the user is to
remotely render the program and stream images. And
unfortunately, such a thing already exists! It's called
``cloud gaming'', or Gaming as a Service. Hold the fart
jokes. These services remotely render games and stream them
to the user. All user input is sent to the service. The
next logical step after that is then licensing eyeball or
brain implants so that the user can't record or manipulate
the image on her screen! Vision as a Service, perhaps.}
laps---when talking about freedom, we may as well call it
``Shackles as a Service''. We're at the point today where
the next step to strip all power from the user is to remotely
render the program and stream images. And unfortunately,
such a thing already exists! It's called ``cloud gaming'',
or Gaming as a Service. Hold the fart jokes. These services
remotely render games and stream them to the user. All user
input is sent to the service. The next logical step after
that is then licensing eyeball or brain implants so that the
user can't record or manipulate the image on her screen!
Vision as a Service, perhaps.}
\end{center}
\end{frame}
@ -678,11 +678,11 @@
that.}
\begin{itemize}
\item<2-> We have a licensing problem.
\item<1-> We have a licensing problem.
\lecture{What we have is a licensing problem! We have a \emph{lot} of
free software,}
\item<3-> Permissive licensing \emph{enables} proprietary software
\item<2-> 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
@ -775,7 +775,7 @@
resources---they need free software. So there is immense
community pressure to create permissively licensed software.}
\item<3-> New programmers, new culture
\item<2-> 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
@ -1022,8 +1022,8 @@
\begin{frame}{Corresponding Source Code}
\begin{itemize}[<+->]
\item Where can I find the corresponding source?
\begin{itemize}
\item<1-> Where can I find the corresponding source?
\lecture{The other requirement is the corresponding source code. We
should be able to build it ourselves, host it ourselves, and
expect to have the same functionality. And we should be able
@ -1034,13 +1034,13 @@
around the page if they have some cursed flag set, but
non-free nonetheless.}
\item Minified code is not source code!
\item<2-> Minified code is not source code!
\lecture{I have personally had people counter my argument in the past
with a statement saying that all JavaScript code is
quote-unquote ``open source'' because the source code is
distributed to the browser. No!}
\item ``The 'source code' for a work means the preferred form of the
\item<2-> ``The 'source code' for a work means the preferred form of the
work for making modifications to it. 'Object code' means any
non-source form of a work.''
\lecture{The GPL defines ``source code'' as (read above). So minified
@ -1084,18 +1084,18 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
\begin{frame}{LibreJS}
\begin{itemize}
\item<1-> Blocks execution of non-free JavaScript
\item Blocks execution of non-free JavaScript
\lecture{LibreJS blocks the execution of non-free JavaScript. But how
does it determine what is non-free?}
\item<2-> JavaScript should ideally contain {\tt @license} tags
\item JavaScript should contain {\tt @license} tags
\lecture{A couple ways. Ideally, the JavaScript should be wrapped in
license tags. It can identify the license in a number of
ways, including the full license header you'd see in source
files, or a magnet link, which is much more ideal for
minified sources.}
\item<2-> Hashes of common libraries recognized as free
\item Hashes of common libraries recognized as free
\lecture{But the Web is full of \emph{existing} software like
libraries that don't contain those labels. So LibreJS also
maintains a list of file hashes for popular libraries. For
@ -1103,7 +1103,7 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
showed would be recognized as free, even though it doesn't
contain licensing information.}
\item<3-> Web Labels map scripts to corresponding source code
\item Web Labels map scripts to corresponding source code
\lecture{It then has a method called Web Labels---which is a simple
HTML table---that is intended to be a machine-readable way to
map scripts to their source code.}
@ -1178,9 +1178,9 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
program is packaged entirely in its own JavaScript files, and
so are its dependencies.}
Solution:
\only<2->{
Solution:
\begin{enumerate}
\item Block program scripts
\item Block undesirable dependencies
@ -1205,15 +1205,15 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
a shopping cart, animating part of the page, etc.}
%% add web page screenshot as an example
\item<2-> Some scripts are packaged in one or more JavaScript files
\item<1-> Some scripts are packaged in one or more JavaScript files
\lecture{Some of those scripts might be packaged in one or more
JavaScript files. Okay, that's good.}
\item<3-> Some are inline {\tt <script>} tags scattered throughout
\item<1-> Some are inline {\tt <script>} tags scattered throughout
\lecture{But some are inline script tags mixed with the HTML.}
%% example
\item<4-> Some are inline JavaScript fragments in HTML attributes
\item<1-> Some are inline JavaScript fragments in HTML attributes
\lecture{And others still might be fragments of JavaScript in HTML
attributes. Not everyone knows how to write proper
JavaScript, and others who do simply don't care that they're
@ -1384,16 +1384,16 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
\begin{itemize}
\item<2-> Install replacement software like you'd install an addon
\item<3-> Automatically block scripts with granularity of LibreJS
\item<2-> Automatically block scripts with granularity of LibreJS
\item<4-> Automatically inject scripts
\item<2-> Automatically inject scripts
\item<5-> Verify package signatures
\item<2-> Verify package signatures
\item<6-> Update mechanism
\item<2-> Update mechanism
\end{itemize}
\item<7-> Add support to LibreJS
\item<2-> Ideally: add that support to LibreJS
\lecture{And ideally you'd add that support to GNU LibreJS.}
\end{itemize}
@ -1430,8 +1430,8 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
``Service as a Software Substitute''---as coined by rms---to
emphasize that you're sacrificing something.}
\item You simply cannot modify a program running on someone else's
server
\item<2-> You simply cannot modify a program running on someone else's
server
\lecture{This poses an entirely different problem than software
freedom---you simply cannot modify software on someone else's
computer; nor should you be able to.}
@ -1475,7 +1475,7 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
\item<3-> We can't talk about freedoms using terms that cloud understanding
\begin{itemize}
\item<3-> Better term---the ``fog''
\item<4-> May as well call it the ``fog''
\end{itemize}
\lecture{Don't talk about the ``cloud'', because if you speak in such