Derniers billets de blog

Expert Python/Django/Plone et chef de projet agile, j'aime coder et découvrir de nouvelles technologies.

Prototype Javascript Framework, le Javascript facile

Prototype.js: faciliter l'utilisation d'Ajax et la manipulation du DOM dans vos applications web. Cet article présente cette bibliothèque et des liens vers de nombreuses ressources externes.

1. Présentation

Prototype est une bibliothèque JavaScript qui a pour but d'apporter des outils facilitant la vie des développeurs d'application Web dynamiques. Ce framework apporte notamment des structures de données très utiles (Array, Hash, Date, ...), une syntaxe plus pythonique que le JavaScript classique, une puissante classe Ajax, etc... le tout avec une bonne couche d'abstraction permettant de produire du code multi-navigateurs. La dernière version en date (1.6.0.3) est compatible Mozilla Firefox ≥ 1.5, Microsoft Internet Explorer ≥ 6.0, Apple Safari ≥ 2.0, Opera ≥ 9.25. Point important, le code source est sous licence MIT et la documentation ne manque pas (web et papier).

Télécharger

API Docs

Tips et tutoriaux

2. Documentation

3. Modules additionnels et extensions (quelques exemples...)

4. Script.aculo.us - it's about the user interface, baby!

Script.aculo.us est une formidable bibliothèque basée sur Prototype. Elle apporte de nombreuses fonctionnalités permettant d'améliorer l'interface utilisateur de nos sites web; framework d'animation, drag & drop, contrôles Ajax, utilitaires pour la manipulation du DOM, et tests unitaires.

Tout est ici: http://script.aculo.us/

Quelques outils pour vérifier si son domaine est blacklisté ou encore la validité d'une adresse email

Voici quelques outils et site web qui permettent de répondre aux questions suivantes: Mon serveur email est-il blacklisté ? Mon serveur email est-il bien configuré ? L'adresse email de mon destinataire existe-t-elle ? etc.

1. MxToolbox

Le site web MxToolBox.com proposent différents outils gratuits permettant de vérifier la configuration de son domaine et de son serveur de courriel associé: 

1.1. Configuration des enregistrements MX (MX Lookup)

Exemple pour le domaine www.google.fr:

Exemple pour le domaine www.google.fr 

1.2. Listes noires (Blacklists)

Le test est réalisé sur 147 listes noires connues.

Listes noires 

 

1.3. Diagnostique SMTP (Diagnostics) 

Diagnostique SMTP 

 

1.4. Analyse des entêtes (Analyse Headers) 

Analyse des entêtes

 

1.5. Enregistrements SPF (SPF Records)

Sender Policy Framework (SPF) est une norme d'authentification fiable du nom de domaine de l'expéditeur d'un courrier électronique. SPF fonctionne par la publication, dans le DNS d'un enregistrement (de type SPF ou de type TXT) indiquant quelles adresses IP sont autorisées à envoyer du courrier pour le domaine considéré.

Sender Policy Framework (SPF)

 

1.6. Monitoring gratuit (Free Monitoring)

Service gratuit de supervision de serveurs de mail: disponibilité, mise en liste noire, performance.
Ce service est gratuit pour 1 serveur, payant pour des serveurs additionnels.

2. Vérifier la validité d'une adresse email

Plusieurs sites proposent ce service, un exemple : http://www.emailverif.com/

3. Source d'information sur le "blacklistage"

Email-Marketing-Report.com

Sur cette page vous trouverez:

  • Une liste d'outils permettant de vérifier que son serveur email n'est pas blacklisté.
  • Une liste non exhaustive de listes noires.
  • Des conseils pour éviter d'être blacklisté.

4. Swiss army knife internet tool

Robex.com offre différents outils tels que des vérifications DNS, route, xhois etc...

OpenERP: rapide présentation

OpenERP est un ERP distribué gratuitement sous une licence libre (GPL). Développé pour répondre aux besoins complexes et évolutifs d'entreprises en pleine croissance, il est à la fois flexible et puissant. Avec plus de 200 modules, son champ fonctionnel très large couvre la plupart des besoins de l'entreprise.

OpenERP, kesako ?

Les ERP (en anglais Enterprise Resource Planning), aussi appelés Progiciels de Gestion Intégrés (PGI), sont des outils indispensables permettant d'améliorer la gestion d'une entreprise en facilitant la communication et l'échange d'information entre les différents services ou départements.

La mission des ERP est alors de centraliser en un point toutes les ressources (clients, fournisseurs, articles, stocks, etc.) et faciliter leur utilisation. Ils vont aussi permettre de modéliser les processus métier et ainsi offrir la possibilité de gérer en temps réel les fonctions de l'entreprise.

OpenERP est un ERP distribué gratuitement sous une licence libre (GPL). Développé pour répondre aux besoins complexes et évolutifs d'entreprises en pleine croissance, il est à la fois flexible et puissant. Avec plus de 200 modules, son champs fonctionnel très large couvre la plupart des besoins de l'entreprise:

  • Gestion des ressources humaines
  • Gestion de la relation client (CRM)
  • Gestion des achats
  • Gestion des ventes
  • Gestion des approvisionnements et de la production (MRP)
  • Gestion de projet
  • Comptabilité (générale et analytique)
  • etc.

Sites web et liens à connaître

Le livre OpenERP

Couverture du livrer OpenERP en français Tiny ERP-Open ERP : Pour une gestion d'entreprise efficace et intégrée.
De Fabien Pinckaers et Geoff Gardiner.

 

Quelques articles de la toile sur OpenERP

Présentation du serveur d'application Zope 2 (2001)

Zope 2 est un serveur d'application OpenSource écrit en Python. Il est parfois qualifié d'"exotique", découvrez-le...
  • Le langage de programmation Python
  • Le serveur d'applications Zope
  • Le langage de script DTML
  • Les Produits Zope
  • Conclusion : avantages et inconvénients

 

Consulter la présentation au format PDF

Cette présentation a été réalisée en 2001 lors de mon premier stage ingénieur, elle date donc un petit peu mais les informations fournies restent il me semble d'actualité et constituent une bonne piste pour débuter.

Compresser les fichiers Javascript et CSS

Les applications Ajax ne cesse de progresser et elles utilisent de plus en plus de code Javascript et CSS pour fonctionner, parfois même des centaines de ko...
La démocratisation des applications Ajax ne cesse de progresser. Il suffit pour s'en convaincre de regarder le nombre d'applications web qui sortent jour après jour: stockage en ligne, gestion des comptes personnels, webmail, bureautique, etc. La marche vers les "Dynamic Webtop Application" est en cours !

Ces applications utilisent de plus en plus de code Javascript et CSS pour fonctionner, parfois même des centaines de ko. Afin d'optimiser le trafic réseau et le temps de chargement d'une page web, il est nécessaire de réduire au maximum la taille de ces fichiers.

Cet article présente quelques solutions et pistes.

JavaScript Lint est un validateur de syntaxe Javascript. Il permet de repérer les erreurs de syntaxe, mais aussi les constructions pouvant poser des problèmes (ex : les if() sans accolades). Ce logiciel est basé sur le moteur JavaScript du navigateur Firefox.

Une version en ligne est proposée directement sur le site web, ainsi que différentes distributions permettant d'utiliser cet outil en ligne de commande ou de l'intégrer directement dans son IDE favori.

www.javascriptlint.com

Dean Edwards Packer est un compresseur/obstrurateur de code source JavaScript. Je l'utilise essentiellement pour supprimer les blancs et les commentaires (utiliser pour cela le niveau de compression "none"). Cet outil est utilisable directement en ligne.

dean.edwards.name/packer/

Une fois les blancs et les commentaires supprimés, on peut utiliser l'outil Memtronics, lui aussi disponible directement en ligne. Cet outil est un réducteur/obscurateur/encodeur de code JavaScript (obscurateur pas encore disponible). Les options que j'utilise pour compresser mes fichiers sont Method = better et Hardcore sélectionné.

Je conseille d'utiliser cet outil en ligne avec Internet Explorer, qui attend plus longtemps que Firefox avant de réagir lorsqu'un script prend beaucoup de temps à s'exécuter.

hometown.aol.de/_ht_a/memtronic/MemTronic_CruncherCompressor.html


Version Taille Ratio
Originale 69.5 Ko 100%
Nowhitespace 52.2 Ko 75.1%
Compressée 19.6 ko 28.2%

The W3C CSS Validation Service: jigsaw.w3.org/css-validator/

Pour cela j'utilise le module Python slimmer.py, qui permet d'optimiser également du code HTML, XHTML et JavaScript. www.issuetrackerproduct.com/Download#slimmer

Afin de ne pas surcharger la page d'accueil en chargeant l'ensemble des fichiers JavaScript et CSS nécessaires à l'application, il est possible de charger du code dynamiquement seulement lorsque c'est vraiment nécessaire.
Voici un exemple d'implémentation de cette fonctionnalité (avec Prototype.js):

   var loaded_files = $A(); // fichier JS et CSS déjà chargés 
    
   /** 
   * Chargement dynamique de fichiers JavaScript ou  CSS
   * 
   * @param {String} url Url du fichier JavaScript ou CSS à charger
   */ 
   function loadFile(url){  
       if (loaded_files.indexOf(url) == -1) { 
           // le fichier n'a pas encore était chargé 
            
           // ajout dans la balise HEAD 
           var head = document.getElementsByTagName("head").item(0); 
           var file; 
            
           if (url.indexOf(".css") != -1) { 
               // chargement d'un fichier CSS 
               file = document.createElement("link"); 
               file.setAttribute("rel", "stylesheet"); 
               file.setAttribute("type", "text/css"); 
               file.setAttribute("media", "all"); 
               file.setAttribute("href", url); 
               head.appendChild(file); // ajout effectif 
               loaded_files.push(url); // mémoire 
                            
           } else if (url.indexOf('.js') != -1) { 
               // chargement d'un fichier JavaScript 
               file = document.createElement("script"); 
               file.setAttribute("type", "text/javascript"); 
               file.setAttribute("src", url); 
               file.setAttribute("charset", "iso-8859-1"); 
               head.appendChild(file); // ajout effectif 
               loaded_files.push(url); // mémoire 
           } 
       } 
   } 
En conclusion, je citerai deux autres pistes non traitées dans cet article mais permettant d'accélérer encore le chargement d'une page web:
  • Fusionner tous les fichiers JavaScript à charger en un seul (idem pour les CSS). Le but est de réduire le nombre de requêtes HTTP.
  • Nettoyer et compresser à la volée le code HTML renvoyé par le serveur, via le module gzip du serveur web Apache par exemple.

La Philosophie des Logiciels libres : Bibliothèque d'articles

Qu'est-ce qu'un Logiciel Libre ? Pourquoi les logiciels ne doivent pas avoir de propriétaire ? Pourquoi les logiciels devraient être libres ? ...

A propos du logiciel libre, introduction

  • Qu'est-ce qu'un Logiciel Libre ?
L'expression "Logiciel libre" fait référence à la liberté et non pas au prix. Pour comprendre le concept, vous devez penser à la "liberté d'expression", pas à "l'entrée libre".

L'expression "Logiciel libre" fait référence à la liberté pour les utilisateurs d'exécuter, de copier, de distribuer, d'étudier, de modifier et d'améliorer le logiciel.

Traduction de Karl Pradène
http://www.gnu.org/philosophy/free-sw.fr.html

 

  • Pourquoi les logiciels ne doivent pas avoir de propriétaire ?
Le logiciel libre est une question de liberté, pas de prix.

Vous méritez de pouvoir coopérer ouvertement et librement avec les autres personnes qui utilisent les logiciels. Vous méritez de pouvoir apprendre comment marche un logiciel et de l'enseigner à vos élèves. Vous méritez de pouvoir engager votre programmeur favori pour réparer le logiciel quand il est cassé. Vous méritez le logiciel libre.

Par Richard Stallman, Traduction de Michel Rodriguez
http://www.gnu.org/philosophy/why-free.fr.html

 

  • Pourquoi les logiciels devraient être libres ?
Dans cet article, je décrirai les effets d'avoir des propriétaires, et je montrerai que les résultats sont préjudiciables. Ma conclusion est que les programmeurs ont le devoir d'encourager les autres à partager, distribuer, étudier et améliorer les logiciels que nous écrivons : autrement dit, d'écrire des logiciels libres.

[...], avoir des "postes de péage" sur des logiciels utiles coûte cher à la société : cela rend le programme plus coûteux à élaborer, plus cher à distribuer et moins satisfaisant et efficace à utiliser.

Par Richard Stallman, Traduction de Benjamin Drieu

http://www.gnu.org/philosophy/shouldbefree.fr.html

 

  • Logiciels et manuels libres
Le plus grand défaut des systèmes d'exploitation libres n'est pas dans le logiciel, mais dans le manque de bons manuels libres que nous pouvons y inclure.

L'intérêt d'une documentation libre (tout comme pour un logiciel libre) est la liberté, pas le prix.

Les conditions à remplir pour un manuel libre sont à peu près les mêmes que pour un logiciel; il s'agit de donner à tous les utilisateurs certaines libertés. La redistribution (y compris une distribution commerciale) doit être autorisée afin que le manuel accompagne chaque copie du programme, de manière électronique ou imprimée. Permettre les modifications est crucial aussi (surtout sur la partie technique du manuel).

Documentation of the GNU Project

Traduction de Benjamin Drieu
http://www.gnu.org/philosophy/free-doc.fr.html

 

  • Vendre des logiciels libres
Les logiciels libres sont parfois distribués gratuitement, et parfois contre rémunération. Un même programme est souvent disponible sous ces deux versions à partir de sources différentes. Le programme est libre en dépit de son prix, car les utilisateurs ont toute liberté dans son utilisation.

La redistribution de logiciels libres est une activité honorable et totalement légale; si vous l'exercez, vous pouvez très bien en tirer du profit.

Le logiciel libre est le projet de toute une communauté, et tous ceux qui en dépendent devraient chercher à soutenir la communauté. Pour un distributeur, la manière d'y contribuer est de donner une part de ses bénéfices à la FSF ou à un autre projet de développement de logiciels libres. En soutenant des équipes de développement, vous faites avancer le logiciel libre.

Traduction de Benjamin Drieu
http://www.gnu.org/philosophy/selling.fr.html

 

  • Catégories de logiciels libres et non libres
Voici un glossaire des différentes catégories de logiciels qui sont le plus souvent citées dans les discussions sur les logiciels libres.

Logiciel libre (Free software), Open source, Logiciel du domaine public (Public domain software), Logiciel copylefté (Copy lefted software), Logiciel libre non-copylefté (Non Copy lefted free software), Logiciel couvert par la GPL (GPL covered sotware), Le système GNU (The GNU system), Programmes GNU (GNU programs), Logiciel GNU (GNU software), Logiciel non libre (Non free software), Logiciel semi-libre (Semi-free software), Logiciel propriétaire (Proprietary software), Shareware ou Partagiciel, Freeware, Logiciel privé (Private software), Logiciel commercial (Commercial software)

Traduction de Katixa Rybalka et Olivier Berger.
http://www.gnu.org/philosophy/categories.fr.html

 

  • Le logiciel libre est plus fiable !
* Les logiciels GNU plus sûrs!
* Pourquoi le logiciel libre est plus fiable
* La Clinique du cancer fait confiance au logiciel libre!
* Aider les utilitaires GNU à être blindés!


Traduction de Frédéric Couchet

http://www.gnu.org/software/reliability.fr.html

 

  • Pourquoi l' "open source" passe à coté du problème que soulève le logiciel libre
L' "open source" est une méthodologie de développement; le logiciel libre est un mouvement social. Pour le mouvement du logiciel libre, le logiciel libre est un impératif éthique, parce que seul le logiciel libre respecte la liberté de l'utilisateur. En revanche, la philosophie de l' "open source" considère uniquement les questions pratiques en termes de performance.

En anglais on parle de "free software", le mot "free" pouvant s'interpréter aussi bien par "libre" que par "gratuit". En français cet amalgame n'existe pas.

"Pensez à la liberté d'expression, pas à la bière gratuite" : "Think of free speech, not free beer"

Par Richard Stallman.
Traduction : Mathieu Stumpf.

http://www.gnu.org/philosophy/open-source-misses-the-point.fr.html

 

  • Linux, GNU, et liberté
Par Richard Stallman.
Traduction : Cédric Corazza
.
http://www.gnu.org/philosophy/linux-gnu-freedom.fr.html

 

  • A propos de Gnutella
Traduction : Wolfgang Sourdeau.
http://www.gnu.org/philosophy/gnutella.fr.html

 

  • Pourquoi les écoles devraient utiliser exclusivement des logiciels libres ?
Avec les logiciels libres, les utilisateurs ont la liberté de coopérer, de mieux diriger leur vie. Cela s'applique aux écoles comme à tout le monde.

Mais il existe des raisons spécifiques qui concernent les écoles...

Par Richard Stallman.
Traduction : Laurent Bertaud.

http://www.gnu.org/philosophy/schools.fr.html

 

  • MyDoom et Vous
Par Richard Stallman.
Traduction : Bruno Menan.

http://www.gnu.org/philosophy/my_doom.fr.html

 

  • 15 Years of Free Software
En 1984, il était impossible d'utiliser un ordinateur moderne sans installer de système d'exploitation propriétaire, obtenu sous licence restrictive. Personne n'était autorisé à partager librement de logiciels avec des amis, et quasiment personne ne pouvait modifier de logiciels pour qu'ils s'adaptent à ses besoins. Les éditeurs de logiciels avaient érigé des murs pour nous diviser les uns des autres.

Le projet GNU a été fondé pour changer tout cela. Son premier objectif : développer un système d'exploitation portable et compatible Unix qui serait à 100% libre. Pas libre à 95%, pas à 99.5%, mais à 100%. Les utilisateurs seraient ainsi libres de redistribuer le système entier, libres de modifier et contribuer à n'importe laquelle de ses parties. Le nom de ce système, GNU, est un acronyme récursif signifiant " GNU's Not Unix " (GNU n'est pas Unix), une manière de rendre hommage à Unix, tout en disant que GNU est quelque chose de différent. Techniquement, GNU est comme Unix. Mais contrairement à Unix, GNU accorde la liberté à ses utilisateurs.

Par Richard Stallman.
Traduction : Nicolas Robin.

http://www.gnu.org/philosophy/15-years-of-free-software.fr.html

 

Et encore bien d'autres ressources pour découvrir le Logiciel Libre !!!

Toute la documentation se trouve ici : Philosophie du Projet GNU, avec les sections suivantes :

  • A propos du logiciel libre
  • A propos du projet GNU
  • Licences de Logiciels Libres
  • Législation
  • Terminologie et définitions
  • Maintenir la liberté des logiciels
  • GIFs
  • Motivation
  • Discours et entretiens (en ordre chronologique inverse)
  • Idées de tierces personnes
  • Divers
  • Traductions de ces documents

 

Autres sites web sur le Logiciel Libre