1
0
Fork 0

timeblock (unweb): timing and refinement

master
Mike Gerwitz 2016-03-17 23:37:26 -04:00
parent 3800a32e4b
commit c27de2e53c
No known key found for this signature in database
GPG Key ID: F22BB8158EE30EAB
1 changed files with 49 additions and 60 deletions

109
talk.tex
View File

@ -1538,7 +1538,7 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
%%%=== BEGIN TIMEBLOCK Nm ==============================================
%%%=== BEGIN TIMEBLOCK 6m ==============================================
\begin{frame}
\begin{center}
@ -1554,9 +1554,6 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
\end{frame}
%% TODO: What to do with "Shackles as a Service" above?
\begin{frame}{Service as a Software Substitute (SaaSS)}
\begin{itemize}
\item<1-> Also called ``Software as a Service'' (SaaS)
@ -1574,8 +1571,8 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
computer; nor should you be able to.}
\end{itemize}
\lecture{Now let's be clear---you'll often hear that these services are
hosted quote ``in the cloud''.}
\lecture{You'll often hear that these services are hosted quote ``in the
cloud''.}
\end{frame}
@ -1589,8 +1586,8 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
\begin{frame}{There Is No Cloud}
\begin{itemize}[<+->]
\item Talking about the ``cloud'' leads to cloudy judgment
\begin{itemize}
\item<1-> Talking about the ``cloud'' leads to cloudy judgment
\lecture{The ``cloud'' is a popular term that is more of an
advertising ploy than anything at this point, as it deeply
confounds the situation and insults users' intelligence by
@ -1598,21 +1595,21 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
magic, providing no explanation of what is \emph{actually}
going on.}
\item It's just someone else's computer---lots of them
\item<2-> It's just someone else's computer---lots of them
\lecture{There is no cloud---it's just someone else's computer. Lots
of them; on demand.}
\item Difference: elasticity---servers/resources brought online only
when needed
\item<2-> Difference: elasticity---servers/resources brought online only
when needed
\lecture{The difference between the quote-unquote ``cloud'' versus
normal servers is that they are what is called ``elastic'',
in that you bring new servers and resources online as needed,
and get rid of them when they're not. But otherwise---it's
the same damn thing!}
\item We can't talk about freedoms using terms that cloud understanding
\item<3-> We can't talk about freedoms using terms that cloud understanding
\begin{itemize}
\item Better term---the ``fog''
\item<3-> Better term---the ``fog''
\end{itemize}
\lecture{Don't talk about the ``cloud'', because if you speak in such
@ -1636,7 +1633,7 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
run the entire software stack---both server and client---on
our own computers.}
\item<2-> ``Unweb''
\item<2-> Unweb
\lecture{I call this ``unwebbing'', because you are eliminating your
reliance on the Web to run the software, and treating it more
like a desktop application.}
@ -1645,20 +1642,13 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
\begin{frame}{Unwebbing}
\begin{itemize}[<+->]
\item Cannot unweb proprietary services without replacements
\lecture{We first need to recognize that we're not going to be able to
unweb proprietary services without a lot of effort. Even
though we might be able to run the client ourselves---because
it's served to us---the server software will need to be
written by us, because they're not going to give it to us.}
\item Cannot unweb a partially free stack
\begin{itemize}
\item<1-> Cannot unweb a partially (or non-) free stack
\begin{itemize}
\item Webserver
\item Programs/scripts that it runs to generate output
\item Script dependencies
\item Client
\item<2-> Webserver
\item<2-> Programs/scripts that it runs to generate output
\item<2-> Script dependencies
\item<2-> Client
\end{itemize}
\lecture{We also can't unweb a \emph{partially free} stack---for
@ -1669,7 +1659,7 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
output-generating software that it might run, any
\emph{dependencies} for those programs, and then finally the
client. So if your server runs an external program like
Imagemagick to process images, then that program must too be
Imagemagick to process images, then that program must also be
free so that we can run it. Fortunately, Imagemagick is.}
\end{itemize}
\end{frame}
@ -1677,23 +1667,20 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
\begin{frame}{The Affero GPL Doesn't Solve All Problems}
\begin{itemize}
\item<1-> Requires that, if users can access a \emph{modified} version
of the program over a network, that they must have access to
the corresponding source code
\item<1-> If users can access a \emph{modified} version of the program
over a network, that they must have access to the source code
\item<1-> But this only helps a little bit---even if you have the source
code, you can't modify it on the server that's using it
\item<1-> But even if you have the source code, you can't modify it on
the server that's using it
\lecture{Some point the AGPL as a solution---but it's not. Even if
you have the changes that they made to the server software,
you still can't change the code running on their servers---you
need to host it yourself, and to do so, you need a full
stack. And it's not unethical to write software for your
personal use that you don't distribute, so that full stack
might not be available.}
\lecture{Some point to the AGPL as a solution---but it's not. Even if
you have the changes that they made to the server software,
you still can't change the code running on their
servers---you need to host it yourself, and to do so, you
need a full stack.}
\item<2-> The AGPL can be circumvented using a pipeline (where
practical)
\item<2-> AGPL'd programs can be used in a pipeline with proprietary
programs
\item<2-> Doesn't cover works that the AGPL'd program might invoke
externally
@ -1706,31 +1693,33 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
\begin{frame}{Truly Unwebbed}
\begin{enumerate}
\item Download unwebbed package
\item Invoke unwebbed program {\tt ./foo}
\item Package creates an isolated environment (possibly with no network
access)
\item Package mounts persistent storage
\item Package starts all necessary services
\item Package invokes client (e.g. web browser, possibly in ``app''
mode)
\item Program terminates
\item All services are stopped
\item Environment is destroyed (but not persistent storage)
\item<1-> Download unwebbed package
\item<2-> Invoke unwebbed program {\tt ./foo}
\item<3-> Package creates an isolated environment (possibly with no
network access)
\item<3-> Package mounts persistent storage
\item<3-> Package starts all necessary services
\item<3-> Package invokes client (e.g. web browser, possibly in ``app''
mode / SSB)
\lecture{A client would then be invoked. This will probably be a web
browser, but it might be in some sort of ``app'' mode, or
might be what's called a single-site-browser, to make it feel
more like a desktop program.}
\item<4-> Program terminates
\item<4-> All services are stopped
\item<4-> Environment is destroyed (but not persistent storage)
\end{enumerate}
\lecture{If this concept sounds familiar, that's because it is---I'm
essentially describing what's called a ``container'', which is a
common virtualization technique. In fact, this is one that would
go well with Qubes OS, since it handles persistent storage and
X11 programs in precisely this scenario. But even if we didn't
common virtualization technique. In fact, this is a task that
would be handled quite well by GNU Guix. But even if we didn't
go the route of virtualization---even if the unwebbed package
just ran services in the same environment like a normal
program---we would still benefit greatly.}
program---the observed program would still be largely the same,
if not identical.}
\end{frame}
%% section on the client?
\begin{frame}
\begin{center}
\only<1>{Web software works just as desktop software}
@ -1741,7 +1730,7 @@ k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k)
end goal? Just run foo.}
\end{frame}
%%%=== END TIMEBLOCK Nm ==============================================
%%%=== END TIMEBLOCK 6m ==============================================
\begin{frame}