Vous souhaitez compiler OpenSSL avec le compilateur libre MinGW sous Windows ? Ce guide est fait pour vous. Nous verrons comment compiler et installer OpenSSL, comment compiler un programme en statique et en dynamique.
Exploitez la puissance de la commande find
Les système Unix/Linux possèdent un grand nombre de commandes permettant d'effectuer les tâches d'administration de tous les jours... La commande find est une de celles-là. Elle sait faire bien plus que chercher des fichiers. find permet de trouver tous les fichiers mp3, tous les fichiers d'un utilisateur donné, tous les fichiers exécutables, tous les fichiers modifiés à une date donnée, etc. En la combinant avec xargs, il est possible d'exécuter des tâches sur les fichiers trouvés avec un gain de temps assez conséquent. C'est ce que nous allons voir dans cet article.
Sauvegarder automatiquement vos données sous Gnu Linux avec rdiff-backup
Ce tutoriel décrit les étapes nécessaires pour automatiser la sauvegarde de vos données importantes grâce à l'outil rdiff-backup. Les sauvegardes se font à travers le réseau via le protocole sécurisé SSH, personne ne sera donc en mesure d'intercepter vos fichiers car tout sera chiffré. rdiff-backup fait des sauvegardes incrémentales, c'est-à-dire qu'il ne sauvegarde que les fichiers qui ont été créés, modifiés ou supprimés depuis la dernière sauvegarde, ce qui permet de ne transférer que le strict minimum. rdiff-backup va permettre de récupérer un fichier tel qu'il était à un temps donné.
Calculer la somme de contrôle MD5 sur une arborescence entière
Lorsque l'on effectue des transferts d'une machine à une autre, il peut arriver que des erreurs se produisent. Voici une technique permettant de vérifier que les fichiers transférés sont bien conformes aux originaux. On utilise pour cela l'algorithme MD5 qui permet de calculer une somme à partir d'un fichier. Si un seul octet venait à changer dans ce fichier, alors la somme de contrôle serait complètement différente.
Supprimer les espaces en début et en fin de chaîne
Utiliser Firefox comme Vim
Les utilisateurs de Vim ne quitteraient leur éditeur pour rien au monde car il permet de gagner un temps considérable, une fois les commandes connues. Il est en effet possible d’être très productif sans jamais avoir à retirer les mains du clavier. Si vous désirez que Firefox puisse être commandé à la manière de Vim, il suffit d'installer l’extension Vimperator. Vimperator transforme Firefox en un navigateur web modal.
Utiliser les replis (folding) de Vim
La rédaction de documents sur ordinateur fait gagner beaucoup de temps, mais parfois, rien ne remplace la bonne vieille feuille de papier. Il est en effet plus facile de comparer des portions de texte lorsqu'il est présent sur papier plutôt que sur un écran. Sitôt qu'un document devient plus grand que l'écran, il est difficile de comparer et travailler sur des endroits différents du fichier. Les fonctions de partage d'écran (:split) vertical ou horizontal peuvent pallier à ce problème mais nous allons nous intéresser ici aux replis (folding) de Vim. Un repli permet de cacher une portion du fichier en cours d'édition.
Créez un effet néon
Pour ce premier tutoriel sous illustrator CS4, nous allons voir comment créer un effet néon comme ceux que l'on peut voir sur les enseignes des magasins.
Personnalisez l'affichage de vos données dans le débogueur de Visual C++ 2008 Express
Nous allons voir ici comment personnaliser l'affichage des données dans le débogueur de Visual C++. En tant que développeur, vous consacrez sans doute une bonne partie de votre temps à déboguer. L'astuce suivante pourrait vous faire gagner pas mal de temps et vous éviter d'avoir à effectuer un grand nombre de choses répétitives, désagréables et inutiles.
Évitez les chiffres magiques
Vous êtes de ceux qui utilisent des chiffres directement dans le code ? Lisez ceci, vous allez très vite changer d'avis.
Effectuez des copies entières de vos objets
Nous avons vu précédemment que le compilateur pouvait créer automatiquement le constructeur par copie et l'opérateur d'affectation. Ces éléments par défaut suffisent la plupart du temps, à moins que les objets à copier contiennent des pointeurs, des constantes ou des références. Si vous avez écrit le constructeur par copie et l'opérateur d'affectation, sachez qu'il y a quelques pièges à éviter.
Bien utiliser l'opérateur =
Aujourd'hui, nous allons voir comment bien implémenter l'opérateur d'affectation du C++ : operator=.
Cet opérateur est souvent victime d'au moins une des deux erreurs suivantes : soit la signature de cet opérateur n'est pas correcte, ce qui rend impossible l'utilisation des affectations chainées, soit l'auto-affectation n'est pas prise en compte et l'objet qui est auto-copié est alors corrompu. Suivez le guide...
Déclarez virtuels les destructeurs de vos classes polymorphes
Si vous créez des classes polymorphes, c'est-à-dire, héritant d'autres classes, vous devez déclarer vos destructeurs virtuels si vous ne souhaitez pas avoir des comportements étranges ainsi que des fuites mémoire.
Interdire la copie d'objets
C++ génère automatiquement pour vous le constructeur par copie et l'opérateur d'affectation si vous ne les avez pas définis et qu'une partie de votre code y fait appel. Dans certains cas, vous désirerez peut-être que ces éléments ne soient pas générés afin d'interdire la copie d'objets. Cela peut être utile si par exemple une copie est trop complexe ou trop longue à mettre en place, ou encore si cette copie ne veut rien dire sémantiquement...
Constructeurs par défaut, par copie, destructeur et opérateur d'affectation
La plupart des classes C++ que l'on crée possèdent généralement au moins un constructeur, un destructeur et un opérateur d'affectation. Si vous ne les avez pas déclarés, le compilateur le fera pour vous.
Préférez const et inline aux #define
Les macros du C c'est mal, vous ne devriez pas les utiliser en C++. En effet, C++ fournit tout un tas de mécanismes permettant de combler les lacunes du C. Il faut privilégier le compilateur au préprocesseur. Il ne faut donc pas utiliser #define pour créer des constantes ou des fonctions.
Préférez les commentaires C++ à ceux du C
Les commentaires multi-lignes du C /* ... */ fonctionnent également en C++ mais vous devriez éviter de les utiliser. Le commentaire de fin de ligne C++ // ... a des avantages indéniables.
Utiliser les vecteurs de la STL
Les tableaux dynamiques, c'est bien mais ce n'est pas très pratique. Une fois leur taille fixée, on ne peut plus la changer. Comme il est rare que l'on connaisse cette taille à l'avance, on a tendance à la surdimensionner pour être tranquille, ce qui engendre une surconsommation de mémoire. La STL fournit la solution à ce problème. En effet, elle propose de nombreux conteneurs très utiles. Celui auquel nous allons nous intéresser aujourd'hui, le plus simple d'entre-eux est std::vector. Il ressemble fort à un tableau mais présente de nombreux avantages notamment en termes d'accès et il est capable de s'agrandir lorsque sa mémoire est pleine. Il est également plus sécurisé. Le vecteur est le conteneur que vous devez utiliser par défaut.
Améliorez votre code avec const
Le mot-clé const est malheureusement très peu utilisé par les programmeurs, soit par oubli, soit parce qu'ils jugent ce mot-clé inutile ou encore parce qu'ils ne connaissent pas les bienfaits qu'il procure. Pourtant, il devrait être considéré comme un réel atout du C++ parce qu'il rend le style de programmation meilleur : plus rapide, plus robuste, plus sécurisé, etc.
Installer Visual C++ Express 2008 avec wxWidgets et boost
Il est possible de développer gratuitement et avec efficacité des applications commerciales grâce aux outils libres tels que wxWidgets et boost et de l'EDI gratuit Visual C++ 2008 dans sa version Express. Ce tutoriel vous présentera toutes les étapes qui vous permettront de mettre en place ces trois composants. À vous d'adapter si vous souhaitez n'utiliser que boost ou wxWidgets.
Derniers Commentaires
A vrai dire, j'avais dans l'optique d'échanger mes fichiers avec d'autres personnes.
L'enjeu des replis dans un modeline est simple: les gens qui n'utilisent pas vim ne sont pas gênés par des symboles qu'ils ne connaissent pas un peu partout, et l'affichage des replis serait facilement activable pour peu qu'on copie quelques lignes dans un .vimrc.
Le problème de mkview et loadview, c'est que les paramètres des replis (et beaucoup d'autres choses) sont enregistrés dans un fichier texte planqué au fin fond de ~/.vim/, donc c'est assez lourd à partager. De même, il suffit de renommer ou copier le fichier contenant les replis pour qu'il perde tout.
Comme tu dis, les commandes ne commençant pas par 'set' ne marchent pas, mais je vais essayer de trouver une solution. Je te tiens au courant à l'occasion
Merci
Il n'est à priori pas possible de faire ce que tu souhaites faire autrement qu'avec les 'markers'.
Il n'est pas possible d'utiliser des commandes autres que celles commençant par 'set' dans les modelines, pour des raisons de sécurité. Donc ce n'est pas possible, à moins qu'il y ait une fonction set ... qui permette de créer un repli.
Cependant, mkview et mksession pourraient permettre de combler ceci, moins pratique que les modelines, mais bon...
Bonjour,
En cas de coupure réseau, il est très probable que la sauvegarde soit interrompue. rdiff-backup attend un certain délai avant d'abandonner mais si la coupure est suffisamment longue, alors la sauvegarde ne sera pas complète (et peut-être cohérente). Il suffit alors de relancer le script pour s'assurer que la sauvegarde est de nouveau à jour avec les répertoires à sauvegarder.
Bonjour, ton tutoriel m'a éclaircis les idées il y a quelques mois déjà
J'utilise souvent les repliements à l'aide de marqueurs, mais au final ça défigure un peu mes scripts ou des documents.
Alors je me suis dis que j'allais utiliser une méthode manuelle et sauvegarder mes folds dans un modeline à la fin du fichier.
Seulement lorsque j'ouvre le fichier, vim me donne une erreur car il ne connait pas la commande fold:
> Erreur détectée en traitant modelines :
> ligne 392 :
> E518: Option inconnue: 23,27fold
> Appuyez sur ENTRÉE ou tapez une commande pour continuer
J'utilise ce modeline:
> # vim:fdm=manual:23,27fold:
As-tu une idée sur comment forcer vim à interprêter les folds?
Bonjour,
Je souhaiterais savoir ce qu'il se passe si une coupure de réseau se produit pendant la sauvegarde.
Est-ce que rdiff-backup se reconnecte tout seul pour finir la sauvegarde ou est-ce que je dois relancer le backup.sh ?
Merci pour votre aide.