Table des matières

arnaud_d

Présentation

Je suis ingénieur en vibrations à Toulouse.

J'ai eu mon premier PC vers mes 8 ans (je crois), c'était un Philips P3120 avec un microprocesseur 8088 cadencé à 10 MHz (si vous avez connu faites moi signe ça me ferait rire :-D). Avec ça, j'ai appris à programmer en BASIC 8-).

p3105a.jpg

Après une longue période Windows, j'ai découvert Ubuntu mi-2007 : des CD d'installation avaient été mis en libre service à la coupe de robotique à la Ferté-Bernard. J'ai donc installé Feisty (7.04) sur mon sony_vaio_vgn-c1s|Sony Vaio VGN-C1S.

1278846537_104664233_1-fotos-de--sony-vaio-vgn-c1s-1278846537.jpg

Le Sony Vaio a rendu l'âme après 6 ans de loyaux services (pas trop mal !). J'ai ensuite eu un HP Pavillon dm1-3130 mais qui n'a duré que 2 ans (vive la fiabilité des notebook).

1217653-hp-pavilion-dm1-3231sf-1.jpg

Début 2014 j'ai décidé de monter moi-même mon PC qui comprend :

J'avais même demandé conseils sur le forum (voir discussion)

J'utilise essentiellement :

J'ai beaucoup utilisé par le passé:

Je pratique différents langages de programmation (à mon niveau !):

Participations (épisodiques, je l'avoue)

Où me retrouver

Scripts, programmes, astuces que je souhaite partager

Scripts Bash en relation avec la photographie

Statistiques Exif

exifstats.sh
#!/bin/sh
 
if [ "`uname -o`" = "GNU/Linux" ]
then
    html_reader="/usr/bin/firefox"
else
    html_reader="/cygdrive/c/Users/NG002B82/Local\ Settings/Application\ Data/Mozilla\ Firefox/firefox.exe"
fi
 
mkdir exifstats_data
 
# TODO :
#   - corrélation ouverture / focale
#   - vitesse d'obturation
 
# Recherche de fichiers et récupérations des informations
find . -iname '*.jpg' -exec exif '{}' \; | awk 'BEGIN{FS="|"}/^Focal Length  /{n_foc[$2]++}END {for (k in n_foc) {printf("%.3g %s\n",k,n_foc[k])}}' | sort -n > exifstats_data/focale.dat
find . -iname '*.jpg' -exec exif '{}' \; | awk 'BEGIN{FS="|"}/^F-Number/{n_foc[$2]++}END {for (k in n_foc) {printf("%.3g %s\n",substr(k,3,5),n_foc[k])}}' | sort -n > exifstats_data/aperture.dat
find . -iname '*.jpg' -exec exif '{}' \; | awk 'BEGIN{FS="|"}/^ISO Speed Ratings/{n_foc[$2]++}END {for (k in n_foc) {printf("%d %d\n",k,n_foc[k])}}' | sort -n > exifstats_data/ISO.dat
 
# Rédaction du script gnuplot
# \EOF indique qu'il ne faut rien interpréter
gnuplot <<\EOF
reset
set terminal svg font "Calibri" size 1000,400
unset key
set style fill solid 1.0
# force le minimum de y à 0
set yrange [0:]
 
# ===== FOCALE =====
set out 'exifstats_data/focale.svg'
set xlabel  'Focale (mm)'
set ylabel  'Nombre de photos'
set xtics rotate by 90 offset character 0, -1
set style data histograms
p 'exifstats_data/focale.dat' u 2:xticlabels(1)
set out
 
# ======= OUVERTURE ======
set out 'exifstats_data/aperture.svg'
set xlabel  'Ouverture'
set ylabel  'Nombre de photos'
set xtics rotate by 90 offset character 0, -1
p 'exifstats_data/aperture.dat' u 2:xticlabels(1)
set out
 
# ======= ISO =======
set out 'exifstats_data/ISO.svg'
set xlabel  'ISO'
set ylabel  'Nombre de photos'
set xtics rotate by 90 offset character 0, -2
p 'exifstats_data/ISO.dat' u 2:xticlabels(1)
set out
EOF
 
cat <<EOF > exifstats.htm
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<title>Statistiques photo</title>
</head>
<body>
<img src="exifstats_data/focale.svg">
<img src="exifstats_data/aperture.svg">
<img src="exifstats_data/ISO.svg">
</body>
EOF
 
$html_reader exifstats.htm &

Vérificateur de prix sur le site Grosbill.com

Lorsque j'ai décidé d'acheter mes compostants pour mon PC sur Grosbill, j'ai créé ce petit script afin de vérifier l'avolution des prix et surtout pour voir rapidement si l'un des composants avait été soldé.

grosbill.sh
#!/bin/bash
# definition du nom du fichier de sortie avec la date du jour
ofile=$(date +"%d-%b".txt)
 
# initialisation de total au frais de port
total=9.90
 
# Declaration d'une liste contenant les URL
declare -A device_list
device_list=(  ["Mere"]="http://www.grosbill.com/4-asrock_b75m_itx_-163764-informatique-_carte_mere" \
               ["Graphique"]="http://www.grosbill.com/4-asus_ati_radeon_hd6670_-164090-informatique-ati" \
               ["CPU"]="http://www.grosbill.com/4-intel_core_i5_3350p_3_1ghz_6mo_cache_sans_graphique_socket_lga1155_-166202-informatique-_processeur" \
               ["Boitier"]="http://www.grosbill.com/4-cooler_master_cm_690_ii_advanced_black_and_white_-169848-informatique-boitier" \
               ["RAM"]="http://www.grosbill.com/4-x-168285-x-xx" \
               ["Alim"]="http://www.grosbill.com/4-fortron_raider_550w_-190863-informatique-alimentation_atx" \
               ["Fan"]="http://www.grosbill.com/4-aerocool_shark_white_edition_120mm_-173184-informatique-ventilateur_boitier" \
               ["Clavier"]="http://www.grosbill.com/4-bluestork_kb_mediafirst2_-143786-peripheriques-clavier" \
        )
 
# Pour chaque composant, recuperer le prix et l'ajouter au total
# La ligne contenant le prix est celle-ci :
# <meta itemprop="price" content="75.24" />
# donc le search pattern est
# .*content="\(.*\)" \/>
for device in "${!device_list[@]}"
do
   price=$(wget ${device_list["$device"]} -O - -o /dev/null\ | grep 'itemprop="price"' | sed -e 's/.*content="\(.*\)" \/>/\1/')
   total=$(echo $total + $price | bc)
   echo -e "$device \t $price" >> $ofile;
done
echo -e "TOTAL \t $total" >> $ofile;
 
# Ranger les donnees dans le fichier en colonnes et reecrire le fichier
column -t $ofile | tee $ofile

Fichiers de coloration syntaxique GtkSourceView

Ces fichiers sont à copier dans /usr/share/gtksourceview-3.0/language-specs

Gnuplot

Je me suis basé sur le travail de Martin Schlenker sur cette page, mais j'ai complètement refait la liste des mots-clés et ai utilisé un nouveau style, identifier, pour ce que j’appelle les paramètres.

gnuplot.lang
<?xml version="1.0" encoding="UTF-8"?>
<!--
 
 Author: Martin Schlenker & Arnaud Dessein
 Copyright (C) 3/2009 Martin Schlenker <schlenker.martin@gmx.de>
 Copyright (C) 12/2011 Arnaud Dessein <arnaud.dessein@gmail.com>
 
 This library is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-->
<language id="gnuplot" _name="GNUplot" version="3.0" _section="Scientific">
  <metadata>
    <property name="mimetypes">text/x-gnuplot</property>
    <property name="globs">*.plt</property>
    <property name="line-comment-start">#</property>
  </metadata>
 
  <styles>
    <style id="command"         _name="Command"                 map-to="def:keyword"/>
    <style id="function"        _name="Function"                map-to="def:function"/>
    <style id="constant"        _name="Constant"                map-to="def:constant"/>
    <style id="parameter"       _name="Parameter"               map-to="def:identifier"/>
    <style id="floating-point"  _name="Floating point number"   map-to="def:floating-point"/>
  </styles>
 
  <definitions>
 
    <context id="constant" style-ref="constant">
        <keyword>canvas</keyword>
        <keyword>cgm</keyword>
        <keyword>corel</keyword>
        <keyword>dpu414</keyword>
        <keyword>dumb</keyword>
        <keyword>dxf</keyword>
        <keyword>eepic</keyword>
        <keyword>emf</keyword>
        <keyword>emtex</keyword>
        <keyword>epslatex</keyword>
        <keyword>epson_180dpi</keyword>
        <keyword>epson_60dpi</keyword>
        <keyword>epson_lx800</keyword>
        <keyword>fig</keyword>
        <keyword>gif</keyword>
        <keyword>hp2623A</keyword>
        <keyword>hp2648</keyword>
        <keyword>hp500c</keyword>
        <keyword>hpdj</keyword>
        <keyword>hpgl</keyword>
        <keyword>hpljii</keyword>
        <keyword>hppj</keyword>
        <keyword>imagen</keyword>
        <keyword>jpeg</keyword>
        <keyword>latex</keyword>
        <keyword>lua</keyword>
        <keyword>mf</keyword>
        <keyword>mif</keyword>
        <keyword>mp</keyword>
        <keyword>nec_cp6</keyword>
        <keyword>okidata</keyword>
        <keyword>pbm</keyword>
        <keyword>pcl5</keyword>
        <keyword>pdfcairo</keyword>
        <keyword>png</keyword>
        <keyword>pngcairo</keyword>
        <keyword>postscript</keyword>
        <keyword>pslatex</keyword>
        <keyword>pstex</keyword>
        <keyword>pstricks</keyword>
        <keyword>qms</keyword>
        <keyword>starc</keyword>
        <keyword>svg</keyword>
        <keyword>tandy_60dpi</keyword>
        <keyword>texdraw</keyword>
        <keyword>tgif</keyword>
        <keyword>tikz</keyword>
        <keyword>tkcanvas</keyword>
        <keyword>tpic</keyword>
        <keyword>unknown</keyword>
        <keyword>windows</keyword>
        <keyword>wxt</keyword>
    </context>
 
    <context id="command" style-ref="command">
        <keyword>cd</keyword>
        <keyword>call</keyword>
        <keyword>clear</keyword>
        <keyword>exit</keyword>
        <keyword>fit</keyword>
        <keyword>help</keyword>
        <keyword>history</keyword>
        <keyword>if</keyword>
        <keyword>load</keyword>
        <keyword>pause</keyword>
        <keyword>plot</keyword>
        <keyword>using</keyword>
        <keyword>u</keyword>
        <keyword>with</keyword>
        <keyword>w</keyword>
        <keyword>index</keyword>
        <keyword>every</keyword>
        <keyword>smooth</keyword>
        <keyword>thru</keyword>
        <keyword>print</keyword>
        <keyword>pwd</keyword>
        <keyword>quit</keyword>
        <keyword>replot</keyword>
        <keyword>reread</keyword>
        <keyword>reset</keyword>
        <keyword>save</keyword>
        <keyword>set</keyword>
        <keyword>show</keyword>
        <keyword>unset</keyword>
        <keyword>shell</keyword>
        <keyword>splot</keyword>
        <keyword>system</keyword>
        <keyword>test</keyword>
        <keyword>unset</keyword>
        <keyword>update</keyword>
        <keyword>replot</keyword>
    </context>
 
    <context id="parameter" style-ref="parameter">
        <keyword>angles</keyword>
        <keyword>arrow</keyword>
        <keyword>autoscale</keyword>
        <keyword>bars</keyword>
        <keyword>bmargin</keyword>
        <keyword>border</keyword>
        <keyword>boxwidth</keyword>
        <keyword>clabel</keyword>
        <keyword>clip</keyword>
        <keyword>cntrparam</keyword>
        <keyword>colorbox</keyword>
        <keyword>contour</keyword>
        <keyword>datafile</keyword>
        <keyword>decimalsign</keyword>
        <keyword>dgrid3d</keyword>
        <keyword>dummy</keyword>
        <keyword>encoding</keyword>
        <keyword>fit</keyword>
        <keyword>fontpath</keyword>
        <keyword>format</keyword>
        <keyword>functions</keyword>
        <keyword>function</keyword>
        <keyword>grid</keyword>
        <keyword>hidden3d</keyword>
        <keyword>historysize</keyword>
        <keyword>isosamples</keyword>
        <keyword>key</keyword>
        <keyword>label</keyword>
        <keyword>lmargin</keyword>
        <keyword>loadpath</keyword>
        <keyword>locale</keyword>
        <keyword>logscale</keyword>
        <keyword>mapping</keyword>
        <keyword>margin</keyword>
        <keyword>mouse</keyword>
        <keyword>multiplot</keyword>
        <keyword>mx2tics</keyword>
        <keyword>mxtics</keyword>
        <keyword>my2tics</keyword>
        <keyword>mytics</keyword>
        <keyword>mztics</keyword>
        <keyword>notitle</keyword>
        <keyword>offsets</keyword>
        <keyword>origin</keyword>
        <keyword>output</keyword>
        <keyword>parametric</keyword>
        <keyword>pm3d</keyword>
        <keyword>palette</keyword>
        <keyword>pointsize</keyword>
        <keyword>polar</keyword>
        <keyword>print</keyword>
        <keyword>rmargin</keyword>
        <keyword>rrange</keyword>
        <keyword>samples</keyword>
        <keyword>size</keyword>
        <keyword>style</keyword>
        <keyword>surface</keyword>
        <keyword>terminal</keyword>
        <keyword>tics</keyword>
        <keyword>ticslevel</keyword>
        <keyword>ticscale</keyword>
        <keyword>timestamp</keyword>
        <keyword>timefmt</keyword>
        <keyword>title</keyword>
        <keyword>tmargin</keyword>
        <keyword>trange</keyword>
        <keyword>urange</keyword>
        <keyword>variables</keyword>
        <keyword>version</keyword>
        <keyword>view</keyword>
        <keyword>vrange</keyword>
        <keyword>x2data</keyword>
        <keyword>x2dtics</keyword>
        <keyword>x2label</keyword>
        <keyword>x2mtics</keyword>
        <keyword>x2range</keyword>
        <keyword>x2tics</keyword>
        <keyword>x2zeroaxis</keyword>
        <keyword>xdata</keyword>
        <keyword>xdtics</keyword>
        <keyword>xlabel</keyword>
        <keyword>xmtics</keyword>
        <keyword>xrange</keyword>
        <keyword>xtics</keyword>
        <keyword>xzeroaxis</keyword>
        <keyword>y2data</keyword>
        <keyword>y2dtics</keyword>
        <keyword>y2label</keyword>
        <keyword>y2mtics</keyword>
        <keyword>y2range</keyword>
        <keyword>y2tics</keyword>
        <keyword>y2zeroaxis</keyword>
        <keyword>ydata</keyword>
        <keyword>ydtics</keyword>
        <keyword>ylabel</keyword>
        <keyword>ymtics</keyword>
        <keyword>yrange</keyword>
        <keyword>ytics</keyword>
        <keyword>yzeroaxis</keyword>
        <keyword>zdata</keyword>
        <keyword>zdtics</keyword>
        <keyword>cbdata</keyword>
        <keyword>cbdtics</keyword>
        <keyword>zero</keyword>
        <keyword>zeroaxis</keyword>
        <keyword>zlabel</keyword>
        <keyword>zmtics</keyword>
        <keyword>zrange</keyword>
        <keyword>ztics</keyword>
        <keyword>cblabel</keyword>
        <keyword>cbmtics</keyword>
        <keyword>cbrange</keyword>
        <keyword>cbtics</keyword>
        <keyword>out</keyword>
        <keyword>font</keyword>
        <keyword>lines</keyword>
        <keyword>lw</keyword>
        <keyword>missing</keyword>
        <keyword>lp</keyword>
        <keyword>pt</keyword>
    </context>
 
    <context id="function" style-ref="function"> 
        <keyword>abs</keyword>
        <keyword>acos</keyword>
        <keyword>acosh</keyword>
        <keyword>arg</keyword>
        <keyword>asin</keyword>
        <keyword>asinh</keyword>
        <keyword>atan</keyword>
        <keyword>atan2</keyword>
        <keyword>atanh</keyword>
        <keyword>besj0</keyword>
        <keyword>besj1</keyword>
        <keyword>besy0</keyword>
        <keyword>besy1</keyword>
        <keyword>ceil</keyword>
        <keyword>cos</keyword>
        <keyword>cosh</keyword>
        <keyword>erf</keyword>
        <keyword>erfc</keyword>
        <keyword>exp</keyword>
        <keyword>floor</keyword>
        <keyword>gamma</keyword>
        <keyword>ibeta</keyword>
        <keyword>inverf</keyword>
        <keyword>igamma</keyword>
        <keyword>imag</keyword>
        <keyword>invnorm</keyword>
        <keyword>int</keyword>
        <keyword>lambertw</keyword>
        <keyword>lgamma</keyword>
        <keyword>log</keyword>
        <keyword>log10</keyword>
        <keyword>norm</keyword>
        <keyword>rand</keyword>
        <keyword>real</keyword>
        <keyword>sgn</keyword>
        <keyword>sin</keyword>
        <keyword>sinh</keyword>
        <keyword>sqrt</keyword>
        <keyword>tan</keyword>
        <keyword>tanh</keyword>
        <keyword>column</keyword>
        <keyword>defined</keyword>
        <keyword>tm_hour</keyword>
        <keyword>tm_mday</keyword>
        <keyword>tm_min</keyword>
        <keyword>tm_mon</keyword>
        <keyword>tm_sec</keyword>
        <keyword>tm_wday</keyword>
        <keyword>tm_yday</keyword>
        <keyword>tm_year</keyword>
        <keyword>valid</keyword>
    </context>
 
 
    <context id="floating-point" style-ref="floating-point">
      <match extended="true">
        (?&lt;![\w\.])
        ([0-9]+[Ee][-+]?[0-9]+|
         ([0-9]*\.[0-9]+|[0-9]+\.)([Ee][-+]?[0-9]+)?)
        [i]?
        (?![\w\.])
      </match>
    </context>
 
    <context id="gnuplot">
      <include>
        <context ref="def:shell-like-comment"/>
        <context ref="def:string"/>
        <context ref="def:single-quoted-string"/>
        <context ref="command"/>
        <context ref="function"/>
        <context ref="constant"/>
        <context ref="parameter"/>
        <context ref="floating-point"/>
      </include>
 
    </context>
 
  </definitions>
 
</language>