more bla
This commit is contained in:
parent
da080e47e3
commit
2a24703136
@ -1,13 +1,14 @@
|
|||||||
% ----------------------------------------------------------
|
% ----------------------------------------------------------
|
||||||
\chapter{Basic}
|
\chapter{Basic}
|
||||||
\index{dosbox}\label{chap:Basic}
|
\label{chap:Basic}
|
||||||
|
\index{dosbox}\index{Basic}
|
||||||
|
|
||||||
% ====================================================================
|
% ====================================================================
|
||||||
|
|
||||||
% https://www.theregister.com/2023/03/28/nostalgic_for_basic/
|
% https://www.theregister.com/2023/03/28/nostalgic_for_basic/
|
||||||
|
|
||||||
% ====================================================================
|
% ====================================================================
|
||||||
\section{BASIC} \index{BASIC}
|
% \section{BASIC} \index{BASIC}
|
||||||
|
|
||||||
C'est probablement un des premiers langages interactifs utilisable par le
|
C'est probablement un des premiers langages interactifs utilisable par le
|
||||||
peuple et les gens. Déja, à ce titre, dénonce que ce langage
|
peuple et les gens. Déja, à ce titre, dénonce que ce langage
|
||||||
@ -75,6 +76,20 @@ dans un livre imprimé\dots
|
|||||||
|
|
||||||
http://www.sdlbasic.altervista.org/main/
|
http://www.sdlbasic.altervista.org/main/
|
||||||
|
|
||||||
|
% ====================================================================
|
||||||
|
\section{Brandy}
|
||||||
|
|
||||||
|
\index{BBC} \index{Acorn}
|
||||||
|
|
||||||
|
https://www.bbcbasic.co.uk/index.html
|
||||||
|
|
||||||
|
\begin{quote}
|
||||||
|
Brandy is an interpreter for BBC BASIC V, the dialect of BASIC that
|
||||||
|
Acorn Computers supplied with their ranges of desktop computers that
|
||||||
|
use the ARM processor such as the Archimedes and Risc PC, and is still
|
||||||
|
in use on these and compatibles.
|
||||||
|
\end{quote}
|
||||||
|
|
||||||
% ====================================================================
|
% ====================================================================
|
||||||
|
|
||||||
\section{FreeBASIC} \index{FreeBASIC}
|
\section{FreeBASIC} \index{FreeBASIC}
|
||||||
|
@ -102,9 +102,11 @@ Comment exclure par \textsl{.gitignore} tous les fichiers \texttt{foo.html} ?
|
|||||||
|
|
||||||
% ====================================================================
|
% ====================================================================
|
||||||
|
|
||||||
\section{Krkrkr...}
|
\section{Trucs}
|
||||||
|
|
||||||
Tout cela semble bien compliqué.
|
|
||||||
|
git archive --format tgz --prefix=my-project/
|
||||||
|
--output /tmp/my-project.tar.gz HEAD
|
||||||
|
|
||||||
% ====================================================================
|
% ====================================================================
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
\index{backup}
|
\index{backup}
|
||||||
|
|
||||||
|
% https://blog.flozz.fr/2023/10/15/borgbackup-sauvegarde-sur-une-machine-distante-via-ssh/
|
||||||
|
|
||||||
|
|
||||||
% ===============================================================
|
% ===============================================================
|
||||||
\section{Geb...}
|
\section{Geb...}
|
||||||
|
13
chap/bdd.tex
13
chap/bdd.tex
@ -11,6 +11,8 @@
|
|||||||
% ----------------------------------------------------------------
|
% ----------------------------------------------------------------
|
||||||
\subsection{CLI} \index{cli}
|
\subsection{CLI} \index{cli}
|
||||||
|
|
||||||
|
Commandes internes:
|
||||||
|
|
||||||
|
|
||||||
% ----------------------------------------------------------------
|
% ----------------------------------------------------------------
|
||||||
\subsection{Libreoffice} \index{Libreoffice}
|
\subsection{Libreoffice} \index{Libreoffice}
|
||||||
@ -21,8 +23,6 @@
|
|||||||
|
|
||||||
\section{GDBM} \index{GDBM}
|
\section{GDBM} \index{GDBM}
|
||||||
|
|
||||||
Alors là, carrément du vieux truc...
|
|
||||||
|
|
||||||
\begin{quote}
|
\begin{quote}
|
||||||
GDBM - The GNU database manager. Includes dbm and ndbm compatibility.
|
GDBM - The GNU database manager. Includes dbm and ndbm compatibility.
|
||||||
\end{quote}
|
\end{quote}
|
||||||
@ -41,11 +41,9 @@ de bijection relationnelle ?}.
|
|||||||
|
|
||||||
use strict;
|
use strict;
|
||||||
use GDBM_File;
|
use GDBM_File;
|
||||||
|
|
||||||
my $nomdb = "exemple.gdbm";
|
my $nomdb = "exemple.gdbm";
|
||||||
my (%DB, @champs);
|
my (%DB, @champs);
|
||||||
my ($user, $gecos);
|
my ($user, $gecos);
|
||||||
|
|
||||||
open(SOURCE, "< /etc/passwd") or die "source $!";
|
open(SOURCE, "< /etc/passwd") or die "source $!";
|
||||||
tie(%DB, "GDBM_File", $nomdb, GDBM_WRCREAT, 0666) or die "gdbm $!";
|
tie(%DB, "GDBM_File", $nomdb, GDBM_WRCREAT, 0666) or die "gdbm $!";
|
||||||
|
|
||||||
@ -61,6 +59,13 @@ close SOURCE;
|
|||||||
0;
|
0;
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
Vous remarquerez que pour cet exemple, nous avons clef et valeur qui
|
||||||
|
sont du texte. Alors que DBM est prévu pour stocker des blocs de
|
||||||
|
binaire. Pour faciliter la récupération de ces chaines de caractères
|
||||||
|
par un hypothétique\footnote{Oui, je vais l'écrire bientôt.} programme
|
||||||
|
en C, le programme Perl rajoute un \texttt{'\textbackslash0'}
|
||||||
|
(fin de chaine) aux deux champs concernés.
|
||||||
|
|
||||||
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
\section{Postgresql}
|
\section{Postgresql}
|
||||||
|
@ -180,12 +180,22 @@ oh surprise, contient votre nom de login.
|
|||||||
|
|
||||||
Et justement, vous avez un programme sous la main que vous suspecter
|
Et justement, vous avez un programme sous la main que vous suspecter
|
||||||
d'avoir un problème relationnel avec cette variable.
|
d'avoir un problème relationnel avec cette variable.
|
||||||
Il nius faut donc remplacer le getenv de la libc par notre propre
|
Il nous faut donc remplacer le getenv de la libc par notre propre
|
||||||
version qui va écouter et exfiltrer l'utilisation de cette
|
version qui va écouter et exfiltrer l'utilisation de cette
|
||||||
fonction.
|
fonction.
|
||||||
|
|
||||||
\lstinputlisting[language=C]{code/debug/spy_getenv.c}
|
\lstinputlisting[language=C]{code/debug/spy_getenv.c}
|
||||||
|
|
||||||
|
Et à l'utilsation~:
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
tth@redlady:~$ LD_PRELOAD=~/Devel/TetaTricks/code/debug/spy_getenv date
|
||||||
|
--getenv--> TZ --> (nil)
|
||||||
|
--getenv--> TZ --> (nil)
|
||||||
|
Tue Oct 17 08:55:01 CEST 2023
|
||||||
|
tth@redlady:~$
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
Simple et efficace.
|
Simple et efficace.
|
||||||
|
|
||||||
% ==============================================================
|
% ==============================================================
|
||||||
|
@ -32,6 +32,7 @@ et reçu le petit nom
|
|||||||
de \textsc{gif89a}. Il y a toujours la limitation à 256 couleurs
|
de \textsc{gif89a}. Il y a toujours la limitation à 256 couleurs
|
||||||
et un seul niveau de transparence. Contraintes qui n'étaient pas si
|
et un seul niveau de transparence. Contraintes qui n'étaient pas si
|
||||||
génantes que ça à l'époque vu les terminaux visés.
|
génantes que ça à l'époque vu les terminaux visés.
|
||||||
|
Contraintes qu'un artiste numérique peut comprendre et accepter.
|
||||||
|
|
||||||
% ==================================================================
|
% ==================================================================
|
||||||
|
|
||||||
@ -49,7 +50,7 @@ Le \textsl{delay} est exprimé en millisecondes. On peut aussi
|
|||||||
rajouter l'option \texttt{-loop nnn}\footnote{aka: add Netscape loop
|
rajouter l'option \texttt{-loop nnn}\footnote{aka: add Netscape loop
|
||||||
extension to your GIF animation} avec nnn qui est le nombre de
|
extension to your GIF animation} avec nnn qui est le nombre de
|
||||||
boucle que doit faire l'animation. La valeur 0 demandant une
|
boucle que doit faire l'animation. La valeur 0 demandant une
|
||||||
boucle infinie. Deux fois\index{Vous connaissez Chuck Norris ?}.
|
boucle infinie. Deux fois\footnote{Vous connaissez Chuck Norris ?}.
|
||||||
|
|
||||||
Et ensuite, vouv pouvez voir votre logo en flamme avec la
|
Et ensuite, vouv pouvez voir votre logo en flamme avec la
|
||||||
commande \texttt{animate foo.gif} sur votre super écran
|
commande \texttt{animate foo.gif} sur votre super écran
|
||||||
|
@ -36,7 +36,7 @@ cryptiques pour moi. Donc, on y arrive.
|
|||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Ceci dit, une lecture attentive du code source\footnote{UTSL} permettra
|
Ceci dit, une lecture attentive du code source\footnote{UTSL!} permettra
|
||||||
de contourner ces petits désagréments, et de rédiger quelques exemples
|
de contourner ces petits désagréments, et de rédiger quelques exemples
|
||||||
d'utilisation amusants.
|
d'utilisation amusants.
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ d'utilisation amusants.
|
|||||||
|
|
||||||
\textbf{Persistence Of Vision} est un logiciel de raytracing qui
|
\textbf{Persistence Of Vision} est un logiciel de raytracing qui
|
||||||
existe depuis plus de trente ans. C'est un lointain descendant
|
existe depuis plus de trente ans. C'est un lointain descendant
|
||||||
de DKBtrace.
|
de DKBtrace. Mais le raytracing, c'est quoi ?
|
||||||
|
|
||||||
\subsection{Caméra}
|
\subsection{Caméra}
|
||||||
|
|
||||||
@ -72,8 +72,8 @@ lors du calcul de la séquence~:
|
|||||||
#fclose CL
|
#fclose CL
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Et la seconde, l'exploitation, ou plutôt la visualisation
|
Et la seconde étape, l'exploitation, ou plutôt la visualisation
|
||||||
des données~:
|
de ces données avec l'indémodable gnuplot\index{gnuplot}~:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
@ -137,7 +137,7 @@ initialiser un générateur~:
|
|||||||
|
|
||||||
\texttt{\#declare RND = seed(13.37);}
|
\texttt{\#declare RND = seed(13.37);}
|
||||||
|
|
||||||
Vous noterez au passage le fort degré de ce délicieux Corbière que je
|
Vous noterez au passage le fort degré alcolique de ce délicieux Corbière que je
|
||||||
déguste en ce moment même.
|
déguste en ce moment même.
|
||||||
Ensuite, pour obtenir le résultat du tirage, on utilise le \textsl{handler}
|
Ensuite, pour obtenir le résultat du tirage, on utilise le \textsl{handler}
|
||||||
que l'on vient d'obtenir~:
|
que l'on vient d'obtenir~:
|
||||||
@ -187,7 +187,7 @@ transform {VIRGINIA}
|
|||||||
|
|
||||||
\section{Avec Fortran}
|
\section{Avec Fortran}
|
||||||
|
|
||||||
plplot
|
plplot\index{plplot} est la piste à explorer.
|
||||||
|
|
||||||
|
|
||||||
% ------------------------------------------------
|
% ------------------------------------------------
|
||||||
|
@ -96,6 +96,8 @@ est la limite\footnote{Comme à peu près tout dans la vie.}
|
|||||||
|
|
||||||
périphérique \texttt{/dev/parport}
|
périphérique \texttt{/dev/parport}
|
||||||
|
|
||||||
|
Question: comment faire du \textsl{bitbanging} ?
|
||||||
|
|
||||||
% -----------------------------------------------------------
|
% -----------------------------------------------------------
|
||||||
|
|
||||||
\section{Disques durs}
|
\section{Disques durs}
|
||||||
@ -167,6 +169,12 @@ filesystems}\footnote{You can tune a fs, but you can't tuna fish}.
|
|||||||
|
|
||||||
% -----------------------------------------------------------
|
% -----------------------------------------------------------
|
||||||
|
|
||||||
|
\section{Sensors} \index{sensors}
|
||||||
|
|
||||||
|
L'outil pour connaitre la température de votre CPU surmené.
|
||||||
|
|
||||||
|
% -----------------------------------------------------------
|
||||||
|
|
||||||
\section{Interface réseau}\index{NIC}
|
\section{Interface réseau}\index{NIC}
|
||||||
|
|
||||||
On a parfois besoin de savoir dans quel état est une interface
|
On a parfois besoin de savoir dans quel état est une interface
|
||||||
|
@ -35,7 +35,8 @@ and dlclose().
|
|||||||
\end{quote}
|
\end{quote}
|
||||||
|
|
||||||
Traduit en clair, la fonction \texttt{dlopen} permet de charger
|
Traduit en clair, la fonction \texttt{dlopen} permet de charger
|
||||||
manuellement un \texttt{.so} en mémoire centrale, au lieu de
|
manuellement une bibliothèque partagée (un \texttt{.so})
|
||||||
|
en mémoire centrale, au lieu de
|
||||||
laisser faire le loader (ld.so) automatiquement au lancement
|
laisser faire le loader (ld.so) automatiquement au lancement
|
||||||
d'un binaire. la fonction \texttt{dlclose} va, elle, vidanger
|
d'un binaire. la fonction \texttt{dlclose} va, elle, vidanger
|
||||||
la zone mémoire dans laquelle est le plugin.
|
la zone mémoire dans laquelle est le plugin.
|
||||||
@ -62,7 +63,7 @@ principal (l'appelant).
|
|||||||
|
|
||||||
C'est ici que nous trouverons le code actif de l'exemple,
|
C'est ici que nous trouverons le code actif de l'exemple,
|
||||||
l'utilité de notre \textsl{usecase} reste à déterminer par nos
|
l'utilité de notre \textsl{usecase} reste à déterminer par nos
|
||||||
lecteurs, à titre d'exercice.
|
lecteurs, mais seulement à titre d'exercice.
|
||||||
|
|
||||||
\lstinputlisting[language=c]{code/plugiciel.c}
|
\lstinputlisting[language=c]{code/plugiciel.c}
|
||||||
|
|
||||||
@ -75,7 +76,9 @@ la cinquième va vous étonner.
|
|||||||
Voyons maintenant comment mettre ça en œuvre depuis le programme
|
Voyons maintenant comment mettre ça en œuvre depuis le programme
|
||||||
principal.
|
principal.
|
||||||
Nous supposerons que le binaire du plugin est dans le répertoire
|
Nous supposerons que le binaire du plugin est dans le répertoire
|
||||||
courant.
|
courant. Pour les autres cas, il faut jouer avec la variable
|
||||||
|
d'environnement \texttt{LD\_LIBRARY\_PATH} (cf man dlopen(3)) ou
|
||||||
|
le fichier \texttt{/etc/ld.so.cache} (cf man ldconfig(8)).
|
||||||
|
|
||||||
\lstinputlisting[language=c]{code/appelant.c}
|
\lstinputlisting[language=c]{code/appelant.c}
|
||||||
|
|
||||||
|
@ -50,6 +50,8 @@ et ensuite l'utilisation d'outils
|
|||||||
extérieurs\footnote{Grep, Sed, Awk, BwBasic...}
|
extérieurs\footnote{Grep, Sed, Awk, BwBasic...}
|
||||||
divers. C'est \textsl{très} efficace.
|
divers. C'est \textsl{très} efficace.
|
||||||
|
|
||||||
|
% --------------------------------------------------------------
|
||||||
|
|
||||||
\subsection{Le \textsc{shebang}} \index{shebang}
|
\subsection{Le \textsc{shebang}} \index{shebang}
|
||||||
|
|
||||||
Le shebang, c'est ce couple de caractères \texttt{\#!} qui apparait
|
Le shebang, c'est ce couple de caractères \texttt{\#!} qui apparait
|
||||||
@ -92,6 +94,20 @@ $
|
|||||||
|
|
||||||
% ==============================================================
|
% ==============================================================
|
||||||
|
|
||||||
|
\section{Structures de contrôle}
|
||||||
|
|
||||||
|
% --------------------------------------------------------------
|
||||||
|
|
||||||
|
\subsection {Les tests}
|
||||||
|
|
||||||
|
Deux éléments sont ils-égaux ?
|
||||||
|
|
||||||
|
% --------------------------------------------------------------
|
||||||
|
|
||||||
|
\subsection {Les boucles}
|
||||||
|
|
||||||
|
% ==============================================================
|
||||||
|
|
||||||
\section{Les fonctions}
|
\section{Les fonctions}
|
||||||
|
|
||||||
Une bonne manière de rendre votre code modulaire, et de réutiliser
|
Une bonne manière de rendre votre code modulaire, et de réutiliser
|
||||||
@ -111,13 +127,16 @@ Et comment les utiliser~:
|
|||||||
|
|
||||||
\section{Heredoc}
|
\section{Heredoc}
|
||||||
|
|
||||||
Un nom difficile à traduire, peut-être par « document en place » ?
|
Un nom bien difficile à traduire, peut-être par « document en place » ?
|
||||||
|
|
||||||
|
|
||||||
\lstinputlisting{code/shell/heredoc.sh}
|
\lstinputlisting{code/shell/heredoc.sh}
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
tth@redlady:~/Devel/TetaTricks$ code/shell/heredoc.sh
|
tth@redlady:~/Devel/TetaTricks$ code/shell/heredoc.sh
|
||||||
|
|
||||||
|
Here Doc
|
||||||
|
|
||||||
1 +--------------------------------------------------------------------+
|
1 +--------------------------------------------------------------------+
|
||||||
| +** *** + + + + |
|
| +** *** + + + + |
|
||||||
0.8 |-+.......**..........:.**.......:..........:.........sin(x).*******-|
|
0.8 |-+.......**..........:.**.......:..........:.........sin(x).*******-|
|
||||||
@ -130,13 +149,13 @@ tth@redlady:~/Devel/TetaTricks$ code/shell/heredoc.sh
|
|||||||
|* : : * : : : |
|
|* : : * : : : |
|
||||||
0 |-+........:..........:..........:**........:..........:..........:+-|
|
0 |-+........:..........:..........:**........:..........:..........:+-|
|
||||||
| : : : * : : : *|
|
| : : : * : : : *|
|
||||||
-0.2 |-+........:..........:..........:..**......:..........:..........:*-|
|
-0.2 |-+........:..........:..........:..**......:..........:..........:*-|
|
||||||
| : : : * : : * |
|
| : : : * : : * |
|
||||||
-0.4 |-+........:..........:..........:.....*....:..........:........**:+-|
|
-0.4 |-+........:..........:..........:.....*....:..........:........**:+-|
|
||||||
| : : : * : : * : |
|
| : : : * : : * : |
|
||||||
-0.6 |-+........:..........:..........:.......**.:..........:.....**...:+-|
|
-0.6 |-+........:..........:..........:.......**.:..........:.....**...:+-|
|
||||||
| : : : *: : ** : |
|
| : : : *: : ** : |
|
||||||
-0.8 |-+........:..........:..........:..........**.........:..**......:+-|
|
-0.8 |-+........:..........:..........:..........**.........:..**......:+-|
|
||||||
| + + + + *** +** + |
|
| + + + + *** +** + |
|
||||||
-1 +--------------------------------------------------------------------+
|
-1 +--------------------------------------------------------------------+
|
||||||
0 1 2 3 4 5 6
|
0 1 2 3 4 5 6
|
||||||
|
3
code/.gitignore
vendored
3
code/.gitignore
vendored
@ -19,4 +19,7 @@ plugiciel.so
|
|||||||
send-osc
|
send-osc
|
||||||
thread-demo
|
thread-demo
|
||||||
voirenv
|
voirenv
|
||||||
|
|
||||||
xform/yesyno
|
xform/yesyno
|
||||||
|
|
||||||
|
debug/spy_getenv
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
TITLE="Here Doc"
|
||||||
|
|
||||||
gnuplot << __EOC__
|
gnuplot << __EOC__
|
||||||
set term dumb
|
set term dumb
|
||||||
set grid
|
set grid
|
||||||
|
set title "$TITLE"
|
||||||
plot [x=0:pi*2] sin(x)
|
plot [x=0:pi*2] sin(x)
|
||||||
__EOC__
|
__EOC__
|
Loading…
Reference in New Issue
Block a user