Compare commits

..

5 Commits

Author SHA1 Message Date
tth
7a644b5e3d done for today 2020-11-10 02:40:30 +01:00
tth
ef5fcc84fa serious bizness 2020-11-08 23:14:51 +01:00
tth
dcf71f8049 je suis perplexe 2020-11-08 23:14:25 +01:00
tth
6e011c69e7 enlarge your horizon 2020-11-08 23:12:46 +01:00
tth
4c4f7de218 started a DHCP section 2020-11-04 10:12:10 +01:00
14 changed files with 319 additions and 42 deletions

68
chap/Bonjour.tex Normal file
View File

@ -0,0 +1,68 @@
\chapter{Bonjour} \index{Bonjour}
\label{chap:Bonjour}
Bonjour (anciennement nommé RendezVous) est l'implémentation
par Apple de la norme Zeroconf\index{zeroconf}.
C'est un système de mise en réseau local automatique.
Bonjour utilise le port \textbf{5353} en UDP\index{UDP}.
Pour IPv4, la RFC 3927 de l'IETF définit l'allocation
dynamique d'adresses IP dans la plage 169.254.0.0/16.
Avahi\index{avahi} est une bibliothèque logicielle fournissant une
implémentation libre des protocoles IPv4LL, mDNS et DNS-SD.
% -----------------------------------------------------------
\section{Outils}
Bon, maintenant, que faire de tout ça ? Explorer ce qui se trame
sur notre réseau local ? C'est évident que si il y a rendez-vous,
il y a forcément de la drague\index{drague} sur le LAN.
Et la drague, le meilleur moyen c'est quand même du
broadcast\index{broadcast} sur UDP\index{UDP}.
Il y a même un logiciel spécialisé pour entendre ça :
\begin{quote}
mdns-scan is a tool for scanning for mDNS/DNS-SD published services on
the local network. It issues a mDNS\index{mDNS} PTR query to the special
RR \_services.\_dns-sd.\_udp.local for retrieving a list of all currently
registered services on the local link.
\end{quote}
\begin{verbatim}
tth@debian:~/Devel/TetaTricks$ mdns-scan
+ saned._sane-port._tcp.local
+ DELIRIUM._smb._tcp.local
+ DELIRIUM._device-info._tcp.local
+ Serviette._nut._tcp.local
+ Serviette._mumble._tcp.local
+ RENAN-PC._nvstream._tcp.local
+ Mac Pro de XANO._afpovertcp._tcp.local
+ Mac Pro de XANO._smb._tcp.local
+ MacBook Pro de Romain._smb._tcp.local
+ Mac Pro de XANO._companion-link._tcp.local
+ HP Photosmart C4400 series @ MacBook Pro de Sophie de Angelis (._ipp._tcp.local
+ TOSHIBA e-STUDIO2040C-07304719 @ MacBook Pro de Sophie de Angel._ipp._tcp.local
+ TOSHIBA e-STUDIO2010AC-13828385._http._tcp.local
+ MacBook Pro de Manon._companion-link._tcp.local
+ Mac Pro de XANO / Mac Pro de MacPro._c4ds._tcp.local
+ 0418C7E2-071B-4BC7-B210-20F4D6BED80A._netrender._tcp.local
\end{verbatim}
Que faire de toutes ces information, à part savoir que la machine
\texttt{delirium} semble être un serveur Samba\index{Samba} ?
% -----------------------------------------------------------
\section{Code}
XXX\index{XXX}
Je ne sais même pas par où commencer \textit{:)}
% -----------------------------------------------------------

View File

@ -1,10 +1,12 @@
\chapter{Domain Name Service} \chapter{Domain Name Service}
\label{DNS} \label{chap:DNS}
\section{host} \section{Outils de base}
\subsection{host}
\index{host} \index{host}
C'est vraiment la commande de base pour tout ce qui touche à la C'est vraiment la commande \textit{vanilla} pour tout ce qui touche à la
résolution de nom. Elle propose les premières options de base, résolution de nom. Elle propose les premières options de base,
avec une syntaxe facile à retenir. Elle existe, sous des formes avec une syntaxe facile à retenir. Elle existe, sous des formes
légèrement déviantes, dans une grande partie des légèrement déviantes, dans une grande partie des
@ -24,7 +26,7 @@ plus loin ?
% ------------------------------------------------------------ % ------------------------------------------------------------
\section {nslookup} \subsection {nslookup}
\index{nslookup} \index{nslookup}
\begin{quote} \begin{quote}
@ -39,7 +41,7 @@ a host or domain. »
% ------------------------------------------------------------ % ------------------------------------------------------------
\section{dig} \subsection{dig}
\index{dig} \index{dig}
Dig (\textit{domain information groper}) est un outil d'interrogation Dig (\textit{domain information groper}) est un outil d'interrogation
@ -53,30 +55,40 @@ Pour le reverse d'une adresse IP :
\$ dig +trace -x <adresse.ip> \$ dig +trace -x <adresse.ip>
% ------------------------------------------------------------ % ------------------------------------------------------------
\section{delv} % \subsection{delv}
\index{delv} % \index{delv}
%
Nouvel outil en rapport avec DNSSEC\index{DNSSEC}. Nouvel outil en rapport avec DNSSEC\index{DNSSEC}.
% XXX % XXX
\index{XXX} % \index{XXX}
% http://www.bortzmeyer.org/delv.html % http://www.bortzmeyer.org/delv.html
% XXX % XXX
% ------------------------------------------------------------ % ------------------------------------------------------------
\section{checkresolv} \subsection{checkresolv}
Outil très basique conçu et bricolé par Tonton~Th au siècle Outil très basique conçu et bricolé par Tonton~Th au siècle
dernier lors d'un séjour à Frontignan-plage. dernier lors d'un séjour à Frontignan-plage. Hélas, les sources
semblent définitivement perdues.
Une ré-écriture s"impose\dots
% ------------------------------------------------------------ % ------------------------------------------------------------
\section{DHCP} \index{DHCP}
\begin{quote}
The DHCP protocol allows a host to contact a central server which maintains a
list of IP addresses which may be assigned on one or more subnets. A DHCP
client may request an address from this pool, and then use it on a temporary
basis for communication on network.
\end{quote}
% ------------------------------------------------------------
\section{dnsmasq} \section{dnsmasq}
\index{dnsmasq} \index{dnsmasq}
\begin{quote} \begin{quote}
dnsmasq is a lightweight DNS, TFTP and DHCP server. It is intended to dnsmasq is a lightweight DNS, TFTP and DHCP server. It is intended to
provide coupled DNS and DHCP service to a LAN. provide coupled DNS and DHCP service to a LAN.
\end{quote} \end{quote}

30
chap/Fedora.tex Normal file
View File

@ -0,0 +1,30 @@
\chapter{Fedora}
\label{chap:fedora} \index{Fedora}
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\section{Gestion des paquets}
DNF\index{dnf} semble être l'outil de prédilection.
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\section{Firewall}
Krkrkr, UPD\index{UDP} est bloqué en entrée ? Wtf ?
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\section{Include dir}
Chez Fedora, certains fichiers \texttt{.h} ne sont pas à la même
place que dans d'autres distributions\index{Debian}, ce qui cause quelques
soucis pour les compilations.
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\section{Comment installer ffmpeg ?}
\index{ffmpeg}
D'après Blaise (regatta) il faut voir du coté de rpmfusion.
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

11
chap/IPv6.tex Normal file
View File

@ -0,0 +1,11 @@
\chapter{IPv6} \label{chap/IPv6}
\index{IPv6}
Désactivation :
\texttt{echo '1' > /proc/sys/net/ipv6/conf/lo/disable\_ipv6}
\texttt{echo '1' > /proc/sys/net/ipv6/conf/all/disable\_ipv6}
\texttt{echo '1' > /proc/sys/net/ipv6/conf/default/disable\_ipv6}

21
chap/Raspberry.tex Normal file
View File

@ -0,0 +1,21 @@
\chapter{Raspberry Pi}
\label{chap:raspberry}
\index{Raspberry}
\section{Quel OS ?}
Arthur ? RiscOS ? Haiku ? Plan9 ?
\section{Headless}\index{headless}
Comment générer une SD qui soit accessible par ssh\index{ssh}
dès le démarrage ?
\section{Connecteur}
Que faut-il faire pour avoir un vrai rs232, et faire du
SLIP\index{SLIP} avec ?

View File

@ -1,5 +1,5 @@
\chapter{X11} \chapter{X11}
\label{X11} \label{X11}\index{X11}
%------------------------------------------------------------------- %-------------------------------------------------------------------
\section{Les fontes} \section{Les fontes}
@ -31,7 +31,6 @@ le clavier en Azerty\index{azerty} ?
%------------------------------------------------------------------- %-------------------------------------------------------------------
\section{Numlock} \section{Numlock}
\begin{verbatim} \begin{verbatim}
#include <X11/XKBlib.h> #include <X11/XKBlib.h>
#include <X11/extensions/XKB.h> #include <X11/extensions/XKB.h>
@ -46,6 +45,8 @@ int main(){
return 0;} return 0;}
\end{verbatim} \end{verbatim}
Mais c'est du très vieux code, ça !
%------------------------------------------------------------------- %-------------------------------------------------------------------
% new 20 décembre 2012 à Mixart-Myrys % new 20 décembre 2012 à Mixart-Myrys
\section{xdotool} \section{xdotool}
@ -84,9 +85,10 @@ $
\end{verbatim} \end{verbatim}
Voilà\footnote{en français dans le texte}, nous savons maintenant Voilà\footnote{en français dans le texte}, nous savons maintenant
à quelle fenêtre causer : par son numéro. à quelle fenêtre causer : par son numéro d'identification.
Le problême des multiples fenêtres du Le problême des multiples fenêtres du même nom sera abordé
même nom sera abordé ultérieurement. ultérieurement.
Déplaçons donc notre widget\dots Déplaçons donc notre widget\dots
\begin{verbatim} \begin{verbatim}

View File

@ -88,7 +88,7 @@ D'autres songent à MXDoctor\index{emacs} ou Camélia.
Ahem, là, c'est délicat, parce que je ne sais pas Ahem, là, c'est délicat, parce que je ne sais pas
vraiment\footnote{Enfin, si, j'essaye de confectionner vraiment\footnote{Enfin, si, j'essaye de confectionner
un soft pour fabriquer des flipbooks à partir de portnawak} un soft pour fabriquer des flipbooks à partir de portnawak}
d'animation imprimable. faire d'animation imprimable.
% =============================================================== % ===============================================================

59
chap/gif89a.tex Normal file
View File

@ -0,0 +1,59 @@
\chapter{gif89a}\index{gif89a}
\label{chap:gif89a}
Ah, enfin nous arrivons à un sujet \textbf{vraiment} important :
la confection d'images qui clignotent. Ça va aussi être l'occasion
de plonger un peu dans l'histoire du siècle dernier. Nous allons
parler de Compuserve\index{Compuserve} que seul les plus anciens
d'entre vous on pu connaitre.
\begin{quote}
\textsl{Wikipedia} :
CompuServe (ou CompuServe Information Services, ou CIS), est le
premier des grands fournisseurs de services en ligne aux États-Unis.
Il domine le marché pendant les années 1980 puis reste un acteur
important au milieu des années 1990.
\end{quote}
Voilà pour expliquer brièvement d'où sort ce fameux format \textsc{gif}.
À l'époque, les moyens de connexion étaient beauuucoup plus lents que
ce que nous connaissons en 2020\footnote{Une fscking mauvaise année},
mais les écrans graphiques commençaient à bien se répandre, et certains
pouvaient même afficher {\em 256 couleurs}~:
\begin{quote}
L'entreprise est aussi connue pour avoir mis au point un format d'image
numérique très répandu, le GIF\index{GIF}, en 1987.
\end{quote}
Deux ans plus tard, le public demandant de plus en plus d'images
épileptisante, une extension de ce format et reçu le petit nom
de \textsc{gif89a}. Il y a toujours la limitation à 256 couleurs
et un seul niveau de transparence. Contraintes qui n'étaient pas si
génantes que ça à l'époque vu les terminaux visés.
% ==================================================================
\section{Création}
Avec une des commandes d'ImageMagick, on peut, à partir d'une suite
d'image, créer une gif89a qui tourne en boucle~:
\begin{verbatim}
convert -delay 20 -loop 0 a.png b.png c.png foo.gif
\end{verbatim}
Le \textsl{delay} est exprimé en millisecondes.
Et ensuite, vouv pouvez voir votre logo en flamme avec la
commande \texttt{animate foo.gif} sur votre super écran svga.
% ==================================================================
\section{Manipulation}
% ==================================================================
\section{Exemples pratiques}
% ==================================================================

View File

@ -1,14 +1,20 @@
\chapter{Image} \chapter{Image}
\label{chap:image} \label{chap:image}
Le traitement des images est un art à part entière. Nous allons
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.
% ------------------------------------------------------------------- % -------------------------------------------------------------------
\section{ImageMagick}\index{ImageMagick} \section{ImageMagick}\index{ImageMagick}
Attention, ça va devenir \textsl{hardu}% Attention, ça va devenir \textsl{hardu}%
\footnote{Nous attendons tous avec impatience l'ouvrage de Brunus}, \footnote{Nous attendons tous avec impatience l'ouvrage magistral
de maitre Brunus},
l'abondance d'options l'abondance d'options
des outils imagemagick est vraiment énorme, et leurs des outils ImageMagick est vraiment énorme, et leurs
interactions parfois troublantes\dots interactions parfois troublantes\dots
\subsection{Écrire du texte} \subsection{Écrire du texte}
@ -16,7 +22,7 @@ interactions parfois troublantes\dots
Voici un exemple concret Voici un exemple concret
(tiré du script d'encodage du \textsc{cloître}\index{cloître}) (tiré du script d'encodage du \textsc{cloître}\index{cloître})
qui montre l'essentiel pour bien débuter. C'est une fonction qui montre l'essentiel pour bien débuter. C'est une fonction
écrite en bash\index{bash} qui rajoute un texte sur une image : écrite en bash\index{bash} qui rajoute un texte sur une image. :
\begin{verbatim} \begin{verbatim}
function tagpic function tagpic
@ -24,12 +30,10 @@ function tagpic
infile="$1" infile="$1"
outfile="$2" outfile="$2"
texte="$3" texte="$3"
txtfont=" -font Utopia " txtfont=" -font Utopia "
fontsize=" -pointsize 96 -kerning 6 " fontsize=" -pointsize 96 -kerning 6 "
color=" -fill Gray20 -stroke White " color=" -fill Gray20 -stroke White "
txtopts=" -antialias -alpha off $txtfont " txtopts=" -antialias -alpha off $txtfont "
convert $infile \ convert $infile \
${txtopts} \ ${txtopts} \
${txtfont} ${fontsize} \ ${txtfont} ${fontsize} \
@ -40,15 +44,66 @@ convert $infile \
} }
\end{verbatim} \end{verbatim}
Quelques explications... Quelques explications semblent nécessaires, parce que certaines
options sont un peu ésotériques...
\begin{itemize}
\item{txtfont}
\item{fontsize}
\item{colors}
\item{txtopts}
\item{-gravity}
\item{-annotate}
\end{itemize}
\subsection{Faire des GIFs animées}\index{GIF}
Ces images clignotantes sont l'essence même du Web\index{Web}
moderne depuis 1992, et \texttt{convert} sait très bien les
générer.
\begin{verbatim}
convert -delay 20 -loop 0 a.png b.png c.png foo.gif
\end{verbatim}
Ce sujet pertinent est abordé plus en détails en
page \pageref{chap:gif89a}
\subsection{Extraire une partie de l'image}
Dans cette fonctionnalité aussi, il semble y avoir quelques
subtilités.
\begin{verbatim}
DIM="1024x768"
convert -crop ${DIM}+512+0 $img $dst
\end{verbatim}
% ------------------------------------------------------------------- % -------------------------------------------------------------------
\section{Gmic}\index{Gmic} \section{Gmic}\index{Gmic}
XXX\index{XXX}
Existe aussi en plugin pour Gimp\index{Gimp}.
% ------------------------------------------------------------------- % -------------------------------------------------------------------
\section{NetPBM}\index{netpbm}\label{netpbm}
With the Netpbm file formats, its trivial to output pixels using
nothing but text based IO%
\footnote{https://www.vidarholen.net/contents/blog/?p=904}.
\begin{verbatim}
#!/bin/bash
exec > my_image.ppm # All echo statements will write here
echo "P3 250 250 255" # magic, width, height, max component value
for ((y=0; y<250; y++)) {
for ((x=0; x<250; x++)) {
echo "$((x^y)) $((x^y)) $((x|y))" # r, g, b
}
}
\end{verbatim}

View File

@ -6,7 +6,7 @@ Nous allons voir dans ce chapitre quelques utilisations
que l'on peut qualifier de «~créatives~». que l'on peut qualifier de «~créatives~».
Si vous attendiez des choses plus sérieuses, j'ai aussi ça Si vous attendiez des choses plus sérieuses, j'ai aussi ça
en magasin : \textsc{dns} page \pageref{DNS}, en magasin : \textsc{dns} page \pageref{chap:DNS},
\textsc{ssh} page \pageref{ssh}, \textsc{ssh} page \pageref{ssh},
streaming page \pageref{streaming}, streaming page \pageref{streaming},
et probablement bien d'autres à venir. et probablement bien d'autres à venir.
@ -146,14 +146,16 @@ iptraf\index{iptraf}
\subsection{tcpdump} \subsection{tcpdump}
\index{tcpdump} \index{tcpdump}
C'est clairement un outil dédié au voyeurisme :) C'est clairement un outil dédié au voyeurisme, mais qui permet de
décrypter les ésotérismes de MiniMad\index{minimad}. C'est donc
sur cet exemple que nous allons partir.
% ------------------------------------------------------------- % -------------------------------------------------------------
\subsection{nmap} \subsection{nmap}
\index{nmap} \index{nmap}
C'est clairement un outil dédié au voyeurisme :) C'est clairement aussi un outil dédié au voyeurisme :)
% ============================================================== % ==============================================================
@ -164,7 +166,8 @@ C'est clairement un outil dédié au voyeurisme :)
The nc (or netcat) utility is used for just about anything under the sun The nc (or netcat) utility is used for just about anything under the sun
involving TCP or UDP. It can open TCP connections, send UDP packets, involving TCP or UDP. It can open TCP connections, send UDP packets,
listen on arbitrary TCP and UDP ports, do port scanning, and deal with listen on arbitrary TCP and UDP ports, do port scanning, and deal with
both IPv4 and IPv6. Unlike telnet(1), nc scripts nicely, and separates both IPv4 and IPv6\footnote{Voir le chapitre \ref{chap/IPv6}}
. Unlike telnet(1), nc scripts nicely, and separates
error messages onto standard error instead of sending them to standard error messages onto standard error instead of sending them to standard
output, as telnet(1) does with some. output, as telnet(1) does with some.
\end{quote} \end{quote}

View File

@ -1,10 +1,10 @@
\chapter{ssh} \chapter{ssh}
\label{ssh} \label{chap:ssh}
Secure Shell. Secure Shell.
D'après le site \texttt{openssh.org} : D'après le site \texttt{openssh.org} :
\textit{OpenSSH is a {\em free} version of the SSH\index{SSH} connectivity \textit{OpenSSH is a {\em free} version of the SSH\index{ssh} connectivity
tools that technical users of the Internet rely on. Users of tools that technical users of the Internet rely on. Users of
telnet, rlogin, and ftp\index{ftp} may not realize that their password telnet, rlogin, and ftp\index{ftp} may not realize that their password
is transmitted across the Internet unencrypted, but it is transmitted across the Internet unencrypted, but it
@ -14,6 +14,8 @@ other attacks. Additionally, OpenSSH provides secure tunneling
capabilities and several authentication methods, and supports capabilities and several authentication methods, and supports
all SSH protocol versions.} all SSH protocol versions.}
\section{X11 forwarding}\index{X11}
\section{sshfs} \section{sshfs}

View File

@ -49,6 +49,8 @@ with a crossfader, a jingle player, microphone signal processing
\section{liquidsoap} \section{liquidsoap}
\index{liquidsoap} \index{liquidsoap}
\texttt{https://www.liquidsoap.info/}
\begin{quote} \begin{quote}
Liquidsoap is an extensible and flexible audio stream generator, mainly Liquidsoap is an extensible and flexible audio stream generator, mainly
used for streaming to a shoutcast/icecast server. used for streaming to a shoutcast/icecast server.

View File

@ -37,11 +37,16 @@ ioctl: VIDIOC_ENUM_FMT
Interval: Discrete 0.033s (30.000 fps) Interval: Discrete 0.033s (30.000 fps)
\end{verbatim} \end{verbatim}
Question : quelle méthode utiliser pour avoir la même chose avec
des lignes de code écrites en C ?
% -------------------------------------------------------------------- % --------------------------------------------------------------------
\section{vgrabbj} \section{vgrabbj}
\index{vgrabbj} \index{vgrabbj}
D'après la manpage : D'après la manpage :
« \textit{ « \textit{
vgrabbj is a program that will grab images from any v4l-capable device vgrabbj is a program that will grab images from any v4l-capable device

View File

@ -14,7 +14,7 @@
\setlength \parindent {1em} \setlength \parindent {1em}
% XXX \setlength \parskip {0.333em} \setlength \parskip {0.200em} % XXX
%------ reglages des 'listings' %------ reglages des 'listings'
\lstset{frame=single} % dessin d'un cadre autour du listing \lstset{frame=single} % dessin d'un cadre autour du listing
@ -45,10 +45,12 @@ peut-être pas vraiment d'actualité.
\vspace{5em} \vspace{5em}
Tout cette ouvrage a été écrit avec mousepad et \LaTeX{} Cependant, toute cette ouvrage est en cours de
réécriture avec Mousepad et \LaTeX{}
selon la méthode éprouvée dite selon la méthode éprouvée dite
de «~La~Rache~»\index{rache}, de «~La~Rache~»\index{rache},
essentiellement sur une machine Debian/amd64. essentiellement sur une machine Debian/amd64, avec des
morceaux de Fedora Server 33 à coté\index{Fedora}.
\vspace{5em} \vspace{5em}
@ -63,28 +65,33 @@ Your mileage may vary\dots
% ============================================================== % ==============================================================
\input{chap/shell} \input{chap/shell}
\input{chap/editeurs} % \input{chap/editeurs}
\input{chap/son} \input{chap/son}
\input{chap/image} \input{chap/image}
\input{chap/reseau}
\input{chap/musique} \input{chap/musique}
\input{chap/puredata} % \input{chap/puredata}
\input{chap/MIDI} \input{chap/MIDI}
\input{chap/OSC} \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/Raspberry}
\input{chap/Fedora}
\input{chap/IPv6}
\input{chap/threads} \input{chap/threads}
\input{chap/dosbox} % \input{chap/dosbox}
\input{chap/photos} \input{chap/photos}
\input{chap/Bonjour}
\input{chap/debug} \input{chap/debug}
\input{chap/reseau} \input{chap/gif89a}
\input{chap/IRC} \input{chap/IRC}
\input{chap/Usenet} \input{chap/Usenet}
\input{chap/DNS} \input{chap/DNS}
@ -92,7 +99,7 @@ Your mileage may vary\dots
\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}