\sectiontitle{using the forkable repository} The forkable repository is not at all a stable system. It's a collection of \emph{scripts, tools, illustrations, documentation}, an anarchive, perhaps a giant mess. The collection aims to be archive, production environment, documenation. From a technical perspective it tries to learn from a more or less time-tested design approach, that supports the kind of reuse \emph{I} was looking for in the beginning. This set of design princliples gets to be talked about as the \emph{Unix Philosophy} and makes software as reusable as forkable should be. The Unix Philosophy is present here as not the GNU in UNIX but in GNU/Linux, operating system and anarchive of software. The collection has been tested so far with Debian GNU/Linux and Ubuntu. % It's possible through the demand for copying while it comes % packed with software from the Comprehensive TeX Archive Network. \subsection{check it out} You should be running GNU/Linux with subversion\footnote{% What is subversion?% } installed. \codeline{}{sudo aptitude install subversion} Do a checkout: \codeline{}{svn co http://code.lafkon.net/subversion/forkable} You will be asked for username and password. If you do not have already one, please send an email. Because we are currently on a test run, the subversion repository is not completly open to the public while you can browse everything at \url{http://www.forkable.eu}. The checkout may take some time because there is a rather large collection of vector illustrations from \url{http://vektordb.lafkon.net} included. %\marginpar[addsa]{sada} \subsection{check the system} Because, what is forkable at the moment, is a diversity of tools, glued together mostly inside bash scripts, there is a bunch of software that is actually needed to get everything working. \subsubsection{prepare your \LaTeX installation} First you need a \TeX installation for Debian and Ubuntu that is texlive. \codeline{}{sudo aptitude install texlive} Add the forkable TEXMF path to your local tex installation: Open \codeinline{}{/etc/texmf/texmf.cnf} with a text editor. \codeline{}{sudo nano /etc/texmf/texmf.cnf} Add the following: \lstset{breaklines=false,language=[LaTeX]TeX} \codeline{}{TEXMFFORKABLE = /path/to/your/forkable/folder/utils/latex/TEXMF} look for a line something like this: \codeline{}{TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFMAIN,!!$TEXMFDIST}} and the variable for the forkable TEXMF folder: \codeline{}{TEXMF = {$TEXMFCONFIG,$TEXMFVAR,$TEXMFHOME,$TEXMFFORKABLE,$TEXMFSYSCONFIG,!!$TEXMFSYSVAR,!!$TEXMFLOCAL,!!$TEXMFMAIN,!!$TEXMFDIST}} You must do this so that \LaTeX finds the packages that are distributed with forkable.\\ Reload TeX. \codeline{}{sudo texhash} \subsubsection{install software} you need to have java installed. \codeline{}{sudo aptitude install sun-java5-bin} you can the \codeinline{}{check\_the\_system.sh} script to test which software you need to install. \subsection{folder structure} \paragraph{generators} Like the name says things that generate something. This is most active part of forkable \paragraph{release} Finished stuff that is not really used anymore like a print layed book. \paragraph{utils} Things that are usefull. Has become right now kind of a wastedump, for all stuff not matching categories. \paragraph{i} \subparagraph{i/free + i/non-free} %\marginpar{sada} For the distribution of projects i decided to differentiate data into \emph{free} and \emph{non-free}. Most projects include data that is the property of a third party like logos and therefore can not be put under free licenses. for the public svn checkout the non-free directories are excluded. to get layouts and scripts working nontheless these files are replaced by free supplementals. \subparagraph{i/*/v} vector graphics. see jon phillips \subparagraph{i/*/p} raster images to be included. p for pixel \subparagraph{i/tmp} local temporary directory. \subparagraph{i/a -- follow the donkey path} \begin{quotation} % ``Der Mensch schreitet geradeaus, weil er ein Ziel hat; % er weiß, wohin er geht, er hat sich für eine Richtung % entschieden und schreitet in ihr geradeaus. Der Esel geht im Zickzack, d\"ost ein wenig, bl\"ode vor Hitze und zerstreut, geht im Zickzack, um den gro\ss en Steinen auszuweichen, um sich den Anstieg sanfter zu machen, um den Schatten zu suchen. % Er strengt sich so wenig wie möglich an.'' %\cite[p.5]{Corbusier:1979:sb} \cite{Corbusier:1979:sb} \end{quotation} i/a is a recursive link i use so far for linking documents. this link stays the same for all documents what makes it easy to include documents into each other without specifying an absolute link. as far as i know latex resolves links not relative to the document path but relative to the root document. if i include in release/osk/Offener\_Schaltkreis.tex via \lstinline{\input} the document generators/lacmachine/doc/lacmachine.tex that uses a graphic via \lstinline{\include{i/v/graphic.pdf} that is stored in generators/lacmachine/doc/i/v/graphic.pdf i can't release/osk/Offener\_Schaltkreis.tex because it searches for an image i/v/graphic.pdf that obviously does not exist. by providing each latex directory through a symlink with the path i/a i can link images with the path i/a/generators/lacmachine/doc/i/v/graphic.pdf, that is the same for release/osk/Offener\_Schaltkreis.tex \emph{AND} generators/lacmachine/doc/lacmachine.tex. Better solution welcome. % ``Nun, eine moderne Stadt lebt, praktisch, von der Geraden: % Hoch- und Tiefbau, Kanalisation, Straßen, Gehsteige usw. % Der Verkehr fordert die Gerade. % Die Gerade ist gesund auch für die Seele der Städte. % Die Kurve ist verderblich, schwierig und gefährlich. % Sie lähmt.'' % \cite[p.5]{Corbusier:1979:sb} \paragraph{o} \subparagraph{o/non-free} output rendered with proprietary parts. not in the subversion repository. online at \url{http://www.forkable.eu} \subparagraph{o/free} output directories used for scripts in the subversion directory. % ``Design for hackability encourages designers and non-designers to critically % and creatively explore interactivity, technology and media - to reclaim % authorship and ownership of technologies and the social and cultural worlds % in which one lives. Hackability implies more than customization or % adaptation - it calls for redefinition. In a world where technologies are % increasingly mobile and invisible, designing for hackability means allowing % and encouraging people to make technologies be what they want them to be.'' % % Galloway; Anne: Design for Hackability. % Good programmers know what to write. Great ones know what to rewrite (and reuse). % % Raymond, Eric S.: The Cathedral and The Bazaar, S.24 % A successful tool is one that was used to do something undreamed of by its author. % % Stoltermann, Erik: Design for Unintended Use % [Designing for appropriation] means allowing and encouraging people to % make technologies be what they want them to be. % % Galloway; Anne: Design for Hackability.