Electronique, Informatique

Reinitialiser l’USB sous Linux

Lors du développement avec Arduino (ou une autre carte d’une même type, en l’occurrence un Arducopter) il est souvent utile de réinitialiser le port USB sous Linux après un plantage. En trois commandes chaînées, c’est fait :

  1. Décharger le module usbhid
  2. Attendre 5 secondes pour que tout se stabilise
  3. Recharger le module

sudo modprobe -r usbhid && sleep 5 && sudo modprobe usbhid

Informatique

Configuration de cntlm

La gestion des passerelles authentifiantes sous bash est souvent problématique. Configurer la  passerelle se fait alors par un export http_proxy dans lequel le mot de passe est en clair. Il est évident que cette solution n’est pas satisfaisante. Dans la suite de ce billet ja vais présenter l’installation de cntlm qui permet de régler ce problème de manière simple et sécurisée.

Lire la suite « Configuration de cntlm »
Informatique

Copier un disque dur virtual box

Pour copier une machine virtuelle, une simple copie du disque dur ne suffit pas. Les 2 disques auront le même numéro et le gestionnaire de médias refusera d’associer le second. La commande :

VBoxManage clonevdi src.vdi dest.vdi

permet de copier le disque src.vdi vers le disque dest.vdi en lui associant un nouveau numéro.

J’ai trouvé la copie plus longue qu’avec un simple cp. De toutes façons, la commande :

VBoxManage internalcommands sethduuid dest.vdi

peut être utilisée pour changer le numéro d’une copie déjà faite.

Informatique

Unilignes en Python

Je ne m’étais jamais penché sur le problème mais Python permet de faire des unilignes comme Perl ou Ruby. Avec une écriture « pythonnesque » ça prend tout son charme :

python -c 'print "".join(filter(lambda l:l.startswith("$GPRMC"),open("GPS00026.TXT").readlines()))'

Celui ci affiche toutes les lignes qui commencent par $GPRMC (ce sont des trames GPS).

Dans le même style un petit uniligne pour générer une commande SQL pour chaque nom présent dans le fichier qui contient les login de mes étudiants.

python -c 'print "\n".join([ "GRANT SELECT ON `geodata_fr`.* TO '%s'@'localhost';"%(c.strip(),)  for c in open("ListeRT1.txt").readlines()])'