Plone3.1 est disponible en version béta

logo1.jpgPlone est un système de gestion de contenu professionnel écrit en langage Python. « Professionnel' », ça veut dire en clair qu’il dispose de fonctionnalités avant tout tournées vers les professionnels, à mi chemin entre sytème de gestion de contenu et framework permettant le développement d’applications métiers, il offre des conforts que l’on retrouve dans aucun autre CMS écrit en PHP puisqu’il s’appuie sur un socle applicatif robuste et ultra riche, Zope.

Je dois avouer que depuis la sortie de Plone3, j’attendais impatiemment la sortie de Plone3.1, même si grâce à Trollfot, j’ai pu avoir plus qu’un avant goût de ce qui manquait à plone 3.0.

Plone 3.1 est une version de maintenance qui vient corriger quelques bugs mineurs mais qui apporte surtout son lot de nouveautés, plus de portlets, des fields supplémentaires : le field image pour les portlets (les petites boites autour de la zone de contenu) faisait cruellement défaut mais grâce à StructuredDocument je pouvais déjà jouir de cette indispensable fonctionnalité.

Zetetic et TesLogos.com : le Web2.0 ou le retour des pieds nickelés sur le net

On les croyait tous morts depuis l’explosion de la bulle internet, oui mais voilà, avec tous ces nouveaux outils ultras conviviaux que sont facebook, mySpace, les blogs bidule et trucmuche, les trackbacks, le ixaimelle, le airaissaisse, … on assiste au retour en force de soit disant professionnels qui s’adonnent à des pratiques détestables… les plaies du Net ont encore de l’avenir. Petite plongée de le monde palpitant des startups du 2.0

Le spam :

Le spam c’est mal tout le monde le sait, surtout quand il est opéré par bots à l’intelligence ultra relative surpassant miraculeusement celle du commanditaire. C’est comme ça qu’après le spam régulier de fils de commentaires ou de forums sur certains de mes sites, j’ai décidé d’agir.

Notre premier winner du mois s’appelle Teslogos.com, opéré par la société « onlinedev » …
Mode opératoire : un posteur fou qui vient pourrir vos threads de discussion dont certains carrément techniques avec un message de ce type :

« bonjour j’adore ton site, viens visiter le mien http://teslogos.com » (on ajoute 2 lol, un kikoo et 9 smiley, ce qui nous donne :

  • Soit un échappé d’MSN qui s’est égaré sur le web
  • Soit un bot spammeur méthodique pluggué sur le réseau neuronal d’un skyblogger

… fallait pas me le demander deux fois, je suis allé visiter leur site, une belle application de vente en ligne en php (gestion des clients, gestion des annonces, gestion d’une régie publicitaires ….) avec un « petit oubli » qui conduit à la fuite des données personnelles de tous les clients de teslogos.com et à un trou béant qui m’aurait permi comme vous allez le découvrir, de faire ce que je voulais sur ce site web… Mais je suis quelqu’un de bien élevé, même si j’ai une dent contre ce pourisseur de blogs, je me suis borné a envoyer un petit mail aux auteurs du site (dont les bureaux sont situés juste à côté de chez moi …), ce mail est parti le 6 février et , presque un mois plus tard, toujours pas de réponse, le courant d’air numérique sur le site est toujours présent, une grande preuve de professionnalisme, bravo.

Je me suis donc demandé si teslogos continuait à spammer, comme Google est mon copain je lui demande; pour mémoire, j’avais trouvé en février 25 000 occurrences de leur spam et de pas mal de variantes comprises. Aujourd’hui nous en sommes à 31400, … et oui Teslogos.com continue allègrement le spam.
Je n’avais pas souhaité publier quoi que ce soit mais puisque teslogo n’a pas eu la courtoisie de répondre, que les bonnes pratiques ne sont pas respectées, et enfin que le trou signalé est toujours présent, je trouve normal d’alerter ses clients … donc voilà, vos données personnelles sont accessibles en deux clics par la négligence de ce site web, en voici un screenshot :

Teslogos.com le spammeur qui se fout de vos données persos … mais alors complètement

Notez que ce screen est bien daté d’aujourd’hui

Voilà, ça devrait suffire pour la partie « je fais du marketing 2.0 de la mort »

Passons maintenant à Zetetic, attention tenez vous bien « agence de communication interactive », terme que je n’avais plus croisé depuis 1996, à l’époque où des agences de communication manifestement incompétentes, composaient des pages html sous MS-Frontpage (beurk) et les compilaient sur un cdrom avec un petit flash à deux balles si le budget dépassait les 50 000 francs, je me suis intéressé à Zetetic suite à un petit article d’un blog que j’apprécie et qui faisait état de plagiat manifeste de ses contenus par la dite agence de communication interactive.

Pomper les contenus de petits jeunes talentueux sans même poser un lien sur la source SAYMAL!

J’ai donc voulu en savoir un peu plus et je me suis baladé sur leur site web histoire de comprendre de visu ce qui se passait et évidemment, je suis tombé sur une belle bande winners. Là encore pas de doute possible il s’agit bien de rescapés de l’éclatement de la bulle internet qui essayent de refaire surface avec le web2.0 … attention séquence émotion :

  • copiés/collés de contenus sans citation de la source
  • Comme on connaît pas trop les machins en ajax là, on fait un gros blob en flash avec des effets de transparence qui rappellent étrangement jQuery, ouai mais voilà ça c’est du 2.0 canada dry, le flash c’est une techno du 20e siècle pour les sites web.
  • Je passe ensuite sur les aspects techniques (code html indigne de professionnels, parfaite méconnaissance des moteurs de recherche, …) et le baratin commercial avec des fautes alors qu’il n’y a que 3 pages au site web, je cite : « Nous vous proposons de développer des logiciels sur mesure pour vous aidez dans vos projets »… ouai ben non merci hein, je vais m’occuper du dev et de ma communication tout seul finalement, même si je suis loin d’être une bête en orthographe….
  • Je finis par découvrir un blog WordPress bien planqué sur lequel je découvre les articles pompés du blog lejournaldublog, pas une référence, pas un lien … oui c’est carrément malhonnête de leur part.

D’un autre coté, comme je l’explique dans mon commentaire sur lejournaldublog, la rédaction n’a vraiment pas à s’en faire vu que c’est mis en place par de supers amateurs et que le journaldublog est de tout points de vue d’une qualité nettement supérieures à Zetemachin à qui je recommande vivement de faire une proposition d’embauche aux auteurs du journal du blog qui connaissent les standars web, ajax, les balises métas, le comportement de bots référenceurs, ne collent pas du style dans leur html, rédigent de vrais contenus…

Bref si vous avez besoin d’un beau site web et d’une communication sur le net efficace, allez plutôt passer un mail chez lejournaldublog pour voir ce qu’ils peuvent faire pour vous au lieu d’aller chercher à faire confiance à des « morts vivants », comprenez des entités du Net qui l’on pensait disparues depuis 1999.

Voilà, ce sera tout pour aujourd’hui, si vous avez de remarques, des excuses à formuler, des insultes à proférer, n’hésitez pas 😉

Premiers pas avec Django : un framework en Python pour développer rapidement et efficacement – Acte 1

test-ok.pngComme vous le savez sûrement WordPress c’est sympa, c’est convivial, relativement modulaire, agréable pour le gestionnaire de contenus, ça fait de belles urls bien proprettes … oui mais voilà un geek sur wordpresss, au bout d’un an, il s’emmerde … il a en a surtout raz la casquette de devoir mettre à jour 20 pluggin tous les mois. Du coup il se demande s’il ne va pas en virer ou faire un métabundle …; mais non c’est idiot, trop de temps pour un résultat sûrement pas sexy qui posera par la suite des problèmes de maintenabilité.

Ma problématique du jour est la suivante : j’ai besoin d’un truc assez passa partout qui me permettrait de faire fonctionner plusieurs petites appli très simples, blog, moteur digg like… sur des urls en sous domaine, rien de sorcier. mais là tout de suite, on voit bien que

Worpdpress + pligg face à Django tout seul qui sait tout faire, … on prend donc Django. Ruby on Rails aurait lui aussi pu convenir, mais c’est Python qui nous intéresse 😉

Ce qui m’amène au jouet du jour : Django

Django est un framework reposant sur le langage objet Python, Django est un outil à destination des développeurs.

On va commencer par faire nos premiers pas avec lui

Petite install de Django, on va utiliser la méthode svn plus à même de garantir une maintenabilité parfaite.

$ svn co http://code.djangoproject.com/svn/django/trunk/ django

En fonction des OS, des versions des OS, il va falloir localiser votre installation, sur Linux, python est souvent dans le /usr/lib; mais si ce n’est pas là pas de panique

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

ce qui me renvoi pour mon os :

/usr/lib/python2.5/site-packages

C’est parfait je sais où se trouve mon install de Django

$ cd /usr/lib/python2.5/site-packages && ls
Django-0.97_pre-py2.5.egg-info README django

Comme je veux avoir vite un truc en production, je suis les bons conseils distillés sur le site de Django et j’installe le mod-python,

$ sudo apt-get install libapache2-mod-python

Il faut maintenant s’assurer que les pages .py s’affichent correctement et pour ça il va déjà falloir modifier le fichier de copnf default de notre apache2

$ cd /etc/apache2/sites-available/
$ emacs default

A la 10e ligne on trouve ceci :

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>

On va le transformer en ça :

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
# Uncomment this directive is you want to see apache2's
# default start page (in /apache2-default) when you go to /
#RedirectMatch ^/$ /apache2-default/
</Directory>

c’était histoire de déclarer ici que notre Apache est beau, que notre Apache, est puissant que notre Apache comprend maintenant Python ! … d’ailleurs pour s’en rendre compte on va tester ça en créant un petit fichier de test, intelligemment appelé test.py

$ sudo emacs /var/www/test.py

on y colle ceci :

def index(req):
return "Yeaaah my Apache knwows kungfu !!!";

on enregistre maintenant le tout, puis on redémarre apache

$ sudo /etc/init.d/apache2 restart

J’ouvre mon navigateur et et là top du top, mon Apache connait le kungfu …

test-ok1.png

On passe maintenant à la config de base du httpd.conf

$ sudo emacs httpd.conf

on va y placer ceci

<Location "/monsite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE monsite.settings
PythonDebug On
</Location>

Notez que le debug est sur « on » pour le moment.

On va maintenant s’installer notre petite base de données, on va ici choisir du MySQL5 qui aura aussi besoin de mysqldb

$ sudo apt-get install mysql-server python-mysqldb

C’est donc parti pour l’installation de notre Django , je me place dans le répertoire du trunk Django que j’ai svn checout à la première étape et je lance le script d’install :

$ sudo python setup.py install

Si tout c’est bien passé je dois avoir quelque choses comme ceci qui m’indique où l’egg se trouve

running install_egg_info
Writing /usr/lib/python2.5/site-packages/Django-0.97_pre.egg-info

Il ne reste plus maintenant que les confs post installation à se farcir, elles sont très bien documentées sur le site de support :

Xname et ZoneEdit : gérez vos DNS en mode Zen

Depuis plusieurs années, je gère mes DNS moi même avec des services gratuits ou payants de type Xname ou ZoneEdit. J’ai toujours été très satisfait de leurs services respectifs, ce malgré quelques petites galères. Je suis particulièrement attaché au service de Xname qui propose une interface en français et en anglais permettant de gérer ses zones, ses sous domaines, ses mx (mail) etc … Simple efficace et clair, c’est une recette qui a fait la gloire de Google et que Xname pratique, c’est très appréciable.

Cette nuit, comme pas mal de monde j’ai eu des petits soucis avec mes DNS, une base de données de Xname semble avoir pété, et plus aucune zone n’étaient visibles dans la console de gestion, elles sont de nouveau visibles mais beaucoup de mes domaines se retrouvent en propagation et donc inaccessibles.

L’année dernière, Xname avait également essuyé une attaque par déni de service distribué qui avait paralysé le service plus de 48h. Les indisponibilités de Xname son rares, mais voilà, elles sont toujours gênantes. On ne peut pas blâmer le service de Xname qui apporte déjà ce service gratuitement, mais bon, personnellement, j’aimerai beaucoup avoir un service de type ZoneEdit (payant), avec une infrastructure peut être un peu plus évoluée (protection contre les DDOS). Toujours est il que pour l’instant, vous pouvez contribuer à faire en sorte que Xname perdure et s’améliore en apportant une petite contribution. Cette association permet a des professionnels de faire leur business ou a des particuliers de gérer leurs domaines et ceux des copains.

Quand on sait a quel point les DNS sont le maillon le plus faible de la chaîne, on se dit que XName avec l’aide de quelques SS2L pourrait devenir un service incontournable sur le net francophone et plus encore.

Une PME doit elle opter pour un abonnement internet professionnel ou 2 connexions grand public ?

Bonding Si vous gérez le réseau d’une PME, ou si vos connaissances n’excèdent pas le strict stade de la bureautique et que vous ne vous êtes même pas posé la question, ce post peut vous intéresser. Je m’interroge régulièrement depuis plus de trois ans maintenant, qu’y a t’il de plus fiable : une connexion professionnelle chez un opérateur compétent (comme Nerim ou Orange Pro) ? Ou bien deux connexions grand public sans garantie de fonctionnement ? J’ai personnellement opté pour le second choix. Je dispose d’une connexion Free dégroupée et d’une connexion Noos 30meg. J’ai en outre la chance d’habiter à moins de 1000m de mon DSLAM, ce qui fait de ma connexion Free une connexion plus performante et plus fiable.

Voici les avantages de ce choix :

  • En choisissant une connexion câble en plus d’une connexion DSL, on diminue les risques liées à la techno elle même : si le Noeud de Raccordement Abonnés (NRA) se prend un Airbus, une connexion câble fonctionne toujours car elle ne passe pas pas les paires de cuivre du téléphone et donc pas non plus par le NRA.
  • On bénéficie de deux adresses IP externes (IPV4) et si on est chez Free on bénéficie depuis peux de l’IPV6 permettant d’assigner des IP propres sur chaque bécanes… la classe.
  • Au lieu d’avoir une ligne spécialisée onéreuse avec peu de débit on en a 2 avec des débits confortables.
  • Et dernier argument … on peut faire copuler ces deux connexions !

Euh … montre moi ton gros tuyaux

Partant du constat simple que n’importe quel geek ferait aux périodes de noel, quand la pression du travail se fait moindre et qu’il faut beaucoup geeker pour supporter Tino Rossi à la TV :

24+30 = 54mb en download et 1+1 = 2MB d’upload… pas besoin d’être une brute en math jusque là.

Oui sauf que quand je suis sur une connexion, je ne suis pas sur l’autre donc c’est soit 24 soit 30 … ah moins que … à moins qu’en s’amusant un peu avec ces paquets magiques, je ne les fasse rentrer dans la banquise (une vieille bécane sous mélénusque réhabilitée pour l’occasion).

« Un seul pour les gouverner tous » : Melenusque r0x0r <3 #!@!#!@!#!@

On rentre un peu plus dans le vif du sujet : comment agréger 2 connexions pour bénéficier d’un gros tuyaux au lieu de 2 petits et qu’en cas de défaillance d’une des deux connexions, mon réseau soit assez « intelligent » pour continuer à assurer le service avec une seule de ces deux connexions. Cette pratique (non BDSM) se nomme le bonding, c’est super bien documenté de tous les côtés. Je vais donc vous épargner un fastidieux tutoriel sur ce blog mais si ça vous intéresse je vous pose ma configuration sur un wiki ou quelque chose de plus approprié que ce blog.Cette petite bidouille a pour vocation de rendre transparent un soucis de connexion sur un réseau local et d’en améliorer les performances brutes. Je pense que de nombreuses PME devraient se pencher sur cette solution avant d’investir des sommes considérables dans une ligne spécialisée … donc voilà 2 connexions qui copulent en faisant du bonding non BDSM.Seule contrepartie en dehors des deux heures de bidouilles et de saines lectures nécessaires, si vous avez une connexion Free, il va soit falloir abandonner l’idée de l’IPV6 si la connexion de l’autre FAI ne le supporte pas ou bien il vous faudra router le trafic IPV4 et IPV6 chacun de leur cotés (ce qui n’est pas forcement ce que l’on souhaite).

Vous ne pourrez pas passer a côté de cet excellent tuto pour Debian sur Developpez.com

OpenPGP dans SeaMonkey la suite d’applications internet opensource

Depuis plus d’un an maintenant, je n’en finis plus de chanter les louanges de SeaMonkey, le navigateur « tout en un » de Mozilla. Client mail, éditeur html wysiwyg, carnet d’adresses, client IRC et surtout excellent navigateur web. Travaillant beaucoup sur OSx j’ai vite cherché une alternative open source à Safari. J’ai naturellement commencé avec Firefox mais sur un g4 il s’avérait complètement inutilisable montrant de grosses lenteurs sur des pages un peu chargées en javascript / ajax. Je me suis donc vite penché sur SeaMonkey dont les performances m’ont bluffé alors qu’elles étaient sensées être moindres si on se réfère aux nombreuses fonctionnalités supplémentaires qu’offre nativement SeaMonkey par rapport à Firefox qui se borne à être un simple navigateur.

Seul regret, les plugins sont sûrement moins fournis que pour Firefox. Et c’est justement ces plugins qui m’amènent à ce post puisque SeaMonkey propose une extension Enigmail qui permet de tirer partie d’OpenPGP pour chiffrer et signer vos emails… pil poil ce que je voulais.

J’ai donc configuré tout ce petit monde et encore une fois j’ suis sur le cul de voir la qualité du travail fourni par les développeurs de SeaMonkey et de ses plugins en 3 minutes chrono tout était au poil.

Voici comment faire sous OSX :

Commencez par récupérer SeaMonkey et installez le ;

Il vous faut ensuite installer GnuPG ;

Et il nous reste maintenant à installer le bon plugin SeaMonkey Enigmail ;

Et voilà vous relancez votre seamonkey vous configurez un compte mail si vous ne l’avez pas fait entre temps. A la première utilisation vous allez devoir générer votre jeux de clefs et votre certificat de révocation, le tout est parfaitement et simplement interfacé graphiquement ça se fait vraiment en quelques clics. Par défaut les clés générées le sont en 2048 bits ce qui est considéré comme un chiffrement tout à fait satisfaisant.

Encore une fois bravo aux développeurs ce navigateur est à mon sens définitivement le meilleur actuellement sous OsX comme sous Linux (sous Windows désolé j’ai pas pu me résigner à essayer). Les nombreuse extensions professionnelles qu’il propose m’ont vraiment séduit et le client mail, proprement configuré me fait oublier le confort de Mail.app sur OsX qui du coup se montre franchement plus limité.

Configuration express d’un serveur pour Zope / Plone sous Debian Etch

Voici en quelques mots les étapes d’installation et de configuration d’un serveur pour Zope / Plone :

– Installation de la distribution : Debian Etch, on choisira l’install via l’interface de dedibox. C’est ultra rapide, une fois terminée, l’installation reboot la dedibox, vous pouvez donc vous y connecter via ssh.
– Pour configurer la date et l’heure on utilise la commande Date : $ sudo date 090616302007 : ce qui définit la date suivante : 6 sept a 16H30 en 2007
– On installe le nécessaire : apt-get install emacs21 subversion irssi sudo vim …
– Zope et python via dpkg : apt-get install python2.4 zope2.9
– Attention installer PIL : apt-get install python-imaging
– Plone depuis les sources du site wget.
– Edition du etc/zope.conf pour mettre un port autre que 9673.
– L’instance se lance
– On ajoute ses products utiles à coup de wget dans le répertoire Products du Zope (en oubliant pas de les décompreser). Attention à PloneFormGen a besoin de TALESField (sinon on plante l’instance) que l’on peut trouver ici http://plone.org/products/scriptablefields/?searchterm=TALESField
– installation de Apache2 via dpkg : Au passage, Apache nous rappelle les petites commandes utiles.
– Installer les Modules Apache dont nous avons besoin avec a2enmod :
yakuza:/home/bluetouff# a2enmod proxyModule proxy installed; run /etc/init.d/apache2 force-reload to enable.yakuza:/home/bluetouff# a2enmod rewriteModule rewrite installed; run /etc/init.d/apache2 force-reload to enable.yakuza:/home/bluetouff#
– On pense à faire pointer le DNS sur la nouvelle machine
– Configuration des vhost apache et restart du serveur HTTP
… et voilà, on patiente tranquillement que le domaine pointe bien

2 serveurs dédiés en 20 minutes !

Ben oui, 20 minutes c’est le temps qui s’est écoulé entre la confirmation de ma commande de 2 dedibox.
du coup :


Linux yakuza 2.6.21.1dedibox-r7 #1 Mon Apr 30 17:25:38 CEST 2007 i686
Serveur : yakuza
IP : 88.191.xx.xx
Add MAC : 00:40:63:e8:xx:xx
OS : Debian GNU/Linux 4.0 installe le 2007-09-06 15:00:36

et


Linux vodka 2.6.21.1dedibox-r7 #1 Mon Apr 30 17:25:38 CEST 2007 i686
Serveur : vodka
IP : 88.191.xx.xx
Add MAC : 00:40:63:ea:xx:xx
OS : Debian GNU/Linux 4.0 installe le 2007-09-06 15:07:02

Et paff 2 nouvelles dedibox pour Toonux

Je viens de commander 2 nouvelles dedibox en plus de nos 2 précédentes et des 2 autres serveurs dont nous disposons. L’une de ces dedibox sera une machine dédiés pour l’un de nos clients, l’autre proposera des instances dédiées sur une machine mutualisée. Elles sont toutes deux équipées de l’option RAID. Ces machines serviront a installer Zope et Plone, plus éventuellement une ou deux applications PHP pour la machine mutualisée. Se pose en fait la question du choix de l’OS, j’ai actuellement du Debian et de l’OpenBSD pour les deux autres box. Pour ces deux nouvelles, j’hésite franchement entre Debian ces deux OS, les deux ont leur qualités et leur défaut.Le support du RAID fonctionne correctement sur OpenBSD depuis un moment, je présume qu’il en est de même sous Debian. Maintenant … sur une Dedibox, il faut prier pour ne pas avoir de surprise avec le matériel… en tout cas c’est commandé, wait and see, en espérant ne pas à avoir à attendre 6 semaines comme la dernière fois (c’est une affaire qui marche les dedibox).