Skip to content

Acquisition de ressources par initialisation

L'ouvrage de référence du C++, dans lequel la méthode est exposée

"L'acquisition de ressources par initialisation" est aussi appelée "L'acquisition de ressource, c'est l'initialisation", traduction directe de l'anglais "ressource acquisition is initialization" (RAII).


Il s'agit d'une technique de programmation qui permet une gestion automatique des ressources informatiques (mémoire, fichiers, locks, connexion à une API, ...). Elle permet en effet d'assurer la libération immédiate des ressources lorsque celles-ci ne sont plus utiles, que ce soit dans le cadre d'un fonctionnement normal ou bien de conditions exceptionnelles (erreurs).


Cette technique est apparue à la suite de discussions sur l'évolution du langage C++ (début des années 90 si ma mémoire ne me fait pas défaut). Certains souhaitaient l'intégration dans C++ d'un mécanisme de ramasse-miettes (garbage collector = gestion automatique de la mémoire), mécanisme déjà présent dans des langages comme LISP. Finalement la technique d'acquisition de ressources par initialisation s'est imposée face à cette approche.


L'efficacité (libération de ressource immédiate), la robustesse et l'universalité (pas uniquement utilisable pour la mémoire) de l'acquisition de ressources par initialisation explique que, bien qu'il existe de bonnes solutions de ramasse-miettes pour C++, ces dernières ne soient jamais devenues populaires.


La technique repose sur la création d'objet dans le tas (heap) et sur un mécanisme de destructeurs appelés automatiquement. Si C++ connaît ces notions, des langage moins complets comme Java ne permettent pas de mettre en place cette technique, il faut alors se contenter du ramasse-miette.


L'article sur Wikipedia

Les pages c++ de Bjarne Stroustrup, voir en particulier les FAQs

Continuer à lire "Acquisition de ressources par initialisation"

LDAP

LDAP (Lightweight Directory Access Protocol) est un protocole réseau relatif à des annuaires informatiques. La RFC1823 propose en outre une API (interface de programmation) normalisée d'accès aux annuaires LDAP.

Voici quelques références utiles pour qui veut mettre en oeuvre un tel annuaire.

- L'article de Wikipedia
- Un tutoriel
- un panorama des outils LDAP
- la RCF1823 qui définit l'API C.
- Le module Apache d'authentification par LDAP. Ce module permet de vérifier login/mot de passe à partir d'un répertoire LDAP.
- Open LDAP : une mise en oeuvre open-source du protocole. Outre le serveur, ce projet propose des API de connexion en C et Java qui respectent la RFC1823.
- SASL : une couche de communication qui gère l'authentification avec négociation du protocole utilisé. Cette couche est utilisée par open_ldap Continuer à lire "LDAP"

Recherche rapide sur Serendipity

La création d'index plein-texte par la commande create index est impossible sur certains hébergeurs (OVH). Un index plein-texte est cependant nécessaire pour faire fonctionner la rechercher rapide de Serendipity avec MySQL. On peut utiliser une commande alternative pour faire cela :

ALTER TABLE s9y_entries ADD FULLTEXT (title,body,extended)

Voir la documentation MySQL sur le sujet. Continuer à lire "Recherche rapide sur Serendipity"

Conversion de l'heure d'un fuseau horaire en temps universel

Voici un algorithme de conversion de temps CET (central european time) en temps universel (GMT) qui tient compte des heures d'été / hiver.

L'horaire d'été est entré en vigueur en France en 1976. C'est pourquoi pour les dates antérieure le temps en France est à GMT + 1 toute l'année.

On passe de l'heure d'hiver (GMT+1) à l'heure d'été (GMT+2) le dernier dimanche de mars à 2 heures. La transformation inverse a lieu le dernier dimanche d'octobre à 3 heures.


Références:
- L'article de Wikipedia.
- Faut-il en finir avec l'heure d'été (rapport du Sénat).
Continuer à lire "Conversion de l'heure d'un fuseau horaire en temps universel"

Ré-échantillonage d'un son sous Linux

Lorsque l'on récupère une fichier son (.Wav), il se peut que l'échantillonage (=le nombre d'enregistrements par seconde) ne convienne pas et qu'il faille ré-échantilloner. Cela peut-être par exemple le cas lorsque l'on récupère un flux real-audio et que l'on veut le transformer en MP3 avec blade-encoder.

Pour faire cela, on peut utiliser l'utilitaire sox. Voici un exemple ou le flux d'origine est dans toto.wav :

 sox toto.wav -r 32000 ri-chine-economie.wav 
 bladeenc -64 -del -mono ri-chine-economie.wav 

RSS vs ATOM

RSS et Atom sont deux formats concurrrents permettant la diffusion de nouvelles.
Atom a été créé pour régler un certain nombre de problèmes de RSS notamment les problèmes d'incompatibilité entre versions.

Quelques liens :