Développement
Tout ce qui concernent mes travaux en développement.
Le temps des releases : easy_extract
Posté par fantomas, le 19 janvier 2010 sous Développement
Imaginons que j'ai sur un serveur de donnée une grosse quantité d'archives sous différents formats, tel que RAR, ZIP, XTM...
Si je souhaite extraire toutes ces archives, je devrais aller trouver chaque archives dans son répertoire, taper la bonne commande pour pouvoir les extraire, les réparer au besoin et ainsi de suite... Plutôt fastidieux non ? 
Sur ce constat m'est venu l'idée de easy_extract, un script écrit en Python qui va analyser récursivement les répertoires à la recherche d'archives ou de collections d'archives pour les extraire et les réparer automatiquement si elles sont corrompues.
Pour ...
Le temps des releases : Vélib'erator
Posté par fantomas, le 24 septembre 2009 sous Découvertes Développement
Suite à mon abonnement à Vélib', habitant près d'une station récemment construite, j'ai vite remarqué que de trouver un vélo en bon état ou une place de parking à proximité avant les 30 minutes fatidiques et payantes pouvait vite devenir un calvaire.
Sur ce, après quelques recherches, j'ai pu constater que les informations sur l'état des stations du réseau Vélib' étaient librement accessibles. D'où l'idée de créer un paquet python nommé Veliberator, me permettant depuis mon shell de consulter l'état de mes stations favorites.
Pour les fans de la ligne de commande, essayez ...
Le temps des releases : Django-sekh
Posté par fantomas, le 31 août 2009 sous Développement
Vous avez certainement déjà vu dans Google quand vous consultez une page depuis son cache, les termes de la recherche sont coloriés dans le contenu de la page pour permettre de les discerner rapidement.
De ce principe certains sites ont adapté la même technique en coloriant certains mots de la page correspondant à la recherche de l'utilisateur si il provient d'un moteur de recherche.
C'est ce que django-Search Engine Keywords Highlighter fait !
Une fois installé avec BeautifulSoup, il suffit juste d'ajouter ce middleware à la fin de la liste dans votre fichier ...
Le temps des releases : Django-smileys
Posté par fantomas, le 19 juillet 2009 sous Développement
Parfois il est temps de se sortir les doigts du code, et d'en parler !
Mais pour en parler, il faut documenter, ce qui prend un peu de temps, mais j'y travaille.
Pour commencer je vais vous présenter une de mes applications favorites, par sa simplicité et son utilité incroyable. 
Django-smileys est une application Django comme son nom l'indique, permettant d'inclure facilement dans ses templates des smileys, de ce genre
.
Pour cela, une fois l'application téléchargée et installée dans votre projet django, il vous suffit dans vos templates d'utiliser le filtre qui va convertir tout ...
Paye ta Fabric !
Posté par fantomas, le 01 mai 2009 sous Découvertes Développement
Le déploiement d'applications, c'est pas toujours facile et rébarbatif surtout quand on travaille sur un parc de machines.
Imaginons que j'utilise un serveur de version, du genre Subversion ou Mercurial et que j'utilise un ou deux serveurs (test, production 1, production 2, ...) pour héberger mon ou mes applications.
Le déroulement est le suivant :
- Développement en local.
- Propagation des modifications.
- Connection SSH sur les serveurs.
- Rapatriement les dernières modifications
- On redémarre le soft.
Vous me direz que cela n'est pas forcément très long, mais quand vous devez le faire souvent et plusieurs fois par jour, on ...
Stop aux spams sur django.contrib.comments
Posté par fantomas, le 15 avril 2009 sous Développement Expériences
Depuis quelques jours, les formulaires de commentaires fournis par l'application django.contrib.comments dans la distribution de Django, sont devenus vulnérables aux spams.
L'application comments contient par défauts plusieurs sécurités pour éviter le spamming, comme un honeypot et la vérification du temps de saisie du commentaires.
Malgré cela les équipes de spammer sont très réactives, et coder un bot spécifique pour les sites django utilisant ce système de commentaires, rend tous ces sites vulnérables.
En parallèle de cela, dans la version 1.1b de Django, l'application comments acquiert une nouvelle fonctionnalité, qu'est la modération automatique. L ...
Intégrer Twitter dans Django
Posté par fantomas, le 06 janvier 2009 sous Développement Expériences
Twitter, c'est le nouveau média à la mode pour lancer le buzz.
Créer en 2006, son but est simple, pouvoir résumer à tout instant, ce que l'on fait, ce que l'on pense, par des messages courts, que l'on envois par SMS. En effet les messages ne doivent pas dépasser 140 caractères.
De plus votre réseau peut suivre instantanément vos status, enfin bref voilà le Micro-Blogging d'inventé.
Twitter fournis une API pour pouvoir communiquer avec son service. Je me suis alors demandé ce que je pouvais en faire, et ait décidé d'interfacer celle ci avec ...
Distribuer une application Django en moins de 5 minutes
Posté par fantomas, le 29 décembre 2008 sous Développement Expériences
Vous venez de finir votre dernière application en Django, qui se veut réutilisable et distribuable. Félicitations
.
Désormais vous voulez automatiser l'installation et la distribution du paquet, et pourquoi pas le rendre installable facilement en 1 ligne de commande, sous la forme d'eggs.
Le plus simple est de réaliser un script d'installation basé sur distutils qui permettra de télécharger et d'installer le code en quelques secondes.
L'idée est de paqueter le module à distribuer avec un script nommé setup.py se chargeant de l'installation.
Mais réaliser ce script est parfois assez contraignant et long, surtout ...
Django unique et timed sessions
Posté par fantomas, le 24 décembre 2008 sous Développement
Comment rendre unique les comptes utilisateurs connectés sur un site en Django ?
Ce genre de problématique se retrouve souvent sur les sites internet proposant des abonnements à un service en ligne, voulant empêcher le partage d'abonnement.
Pour les besoins d'un projet spécifique en Django au sein de la société Emencia là où je travaille, j'ai du développer un moyen d'empêcher 2 utilisateurs de se connecter sur un compte utilisateur en même temps.
Mais le problème ne s'arrête pas là, comment empêcher la connection et la déconnection successive entre 2 utilisateurs ? L'idée est de donner ...
Clustered Models
Posté par fantomas, le 22 décembre 2008 sous Développement
Je vous parlais récemment de l'application Django Clustered Sitemap, servant à établir la correspondance entre 2 objets sur des projets Django.
Après une review globale du code et l'ajout de certaines fonctionnalités, j'ai changé le nom du projet en Clustered models car il ne correspondait plus vraiment à la philosophie du projet.
La première modification à été d'ajouter une nouvelle version du sitemap, mais cette fois ci en nuage 2D.
Le code et les vues ont été rendu génériques pour en faciliter l'intégration et l'extensibilité.
Une feature intéressante est qu'il est possible de ...
Clustered Sitemap
Posté par fantomas, le 15 décembre 2008 sous Développement Expériences
Comme je vous en parlais dans mon précèdent article, je comptais faire quelque chose d'utile tiré de l'intelligence collective.
J'ai donc intégré une partie du code de mon projet Feed Clusterer pour en faire un module Django.
L'idée est de reprendre la configuration des vues génériques, et de spécifier les champs à inspecter pour effectuer une correspondance. Cette correspondance servira à l'établissement d'une cartographie des différentes vues d'un site en Django.
En modélisant ces données sous la forme d'un dendogramme on peut avoir un sitemap assez surprenant, que l'on peut retrouver ...
Analyse hiérarchique par le contenu
Posté par fantomas, le 14 décembre 2008 sous Développement Expériences
Je suis actuellement en train de lire un livre sur les différents types d'intelligences dîtes collectives.
C'est à dire l'analyse de données représentant les choix, ou les comportement de plusieurs personnes, et comment en extraire des vérités globales.
Une des première applications à laquelle je me suis attaqué à été de construire un Feed Clusterer en Python, servant à effectuer des regroupements par pertinences entre différents sites web.
Comment ca marche ?
Tout site web qui se respect propose un service de Flux RSS ou Atom, résumant les dernières actualités publiées sur le site. L'idée est ...Python 3.0 : compatibilités et évolutions
Posté par fantomas, le 11 décembre 2008 sous Développement
C'est le 3 décembre dernier que la version 3.0 de Python est sortie. Une version attendue par une grande partie de la communauté Python.
Au programme, un bon coup de nettoyage de la librairie standard, des nouveautés comme le passage en tout Unicode, et une nouvelle syntaxe. Même si cette dernière reste proche des moutures 2.x, elle est clairement incompatibles avec les versions précèdentes.
Un fait assumé par les créateurs.
Pour effectuer la transition en douceur, les versions 2.6 et 2.7 ont amorcées le travail en intégrant une partie des nouveaux concepts présent dans ...
Comment passer de Wordpress à Django
Posté par fantomas, le 24 novembre 2008 sous Développement
Wordpress c'est très bien, mais ca devient peu devenir vite une machine à gaz. Mon hébergement gratuit et mutualisé chez 1and1 étant finis, je dois migrer sur un nouveau serveur, et PHP, pour moi c'est révolu, autant passer à Django, et décrire la marche à suivre.
Changement d'adresse et migration sur Django
Posté par fantomas, le 16 novembre 2008 sous Développement Expériences
Cela va faire 3 ans que j'ai souscrit à mon hébergement gratuit chez 1and1, 3 ans de bons et loyaux services, mais cette période est terminée.... C'est aussi pour cela que j'ai perdu mon nom de domaine en .info....
Donc le site change d'adresse, et deviens http://fantomas.willbreak.it, mettez à jours vos bookmarks 
Je décide donc de migrer chez un autre hébergeur, celui même qui me permet d'héberger mes projets en Python, Upasika et je me dis que dans la foulée pourquoi ne pas changer de solution ...
Ogame Statistics
Posté par fantomas, le 02 mars 2008 sous Développement
Lors de mon dernier article, je vous ai parlé de Open Flash Chart, en vous spécifiant que cela avait un rapport avec un prochain article, cet article le voilà.
Ogame Statisitics est un nouveau site que je viens d'ouvrir permettant de consulter les statistiques de tous les joueurs et alliances présents sur un univers de jeu de Ogame.
Le site réalisé grâce au framework Django, permet de créer une interface visuel des statistiques collectées par un module de mon robot pour Ogame, Obot dont j'ai déjà parler précèdement sur le blog.
En effet j'ai développé un nouveau ...
Open Flash Chart avec le Python's style !
Posté par fantomas, le 28 février 2008 sous Développement
Récemment, pour les besoins d'un projet dont je parlerais bientôt lors d'un prochain article,
je me suis mis à rechercher une librairie Python me permettant de réaliser rapidement de jolis graphiques statistiques.
Passé les PyChart et autre ChartDirector. Mon choix s'est porté sur Open Flash Chart, une librairie permettant de réaliser des graphiques statistiques grâce à Flash.
Comme son nom le laisse supposer, la librairie est open source, un point primordial 
Un site bien documenté avec des exemples complets, permettant une prise en main rapide et un résultat graphique abouti, m'auront convaincu assez rapidement.
L'avantage ...
Ogame Attack Watcher, la suite !
Posté par fantomas, le 22 janvier 2008 sous Développement
Cela fait maintenant quelques semaines que le silence se fait sur le blog, ceci est du au développement intensif de mon dernier projet, mon robot pour Ogame, j'ai nommé Obot. C'est l'occasion idéale de faire un focus sur la progression de ce projet.
Je résume le projet dont j'ai parlé dans un article précédent : j'ai ouvert le site web OAW pour mettre à disposition les avancées techniques du robot, et éventuellement recruter de nouveaux contributeurs pour ce projet.
Avec actuellement en frontal un site réalisé grâce au framework python Django, qui m'as permis d ...
Ogame Attack Watcher
Posté par fantomas, le 25 septembre 2007 sous Développement
Ogame Attack Watcher (OAW) est un programme écrit en Python qui permet la surveillance de comptes inter-univers pour OGame.
En effet OGame est un jeu de rôle massivement multi-joueurs en ligne, qui se joue à travers un navigateur internet.
L'intêret de ce programme est de pouvoir surveiller à distance son compte de toutes tentatives d'attaques sur ses planètes, qui pourraient ruiner des semaines d'efforts. Le programme se connectera toute les 30 minutes sur votre compte et vous previendra par email de toute attaques, laissant le temps de préparer une manoeuvre.
Le plaisir d'écrire ce programme pour ...
Génération de flux RSS en PHP
Posté par fantomas, le 21 août 2007 sous Développement
RSS pour Really Simple Syndication, est une des récentes technologies qui popularisent le web 2.0. Le format RSS est un flux de données XML regroupant diverses informations sur des ressources accessiblent depuis le réseau.
Dans le cas d'un site d'actualités, les flux RSS du site regrouperont les nouveaux articles publiés et les commentaires récents qui permettront aux utilisateurs de voir l'évolution du site sans avoir besoin de s'y connecter en permanence.
Générer un flux RSS 2.0 à l'heure actuelle peut rester facile pour n'importe quel développeur. Cependant, générer de multiples flux devient ...
Valeur binaire et décalage
Posté par fantomas, le 26 juin 2007 sous Développement
L'informatique a un secret, un secret aussi fondamental que spectaculaire. Toutes les informations circulant à l'intérieur d'une calculatrice ou même d'un ordinateur sont composées de 0 et de 1. Ce système appelé binaire, permet de synthétiser toutes les informations possibles, chiffres, images, caractères, à travers des séquences de bits pour rendre ces informations compréhensibles par une machine.
Par exemple, si on prend le nombre 42, il aura besoin de 6 bits pour stocker son information, qui se représentera pour un l'ordinateur 101010. Je vous épargne la conversion du système décimal au système binaire 
Lors de ...
Persistence
Posté par fantomas, le 03 juin 2007 sous Développement
Comment rendre les variables du code persistentes à travers le temps et les pannes de courants en passant par les crashs d'application ?
Cette problèmatique fut mise en avant lors du développement d'ECS, un framework e-commerce écrit en Python, au sein d'Emencia, société de services en logiciels libres.
Les modules Python pickle et cPickle servent à cela, mais leurs mise en place de manière générique peuvent etre coûteuse et de plus comment centraliser des centaines d'objets à un moment T donné ?
ECS grâce au projet SQLAchemy, supporte tous types de bases données et fournis en plus un ...
Service class design
Posté par fantomas, le 19 mai 2007 sous Développement
Avant de faire du Python par la force des choses et d'en découvrir la toute puissance.
J'ai commencé la programmation sur le web avec PHP, et me suis particulièrement interessé aux moyens de communication à travers les différentes technologies qui composent internet.
A la suite de plusieurs projets plus ou moins grands, une subtilité m'apparait, peu importe la technologie, du moment que les programmes ont accès aux mêmes ressources, et qu'ils partagent le même langue pour communiquer, il n'y a pas de problèmes.
D'où l'idée de centraliser les tâches à partir d'un ...