import of olds chapters

This commit is contained in:
tth 2020-10-26 23:06:17 +01:00
parent 9a9d3108ba
commit d79a55fd2e
18 changed files with 600 additions and 18 deletions

87
chap/DNS.tex Normal file
View File

@ -0,0 +1,87 @@
\chapter{Domain Name Service}
\label{DNS}
\section{host}
\index{host}
C'est vraiment la commande de base pour tout ce qui touche à la
résolution de nom. Elle propose les premières options de base,
avec une syntaxe facile à retenir. Elle existe, sous des formes
légèrement déviantes, dans une grande partie des
OS\footnote{même dans le sale, c'est dire.} existants de nos jours.
\begin{verbatim}
tth@plop:~ $ host sigfood.dinorama.fr
sigfood.dinorama.fr has address 91.121.221.123
tth@plop:~ $ host -t mx dinorama.fr
dinorama.fr mail is handled by 20 mx1.smeuh.org.
tth@plop:~ $
\end{verbatim}
Ces deux exemples sont encourageants. Est-il possible d'aller
plus loin ?
% ------------------------------------------------------------
\section {nslookup}
\index{nslookup}
\begin{quote}
Nslookup is a program to query Internet domain name
servers. Nslookup has two modes: interactive and
non-interactive. Interactive mode allows the user to query
name servers for information about various hosts and domains
or to print a list of hosts in a domain. Non-interactive mode
is used to print just the name and requested information for
a host or domain. »
\end{quote}
% ------------------------------------------------------------
\section{dig}
\index{dig}
Dig (\textit{domain information groper}) est un outil d'interrogation
des serveurs DNS. Par défaut, il questionne les serveurs
listés dans \texttt{/etc/resolv.conf}.
Pour résoudre récursivement un nom de domaine à partir de la racine :
\$ dig +trace <nom.de.domaine>
Pour le reverse d'une adresse IP :
\$ dig +trace -x <adresse.ip>
% ------------------------------------------------------------
\section{delv}
\index{delv}
Nouvel outil en rapport avec DNSSEC\index{DNSSEC}.
% XXX
\index{XXX}
% http://www.bortzmeyer.org/delv.html
% XXX
% ------------------------------------------------------------
\section{checkresolv}
Outil très basique conçu et bricolé par Tonton~Th au siècle
dernier lors d'un séjour à Frontignan-plage.
% ------------------------------------------------------------
\section{dnsmasq}
\index{dnsmasq}
\begin{quote}
dnsmasq is a lightweight DNS, TFTP and DHCP server. It is intended to
provide coupled DNS and DHCP service to a LAN.
\end{quote}

View File

@ -6,8 +6,10 @@ aux quatre coins des interwebs. Je ne vais donc pas m'étendre
plus que ça, pour passer tout de suite à un cas particulier plus que ça, pour passer tout de suite à un cas particulier
\footnote{que je n'arrive pas encore à vraiment maitriser}. \footnote{que je n'arrive pas encore à vraiment maitriser}.
% --------------------------------------------------------------------
\section{Démarrage} \section{Démarrage}
\subsection{En local}
\begin{verbatim} \begin{verbatim}
$ mkdir Foo $ mkdir Foo
$ cd Foo/ $ cd Foo/
@ -17,7 +19,7 @@ $ git add README.txt
\end{verbatim} \end{verbatim}
\section{Setup du serveur} \subsection{Setup du serveur}
Sur le serveur distant, dans un endroit accessible par Sur le serveur distant, dans un endroit accessible par
le protocole \texttt{HTTP}, il faut créer le dépot. le protocole \texttt{HTTP}, il faut créer le dépot.
@ -33,16 +35,53 @@ Et ensuite :
$ git update-server-info $ git update-server-info
\end{verbatim} \end{verbatim}
\section{Pousser le code} % --------------------------------------------------------------------
\subsection{Pousser le code}
Notre commit\index{commit} local semble pertinent, Notre commit\index{commit} local semble pertinent,
il est temps de le faire connaitre au monde. il est temps de le faire connaitre au monde.
\begin{verbatim} \begin{verbatim}
$ git push yuser@serveur:/chemin/vers/le/depot/Foo $ git push yuser@serveur:/chemin/vers/le/depot/Foo
\end{verbatim} \end{verbatim}
% --------------------------------------------------------------------
\section{Configuration dynamique}
\texttt{http://sandrotosi.blogspot.com/2020/10/multiple-git-configurations-depending.html}
One way to change the user.email git config value is to git config --local
in every repo, but that's tedious, error-prone and
doesn't scale very well with many repositories
(and the chances to forget to set the right one on a new repo are ~100\%).
The solution is to use the git-config ability to include
extra configuration files, based on the repo path, by using includeIf:
\vspace{1em}
Content of \texttt{\$HOME/.gitconfig} :
\begin{verbatim}
[user]
name = Sandro Tosi
email = <personal.address>@gmail.com
[includeIf "gitdir:~/deb/"]
path = ~/.gitconfig-deb
\end{verbatim}
Every time the git path is in ~/deb/ (which is where i have all Debian repos)
the file ~/.gitconfig-deb will be included; its content:
\begin{verbatim}
[user]
email = morph@debian.org
\end{verbatim}
That results in my personal address being used on all repos not part of Debian, where i use my Debian email address. This approach can be extended to every other git configuration values.
% --------------------------------------------------------------------
\section{Krkrkr...} \section{Krkrkr...}
Tout cela semble bien compliqué. Tout cela semble bien compliqué.

39
chap/IRC.tex Normal file
View File

@ -0,0 +1,39 @@
% ==============================================================
\chapter{Internet Relay Chat}
\index{IRC}
% ==============================================================
\section{hybrid}
\index{hybrid}
C'est le serveur utilisé par Smeuh. Une vrai galère à
configurer.
On se retrouve vite dans des situations critiques, du genre
un \#canal où il n'y a plus de @op, et donc, on ne peut
plus changer le topix, et là, \textbf{ça craint vraiment} !
% ==============================================================
\section{irssi}
\index{irssi}
\begin{quote}
Irssi is a modular Internet Relay Chat client. It is highly extensible
and very secure. Being a fullscreen, termcap\index{termcap} based
client with many features, Irssi is easily extensible through scripts
and modules.
\end{quote}
\begin{verbatim}
/recode add #gcu ISO-8859-15
pinpin0: çhârsèt ?
\end{verbatim}
\begin{verbatim}
/SET autoclose_windows OFF
\end{verbatim}
% ==============================================================

View File

@ -1,5 +1,5 @@
\chapter{Musical Instrument Digital Interface} \chapter{Musical Instrument Digital Interface}
\label{MIDI} \index{MIDI} \label{chap:midi} \index{MIDI}
Dans un premier temps, je vais me concentrer sur les Dans un premier temps, je vais me concentrer sur les
services \textsc{midi} offerts par la couche ALSA d'un services \textsc{midi} offerts par la couche ALSA d'un
@ -27,8 +27,6 @@ tth@plop:~/Muzak/Samples$ aseqdump -l
14:0 Midi Through Midi Through Port-0 14:0 Midi Through Midi Through Port-0
\end{verbatim} \end{verbatim}
\subsection{aconnect} \subsection{aconnect}
Maintenant que nous savons ce qui rentre dans notre machine, Maintenant que nous savons ce qui rentre dans notre machine,
@ -139,3 +137,9 @@ MIDI::Track (3pm) - functions and methods for MIDI tracks
% --------------------------------------------------------- % ---------------------------------------------------------
\section{Et après ?}
OSC\index{OSC} (page \pageref{chap:osc}) semble une possibilité
pour aller au-delà.
% ---------------------------------------------------------

37
chap/MINITEL.tex Normal file
View File

@ -0,0 +1,37 @@
% ===============================================================
\chapter{MINITEL}
\label{MINITEL}
Une très belle réussite technologique française, dont la fin de
vie est annoncée pour 2014.
Certains geeks pensent qu'il présente encore un grand intérêt,
à la fois historique et ludique
Le Tetalab\footnote{Un hackerspace à Toulouse}, par
exemple, les interface avec des Arduino\index{Arduino} afin
de diffuser des images pornographiques ou de contrôler des
appareils étranges.
% ===============================================================
\section{Xtel}
\index{Xtel}
Xtel est un émulateur de \textsc{minitel} pour les systèmes
Unix/X11, écrit par Pierre Ficheux vers 1997.
Il est architecturé selon le modèle client/serveur, comme
l'explique son \textsc{readme} :
\begin{quote}
Il est utilisable en réseau, c'est a dire qu'une des machines du
réseau commande les MODEMS et dialogue avec les services Télétel,
les utilisateurs de XTEL dialoguent avec cette machine "serveur"
par socket internet (utilisation d'un service TCP et du super-démon
"inetd").
\end{quote}
% ===============================================================

45
chap/OSC.tex Normal file
View File

@ -0,0 +1,45 @@
\chapter{Open Sound Control}
\index{OSC} \label{chap:osc}
Wikipedia :
\textsl{OSC est un format de transmission de données entre ordinateurs,
synthétiseurs, robots ou tout autre matériel ou logiciel compatible,
conçu pour le contrôle en temps réel. Il utilise le réseau au travers
des protocoles UDP\index{UDP} ou TCP\index{OSC} et apporte des
améliorations entermes de rapidité et flexibilité par rapport
à l'ancienne norme MIDI\index{MIDI}\dots}
Actuellement, j'utilise (pour le C) \texttt{liblo}\index{liblo}
qui reste simple
à utiliser tout en permettant de descendre à un bas niveau.
Cette bibliothèque est livrée avec deux outils que nous
allos voir maintenant.
\section{oscdump \& oscsend}
\index{oscdump}\index{oscsend}
Ecouter :
\begin{verbatim}
tth@debian:~$ oscdump 1664
/tmp/kmem is 61 "meg, efface !"
^C
tth@debian:~$
\end{verbatim}
Envoyer :
\begin{verbatim}
tth@debian:~$ oscsend localhost 1664 /tmp/kmem is 61 'meg, efface !'
tth@debian:~$
\end{verbatim}
\section{Exemple de code}
TODO\index{TODO}
\section{Autres logiciels}
Beaucoup d'autres logiciels peuvent être controlés par OSC.

28
chap/SCSI.tex Normal file
View File

@ -0,0 +1,28 @@
%
% nouveau 20 juillet 2014 ave StExupery
%
\chapter{SCSI}
\label{SCSI}
\index{SCSI}
Acronyme de \textit{Small Computer System Interface}.
Ce bus SCSI a été initialement créé par la société Shugart en 1979,
et a subit par la suite de nombreuses évolutions.
\section{lecteurs de DAT}
\index{DAT}
DAT = Digital Audio Tape.
Pour contrôler ce genre de matérien, on utilisera la commande
\texttt{mt(1)} : control magnetic tape drive operation.
\section{les scanners}
\section{le bas niveau}

45
chap/Usenet.tex Normal file
View File

@ -0,0 +1,45 @@
\chapter{Usenet}
\index{Usenet}
Je suis un vieux dino du grand \textsc{Usenet} mondial.
Mes premiers posts
doivent dater de quelques mois après l'arrivée de
\textsc{Compu\$erve} en France. C'est dire\dots
Et quand il m'arrive de parler de cet ancêtre des réseaux sociaux,
la question : « Usenet, c'est quoi ? » revient
parfois\footnote{Mais pas assez souvent, à mon gout\dots}.
On va essayer d'y répondre rapidement, avant de passer
aux outils qui le font fonctionner.
\textsl{Usenet was born approximately three decades ago, in 1979.
It all began as a small communication network between a few universities
in the United States used for the purposes of trading information,
sharing news, discussing new and exciting developments,
and collaborating on research results and projects.}
\section{slrn}
\index{slrn}
\label{slrn}
\begin{quote}
slrn is an easy to use but powerful NNTP / spool based newsreader.
It is highly customizable, supports scoring, free key bindings and can
be extended using the embedded S-Lang interpreter.
\end{quote}
\begin{verbatim}
printf 'set wrap_flags 7\nset wrap_width 72\n' >> .slrnrc
\end{verbatim}
\section{leafnode}
\index{leafnode}
Leafnode est l'outil essentiel si on désire troller au fond du jardin,
en dehors du rayon d'action de sa box.\index{troll}
\section{INN}
\index{INN}
Voilà, c'est le moment de parler de l'engin fondamental de ce réseau
de discussions. INN.

55
chap/debug.tex Normal file
View File

@ -0,0 +1,55 @@
\chapter{Debug}\index{Debug}
\label{chap:debug}
Quand plus rien ne marche, il existe encore un espoir...
\section{strace}\index{strace}
\section{LD\_PRELOAD}\index{LD\_PRELOAD}
\begin{lstlisting}[language=C]
/*
spy_getenv.so: spy_getenv.c Makefile
gcc -Wall -shared -fPIC $< -ldl -o $@
*/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#define __USE_GNU
#include <dlfcn.h>
typedef char * (*original_getenv)(const char *envname);
char *getenv(char *envname)
{
static char *arrow = "--getenv--> ";
static char *wtf = " --> WTF ?";
char *content;
original_getenv orig_getenv;
orig_getenv = (original_getenv)dlsym(RTLD_NEXT, "getenv");
write(STDERR_FILENO, arrow, strlen(arrow));
write(STDERR_FILENO, envname, strlen(envname));
content = orig_getenv(envname);
if (NULL != content) {
write(STDERR_FILENO, "=", 1);
write(STDERR_FILENO, content, strlen(content));
}
else {
write(STDERR_FILENO, wtf, strlen(wtf));
}
write(STDERR_FILENO, "\n", 1);
return content;
}
\end{lstlisting}

18
chap/dosbox.tex Normal file
View File

@ -0,0 +1,18 @@
% ----------------------------------------------------------
\chapter{Dosbox}
\index{dosbox}
Dosbox est un émulateur de machine MS-DOS avec le son et
le graphique. Il ne nécessite pas de système d'exploitation.
% ----------------------------------------------------------
\section{Popcorn}
\index{Popcorn}
\textbf{Popcorn} est un jeu de cassebrique écrit dans les années
80 pour tirer la quintessence des cartes graphiques CGA\index{CGA}.
% ----------------------------------------------------------
% ----------------------------------------------------------

47
chap/editeurs.tex Normal file
View File

@ -0,0 +1,47 @@
\chapter{Éditeurs}
\label{chap:editeurs}
\index{Vim}\index{gedit}
% -----------------------------------------------------------
\section{gedit}
Gedit\footnote{dans sa version 2.30.3} est un éditeur de texte
simple basé
sur Gtk\index{Gtk} pour le bureau
Gnome\index{Gnome}\footnote{On ne rigole pas dans le fond !}.
Entre autres fonctions basique, il fait la coloration
syntaxique\footnote{sauf pour le Postscript\index{postscript}, hélas.}.
Par contre,
contrairement\footnote{Si quelqu'un veut me contredire, il sait
comment faire},
il est très facilement scriptable : il suffit d'écrire
quelques lignes de shell\index{shell}. Vous voulez numéroter
les lignes d'un paragraphe ? Il suffit d'un tout petit morceau
de Awk\index{awk} que voici :
\begin{lstlisting}[language=awk]
#!/usr/bin/awk -f
{ printf "%5d\t%s\n", NR, $0; }
\end{lstlisting}
Ok ? Pigé le principe ?
Il ne reste plus qu'à intégrer ce bout de code dans les outils
personnalisables de Gedit.
% -----------------------------------------------------------
\section{emacs}
\index{emacs}
\textbf{Escape Meta Alt Control Del}
% -----------------------------------------------------------
\section{ed}
\index{ed}
\textsc{The only true one.} C'est de lui que tout est parti.
% -----------------------------------------------------------

48
chap/musique.tex Normal file
View File

@ -0,0 +1,48 @@
\chapter{Joueurs de musique}
\label{chap:musique}
Vous pouvez aussi aller voir la page \pageref{Son},
qui traite d'autres
problématiques liées au son.
%------------------------------------------------------------------
\section{mocp}
\index{mocp}
Le nom « Mocp » est l'abréviation de \textsc{Music on-consol Player}.
Personnellement, j'aime beaucoup son look, et son ergonomie parfois
déroutante.
% expliquer comment creer son theme personnel
%------------------------------------------------------------------
\section{mpd}
\index{mpd}
Le nom « Mpd » est l'abréviation de \textsc{Music Player Daemon}.
Il peut théoriquement\footnote{Théoriquement, parce que
je n'ai pas encore essayé :)}
\textit{feeder} un serveur Icecast\index{icecast}.
%------------------------------------------------------------------
\section{Audacious}
\index{xmms}
%------------------------------------------------------------------
\section{Effets sonores}
Ladspa ?
\index{ladspa}
%------------------------------------------------------------------
\section{Les playlists}
\index{pls}\index{m3u}
Une \textit{playlist} est (en général) un fichier contenant une
liste de musiques à écouter.
%------------------------------------------------------------------

17
chap/puredata.tex Normal file
View File

@ -0,0 +1,17 @@
\chapter{Puredata}
\label{Puredata}\index{Puredata}
\section{Premiers pas}
Hop, on y va... Attention, la première marche semble assez rude.
\section{Lire un fichier WAV}
\index{WAV}

42
chap/slang.tex Normal file
View File

@ -0,0 +1,42 @@
\chapter{S-lang}
\label{S-lang}
\index{S-lang}
\section{C'est quoi ?}
S-lang est une bibliothèque de fonctions multi-plateforme
pour faire des trucs
sympathiques dans des
consoles texte.
L'exemple le plus éblouissant étant le célèbre
\texttt{slrn}\index{slrn} : "s-lang news reader", dont on cause plus
longuement dans les pages consacrées à Usenet\index{Usenet}
(page \pageref{slrn}).
\section{slsh}
\index{slsh}
Autour de s-lang, on trouve un interpréteur de scripts.
Voyons un premier exemple d'utilisation, inspiré de l'exemple de la
manpage\footnote{vous lisez bien les pages de man ?}, et qui montre
l'utilisation en mode interactif :
\begin{verbatim}
tth@plop:~/Essais/Slang$ slsh
slsh version 0.8.4-1; S-Lang version: 2.2.2
slsh> 3*10;
30
slsh> x = [1:20];
slsh> sum (sin(x)-cos(x));
0.45861331748677714
slsh> print x;
Usage: print (OBJ [,&str|File_Type|Filename]);
Qualifiers: pager[=pgm], nopager
slsh> ^D
tth@plop:~/Essais/Slang$
\end{verbatim}
Cool...

View File

@ -168,6 +168,9 @@ play -n synth sine 480 sine 620 remix 1-2 fade 0 0.5 delay 0.5 repeat 5
voies mono en un fichier stéréo. \texttt{-M} est l'abréviation voies mono en un fichier stéréo. \texttt{-M} est l'abréviation
de \texttt{--combine merge}. de \texttt{--combine merge}.
Question en attente : comment combiner huit pistes monophoniques
en un seul fichier ?
%------------------------------------------------------------------ %------------------------------------------------------------------

View File

@ -195,7 +195,12 @@ interface (e.g. sound card), encodes it and sends it to a streaming server.
%==================================================================== %====================================================================
\section{libshout}\index{libshout}\label{libshout}
Mais c'est quoi ?\index{XXX}
%====================================================================
%------------------------------------------------------------- %-------------------------------------------------------------

View File

@ -61,7 +61,8 @@ done |
ffmpeg -f image2pipe -c png -i - ... ffmpeg -f image2pipe -c png -i - ...
\end{verbatim} \end{verbatim}
Plus quelques trucs en vrac :
\subsection{quelques trucs en vrac}
\begin{verbatim} \begin{verbatim}
fichier .avi -> mpeg ( qualité DVD ) fichier .avi -> mpeg ( qualité DVD )
@ -90,6 +91,22 @@ préciser le coef de qualité ( qscale : 1 = le mieux / 3 = correcte )
ffmpeg -i fichier.dv -target pal-dvd -qscale 2 Fichier.mpeg ffmpeg -i fichier.dv -target pal-dvd -qscale 2 Fichier.mpeg
\end{verbatim} \end{verbatim}
\subsection{Encoder un cloître}
Là, nous sommes dans du \textsl{serious bizness}, puisque cette vidéo
a été programmée par James Lewis pour la résidence « Sonoptic 2020 ».
C'est donc un exemple réel.
\begin{verbatim}
ffmpeg -nostdin \
-y -r 30 -f image2 -i lf/%06d.png \
-metadata artist='--[ tTh ]--' \
-metadata title='-- Un cloitre en POVray --' \
-c:v libx264 \
-pix_fmt yuv420p \
-tune film \
wip.mp4
\end{verbatim}
% -------------------------------------------------------------------- % --------------------------------------------------------------------

View File

@ -7,6 +7,9 @@
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{listings} \usepackage{listings}
\usepackage[T1]{fontenc}
\makeindex \makeindex
\setlength \parindent {1em} \setlength \parindent {1em}
@ -44,7 +47,8 @@ peut-être pas vraiment d'actualité.
Tout cette ouvrage a été écrit avec mousepad et \LaTeX{} Tout cette ouvrage a été écrit avec mousepad et \LaTeX{}
selon la méthode éprouvée dite selon la méthode éprouvée dite
de «~La~Rache~», essentiellement sur une machine Debian/amd64. de «~La~Rache~»\index{rache},
essentiellement sur une machine Debian/amd64.
\vspace{5em} \vspace{5em}
@ -58,34 +62,36 @@ Your mileage may vary\dots
} }
% ============================================================== % ==============================================================
% \input{chap/editeurs} \input{chap/editeurs}
\input{chap/son} \input{chap/son}
\input{chap/image} \input{chap/image}
% \input{chap/musique} \input{chap/musique}
% \input{chap/puredata} \input{chap/puredata}
\input{chap/MIDI} \input{chap/MIDI}
\input{chap/OSC}
\input{chap/backups} \input{chap/backups}
\input{chap/processing} \input{chap/processing}
\input{chap/video} \input{chap/video}
\input{chap/gnuplot} \input{chap/gnuplot}
\input{chap/webcam} \input{chap/webcam}
% \input{chap/SCSI} \input{chap/SCSI}
\input{chap/X11} \input{chap/X11}
\input{chap/dino} \input{chap/dino}
\input{chap/textes} \input{chap/textes}
% \input{chap/MINITEL} \input{chap/MINITEL}
\input{chap/threads} \input{chap/threads}
% \input{chap/dosbox} \input{chap/dosbox}
\input{chap/photos} \input{chap/photos}
\input{chap/debug}
\input{chap/reseau} \input{chap/reseau}
% \input{chap/IRC} \input{chap/IRC}
% \input{chap/Usenet} \input{chap/Usenet}
% \input{chap/DNS} \input{chap/DNS}
\input{chap/ssh} \input{chap/ssh}
\input{chap/hardware} \input{chap/hardware}
\input{chap/streaming} \input{chap/streaming}
\input{chap/gadgets} \input{chap/gadgets}
% \input{chap/slang} \input{chap/slang}
\input{chap/curses} \input{chap/curses}
\input{chap/WiFi} \input{chap/WiFi}
\input{chap/GIT} \input{chap/GIT}