un peu plus de doc...
This commit is contained in:
parent
6bf18548b5
commit
8a5d00f289
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
L'automate qui contrôle les fonctions vitales des petites
|
L'automate qui contrôle les fonctions vitales des petites
|
||||||
\textit{Pyrocystis Fusiformis} est basé sur un Arduino Mega\index{mega},
|
\textit{Pyrocystis Fusiformis} est basé sur un Arduino Mega\index{mega},
|
||||||
qui a été choisi pour sa profusion d'entrées sorties\index{io}.
|
qui a été choisi pour sa profusion d'entrées sorties\index{i/o}.
|
||||||
Il va remplir plusieurs fonctions mises au point les unes et les autres.
|
Il va remplir plusieurs fonctions mises au point les unes et les autres.
|
||||||
|
|
||||||
Dans un premier temps, le logiciel sera développé avec l'\textsl{IDE}
|
Dans un premier temps, le logiciel sera développé avec l'\textsl{IDE}
|
||||||
@ -10,25 +10,67 @@ standard de l'Arduiono, malgré ses limitations.
|
|||||||
Il existe des solutions alternatives à base de \texttt{makefile}, que
|
Il existe des solutions alternatives à base de \texttt{makefile}, que
|
||||||
nous découvrirons un jour, si le besoin s'en fait sentir.
|
nous découvrirons un jour, si le besoin s'en fait sentir.
|
||||||
|
|
||||||
|
Ce lo
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\subsection{Dialogue}
|
\subsection{Dialogue}
|
||||||
|
|
||||||
|
Le but étant d'avoir un système
|
||||||
|
\textsl{standalone}\footnote{lowcost and easytouse ?}, le dialogue
|
||||||
|
avec les humains extérieur sera plus que limité en fonctionnement
|
||||||
|
courant.
|
||||||
|
|
||||||
|
Pour la configuration, nous allons créer une \textsc{CLI}\index{cli}
|
||||||
|
rudimentaire qui sera accessible par le port USB et un émulateur
|
||||||
|
de terminal\footnote{Minicom, Putty...}.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\subsection{Température} \index{temperature}
|
\subsection{Température} \index{temperature}
|
||||||
|
|
||||||
|
Les capteurs utilisés sont des LM35\index{LM35}, à sortie analogique
|
||||||
|
entre 0 et 5v pour une gamme de température de 0 à ??? degrés Celsius.
|
||||||
|
|
||||||
|
Le convertisseur \small{A/D} a une résolution de 10 bits, qu'il
|
||||||
|
est possible d'augmenter en changeant son Vref, soit pour une
|
||||||
|
référence externe, soit pour une référence interne à 1.1 V.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\subsection{Voyants}
|
\subsection{Voyants}
|
||||||
|
|
||||||
Il faut \textbf{toujours} intégrer dans un projet une gestion avancée
|
Il faut \textbf{toujours} intégrer dans un projet une gestion avancée
|
||||||
des \textsc{LED}\index{LED} qui clignotent avec entrain.
|
des \textsc{led}\index{LED} qui clignotent avec entrain pour raconter
|
||||||
|
la vie interne de la machinerie.
|
||||||
|
|
||||||
|
Une paire Rouge/Bleue indiquera les sorties de l'intervalle
|
||||||
|
de température pré-programmé.
|
||||||
|
Une \textsc{led} orange clignotante indiquera une erreur
|
||||||
|
en s'exprimant en code Morse.
|
||||||
|
|
||||||
|
Quand à la \textsc{led} verte, elle sera là pour ne rien dire de précis,
|
||||||
|
mais avec brio.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\subsection{Chauffage} \index{chauffage}
|
\subsection{Chauffage} \index{chauffage}
|
||||||
|
|
||||||
|
En première approche, un choix simple a été fait~: nous allons
|
||||||
|
utiliser un chauffage intégré d'aquarium en de basant d'abord
|
||||||
|
sur son thermostat intégré.
|
||||||
|
|
||||||
|
Si ce n'est pas satisfaisant, pour diverses raisons (matériel
|
||||||
|
chinois à 3 balles, par exemple),
|
||||||
|
nous serons obligés de commander nous-même ce chauffage.
|
||||||
|
|
||||||
|
C'est à ce moment que les choses deviennent sérieuses, il va
|
||||||
|
falloir commuter du 230v, tension assez mortelle dans les faits.
|
||||||
|
Une solution à base d'opto-coupleur semble s'imposer.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\subsection{Refroidissement}.
|
\subsection{Refroidissement}.
|
||||||
|
|
||||||
|
Puisque l'enceinte choisi est un frigorifique de
|
||||||
|
récupération\footnote{Merci DomDom :)}, nous pourrons utiliser son
|
||||||
|
groupe froid. Comme pour le chauffage, nous sommes sur du 230v.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
\documentclass[a4paper,11pt]{article}
|
\documentclass[a4paper,10pt]{article}
|
||||||
|
|
||||||
% \listfiles % pour le debug
|
% \listfiles % pour le debug
|
||||||
|
|
||||||
@ -25,6 +25,12 @@
|
|||||||
|
|
||||||
\pagebreak
|
\pagebreak
|
||||||
|
|
||||||
|
% \setlength{\parskip}{0.01cm plus 0.01cm}
|
||||||
|
\tableofcontents
|
||||||
|
% \setlength{\parskip}{0.16cm plus 0.16cm}
|
||||||
|
|
||||||
|
\pagebreak
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
@ -41,15 +47,14 @@ arrivons parfois à le faire.
|
|||||||
|
|
||||||
La première étape sera donc la mise au point d'un \textsl{cadriciel}
|
La première étape sera donc la mise au point d'un \textsl{cadriciel}
|
||||||
permettant d'essayer diverses options en se basant sur une conception
|
permettant d'essayer diverses options en se basant sur une conception
|
||||||
modulaire de l'ensemble.
|
modulaire de l'ensemble. Une grosse partie sera écrite en C\index{C},
|
||||||
|
avec d'éventuels modules en langages de script :
|
||||||
|
Perl\index{Perl}, Awk\index{Awk}, Bash\index{Bash}\dots
|
||||||
|
|
||||||
Les valeurs à mesurer étant de diverses natures, nous aurons l'occasion
|
Les valeurs à mesurer étant de diverses natures, nous aurons l'occasion
|
||||||
de découvrir plein de capteurs différents : température, humidité,
|
de découvrir plein de capteurs différents : température, humidité,
|
||||||
\texttt{pH}, transparence, lumière, vibrations\dots
|
\texttt{pH}, transparence, lumière, vibrations\dots
|
||||||
|
|
||||||
% \setlength{\parskip}{0.01cm plus 0.01cm}
|
|
||||||
\tableofcontents
|
|
||||||
% \setlength{\parskip}{0.16cm plus 0.16cm}
|
|
||||||
|
|
||||||
\vspace{4cm}
|
\vspace{4cm}
|
||||||
|
|
||||||
@ -92,7 +97,7 @@ tentent de s'échapper.
|
|||||||
\subsection{Stockage}
|
\subsection{Stockage}
|
||||||
|
|
||||||
Pour entreposer toutes ces valeurs numériques, il existe plusieurs
|
Pour entreposer toutes ces valeurs numériques, il existe plusieurs
|
||||||
choix, et nous allons en évaluer quelques uns :
|
choix, et nous allons en évaluer quelques uns~:
|
||||||
|
|
||||||
\texttt{flatfile}\index{flatfile} (page \pageref{flatfile}),
|
\texttt{flatfile}\index{flatfile} (page \pageref{flatfile}),
|
||||||
\texttt{rrdb}\index{rrdb} (page \pageref{rrdb}),
|
\texttt{rrdb}\index{rrdb} (page \pageref{rrdb}),
|
||||||
@ -117,7 +122,7 @@ C'est expliqué à la page \pageref{eyecandy}\index{curses}.
|
|||||||
% ===================================================================
|
% ===================================================================
|
||||||
% nouveau 2019-02-22
|
% nouveau 2019-02-22
|
||||||
|
|
||||||
\input{automate}
|
\input{automate}
|
||||||
|
|
||||||
% ===================================================================
|
% ===================================================================
|
||||||
|
|
||||||
@ -150,6 +155,7 @@ par un port série (page \pageref{serialcode}).
|
|||||||
Pour continuer dans une démarche disruptive, des outils
|
Pour continuer dans une démarche disruptive, des outils
|
||||||
avancés de visualisation sont proposés dans la rubrique
|
avancés de visualisation sont proposés dans la rubrique
|
||||||
\ref{eyecandy} qui parle de \texttt{vt100}\label{vt100}.
|
\ref{eyecandy} qui parle de \texttt{vt100}\label{vt100}.
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
\subsection{Analyses}
|
\subsection{Analyses}
|
||||||
@ -263,7 +269,7 @@ Après tout, un \textsl{timestamp}\index{timestamp} et quelques valeurs
|
|||||||
numériques peuvent suffire à beaucoup de \textsl{usecases} de la
|
numériques peuvent suffire à beaucoup de \textsl{usecases} de la
|
||||||
vie courante.
|
vie courante.
|
||||||
|
|
||||||
Voici un exemple, un format\label{foo.dat} d'enregistrement de
|
Voici le premier exemple, un format\label{foo.dat} d'enregistrement de
|
||||||
température facilement exploitable avec Awk ou Gnuplot :
|
température facilement exploitable avec Awk ou Gnuplot :
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
@ -275,145 +281,12 @@ tth@phytotron:~/DD2-monitor/doc$ tail -3 ../serial/foo.dat
|
|||||||
|
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
\section{RRDB} \label{rrdb}
|
\input{storages}
|
||||||
|
|
||||||
Première tentative d'utilisation le lendemain du premier apéro 2019
|
|
||||||
du Tetalab\footnote{Jean-Yves, je vous demande de vous calmer !}.
|
|
||||||
|
|
||||||
Je suis parti sur quelques scripts shell, pour créer, mettre à jour et
|
|
||||||
analyser les enregistrements d'une valeur de type \textsc{gauge}.
|
|
||||||
|
|
||||||
\subsection{Create}
|
|
||||||
|
|
||||||
\begin{lstlisting}
|
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source ./commun.sh
|
|
||||||
starttime=$(date +'%s')
|
|
||||||
echo creating $RRDB at ${starttime}s since epoch
|
|
||||||
rrdtool create $RRDB \
|
|
||||||
--start $starttime \
|
|
||||||
--step 60 \
|
|
||||||
DS:value:GAUGE:150:0:10 \
|
|
||||||
RRA:AVERAGE:0.5:1:60
|
|
||||||
\end{lstlisting}
|
|
||||||
|
|
||||||
\subsection{Update} \index{rrdtool}
|
|
||||||
|
|
||||||
Une fois la base créée, il faut bien la remplir.
|
|
||||||
Dans cet exemple, nous allons utiliser le \textit{load}
|
|
||||||
de notre Linux.
|
|
||||||
|
|
||||||
\begin{lstlisting}
|
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source ./commun.sh
|
|
||||||
ctime=$(date +'%s')
|
|
||||||
value=$(cut -d ' ' -f 1 /proc/loadavg)
|
|
||||||
|
|
||||||
# inject value in the rrdb file
|
|
||||||
rrdtool update $RRDB ${ctime}:${value}
|
|
||||||
\end{lstlisting}
|
|
||||||
|
|
||||||
\subsection{Analyze}
|
|
||||||
|
|
||||||
Nous allons essayer d'exploiter les données dûrement acquises
|
|
||||||
pendant les heures qui précèdent\dots
|
|
||||||
|
|
||||||
\begin{lstlisting}
|
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
source ./commun.sh
|
|
||||||
tmpf="somevalues.dat"
|
|
||||||
rrdtool fetch $RRDB LAST |
|
|
||||||
tr -d ':' |
|
|
||||||
awk '
|
|
||||||
(!/nan/ && NF==2) { print $1, $2 }
|
|
||||||
' \
|
|
||||||
> ${tmpf}
|
|
||||||
|
|
||||||
# as an example, we are gnuploting our datas
|
|
||||||
gnuplot << __EOC__
|
|
||||||
set term png size 800,600
|
|
||||||
set output "graphe.png"
|
|
||||||
set grid
|
|
||||||
plot "${tmpf}" with lines
|
|
||||||
__EOC__
|
|
||||||
|
|
||||||
rm ${tmpf}
|
|
||||||
\end{lstlisting}
|
|
||||||
|
|
||||||
Il semble bien que l'utilisation de \texttt{fetch} ne soit pas
|
|
||||||
vraiment prévue pour ça, donc j'en arrive à la conclusion que
|
|
||||||
quelque chose m'échappe.
|
|
||||||
|
|
||||||
On va laisser ça en suspens pour le moment.
|
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
|
||||||
|
|
||||||
\section{InfluxDB} \label{influxdb}
|
|
||||||
|
|
||||||
La communication avec la bédédé se fait \textit{over HTTP}, un peu
|
|
||||||
comme tous ces trucs de d'jeunz d'aujourd'hui\dots
|
|
||||||
|
|
||||||
Au programme : écriture d'un injecteur en Perl\index{Perl}, en suivant
|
|
||||||
plus ou moins l'exemple de rrdb..
|
|
||||||
|
|
||||||
Ceci dit, en Debian stable, on n'a que la version 1.0, qui ne
|
|
||||||
correspond plus trop à l'actualité. Et la \textit{current} semble
|
|
||||||
trop fatiguante à compiler pour ce soir, ni même pour ce week-end.
|
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
|
||||||
|
|
||||||
\section{Gnocchi} \label{gnocchi} \index{Gnocchi}
|
|
||||||
|
|
||||||
\texttt{pip install gnocchi[postgresql,ceph,keystone]}, finalement,
|
|
||||||
çe ne me donne pas trop envie. C'est du genre \textit{usinagaz}.
|
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
|
||||||
\section{Sqlite} \index{sqlite} \label{sqlite}
|
|
||||||
|
|
||||||
\textsf{À regarder de près}
|
|
||||||
|
|
||||||
Est-il possible de traiter des \textit{time series} en SQL\index{SQL} ?
|
|
||||||
Peut-on utiliser Sqlite depuis un programme en Perl\index{Perl} ?
|
|
||||||
Faut-il commencer à trouver un \textit{usecase} crédible ?
|
|
||||||
NodeJs\index{nodejs} peut-il lire du Sqlite ?
|
|
||||||
|
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
\input{serial}
|
\input{serial}
|
||||||
|
\input{detournements}
|
||||||
% -------------------------------------------------------------------
|
|
||||||
|
|
||||||
\section{Détournements} \label{detournements}
|
|
||||||
|
|
||||||
Dans le contexte myryssien\index{Myrys}, il est évident que l'aspect
|
|
||||||
artistique\index{Art}
|
|
||||||
doit être dès le départ pris en compte.
|
|
||||||
Les possibilités ne seront limitées que par votre manque d'imagination.
|
|
||||||
|
|
||||||
Si vous voulez un petit exemple, imaginez des courbes de température
|
|
||||||
qui pilotent un \texttt{uGen} de Chuck\index{Chuck} ou des algues dont
|
|
||||||
les pulses lumineux envoie du \texttt{cv/gate} en temps réel.
|
|
||||||
|
|
||||||
\subsection{Variante sonore}
|
|
||||||
|
|
||||||
Un peu de \texttt{awk} pipé dans du \texttt{sox} ?
|
|
||||||
Voire même l'occasion (ou un bon prétexte) de résoudre ce problème
|
|
||||||
de saut de phase qui me tracasse depuis des mois ?
|
|
||||||
|
|
||||||
\subsection{Eye candy}\index{eyecandy}\label{eyecandy}
|
|
||||||
|
|
||||||
Pour maximiser l'impact visuel, il sera convenant de sortir du
|
|
||||||
cadre pseudo-moderne des omniprésents écrans de ces
|
|
||||||
smartphones\footnote{Quand les téléphones étaient attachés par
|
|
||||||
un fil, les humains étaient libres.} qui nous lavent le cerveau.
|
|
||||||
Sortons donc du contexte pixeliste et revenons aux fondamentaux :
|
|
||||||
le caractère\index{ncurses},
|
|
||||||
avec toute la simplicité de son concept sémantique.
|
|
||||||
|
|
||||||
% -------------------------------------------------------------------
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
\section{Conclusion} \label{conclusion} \index{conclusion}
|
\section{Conclusion} \label{conclusion} \index{conclusion}
|
||||||
|
29
doc/detournements.tex
Normal file
29
doc/detournements.tex
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
|
\section{Détournements} \label{detournements}
|
||||||
|
|
||||||
|
Dans le contexte myryssien\index{Myrys}, il est évident que l'aspect
|
||||||
|
artistique\index{Art}
|
||||||
|
doit être dès le départ pris en compte.
|
||||||
|
Les possibilités ne seront limitées que par votre manque d'imagination.
|
||||||
|
|
||||||
|
Si vous voulez un petit exemple, imaginez des courbes de température
|
||||||
|
qui pilotent un \texttt{uGen} de Chuck\index{Chuck} ou des algues dont
|
||||||
|
les pulses lumineux envoie du \texttt{cv/gate} en temps réel.
|
||||||
|
|
||||||
|
\subsection{Variante sonore}
|
||||||
|
|
||||||
|
Un peu de \texttt{awk} pipé dans du \texttt{sox} ?
|
||||||
|
Voire même l'occasion (ou un bon prétexte) de résoudre ce problème
|
||||||
|
de saut de phase qui me tracasse depuis des mois ?
|
||||||
|
|
||||||
|
\subsection{Eye candy}\index{eyecandy}\label{eyecandy}
|
||||||
|
|
||||||
|
Pour maximiser l'impact visuel, il sera convenant de sortir du
|
||||||
|
cadre pseudo-moderne des omniprésents écrans de ces
|
||||||
|
smartphones\footnote{Quand les téléphones étaient attachés par
|
||||||
|
un fil, les humains étaient libres.} qui nous lavent le cerveau.
|
||||||
|
Sortons donc du contexte pixeliste et revenons aux fondamentaux :
|
||||||
|
le caractère\index{ncurses} blanc sur fond noir,
|
||||||
|
avec toute la simplicité de son concept sémantique.
|
||||||
|
|
111
doc/storages.tex
Normal file
111
doc/storages.tex
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
% ============================================
|
||||||
|
%
|
||||||
|
% Various storages systems
|
||||||
|
%
|
||||||
|
% ============================================
|
||||||
|
|
||||||
|
\section{RRDB} \label{rrdb}
|
||||||
|
|
||||||
|
Première tentative d'utilisation le lendemain du premier apéro 2019
|
||||||
|
du Tetalab\footnote{Jean-Yves, je vous demande de vous calmer !}.
|
||||||
|
|
||||||
|
Je suis parti sur quelques scripts shell, pour créer, mettre à jour et
|
||||||
|
analyser les enregistrements d'une valeur de type \textsc{gauge}.
|
||||||
|
|
||||||
|
\subsection{Create}
|
||||||
|
|
||||||
|
\begin{lstlisting}
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ./commun.sh
|
||||||
|
starttime=$(date +'%s')
|
||||||
|
echo creating $RRDB at ${starttime}s since epoch
|
||||||
|
rrdtool create $RRDB \
|
||||||
|
--start $starttime \
|
||||||
|
--step 60 \
|
||||||
|
DS:value:GAUGE:150:0:10 \
|
||||||
|
RRA:AVERAGE:0.5:1:60
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\subsection{Update} \index{rrdtool}
|
||||||
|
|
||||||
|
Une fois la base créée, il faut bien la remplir.
|
||||||
|
Dans cet exemple, nous allons utiliser le \textit{load}
|
||||||
|
de notre Linux.
|
||||||
|
|
||||||
|
\begin{lstlisting}
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ./commun.sh
|
||||||
|
ctime=$(date +'%s')
|
||||||
|
value=$(cut -d ' ' -f 1 /proc/loadavg)
|
||||||
|
|
||||||
|
# inject value in the rrdb file
|
||||||
|
rrdtool update $RRDB ${ctime}:${value}
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\subsection{Analyze}
|
||||||
|
|
||||||
|
Nous allons essayer d'exploiter les données dûrement acquises
|
||||||
|
pendant les heures qui précèdent\dots
|
||||||
|
|
||||||
|
\begin{lstlisting}
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ./commun.sh
|
||||||
|
tmpf="somevalues.dat"
|
||||||
|
rrdtool fetch $RRDB LAST |
|
||||||
|
tr -d ':' |
|
||||||
|
awk '
|
||||||
|
(!/nan/ && NF==2) { print $1, $2 }
|
||||||
|
' \
|
||||||
|
> ${tmpf}
|
||||||
|
|
||||||
|
# as an example, we are gnuploting our datas
|
||||||
|
gnuplot << __EOC__
|
||||||
|
set term png size 800,600
|
||||||
|
set output "graphe.png"
|
||||||
|
set grid
|
||||||
|
plot "${tmpf}" with lines
|
||||||
|
__EOC__
|
||||||
|
|
||||||
|
rm ${tmpf}
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Il semble bien que l'utilisation de \texttt{fetch} ne soit pas
|
||||||
|
vraiment prévue pour ça, donc j'en arrive à la conclusion que
|
||||||
|
quelque chose m'échappe.
|
||||||
|
|
||||||
|
On va laisser ça en suspens pour le moment.
|
||||||
|
|
||||||
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
|
\section{InfluxDB} \label{influxdb}
|
||||||
|
|
||||||
|
La communication avec la bédédé se fait \textit{over HTTP}, un peu
|
||||||
|
comme tous ces trucs de d'jeunz d'aujourd'hui\dots
|
||||||
|
|
||||||
|
Au programme : écriture d'un injecteur en Perl\index{Perl}, en suivant
|
||||||
|
plus ou moins l'exemple de rrdb..
|
||||||
|
|
||||||
|
Ceci dit, en Debian stable, on n'a que la version 1.0, qui ne
|
||||||
|
correspond plus trop à l'actualité. Et la \textit{current} semble
|
||||||
|
trop fatiguante à compiler pour ce soir, ni même pour ce week-end.
|
||||||
|
|
||||||
|
% -------------------------------------------------------------------
|
||||||
|
|
||||||
|
\section{Gnocchi} \label{gnocchi} \index{Gnocchi}
|
||||||
|
|
||||||
|
\texttt{pip install gnocchi[postgresql,ceph,keystone]}, finalement,
|
||||||
|
çe ne me donne pas trop envie. C'est du genre \textit{usinagaz}.
|
||||||
|
|
||||||
|
% -------------------------------------------------------------------
|
||||||
|
\section{Sqlite} \index{sqlite} \label{sqlite}
|
||||||
|
|
||||||
|
\textsf{À regarder de près}
|
||||||
|
|
||||||
|
Est-il possible de traiter des \textit{time series} en SQL\index{SQL} ?
|
||||||
|
Peut-on utiliser Sqlite depuis un programme en Perl\index{Perl} ?
|
||||||
|
Faut-il commencer à trouver un \textit{usecase} crédible ?
|
||||||
|
NodeJs\index{nodejs} peut-il lire du Sqlite ?
|
||||||
|
|
Loading…
Reference in New Issue
Block a user