\chapter{Processing}
\label{chap:processing}

Processing\index{processing} est tout particulièrement adapté à la
création plastique
et graphique interactive et au graphisme de données, mais sa simplicité
d'utilisation en fait aussi un bon support pour l'apprentissage de la
logique de la programmation pour les non-programmeurs.

Processing est écrit en Java\index{Java}, et est, en fait, une sorte
de surcouche dont le principal intérêt est de masque la complexité
de ce langage. Une opinion toute personnelle. Mais un outil digne
d'intérêt.

%  -------------------------------------------------------------------

\section{Installation}

Pour commencer, allez donc chercher le logiciel
dans \texttt{http://processing.org/download}. 
Ensuire regardez ce qu'il y a dedans~:

\begin{verbatim}
tth@fubar:~/$ tar ztf ~/Downloads/processing-3.5.4-linux64.tgz | head
processing-3.5.4/
processing-3.5.4/processing
processing-3.5.4/tools/
processing-3.5.4/tools/MovieMaker/
\end{verbatim}

La documentation officielle nous explique comment installer le
tarball dans votre \$HOME. Personnellement, je n'aime pas cette
solution, et je préfère nettement une installation
\textsl{systemwide}, afin que tout les yusers y aient accès.

Nous allons donc installer l'archive dans un répertoire
adapté pour les logiciels externes~:
\texttt{/usr/local/}\footnote{Certains peuvent préferer
\texttt{/opt/}, mais c'est vous qui voyez\dots},
puis utiliser un lien symbolique pour lancer Processing.
%
%	question à trancher : lien 'dur' ou symbolique ?
%
\begin{verbatim}
tth@fubar:~$ su -
Password:
root@fubar:~\# cd /usr/local/
root@fubar:/usr/local \# tar zxf /home/tth/Downloads/processing-3.5.4-linux64.tgz
root@fubar:/usr/local \# ln -s /usr/local/processing-3.5.4/processing bin/processing
root@fubar:/usr/local \# logout
tth@fubar:~$
\end{verbatim}

Voilà, processing est maintenant prêt à être utilisé, modulo quelques soucis
avec les items du menu "Help", que j'espère bien comprendre en plongeant
dans une \textsl{stacktrace} de l'enfer.

%  -------------------------------------------------------------------

\section{Premiers pas}

Nous allons créer une fenêtre et dessiner quelque chose dedans,
ce qui semble raisonnable pour débuter\dots

%  -------------------------------------------------------------------

\section{Vers l'extérieur}

Open Sound Control\index{OSC}, aka OSC (voir page \pageref{chap:OSC})
pour causer sur le réseau,
rs232\index{rs232} pour causer avec un Arduino\index{Arduino},

%  -------------------------------------------------------------------

\section{Extensions}

Comment peut-on écrire une extension ? Et envisageons le pire,
utiliser une bibliothèque écrite en C ?


%  -------------------------------------------------------------------




