Compare commits
	
		
			3 Commits
		
	
	
		
			fa3b83fa25
			...
			7dea31c24c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 7dea31c24c | ||
|   | 53c0dfbf8a | ||
|   | 89abb2bb04 | 
| @ -43,6 +43,9 @@ $ | |||||||
| \end{verbatim} | \end{verbatim} | ||||||
| 
 | 
 | ||||||
| % -------------------------------------------------------- | % -------------------------------------------------------- | ||||||
|  | % | ||||||
|  | % https://fortranwiki.org/fortran/show/Command-line+arguments | ||||||
|  | % | ||||||
| \section{Args \& Env} | \section{Args \& Env} | ||||||
| 
 | 
 | ||||||
| Un fort beau programme, mais il est un peu fermé au monde extérieur. | Un fort beau programme, mais il est un peu fermé au monde extérieur. | ||||||
| @ -75,37 +78,58 @@ il faut la convertir avant usage. | |||||||
|   call getarg(2, string)       ;   read (string, *) cx |   call getarg(2, string)       ;   read (string, *) cx | ||||||
| \end{verbatim} | \end{verbatim} | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| % -------------------------------------------------------- | % -------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| \subsection{Tableaux} | \section{Tableaux} | ||||||
| 
 | 
 | ||||||
| Rank, Size, \textsc{allocatable}, toussa\dots | Rank, Size, \textsc{allocatable}, toussa\dots | ||||||
| 
 | 
 | ||||||
|  | Amies du C, soyez d'entrée prévenues, en Fortran, l'indice | ||||||
|  | par défaut du premier élément d'un tablesu est \textbf{1}, | ||||||
|  | mais cette valeur peut être modifiée à la déclaration | ||||||
|  | du tableau. | ||||||
|  | 
 | ||||||
| % -------------------------------------------------------- | % -------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| \subsection{Fichiers} | \section{Fichiers} | ||||||
| 
 | 
 | ||||||
| Pour qui vient du C et de la philosophie Unix, la gestion | Pour qui vient du C et de la philosophie Unix, la gestion | ||||||
| des fichiers en Fortran est assez déroutante% | des fichiers en Fortran est assez déroutante% | ||||||
| \footnote{Par contre, pour un dino des \textsl{big irons}\dots}. | \footnote{Par contre, pour un dino des \textsl{big irons}\dots}. | ||||||
| Il semble qu'il y ait deux concepts orthogonaux. | Il semble qu'il y ait deux concepts orthogonaux. | ||||||
| 
 | 
 | ||||||
| Open, Read, Write, Inquire, toussa\dots | \textit{Open, Read, Write, Inquire, toussa\dots} | ||||||
| 
 | 
 | ||||||
| % -------------------------------------------------------- | % -------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| \subsection{Modules} | \section{Modules} | ||||||
| 
 | 
 | ||||||
| Une notion essentielle, à mon avis, pour écrire des programmes | Une notion essentielle, à mon avis, pour écrire des programmes | ||||||
| au-delà de 104 lignes. Oui, j'avoue, j'ai bien changé depuis | au-delà de 104 lignes. Oui, j'avoue, j'ai bien changé depuis | ||||||
| l'époque où je confectionnait des procédures \textsl{monobloc} | l'époque où je confectionnait des procédures \textsl{monobloc} | ||||||
| de 1337 lignes, avec une bonne centaine de \texttt{GOTO} dedans. | de 1337 lignes, avec une bonne centaine de \texttt{GOTO} dedans. | ||||||
| 
 | 
 | ||||||
|  | % -------------------------------------------------------- | ||||||
|  | \section{Random et Aléa} | ||||||
|  | 
 | ||||||
|  | La dernière ligne va vous étonner. | ||||||
|  | 
 | ||||||
|  | \begin{verbatim} | ||||||
|  |     integer, dimension(3) :: tarray | ||||||
|  |     integer               :: t3 | ||||||
|  |     real                  :: dummy | ||||||
|  |     call itime(tarray) | ||||||
|  |     t3 = 3600*tarray(1) + 60*tarray(2) + tarray(3) | ||||||
|  |     write(0, '(A,3I3,A,I6)') "sranding: ", tarray, " --> ", t3 | ||||||
|  |     call srand(t3) | ||||||
|  |     ! after initializing the random generator engine, | ||||||
|  |     ! you MUST use it for initializing the initializer | ||||||
|  |     dummy = rand() | ||||||
|  | \end{verbatim} | ||||||
| 
 | 
 | ||||||
| % -------------------------------------------------------- | % -------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| \subsection{Images ?} | \section{Images} | ||||||
| 
 | 
 | ||||||
| Plplot semble être un bon choix pour commencer. | Plplot semble être un bon choix pour commencer. | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -35,6 +35,8 @@ pinpin0: çhârsèt ? | |||||||
| /SET autoclose_windows OFF | /SET autoclose_windows OFF | ||||||
| \end{verbatim} | \end{verbatim} | ||||||
| 
 | 
 | ||||||
|  | \textbf{Question :} comment enregistrer un chan' ? | ||||||
|  | 
 | ||||||
| % ============================================================== | % ============================================================== | ||||||
| \section{hexchat} | \section{hexchat} | ||||||
| \index{hexchat} | \index{hexchat} | ||||||
|  | |||||||
| @ -216,7 +216,7 @@ d'un fichier \texttt{.mid} ? | |||||||
| 
 | 
 | ||||||
| \lstinputlisting[language=perl]{code/midifile.pl} | \lstinputlisting[language=perl]{code/midifile.pl} | ||||||
| 
 | 
 | ||||||
| Voilà. | Voilà enfin du code qui n'est pas fini\dots | ||||||
| 
 | 
 | ||||||
| % --------------------------------------------------------- | % --------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| @ -233,5 +233,7 @@ OSC\index{OSC} (page \pageref{chap:OSC}) semble une possibilité | |||||||
| pour aller au-delà. Mais, \textsl{amho}, rien ne pourra vraiment | pour aller au-delà. Mais, \textsl{amho}, rien ne pourra vraiment | ||||||
| remplacer le midi tel que nous le connaissons depuis les années 80. | remplacer le midi tel que nous le connaissons depuis les années 80. | ||||||
| 
 | 
 | ||||||
|  | You can read more about USB MIDI here: | ||||||
|  |              https://www.midi.org/midi-articles/basic-of-usb | ||||||
| 
 | 
 | ||||||
| % --------------------------------------------------------- | % --------------------------------------------------------- | ||||||
|  | |||||||
| @ -15,6 +15,19 @@ Je songe ensuite aborder certains aspects de la théorie du | |||||||
| signal, dans le but pratique de brotcher du son. | signal, dans le but pratique de brotcher du son. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | \section{En vrac} | ||||||
|  | 
 | ||||||
|  | \begin{verbatim} | ||||||
|  |   double stddev(const auto *x, int N) | ||||||
|  |   { | ||||||
|  |      double sum = 0, sum_sq = 0; | ||||||
|  |      for (int i = 0; i < N; i++) { | ||||||
|  |         sum    += x[i]; | ||||||
|  |         sum_sq += x[i]*x[i]; | ||||||
|  |      } | ||||||
|  |      return sqrt((sum_sq - sum*sum/N)/(N-1)); | ||||||
|  |   } | ||||||
|  | \end{verbatim} | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -6,7 +6,11 @@ Il existe bien entendu des outils \textsl{mainstream} | |||||||
| tels que le classique \texttt{gdb}\index{gdb}, mais il en existe | tels que le classique \texttt{gdb}\index{gdb}, mais il en existe | ||||||
| une foultitude d'autres, injustement méconnus. | une foultitude d'autres, injustement méconnus. | ||||||
| Nous allons en voir quelques-uns en essayant de nous baser | Nous allons en voir quelques-uns en essayant de nous baser | ||||||
| sur des cas réels. | sur des cas quasiment réels. | ||||||
|  | 
 | ||||||
|  | Et non, je ne vais pas vous parler du vénérable \texttt{ddt} | ||||||
|  | des antiques systèmes CP/M, ni même du \texttt{debug} des | ||||||
|  | anciens DOS, bien que tous deux méritent votre attention. | ||||||
| 
 | 
 | ||||||
| % ============================================================== | % ============================================================== | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -133,10 +133,13 @@ l'IRC\index{IRC} \texttt{freenode\#paulla} \textit{:)} | |||||||
| \textsl{Perform generic image processing operations, through the G'MIC | \textsl{Perform generic image processing operations, through the G'MIC | ||||||
| language interpreter. gmic: GREYC's Magic for Image Computing.} | language interpreter. gmic: GREYC's Magic for Image Computing.} | ||||||
| 
 | 
 | ||||||
| \index{XXX} | Gmic se base sur une grosse bibliothèque de fonctions écrite | ||||||
|  | en \texttt{C++}\index{C++} dont l'utilisation est bien | ||||||
|  | docummentée dans le livre ???\index{XXX} | ||||||
| 
 | 
 | ||||||
| Existe aussi en plugin pour Gimp\index{Gimp} avec une interface | Existe aussi en plugin pour Gimp\index{Gimp} avec une interface | ||||||
| pleine de curseurs et de boutons. | pleine de curseurs et de boutons, qui facilite (ou pas) l'exploration | ||||||
|  | des possibles. | ||||||
| 
 | 
 | ||||||
| %  ------------------------------------------------------------------- | %  ------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
| @ -161,7 +164,7 @@ for ((y=0; y<250; y++)) { | |||||||
| 
 | 
 | ||||||
| Comment faire un \textsl{resize} avec NetPBM ? | Comment faire un \textsl{resize} avec NetPBM ? | ||||||
| Est-il nécessaire d'apprendre la bibliothèque de fonctions | Est-il nécessaire d'apprendre la bibliothèque de fonctions | ||||||
| \texttt{libnetpbm} ? | \texttt{libnetpbm}\footnote{Réponse: oui.} ? | ||||||
| 
 | 
 | ||||||
| %  ------------------------------------------------------------------- | %  ------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -10,26 +10,37 @@ Mais il est probable que ce concept existait déja dans | |||||||
| d'autres mondes, peut-être avec \textsl{AmigaOS} ou | d'autres mondes, peut-être avec \textsl{AmigaOS} ou | ||||||
| \textsl{VAX/VMS}\index{VMS}\dots | \textsl{VAX/VMS}\index{VMS}\dots | ||||||
| 
 | 
 | ||||||
|  | Une bibliothèque partagé (aka \texttt{.so}) est une collection | ||||||
|  | de fonctions, chargée une seule fois en mémoire centrale, | ||||||
|  | mais qui peut être utilisée par plusieurs programmes en | ||||||
|  | même temps.\index{.so} | ||||||
| Et c'est en partie sur ce concept qu'est basé le premier | Et c'est en partie sur ce concept qu'est basé le premier | ||||||
| mécanisme que nous allon découvrir~: | mécanisme que nous allons découvrir~: | ||||||
| \texttt{dlopen} et sa petite famille. | \texttt{dlopen} et sa petite famille. | ||||||
| 
 | 
 | ||||||
| %	------------------------------------ | %	------------------------------------ | ||||||
| 
 | 
 | ||||||
| \section{Mécanique} | \section{Mécanisme} | ||||||
| 
 | 
 | ||||||
| \index{dlopen} | \index{dlopen} \index{dlclose} | ||||||
| 
 | 
 | ||||||
| \texttt{dlclose, dlopen, dlmopen - open and close a shared object} | \texttt{dlclose, dlopen, dlmopen - open and close a shared object} | ||||||
| 
 | 
 | ||||||
| \begin{quote} | \begin{quote} | ||||||
| The  function dlopen() loads the dynamic shared object (shared library) | The function dlopen() loads the dynamic shared object (shared library) | ||||||
| file named by the null-terminated string filename and returns an opaque | file named by the null-terminated string filename and returns an opaque | ||||||
| "handle"  for  the  loaded  object.  This handle is employed with other | "handle" for the loaded object. This handle is employed with other | ||||||
| functions in the dlopen API, such as  dlsym(3),  dladdr(3),  dlinfo(3), | functions in the dlopen API, such as dlsym(3), dladdr(3), dlinfo(3), | ||||||
| and dlclose(). | and dlclose(). | ||||||
| \end{quote} | \end{quote} | ||||||
| 
 | 
 | ||||||
|  | Traduit en clair, la fonction \texttt{dlopen} permet de charger | ||||||
|  | manuellement un \texttt{.so} en mémoire centrale, au lieu de | ||||||
|  | laisser faire le loader (ld.so) automatiquement au lancement | ||||||
|  | d'un binaire. la fonction \texttt{dlclose} va, elle, vidanger | ||||||
|  | la zone mémoire dans laquelle est le plugin. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| %	------------------------------------ | %	------------------------------------ | ||||||
| 
 | 
 | ||||||
| \section{Un exemple ?} | \section{Un exemple ?} | ||||||
| @ -42,7 +53,8 @@ un tableau de quatre nombres flottants, et que nous souhaitons | |||||||
| proposer un affichage de ce tableau modifiable à volonté. | proposer un affichage de ce tableau modifiable à volonté. | ||||||
| 
 | 
 | ||||||
| Nous allons donc écrire notre fonction personnelle d'affichage | Nous allons donc écrire notre fonction personnelle d'affichage | ||||||
| dans un fichier \textsc{.c} indépendant (le plugiciel) et qui | dans un fichier \textsc{.c} indépendant | ||||||
|  | (ci-après dénommé «le plugiciel») et qui | ||||||
| sera chargé dynamiquement au \textsl{run-time} par le logiciel | sera chargé dynamiquement au \textsl{run-time} par le logiciel | ||||||
| principal (l'appelant). | principal (l'appelant). | ||||||
| 
 | 
 | ||||||
| @ -54,12 +66,16 @@ lecteurs, à titre d'exercice. | |||||||
| 
 | 
 | ||||||
| \lstinputlisting[language=c]{code/plugiciel.c} | \lstinputlisting[language=c]{code/plugiciel.c} | ||||||
| 
 | 
 | ||||||
| On peut difficelement faire plus simple pour une première | On peut difficilement faire plus simple pour une première | ||||||
| approche, mais attendez la suite. | approche, mais attendez la suite des opérations, | ||||||
|  | la cinquième va vous étonner. | ||||||
| 
 | 
 | ||||||
| \subsection{L'appelant} | \subsection{L'appelant} | ||||||
| 
 | 
 | ||||||
| 
 | Voyons maintenant comment mettre ça en œuvre depuis le programme | ||||||
|  | principal. | ||||||
|  | Nous supposerons que le binaire du plugin est dans le répertoire | ||||||
|  | courant.  | ||||||
| 
 | 
 | ||||||
| \lstinputlisting[language=c]{code/appelant.c} | \lstinputlisting[language=c]{code/appelant.c} | ||||||
| 
 | 
 | ||||||
| @ -83,7 +99,9 @@ tth@fubar:~/Documents/TetaTricks/code$ | |||||||
| 
 | 
 | ||||||
| \section{Autres langages} | \section{Autres langages} | ||||||
| 
 | 
 | ||||||
|  | En Perl\index{Perl} ? | ||||||
| 
 | 
 | ||||||
|  | En Fortran\index{Fortran} ? | ||||||
| 
 | 
 | ||||||
| % -------------- to be continued | % -------------- to be continued | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -200,7 +200,7 @@ Comment scanner un /24 pour y découvrir les machines ? | |||||||
| \section{netcat} | \section{netcat} | ||||||
| \index{netcat} | \index{netcat} | ||||||
| 
 | 
 | ||||||
| \textbf{Attention :} Il existe au moins deux variantes de netcat | \textbf{Attention :} Il existe au moins $N$ variantes de netcat | ||||||
| en circulation, bien entendu avec des options et des | en circulation, bien entendu avec des options et des | ||||||
| comportements différents. | comportements différents. | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										34
									
								
								chap/scripting.tex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								chap/scripting.tex
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | |||||||
|  | \chapter{scripting} | ||||||
|  | 
 | ||||||
|  | \section{Awk} \index{Awk} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | Quelques \textsl{oneliners} de bon aloi pour vous donner | ||||||
|  | une idée du langage\dots | ||||||
|  | 
 | ||||||
|  | \begin{verbatim} | ||||||
|  |   cat                    { print $0 }    or just    1 | ||||||
|  |   grep pattern           /pattern/ | ||||||
|  |   head -n 5              NR <= 5 | ||||||
|  |   cut -f1                { print $1 } | ||||||
|  |   tr a-z A-Z             { print toupper($0) } | ||||||
|  |   sed 's/hi/ho/g'        gsub(/hi/,"ho") | ||||||
|  |   wc -l                  END { print NR } | ||||||
|  | \end{verbatim} | ||||||
|  | 
 | ||||||
|  | % =============================================================== | ||||||
|  | \subsection{Un exemple simple} | ||||||
|  | 
 | ||||||
|  | À partir d'un jeu de données structurées, nous allons générer un | ||||||
|  | fichier \texttt{.inc} contenant un objet pour Povray\index{povray}. | ||||||
|  | Un cas d'école : un élément par ligne, les valeurs séparées par | ||||||
|  | des espaces. | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | \lstinputlisting[]{code/awk/dataset} | ||||||
|  | 
 | ||||||
|  | Ces données sont les coordonnées \textsc{xyz} et le rayon d'une | ||||||
|  | petite collection de bubulles. Pratiquement, une représentation | ||||||
|  | sommaire d'une sphère de povray. | ||||||
|  | 
 | ||||||
|  | % =============================================================== | ||||||
							
								
								
									
										13
									
								
								chap/son.tex
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								chap/son.tex
									
									
									
									
									
								
							| @ -91,8 +91,8 @@ sur la page \pageref{chap:MIDI}. | |||||||
| TODO\index{XXX} | TODO\index{XXX} | ||||||
| 
 | 
 | ||||||
| %------------------------------------------------------------------ | %------------------------------------------------------------------ | ||||||
| 
 | % | ||||||
| 
 | %		bienvenu dans le monde de LP | ||||||
| \section{pulseaudio} | \section{pulseaudio} | ||||||
| \index{pulseaudio} | \index{pulseaudio} | ||||||
| \label{pulseaudio} | \label{pulseaudio} | ||||||
| @ -102,7 +102,7 @@ même falloir y passer : ce machin prétenduement | |||||||
| \textsl{michu compliant}\index{Michu} | \textsl{michu compliant}\index{Michu} | ||||||
|  a parfois, voire même souvent, tendance à se mettre en travers |  a parfois, voire même souvent, tendance à se mettre en travers | ||||||
| du chemin des honnètes gens% | du chemin des honnètes gens% | ||||||
| \footnote{Du moins vers l'année 2014}. | \footnote{Du moins vers les années 2014/2019}. | ||||||
| 
 | 
 | ||||||
| %------------------------------------------------------------------ | %------------------------------------------------------------------ | ||||||
| \section{Jack} | \section{Jack} | ||||||
| @ -159,6 +159,13 @@ voir qu'elle est à deux niveaux. | |||||||
| 
 | 
 | ||||||
| https://www.xiph.org/ao/doc/drivers.html | https://www.xiph.org/ao/doc/drivers.html | ||||||
| 
 | 
 | ||||||
|  | \subsection{Choisir la sortie} | ||||||
|  | 
 | ||||||
|  | Pour choisr comment et vers quelle prise physique libao va envoyer | ||||||
|  | le son, il y a deux choix à faire. La partie logicielle d'une part | ||||||
|  | (aixs, oss, alsa, jack, sndio\dots) | ||||||
|  | et la partie matérielle (jack standard, casque audio USB\dots). | ||||||
|  | 
 | ||||||
| %------------------------------------------------------------------ | %------------------------------------------------------------------ | ||||||
| 
 | 
 | ||||||
| \section{Portaudio} \label{Portaudio} \index{Portaudio} | \section{Portaudio} \label{Portaudio} \index{Portaudio} | ||||||
|  | |||||||
| @ -32,7 +32,7 @@ the implementation makes use of the FUSE (Filesystem in Userspace) | |||||||
| kernel module. The practical effect of this is that the end user can | kernel module. The practical effect of this is that the end user can | ||||||
| seamlessly interact with remote files being securely served over SSH | seamlessly interact with remote files being securely served over SSH | ||||||
| just as if they were local files on his/her computer. On the remote | just as if they were local files on his/her computer. On the remote | ||||||
| computer the SFTP subsystem of SSH is used.} | computer the SFTP\index{sftp} subsystem of SSH is used.} | ||||||
| 
 | 
 | ||||||
| Hélas, ça ne marche pas trop bien depuis un | Hélas, ça ne marche pas trop bien depuis un | ||||||
| OpenBSD\index{OpenBSD}\footnote{OpenBSD 5.5 sur sparc64} : | OpenBSD\index{OpenBSD}\footnote{OpenBSD 5.5 sur sparc64} : | ||||||
|  | |||||||
| @ -152,6 +152,16 @@ VLC peut éventuellement aussi être utilisé comme un outil | |||||||
| de streaming, voyez ça page \pageref{streamvlc}, bon courage. | de streaming, voyez ça page \pageref{streamvlc}, bon courage. | ||||||
| 
 | 
 | ||||||
| % -------------------------------------------------------------------- | % -------------------------------------------------------------------- | ||||||
|  | \section{Mediainfo} | ||||||
|  | 
 | ||||||
|  | \begin{quote} | ||||||
|  | MediaInfo\footnote{by the famous Zenitram of DaLFP.} is a utility | ||||||
|  | used for retrieving technical information and other | ||||||
|  | metadata about audio or video files. | ||||||
|  | \end{quote} | ||||||
|  | 
 | ||||||
|  | % -------------------------------------------------------------------- | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| \section{Autres trucs} | \section{Autres trucs} | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -6,7 +6,7 @@ | |||||||
| % ============================================================== | % ============================================================== | ||||||
| \section{Apache} \index{Apache} | \section{Apache} \index{Apache} | ||||||
| 
 | 
 | ||||||
| Le grand classique. | Le grand classique. Que nous ne verrons pas pour le moment. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| % ============================================================== | % ============================================================== | ||||||
| @ -22,6 +22,13 @@ root@ramen:~# service lighttpd force-reload | |||||||
| root@ramen:~#  | root@ramen:~#  | ||||||
| \end{verbatim} | \end{verbatim} | ||||||
| 
 | 
 | ||||||
|  | \textbf{Q:} Sur une installation fraiche, la racine du site est | ||||||
|  | en 403\index{403} ?\linebreak | ||||||
|  | \textbf{R:} Par défaut le listing des répertoires vides | ||||||
|  | (sans \texttt{index.html}) est interdit. Pour changer ça, il faut | ||||||
|  | \texttt{\# lighttpd-enable-mod dir-listing} et | ||||||
|  | \texttt{\# service lighttpd force-reload}, voilà. | ||||||
|  | 
 | ||||||
| % ============================================================== | % ============================================================== | ||||||
| 
 | 
 | ||||||
| \section{Custom made} | \section{Custom made} | ||||||
|  | |||||||
							
								
								
									
										3
									
								
								code/awk/dataset
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								code/awk/dataset
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | 17     9      4      1.5 | ||||||
|  | 11     0.8    2.3    0.989 | ||||||
|  | 0      0       0     1 | ||||||
							
								
								
									
										0
									
								
								code/awk/mkunion.awk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								code/awk/mkunion.awk
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										2
									
								
								main.tex
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								main.tex
									
									
									
									
									
								
							| @ -119,6 +119,8 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots | |||||||
| % \input{chap/SCSI} | % \input{chap/SCSI} | ||||||
| \input{chap/X11} | \input{chap/X11} | ||||||
| \input{chap/Fortran} | \input{chap/Fortran} | ||||||
|  | \input{chap/scripting} | ||||||
|  | 
 | ||||||
| % \input{chap/GMP} | % \input{chap/GMP} | ||||||
| \input{chap/Python} | \input{chap/Python} | ||||||
| \input{chap/dino} | \input{chap/dino} | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user