This is coming precisely from a Qt issue that don't seem to be resolved anytime soon, so anyway you're warned now, revert back to 4.7.x you have no choice. Except if you want to buy Lion
So in your life, one of these days, you're going to realize you need tests, and that "maybe" you also need to test components that depend on several Celery tasks.
Well to help you make this day more productive and less painful, here's a few tips.
First to make it work with Django-celery, a pretty good but small documentation is available here http://ask.github.com/django-celery/cookbook/unit-testing.html it may seems small and not enough, but it actually is enough. To sum up all you need to make it work with ./manage.py test is to change the test runner to :
But it's not enough, soon when you think everything's over, you'll want to deploy and make it go through Jenkins's testing processes. Well i don't know about you but to me the django-jenkins project is quite a good one and i use it everyday but it has one flaw, it already as its designated TEST_RUNNER so if you try to execute your tests through ./manage.py jenkins it won't work and you'll get at least a Connection Refused error.
Here's how to fix this, the documentation says if you want to replace the TEST_RUNNER you may do so, but the class you'll use needs to inherit from django_jenkins.runner.CITestSuiteRunner and if you want the Celery tasks to work you need to use the djcelery.contrib.test_runner.CeleryTestSuiteRunner.
Fair enough, here's what i did. I created a new class :
from django_jenkins.runnerimport CITestSuiteRunner
from djcelery.contrib.test_runnerimport CeleryTestSuiteRunner
class MixedInTestRunner(CITestSuiteRunner, CeleryTestSuiteRunner):
pass
Why not ? and used it as such defining the new TEST_RUNNER by changing the settings's variable JENKINS_TEST_RUNNER to the newly created class.
On peut dire beaucoup de choses, mais pas que l'on chôme. Une application IPhone développée par Benoît Clouet est en préparation et bientôt prête pour être testée. Nous avons beaucoup travaillé ensemble sur la communication avec l'API du site, et voici un petit screencast de présentation de la version de test actuelle (chargement un peu long) :
La version IPhone a pris 1.5 Jours à développer ! Les paris restent ouvert pour développer une application Android en moins de temps !
La, maintenant célèbre, lettre de la RATP que j'ai reçu me demandant d'arrêter toute activité sur incidents-ratp.com. J'ai bien sûr retiré toutes références aux personnes et adresses y compris le personnel de la RATP.
Depuis quelques mois je travaillais sur un projet que j'avais intitulé incidents-ratp.com avec un but simple : mettre à disposition une plateforme libre et ouverte pour connaître les incidents en temps réels dans les transports en commun.
Basé sur le partage entre utilisateur et un système de vote permettant de tagger des incidents comme "terminés", "inexistants" ou "toujours en cours...". Le coeur du système restait dans le partage de l'information et dans la mise à disposition d'une API ouverte pour accéder à ces données. En sommes : reprendre le contrôle sur nos données de transports pour que l'on puisse mieux s'organiser et donc fluidifier le trafic !
Le site était prêt et je travaillais sur l'application Android quand le Samedi 19 février, j'ai reçu une lettre recommandée de la RATP m'accusant de "contrefaçon pour reproduction de la marque RATP" et m'invitant, si je voulais éviter le procès, à accepter le compromis à l'amiable suivant :
Transférer le nom de domaine incidents-ratp.com gratuitement au profit de la RATP ;
Arrêter tout travail sur ce projet, sous le pretexte qu'il serait "une activité préjudiciable à la RATP" ;
M'engager par écrit à ... ne pas spolier la RATP ?!
Ce projet était à but non-lucratif, et même si j'avais prévu de gérer les frais de l'hébergement, le nom de domaine etc. Je ne me vois pas m'engager dans une bataille juridique de plusieurs années et plusieurs millers d'euros contre un organisme d'état (mes impôts servent à beaucoup de choses que je ne cautionnent pas forcement, mais j'aimerai éviter qu'ils servent en plus à me traîner en justice). Je vois un avocat mardi 22 février, mais quoiqu'il arrive le code source de ce projet sera libéré dans le domaine public.
N'hésitez pas à montrer votre soutien, je vais en avoir besoin...
Principal talk de la journée - Facebook messages avec HDFS/HBase :
Une présentation du projet de Facebook d'unifié tous les messages (SMS, Email, Chat...).
Peu de présentation autour du coté fonctionnel de la chose ("la philosophie" pour emprunter un terme Google-Wavien)Mais une présentation technique très intéressante, voilà un petit résumé des principaux points clés de cette présentation.
Tout d'abord au niveau technologies, malgré la présence des trois devs principaux de Cassandra dans l'équipe de Facebook, ils ont décidés après évaluations de toutes les solutions "NoSQL" de partir sur HBase pour la gestion des 24 Gb de données mensuelles (chiffres évoqués par le présentateur de Facebook correspondant aux seules données de Messages...) qu'ils ont a traiter.
Le principe est assez simple, ils ont constitués des cluster HBase basé sur le système de fichier HDFS, et ils utilisent ZooKeeper (User Directory Service) pour rediriger vers le bon Master d'un cluster, les requêtes.
HBase sert pour les Metadata et corps de messages. Le serveur applicatif en lui-même utilise Memcached (comme de bien entendu...).
Etant donné l'assez importante utilisation d'HBase, ils ont recourt à Hadoop énormément pour des Jobs MapReduce dont dépendent l'application et la migration d'anciennes données.
Pour HBase et pas Cassandra ?
Principalement pour éviter de gérer le problème de l'eventual consistency (c.f. CAP Theorem) inhérent à Cassandra. HBase pour sa part a un modèle de consistence très puissant, et supporte le MapReduce "out of the box" le tout sous HDFS. L'équipe de Facebook a fait d'autres présentations auxquelles vous pouvez vous reporter en complément : sur facebook.
La journée commence bien, petit déjeuner à l'hôtel, et voyage vers le FOSDEM. Petite grasse matinée oblige, on loupe les premières conférences sur la liberté des logiciels et la liberté tout court pour arrivé dans un amphi gigantesque, mais surtout plein à rebord.
Heureusement cet effet de foule ne dure pas car la conférence qui suit sur "LLVM et Clang" fait fuir une bonne moitié de cet amphi de 800 personnes.
1er Talk : LLVM et Clang
Talk très intéressant reprenant certaines critiques sur les performances de GCC qui se sont dégradés avec les années, pour montrer les nouvelles performances de Clang. Les stats sont bluffantes au point de vue performance de compilation, les chiffres montrent qu'une compilation -04 sous Clang est plus performante et plus rapide qu'une compilation -01 sous GCC 4.3, tandis qu'à l'execution, la rapidité d'execution d'une compilation -01 sous Clang dépasse celle d'une compilation -O3 sous GCC 4.3. Pour plus d'informations vous pouvez vous reportez à la page du projet Clang.
For a simple example of the main topics you can see the old State of Clang slides : Slides Here
Ensuite
Pour l'après midi, on a essayé tant bien que mal de rejoindre la Salle de Data Analytics, mais il y avait beaucoup trop de monde comparativement à la place de la salle, et comme l'enregistrement vidéo des conférences a été "quelque peu déficient" (edit : en fait l'enregistrement a fonctionné et les vidéos seront disponibles merci @amicel), voilà "en exclusivité" autant de slides que j'ai pas récupéré sur le sujet :
Mapping Wikileaks' Cablegate topics using Python, MongoDB, Neo4j : Slides Here (edit : or Here thx @elishowk);
Machine learning in Python with scikits.learn Slides Here ;
Graph Databases, The Web of Data Storage Engine : Slides Here;
more to come... (i hope), if you have more comment
La suite de notre journée a été constitué principalement des enchainements de lightning talks, qui était très agréable dans une grande salle avec un bon wifi.
Voilà en vrac les présentations qu'on a pu retenir et apprécié :
Vendredi soir, après une longue journée de boulot, et un petit voyage en train d'1h30, rendez-vous Bruxelles pour une soirée sympa au beer event du FOSDEM 2011.
Au Delirium café, geeks et barbus dissertant sur C/C++/Java avec des légers trolls sur ie6 Vs le reste du monde, le tout à deux pas de la grande place avec de la bière belge.
Difficile de loupé les t-shirts Fedora, Ubuntu, VideoLan, Gentoo et j'en oublie, mais des geeks en soirée, moi j'aime
Le FOSDEM 2011 (Free OpenSource Developer European Meeting) aura lieu ce weekend du 5 février à Bruxelles !
J'y serais et j'attends avec impatience un certains nombres d'events. Il va bien sûr, encore une fois, être difficile de choisir parmis toutes les confs disponibles mais si vous voulez mon avis sur les Talks et conf à ne pas manquer,
La Data Analytics DevRoom autour de l'analyse de données et du Machine Learning : http://datadevroom.couch.it/ où en plus des sujets déjà alléchants (ci-après) il y aura une présentation de la librairie python de machine learning SciKit Learn
Information retrieval / Search,
Large Scale data processing,
Machine Learning,
Text Mining,
Computer vision et
Linked Open Data
Les Lightning talks risquent aussi d'être intéressants avec le Samedi