\documentclass[6pt,blackandwhite]{beamer}

\usepackage[pdftex]{epsfig}
\usepackage{pslatex}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{multirow}
\usepackage{microtype}
\usepackage{scalefnt}
\usepackage{setspace}

\newcommand{\freepath}{free}
\newcommand{\nonfreepath}{non-free}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% http://mikedewar.wordpress.com/2009/02/25/latex-beamer-python-beauty/ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \usetheme{default}
% \beamertemplatenavigationsymbolsempty

\definecolor{fore}{RGB}{0,0,0}
\definecolor{back}{RGB}{255,255,255}
% \definecolor{title}{RGB}{255,0,90}
\definecolor{title}{RGB}{0,0,0}

\setbeamercolor{titlelike}{fg=title}
\setbeamercolor{normal text}{fg=fore,bg=back}

\usepackage{listings}
\definecolor{keywords}{RGB}{255,0,90}
\definecolor{comments}{RGB}{60,179,113}
% \lstdefinelanguage{Bash}{
%         morekeywords={head,tail}
% }
\lstset{basicstyle=\scalefont{.8}\ttfamily,
 	breaklines=false,
 	xleftmargin=.2\universalgrid,
 	emptylines=1,
 	keywordstyle=\color{keywords}\textbf,
	commentstyle=\color{comments}\emph,
 	}
\renewcommand{\ttdefault}{onc}
\pdfmapfile{+onc.map}

\setbeamertemplate{itemize item}{.}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newlength{\universalgrid}
\setlength{\universalgrid}{.25\paperwidth}
\setlength{\unitlength}{\universalgrid}
% \setlength{\topmargin}{-1\universalgrid}
\setlength\parindent{0pt}
\renewcommand{\normalsize}{\scalefont{.7}}
\newcommand{\graphic}[6]{
\includegraphics[viewport=#2 #3 #4 #5,clip,#6]{#1}
}
 
% http://www.peterkuhn.net/?p=14
% \let\ueberschrift=\frametitle\renewcommand\frametitle[1]{
% \ueberschrift{%
% \vspace{-.25\universalgrid}
% \begin{center}%
% {\fontfamily{ptm}\selectfont{{\scalefont{.8}#1}}}%
% \end{center}%
% \vspace{-.1\universalgrid}
% }}
\let\ueberschrift=\frametitle\renewcommand\frametitle[1]{
\ueberschrift{%
\vspace{-.25\universalgrid}
\begin{flushright}%
{\fontfamily{ptm}\selectfont{{\scalefont{.9}#1}}}%
\end{flushright}%
\vspace{-.1\universalgrid}
}}
\newcommand{\gridpage}[5]{
	\frame
        {\frametitle{#1}
	\begin{picture}(0,0)
	\put(.1,-1){#4}
	\put(1.65,-1){#5}
	\put(.1,0){#2}
	\put(1.65,0){#3}
	\end{picture}
	}
}
\newcommand{\urlpage}[1]{
	\frame
	{\vfill
        \begin{center}
        {\scalefont{1.5}\url{#1}}
        \end{center}
	\vfill}
}
\newcommand{\question}[1]{
	\frame
	{\vfill
        \begin{center}
        {\scalefont{2}\textit{#1}}
        \end{center}
	\vfill}
}
\newcommand{\answer}[1]{
	\frame
	{\vfill
        \begin{center}
        {\scalefont{2}\textsf{#1}}
        \end{center}
	\vfill}
}
\newcommand{\setbash}
{
\lstset{language=Bash,
        morekeywords={
        rl,head,tail,ls,grep,
        cut,tr,rev,createGRAFIK,
        hole,match,massage,ooflepif % GOLDBERG COMMANDS
        ,wc,md5sum,elif
        }
}}
\newcommand{\setlatex}
{
\lstset{language=TeX,
        morekeywords={
	drawcanvas,smallinfo,begin,
	biginfo,footer,put,graphic,
	newcommand,strongline,vspace,
	mediumline,hspace,grid,canvasgraphic,
	setlength,fbox,includegraphics
        }
}}
\newcommand{\setprocessing}
{
\lstset{language=Java,
        morekeywords={
	draw
        }
}}
\newcommand{\mainandsub}[2]{
          \vspace{.05\universalgrid}
%           \rotatebox{0}{
          #1 
%           }
          ~~~~~~~~~~\\
          %\textsf{\textbf{#1}}\\
          \vspace{-.07\universalgrid}
          {\scalefont{.6}
           \hspace{-.1\universalgrid}\texttt{
%            \rotatebox{0}{
           #2
%            }
           ~~~~
           }}
        }

\title{bottom up}
\author{Christoph Haag}
% \date{\today}



\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \frame{\titlepage}
\frame{
\vfill
{
{\scalefont{.5}
\fontfamily{ptm}\selectfont
\begin{center}%
\begin{large}%
Bottom \textsf{\textbf{Up}}%
\end{large}%
\smallskip

Christoph HAAG \\%
LAFKON \\%
Kitzenmarkt 8, \\% 
86150 Augsburg, \\%
DEUTSCHLAND \\%
\textcolor{magenta}{christoph@lafkon.net} \\%
\medskip
\today
\end{center}
}}
\vfill
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% classical trained graphic designer
% with a certain addiction to experiments
% - video
% - print making

\gridpage{}
{}{}
{	\graphic
	{i/a/utils/talks+papers/liwoli-2009/i/\freepath/p/komplett.png}
	{-80}{-40}{800}{601} % FORMAT 800 x 573
	{height=2\universalgrid}
}
{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
             \textsf{\textbf{Analog}} Hacks}{
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/liwoli-2009/i/\freepath/p/nase.png}
	{-80}{-80}{800}{561} % FORMAT 800 x 573
	{height=2\universalgrid}
}
{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
             \textsf{\textbf{Analog}} Hacks}{
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/video_on_desktop.png}
	{-80}{-80}{800}{561} % FORMAT 800 x 561
	{height=2\universalgrid}
}
{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
             \textsf{\textbf{Analog}} Hacks}{
}}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/0000--VJ/001.pdf}
	{-120}{0}{720}{576} % FORMAT 800 x 573
	{height=\universalgrid}
}{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/0000--VJ/002.pdf}
	{0}{0}{720}{576} % FORMAT 800 x 573
	{height=\universalgrid}
}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/0000--VJ/003.pdf}
	{-120}{0}{720}{576} % FORMAT 800 x 573
	{height=\universalgrid}
}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/0000--VJ/004.pdf}
	{0}{0}{720}{576} % FORMAT 800 x 573
	{height=\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
             \textsf{\textbf{Analog}} Hacks}{
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/worksituation_01.png}
	{0}{0}{800}{1090} % FORMAT 800 x 1090
	{width=2\universalgrid}
}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/worksituation_02.png}
	{0}{0}{800}{1090} % FORMAT 800 x 1090
	{width=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
             \textsf{\textbf{Analog}} Hacks}{
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/DSC_0001.png}
	{50}{0}{950}{650} % FORMAT 1000 x 665
	{height=2\universalgrid}
}
{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% came in touch with FLOSS through open content
% - opencontent.org
% - creativecommons.org
% - vektordb
% content not technique
% experiments in technique: processing.org

\urlpage{http://www.opencontent.org}
\urlpage{http://www.creativecommons.org}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
             The \textsf{\textbf{vektor}}DB}{
             sharing vektor graphics
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/liwoli-2009/i/\freepath/p/use_vdb/use_vdb_01.pdf}
	{-105}{0}{400}{400} % FORMAT 400 x 400
	{height=2\universalgrid}
}
{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
             The \textsf{\textbf{vektor}}DB}{
             sharing vektor graphics
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/liwoli-2009/i/\freepath/p/use_vdb/use_vdb_02.pdf}
	{-105}{0}{400}{400} % FORMAT 400 x 400
	{height=2\universalgrid}
}
{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\urlpage{http://vektordb.lafkon.net}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          \textsf{\textbf{Processing}}}{
          open source and tailored tools
}}
{	\graphic{i/a/generators/wtf/i/v/logos/non-free/processing.pdf}
	{0}{50}{300}{315}
        {height=\universalgrid}
}
{}{}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/screenshots/processing-ide.png}
	{0}{0}{550}{630} % FORMAT 515 x 630
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% OSFA
% - opensource for audio/arts
% - the foundations of unix

\gridpage{\mainandsub{
          Hello \textsf{\textbf{GNU/Linux}}}{
          open source for audio/arts (osfa)
}}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\nonfreepath/v/khmvv/VVSS05.pdf}
	{25}{400}{175}{560} % FORMAT 283 x 595
	{height=\universalgrid,page=81}
}{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\nonfreepath/v/khmvv/VVSS05.pdf}
	{0}{300}{200}{500} % FORMAT 283 x 595
	{height=\universalgrid,page=81}
}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\nonfreepath/v/khmvv/VVSS05.pdf}
	{40}{40}{243}{243} % FORMAT 283 x 595
	{height=\universalgrid,page=81}
}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\nonfreepath/v/khmvv/VVSS05.pdf}
	{140}{140}{343}{343} % FORMAT 283 x 595
	{height=\universalgrid,page=81}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% OSK
% - Linxu Audio Conference 2007
% - Make Art 2007
% - at Make Art 2007 we teamed up for LAC 2008

\gridpage{\mainandsub{
          Der \textsf{\textbf{offene}} Schaltkreis}{
          Christoph Haag, Martin Rumori, Franziska Windisch, Ludwig Zeller
}}
{}{}
{	\graphic
	{i/a/release/osk/i/v/cupcuts.pdf}
	{-100}{0}{297}{567}
	{height=2\universalgrid}
}
{	\graphic
	{i/a/release/osk/i/v/cupcuts.pdf}
	{297}{0}{595}{567}
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          \textsf{\textbf{Der offene Schaltkreis}}, Poitiers}{
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/osk_7_hi.jpg}
	{0}{0}{640}{428}
	{height=2\universalgrid}
}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          \textsf{\textbf{Talking Cities Radio}}, Essen}{
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/KHM--Hybrid-Space--overview1.jpg}
	{0}{0}{1200}{800}
	{height=2\universalgrid}
}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\urlpage{http://lac.linuxaudio.org/2008}

% CASE STUDY 1 %
% ------------ %

% Linux Audio Conference 2008
% Inspiration: Ableton
%
% VISUAL IDEA: The LAC Machine
% Highly interconnected, absurd machine 
% Generative design but not so random
%
% Modular approach:
% illustrations, programs, lists  

% sketches
% programs, lists
% how does it work
% illustrations
% output
% LOGO: visual hack: coat of arms

% BACKGROUND: "Design for appropriation"
% got into the unix philosophy through the analysis
% of principles that allowed appropriation

% EXPLAIN
% Filenames as interface
% communication through text files
% modules (illustrations)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% ABLETON IS SPONSOR FOR LINUX AUDIO CONFERENCE 2007

\gridpage{\mainandsub{}{
          inspiration
          \vspace{-.2\universalgrid}
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/makeart-2009/i/\freepath/p/screenshots/2009-12-02--1259752472_1024x768_scrot.png}
	{0}{0}{1000}{576}
	{height=2\universalgrid}
}
{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% kind of absurd to have a proprietary software vendor %
% as sponsor for the linux audio conference            %
% if this illustration stands for ableton then what    %
% visualises linux audio ??                            %  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/generators/lacmachine/doc/i/\nonfreepath/v/ableton_live_7_le_manual_en_0001.pdf}
% 	{0}{0}{587}{493}
% 	{height=2\universalgrid}
% }
% {}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% If this is the proprietary music machine,
\gridpage{\mainandsub{
          The \textsf{\textbf{proprietary}} Music Machine}{
}}
{}{}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\nonfreepath/p/ableton_live6_logo.jpg}
	{0}{0}{500}{353}
	{width=3\universalgrid}
}
{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% what does the linux music machine look like?

\gridpage{\mainandsub{
          The \textsf{\textbf{Linux}} Music Machine}{
          technical, structured, connective
}}
{}{}
{	\graphic
	{i/a/release/osk/i/v/patches4_liki.pdf}
	{260}{80}{550}{380}
	{height=2\universalgrid}
}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/nqpoly4.pdf}
	{0}{30}{432}{480}
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% % ABSURD

% % \gridpage{Goldberg \textsf{\textbf{Machines}}}
% \gridpage{The \textsf{\textbf{Goldberg}} Machine:
%          {\scalefont{.5} \\
%           \texttt{connective, imagineable, absurd}}}
% {}{}
% {	\graphic
% 	{i/a/generators/lacmachine/doc/i/\nonfreepath/p/goldberg_03.png}
% 	%{0}{30}{800}{360}
%         {0}{-100}{800}{400}
% 	{height=2\universalgrid}
% }{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\gridpage{\mainandsub{
          The \textsf{\textbf{Goldberg}} Machine}{
          connective, inventive, absurd
}}
{}{}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\nonfreepath/p/goldberg_01.png}
	%{0}{30}{800}{360}
	{0}{-100}{800}{400}
	{height=2\universalgrid}
}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          The \textsf{\textbf{LAC}} Machine}{
          plug anything into anything
}}
{}{}
{	\fbox{\graphic
	{i/a/generators/lacmachine/o/\nonfreepath/A3/plakatlac2008_A3_05.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\graphic
	{i/a/generators/lacmachine/o/\nonfreepath/A3/plakatlac2008_A3_05.pdf}
	{40}{240}{400}{700} % AUSSCHNITT
	{height=2\universalgrid}

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/p/system_01_02.png}
	{37}{31}{770}{530}
	{height=2\universalgrid}
}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame{
\begin{itemize}

   \item<1-> We want a randomly generated poster
   \item<2-> consisting of modular illustrations.
   \medskip
   \item<3-> \textbf{What do we need:}
   \item<4-> Modular illustrations
   \item<5-> Something like a logic

\end{itemize}

\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          The \textsf{\textbf{LAC}} Modules}{
          sketches
}}
{}{}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/p/tilesketches_01.png}
	{26}{10}{779}{1075}
	{height=2\universalgrid}
}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/p/tilesketches_02.png}
	{64}{110}{752}{995}
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          The \textsf{\textbf{LAC}} Modules}{
          prepared vector illustrations
}}
{
        \put(0,0){
	\graphic
	{i/a/stock/2007/pipemusic/CLOUD_0_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/G_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/NOTENHEFT_1_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/GUITAR_0_0_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.25){
	\graphic
	{i/a/stock/2007/pipemusic/BANG_1_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/PUREDAT_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNEC_1_1_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/NOTENHEFT_1_0_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.5){
	\graphic
	{i/a/stock/2007/pipemusic/TROETE_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/FLOWCONN_0_0_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/FIST_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNEC_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.75){
	\graphic
	{i/a/stock/2007/pipemusic/DANCE_1_1_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/HOLLYWOOD_0_0_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/PELIKAN_1_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/SCHLUSSE_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
}
{
        \put(0,0){
	\graphic
	{i/a/stock/2007/pipemusic/FIST_0_1_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNECT_0_0_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/HOLLYWO_0_0_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/PELIKAN_1_1_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.25){
	\graphic
	{i/a/stock/2007/pipemusic/CLARINE_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/FLOWCON_0_1_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/HOLLYW_0_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/KOLN_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.5){
	\graphic
	{i/a/stock/2007/pipemusic/WHOLLYDO_0_0_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNE_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/SCHLUSSEL_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/TRUMPET_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.75){
	\graphic
	{i/a/stock/2007/pipemusic/MAGICB_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/TROMBLU_0_1_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/FLOWCONNEC_1_1_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CON_1_1_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
}
{
        \put(0,0){
	\graphic
	{i/a/stock/2007/pipemusic/POSAUNE_1_1_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/AMPLITUDE_0_1_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/JOYSTICK_0_1_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/TROET_X_1_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.25){
	\graphic
	{i/a/stock/2007/pipemusic/CONNECT_0_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/HAN_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNECT_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/TRUMPE_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.5){
	\graphic
	{i/a/stock/2007/pipemusic/2SKREIS_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/PUREDATA_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/DANCER_1_0_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/HOLLYWOO_1_1_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.75){
	\graphic
	{i/a/stock/2007/pipemusic/ADAPT_1_1_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/HOLLYWOOD_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/HARP_1_1_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/POSAUNE_0_1_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
}
{
        \put(0,0){
	\graphic
	{i/a/stock/2007/pipemusic/HAND_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNEC_0_0_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/FLOWCONN_0_1_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/PELIKAN_1_1_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.25){
	\graphic
	{i/a/stock/2007/pipemusic/NOTENHEF_1_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/FLOWCONNECT_0_0_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/TROET_0_1_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/FLOWCONN_1_1_1_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.5){
	\graphic
	{i/a/stock/2007/pipemusic/FLOWCONNEC_0_1_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNECT_0_0_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNECT_1_0_0_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/TROETE_1_0_0_0.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
        \put(0,.75){
	\graphic
	{i/a/stock/2007/pipemusic/VIOLI_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/MEDICAL_1_0_1_0_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/TROETE_0_0_0_1.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
	\graphic
	{i/a/stock/2007/pipemusic/CONNEC_0_1_0_1_.pdf}
	{0}{20}{100}{100}
	{width=.4\universalgrid}
        }
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\urlpage{http://vektordb.lafkon.net/2007/pipemusic}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame{
\begin{itemize}
   \item<1-> We have a pool of modular illustrations
   \item<2-> that need to be selected and arranged
   \item<3-> according to something like a logic.
   \medskip
   \item<4-> \textbf{What do we need?}
   \item<5-> Information about possible connectors
   \item<6-> Metadata
\end{itemize}

\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/generators/lacmachine/doc/i/\freepath/p/logosketches_01_01.png}
% 	{0}{540}{685}{1105}
% 	{height=2\universalgrid}
% }{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/tiles_connections_01.pdf}
	{0}{0}{432}{648}
	{height=2\universalgrid}
}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/tiles_connections_02.pdf}
	{0}{0}{432}{648}
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/tiles_connections_03.pdf}
	{0}{0}{432}{648}
	{height=2\universalgrid}
}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/tiles_connections_04.pdf}
	{0}{0}{432}{648}
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% GENERATE A SEARCH PATTERN FOR A FILENAME
% SEARCH A MATCHING FILE
% WRITE IT TO A LIST
% WHEN FINISHED USE LISTS TO GENERATE PDF

\gridpage{\mainandsub{
          \textsf{\textbf{3}}x\textsf{\textbf{3}}}{
          paper draft
}}
{}{}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/p/system_02.png}
	{35}{365}{320}{955}
	{height=2\universalgrid}
}
{
	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/p/system_02.png}
	{0}{0}{800}{1105}
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame
{\frametitle{\mainandsub{
          \textsf{\textbf{Standard}} Case}{
          not left, not right, not top, not bottom
}}
\vspace{-.2\universalgrid}
\begin{itemize}

   \item<1-> Every line in the poster is a textfile, right to left = first to last
   \item<2-> Top connector is random: \lstinline{F1=`echo $VARCONNECTORS | cut -c $RBNDOM`}
   \item<3-> Right connector is what was before left connector: \lstinline{F2=$F4}
   \item<4-> Bottom connector is top connector from previously parsed list: \lstinline{F3=`sed -n "$((LINE))p" $LSBEFORE  | cut -d _ -f 2`}
   \item<5-> Left connector is random: \lstinline{F4=`echo $VARCONNECTORS | cut -c $RBNDOM`}
   \item<6-> The source for random:
   \begin{itemize}
    \item<7-> \lstinline{VARCONNECTORS="101010111"}
    \item<8-> \lstinline{RBNDOM=`echo $RANDOM | cut -c 1`}
    \item<9-> \lstinline{RCNDOM=`echo $RANDOM | cut -c 1`}
   \end{itemize}

\end{itemize}

\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{Standard}} Case}{
          not left, not right, not top, not bottom
}}
\begin{lstlisting}

	F1=`echo $VARCONNECTORS | cut -c $RBNDOM`
	F2=$F4
	F3=`sed -n "$((LINE))p" $LSBEFORE  | cut -d _ -f 2`
	F4=`echo $VARCONNECTORS | cut -c $RCNDOM`

	RNDMZR=`ls $TILEDIR |\
		grep $F1"_"$F2"_"$F3"_"$F4"_".svg |\
		rl --count=1

        echo $TILEPATH/$RNDMZR > $LS

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

{\scalefont{.6}\urlpage{http://www.forkable.eu/generators/lacmachine/i/cols+rows/A3/15x13}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          \textsf{\textbf{Density}} Factor}{
          \$VARCONNECTORS=100000000 + \$VARCONNECTORS=101010111
}}
{}{}
{ 	\fbox{\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/lac2008_density-100000000.pdf}
	{0}{0}{595}{841} % A4
	{height=2\universalgrid}}
}
{ 	\fbox{\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/lac2008_density-101010111.pdf}
	{0}{0}{595}{841} % A4
	{height=2\universalgrid}}
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          \textsf{\textbf{Density}} Factor}{
          \$VARCONNECTORS=111100000 + \$VARCONNECTORS=111111111
}}
{}{}
{ 	\fbox{\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/lac2008_density-111100000.pdf}
	{0}{0}{595}{841} % A4
	{height=2\universalgrid}}
}
{ 	\fbox{\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/v/lac2008_density-111111111.pdf}
	{0}{0}{595}{841} % A4
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{Density}} Factor}{
}}
\vspace{-.3\universalgrid}
\begin{lstlisting}
# 101010111 # ACCUMULATION OF CONNECTORS IS DEFINED HERE
# 110000000 # ACCUMULATION OF CONNECTORS IS DEFINED HERE
# 111000111 # ACCUMULATION OF CONNECTORS IS DEFINED HERE 
# 101010111 # ACCUMULATION OF CONNECTORS IS DEFINED HERE

VERT=$1
HORIZ=$2
LSDIR=$3
TILEDIR=tiles
TILEPATH=i/$TILEDIR

#VARCONNECTORS="101010111"
VARCONNECTORS=`sed -n '/ACCUMULATION/p' ./ioioi.sh |\
	       sed -n '/sed/!p' |\
	       cut -d "#" -f 2 |\
	       rl --count=1`
	       echo $VARCONNECTORS

\end{lstlisting}\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

{\scalefont{.6}\urlpage{http://www.forkable.eu/generators/lacmachine/i/ioioi.sh}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setprocessing
\frame[containsverbatim]
{ \frametitle{\mainandsub{
           \textsf{\textbf{lac2008\_A3}}.pde}{
           \vspace{-.35\universalgrid}
 }}
\scalefont{.4}

\lstinputlisting[linerange={12-85}]{i/a/generators/lacmachine/src/lac2008_A3.pde}

\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/generators/lacmachine/doc/i/\freepath/p/logosketches_01_02.png}
% 	{0}{0}{800}{552}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/lacmachine/o/\nonfreepath/A3/plakatlac2008_A3_05.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\fbox{\graphic
	{i/a/generators/lacmachine/o/\nonfreepath/A3/plakatlac2008_A3_25.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/lacmachine/o/\nonfreepath/A3/plakatlac2008_A3_31.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\fbox{\graphic
	{i/a/generators/lacmachine/o/\nonfreepath/A3/plakatlac2008_A3_60.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
 {}{}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/p/namebadges_01.png}
	{0}{0}{800}{1105}
	{height=2\universalgrid}
}
{	\graphic
	{i/a/generators/lacmachine/doc/i/\freepath/p/namebadges_02.png}
	{0}{0}{800}{1105}
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{	\put(.25,-.4){\graphic
	{i/a/stock/2008/lac2008/encyclopedia/Aabaie.pdf}
	{0}{-50}{221}{399} 
	{height=2\universalgrid}}
}{	\put(.25,-.4){\graphic
	{i/a/stock/2008/lac2008/encyclopedia/Willoray.pdf}
	{-80}{-50}{221}{399} 
	{height=1.5\universalgrid}}
}
{
\put(.25,.2){
\makebox[1.2\universalgrid][r]{
\parbox{1.2\universalgrid}{
{\setstretch{-10}
 \scalefont{.45}
 \input{i/a/stock/2008/lac2008/encyclopedia/Aabaie.info}
}}}}
}{
\put(.25,.2){
\makebox[1.2\universalgrid][r]{
\parbox{1.2\universalgrid}{
{\setstretch{-3}
 \scalefont{.45}
 \input{i/a/stock/2008/lac2008/encyclopedia/Willoray.info}
}}}}
}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{	\put(.25,-.4){\graphic
	{i/a/stock/2008/lac2008/encyclopedia/Soprananex.pdf}
	{0}{-50}{221}{399} 
	{height=2\universalgrid}}
}{	\put(.25,-.4){\graphic
	{i/a/stock/2008/lac2008/encyclopedia/Aakeie.pdf}
	{-80}{-50}{221}{399} 
	{height=1.5\universalgrid}}
}
{
\put(.25,.2){
\makebox[1.2\universalgrid][r]{
\parbox{1.2\universalgrid}{
{\setstretch{-10}
 \scalefont{.45}
 \input{i/a/stock/2008/lac2008/encyclopedia/Soprananex.info}
}}}}
}{
\put(.25,.2){
\makebox[1.2\universalgrid][r]{
\parbox{1.2\universalgrid}{
{\setstretch{-3}
 \scalefont{.45}
 \input{i/a/stock/2008/lac2008/encyclopedia/Aakeie.info}
}}}}
}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{	\put(.25,-.4){\graphic
	{i/a/stock/2008/lac2008/encyclopedia/Vetex.pdf}
	{0}{-50}{221}{399} 
	{height=2\universalgrid}}
}{	\put(.25,-.4){\graphic
	{i/a/stock/2008/lac2008/encyclopedia/Baciao.pdf}
	{-80}{-50}{221}{399} 
	{height=1.5\universalgrid}}
}
{
\put(.25,.2){
\makebox[1.2\universalgrid][r]{
\parbox{1.2\universalgrid}{
{\setstretch{-10}
 \scalefont{.45}
 \input{i/a/stock/2008/lac2008/encyclopedia/Vetex.info}
}}}}
}{
\put(.25,.2){
\makebox[1.2\universalgrid][r]{
\parbox{1.2\universalgrid}{
{\setstretch{-3}
 \scalefont{.45}
 \input{i/a/stock/2008/lac2008/encyclopedia/Baciao.info}
}}}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% CASE STUDY 2 %
% ------------ %

% Der offene Schaltkreis %

% wanted to publish under gfdl %
% why? continue the osfa approach

% what makes sense to share %
%
% doing layout in indesign publishing would not 
% make much sense because it's not reproducable 
% with Free Software
%
% also scribus to not have a monolithic dtp project
%
% we had the latex sources anyway
% latex supports what we learned so far from the 
% unix philosophy:
%
% plain text
% modular (images)
% macros = small programs (at least reusable)


% Make Art 2009 %
% ------------- %

\urlpage{http://makeart.goto10.org}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\graphic
	{i/a/generators/wtf/doc/i/\freepath/p/layoutsketches.png}
        % {75}{15}{785}{545}
        {0}{15}{785}{545}
	{height=2\universalgrid}
}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/wtf/o/en/A3/wtf_aut_0_01_009-9.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\fbox{\graphic
	{i/a/generators/wtf/doc/i/\freepath/v/sections_flattened.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{A3}}.tex}{
          \vspace{-.35\universalgrid}
}}\begin{lstlisting}

\begin{document}
	\drawcanvas
	\smallskip
	\smallinfo
	\begin{center}
	  \biginfo
	\end{center}
	\footer

	% MAKE A BIG LOGO CENTERED ON PAGE %
	\begin{picture}(0,0)%
	\put(-.5,1)
	{
	 \graphic{i/tmp/logo.pdf}
	 {50}{50}{350}{350}{width=4\universalgrid}
	 {0pt} % BORDER
	}
	\end{picture}
	% MAKE A BIG LOGO CENTERED ON PAGE %
\end{document}

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\urlpage{http://www.forkable.eu/generators/wtf/A3.tex}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textbackslash newcommand\textsf{\textbf{\textbackslash drawcanvas}}}{
          \vspace{-.35\universalgrid}
}}\begin{lstlisting}

\newcommand{\drawcanvas}{
 \begin{center}

 \strongline
	\vspace{-.15\universalgrid}

	\begin{minipage}{2\textwidth}

		%%%%%%%%%%%%%%%%%%%%%%%%
		\input{i/tmp/canvas.tex}
		%%%%%%%%%%%%%%%%%%%%%%%%

	\end{minipage}

	\vspace{.05\universalgrid}

 \mediumline

 \end{center}
}

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{\textbackslash drawcanvas}}}{
          \vspace{-.35\universalgrid}
}}\begin{lstlisting}

	\drawcanvas

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textbackslash newcommand\textsf{\textbf{\textbackslash grid}}}{
          \vspace{-.35\universalgrid}
}}\begin{lstlisting}

	\newcommand{\grid}[9]{%
	\hspace{2pt}%
	\begin{picture}(0,3.1)%
	\put(0,2){#1}% |}
	\put(0,1){#4}% |}
	\put(0,0){#7}% |}
	\put(1,2){#2}% |}
	\put(1,1){#5}% |}
	\put(1,0){#8}% |}
	\put(2,2){#3}% |}
	\put(2,1){#6}% |}
	\put(2,0){#9}% |}
	\end{picture}%
	}

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

{\scalefont{.6}\urlpage{http://www.forkable.eu/generators/wtf/i/locale/global.sty}}
{\scalefont{.6}\urlpage{http://www.forkable.eu/generators/wtf/i/locale/fr.sty}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textbackslash \textsf{\textbf{grid}}}{
          \vspace{-.35\universalgrid}
}}\begin{lstlisting}

\grid%
{}
{}
{}
{}
{}
{}
{}
{}
{}

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textbackslash newcommand\textsf{\textbf{\textbackslash canvasgraphic}}}{
          \vspace{-.35\universalgrid}
}}\begin{lstlisting}

\newcommand{\canvasgraphic}[7]{%
\setlength\fboxsep{0pt}%
\setlength\fboxrule{#7}%{1pt}%
\fbox{%
	\includegraphics[viewport=#2 #3 #4 #5,clip,#6]{#1}%|
     }%
~
}

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{\textbackslash canvasgraphic}}}{
          \vspace{-.35\universalgrid}
}}
\begin{lstlisting}

\canvasgraphic{i/tmp/typ--00001.pdf}%
{150}{150}{250}{250}{width=.3\universalgrid}
{1pt}

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{wtf}}.sh}{
          \vspace{-.35\universalgrid}
}}
{\scalefont{.8}
\begin{lstlisting}

  if [ $GRIDTYPE -eq 9 ]; then

  GRIDCOUNT=1
  GRAFIKCOUNT=1
  
  echo 	"\setlength{\unitlength}%" 	  >  $TEXGENERATED
  echo 	"{\universalgrid}%"	  	  >> $TEXGENERATED
  echo 	"\grid%"			  >> $TEXGENERATED

  while [ $GRIDCOUNT -le $MAXGRIDS ]
   do
 	    echo "{%" 			  >> $TEXGENERATED

	    GRAFIK=`ls $TMP/*.pdf | \
	    	    head -n $GRIDTYPE | \
	  	    head -n $GRAFIKCOUNT | \
		    tail -1`
	    WIDTH="{width=.97\universalgrid}"

		createGRAFIK

	    echo "}%" 			  >> $TEXGENERATED

	    GRIDCOUNT=`expr $GRIDCOUNT + 1`
	    GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1`
 
  done

elif [ $GRIDTYPE -eq 81 ]; then

...

\end{lstlisting}}
\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{\textbackslash grid}}}{
          generated via bash
          \vspace{-.2\universalgrid}
}}
{\scalefont{.7}
\begin{lstlisting}

\setlength{\unitlength}%
{\universalgrid}%
\grid%
{	\canvasgraphic{i/tmp/typ--00001.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}{	\canvasgraphic{i/tmp/typ--00002.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}{	\canvasgraphic{i/tmp/typ--00003.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}{	\canvasgraphic{i/tmp/typ--00004.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}{	\canvasgraphic{i/tmp/typ--00005.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}{	\canvasgraphic{i/tmp/typ--00006.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}{	\canvasgraphic{i/tmp/typ--00007.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}{	\canvasgraphic{i/tmp/typ--00008.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}{	\canvasgraphic{i/tmp/typ--00009.pdf}%
	{150}{150}{250}{250}{width=.3\universalgrid}
	{1pt}
}
\end{lstlisting}}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash

\frame%[containsverbatim]
{\vfill
\begin{large}
\begin{itemize}
	\item<1->\lstinline{ls $TMP/*.pdf | \ } 
	\item<2->\lstinline{head -n $GRIDTYPE | \ }
	\item<3->\lstinline{head -n $GRAFIKCOUNT | \ }
	\item<4->\lstinline{tail -1}
\end{itemize}
\end{large}
\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame%[containsverbatim]
{\vfill
\begin{large}
\begin{itemize}
	\item<1->\texttt{make a list with all pdf files } 
	\item<2->\texttt{take the first 9 lines from this list } 
	\item<3->\texttt{take the first \emph{X} lines } 
	\item<4->\texttt{take the last file } 
\end{itemize}
\end{large}
\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/generators/wtf/doc/i/\freepath/v/lsheadheadtail/ls.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lshead.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadhead.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-01.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-02.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-03.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-04.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-05.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-06.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-07.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-08.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/lsheadheadtail/lsheadheadtail-09.pdf}
%         {50}{90}{280}{250}
% 	{height=2\universalgrid}
% }{}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/p/non-free/ssbox-6.jpg}
% 	{-100}{0}{216}{322} % A3
% 	{height=2\universalgrid}
% }
% {}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash
\frame[containsverbatim]
{\begin{picture}(0,0)\put(.2,-1.2){
        \graphic
        {i/a/generators/lacmachine/doc/i/\nonfreepath/p/goldberg_01.png}
        {0}{30}{800}{360}
        {height=\universalgrid}
}\end{picture}
\lstset{basicstyle=\scalefont{.6}\ttfamily,
        aboveskip=1.3\universalgrid,xleftmargin=.3\universalgrid,
        escapeinside={~}{~}}
% TEXTUAL NOTATION OF A RUBE GOLDBERG MACHINE
\begin{lstlisting}
Easy way to keep your girl from falling in love
with movie sheik - when she says 
~''\emph{ISN'T HE GRAND!}''~,
sound wave breaks electrical contact ~\textbf{(A)}~
allowing cannonball ~\textbf{(B)}~
to drop on head of usher ~\textbf{(C)}~
he falls forward unconscious, hitting end of seesaw ~\textbf{(D)}~
and causing ooflepif ~\textbf{(E)}~
to bounce up and strike sharp note from accordion - 
armenian dwarf soldier ~\textbf{(G)}~,
thinking he hears note of bugle, starts marching
and falls into bucket ~\textbf{(H)}~,
causing string ~\textbf{(I)}~
to pull shade ~\textbf{(J)}~
front of girl's face, thereby cutting of off
view of movie screen.
If you don't know where to get an ooflepif,
just forget the whole thing.
\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \frame
% {
% 
% \emph{When was the last time you spent a pleasant 
% evening in a comfortable chair, \\
% reading a good program?}
% 
% %  Jon Bentley, Communications of the ACM, 1986 
% 
% \medskip
% 
% When was the last time you spent a pleasant 
% evening in a comfortable chair, \\
% reading a absurdly-connected machine?
% 
% 
% }

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{wtf}}.sh}{
          MAXGRIDS=9
          \vspace{-.35\universalgrid}
}}
{\scalefont{1.2}
\begin{lstlisting}

  while [ $GRIDCOUNT -le $MAXGRIDS ]
   do
 	    echo "{%" 			  >> $TEXGENERATED

	    GRAFIK=`ls $TMP/*.pdf | \
	    	    head -n $GRIDTYPE | \
	  	    head -n $GRAFIKCOUNT | \
		    tail -1`
	    WIDTH="{width=.97\universalgrid}"

		createGRAFIK

	    echo "}%" 			  >> $TEXGENERATED

	    GRIDCOUNT=`expr $GRIDCOUNT + 1`
	    GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1`
 
  done

\end{lstlisting}}
\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/wtf/o/en/A3/wtf_aut_0_01_009-9.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\fbox{\graphic
	{i/a/generators/wtf/o/en/A3/wtf_clp_0_03_009-8.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\graphic
	{i/a/generators/wtf/doc/i/\freepath/v/3x3.pdf}
        {0}{-100}{260}{260}
	{width=1\universalgrid}
}
{	\graphic
	{i/a/generators/wtf/doc/i/\freepath/v/3x3.pdf}
        {0}{-100}{260}{260}
	{width=1\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textbackslash \textsf{\textbf{grid}}}{
          \vspace{-.35\universalgrid}
}}\begin{lstlisting}

\grid
{
\grid{}{}{}{}{}{}{}{}{}
}{
\grid{}{}{}{}{}{}{}{}{}
}{
\grid{}{}{}{}{}{}{}{}{}
}{
\grid{}{}{}{}{}{}{}{}{}
}{
\grid{}{}{}{}{}{}{}{}{}
}{
\grid{}{}{}{}{}{}{}{}{}
}{
\grid{}{}{}{}{}{}{}{}{}
}{
\grid{}{}{}{}{}{}{}{}{}
}{
\grid{}{}{}{}{}{}{}{}{}
}

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\graphic
	{i/a/generators/wtf/doc/i/\freepath/p/medgrid.png}
        % {65}{70}{695}{510}
        {250}{70}{695}{510}
	{height=2\universalgrid}
}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{wtf}}.sh}{
          MAXGRIDS=`expr 9 * 9`
          \vspace{-.35\universalgrid}
}}
{\scalefont{.5}
\begin{lstlisting}

  GRIDCOUNT=1
  GRAFIKCOUNT=1
  
  echo 	"\setlength{\unitlength}%" 	  >  $TEXGENERATED
  echo 	"{\universalgrid}%"	   	  >> $TEXGENERATED
  echo 	"\grid%"			  >> $TEXGENERATED

  while [ $GRIDCOUNT -le $MAXGRIDS ]
   do
	  GRIDCOUNTTWO=1
	  
    echo "{%" 				   >> $TEXGENERATED
 
	  echo 	"\setlength{\unitlength}%" >> $TEXGENERATED
	  echo 	"{.33\universalgrid}%"	   >> $TEXGENERATED
	  echo 	"\grid%"		   >> $TEXGENERATED

	  while [ $GRIDCOUNTTWO -le $MAXGRIDS ]
	   do
		if [ $COLCOUNT -le 0 ]; then  	  

			COLCOUNT=3	
			GRAFIKCOUNT=`expr $GRAFIKCOUNT + 6`
		fi

		    echo "{%" 		   >> $TEXGENERATED

		    GRAFIK=`ls $TMP/*.pdf | head -n $GRIDTYPE | \
			    head -n $GRAFIKCOUNT | \
			    tail -1`
		    WIDTH="{width=.3\universalgrid}"
			createGRAFIK $GRAFIKCOUNT # JUST DEBUGGING

		    echo "}%" 		   >> $TEXGENERATED

	    GRIDCOUNTTWO=`expr $GRIDCOUNTTWO + 1`
	    GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1`
	    COLCOUNT=`expr $COLCOUNT - 1`

	  done

    echo "}%" 				  >> $TEXGENERATED
 
    GRIDCOUNT=`expr $GRIDCOUNT + 1`
    COLCOUNT=3
    ROWCOUNT=`expr $ROWCOUNT - 1`

	if [ $ROWCOUNT -gt 0 ]; then
	    GRAFIKCOUNT=`expr $GRAFIKCOUNT - 18`
	   else
	   ROWCOUNT=3
	fi
  done

\end{lstlisting}}
\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/wtf/o/en/A3/wtf_clp_0_03_081-9.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\fbox{\graphic
	{i/a/generators/wtf/o/en/A3/wtf_xpm_0_11_081-2.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setlatex
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textbackslash \textsf{\textbf{grid}}}{
          \vspace{-.35\universalgrid}
}}
\scalefont{.33}
\begin{lstlisting}

\grid
{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}{
\grid{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}{\grid{}{}{}{}{}{}{}{}{}}
}

\end{lstlisting}\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\put(0,.25){
	\graphic
	{i/a/generators/wtf/doc/i/\freepath/p/biggrid.png}
        {0}{680}{800}{1080}
	{height=1.5\universalgrid}
}}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{wtf}}.sh}{
          MAXGRIDS=`expr 9 * 9 * 9`
          \vspace{-.35\universalgrid}
}}
{\scalefont{.25}
\begin{lstlisting}

  GRIDCOUNT=1
  GRAFIKCOUNT=1
  COLCOUNT=3
  ROWCOUNT=3
  
  echo 	"\setlength{\unitlength}%"        >  $TEXGENERATED
  echo 	"{\universalgrid}%"	          >> $TEXGENERATED
  echo 	"\grid%"			  >> $TEXGENERATED


  while [ $GRIDCOUNT -le $MAXGRIDS ]
   do

    echo "{%" 				  >> $TEXGENERATED
 
	  GRIDCOUNTTWO=1
	  MAXGRIDS=9

	  echo 	"\setlength{\unitlength}%" >> $TEXGENERATED
	  echo 	"{.33\universalgrid}%"	   >> $TEXGENERATED
	  echo 	"\grid%"		   >> $TEXGENERATED

	  while [ $GRIDCOUNTTWO -le $MAXGRIDS ]
	   do
		if [ $COLCOUNT -le 0 ]; then  	  

			COLCOUNT=3	
			GRAFIKCOUNT=`expr $GRAFIKCOUNT + 18`
		fi
		
	    echo "{%" 			   >> $TEXGENERATED

	  GRIDCOUNTTHREE=1

	  ###############################################

	  echo 	"\setlength{\unitlength}%" >> $TEXGENERATED
	  echo 	"{.11\universalgrid}%"	   >> $TEXGENERATED
	  echo 	"\grid%"		   >> $TEXGENERATED

	  ###############################################

		  while [ $GRIDCOUNTTHREE -le $MAXGRIDS ]
		   do
			if [ $COLCOUNTTWO -le 0 ]; then  	  

				COLCOUNTTWO=3	
				GRAFIKCOUNT=`expr $GRAFIKCOUNT + 24`
			fi

		    echo "{%" 		>> $TEXGENERATED

		    GRAFIK=`ls $TMP/*.pdf | head -n $GRIDTYPE | \
			    head -n $GRAFIKCOUNT | \
			    tail -1`
		    WIDTH="{width=.075\universalgrid}%"

			createGRAFIK # $GRAFIKCOUNT # JUST DEBUGGING

		    echo "}%" 		>> $TEXGENERATED

		    GRIDCOUNTTHREE=`expr $GRIDCOUNTTHREE + 1`
		    GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1`
		    COLCOUNTTWO=`expr $COLCOUNTTWO - 1`

		  done

	  ################################################

	    echo "}%" 		>> $TEXGENERATED

	    COLCOUNTTWO=3
	    ROWCOUNTTWO=`expr $ROWCOUNTTWO - 1`

		if [ $ROWCOUNTTWO -gt 0 ]; then
		    GRAFIKCOUNT=`expr $GRAFIKCOUNT - 54`
		   else
		   ROWCOUNTTWO=3
		fi

	    GRIDCOUNTTWO=`expr $GRIDCOUNTTWO + 1`
	    #GRAFIKCOUNT=`expr $GRAFIKCOUNT + 1`
	    COLCOUNT=`expr $COLCOUNT - 1`

	  done
 
    echo "}%" 			>> $TEXGENERATED
    
    GRIDCOUNT=`expr $GRIDCOUNT + 1`
    COLCOUNT=3
    ROWCOUNT=`expr $ROWCOUNT - 1`

	if [ $ROWCOUNT -gt 0 ]; then
	    GRAFIKCOUNT=`expr $GRAFIKCOUNT - 216`
	   else
	   ROWCOUNT=3
	fi
  done

\end{lstlisting}}
\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\graphic
	{i/a/generators/wtf/o/en/A1/wtf_aut_0_01_729-2.png}
	{0}{0}{303}{428} % A1 Thumbnail
	{height=2\universalgrid}
}
{	\graphic
	{i/a/generators/wtf/o/en/A1/wtf_see_0_01_729-2.png}
	{0}{0}{303}{428} % A1 Thumbnail
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

{\scalefont{.6}\urlpage{http://www.forkable.eu/generators/.wtf.sh}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/wtf/o/en/A3/wtf_aut_0_01_009-9.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\graphic
	{i/a/generators/wtf/doc/i/\freepath/v/bash2plakat.pdf}
	{0}{0}{400}{400} % A3
	{height=2\universalgrid}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\graphic
	{i/a/generators/wtf/doc/i/\freepath/v/bash2folder.pdf}
	{0}{0}{400}{400}
	{height=2\universalgrid}
}
{	\graphic
	{i/a/generators/wtf/doc/i/\freepath/v/processing2folder.pdf}
	{0}{0}{400}{400}
	{height=2\universalgrid}
}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{\mainandsub{}{
%           inspiration
%           \vspace{-.2\universalgrid}
% }}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/p/screenshots/2009-12-02--1259752472_1024x768_scrot.png}
% 	{0}{0}{1000}{576}
% 	{height=2\universalgrid}
% }
% {}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \setbash
% \frame[containsverbatim]
% {\frametitle{\mainandsub{
%           \textsf{\textbf{Xvfb}}}{
%           X Virtual frame buffer
%           \vspace{-.35\universalgrid}
% }}
% {\scalefont{1}
% \begin{lstlisting}

% # START VIRTUAL XSERVER FOR PROCESSING HEADLESS #######
% # Xvfb :1 -screen 0 1152x900x8 -fbdir /tmp &

% # EXPORT DISPLAY FOR PROCESSING HEADLESS ##############
% export DISPLAY=localhost:1.0

% \end{lstlisting}}
% \vfill}

% %$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% \gridpage{\mainandsub{
%           \textsf{\textbf{Processing}} Headless}{
%           \vspace{-.1\universalgrid}
% }}
% {}{}
% {	\graphic
% 	{i/a/release/2009/wtf/i/v/non-free/headless-02.pdf}
% 	{0}{0}{400}{400}
% 	{height=2\universalgrid}
% }
% {}

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{X Pixmap}} (XPM)}{
          ASCII-text-based image format used by the X Window System
          \vspace{-.1\universalgrid}
}}
\scalefont{.15}

\lstinputlisting[linerange={28-189}]{i/\nonfreepath/p/richard.xpm}

\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{X Pixmap}} (XPM)}{
          Created in 1989 by Daniel Dardailler and Colas Nahaboo 
          \vspace{-.35\universalgrid}
}}
\scalefont{.35}

\lstinputlisting[linerange={70-130}]{i/\nonfreepath/p/richard.xpm}

\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\setbash
\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{xpm\_0\_05}}.sh}{
          \vspace{-.35\universalgrid}
}}
{\scalefont{.7}
\begin{lstlisting}

######################################################################

extractBody () { ## EXTRACT XPM BODY TO TEMP ##
	
	sed -n "/$HEADENDSTRING/,/$BODYENDSTRING/p" \
	$1 |\
	head -n -1 | tac | head -n -1 | tac |\
	cut -d """" -f 2 > $BODYTEMP
	replace ' ' 'x' -- $BODYTEMP
}

reconstructXPM () { 	## RECONSTRUCT VALID XPM	##

	FILENAME=${1%.*}
	
	sed -n "/XPM/,/$HEADENDSTRING/p" $FILENAME.xpm > head.tmp
	cat head.tmp > $FILENAME.xpm
	rm head.tmp
	HEIGHT=`wc -l $BODYTEMP | cut -d " " -f 1`
	
	COUNT=1
	for LINE in `cat $BODYTEMP`
	 do
	   if [ $COUNT -eq `expr $HEIGHT - 1` ]; then 
	   LINEENDSTRING=""\""
	   else
	   LINEENDSTRING=""\","
	   fi
	   echo $LINESTARTSTRING$LINE$LINEENDSTRING >> $FILENAME.xpm
	   COUNT=`expr $COUNT + 1`
	 done
	
	echo $BODYENDSTRING >> $FILENAME.xpm
	replace '"  c ' '"x c ' -- $FILENAME.xpm
}

######################################################################

\end{lstlisting}}
\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame[containsverbatim]
{\frametitle{\mainandsub{
          \textsf{\textbf{xpm\_0\_05}}.sh}{
          \vspace{-.35\universalgrid}
}}
{\scalefont{.7}
\begin{lstlisting}

	for LINE in `cat $BODYTEMP`
	 do		   
		BLACKS=`echo $LINE |  tr -d . | wc -c`
		if [ $BLACKS -gt 30 ]; then
		  SELECTLINE=`expr $COUNT - 1` 
		  awk "NR==$SELECTLINE" $BODYTEMP >> $BODYTEMP.2
		elif [ $BLACKS -gt 70 ]; then
		  SELECTLINE=`expr $COUNT + 4` 
		  awk "NR==$SELECTLINE" $BODYTEMP >> $BODYTEMP.2	
		elif [ $BLACKS -gt 50 ]; then
		  cat $BODYTEMP | rl --count=1    >> $BODYTEMP.2
		else
		  echo $LINE >> $BODYTEMP.2
		fi
		COUNT=`expr $COUNT + 1`
	done


	mv $BODYTEMP.2 $BODYTEMP
	reconstructXPM $TMPDIR/$NAME.xpm
	rm $BODYTEMP

	convert $TMPDIR/$NAME.xpm $TMPDIR/$NAME.png

	autotrace -background-color FFFFFF \
		  -corner-threshold 100 \
		  -corner-always-threshold 300 \
		  -error-threshold 100 \
		  -line-threshold 100 \
		  -line-reversion-threshold 300 \
		  -output-file=$RESULT \
		  $TMPDIR/$NAME.png

\end{lstlisting}}
\vfill}

%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/wtf/doc/i/\nonfreepath/v/posterevolution/090909/A3/wtf_xpm_0_01_009-6.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\fbox{\graphic
	{i/a/generators/wtf/doc/i/\nonfreepath/v/posterevolution/090909/A3/wtf_xpm_0_08_009-8.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/wtf/doc/i/\nonfreepath/v/posterevolution/090910/A3/wtf_xpm_0_04_009-1.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\fbox{\graphic
	{i/a/generators/wtf/doc/i/\nonfreepath/v/posterevolution/090910/A3/wtf_xpm_0_08_009-3.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{}
{}{}
{	\fbox{\graphic
	{i/a/generators/wtf/doc/i/\nonfreepath/v/posterevolution/090912/A3/wtf_xpm_0_08_009-8-1.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}
{	\fbox{\graphic
	{i/a/generators/wtf/doc/i/\nonfreepath/v/posterevolution/090912/A3/wtf_xpm_0_05_009-5.pdf}
	{0}{0}{841}{1190} % A3
	{height=2\universalgrid}}
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\question
{
Why does FLOSS work for me?
}

\question
{
Why does FLOSS work for me? \\
Why does it work for so many different purposes?
}

\answer
{
FLOSS is well designed for Appropriation.
}

\question
{
How? % DESIGN OPEN SYSTEMS
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\gridpage{\mainandsub{
          The \textsf{\textbf{UNIX}} Philosophy}{
}}
{}{}
{	\graphic
	{i/a/utils/talks+papers/liwoli-2009/i/\nonfreepath/p/unixphilosophy.png}
	{-50}{0}{800}{581}
	{height=2\universalgrid}
}{}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%   http://en.wikipedia.org/wiki/Unix_philosophy    %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame
{\frametitle{\mainandsub{
          The \textsf{\textbf{UNIX}} Philosophy}{
          \vspace{-.35\universalgrid}
}}
{\scalefont{.9}
\begin{itemize}

   \item Small is beautiful.
   \item Make each program do one thing well.
   \item Build a prototype as soon as possible.
   \item Choose portability over efficiency.
   \item Store data in flat text files.
   \item Use software leverage to your advantage.
   \item Use shell scripts to increase leverage and portability.
   \item Avoid captive user interfaces.
   \item Make every program a filter.

   \item Allow the user to tailor the environment.
   \item Make operating system kernels small and lightweight.
   \item Use lowercase and keep it short.
   \item Save trees.
   \item Silence is golden.
   \item Think parallel.
   \item The sum of the parts is greater than the whole.
   \item Look for the 90-percent solution.
   \item Worse is better.
   \item Think hierarchically.

\end{itemize}
\vfill}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame
{\frametitle{\mainandsub{
          The \textsf{\textbf{UNIX}} Philosophy}{
          \vspace{-.35\universalgrid}
}}
{\scalefont{.9}
\begin{itemize}

   \item \textbf{Rule of Modularity}: Write simple parts connected by clean interfaces.
   \item \textbf{Rule of Clarity}: Clarity is better than cleverness.
   \item \textbf{Rule of Composition}: Design programs to be connected to other programs.
   \item \textbf{Rule of Separation}: Separate policy from mechanism; separate interfaces from engines.
   \item \textbf{Rule of Simplicity}: Design for simplicity; add complexity only where you must.
   \item \textbf{Rule of Parsimony}: Write a big program only when it is clear by demonstration that nothing else will do.
   \item \textbf{Rule of Transparency}: Design for visibility to make inspection and debugging easier.
   \item \textbf{Rule of Robustness}: Robustness is the child of transparency and simplicity.
   \item \textbf{Rule of Representation}: Fold knowledge into data so program logic can be stupid and robust.[6]
   \item \textbf{Rule of Least Surprise}: In interface design, always do the least surprising thing.
   \item \textbf{Rule of Silence}: When a program has nothing surprising to say, it should say nothing.
   \item \textbf{Rule of Repair}: When you must fail, fail noisily and as soon as possible.
   \item \textbf{Rule of Economy}: Programmer time is expensive; conserve it in preference to machine time.
   \item \textbf{Rule of Generation}: Avoid hand-hacking; write programs to write programs when you can.
   \item \textbf{Rule of Optimization}: Prototype before polishing. Get it working before you optimize it.
   \item \textbf{Rule of Diversity}: Distrust all claims for "one true way".
   \item \textbf{Rule of Extensibility}: Design for the future, because it will be here sooner than you think

\end{itemize}
\vfill}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame
{\vfill
\begin{itemize}
        \item<1->  The sum of the parts is greater than the whole. % -- Think Modular.
        \item<2->  Distrust all claims for "one true way". % -- Think Different.
 	\item<3->  Build a prototype as soon as possible. % -- The Process is the Product.
        \item<4->  Use software leverage to your advantage. % -- Let the Machines generate some/more/all.
        \item<5->  Design programs to be connected to other programs. % -- Think Modular.
        \item<6->  Programmer time is expensive; conserve it in preference to machine time. % -- Let the Machines generate some/more/all. 
 	\item<7->  Avoid captive user interfaces. % -- Is there a Alternative to GUI based Graphic Design.
        \item<8->  Allow the user to tailor the environment. % -- Don't design for Perfection.
	\item<9->  Make each program do one thing well.  % -- Think Modular.
	\item<10-> Store data in flat text files. % -- Text as Interface. 
\end{itemize}
\vfill}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% THE PERMANENT HACK %
% zero padding is done like this %
% but could be also done like this %

% you spend a lot of time searching, discovering and learning %
% you can not know everything, but that does not matter, because you can find your own way

% STORE DATA IN TEXT FILES, IF PROGRAMS ARE TEXT, STORE DATA (PARAMETERS) IN PROGRAMS
% BSP. ->

% XPM

% WRITE PROGRAMS TO WRITE PROGRAMS (LaTeX is Turing complete?)

% MY WEIRDEST SHELL CONSTRUCTS

% SHELL SCRIPTS LET YOU EXPLORE THE WHOLE OPERATING SYSTEM

% NOT MATH BUT TEXT DESCRIBING ACTIONS

% LAYOUT SIMPLY SEEN AS ARRANGEMENT OF PARTS

% WHAT MAKES SENSE TO REUSE? 
% DESIGN FOR REUSE, DESIGN FOR APPROPRIATION, DESIGN FOR UNINTENDED USE
% READABILITY, DUPLICATION (ENTKOPPELUNG), MODULES.

% LATEX VIDEO

% THERE IS A LOT TO DISCOVER

% use programs to write programs (macros)
% to increase leverage

% modules (openprocessing)

% The forkable archive %
% -------------------- %

% forking as appropriation                %
% copy, change, be independent            %
% increase stability through deconnection %

% readability
% copybility
% modularity


\end{document}
