Développement
Comment améliorer la sortie de tests de régression dans mon terminal ?

Si on utilise un Makefile, on peut y ajouter quelque chose comme ça:

KO='\e[1;31m'"*KO\033[1m\033[0m"
OK='\e[1;32m'"OK\033[1m\033[0m"

tests:
  for i in *.input; do \
    (mytest.sh $$i && /bin/echo -e ${OK}" $$i" ) || /bin/echo -e $(KO)" $$i"; done ;
Comment savoir où mon programme passe du temps ?

Sous Linux, on peut utiliser perf:

> perf record mon-programme arg1 arg2 ...
> perf report

Sous Debian, cela nécessite l'installation du paquet linux-tools (la commande perf le signale s'il est manquant).

Système
Le driver NVidia ramait sous debian, sur un DELL D830

Le problème est maintenant résolu en utilisant le driver NVidia 180.06 et en suivant les instructions pour son installation. Il m'a simplement fallu indiquer où se trouvait le compilateur GCC 4.1:

> export CC=/usr/bin/gcc-4.1
avant de lancer l'installation:
> sh NVIDIA-Linux-x86-180.06-pkg1.run

Lister les processus attachés un port

Utiliser la commande netstat -tulpn.

LaTeX et compagnie
Comment réarranger des documents PDF, pour mettre plusieurs pages par page par exemple ?

En utilisant la commande texexec.

Comment changer la profondeur de la table des matières ?

En utilisant la commande suivante dans le préambule:

\setcounter{tocdepth}{2}
2 permet de s'arrêter aux sous-sections.

Est-il possible de convertir du LaTeX vers du SVG ?

Oui, en utilisant le logiciel dvisvgm. Pour activer le moteur ghostcript sur mon installation Debian, j'ai dû faire un lien de /usr/lib/libgs.so vers /usr/lib/libgs.so.9. Il faut que dvisvgm puisse charger ce moteur pour pouvoir interpréter les commandes de placement dans le fichier .dvi.

Quels outils utiliser pour faire des figures en LaTeX ou pour insérer dans LaTeX ?

Petite liste d'outils que j'ai déjà utilisés ou que je met ici pour mémoire:

Et des paquetages:

(X)HTML
Comment insérer une vidéo et l'avancer à une certaine position dès le chargement ?

L'exemple suivant positionne la lecture à 1252 secondes. Il est important que le positionnement soit fait après le chargement des métadonnées de la vidéo, d'où la gestion de l'événement 'loadmetadata'.

<video id="vid1" width="400" height="222" controls="controls">
<source src="http://....ogv" type="video/ogg" />
bla bla bla
</video>
<script>
document.getElementById('vid1').addEventListener('loadedmetadata', function() {
  this.currentTime = 1252;
}, false);
</script>

Comment faire une vidéo pour que Firefox puisse en émettre le son ? et pour changer la résolution ?

Il m'est arrivé à plusieur reprises de convertir des vidéos pour insérer dans des pages web, mais Firefox refusait obstinément de sortir un quelconque son, alors qu'il parvenait à lire la vidéo. Cela est dû au codec utilisé. Pour le format .ogg en l'occurence, j'ai dû forcer l'utilisation du codec libvorbis avec ffmpeg:

> ffmpeg -acodec mp3 -i ~/t.avi -acodec libvorbis ~/t.ogg

De même, pour changer la résolution, il me semble qu'il faut mettre après le -i fichier l'option -s pour spéficier la résolution de la vidéo créée:

> ffmpeg -i ~/t.avi -s 320x240 ~/t.ogg
Mon script javascript ne s'exécute pas. Pourquoi donc ?

Il faut absolument une balise ouvrante et une balise fermante pour que le script soit exécuté. Ainsi, le code suivant ne marchera pas:

<script src="less.js" type="text/javascript"/>
Le script ne sera pas exécuté. Il faut plutôt mettre
<script src="less.js" type="text/javascript"></script>
Belle absurdité qui peut faire perdre pas mal de temps...

Encore pire, lorsqu'on utilise un programme pour manipuler du XML et que ce programme, lorsqu'il écrit du XML utilise, comme on s'y attend, la notation abrégée

<balise/>
au lieu de
<balise></balise>
lorsqu'il n'y a pas de noeuds sous cette balise, on peut encore perdre du temps... Dans ce dernier cas, on écrira donc:
<script src="less.js" type="text/javascript">foo</script>
pour forcer l'écriture d'une balise ouvrante et d'une balise fermante. La présence de l'attribut src indique au navigateur que le code à exécuter est à l'adresse indiquée; le code foo n'est alors pas exécuté et tout le monde est content, le développeur comme le navigateur.

Comment ajouter une petite icone à une page web ?

Pour ajouter une icone de site, habituellement appelée 'favicon', il faut ajouter dans le header du HTML:

<link href="/favicon.png" rel="shortcut icon" type="image/png" />
Ici, cela fait référence à l'image situé à la racine du site et nommée favicon.png. Ce nom est utilisé souvent par défaut par plusieurs outils, de même que /favicon.ico.

R
Comment changer le device par défaut pour dessiner dans un fichier ?

Lu ici. Il suffit de mettre dans l'option device une fonction ad hoc utilisant le fichier désiré:

mypng <- function(filename = "mydefault.png", ...) {
  png(filename, ...)
}
options(device="mypng")
x=c(1,2,3)
plot(x,x)
Téléchargement
Utiliser youtube-dl avec Tor

Installer proxychains, tor et obfsproxy:

$ sudo apt-get install proxychains tor obfsproxy

Lancer youtube-dl via proxychains:

$ proxychains youtube-dl [options] <url>
Certificats / TLS
Créer des fichiers .pem et .key depuis un certificat stocké dans firefox

Dans Firefox, menu "Edition" / "Préférences". Onglet "Avancé" et sous-onglet "Certificats". Cliquer sur "Afficher les certificats". Sélectionner un certificat et cliquer sur "Sauvegarder" (ou "Backup"). Saisir un nom de fichier comme "certif.p12" et saisir le mot de passe de protection.

Dans un terminal, créer le fichier de certificat PEM. Le mot de passe demandé est celui saisi lors de l'export depuis Firefox:

openssl pkcs12 -in certif.p12 -nokeys -out certif.pem

Créer le fichier avec la clé privée. Le premier mot de passe demandé est celui saisi lors de l'export depuis Firefox, le second est utilisé pour protéger la clé privée, il est re-saisi pour l'export au format RSA lors de la deuxième commande:

openssl pkcs12 -in rww.p12 -nocerts -out tmp.pem
openssl rsa -inform pem -in tmp.pem -out certif.key

Lien sympa: Les fèves de Vergy