Browse Source

import of olds chapters

master
tth 2 years ago
parent
commit
d79a55fd2e
  1. 87
      chap/DNS.tex
  2. 45
      chap/GIT.tex
  3. 39
      chap/IRC.tex
  4. 10
      chap/MIDI.tex
  5. 37
      chap/MINITEL.tex
  6. 45
      chap/OSC.tex
  7. 28
      chap/SCSI.tex
  8. 45
      chap/Usenet.tex
  9. 55
      chap/debug.tex
  10. 18
      chap/dosbox.tex
  11. 47
      chap/editeurs.tex
  12. 48
      chap/musique.tex
  13. 17
      chap/puredata.tex
  14. 42
      chap/slang.tex
  15. 3
      chap/son.tex
  16. 5
      chap/streaming.tex
  17. 19
      chap/video.tex
  18. 28
      main.tex

87
chap/DNS.tex

@ -0,0 +1,87 @@ @@ -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}

45
chap/GIT.tex

@ -6,8 +6,10 @@ aux quatre coins des interwebs. Je ne vais donc pas m'étendre @@ -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
\footnote{que je n'arrive pas encore à vraiment maitriser}.
% --------------------------------------------------------------------
\section{Démarrage}
\subsection{En local}
\begin{verbatim}
$ mkdir Foo
$ cd Foo/
@ -17,7 +19,7 @@ $ git add README.txt @@ -17,7 +19,7 @@ $ git add README.txt
\end{verbatim}
\section{Setup du serveur}
\subsection{Setup du serveur}
Sur le serveur distant, dans un endroit accessible par
le protocole \texttt{HTTP}, il faut créer le dépot.
@ -33,16 +35,53 @@ Et ensuite : @@ -33,16 +35,53 @@ Et ensuite :
$ git update-server-info
\end{verbatim}
\section{Pousser le code}
% --------------------------------------------------------------------
\subsection{Pousser le code}
Notre commit\index{commit} local semble pertinent,
il est temps de le faire connaitre au monde.
\begin{verbatim}
$ git push yuser@serveur:/chemin/vers/le/depot/Foo
\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...}
Tout cela semble bien compliqué.

39
chap/IRC.tex

@ -0,0 +1,39 @@ @@ -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}
% ==============================================================

10
chap/MIDI.tex

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
\chapter{Musical Instrument Digital Interface}
\label{MIDI} \index{MIDI}
\label{chap:midi} \index{MIDI}
Dans un premier temps, je vais me concentrer sur les
services \textsc{midi} offerts par la couche ALSA d'un
@ -27,8 +27,6 @@ tth@plop:~/Muzak/Samples$ aseqdump -l @@ -27,8 +27,6 @@ tth@plop:~/Muzak/Samples$ aseqdump -l
14:0 Midi Through Midi Through Port-0
\end{verbatim}
\subsection{aconnect}
Maintenant que nous savons ce qui rentre dans notre machine,
@ -139,3 +137,9 @@ MIDI::Track (3pm) - functions and methods for MIDI tracks @@ -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

@ -0,0 +1,37 @@ @@ -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

@ -0,0 +1,45 @@ @@ -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

@ -0,0 +1,28 @@ @@ -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

@ -0,0 +1,45 @@ @@ -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

@ -0,0 +1,55 @@ @@ -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

@ -0,0 +1,18 @@ @@ -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

@ -0,0 +1,47 @@ @@ -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

@ -0,0 +1,48 @@ @@ -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

@ -0,0 +1,17 @@ @@ -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

@ -0,0 +1,42 @@ @@ -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...

3
chap/son.tex

@ -168,6 +168,9 @@ play -n synth sine 480 sine 620 remix 1-2 fade 0 0.5 delay 0.5 repeat 5 @@ -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
de \texttt{--combine merge}.
Question en attente : comment combiner huit pistes monophoniques
en un seul fichier ?
%------------------------------------------------------------------

5
chap/streaming.tex

@ -195,7 +195,12 @@ interface (e.g. sound card), encodes it and sends it to a streaming server. @@ -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}
%====================================================================
%-------------------------------------------------------------

19
chap/video.tex

@ -61,7 +61,8 @@ done | @@ -61,7 +61,8 @@ done |
ffmpeg -f image2pipe -c png -i - ...
\end{verbatim}
Plus quelques trucs en vrac :
\subsection{quelques trucs en vrac}
\begin{verbatim}
fichier .avi -> mpeg ( qualité DVD )
@ -90,6 +91,22 @@ préciser le coef de qualité ( qscale : 1 = le mieux / 3 = correcte ) @@ -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
\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}
% --------------------------------------------------------------------

28
main.tex

@ -7,6 +7,9 @@ @@ -7,6 +7,9 @@
\usepackage{graphicx}
\usepackage{listings}
\usepackage[T1]{fontenc}
\makeindex
\setlength \parindent {1em}
@ -44,7 +47,8 @@ peut-être pas vraiment d'actualité. @@ -44,7 +47,8 @@ peut-être pas vraiment d'actualité.
Tout cette ouvrage a été écrit avec mousepad et \LaTeX{}
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}
@ -58,34 +62,36 @@ Your mileage may vary\dots @@ -58,34 +62,36 @@ Your mileage may vary\dots
}
% ==============================================================
% \input{chap/editeurs}
\input{chap/editeurs}
\input{chap/son}
\input{chap/image}
% \input{chap/musique}
% \input{chap/puredata}
\input{chap/musique}
\input{chap/puredata}
\input{chap/MIDI}
\input{chap/OSC}
\input{chap/backups}
\input{chap/processing}
\input{chap/video}
\input{chap/gnuplot}
\input{chap/webcam}
% \input{chap/SCSI}
\input{chap/SCSI}
\input{chap/X11}
\input{chap/dino}
\input{chap/textes}
% \input{chap/MINITEL}
\input{chap/MINITEL}
\input{chap/threads}
% \input{chap/dosbox}
\input{chap/dosbox}
\input{chap/photos}
\input{chap/debug}
\input{chap/reseau}
% \input{chap/IRC}
% \input{chap/Usenet}
% \input{chap/DNS}
\input{chap/IRC}
\input{chap/Usenet}
\input{chap/DNS}
\input{chap/ssh}
\input{chap/hardware}
\input{chap/streaming}
\input{chap/gadgets}
% \input{chap/slang}
\input{chap/slang}
\input{chap/curses}
\input{chap/WiFi}
\input{chap/GIT}

Loading…
Cancel
Save