From 0818f87582544b7e32e594ef1a457a61ce748565 Mon Sep 17 00:00:00 2001 From: tTh Date: Mon, 11 Mar 2024 02:20:47 +0100 Subject: [PATCH] dernier commit avant le Gers --- chap/Fortran.tex | 24 +++++++++++++++++++++--- chap/graphisme.tex | 21 ++++++++++++++++++++- chap/webserver.tex | 22 ++++++++++++++++++---- code/Basic/README.md | 12 ++++++++++++ code/C/hacks.txt | 8 ++++++++ code/C/slowprint.c | 8 +++++--- code/fortran/dessiner.f90 | 16 ++++++++-------- code/misctools/README.md | 2 +- code/misctools/nonascii.c | 9 ++++++--- 9 files changed, 99 insertions(+), 23 deletions(-) create mode 100644 code/C/hacks.txt diff --git a/chap/Fortran.tex b/chap/Fortran.tex index befe45c..db17dd0 100644 --- a/chap/Fortran.tex +++ b/chap/Fortran.tex @@ -141,7 +141,7 @@ pixel%r = 0x55 Nous verrons plus loin l'importance de cette notion. -% -------------------------------------------------------- +% ======================================== \section{Fichiers} @@ -157,18 +157,36 @@ Il semble qu'il y ait deux concepts orthogonaux : \textit{Open, Read, Write, Inquire, toussa\dots} +% -------------------------------------------------------- + +\subsection{Ouvrir un fichier} + +C'est la première étape : attacher un fichier à un numéro d'unité. +Il y a une foultitude d'options, nous allons commencer par les +plus courantes. + +% -------------------------------------------------------- + + \subsection{Sequentiel texte} XXX\index{XXX} Pour faire simple, on accède à chaque unité de donnée l'une après l'autre, -comme quand on déroule une bande 6250bpi. +comme quand on déroule une bande 6250bpi. Ces unités peuvent être +(restons simple pour commencer) des lignes entières de texte. +Dans l'ancien temps\footnote{F77 rulz the world}, le format de ces +lignes devait être précisement structure, avec des largeurs de champs +fixés. + +% -------------------------------------------------------- \subsection{Indexé} \index{index} XXX\index{XXX} -C'est pas pareil. +C'est pas pareil : d'abord les enregistrements sont tous de la même +taille % -------------------------------------------------------- diff --git a/chap/graphisme.tex b/chap/graphisme.tex index 6f274cf..7bcf725 100644 --- a/chap/graphisme.tex +++ b/chap/graphisme.tex @@ -169,6 +169,8 @@ nous aurons toujours la même séquence en sortie. \subsection{Trucs à voir} +Des bouts de code piochés à droite et à gauche... + \begin{verbatim} #declare VIRGINIA = transform { @@ -177,12 +179,29 @@ matrix < 1, 1, 0, 0, 0, 1, 0, 0, 0 > } - box { 0, 1 transform {VIRGINIA} } \end{verbatim} +Pour faire un vaisseau spatial (Thomas de Groot dans povray.binaries.images) + +\begin{verbatim} +// the color bleeding is done by emission color: +material { + texture { + pigment {rgb <0.50, 1.00, 1.00>} + finish { + specular 0 roughness 0.001 + emission rgb <0.50, 1.00, 1.00>*5 + diffuse 1 + reflection {0} conserve_energy + } + } +} +\end{verbatim} + + % ================================================ \section{Avec Fortran} diff --git a/chap/webserver.tex b/chap/webserver.tex index ad29172..f45d10a 100644 --- a/chap/webserver.tex +++ b/chap/webserver.tex @@ -4,20 +4,26 @@ \chapter{Web servers} % ============================================================== -\section{Apache, Nginx} \index{Apache} ìndex{nginx} +\section{Apache, Nginx} \index{Apache} \index{nginx} 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. +chose d'encore plus bas-niveau qui demandera quelques connaissances en C. % ============================================================== \section{Lighttpd} \index{Lighttpd} -Un outsider ? +Un outsider ? Non, pas vraiment. Probablement plus léger que +les classiques, il a quelques fonctions assez interessantes. +Je vais faire un rapide survol des \textsl{tricks} à connaitre +pour une mise en œuvre de bon aloi. Et pour ça, je vais +d'abord me concentrer sur un cas précis~: +l'exécution de scripts CGI\index{CGI} écrits en Perl\index{Perl} +depuis le répertoire \texttt{\$HOME/public\_html/} des yusers. \begin{verbatim} root@ramen:~# lighty-enable-mod userdir @@ -28,7 +34,7 @@ root@ramen:~# \end{verbatim} \textbf{Q:} Sur une installation fraiche, la racine du site est -en erreur 403\index{403} ?\linebreak +en erreur 403\index{403} ? \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 @@ -37,6 +43,14 @@ en erreur 403\index{403} ?\linebreak Question : comment forcer le \texttt{Content-Type} pour un type particulier de fichier ? Par exemple text/plain pour les fichiers \texttt{.POV} ? +% ------------------------------------------------ + +\subsection{Filtrages} + +In case you need to do this with lighttpd (you can have multiple of +these for each useragent you want to match, or you can make one big regex +if you want): +\texttt{\$HTTP["useragent"] =~ "Amazonbot" \{ url.access-deny = ("") \}} % ============================================================== diff --git a/code/Basic/README.md b/code/Basic/README.md index e69de29..0b65b8d 100644 --- a/code/Basic/README.md +++ b/code/Basic/README.md @@ -0,0 +1,12 @@ +# Le BASIC + +Un des premiers langages abordable par tout le monde, +crée il y a très longtemps à Dartmouth. Il a eu ensuite +une longue et fructueuse carrière, surtout à l'époque +des ordinateurs personnels de la regrettée famille des +8 bits : Apple ][, Amstrad CPC6128, la série des MSX, +l'Oric... + + + + diff --git a/code/C/hacks.txt b/code/C/hacks.txt new file mode 100644 index 0000000..d7345b9 --- /dev/null +++ b/code/C/hacks.txt @@ -0,0 +1,8 @@ +inline int +usleep(useconds_t microseconds) +{ + struct timespec ts; + ts.tv_sec = microseconds / (useconds_t)1000000; + ts.tv_nsec = (long)(microseconds % (useconds_t)1000000) * 1000L; + return nanosleep(&ts, NULL); +} diff --git a/code/C/slowprint.c b/code/C/slowprint.c index 0201b37..33d4f11 100644 --- a/code/C/slowprint.c +++ b/code/C/slowprint.c @@ -7,18 +7,20 @@ int main(int argc, char *argv[]) { int c, sec, nano; struct timespec ts; -int slowdown = 300; /* set a default value */ +int slowdown = 300; /* set a default value */ float delay; /* * get the desired slowdown from command-line */ if (2 == argc) { if (1 != sscanf(argv[1], "%d", &slowdown)) { - fprintf(stderr, "%s: bad arg, sorry\n", argv[0]); + fprintf(stderr, "%s: bad arg, sorry\n", + argv[0]); exit(1); } if (slowdown < 1) { - fprintf(stderr, "%d is invalid\n", slowdown); + fprintf(stderr, "%d is invalid\n", + slowdown); exit(1); } } diff --git a/code/fortran/dessiner.f90 b/code/fortran/dessiner.f90 index b9032cb..90f2074 100644 --- a/code/fortran/dessiner.f90 +++ b/code/fortran/dessiner.f90 @@ -6,10 +6,10 @@ program dessiner character(len=80) :: version call plgver(version) - write (*,'(a,a)') 'plPlot version: ', trim(version) + write (*,'(" ",a,a)') 'plPlot version: ', trim(version) - ! call dessin_X11 (0.00, 1.51, 11) - call dessin_dans_un_fichier () + call dessin_X11 (0.12, 1.51, 11) + !! call dessin_dans_un_fichier () contains ! ----------------------------- !------------------------------------------------------ @@ -33,13 +33,13 @@ subroutine dessin_X11 (sha, shb, color) call plsdev('xwin') call plinit () - call plenv (-2.1, 2.1, -2.1, 2.1, 1, 2) + call plenv (-2.5, 2.5, -2.5, 2.5, 1, 2) - amp = 2.16 + amp = 2.06 do i = 1, lg - k = real(i)/real(lg) * 6.2832 * 4.0 - x(i) = amp * sin((k+sha)*5) - y(i) = amp * cos((k+shb)*3) + k = real(i)/real(lg) * 6.2832 * 2.0 + x(i) = amp * sin((k+sha)) + y(i) = amp * cos((k+shb)) enddo ! print *, k, x(i), y(i) diff --git a/code/misctools/README.md b/code/misctools/README.md index 2c03962..d8b2b79 100644 --- a/code/misctools/README.md +++ b/code/misctools/README.md @@ -1,7 +1,7 @@ # Outils divers -OK, let's go for a few nice tools. +*OK, let's go for a few nice tools.* ## non ascii ? diff --git a/code/misctools/nonascii.c b/code/misctools/nonascii.c index 2c47a83..096da4d 100644 --- a/code/misctools/nonascii.c +++ b/code/misctools/nonascii.c @@ -10,26 +10,29 @@ /* ------------------------------------------------------------------ */ int check_a_file_by_fp(FILE *fp, char *filename) { -int input, linenum, count; +int input, linenum, colnum, count; int flagline; linenum = 1; /* humans start line count at 1 */ +colnum = 1; count = 0; while (EOF != (input=getc(stdin))) { if ('\n' == input) { linenum++; flagline = 0; + colnum = 1; } if ((input < 0) || (input>127)) { if (!flagline) { - fprintf(stderr, "%s: non ascii 0x%x line %d\n", + fprintf(stderr, "%s: nonascii 0x%x line %d, col %d\n", filename, - input, linenum); + input, linenum, colum); flagline = 1; } count++; } + colnum++; } return count; }