+ git,wifi,divers,threads chapters
This commit is contained in:
parent
e038d2feda
commit
9a9d3108ba
50
chap/GIT.tex
Normal file
50
chap/GIT.tex
Normal file
@ -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é.
|
||||
|
||||
|
75
chap/WiFi.tex
Normal file
75
chap/WiFi.tex
Normal file
@ -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 <hidden>
|
||||
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.
|
||||
|
||||
% ==============================================================
|
||||
|
38
chap/divers.tex
Normal file
38
chap/divers.tex
Normal file
@ -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.
|
||||
|
||||
% ==============================================================
|
||||
|
||||
|
50
chap/threads.tex
Normal file
50
chap/threads.tex
Normal file
@ -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}
|
||||
|
||||
% ----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
13
main.tex
13
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}
|
||||
|
||||
% ==============================================================
|
||||
|
Loading…
Reference in New Issue
Block a user