Outils pour utilisateurs

Outils du site


en_vrac

Téléchargements, liens et infos en vrac

sebsauvage.net

Des informations en vrac concernant mon site.

  • Curiosité: Si vous allez sur les moteurs de recherche DuckDuckGo ou QWant, le fait de taper !seb avant un mot le cherchera sur mon Shaarli
  • Tutoriel Blender qui n'a jamais été terminé faute de temps (et de toute manière l'interface de Blender a changé depuis tout ce temps).
  • Le fameux CSS Zen Garden sous forme de fichier zip (23 658 315 octets) (pratique pour étudier hors-ligne) (Merci au webmaster de CSS Zen Garden )
  • Ceux qui surfent sur mon site avec IE6 voient ceci sur la page d'accueil. J'utilise cette astuce pour l'afficher uniquement pour IE6:
    <!--[if lt IE 7]>
    <script language="JavaScript" type="text/javascript" src="badbrowser.js"></script>
    <![endif]-->
  • Mise en cache: Pour alléger la charge de mon serveur, j'ai une politique de cache assez agressive: J'ai spécifié des mises en cache côté client (navigateur) avec mon fichier .htaccess:
    .htaccess
    # mettre en cache les images et fichiers flash pour un mois
    <FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
    Header set Cache-Control "max-age=2592000"
    </FilesMatch>
     
    # mettre en cache les fichiers javascript, texte,css et pdf pour une semaine
    <FilesMatch ".(js|css|pdf|txt)$">
    Header set Cache-Control "max-age=604800"
    </FilesMatch>
     
    #mettre en cache les fichiers html et htm pour 30 minutes
    <FilesMatch ".(html|htm|php)$">
    Header set Cache-Control "max-age=1800"
    </FilesMatch>
     
    Header unset ETag
    FileETag None 

    A cause de cette politique de cache, si vous avez un doute, pressez F5 pour forcer le rafraîchissement d'une page.

  • Expérimentation: Suite à mon article sur VizHash, j'en ai fait une version php+GD (incompatible avec la version Python) disponible à cet emplacement. C'est juste 142 lignes de php. Ça peut par exemple être utilisé comme avatar dans les forums:
    • Prenez l'adresse IP du visiteur (par exemple 172.13.67.89).
    • hashez-la (md5 ou autre): 172.13.67.89 –> md5=10cee9bc2df4e3047d20fdff7c60dce0
    • Et voilà votre avatar. Ainsi un visiteur qui revient avec la même IP aura le même avatar.
    • Vous pouvez spécifier des tailles différentes avec les paramètres width et height, par exemple:
      https://sebsauvage.net/vizhash_gd.php?t=10cee9bc2df4e3047d20fdff7c60dce0&width=64&height=64 (max: 256x256)
    • Vous pouvez bien entendu entrer du texte simple: https://sebsauvage.net/vizhash_gd.php?t=hello,dude
    • Le hash visuel est conçu pour garder ses caractéristiques visuelles même si il est écrasé.
    • Soyons clair: Ce hash visuel est moche. Le but n'est pas la beauté, mais la différenciation visuelle.
    • L'algo mérite grandement une amélioration pour rendre les images plus particulières (filtres ? fractales ? noise ? autre ? qqchose qui doit être faisable avec GD pur, et sans consommer trop de CPU).
    • :!: Notez que le service peut être supprimé à tout moment. C'est juste un bricolage.
  • TeamViewer: Si vous avez besoin d'envoyer le serveur TeamViewer QuickSupport à quelqu'un pour le dépanner à distance (voir cet article), utilisez le raccourci sebsauvage.net/tv : vous serez immédiatement redirigé vers le téléchargement du client QS TeamViewer sur le site officiel.
  • Ma page https://sebsauvage.net/punching/ est bloquée par pas mal de proxy. Vous pouvez aussi la consulter sur https://sebsauvage.net/pu/
  • Historiquement, sebsauvage.net a été hébergé sur un paquet d'hébergeurs différents:
    • le-village.org (un hébergeur, une communauté et des admins vraiment très sympa. Tout a finit par être racheté par iFrance qui a pourri les pages de publicité (un tier de l'écran) et n'étaient pas foutus de gérer les serveurs (FTP tout le temps indisponibles, serveurs horriblement ralentis).
    • Respublica.fr, un petit hébergeur merdique (qui a réussi à classer mon site par erreur dans la catégorie "adultes"). Ils avaient des limites débiles, comme un maximum de 5 Mo par fichier (adieu mes PDF) et pas de fichiers .exe (adieux mes programmes).
    • crosswinds.net, un hébergeur canadien chez qui j'ai été hébergé quelques temps, suite à une loi française. L'hébergement était tout à fait correct, mais ils ont fini par fermer leur hébergement gratuit.
    • J'ai aussi fait un petit détour par wordswideweb.com, petit hébergeur simple mais sympa. Ça n'a pas duré longtemps.
    • free.fr, fidèle depuis plus de 10 ans. Même si leurs serveurs sont lents, ils ont toujours été parmis les meilleurs hébergeurs gratuits, et sans publicité. Il y a toujours une copie de mon site chez free, mais pas toujours à jour (sebsauvage.free.fr). Free ayant mutilé la configuration d'Apache et php, certaines parties de mon site ne marchent pas chez free (wiki par exemple).
    • Et je suis actuellement hébergé gracieusement chez stackx.com (merci à eux !).
  • Avant d'avoir un nom de domaine, mon site était accessible par un redirecteur: http://www.bigfoot.com/~sebsauvage. Du jour au lendemain, ce redirecteur est devenu payant, et plus cher qu'un nom de domaine. J'ai donc décidé d'acheter mon nom de domaine chez gandi.net (un registrar français très honnête). Début décembre 2011, j'ai également acheté sebsauvage.eu qui redirige pour le moment vers le .net.
  • La liste des anciennes mises à jour du site est encore consultable dans cette page.
  • https://sebsauvage.net/urban renvoie automatiquement vers l'article qui présente Urban Terror sur CommentÇaMarche.
  • https://sebsauvage.net/ambient contient des musiques qui peuvent être sympa quand on joue à Minecraft ou RimWorld.
  • https://sebsauvage.net/plans contient les plans des transports en commun de diverses villes.
  • https://sebsauvage.net/q3ut4 est un serveur de maps pour Urban Terror, probablement l'un des plus complets au monde. Il contient plus de 2000 maps.
  • https://sebsauvage.net/streisand.me contient le projet AutoBlog (système anti-censure), ainsi qu'un certain nombre de blogs répliqués.

VirtualBox / VMware

  • Sous VirtualBox, si vous faites tourner Linux dans une machine virtuelle et que vous voulez que les partages soient montés automatiquement à chaque redémarrage (pour accéder à votre disque réel), vous pouvez ajouter dans votre /etc/rc.local, par exemple:
    mount -t vboxsf -o uid=1000,gid=1000 C_DRIVE /mnt/c

    (En ayant pris soin de créer les points de montage au préalable dans votre machine virtuelle)

  • Toujours dans VirtualBox, si vous voulez dupliquer un .vdi, il faut lui attribuer un nouveau UUID:
    VBoxManage internalcommands sethduuid disque.vdi
  • Dans VirtualBox, pour récupérer l'espace inutilisé d'un disque VDI (pour réduire sa taille). Si la machine virtuelle est sous Windows:
    1. Défragmenter l'espace libre (par exemple avec MyDefrag: Consolidate free space).
    2. Écrire des zéros dans l'espace libre: sdelete -z c: (sdelete est dispo chez Microsoft).
    3. Éteindre la VM.
    4. Faire: VBoxManage modifyhd –compact mondisque.vdi
  • La même chose si la VM est sous Linux:
    1. booter sur un LiveCD.
    2. sudo apt-get install zerofree
    3. sudo zerofree -v /dev/sda1 (ou toute autre partition). (zerofree supporte ext2/ext3/ext4)
    4. Éteindre la VM.
    5. Faire: VBoxManage modifyhd –compact mondisque.vdi
  • Pour la mise à jour d'une VM Windows fraîchement installée:
    • Installation du SP3 pour XP: Lien
    • Dans le panneau de configuration → Système → onglet Mises à jour automatiques → Téléchargement automatiquement les mises à jour et avertir lorsqu'elles sont prêtes à être installées.
    • Après installation de Windows, forcer l'installation de toutes les mises à jour: wuauclt /detectnow. Penser à décocher la mise à jour « Notification Windows Genuine Advantage ».
    • Après installation des mises à jour, vidage du cache de WindowsUpdate: net stop wuauserv, puis vider le répertoire c:\Windows\SoftwareDistribution puis net start wuauserv.
  • Si dans VMWare vous n'arrivez pas à installer les additions invité, vous pouvez télécharger l'ISO manuellement pour vos différents OS guest (http://packages.vmware.com/tools/esx/latest/index.html) puis monter l'ISO dans la machine virtuelle.
  • Si vous avez une VM Windows sous OSX avec un clavier Mac, voici le mapping: http://phocean.net/tools/french-apple-macbook-keyboard-layout-for-windows (dézippez, lancez setup.exe puis changer le mapping du clavier dans la config Windows).
  • Sous VMWare, si vous voulez accéder aux répertoires partagés quand votre guest est Ubuntu 10.10, il faut installer les paquets suivants:
    sudo apt-get install open-vm-tools open-vm-dkms

    sans quoi ça ne marchera pas. Après vous pourrez monter un share même en tant que simple utilisateur avec:

    vmware-hgfsmounter .host:/shared /home/toto/shared

Images

Optimiser les fichiers png

  • Installation:
    sudo apt install pngnq optipng
  • Optimisation (avec réduction des couleurs):
    pngnq -vf -s1 *.png
    optipng -o7 *-nq8.png
  • Optimisation (sans réduction des couleurs):
    optipng -o7 *.png

Explications:

  • optipng re-compresse le png en essayant différentes options de compression, et garde la meilleure afin d'obtenir le fichier le plus petit possible. L'image est inchangée.
  • pngnq réduit le nombre de couleurs de l'image, ce qui permet d'avoir des taux de compression bien meilleurs. Cela modifie l'image. À utiliser ou non au cas par cas (selon l'image).

Optimiser des images jpeg

  • Installation:
    sudo apt install libjpeg-turbo-progs
  • Optimisation (sans perte de qualité):
    #!/bin/bash
    for i in *.jpg; do
     echo $i
     tempname=`mktemp --suffix=.jpg`
     jpegtran -copy none -progressive -optimize -outfile "$tempname" "$i"
     cp "$tempname" "$i"
     rm "$tempname"
    done

Cette opération fait 3 choses:

  • Elle supprime les méta-données des images JPEG (EXIF, miniatures…)
  • Elle passe le jpg en mode progressif (jpg plus compacte, chargement visuellement plus rapide dans les pages web).
  • Elle recompresse les données avec une table huffman optimisée.
  • Cela n'a absolument aucun impacte sur la qualité d'image mais réduit de manière appréciable la taille du fichier jpg.

Notez que jpegtran est très sensible au fait que le fichier jpg soit valide. Si vous tombez sur un fichier invalide, re-enregistrez-le avec votre logiciel habituel et redonnez-le à manger à jpegtran.

Divers

  • apt-get avec proxy + mot de passe sous Linux: C'est toujours la merde pour faire les updates d'une Debian en passant par un proxy avec mot de passe, et j'oublie toujours la manipulation:
    • Créer /etc/apt/apt.conf.d/proxy contenant:
      Acquire::http::Proxy "http://login:motdepasse@adresseproxy:port";
      Acquire::ftp::Proxy "http://login:motdepasse@adresseproxy:port";
    • A la fin de /etc/wgetrc mettre:
      http_proxy = http://adresseproxy:port/
      https_proxy = http://adresseproxy:port/
      ftp_proxy = http://adresseproxy:port/
      proxy_user = login
      proxy_password = motdepasse
      use_proxy = on
      wait = 15
    • Dans /etc/environ, ajouter:
      HTTP_PROXY="http://login:motdepasse@adresseproxy:port/"
      HTTPS_PROXY="http://login:motdepasse@adresseproxy:port/"
      FTP_PROXY="http://login:motdepasse@adresseproxy:port/"

Scripts Caja

Sous Linux, j'utilise Caja comme gestionnaire de fichier. Voici quelques script pour faire des actions quand on fait un clic-droit sur un fichier ou un répertoire. (PS: On peut faire la même chose avec la plupart des gestionnaires de fichiers (Nautilus, etc.))

Ces scripts sont à placer dans ~/.config/caja/scripts

Compression ultra-rapide en .tar.gz (Vous devez préalablement avoir installé pigz (sudo apt install pigs).

Compresser RAPIDEMENT en tar-gzip
#!/bin/bash
# Créer rapidement une archive .tar.gz
IFS=$'\n'
for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do
    if [ -d "$FILENAME" ]; then
        cmd="tar -c \"`basename \"$FILENAME\"`\" | nice pigz -c > \"$FILENAME.tar.gz\""
        xterm -T "Compression de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
        notify-send -i info -t 20000 "Compression terminée." "`basename $FILENAME`.tar.gz"
    fi
    if [ -f "$FILENAME" ]; then
        cmd="pv \"$FILENAME\" | nice pigz -c > \"$FILENAME.gz\""
        xterm -T "Compression de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
        notify-send -i info -t 20000 "Compression terminée." "`basename $FILENAME`.gz"
    fi
done

Convertir une vidéo ou un fichier audio en MP3

Convertir en MP3
#!/bin/bash
# Convertir une vidéo en mp3
IFS=$'\n'
for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do
   if [ -f "$FILENAME" ]; then
       cmd="ffmpeg -i \"$FILENAME\" -f mp3 -acodec mp3 -b:a 196k \"$FILENAME-converted\".mp3"
       xterm -T "Conversion de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
       notify-send -i info -t 20000 "Conversion terminée." "`basename $FILENAME`-converted.mp3"
   fi
done

Convertir (ou recompresser) une vidéo en mp4 (h264/aac) pour publication sur le web:

Convertir en MP4
#!/bin/bash
# Convertir une vidéo en mp4 pour publication sur le web
IFS=$'\n'
for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do
   if [ -f "$FILENAME" ]; then
       cmd="ffmpeg -i \"$FILENAME\" -acodec aac -strict -2 -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3 \"$FILENAME-converted\".mp4"
       xterm -T "Conversion de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
       notify-send -i info -t 20000 "Conversion terminée." "`basename $FILENAME`-converted.mp4"
   fi
done

Convertir (ou recompresser) une vidéo en mp4 (h264/aac) pour publication sur le web, mais sans le son:

Convertir en MP4 (sans le son)
#!/bin/bash
# Convertir une vidéo en mp4 pour publication sur le web (sans le son)
IFS=$'\n'
for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do
   if [ -f "$FILENAME" ]; then
       cmd="ffmpeg -an -i \"$FILENAME\" -vf \"scale=trunc(iw/2)*2:trunc(ih/2)*2\" -vcodec libx264 -pix_fmt yuv420p -profile:v baseline -level 3 \"$FILENAME-converted\".mp4"
       xterm -T "Conversion de `basename $FILENAME`" -e /bin/bash -l -c "$cmd ; read"
       notify-send -i info -t 20000 "Conversion terminée." "`basename $FILENAME`-converted.mp4"
   fi
done

Convertir une vidéo en mp4 sans ré-encoder les flux audio/vidéo (pratique quand vous avez déjà un h264/aac, mais dans un conteneur mkv ou avi):

Convertir en MP4 sans ré-encoder
#!/bin/bash
# Convertir une vidéo en mp4 sans ré-encder
IFS=$'\n'
for FILENAME in $CAJA_SCRIPT_SELECTED_FILE_PATHS; do
   if [ -f "$FILENAME" ]; then
       cmd="ffmpeg -i \"$FILENAME\" -acodec copy -vcodec copy \"$FILENAME-converted\".mp4"
       xterm -T "Conversion de `basename $FILENAME`" -e /bin/bash -l -c "$cmd"
       notify-send -i info -t 20000 "Conversion terminée." "`basename $FILENAME`-converted.mp4"
   fi
done

Page de maintenance rapide

Pour faire une page de maintenace rapide pour votre site, sans se prendre la tête: (complété par Bredt)

  • Créez un fichier maintenance.off à la racine de votre site.
  • Créez la page html de maintenance:
en-maintenance.html
<!doctype html>
<title>sebsauvage.net</title>
<style>
  body { text-align: center; padding: 100px; }
  h1 { font-size: 50px; }
  body { font: 20px Helvetica, sans-serif; color: #333; }
  article { display: block; text-align: left; width: 650px; margin: 0 auto; padding-bottom:50px; }
  a { color: #dc8100; text-decoration: none; }
  a:hover { color: #333; text-decoration: none; }
</style>
<article>
    <h1>Site en maintenance</h1>
    <div>
        <p>sebsauvage.net est actuellement en maintenance. Le site sera de nouveau en ligne dans quelques heures. D&eacute;sol&eacute; du d&eacute;rangement !</p>
        <p>&mdash; sebsauvage</p>
    </div>
</article>
<article>
    <h1>Maintenance in progress</h1>
    <div>
        <p>sebsauvage.net is currently under maintenance. It will be back online in a few hours. Sorry for the inconvenience.</p>
        <p>&mdash; sebsauvage</p>
    </div>
</article>

(Visuellement, ça donne ceci.)

  • Ensuite, ajoutez des lignes suivantes au fichier .htaccess à la racine de votre site (ou dans un sous-répertoire si vous ne voulez mettre qu'une partie de votre site en maintenance):
.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/maintenance.on -f
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1
RewriteCond %{REQUEST_URI} !/en-maintenance\.html$
RewriteRule .* http://sebsauvage.net/en-maintenance.html [R=302,L]

Notes:

  • Remplacez 127\.0\.0\.1 par votre adresse IP. Seule cette adresse IP accèdera normalement au site sans voir la page de maintenance. (Si vous n'avez qu'un accès web à votre site (pas de FTP ou ssh), attention à ne pas vous bloquer vous-même.)
  • Dans les deux dernières lignes, remplacez les URL par celle de votre page de maintenance (attention à l'anti-slash avant le .html dans l'avant-dernière ligne).
  • C'est une redirection temporaire (302), ce qui n'affectera pas votre référencement/indexation dans les moteurs de recherche.
  • Si vous voulez ajouter des images dans la page de maintenance, ajoutez avant la dernière ligne:
    RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]

Vous pouvez maintenant facilement activer/désactiver la page de maintenance simplement en renommant le fichier maintenance.on/maintenance.off

en_vrac.txt · Dernière modification : 2022/10/05 11:35 de sebsauvage