time to sleep...
This commit is contained in:
parent
75a94fc6c7
commit
87fb8ed834
@ -12,7 +12,8 @@ John Warner Backus, ingénieur en radiophonie chez IBM\index{IBM},
|
|||||||
Dernière version à exiger le format '80 colonnes' des cartes perforées,
|
Dernière version à exiger le format '80 colonnes' des cartes perforées,
|
||||||
cette version est aussi (aux yeux de vieux dinos) la plus pure,
|
cette version est aussi (aux yeux de vieux dinos) la plus pure,
|
||||||
à cause d'instructions comme le \textsl{computed goto} ou le
|
à cause d'instructions comme le \textsl{computed goto} ou le
|
||||||
mythique \textsl{comefrom}. Nom officiel : \texttt{ANSI X3.9-1978}.
|
mythique \textsl{comefrom}\footnote{Keyword: Datamatic}.
|
||||||
|
Nom officiel : \texttt{ANSI X3.9-1978}.
|
||||||
|
|
||||||
% ============****************===============
|
% ============****************===============
|
||||||
|
|
||||||
@ -22,7 +23,8 @@ mythique \textsl{comefrom}. Nom officiel : \texttt{ANSI X3.9-1978}.
|
|||||||
|
|
||||||
Puis ce langage du passé a subi une évolution lente vers quelque
|
Puis ce langage du passé a subi une évolution lente vers quelque
|
||||||
chose de bien plus moderne : le Fortran 90.
|
chose de bien plus moderne : le Fortran 90.
|
||||||
Les dinos vont devoir s'adapter. Et utiliser \texttt{gfortran},
|
Les dinos vont devoir s'adapter.
|
||||||
|
Et songer à utiliser un \texttt{gfortran} moderne,
|
||||||
un élément de la Gnu Compiler Collection\index{gcc}.
|
un élément de la Gnu Compiler Collection\index{gcc}.
|
||||||
|
|
||||||
Comme pour tous les langages de programmation,
|
Comme pour tous les langages de programmation,
|
||||||
@ -76,7 +78,8 @@ flottant~:
|
|||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
character(len=89) :: arg
|
character(len=89) :: arg
|
||||||
real :: cx
|
real :: cx
|
||||||
call getarg(2, string) ; read (string, *) cx
|
call getarg(2, string)
|
||||||
|
read (string, *) cx
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
@ -86,7 +89,7 @@ flottant~:
|
|||||||
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
|
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},
|
par défaut du premier élément d'un tableau est \textbf{1},
|
||||||
mais cette valeur peut être modifiée à la déclaration
|
mais cette valeur peut être modifiée à la déclaration
|
||||||
du tableau.
|
du tableau.
|
||||||
|
|
||||||
@ -101,6 +104,14 @@ Il semble qu'il y ait deux concepts orthogonaux.
|
|||||||
|
|
||||||
\textit{Open, Read, Write, Inquire, toussa\dots}
|
\textit{Open, Read, Write, Inquire, toussa\dots}
|
||||||
|
|
||||||
|
\subsection{Sequentiel texte}
|
||||||
|
|
||||||
|
XXX\index{XXX}
|
||||||
|
|
||||||
|
\subsection{Indexé} \index{index}
|
||||||
|
|
||||||
|
XXX\index{XXX}
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
|
|
||||||
\section{Modules}
|
\section{Modules}
|
||||||
@ -110,6 +121,10 @@ 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.
|
||||||
|
|
||||||
|
Il serait bon de voir un exemple du monde réel. Ou juste un
|
||||||
|
exemple basique. Mais avec des explications. Parce que ce n'est pas
|
||||||
|
vraiment évident. Mais c'est un concept balaize.
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
\section{Random et Aléa}
|
\section{Random et Aléa}
|
||||||
|
|
||||||
@ -128,6 +143,15 @@ La dernière ligne va vous étonner.
|
|||||||
dummy = rand()
|
dummy = rand()
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
% --------------------------------------------------------
|
||||||
|
% new Thu 24 Nov 2022 02:27:05 AM CET
|
||||||
|
|
||||||
|
\section{Options de gfortran} \index{gfortran}
|
||||||
|
|
||||||
|
Comme d'habitude avec gcc\footnote{The Gnu Compiler Collection}, les
|
||||||
|
options sont innombrables. J'ai essayé d'en dégager les plus importantes,
|
||||||
|
mais ce ne sont probablement pas les seules.
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
|
|
||||||
\section{Images}
|
\section{Images}
|
||||||
@ -138,7 +162,7 @@ Par exemple \textbf{g2} (page \pageref{g2}) semble être utilisable
|
|||||||
avec les vieux F77, et possiblement avec un Fortran moderne, il faut juste
|
avec les vieux F77, et possiblement avec un Fortran moderne, il faut juste
|
||||||
un peu de \textsc{rtfm}.
|
un peu de \textsc{rtfm}.
|
||||||
|
|
||||||
Nous allons donc commencer par Plplot.
|
Nous allons donc commencer par Plplot, pour envisager ensuite les alternatives.
|
||||||
|
|
||||||
% --------------------------------------------------------
|
% --------------------------------------------------------
|
||||||
|
|
||||||
@ -182,6 +206,7 @@ D'accord, mais dessiner quoi ?
|
|||||||
\item Comment déclarer une variable statique dans une procédure ?
|
\item Comment déclarer une variable statique dans une procédure ?
|
||||||
\item Pourquoi ne pas parler de DISLIN ?
|
\item Pourquoi ne pas parler de DISLIN ?
|
||||||
\item Est-il possible de causer à \texttt{libsndfile} ?
|
\item Est-il possible de causer à \texttt{libsndfile} ?
|
||||||
|
\item Comment caler une chaine à gauche avec un \textsc{format} ?
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
% ========================================
|
% ========================================
|
||||||
|
27
chap/bdd.tex
Normal file
27
chap/bdd.tex
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
\chapter{Bases de données}
|
||||||
|
\label{chap:bdd}
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------
|
||||||
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
\section{sqlite} \index{sqlite}
|
||||||
|
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------
|
||||||
|
\subsection{CLI} \index{cli}
|
||||||
|
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------
|
||||||
|
\subsection{Libreoffice} \index{Libreoffice}
|
||||||
|
|
||||||
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
\section{GDBM} \index{GDBM}
|
||||||
|
|
||||||
|
% ----------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
\section{Postgresql}
|
||||||
|
|
||||||
|
% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
@ -47,7 +47,7 @@ Le pendant graphique est \texttt{xcowsay}.
|
|||||||
|
|
||||||
\textsl{Display large characters made up of ordinary screen characters.}
|
\textsl{Display large characters made up of ordinary screen characters.}
|
||||||
|
|
||||||
Il y a énormément d'option, en voice une première~:
|
Il y a énormément d'option, en voici une première~:
|
||||||
\texttt{-W} permet d'espacer un peu les caractères.
|
\texttt{-W} permet d'espacer un peu les caractères.
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
@ -98,12 +98,28 @@ ___________
|
|||||||
| *** . * |
|
| *** . * |
|
||||||
| ** *.** |
|
| ** *.** |
|
||||||
___________
|
___________
|
||||||
|
tth@plop $ bcd "we make porn" | tr ']' 'x'
|
||||||
|
________________________________________________
|
||||||
|
/WE MAKE PORN |
|
||||||
|
| x x x |
|
||||||
|
| x x xxxx |
|
||||||
|
|x |
|
||||||
|
|1111x1111111111111111111111111111111111111111111|
|
||||||
|
|22222x222222222222222222222222222222222222222222|
|
||||||
|
|333333333333333333333333333333333333333333333333|
|
||||||
|
|444x44444444444444444444444444444444444444444444|
|
||||||
|
|5x5555x5555x555555555555555555555555555555555555|
|
||||||
|
|x66666666x66666666666666666666666666666666666666|
|
||||||
|
|77777777x777777777777777777777777777777777777777|
|
||||||
|
|888888888888888888888888888888888888888888888888|
|
||||||
|
|9999999999x9999999999999999999999999999999999999|
|
||||||
|
|________________________________________________|
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Certains esprits ouverts pensent que
|
Certains esprits ouverts pensent que
|
||||||
\texttt{fortune}\index{fortune} est aussi un
|
\texttt{fortune}\index{fortune} est aussi un
|
||||||
générateur de données futilement complexes.
|
générateur de données futilement complexes.
|
||||||
D'autres songent à MXDoctor\index{emacs} ou Camélia.
|
D'autres penseront à MX-Doctor\index{emacs} ou Camélia.
|
||||||
|
|
||||||
\subsection{Les animations}
|
\subsection{Les animations}
|
||||||
|
|
||||||
@ -112,6 +128,22 @@ 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}
|
||||||
faire d'animation imprimable.
|
faire d'animation imprimable.
|
||||||
|
|
||||||
|
% ===============================================================
|
||||||
|
|
||||||
|
\section{Faire \textsl{beep-beep}}
|
||||||
|
|
||||||
|
Dans le temps, les ordinateurs de type IBM-PC n'avaient qu'un tout
|
||||||
|
petit \textsl{buzzer} pour se faire entendre\footnote{Négligeons les
|
||||||
|
ventilateurs en première approche.} avec seulement 1 bit de résolution.
|
||||||
|
On pouvait quand même modifier la fréquence et jouer de petites
|
||||||
|
mélodies.
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
$ beep -f 1000 -n -f 2000 -n -f 1500
|
||||||
|
$ beep -f 300.7 -r 2 -d 100 -l 400
|
||||||
|
$ cat codes.txt | beep -c -f 400 -D 50 -l 10
|
||||||
|
$ beep -f 1000 -r 2 -n -r 5 -l 10 --new
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
% ===============================================================
|
% ===============================================================
|
||||||
|
|
||||||
|
@ -91,18 +91,21 @@ options sont un peu ésotériques et parfois inter-dépendantes\dots
|
|||||||
\hline
|
\hline
|
||||||
Code & Signification \\
|
Code & Signification \\
|
||||||
\hline
|
\hline
|
||||||
txtfont & \\
|
-txtfont & \\
|
||||||
fontsize & \\
|
-fontsize & taille des caractères \\
|
||||||
kerning & espacement entre les caractères \\
|
-kerning & espacement entre les caractères \\
|
||||||
color & \\
|
-color & couleur de l'encre \\
|
||||||
stroke & couleur 'bord' de caractère \\
|
-stroke & couleur 'bord' de caractère \\
|
||||||
strokewidth & largeur de la bordure \\
|
-strokewidth & largeur de la bordure \\
|
||||||
txtopts & \\
|
-txtopts & \textsl{Gni?} \\
|
||||||
gravity & \\
|
-gravity & vers quel point cardinal le texte va-t-il être \textsl{tiré} ? \\
|
||||||
annotate & \\
|
-annotate & \texttt{+30+30 "texte à écrire"} \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
|
Pour avoir la liste des couleurs disponibles : \texttt{convert -list color}
|
||||||
|
et celles des fontes : \texttt{convert -list color}.
|
||||||
|
|
||||||
|
|
||||||
\subsection{Questions...}
|
\subsection{Questions...}
|
||||||
|
|
||||||
@ -120,7 +123,7 @@ image name, and more.
|
|||||||
|
|
||||||
Krkrkr\dots
|
Krkrkr\dots
|
||||||
|
|
||||||
\subsection{Faire des GIFs animées}\index{GIF}
|
\subsection{Faire des GIFs animées}\index{gif89a}
|
||||||
|
|
||||||
Ces petites images clignotantes sont l'essence même du
|
Ces petites images clignotantes sont l'essence même du
|
||||||
Web\index{web} moderne depuis 1992 malgré leurs limitations,
|
Web\index{web} moderne depuis 1992 malgré leurs limitations,
|
||||||
@ -159,9 +162,11 @@ changer la dimension de l'image. En détail, j'ai pas tout compris.
|
|||||||
|
|
||||||
On trouve encore en circulation de très vieux logiciels qui ne savent lire
|
On trouve encore en circulation de très vieux logiciels qui ne savent lire
|
||||||
qu'un encore plus ancien format : \textsl{Targa file format}.
|
qu'un encore plus ancien format : \textsl{Targa file format}.
|
||||||
Et dans une variante bien précise.
|
Et dans une variante bien précise : mode \textsc{rgb} et non compressé%
|
||||||
|
\footnote{Un jour, peut-être, ça va changer\dots}.
|
||||||
|
|
||||||
Il nous faut donc une incantation bien précise :
|
Il nous faut donc une incantation bien précise avec, heureusement, des
|
||||||
|
arguments aux noms évocateurs :
|
||||||
|
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
GOTO_TGA ()
|
GOTO_TGA ()
|
||||||
@ -211,7 +216,8 @@ language interpreter. gmic: GREYC's Magic for Image Computing.}
|
|||||||
Gmic se base sur une grosse\footnote{énorme, même. dans les deux sens\dots}
|
Gmic se base sur une grosse\footnote{énorme, même. dans les deux sens\dots}
|
||||||
bibliothèque de fonctions écrite
|
bibliothèque de fonctions écrite
|
||||||
en \texttt{C++}\index{C++} dont l'utilisation est bien
|
en \texttt{C++}\index{C++} dont l'utilisation est bien
|
||||||
docummentée dans le livre ???\index{XXX}
|
documentée dans le livre ???\index{XXX} mais nécessite quand même
|
||||||
|
de solides bases dans les subtilitées fourbes du \texttt{C++}.
|
||||||
|
|
||||||
Gmic existe aussi en plugin pour Gimp\index{Gimp} avec une interface
|
Gmic existe aussi en plugin pour Gimp\index{Gimp} avec une interface
|
||||||
pleine de curseurs et de boutons, qui facilite (ou pas) l'exploration
|
pleine de curseurs et de boutons, qui facilite (ou pas) l'exploration
|
||||||
@ -276,13 +282,18 @@ use it heavily.
|
|||||||
sion schemes.
|
sion schemes.
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
|
% -------------------------------------------------------------------
|
||||||
|
\section {EXIF} \index{EXIF}
|
||||||
|
|
||||||
|
Logiciels: \texttt{exiftool}\dots
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
\section{Cimg} \index{Cimg}
|
\section{Cimg} \index{Cimg}
|
||||||
|
|
||||||
\texttt{Cimg} est l'énorme bibliothèque de fonctions
|
\texttt{Cimg} est l'énorme bibliothèque de fonctions
|
||||||
(écrites en \texttt{C++}\footnote{\textsc{wtf?}}) sur lesquelles
|
(écrites en \texttt{C++}\footnote{\textsc{wtf?}}) sur lesquelles
|
||||||
et basé Gmic. C'est long à compiler, ça produit des binaires
|
est basé Gmic. C'est long à compiler, ça produit des binaires
|
||||||
énormes, mais il semble bien que ça puisse faire des trucs géniaux.
|
énormes, mais il semble bien que ça puisse faire des trucs géniaux.
|
||||||
|
|
||||||
\subsection{\textsc{hello world}}
|
\subsection{\textsc{hello world}}
|
||||||
@ -308,6 +319,9 @@ return 0;
|
|||||||
}
|
}
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Un concept interessant, mais pas évident au premier abord. Un peu comme
|
||||||
|
les branchements dans Chuck\index{Chuck} ou les pipes du shell\dots
|
||||||
|
|
||||||
\subsection{Questions...}
|
\subsection{Questions...}
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
@ -1,47 +1,65 @@
|
|||||||
\chapter{Photographie}
|
\chapter{Photographie}
|
||||||
\index{Photo}
|
\index{Photo}
|
||||||
|
|
||||||
Voir aussi ImageMagick dans le chapitre \ref{chap:image},
|
Le domaine de la photographie numérique est vaste.
|
||||||
|
Nous allons essayer d'en entrevoir certains aspects et de
|
||||||
|
découvrir quelques recettes bien pratiques.
|
||||||
|
Dans le (dés)ordre, nous verrons comment récupérer les
|
||||||
|
image d'un appareil qui n'est pas compatible avec le
|
||||||
|
bien pratique protocole \textsl{mass storage}, puis nous
|
||||||
|
passerons au traitement des fichiers crus, les fameux
|
||||||
|
\textsc{raw} qui font le bonheur de monsieur Reep.
|
||||||
|
|
||||||
|
|
||||||
|
Voir aussi ImageMagick dans le chapitre \ref{chap:image},
|
||||||
|
page \pageref{chap:image}, un bon outil pour brotcher vos images.
|
||||||
|
|
||||||
|
%----------------------------------------------------------------
|
||||||
|
|
||||||
\section{gphoto2}
|
\section{gphoto2}
|
||||||
\index{gphoto2}
|
\index{gphoto2}
|
||||||
|
|
||||||
Notes écrites en se basant sur la version 2.4.5 (Ubuntu 10.04),
|
Notes écrites en se basant sur la version 2.5.20 (Debian 10.23),
|
||||||
les choses peuvent être (rarement) différentes chez vous.
|
les choses peuvent être (rarement) différentes chez vous.
|
||||||
L'appareil photo que j'utilise actuellement est un
|
L'appareil photo que j'utilise actuellement est un
|
||||||
Canon \textit{PowerShot A520}.
|
Canon \textit{EOS 600D}\footnote{Hélas, j'ai perdu mon bien-aimé
|
||||||
|
PowerShot A520\dots}, dont, il faut bien l'avouer, la complexité
|
||||||
|
m'effraye un peu.
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
gphoto2 --list-ports
|
gphoto2 --list-ports
|
||||||
gphoto2 --list-cameras
|
gphoto2 --list-cameras
|
||||||
|
gphoto2 --auto-detect
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Deux commandes pour obtenir la description des modes de connexion
|
Ces trois commandes servent à obtenir la description des modes de
|
||||||
possibles, et la liste des appareils gérés.
|
connexion possibles, la liste des appareils gérés, et l'éventuel
|
||||||
|
appareil connecté, si il est sous tension, bien entendu :)
|
||||||
|
|
||||||
|
%----------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
gphoto2 --auto-detect
|
|
||||||
gphoto2 --port usb:002,002 -P
|
gphoto2 --port usb:002,002 -P
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Détection d'un éventuel appareil connecté, puis récupération
|
Cette commande fait une récupération
|
||||||
bestiale de toutes les photos (l'option \texttt{-P} peut
|
bestiale de toutes les photos (l'option \texttt{-P} peut
|
||||||
être remplacée par \texttt{--get-all-files}).
|
être remplacée par \texttt{--get-all-files}).
|
||||||
|
|
||||||
L'option \texttt{--new} permet de se limiter au
|
L'option \texttt{--new} permet de se limiter au
|
||||||
téléchargement des nouvelles photos.
|
téléchargement des nouvelles photos.
|
||||||
|
|
||||||
Pour les drogués de la ligne de commande, l'option \texttt{--shell}
|
Pour les drogués de la ligne de commande, l'option \texttt{--shell}
|
||||||
démarre un environnement interactif, qui permet d'explorer le
|
démarre un environnement interactif, qui permet d'explorer le
|
||||||
contenu de votre appareil, et d'interagir avec lui.
|
contenu de votre appareil, et d'interagir avec lui. Ce qu'on peut faire
|
||||||
|
semble assez dépendant du modèle d'apn utilisé.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Il doit exister plein d'autres tricks'n'tips, il faut juste prendre
|
Il doit exister plein d'autres tricks'n'tips, il faut juste prendre
|
||||||
le temps de les découvrir.
|
le temps de les découvrir.
|
||||||
|
|
||||||
%----------------------------------------------------------------
|
%================================================================
|
||||||
|
|
||||||
\section{ufraw}
|
\section{ufraw}
|
||||||
\index{ufraw}
|
\index{ufraw}
|
||||||
@ -50,7 +68,8 @@ Ufraw (Unidentified Flying Raw) est un convertisseur de fichier images
|
|||||||
\textit{RAW}, c'est à dire en général les données brutes en sortie
|
\textit{RAW}, c'est à dire en général les données brutes en sortie
|
||||||
du capteur de l'appareil photo.
|
du capteur de l'appareil photo.
|
||||||
|
|
||||||
%----------------------------------------------------------------
|
%================================================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -27,6 +27,9 @@ Pour faire une planche contact d'une vidéo :
|
|||||||
jpeg:outdir=/tmp -sstep 60 monfichier.ts}
|
jpeg:outdir=/tmp -sstep 60 monfichier.ts}
|
||||||
|
|
||||||
% --------------------------------------------------------------------
|
% --------------------------------------------------------------------
|
||||||
|
%
|
||||||
|
% <doug> https://img.ly/blog/ultimate-guide-to-ffmpeg/
|
||||||
|
%
|
||||||
|
|
||||||
\section{ffmpeg}
|
\section{ffmpeg}
|
||||||
\index{ffmpeg}
|
\index{ffmpeg}
|
||||||
|
@ -7,7 +7,8 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
/* ------------------------------------------------------------------ */
|
||||||
|
int check_a_file_by_fp(FILE *fp, char *filename)
|
||||||
{
|
{
|
||||||
int input, linenum, count;
|
int input, linenum, count;
|
||||||
int flagline;
|
int flagline;
|
||||||
@ -22,16 +23,52 @@ while (EOF != (input=getc(stdin))) {
|
|||||||
}
|
}
|
||||||
if ((input < 0) || (input>127)) {
|
if ((input < 0) || (input>127)) {
|
||||||
if (!flagline) {
|
if (!flagline) {
|
||||||
fprintf(stderr, "non ascii 0x%x line %d\n",
|
fprintf(stderr, "%s: non ascii 0x%x line %d\n",
|
||||||
|
filename,
|
||||||
input, linenum);
|
input, linenum);
|
||||||
flagline = 1;
|
flagline = 1;
|
||||||
}
|
}
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (count) {
|
return count;
|
||||||
fprintf(stderr, "at least %d non-ascii characters found\n", count);
|
|
||||||
exit(1);
|
|
||||||
}
|
}
|
||||||
|
/* ------------------------------------------------------------------ */
|
||||||
|
int check_a_file_by_name(char *name)
|
||||||
|
{
|
||||||
|
FILE *fp;
|
||||||
|
int foo;
|
||||||
|
|
||||||
|
if (NULL == name) {
|
||||||
|
fp = stdin;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (NULL==(fp=fopen(name, "r"))) {
|
||||||
|
perror(name);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo = check_a_file_by_fp(fp, NULL==name ? "<stdin>" : name);
|
||||||
|
|
||||||
|
return foo;
|
||||||
|
}
|
||||||
|
/* ------------------------------------------------------------------ */
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int foo, idx;
|
||||||
|
|
||||||
|
if (1 == argc) {
|
||||||
|
foo = check_a_file_by_name(NULL);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
for (idx=1; idx<argc; idx++) {
|
||||||
|
printf("%4d %s\n", idx, argv[idx]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------ */
|
||||||
|
5
code/sqlite/.gitignore
vendored
Normal file
5
code/sqlite/.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
|
||||||
|
*.sqlite
|
||||||
|
|
||||||
|
|
2
code/sqlite/README.md
Normal file
2
code/sqlite/README.md
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# sqlite
|
||||||
|
|
12
code/sqlite/create-and-fill.sh
Executable file
12
code/sqlite/create-and-fill.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DBFILE='example.sqlite'
|
||||||
|
|
||||||
|
rm -v $DBFILE
|
||||||
|
|
||||||
|
sqlite3 $DBFILE < create-table.sql
|
||||||
|
echo 'table created'
|
||||||
|
|
||||||
|
sqlite3 $DBFILE < insert-birds.sql
|
||||||
|
echo 'bird added'
|
||||||
|
|
14
code/sqlite/create-table.sql
Normal file
14
code/sqlite/create-table.sql
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
CREATE TABLE detections (
|
||||||
|
Date DATE,
|
||||||
|
Time TIME,
|
||||||
|
Sci_Name VARCHAR(100) NOT NULL,
|
||||||
|
Com_Name VARCHAR(100) NOT NULL,
|
||||||
|
Confidence FLOAT,
|
||||||
|
Lat FLOAT,
|
||||||
|
Lon FLOAT,
|
||||||
|
Cutoff FLOAT,
|
||||||
|
Week INT,
|
||||||
|
Sens FLOAT,
|
||||||
|
Overlap FLOAT,
|
||||||
|
File_Name VARCHAR(100) NOT NULL);
|
10
code/sqlite/insert-birds.sql
Normal file
10
code/sqlite/insert-birds.sql
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
insert into detections
|
||||||
|
(Sci_Name, Com_Name, File_Name)
|
||||||
|
values
|
||||||
|
('Foonis Barus', 'foobar','foo.wav') ;
|
||||||
|
|
||||||
|
insert into detections
|
||||||
|
(Sci_Name, Com_Name, File_Name)
|
||||||
|
values
|
||||||
|
('Quuxinus Oncore', 'quux','quux.wav') ;
|
@ -162,7 +162,7 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
|
|||||||
\input{chap/hardware}
|
\input{chap/hardware}
|
||||||
\input{chap/gadgets}
|
\input{chap/gadgets}
|
||||||
\input{chap/sdr}
|
\input{chap/sdr}
|
||||||
|
\input{chap/bdd} % nouveau 26 octobre 2022
|
||||||
\input{chap/slang}
|
\input{chap/slang}
|
||||||
\input{chap/curses}
|
\input{chap/curses}
|
||||||
\input{chap/openwrt}
|
\input{chap/openwrt}
|
||||||
|
Loading…
Reference in New Issue
Block a user