diff --git a/chap/GIT.tex b/chap/GIT.tex new file mode 100644 index 0000000..0340d8f --- /dev/null +++ b/chap/GIT.tex @@ -0,0 +1,50 @@ +\chapter{GIT} +\index{GIT} \label{GIT} + +Git est un système de gestion de version, très bien expliqué +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} + +\begin{verbatim} +$ mkdir Foo +$ cd Foo/ +$ git init +$ > README.txt +$ git add README.txt +\end{verbatim} + + +\section{Setup du serveur} + +Sur le serveur distant, dans un endroit accessible par +le protocole \texttt{HTTP}, il faut créer le dépot. + +\begin{verbatim} +$ mkdir Foo +$ cd Foo/ +$ git init --bare +\end{verbatim} + +Et ensuite : +\begin{verbatim} +$ git update-server-info +\end{verbatim} + +\section{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{Krkrkr...} + +Tout cela semble bien compliqué. + + diff --git a/chap/WiFi.tex b/chap/WiFi.tex new file mode 100644 index 0000000..3209272 --- /dev/null +++ b/chap/WiFi.tex @@ -0,0 +1,75 @@ +\chapter{WiFi} +\label{WiFi} + +WIreless FIdelity. + +% ============================================================== +\section{wicd} +\index{wicd} + +\textsl{Wired and Wireless Network Connection Manager}. + +Wicd est constitué de deux éléments : un \textsl{daemon} +qui est responsable de gérer les connections, et plusieurs +interfaces utilisateurs. Ces deux parties communiquent +par D-Bus\index{D-Bus}. + +\begin{verbatim} +root@plop:~# wicd-cli -S -y +root@plop:~# wicd-cli -l -y +# BSSID Channel ESSID +0 00:25:15:A6:2A:D0 1 NEUF_2ACC +1 CA:25:15:A6:2A:D3 1 SFR WiFi Mobile +2 CA:25:15:A6:2A:D1 1 SFR WiFi Public +3 A0:21:B7:D5:BA:DB 6 NUMERICABLE-35E0 +4 00:17:33:D4:39:B8 11 NEUF_39B4 +5 F4:CA:E5:95:DA:1E 10 FreeWifi_secure +6 F4:CA:E5:95:DA:1D 10 FreeWifi +7 16:10:18:47:F2:4C 11 +8 00:24:D4:CE:4F:A1 1 FreeWifi +9 00:24:D4:CE:4F:A2 1 FreeWifi_secure +10 16:10:18:47:F2:4E 11 FreeWifi_secure +11 00:24:D4:CE:4F:A0 1 freeboxwifi +12 00:0E:9B:24:F5:2B 7 poisson_bulle +\end{verbatim} + +La première ligne demande au \textsl{daemon} de scanner + (option \texttt{-S} ou \texttt{--scan}) +les réseaux disponibles en wireless. Puis la seconde +commande demande l'affichage de la liste. + +% ============================================================== + +\section{Un coup de NAT} +\index{NAT}\label{NAT} + +Une machine connectée en wifi sur une friboite\footnote{ou le +Cisco sauvage de la salle d'AG, hein, mais ça ne sera +pas le même nameserver.} peut facilement +faire translateur d'adresse pour un réseau branché sur +son eth, à condition de connaitre les +incantations magiques +(qui sont ici très linuxisantes) : + +\begin{verbatim} +ifconfig eth0 10.9.9.200/24 +echo 1 > /proc/sys/net/ipv4/ip_forward +modprobe iptable_nat +iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE +\end{verbatim} + +Ensuite sur les machines du lan, donc le coté ethernet, +il faut incanter ce genre de trucs : + +\begin{verbatim} +ifconfig eth0 10.9.9.199/24 +route add default gw 10.9.9.200 +echo "nameserver 192.168.0.254" >> /etc/resolv.conf +\end{verbatim} + +Normalement, ça devrait marcher. D'un autre coté, ce texte +date de 2011, et l'arrivée de \texttt{systemd}\index{systemd} +a peut-être cassée des choses. + +% ============================================================== + diff --git a/chap/divers.tex b/chap/divers.tex new file mode 100644 index 0000000..457c370 --- /dev/null +++ b/chap/divers.tex @@ -0,0 +1,38 @@ +\chapter{Trucs divers} +\label{divers} + +\section{Permissions} + +Suite à un accident d'origine indéterminé, Captain \textsc{root} a crée +un fichier dans le \$HOME d'un pauvre péone. Et celui-ci découvre avec +effroi qu'il ne peut ni lire ni modifier ce fichier. Ce que peut +confirmer un \texttt{ls -l} qui montre bien que seul root a des droits +sur ce fichier : + + +\begin{verbatim} +-rwx------ 1 root root 70 2012-03-15 12:16 coin.pan +\end{verbatim} + +Question : qui tombe à l'eau ? + +% ============================================================== + + +\section{Prompt} +\index{prompt} + +\begin{verbatim} +printf '\033]11;lemonchiffon2\a' +\end{verbatim} + +% ============================================================== +\section{fdupes} +\index{fdupes}\label{fdupes} + +Un utilitaire pour découvrir les fichiers dupliqués dans +votre disque dur qui se remplit trop vite à votre gout. + +% ============================================================== + + diff --git a/chap/threads.tex b/chap/threads.tex new file mode 100644 index 0000000..f29aae3 --- /dev/null +++ b/chap/threads.tex @@ -0,0 +1,50 @@ +\chapter{threads} +\index{threads} + +% ---------------------------------------------------------------- + +Ahemmm, par quoi commencer\footnote{Par de l'aspirine ?} ? Par un +extrait de la page \texttt{pthreads(6)} ? Voilà, ça c'est bien : + +\begin{quote} +POSIX.1 specifies a set of interfaces (functions, header files) for +threaded programming commonly known as Pthreads. +A single process can contain multiple threads, all of which are +executing the same program. These threads share the same global +memory (data and heap segments), but each thread has its own stack +(automatic variables). +\end{quote} + +Et c'est là que les ennuis potentiels débarquent : +\textit{share the same global memory}, ce qui veut dire en gros +«~se partagent la même mémoire globale~». + +% ---------------------------------------------------------------- + +\section{ITC} +\index{ITC} + +\textit{Inter Thread Communication} + +Imaginons une application avec un thread qui fait le travail effectif +(nous le nommerons \textsl{worker}), et plusieurs autres threads +qui attendent des ordres de l'extérieur (telnet, MIDI\index{MIDI}, +joystick\index{joystick}\dots) et qui doivent passer ces commandes +au \textsl{worker}. + +Comment allons-nous procéder\footnote{Et c'est une vraie question !} ? + +Une première piste : http://tools.ietf.org/html/rfc3117 + +% ---------------------------------------------------------------- +\section{Un exemple} + +XXX\index{XXX} + +% ---------------------------------------------------------------- + + + + + + diff --git a/main.tex b/main.tex index cb9ed7f..d3a7d2e 100644 --- a/main.tex +++ b/main.tex @@ -39,10 +39,15 @@ Mais elles sont en vrac, et surtout, elles sont reprises d'une très ancienne version (circa 2011) et donc, peut-être pas vraiment d'actualité. +\vspace{5em} + + 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. +\vspace{5em} + Your mileage may vary\dots @@ -69,7 +74,7 @@ Your mileage may vary\dots \input{chap/dino} \input{chap/textes} % \input{chap/MINITEL} -% \input{chap/threads} +\input{chap/threads} % \input{chap/dosbox} \input{chap/photos} \input{chap/reseau} @@ -82,9 +87,9 @@ Your mileage may vary\dots \input{chap/gadgets} % \input{chap/slang} \input{chap/curses} -% \input{chap/WiFi} -% \input{chap/GIT} -% \input{chap/divers} +\input{chap/WiFi} +\input{chap/GIT} +\input{chap/divers} % \input{chap/peer2peer} % ==============================================================