Les puristes crieront au scandale, mais c'est une manière relativement simple de faire du pseudo-polymorphisme en C. Deux pseudo-objets my_hello et my_bye de type différents sont créés dans le main. Un tableau de pointeurs void va nous permettre d'utiliser les pseudo-méthodes print(), de nos deux pseudo-objets.
La pseudo-class générique gen_t sert uniquement à "caster" la pseudo-méthode print() dans la boucle "for". Mais il faut que les méthodes des pseudo-classes myh_t et myb_taient les déclarations des pseudo-méthodes en (…)
Forum Astuces.divers [Admin] Monter la partition d'une image disque en loopback
Après avoir sauvegardé l'ensemble d'un disque avec la commande dd (dd if=/dev/sda of=image.raw), il peut être utile de monter une partition du disque en loppback.
Pour cela il faut ajouter l'option offset à l'option loop de la commande mount.
Le numéro de l'offset se calcule en multipliant le premier secteur de la partition par le nombre d'unités.
ex :
fdisk -l -u -C 592 image.raw
Disk image.raw: 0 MB, 0 bytes
255 heads, 63 sectors/track, 592 cylinders, total 0 sectors
(…)
Pour cela il faut ajouter l'option offset à l'option loop de la commande mount.
Le numéro de l'offset se calcule en multipliant le premier secteur de la partition par le nombre d'unités.
ex :
fdisk -l -u -C 592 image.raw
Disk image.raw: 0 MB, 0 bytes
255 heads, 63 sectors/track, 592 cylinders, total 0 sectors
(…)
Forum Astuces.divers [Admin] Serveur samba : qui utilise le fichier
Pour savoir sur un serveur samba quel utilisateur Windows utilise un fichier, utilisez cette petite commande :
#!/bin/sh
echo Looking for the one using doc $1
smbstatuts -p | grep `smbstatuts -L | grep $1 | awk -F" " {'print $1}'` | awk -F" " '{print $4" "$5}'
#!/bin/sh
echo Looking for the one using doc $1
smbstatuts -p | grep `smbstatuts -L | grep $1 | awk -F" " {'print $1}'` | awk -F" " '{print $4" "$5}'
Forum Astuces.divers [Admin] Construire des mots de passe forts mais facilement reconstructibles
Voici un petit script en python qui construit des mots de passe forts (pas dans les dictionnaires) en prenant les 8 premiers caractères de la version base64 du digest hexadécimal sha de la concaténation d'un mot de passe maitre (unique) faible mais simple à retenir et d'une clef specifique au domaine d'utilisation du mot de passe (typiquement le nom du service ou de la machine).
Cette méthode permet de construire un ensemble illimité de mot de passe à partir d'un (…)
Cette méthode permet de construire un ensemble illimité de mot de passe à partir d'un (…)
Forum Astuces.divers [Debian] Faire un packet pour un logiciel compilé à la main
Pour ne casser votre Debian lorsque vous compillez des logiciels, il faut faire un packet. Rien de plus facile avec checkinstall.
Pour l'installer:
aptitude install checkinstall
Ensuite il suffit de faire:
./configure
make
checkinstall -D make install
Ensuite, il vous faudra répondre à quelques questions, et un joli packet Debian sera dans le répertoire courant.
Pour l'installer votre packet nouvellement créé:
dpkg -i packet.deb
Pour les utilisateurs d'autres distrib', il suffit de remplacer '-D' par '-S' pour un packet Slackware (…)
Pour l'installer:
aptitude install checkinstall
Ensuite il suffit de faire:
./configure
make
checkinstall -D make install
Ensuite, il vous faudra répondre à quelques questions, et un joli packet Debian sera dans le répertoire courant.
Pour l'installer votre packet nouvellement créé:
dpkg -i packet.deb
Pour les utilisateurs d'autres distrib', il suffit de remplacer '-D' par '-S' pour un packet Slackware (…)
Forum Astuces.divers [X/KDE] Une page de démarrage personnalisée pour chaque profil de Konqueror
Aussi bon soit Konqueror, il souffre tout de même quelques lacunes. Par exemple, la page de démarrage par défaut de Konqueror est le répertoire home de l'utilisateur, et cela quel que soit le profil utilisé. Ceci a pour inconvénient de faire qu'un clic sur le bouton home ramènera toujours l'utilisateur vers son répertoire home, et ce même lorsqu'il utilise Konqueror en tant que navigateur Web.
Il est cependant possible de contourner ce problème en faisant un petit tour dans ~/.kde/share/apps/konqueror/profiles (…)
Il est cependant possible de contourner ce problème en faisant un petit tour dans ~/.kde/share/apps/konqueror/profiles (…)
Forum Astuces.divers [X/Images] pdftosvg ...
Outil jeune mais intéressant : pdftosvg.
En effet, inkscape ne permet pas à l'heure actuelle l'import de fichiers pdf. Grâce à pdf2svg, transformez vos pdf en svg et éditez les selon votre bon vouloir.
http://www.cityinthesky.co.uk/pdf2svg.html
En effet, inkscape ne permet pas à l'heure actuelle l'import de fichiers pdf. Grâce à pdf2svg, transformez vos pdf en svg et éditez les selon votre bon vouloir.
http://www.cityinthesky.co.uk/pdf2svg.html
Forum Astuces.divers [Obsolète] Poster du code dans les commentaires, astuces, etc. de LinuxFr
Obsolète : l’astuce ci-dessous était destinée à l’ancienne version du site, basée sur Templeet.
Si l'on essaie de poster tel quel un bout de code dans les commentaires de LinuxFr, faute du support d'une balise <pre>, les indentations disparaissent, sans compter les problèmes avec les signes < et >.
Une solution consiste à préparer votre code avec la commande suivante :
perl -pe 's/^([^t]*)t/$1 . " " x (8 - length($1) % 8)/eg; s/&/&/g; s/((^| ) +)/" " x length($1)/eg; (…)
Forum Astuces.divers [Debian] flash plugin pour debian etch
Je sais comme vous pouvez le constater dans le titre, ca parle pas d'un packtage d'un logiciel libre, mais il peut s'avèrer utile lorsque nous visitons un site tout en flash.
Alors, j'ai pu constater lorsque j'ai installé debian etch que le packtage flashplugin-nonfree n'était pas bon, il ne fonctionne pas. Si vous étes désireux d'installer flash, voilà comment proceder.
1) Ouvrir un terminal: wget http://http.us.debian.org/debian/pool/contrib/f/flashplugin-nonfree/flashplugin-nonfree_9.0.48.0.2_i386.deb
2)Ensuite comme pour tout installe sur debian, dpkg -i flashplugin-nonfree_9.0.48.0.2_i386.deb
Puis le tour est (…)
Alors, j'ai pu constater lorsque j'ai installé debian etch que le packtage flashplugin-nonfree n'était pas bon, il ne fonctionne pas. Si vous étes désireux d'installer flash, voilà comment proceder.
1) Ouvrir un terminal: wget http://http.us.debian.org/debian/pool/contrib/f/flashplugin-nonfree/flashplugin-nonfree_9.0.48.0.2_i386.deb
2)Ensuite comme pour tout installe sur debian, dpkg -i flashplugin-nonfree_9.0.48.0.2_i386.deb
Puis le tour est (…)
Forum Astuces.divers [Éditeur/Vim] Utiliser les splits
Très pratiques pour avoir plusieurs fichiers sous les yeux, ou un endroit différent du même fichier, les splits consistent à partager l'écran de vim à votre guise.
Pour cela plusieurs possibilités (split = partage horizontal, vsplit = partage vertical) :
a) lors du lancement de vim
$ vim -o foo bar = ouvre foo et bar en split
$ vim -O foo bar = ouvre foo et bar en vsplit
b) lorsque vim est déjà lancé (^ est la touche (…)
Pour cela plusieurs possibilités (split = partage horizontal, vsplit = partage vertical) :
a) lors du lancement de vim
$ vim -o foo bar = ouvre foo et bar en split
$ vim -O foo bar = ouvre foo et bar en vsplit
b) lorsque vim est déjà lancé (^ est la touche (…)
Forum Astuces.divers [Web/Réseau] Connection ssh simplifiée à travers un tunnel
Vous êtes sur une machine (disons troy) et vous voulez vous connecter à une machine distante (disons ithaque) qui est sur un réseau privé, en faisant un tunnel à travers une passerelle (disons odyssee).
Vous effectuez donc la commande suivante:
où [port local] est un port supérieur à 1024, à moins que vous ne soyez root, et [port ssh d'odyssee] est le plus souvent 22.
Ceci est une méthode classique et (…)
Vous effectuez donc la commande suivante:
ssh -L [port local]:[IP d'ithaque]:[port ssh d'odyssee] odyssee
où [port local] est un port supérieur à 1024, à moins que vous ne soyez root, et [port ssh d'odyssee] est le plus souvent 22.
Ceci est une méthode classique et (…)
Forum Astuces.divers [Éditeur/Vim] Correction orthographique avec Vim
Le saviez vous ? Vim est capable de réaliser des corrections orthographiques en ligne, et un de ses gros points forts est que cette correction tiens compte des spécificités du langage sur lequel on travaille.
Par exemple pour éditer un fichier .c ou .po, il va s'intéresser uniquement aux déclarations de chaines de caractères entre guillemets et aux commentaires, ou encore lorsqu'on travaille avec un fichier tex il ne va pas tenir compte du balisage et des formules. C'est royal (…)
Par exemple pour éditer un fichier .c ou .po, il va s'intéresser uniquement aux déclarations de chaines de caractères entre guillemets et aux commentaires, ou encore lorsqu'on travaille avec un fichier tex il ne va pas tenir compte du balisage et des formules. C'est royal (…)
Forum Astuces.divers [Terminal] Mon environnement shell
Bonsoir,
J'aime bien utiliser mon shell, mais pas seulement. J'aime bien aussi mon interface graphique. Pour moi, le meilleur vient lorsqu'on mélange les deux. Je vous propose donc mes petits scripts et alias que j'ai développé pour cela:
Mais d'abord un résumé :
E — lance mon éditeur favori (kwrite) en arrière plan et le détache du terminal
EE — lance mon éditeur favori au premier plan
EEsudo— équivalent en mieux de sudo -e (copie le fichier lorsqu'il est (…)
J'aime bien utiliser mon shell, mais pas seulement. J'aime bien aussi mon interface graphique. Pour moi, le meilleur vient lorsqu'on mélange les deux. Je vous propose donc mes petits scripts et alias que j'ai développé pour cela:
Mais d'abord un résumé :
E — lance mon éditeur favori (kwrite) en arrière plan et le détache du terminal
EE — lance mon éditeur favori au premier plan
EEsudo— équivalent en mieux de sudo -e (copie le fichier lorsqu'il est (…)
Forum Astuces.divers [Web/Réseau] Socat
C'est le petit couteau suisse du réseau. Certains connaissent déjà netcat ...(nc).
Socat permet de lier presque n'importe quoi vers n'importe quoi.
TCP -> UDP
TCP -> FICHIER
TCP -> EXECUTABLE
OPENSSL -> FICHIER
(Socket unix, pipe, un serveur proxy, ...)
Enfin bref, n'importe quoi vers n'importe quoi.
L'utilisation principale est d'en faire un relais réseau:
socat tcp4-listen:9999,reuseaddr,fork tcp4:google.com:80
- le reuseaddr c'est pour éviter les problèmes avec le CTRL+C)
- le fork c'est pour avoir plusieurs connexions
Socat, permet (…)
Socat permet de lier presque n'importe quoi vers n'importe quoi.
TCP -> UDP
TCP -> FICHIER
TCP -> EXECUTABLE
OPENSSL -> FICHIER
(Socket unix, pipe, un serveur proxy, ...)
Enfin bref, n'importe quoi vers n'importe quoi.
L'utilisation principale est d'en faire un relais réseau:
socat tcp4-listen:9999,reuseaddr,fork tcp4:google.com:80
- le reuseaddr c'est pour éviter les problèmes avec le CTRL+C)
- le fork c'est pour avoir plusieurs connexions
Socat, permet (…)
Forum Astuces.divers [Web] wget et cookie dl.free.fr
Depuis la mise à jour du service dl.free.fr, wget urlFichier retourne la page html du service.
Pour continuer à télécharger avec wget, il faut maintenant faire :
Pour continuer à télécharger avec wget, il faut maintenant faire :
#First step is set cookie
wget --save-cookies cookie.txt --keep-session-cookies urlFichier -O tmpFile
#Second step is retry with cookie
wget -c --load-cookies cookie.txt urlFichier
#Then clean tmp file
rm tmpFile cookie.txt
Forum Astuces.divers [Développement] GDB et le mode "visuel" caché
Après avoir appuyé par mégarde sur quelques sombres touches lors du débuggage d'un programme, gdb est rentré dans un mode très sympathique où la fenêtre se scinde en deux avec en partie haute le code source et la ligne en cours d'exécution en surbrillance et en partie basse, le prompt de GDB.
Pour pouvoir jouir de ce fabuleux mode qui semble vraiment bien planqué, il suffit d'utiliser la sombre commande :
Ctrl+x Ctrl+a
(Il semblerait que c'est un alias vers (…)
Pour pouvoir jouir de ce fabuleux mode qui semble vraiment bien planqué, il suffit d'utiliser la sombre commande :
Ctrl+x Ctrl+a
(Il semblerait que c'est un alias vers (…)
Forum Astuces.divers [Web/Mozilla] Firefox 2.0 : backspace remonte la page au lieu de revenir dans l'historique
Avec Firefox 2.0 (du moins sous Debian) le comportement par défaut de la touche "backspace" a changé. Au lieu de revenir dans l'historique, la page défile vers le haut.
Pour revenir à l'ancien comportement :
* ouvrir un onglet à l'adresse about:config
* chercher la clé : browser.backspace_action
* mettre la valeur 0 au lieu de 1
Pour revenir à l'ancien comportement :
* ouvrir un onglet à l'adresse about:config
* chercher la clé : browser.backspace_action
* mettre la valeur 0 au lieu de 1
Forum Astuces.divers [Web/Réseau] Utiliser un deuxième serveur pour des adresses ip sur liste noire
Si vous en avez marre des réseaux russes, chinois, coréens, ou même des petits malins qui s'amusent à tester si vous avez bien mis à jour phpmyadmin, ou si par hasard, vous n'auriez pas phpbb sur votre serveur, voici une astuce qui devrait vous plaire :
Il y a quelque temps, j'avais écris un serveur minimaliste en bash, vers lequel je dirigais des requêtes HTTP d'adresses IP blacklistées ( https://linuxfr.org/~hubix/24623.html ). Les remarques ont été très judicieuses, notamment le fait (…)
Il y a quelque temps, j'avais écris un serveur minimaliste en bash, vers lequel je dirigais des requêtes HTTP d'adresses IP blacklistées ( https://linuxfr.org/~hubix/24623.html ). Les remarques ont été très judicieuses, notamment le fait (…)
Forum Astuces.divers [Terminal] rlwrap
Vous utilisez souvent des programmes en mode texte qui fonctionnent à la manière d'une console, mais vous pestez car si vous faite une erreur vous ne pouvez plus revenir en arrière, rappeler la commande précédente ?
La solution universelle existe : rlwrap, disponible sur http://utopia.knoware.nl/~hlub/rlwrap/ qui vous permettra d'utiliser toutes les combinaisons de touches disponibles sous Bash. Utilisation :
rlwrap commande args
La solution universelle existe : rlwrap, disponible sur http://utopia.knoware.nl/~hlub/rlwrap/ qui vous permettra d'utiliser toutes les combinaisons de touches disponibles sous Bash. Utilisation :
rlwrap commande args
Forum Astuces.divers [Terminal] rediffuser un terminal en direct
Il est quelques fois utile de montrer à quelqu'un via le réseau ce qu'on fait dans un terminal.
Une manière courante de procéder est d'utiliser screen(1). Cependant cela implique de donner un compte local à l'observateur et de configurer screen(1) correctement pour qu'il puisse se connecter à la session sans pour autant pouvoir interagir avec le terminal. Sans compter que screen(1) doit être installé.
Une autre méthode consiste simplement à utiliser script(1) (paquet essentiel bsdutilssous Debian) qui permet de (…)
Une manière courante de procéder est d'utiliser screen(1). Cependant cela implique de donner un compte local à l'observateur et de configurer screen(1) correctement pour qu'il puisse se connecter à la session sans pour autant pouvoir interagir avec le terminal. Sans compter que screen(1) doit être installé.
Une autre méthode consiste simplement à utiliser script(1) (paquet essentiel bsdutilssous Debian) qui permet de (…)
Forum Astuces.divers [Terminal] pourquoi xterm a des couleurs dans les man ?
xterm permet de remplacer les caractères gras ( \e[0;1m) ou souligné (\e[0;4m) par des caractère en couleur grâce aux option +bdc et +ulc
On peut quand même faire du gras si ces options sont activées:
echo -e "\e[0;5mcoucou"
pour info le surligné:
echo -e "\e[0;7mcoucou"
Forum Astuces.divers [X/KDE] Bouton "fermer l'onglet" dans Konqueror
Si dans la configuration de Konqueror, vous avez choisi d'afficher le bouton "fermer" sur un onglet, alors l'icône du site correspondant disparaît. Mais il existe une configuration cachée pour que le bouton "fermer" ne s'affiche que lorsque le curseur de la souris se trouve au dessus de l'icône de cet onglet.
Il suffit d'éditer le fichier ~/.kde/config/konquerorrc, et d'ajouter
[FMSettings]
HoverCloseButton=true
Il suffit d'éditer le fichier ~/.kde/config/konquerorrc, et d'ajouter
[FMSettings]
HoverCloseButton=true
Forum Astuces.divers [Terminal] Fusionner les lignes d'un texte
Question: Sous GNU, comment supprimer rapidement les sauts de ligne d'un fichier, c'est-à-dire fusionner les lignes en une seule ?
Réponse: xargs < nomdefichier
Explication:
0. xargs a pour fonction de lire le texte donné sur son entrée standard et d'appeler une commande ayant pour arguments le texte en question. Par exemple: echo "/tmp" | xargs ls -l. Ici, xargs lira "/tmp" sur son entrée standard, et appellera donc ls -l /tmp.
1. Caractéristique notable de xargs: (…)
Réponse: xargs < nomdefichier
Explication:
0. xargs a pour fonction de lire le texte donné sur son entrée standard et d'appeler une commande ayant pour arguments le texte en question. Par exemple: echo "/tmp" | xargs ls -l. Ici, xargs lira "/tmp" sur son entrée standard, et appellera donc ls -l /tmp.
1. Caractéristique notable de xargs: (…)
Forum Astuces.divers [Web/Mozilla] Firefox - Sélection de cellules d'un tableau
Souvent, pour faire une copie de données précises d'un tableau dans un page HTML, on fait un copier-coller de tout le tableau et ensuite on nettoye.
Il y'a une astuce simple de Firefox qui permet de sélectionner que les cellules voulu, comme dans un tableur.
Pour cela, maintenais la touche Ctrl puis cliquez sur vos cellule... Elle s'encadrerons en bleu, et les voilà sélectionné !
Y'a plus qu'a copier coller ^^
Il y'a une astuce simple de Firefox qui permet de sélectionner que les cellules voulu, comme dans un tableur.
Pour cela, maintenais la touche Ctrl puis cliquez sur vos cellule... Elle s'encadrerons en bleu, et les voilà sélectionné !
Y'a plus qu'a copier coller ^^
Forum Astuces.divers [Admin] Traquer les fichiers gourmands en espace disque
Une chose qui n'est pas très simple sous unix, c'est de suivre l'espace disque occupé. La commande du (disk usage), bien utilisée, permet de bien s'en sortir.
Ainsi, du -hs donne l'espace occupé par le répertoire courant. Pour faciliter la tâche, je propose la commande suivante:
du -h --max-depth=2 | sort -n
Elle vous donne la liste des répertoires accessibles à partir du répertoire courant, jusqu'à deux niveaux de profondeur, classés par occupation d'espace disque. Essayez là, vous verrez, c'est (…)
Ainsi, du -hs donne l'espace occupé par le répertoire courant. Pour faciliter la tâche, je propose la commande suivante:
du -h --max-depth=2 | sort -n
Elle vous donne la liste des répertoires accessibles à partir du répertoire courant, jusqu'à deux niveaux de profondeur, classés par occupation d'espace disque. Essayez là, vous verrez, c'est (…)