small additions
This commit is contained in:
parent
d1d3b7c94e
commit
3794eb2608
@ -135,18 +135,53 @@ La dernière ligne va vous étonner.
|
||||
La bibliothèque \textbf{Plplot} semble être un bon choix pour commencer,
|
||||
mais il existe bien d'autres options.
|
||||
Par exemple \textbf{g2} (page \pageref{g2}) semble être utilisable
|
||||
avec le F77, et possiblement avec un Fortran moderne.
|
||||
avec les vieux F77, et possiblement avec un Fortran moderne, il faut juste
|
||||
un peu de \textsc{rtfm}.
|
||||
|
||||
Nous allons donc commencer par Plplot.
|
||||
|
||||
% --------------------------------------------------------
|
||||
|
||||
\subsection{Plplot} \index{plplot} \label{ploplt}
|
||||
|
||||
Commençons directement par un EMC\footnote{Exemple Minimal Compilable}
|
||||
qui ne va pas faire grand chose, à part initialiser la machinerie
|
||||
interne de Plplot qui est assez avancée.
|
||||
Il y a beaucoup de paramètres réglables, mais aussi des fonctions
|
||||
qui gèrent pour vous les valeurs « par défaut ».
|
||||
Voyez cette exemple comme un \textsl{boilerplate} simple
|
||||
ou un \textsc{HelloWorld}~:
|
||||
|
||||
\begin{verbatim}
|
||||
program dessine
|
||||
use plplot
|
||||
implicit none
|
||||
call plinit ()
|
||||
call plenv(-2.1, 2.1, -2.1, 2.1, 0, 0)
|
||||
call plend
|
||||
end program
|
||||
\end{verbatim}
|
||||
|
||||
Il ne se passe pas grand chose, sauf la proposition de choisir
|
||||
le type de sortie.
|
||||
Dans la version que j'ai (XXX\index{XXX}), on a le choix entre
|
||||
X-Window, PostScript mono ou couleur, Xfig, Null, UserMemory et SVG.
|
||||
C'est intriguant de ne pas avoir au moins \textbf{un} format
|
||||
pixmap\index{pixmap}.
|
||||
|
||||
Laissons cette question en suspens, et commençons à dessiner.
|
||||
D'accord, mais dessiner quoi ?
|
||||
|
||||
% --------------------------------------------------------
|
||||
|
||||
\section{Questions}
|
||||
|
||||
XXX\index{XXX}
|
||||
\index{XXX}
|
||||
|
||||
Comment déclarer une variable statique dans une procédure ?
|
||||
\begin{itemize}
|
||||
\item Comment déclarer une variable statique dans une procédure ?
|
||||
\item Pourquoi ne pas parler de DISLIN ?
|
||||
\item Est-il possible de causer à \texttt{libsndfile} ?
|
||||
\end{itemize}
|
||||
|
||||
% ========================================
|
||||
|
@ -116,13 +116,15 @@ Les champs d'altitude... Toute une histoire...
|
||||
#declare Champ_Altitude = object
|
||||
{
|
||||
height_field {
|
||||
png "WS/hf5.png" gamma 1.8
|
||||
}
|
||||
png "WS/hf5.png" gamma 1.8
|
||||
}
|
||||
pigment { color Cyan }
|
||||
scale 2
|
||||
}
|
||||
\end{verbatim}
|
||||
|
||||
Le paramètre \texttt{gamma} est injustement méconnu.
|
||||
|
||||
% ------------------------------------------------
|
||||
|
||||
\subsection{Random} \index{ramdom}
|
||||
@ -141,9 +143,25 @@ que l'on vient d'obtenir~:
|
||||
|
||||
\texttt{\#local foo = rand(RND);}
|
||||
|
||||
Par contre, on va obtenir un résultat bien classique~:
|
||||
\textsl{The numbers are uniformly distributed, and have values between
|
||||
0.0 and 1.0,}
|
||||
Mais... \index{XXX}
|
||||
|
||||
Pourquoi nous faut-il plusieurs générateurs ? La réponse est dans
|
||||
la documentation\footnote{\texttt{https://wiki.povray.org/}}~:
|
||||
\textsl{Multiple random generators are very useful in situations where you use
|
||||
rand() to place a group of objects, and then decide to use rand()
|
||||
in another location earlier in the file to set some colors or place
|
||||
another group of objects.
|
||||
Without separate rand() streams, all of your objects would move
|
||||
when you added more calls to rand().
|
||||
This is very annoying.}
|
||||
|
||||
Ce qui nous conduit vers une autre question. Les PRNG sont des machines
|
||||
déterministes. C'est à dire qu'à conditions identiques au départ,
|
||||
nous aurons toujours la même séquence en sortie.
|
||||
|
||||
... \index{XXX}
|
||||
|
||||
|
||||
% ------------------------------------------------
|
||||
|
@ -6,6 +6,14 @@ voir quelques grands classiques de la catégorie pas du tout
|
||||
interactif. Le genre de machin que l'on peut ranger au fond
|
||||
d'un script shell pour le réutiliser la semaine prochaine.
|
||||
|
||||
\begin{itemize}
|
||||
\item{ImageMagick}
|
||||
\item{Gmic}
|
||||
\item{NetPBM}
|
||||
\item{Portable Network Graphic}
|
||||
\item{TIFF}
|
||||
\end{itemize}
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
|
||||
\section{ImageMagick}\index{ImageMagick}
|
||||
@ -21,6 +29,11 @@ la plupart des traitements,
|
||||
\texttt{display} et \texttt{animate} pour visualiser des images,
|
||||
\texttt{identify} pour en lire les méta-données.
|
||||
|
||||
Ils partagent un certain nombre d'options communes.
|
||||
Certains d'entre eux peuvent avoir un effet destructif%
|
||||
\footnote{En plus d'avoir un nom de série $Z$.},
|
||||
vous êtes prévenus.
|
||||
|
||||
\subsection{L'option \texttt{-geometry}}
|
||||
|
||||
C'est une notion importante, car elle est utilisée comme paramètre
|
||||
@ -200,6 +213,34 @@ use it heavily.
|
||||
sion schemes.
|
||||
\end{verbatim}
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
|
||||
\section{Cimg} \index{Cimg}
|
||||
|
||||
\texttt{Cimg} est l'énorme bibliothèque de fonctions
|
||||
(écrites en \texttt{C++}\footnote{\textsc{wtf?}}) sur lesquelles
|
||||
et basé Gmic. C'est long à compiler, ça produit des binaires
|
||||
énormes, mais il semble bien que ça puisse faire des trucs géniaux.
|
||||
|
||||
\begin{lstlisting}
|
||||
#define cimg_use_png
|
||||
#include "CImg.h"
|
||||
using namespace cimg_library;
|
||||
|
||||
#define BLUR 0.35
|
||||
int main(int argc,char **argv)
|
||||
{
|
||||
if (3 != argc) {
|
||||
fprintf(stderr, \
|
||||
"Usage: %s infile.png outfile.png\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
CImg<unsigned char> imgIn (argv[1]);
|
||||
CImg<unsigned char> imgOut = \
|
||||
imgIn.get_norm().blur(BLUR).normalize(0, 255);
|
||||
imgOut.save(argv[2]);
|
||||
return 0;
|
||||
}
|
||||
\end{lstlisting}
|
||||
|
||||
% -------------------------------------------------------------------
|
||||
|
@ -1,12 +1,17 @@
|
||||
%
|
||||
%
|
||||
% Chapitre un peu en vrac :)
|
||||
%
|
||||
\chapter{Web servers}
|
||||
|
||||
% ==============================================================
|
||||
\section{Apache} \index{Apache}
|
||||
\section{Apache, Nginx} \index{Apache} ìndex{nginx}
|
||||
|
||||
Le grand classique. Que nous ne verrons pas pour le moment.
|
||||
Apache (\textsl{A patchy server} et Nginx sont de grands classiques,
|
||||
voire même, dans le cas d'Apache, un grand ancien.
|
||||
|
||||
Que nous ne verrons pas pour le moment. Je vais plutôt me concentrer
|
||||
sur un autre serveur : \texttt{lighthttp}, pour passer ensuite à quelque
|
||||
chose d'encore plus bas-niveau.
|
||||
|
||||
|
||||
% ==============================================================
|
||||
@ -23,16 +28,18 @@ root@ramen:~#
|
||||
\end{verbatim}
|
||||
|
||||
\textbf{Q:} Sur une installation fraiche, la racine du site est
|
||||
en 403\index{403} ?\linebreak
|
||||
en erreur 403\index{403} ?\linebreak
|
||||
\textbf{R:} Par défaut le listing des répertoires vides
|
||||
(sans \texttt{index.html}) est interdit. Pour changer ça, il faut
|
||||
\texttt{\# lighttpd-enable-mod dir-listing} et
|
||||
\texttt{\# service lighttpd force-reload}, voilà.
|
||||
|
||||
|
||||
% ==============================================================
|
||||
|
||||
\section{Custom made}
|
||||
|
||||
|
||||
\begin{verbatim}
|
||||
tth@ramen:~/Houba/Fractales90$ apt show libmicrohttpd12
|
||||
Package: libmicrohttpd12
|
||||
|
Loading…
Reference in New Issue
Block a user