#LyX 2.0 created this file. For more info see http://www.lyx.org/
\lyxformat 413
\begin_document
\begin_header
\textclass beamer
\begin_preamble
%\usetheme{Warsaw}
% or ...
\usetheme{lankton-keynote}

\setbeamercovered{transparent}
% or whatever (possibly just delete it)
\end_preamble
\use_default_options false
\maintain_unincluded_children false
\language american
\language_package default
\inputencoding auto
\fontencoding global
\font_roman times
\font_sans default
\font_typewriter default
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100

\graphics default
\default_output_format pdf5
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize default
\use_geometry true
\use_amsmath 2
\use_esint 0
\use_mhchem 1
\use_mathdots 1
\cite_engine basic
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\use_refstyle 0
\index Stichwortverzeichnis
\shortcut idx
\color #008000
\end_index
\secnumdepth 2
\tocdepth 2
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Title
net
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
kern-.8ex
\backslash
lower1.5ex
\backslash
hbox{
\end_layout

\end_inset


\begin_inset Graphics
	filename net2o-logo.pdf
	lyxscale 10
	scale 10

\end_inset


\begin_inset ERT
status open

\begin_layout Plain Layout

}
\backslash
kern-.5ex
\end_layout

\end_inset

: Application Layer
\begin_inset Argument
status open

\begin_layout Plain Layout
net2o app layer
\end_layout

\end_inset


\end_layout

\begin_layout Subtitle
Factor the Content
\end_layout

\begin_layout Author
Bernd Paysan
\end_layout

\begin_layout Date
EuroForth 2011, Vienna
\end_layout

\begin_layout Standard
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
addtobeamertemplate{headline}{}{
\backslash
vbox{
\backslash
vspace{3ex}
\backslash
hbox to
\backslash
paperwidth{
\backslash
hfill
\end_layout

\end_inset


\begin_inset Graphics
	filename net2o-logo.pdf
	lyxscale 5
	scale 5

\end_inset


\begin_inset ERT
status open

\begin_layout Plain Layout

~~~}}}
\end_layout

\end_inset


\end_layout

\begin_layout BeginFrame
Outline
\end_layout

\begin_layout Standard
\begin_inset CommandInset toc
LatexCommand tableofcontents

\end_inset


\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout Section
Motivation
\end_layout

\begin_layout BeginFrame
net2o Recap: Lower--Level Parts
\end_layout

\begin_layout Itemize
Shared memory datagrams with short headers, packet size a power of two,
 see 
\begin_inset CommandInset citation
LatexCommand cite
key "In20"

\end_inset

.
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Abstraction: files and attributes (name 
\begin_inset Formula $\longrightarrow$
\end_inset

 value pairs)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Network model: peer to peer distributed file system with version control,
 
\begin_inset Quotes eld
\end_inset

single data cloud,
\begin_inset Quotes erd
\end_inset

 see also 
\begin_inset CommandInset citation
LatexCommand cite
key "swift"

\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Real--time ability allows data streaming
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Legacy implementation based on UDP
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
P2P principle: access data by cryptographic hash (Merkle trees for larger
 data)
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Status: Legacy Flow Control
\end_layout

\begin_layout Itemize
TCP flow control too aggressive, fills buffers until packet drops occur
 --- huge delays (in the order of 4s for a typical DSL account)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Somebody did my homework: LEDBAT flow control adds constant delay --- not
 so aggressive
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Can't use LEDBAT in naive form, needs adaption --- I like to have a bandwidth
 control, not a window or even packet size control
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
BitTorrent already implements LEDBAT, seems to be a good idea 
\begin_inset CommandInset citation
LatexCommand cite
key "btledbat"

\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Assumption is single bottleneck with few shared connections
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
What for?
\end_layout

\begin_layout Standard
People like to share information (
\emph on
share
\emph default
 means making 
\emph on
copies
\emph default
)
\end_layout

\begin_layout Pause

\end_layout

\begin_layout Itemize
Messages, photos, videos, music
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Longer, structured documents
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Two--way real--time (chat, telephony, video conferencing)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Collaborative gaming
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
How to find?
\end_layout

\begin_layout Standard
Information needs to be organized, or we are lost
\end_layout

\begin_layout Pause

\end_layout

\begin_layout Itemize
By person/group
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
By topic
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
By content
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
By relevance (
\begin_inset Quotes eld
\end_inset

page rank
\begin_inset Quotes erd
\end_inset

)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
By preference (
\begin_inset Quotes eld
\end_inset

like it
\begin_inset Quotes erd
\end_inset

--button, visited regularly.
 
\begin_inset Quotes eld
\end_inset

hate it
\begin_inset Quotes erd
\end_inset

--button to rate annoying pages down)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
By date or geographic location
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout Section
Requirements
\end_layout

\begin_layout BeginFrame
Web Pages as Application
\end_layout

\begin_layout FrameSubtitle
How to Present
\end_layout

\begin_layout Standard
Elements of a web page, classified by user experience
\end_layout

\begin_layout Pause

\end_layout

\begin_layout Enumerate
User interface --- navigation, modes, and actions
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Textual content
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Graphics and photos
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Videos
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Enumerate
Games\SpecialChar \ldots{}

\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Factoring 1.0
\end_layout

\begin_layout Itemize
HTML glues together all textual and user interface elements into one file
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Separated CSS for layout
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Separated JavaScript for application logic
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Separated graphics and videos
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Plugins for games and videos
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Browser as Application Environment
\end_layout

\begin_layout Standard
Remember: The browser is meant as application environment for net--centric
 applications!
\end_layout

\begin_layout Pause

\end_layout

\begin_layout Itemize
Requires a general purpose language to write the applications in
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Requires a good development and debugging environment
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Must be fast/low power budget (performance is key on mobile devices, PCs
 are fast enough)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
HTML5+CSS+JavaScript doesn't cut the mustard
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout Section
Solutions
\end_layout

\begin_layout BeginFrame
Factor the Text!
\end_layout

\begin_layout Itemize
Dynamic web pages use AJAX to partially replace elements of the page
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Why put everything into a single file first, and then start tearing it apart?
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Put each element (article, comment, message, navigation bar, images, videos,
 sound) into a file of its own, and 
\emph on
refer
\emph default
 to embedded objects, regardless of their type
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Use scripts to generate dynamic references (
\begin_inset Quotes eld
\end_inset

the last three comments to that article
\begin_inset Quotes erd
\end_inset

)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Provide low--level services, and let the application logic and libraries
 do the rest
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Downsides
\end_layout

\begin_layout Itemize
Client has to pull data together, more network traffic
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Data assembly may be pretty static
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Collated queries work in a client--server environment, but not in a P2P
 environment
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout Subsection
Some Basic Insights
\end_layout

\begin_layout BeginFrame
ACID on Data Clouds
\end_layout

\begin_layout Itemize
You want your data to be in shape, thus you need the ACID
\begin_inset Foot
status open

\begin_layout Plain Layout
Atomicity, Consistency, Isolation, and Durability.
\end_layout

\end_inset

 properties of the data repository
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
You can't do read--modify--write on data clouds.
 You can push new data, that's it.
 Forget about 
\begin_inset Quotes eld
\end_inset

delete,
\begin_inset Quotes erd
\end_inset

 there's no easy way to call your data back.
 You can't implement locks.
 All you get is durability: 
\begin_inset Quotes eld
\end_inset

the net will not forget.
\begin_inset Quotes erd
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
However, you can say 
\begin_inset Quotes eld
\end_inset

this is the next revision of document 
\begin_inset Formula $x$
\end_inset

.
\begin_inset Quotes erd
\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Two concurrent edits will produce a fork.
 It's up to the authors to decide how to merge forks back.
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
When you publish something, you can't guarantee that it's available in order.
 If the reader gets an incomplete transaction, he must either retry or fall
 back to the previous version.
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Hash--Indexed Content
\end_layout

\begin_layout Standard
Hashes as 
\begin_inset Quotes eld
\end_inset

handle
\begin_inset Quotes erd
\end_inset

 to actual content are the key to data management
\end_layout

\begin_layout Pause

\end_layout

\begin_layout Itemize
\begin_inset Formula $h(data)\longrightarrow hash$
\end_inset

 produces a unique hash for each data file
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
\begin_inset Formula $d(hash)\longrightarrow data$
\end_inset

 allows to retrieve the data when the hash is known
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize

\emph on
Hash trees
\emph default
 provide a mean to distribute large files
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize

\emph on
Relationships
\emph default
 between data revisions are stored as 
\emph on
graph,
\emph default
 using the hashes as symbol for the actual data
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Privacy
\end_layout

\begin_layout Itemize
You can control 
\emph on
with whom you share
\emph default
 (cryptography)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Recalling information requires cooperation 
\emph on
(
\begin_inset Quotes eld
\end_inset

the net will not forget
\begin_inset Quotes erd
\end_inset

)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
You 
\emph on
can't control
\emph default
 with whom your receivers 
\emph on
re--share
\emph default
 (impossibly of DRM)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
There is no real anonymity, but your 
\emph on
traces can be lost
\emph default
 in the clouds
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Secure Execution Environment
\end_layout

\begin_layout Itemize
Any sufficiently powerful language let you write malware
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
The libraries of any sufficiently powerful environment (even with a very
 restricted language) contain enough exploits to write malware
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Block
\begin_inset ERT
status open

\begin_layout Plain Layout

{Sandbox}
\end_layout

\end_inset


\end_layout

\begin_deeper
\begin_layout Itemize
Sandbox the process, restrict network access (read is ok, write needs user
 permit)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Using your keys (decyption, encryption, signing) must be outside the sandbox
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
\begin_inset Quotes eld
\end_inset

Same origin
\begin_inset Quotes erd
\end_inset

--policy doesn't work for a data cloud --- the destination is again 
\begin_inset Quotes eld
\end_inset

the cloud
\begin_inset Quotes erd
\end_inset


\end_layout

\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Signed scripts and social control can help to some extend
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
The boundary to malware is non--trivial to define.
 Is Farmville malware?
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Push vs.
 Polling
\end_layout

\begin_layout Itemize
Polling is stupid
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Push--style solutions require open connections or ports
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Stored procedures in the cloud --- or better call them 
\begin_inset Quotes eld
\end_inset

callbacks,
\begin_inset Quotes erd
\end_inset

 because they can only call the originator
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Source Code vs.
 tokenized Binaries
\end_layout

\begin_layout Itemize
We (Forth) can compile source code quickly
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Source code distribution allows to inspect software, and reduce the malware
 threat (reduce, not eliminate!)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Secretive companies like binaries, more difficult to reverse engineer
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Everybody can build his own VM compiler, if he likes to
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout Subsection
Factor Data
\end_layout

\begin_layout BeginFrame
Factor Data
\end_layout

\begin_layout FrameSubtitle
scalability of graphics --- bandwidth and detail reduction for small and
 slow devices
\end_layout

\begin_layout Description
Images Use progressive formats where scaled--down versions of the same image
 are transferred first (progressive JPEG, wavelet compression)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Video Encode streams with a lowres, low--FPS base video, and additional
 streams which add spatial and temporal resolution
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Description
Geometries Use level--of--detail algorithms to provide approximations of
 complex geometries (2D and 3D)
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout Subsection
Distribute the Code
\end_layout

\begin_layout BeginFrame
Factor the Code
\end_layout

\begin_layout Itemize
Provide a way to distribute common libraries
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Use the version control system to request the right dependencies, if you
 need those
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Allow precompiled basic functions to speed up rendering startup
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Basic Libraries
\end_layout

\begin_layout Itemize
Canvas and OpenGL for 2D and 3D rendering
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
HarfBuzz for text layout and shaping engine
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
A typesetting engine (codename 
\begin_inset Quotes eld
\end_inset

B
\begin_inset ERT
status open

\begin_layout Plain Layout


\backslash
lower.7ex
\backslash
hbox{U}
\end_layout

\end_inset

X
\begin_inset Quotes erd
\end_inset

)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
JPEG/PNG decoding
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Video engine
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
Audio engine
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize
GUI library (MINOS--like, but using the rendering infrastructure)
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout BeginFrame
Most Stupid Mistakes of the Net 1.0
\end_layout

\begin_layout Itemize
There really must be an easy to use (i.e.
 WYSIWYG) 
\emph on
in--browser editor
\emph default
 for the content!
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize

\emph on
Client--server
\emph default
 instead of peer to peer --- the original idea behind the Internet was peer
 to peer, but it was soon forgotten
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize

\emph on
Postel principle
\emph default
 --- do not be liberal in what you receive, do explicit consistency checks
 even if that is costly (Rose principle)
\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Itemize

\emph on
Unencrypted
\emph default
 by default (was too costly; but then, cryptographic protocols such as SSL
 are really ugly and full of mistakes)
\end_layout

\begin_layout EndFrame

\end_layout

\begin_layout Section*
\start_of_appendix
Appendix
\end_layout

\begin_layout Subsection*
For Further Reading
\end_layout

\begin_layout BeginFrame
For Further Reading
\end_layout

\begin_layout Bibliography
\labelwidthstring Literaturverzeichnis
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "In20"

\end_inset


\noun on
Bernd Paysan
\noun default
 
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
newblock
\end_layout

\end_inset


\emph on
Internet 2.0 
\emph default

\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
newblock
\end_layout

\end_inset

 
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://net2o.de/
\end_layout

\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Bibliography
\labelwidthstring Literaturverzeichnis
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "swift"

\end_inset


\noun on
Pouwelse, Grishchenko, Bakker
\noun default

\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
newblock
\end_layout

\end_inset


\emph on
swift,
\emph default
 
\emph on
the multiparty transport protocol
\emph default
 
\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
newblock
\end_layout

\end_inset

 
\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://libswift.org/
\end_layout

\end_inset


\end_layout

\begin_deeper
\begin_layout Pause

\end_layout

\end_deeper
\begin_layout Bibliography
\labelwidthstring Literaturverzeichnis
\begin_inset CommandInset bibitem
LatexCommand bibitem
key "btledbat"

\end_inset


\noun on
Rossi, Testa, Valenti
\noun default

\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
newblock
\end_layout

\end_inset


\emph on
Yes, we LEDBAT
\emph default

\begin_inset ERT
status collapsed

\begin_layout Plain Layout


\backslash
newblock
\end_layout

\end_inset


\begin_inset Flex URL
status collapsed

\begin_layout Plain Layout

http://www.pam2010.ethz.ch/papers/full-length/4.pdf
\end_layout

\end_inset


\end_layout

\begin_layout EndFrame

\end_layout

\end_body
\end_document
