timeblock (intro): refinement
This is still a bit too long; eating up 8m on an intro doesn't leave much time for everything else!master
parent
00ba8b29e9
commit
83966c982c
137
talk.tex
137
talk.tex
|
@ -37,22 +37,21 @@
|
|||
%% TODO mention DRM in HTML5
|
||||
|
||||
|
||||
%%%=== BEGIN TIMEBLOCK Nm ==============================================
|
||||
%%%=== BEGIN TIMEBLOCK 8m ==============================================
|
||||
|
||||
\begin{frame}
|
||||
\titlepage
|
||||
|
||||
\lecture{I'm going to warn everyone upfront---this is a~talk about
|
||||
problems. Many of them are fundamental problems that don't quite
|
||||
have a~solution yet. Others are problems that you can address
|
||||
immediately, both as a user and as a web developer. I hope to
|
||||
provide perspective that sufficiently shocks and motivates; to
|
||||
make a difference, both big and small.}
|
||||
\lecture{I'm going depress everyone upfront---this is a~talk about
|
||||
problems. Problems that are fundamental to the Web today, and
|
||||
don't have a trivial solution. So who am I to tell you what is
|
||||
and is not a problem with one of the great pillars of modern
|
||||
life?}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}{Who am I?}
|
||||
\lecture{So my name's Mike Gerwitz,}
|
||||
\lecture{Well, I'm Mike Gerwitz.}
|
||||
|
||||
\begin{itemize}
|
||||
\item Long-time free software hacker and activist
|
||||
|
@ -70,25 +69,23 @@
|
|||
|
||||
\lecture{I've been involved in web development to at least some capacity}
|
||||
\item 10+ years of web development
|
||||
\lecture{for well over ten years. But possibly \emph{just} as
|
||||
importantly, I've been a \emph{user} of the web for even
|
||||
longer. Now, I'm 26---I'm not part of the generation that
|
||||
was swiping at newspapers when they were babies, wondering
|
||||
why nothing was happening, but I did grow up with the
|
||||
Internet.}
|
||||
\lecture{for well over ten years. But possibly just as importantly,
|
||||
I've been a \emph{user} of the web for even longer. Now, I'm
|
||||
26---I'm not part of the generation that was swiping at
|
||||
newspapers when they were babies, wondering why nothing was
|
||||
happening, but I did grow up with the Internet.}
|
||||
|
||||
\begin{itemize}
|
||||
\item<2-> The Web has \only<2>{changed}\only<3->{{\bf worsened}} a lot
|
||||
in 10 years
|
||||
\lecture{And as I'm sure all of you here can attest to---and I'm
|
||||
really stating the obvious here---the Internet has changed a
|
||||
\emph{lot} in the past ten years. In fact, it's had a
|
||||
version change---the so-called ``Web 2.0''! Which, to
|
||||
\emph{lot} in the past ten, fifteen years. In fact, it's had
|
||||
a version change---the so-called ``Web 2.0''! Which, to
|
||||
clarify, is just jargon; there's not actually a version
|
||||
change.}
|
||||
|
||||
\lecture{But I suppose I could phrase this in another way: the
|
||||
Internet has also \emph{worsened} a lot in the past ten
|
||||
Web has also \emph{worsened} a lot in the past ten
|
||||
years. A version bump isn't always an upgrade.}
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
@ -122,20 +119,12 @@
|
|||
|
||||
\item<4-> Freedom trumps all.
|
||||
\lecture{\emph{Freedom trumps all.} So we can say that, while Web~2.0
|
||||
was a \emph{technical} upgrade, it has been a steadily
|
||||
progressing \emph{downgrade} for users' freedoms.}
|
||||
was a \emph{technical} upgrade, it has been an alarmingly
|
||||
progressive \emph{downgrade} for users' freedoms.}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\defverbatim{\gnuhost}{%
|
||||
\small
|
||||
\begin{verbatim}
|
||||
$ host gnu.org
|
||||
gnu.org has address 208.118.235.148
|
||||
\end{verbatim}
|
||||
}
|
||||
|
||||
\defverbatim{\gnurequest}{%
|
||||
\small
|
||||
\begin{verbatim}
|
||||
|
@ -176,62 +165,50 @@
|
|||
\item<1-> Usually involves a web browser
|
||||
\lecture{Normally when we talk about the ``Web'', as opposed to the
|
||||
``Internet'' as a whole, we're referring to something that you
|
||||
would access using a web browser. That web browser might be
|
||||
a graphical browser like GNU IceCat, or it might be a
|
||||
text-mode browser like w3m. But you don't \emph{have} to use
|
||||
a web browser---you might even use \tt{wget} or \tt{curl}
|
||||
directly and look at the plain text of the document, or parse
|
||||
it with a script.}
|
||||
would access using a web browser. That web browser might be a
|
||||
graphical browser like GNU IceCat, it might be a text-mode
|
||||
browser like w3m, or maybe even \tt{wget} or \tt{curl} to
|
||||
directly and look at the plain text of the document, or parse
|
||||
it with a script.}
|
||||
|
||||
\begin{enumerate}
|
||||
\item <2-> User enters a URL or clicks on a link
|
||||
\only<2>{\par(e.g. \url{https://gnu.org/})}
|
||||
\only<2>{\par(e.g. \url{https://gnu.org/philosophy/free-sw.html})}
|
||||
|
||||
\lecture{The user first indicates the resource that they want to
|
||||
``browse'' to using a URL, which stands for ``Uniform
|
||||
Resource Locator''; it contains both a protocol and a
|
||||
hostname. Let's take ``gnu.org'' as an example.}
|
||||
resource identifier. Let's take ``gnu.org'' as an
|
||||
example.}
|
||||
|
||||
\item<3-> Browser resolves domain to a host IP address (DNS lookup)
|
||||
\only<3>{\gnuhost}
|
||||
|
||||
\lecture{The browser then resolves the domain name---\tt{gnu.org} in
|
||||
this case---to the IP address of the server hosting the
|
||||
resource. This is called a DNS---or ``Domain Name
|
||||
Server''---lookup. The result may be one IP, or it may be
|
||||
multiple. The easiest way to resolve a hostname on a
|
||||
GNU/Linux system without worrying about what a DNS record
|
||||
is, is to use the \tt{host} command. In the case of
|
||||
\tt{gnu.org}, it resolves to a single IP address.}
|
||||
|
||||
\item<4-> For HTTP(S), brower sends HTTP request to host on port
|
||||
\item<3-> For HTTP(S), brower sends HTTP request to host on port
|
||||
80/443
|
||||
\only<4>{\gnurequest}
|
||||
\lecture{I mentioned a protocol. The beginning of the URL is
|
||||
usually HTTP or HTTPS; we don't care about others for this
|
||||
talk. The former transfers data in plaintext whereas the
|
||||
later is encrypted using SSL. The browser sends an HTTP
|
||||
request to the host requesting the resource.}
|
||||
\only<3>{\gnurequest}
|
||||
\lecture{The beginning of the URL is usually HTTP or HTTPS; we don't
|
||||
care about others for this talk. The former transfers data
|
||||
in plaintext whereas the later is encrypted using SSL. The
|
||||
browser sends an HTTP request to the host requesting the
|
||||
resource.}
|
||||
|
||||
\item<5-> Server responds with resource
|
||||
\only<5>{\gnuresp}
|
||||
\item<4-> Server responds with resource
|
||||
\only<4>{\gnuresp}
|
||||
\lecture{The server responds. That response might be affirmative,
|
||||
it might be an error, it might be garbage; let's assume
|
||||
that it was a successful response.}
|
||||
|
||||
\item<6-> Browser recursively loads all resources referenced by
|
||||
\item<5-> Browser recursively loads all resources referenced by
|
||||
webpage
|
||||
\begin{itemize}
|
||||
\item<6-> Stylesheets, Images, Scripts, etc.
|
||||
\item<5-> Stylesheets, Images, Scripts, etc.
|
||||
\end{itemize}
|
||||
\only<6>{\includegraphics[width=\textwidth]{images/gnu-resources.png}}
|
||||
\only<5>{\includegraphics[width=\textwidth]{images/gnu-resources.png}}
|
||||
\lecture{This is the meat of the talk. The browser then recursively
|
||||
processes all resources referenced by \emph{that}
|
||||
resource. Most often, these include images, stylesheets,
|
||||
and scripts.}
|
||||
\end{enumerate}
|
||||
|
||||
\item<7-> Distributed network (``web'') of computers
|
||||
\item<6-> Distributed network (``web'') of computers
|
||||
\lecture{So fundamentally, the web is a distributed network of
|
||||
computers that serve resources. Resources can be anything
|
||||
from your conventional web page, to a program that runs in
|
||||
|
@ -244,16 +221,15 @@
|
|||
\begin{frame}{Interoperability}
|
||||
\begin{itemize}
|
||||
\item<1-> Fundamental building blocks are standardized (W3C)
|
||||
\lecture{So the Web is composed of many different
|
||||
things. Technically, you can include anything on the
|
||||
\lecture{Technically, you can include anything on the
|
||||
Web---certain formats will just invoke external programs or
|
||||
trigger a download. But as far as web pages go, they
|
||||
traditionally consist of HTML}
|
||||
\begin{itemize}
|
||||
\item<+-> HTML---Describes the document
|
||||
\item<2-> HTML---Describes the document
|
||||
\lecture{which describes the~document, and CSS}
|
||||
|
||||
\item<+-> CSS---Describes the document style (appearance)
|
||||
\item<3-> CSS---Describes the document style (appearance)
|
||||
\lecture{which describes the~document \emph{style}---how it looks,
|
||||
what font to render in, the background color, et cetera.}
|
||||
|
||||
|
@ -262,29 +238,30 @@
|
|||
video. Users can submit information by entering data in
|
||||
form fields. Most of that falls under the HTML spec.}
|
||||
|
||||
\item<+-> HTTP---Communication protocol
|
||||
\item<4-> HTTP---Communication protocol
|
||||
\lecture{All of this communication is done using the HTTP
|
||||
protocol, which defines how the server and client
|
||||
communicate.}
|
||||
\lecture{Back in the day, most every reaction to user input
|
||||
involved loading a new webpage. You're seeing less and
|
||||
less of that today---many web pages look and behave more
|
||||
like \emph{software} than documents.}
|
||||
like \emph{software} than documents. You might hear the
|
||||
term ``single-page'' programs.}
|
||||
|
||||
\item<+-> JavaScript---Embed programs in web browser
|
||||
\item<5-> JavaScript---Embed programs in web browser
|
||||
\lecture{The standard way to do this today is with a language
|
||||
called JavaScript.}
|
||||
\end{itemize}
|
||||
|
||||
\item<5-> Variety of programs and standard tools can communicate with
|
||||
\item<6-> Variety of programs and standard tools can communicate with
|
||||
webservers and read documents
|
||||
\lecture{Given these standards for representing documents, styles,
|
||||
media, etc---you're free to use whatever software you choose!
|
||||
Everything is interoperable, on both the server and the
|
||||
client. And this is incredibly important for user freedom,
|
||||
and for free software.}
|
||||
and essential for free software.}
|
||||
|
||||
\item<6-> Threatened in the past: Java applets, ActiveX, Flash,
|
||||
\item<7-> Threatened in the past: Java applets, ActiveX, Flash,
|
||||
Silverlight, and other proprietary/non-standard software
|
||||
\lecture{That interoperability has been threatened in the past by
|
||||
other proprietary systems for embedding software in the
|
||||
|
@ -294,9 +271,9 @@
|
|||
Media Extensions proposal being considered by the W3C which
|
||||
would effectively introduce DRM as a \emph{standard} for the
|
||||
Web. We must oppose it, and I encourage you to join us
|
||||
in protest just across the street tonight at 8:00.}
|
||||
in protest just outside the conference tonight at 6:45.}
|
||||
|
||||
\item<7-> Now the greatest threat is JavaScript
|
||||
\item<8-> Now the greatest threat is JavaScript
|
||||
\lecture{But an \emph{existing} standard is now our greatest
|
||||
threat. JavaScript.}
|
||||
\end{itemize}
|
||||
|
@ -309,15 +286,9 @@
|
|||
\begin{itemize}
|
||||
\item<2-> ECMAScript (Standard: ECMA-262; ISO/IEC 16262)
|
||||
\lecture{Formally, it's ECMAScript, which is the standard defining the
|
||||
language. Browsers tend to incorporate their own
|
||||
features---some of which are subsequently incorporated into
|
||||
the spec---so when we refer to ECMAScript, we're talking
|
||||
about a core standard that all browsers implementing that
|
||||
particular version should support. There are other
|
||||
implementations of ECMAScript, like JScript and ActionScript,
|
||||
but they're used almost exclusively in proprietary
|
||||
environments, and you should not use them unless you have a
|
||||
way of running that code on a fully Free operating system.}
|
||||
language. But browsers tend to incorporate their own
|
||||
features beyond the standard, which might subsequently be
|
||||
adopted.}
|
||||
|
||||
\item<3-> Traditionally: Browser-based, client-side scripting language
|
||||
\lecture{JavaScript started out in the web browser, specifically
|
||||
|
@ -361,7 +332,7 @@
|
|||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
%%%=== END TIMEBLOCK Nm ==============================================
|
||||
%%%=== END TIMEBLOCK 8m ==============================================
|
||||
|
||||
|
||||
%%%=== BEGIN TIMEBLOCK Nm ==============================================
|
||||
|
|
Loading…
Reference in New Issue