dernier commit avant le Gers
This commit is contained in:
parent
c5b0e17bbb
commit
0818f87582
@ -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
|
||||
|
||||
% --------------------------------------------------------
|
||||
|
||||
|
@ -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}
|
||||
|
@ -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 = ("") \}}
|
||||
|
||||
% ==============================================================
|
||||
|
||||
|
@ -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...
|
||||
|
||||
|
||||
|
||||
|
8
code/C/hacks.txt
Normal file
8
code/C/hacks.txt
Normal file
@ -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);
|
||||
}
|
@ -14,11 +14,13 @@ float delay;
|
||||
*/
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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 ?
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user