J-Mad

Nov 292009
 

Ça sera bien la première fois que je ne fais pas de jeux de mots dans le titre d’un billet la Django-app du mois. Mais là, je n’ai vraiment pas d’inspiration et comme je suis sur un timing plutôt serré (le billet devant être publié d’ici au plus tard 4h20 pour pouvoir prétendre à être un billet de novembre), je ne vais pas trop attendre qu’elle n’arrive. Je me rattraperai le mois prochain (je pense parler de piston le mois prochain, tout un poème…).

Django-ROA donc, cette jolie app est développée par David Larlet que j’ai déjà cité dans mes précédents billets. Il permet de gérer des ressources distantes normalement accessibles en REST, en passant à travers l’ORM de django (et donc les modèles Django).

Et oui, ça permet, d’une façon plus que facile de faire comme si des modèles distants étaient des modèles locaux.

Le petit schéma suivant (que j’ai très vilainement récupéré du site de David, sur le billet parlant de Django-ROA) explique tout, bien mieux que ne le ferraient mille de mes mots.

django-roa-diagram-petit

Bien entendu, on est pas obligé de se limiter à faire communiquer notre Django à un autre Django distant. On peut se connecter à tout ce qui a une interface HTTP. Op timeline de Twitter, Op n’importe quelle BD discutant le HTTP…

Je vois à vos sourires béats que vous êtes en train de comprendre combien Django-ROA peut être utile. Et vous avez raison.

1- Où on le trouve, comment on l’installe, tout ça quoi ?

Alors on le trouve sur la page bitbucket qui lui est consacré. Pour l’installation, il y a deux possibilités :

  • soit avec hg et op on récupère la dernière version des sources
  • soit avec easy_install

Attention toutefois, le package easy_install contient une version du trunk Django 1.2. Si vous ne voulez pas l’utiliser, il faudra penser à supprimer le répertoire en question.

Dans les deux cas Django-roa vient avec une version de restkit et une version de Django-piston. Si vous avez déjà ces deux librairies là, là aussi il faudra penser à faire le nettoyage.

Enfin, c’est important, si vous êtes en Django < trunk, il vous faudra patcher votre Django pour pouvoir utiliser les many to many en distant. Si vous êtes en Django SVN, il vous faudra attendre que David ait rendu Django-ROA compatible Django 1.2 (c’est peut-être déjà le cas d’ailleurs).

2- Niveau documentation

Il y a le wiki du bitbucket ainsi que l’article du blog de David dont j’ai déjà donné le lien (mais je le redonne pour les étourdis). Il y a également le code source des tests, qui permet de bien comprendre comment tout fonctionne. Et je vous recommande vraiment de lire le code des tests si vous voulez comprendre.

3- Qu’est-ce qu’on fait et comment on le fait ?

Qu’est-ce qu’on fait, je vous l’ai déjà dit. Faut suivre un peu. On connecte notre Django à notre Django (ou d’autre base distante, voir l’exemple avec Twitter). Mais ce qu’il faut savoir c’est que Django-ROA permet de gérer la partie serveur et la partie client, dans le cas où vous développez vous même la partie ‘Django distante’.

Maintenant Django-ROA est encore en dev, et il peut être utile de connaître quelques petits tuyaux, que bien entendu, je vais vous donner.

4- Les tuyaux de Jmad…

4.1- Erreur 500 côté serveur

Sur la partie serveur, il se peut que vous vous trouviez avec des erreurs 500 assez silencieuses. C’est moi ce que j’ai eu. Il se trouve que c’est dû au logging.debug et à un problème (allez savoir pourquoi) d’encodage UTF-8. Enlevez les logging et tout roule. Je n’ai pas eu le temps de chercher et faire remonter à David le pourquoi du comment de ce problème, mais comme je me suis creusé la tête quelques temps avant de trouver le problème, je préfère vous informer.

4.2- Sérialisation…

Par défaut, on peut sérialiser les objets de trois façons :

  • en JSON,
  • en XML,
  • en utilisant le sérialiseur fait par David pour les tests qui est un sérialiseur XML un peu modifié.

Allez savoir pourquoi, mais pour moi, seul le troisième daignait fonctionner.

4.3- Authentification

Pour l’instant l’authentification sur les services distants n’est pas gérée. Si vous en avez absolument besoin, n’hésitez pas à envoyer un mail à David.

5- Conclusion

Django-ROA est encore un module en dev, il manque quelques fonctionnalités qui pourraient le faire passer du statut d’app intéressante et utile à celui d’app complétement indispensable. Mais il est d’ors est déjà bien utile, quand des problématiques de communication entre bases distantes se mettent à apparaître.

Il me semble juste que l’on devrait changer son nom, pour par exemple Django-CROA. Ça m’aurait permis d’avoir un bien meilleur titre du genre Django-CROA et le crapaud est en toi, ou alors Django-CROA , l’app qui voulait devenir aussi grosse qu’un bœuf…) enfin, tant pis.

Nov 082009
 

Voici donc mon premier billet parlant de procrastination, au sens large. C’est aussi l’idée de ce premier billet qui m’a fait avoir l’idée de faire un ensemble de billet sur (ou plutôt contre) la procrastination.

J’ai des idées. Tout le monde a des idées. Plus ou moins souvent, de plus ou moins bonne qualité. Avoir des idées, c’est bien. Sauf quand on en a trop.

‘Comment peut-on avoir trop d’idées, comment avoir des idées peut-être de la procrastination ?’ pensez-vous surement à ce moment de votre lecture.

Il faut déjà que j’explicite un peu dans quel cadre je me situe dans ce billet. Je parle de projet ‘perso’, nécessitant du temps, temps que l’on prend sur son temps libre, lorsqu’on le peut. Que ce soit de développer un logiciel pendant les longues nuit d’hiver, d’écrire un cycle de roman ou d’inventer des trucs qui permettront de révolutionner le monde (comme une voiture qui utiliserait les déchets ménagers pour rouler).

Mais revenons-en au sujet du post, le fait d’avoir trop d’idée et comment on sait que c’est le cas.

Je pense qu’il y a un critère simple. Lorsque l’on a tellement d’idée que l’on ne sait plus par laquelle commencer, c’est qu’on en a trop.

Mais ce n’est pas le seul. Lorsque l’on a décidé de se lancer dans un projet, que cela fait quelque temps que l’on travaille dessus et que étonnement on se rappelle d’une idée terriblement géniale que l’on a eu y a quelques temps, que l’on commence à y réfléchir de plus en plus en négligeant notre projet en cours, là il faut tirer la sonnette d’alarme.  Parce que la procrastination est en train de nous croquer. Surtout si cela arrive au moment où l’on éprouve les premiers doute ou les premières difficultés sur notre projet en cours. Ou si c’est le projet en est presque au moment ou il faut le ‘partager’, le montrer aux autres. (j’ai d’ailleurs l’impression que ce moment là est un des moments où les projets risquent le plus de mourir…)

Je sais qu’en ce qui me concerne, j’ai tendance à avoir ce travers. J’arrive même parfois à me persuader que je serais capable de mener plusieurs projets de front. Que les idées sont tellement géniales qu’il ne faut pas les faire attendre. Après quelques temps, je finis par me rendre compte que  ça n’avance pas et je donne des priorité au choses.

J’ai aussi mis quelques règles en place pour faciliter les choses. Je note toutes mes idées, dés que j’en ai et qu’elles me semblent intéressantes. (j’en remplis des carnets). Mais rien de plus, ou quasiment rien de plus. Je reste focalisé sur le ‘truc’ en cours, jusqu’à ce que je l’ai finis, abandonné, mis en pause.(ou parfois focalisé sur rien, lorsque par exemple il y a un gros gros coup de chaud au boulot et qu’il faut bosser 20h/24) Je m’offre parfois des sessions de brainstorming sur les idées que j’ai noté dans mes carnets. Soit pour les biffer d’un coup de stylo parce qu’au final, elles étaient médiocres, soit pour les approfondir un peu, les améliorer. C’est ce que je fais par exemple, sur mes différents projets de jeux. Que ce soit jeux vidéos / jdr / jdc. Je note les idées, je les laisse murir et j’attends d’avoir le temps.

Au final, c’est assez cocasse que je parle dans ce premier billet du problème d’avoir trop d’idée… Après tout, si je suis mes propres mots, lancer cette nouvelle catégorie de billet, écrire ce billet, suivre cette nouvelle idée, c’est presque de la procrastination. Mais bon, si je continue, je vais me donner mal à la tête à trop réfléchir… 🙂

Nov 082009
 

Fin de week-end, je fais le tri parmi les todo à faire pour demain, mes idées de billets, mes idées tout court. Lister mes idées du week-end m’a rappelé une idées de billet que j’avais envie d’écrire depuis longtemps. Et en y réfléchissant, ça m’a donné l’idée d’un ensemble de billet parlant tous du même sujet.

Ce sujet, c’est l’ennemi, avec en grand E de tout entrepreneur, si l’on prend le mot au sens large. Par là, je veux dire de toute personne qui un jour à décider d’entreprendre quelque chose, de partir d’une feuille blanche et d’avancer lentement, pas après pas pour réaliser un projet.

Qu’est ce que c’est au final, ça n’a pas vraiment d’importance, cela peut-être une entreprise, un roman, la construction d’une maison, ou un projet informatique… Mais dans tout ces cas de figure là, il y aura toujours ce terrible ennemi, cet ogre dévoreur de temps et d’énergie qui guettera notre héros entrepreneur. La Procrastination.

La procrastination est, j’en suis convaincu, l’une des raisons principales qui font que les projets échouent.

D’une manière très simple.

Procrastiner fait que l’on avance pas, que l’on prend du retard. Petit à petit, ce non-avancement devient de plus en plus pesant jusqu’à être complétement démotivant.

Et l’on rentre alors dans un cercle vicieux. La vision déprimante des jalons d’avancement qui ne se rapprochent jamais pousse petit à petit notre valeureux entrepreneur à faire des choses sans rapport avec son projet (même si il se persuade du contraire), des petites choses qu’il pourra finir rapidement, et qui auront le mérite de lui penser à autre chose, d’avoir avancer.

Et op, il procrastine un peu plus. Et op le projet avance un peu moins.

Au final, il se retrouve à passer ses week-end à regarder la télé, voir même Walker, Texas Ranger tandis que ses beaux projets prennent la poussière, oubliés, dans un coin.

J’ouvre donc une nouvelle catégorie, qui ne parlera que de procrastination, comment la débusquer, comment lutter contre elle, comment la bannir de ses projets… (ou tout au moins comment à chaque fois essayer de le faire).

Nov 072009
 

On le sait tous, si on dev des programmes (et plus particulièrement ici des jeux) c’est pour le plaisir d’avoir des utilisateurs. De gentils utilisateurs qui vont avoir les yeux qui brillent à la simple idée d’utiliser nos productions, qui ne râleront jamais parce que ça rame ou que cela plante.

Et ce n’est pas du tout pour pouvoir, se payer de quoi manger, pas du tout, ça c’est secondaire …

Bon arrêtons les conneries 🙂 Bien entendu que le retour des utilisateurs (et de ses pairs) est important. Bien entendu que sur un jeux, voir que l’on offre des heures de jeux à des inconnus, qu’ils  prennent du plaisir avec ce pu… de projet qui nous a couté tant d’heures de sommeil, c’est une gratification immense. Mais bon, si on pouvait avoir un peu plus qu’une simple reconnaissance, ça serait quand même vachement mieux. A minima, de quoi payer les couts de maintenance et d’évolution d’ailleurs. Plus après tout, pourquoi pas,l’on peut toujours rêver …

Mais, pour gagner des sous, il faut faire payer de gens. (ben oui, je rappelle, au cas où, que l’impression de billet est toujours illégale). Donc trouver des choses suffisamment intéressantes à leur proposer pour qu’ils paient.

La question est donc :

  • Qu’est ce que l’on peut bien faire payer aux joueurs d’un MMOweb ?

Et la réponse est :

  • Plein de chose :).

Mais, et là, c’est mon intime conviction à la fois de joueur et de développeur de jeux, pour que cela fonctionne, pour ne frustrer personne et maximiser le plaisir de ses joueurs tout en gagnant de l’argent, il faut toujours respecter la règle d’or suivante  :

Un joueur qui ne paie jamais rien, doit pouvoir arriver exactement au même point en terme d’évolution de personnage, de puissance dans le jeux, qu’un joueur qui paie.

Que le joueur qui ne paie jamais rien soit obligé de passer plus longtemps, que cela soit plus difficile ou plus répétitif pour lui, ce n’est pas dérangeant. Il faut simplement qu’il puisse arriver au même niveau qu’un joueur payant.

Autrement dit, on peut s’amuser sans payer, et avec de la patience et du skill. il doit être totalement possible de pouvoir ‘gagner’ des joueurs qui ont payés (remplacer gagner qui fait très jeux de tactiques / combat par le terme qui convient bien à votre mmoweb)

1- Point Actions et durée des actions, où comment je copie colle mes billets précédents. (même si ils ne parlent pas d’agriculture)

Comme je l’avais dit sur le billet précédent, une façon simple de monétiser votre MMOweb c’est de s’appuyer sur ces règles et de les ‘détourner’ légèrement contre une petite rétribution.

Si vous avez un jeu basé sur des points d’actions, vous pouvez décider de permettre soit :

  • d’avoir plus de point d’action
  • d’accélérer la façon dont les points d’actions se reconstituent.

Si vous avez un jeux basé sur des actions ayant de longues durées vous pouvez :

  • raccourcir la durée des actions
  • mettre en place un système de piles d’actions, qui permettra de programmer les actions futurs de l’heureux joueurs qui vous aura donné quelques euros.

2- Modification de gamedesign.

Le rajout d’une pile d’action en est un exemple parfait.

Mais il existe une infinité d’autre possibilité.

Vous pouvez par exemple décider que ceux qui paieront pourront voir plus loin sur la carte globale du monde de votre jeux.

Vous pouvez aussi un service d’envoi de sms. Les joueurs qui auront payé recevront un sms quand leur base sera en train de se faire attaquer, histoire qu’ils puissent réagir au quart de tour. Ou un système de sauvegarde spécialement pour les joueurs payants.

Là encore, il faut toutefois faire attention à ne pas proposer un jeux injouable, dans sa version gratuite, tellement on aura enlevé de fonctionnalités.

3- Vendre des ressources

Quel que soit votre type de jeux, il y a presque à tout les coups la mise en place d’une ressource. Cela peut être des pièces d’or ou des os de gobelin si c’est plus un jeux orienté rpg ou bien du métal, des cristaux et du foin si c’est plus orienté gestion. Mais il y a toujours cette ‘chose’ qui est nécessaire pour avancer dans le jeux.

Cette ressource que l’on obtient petit à petit, après des heures de jeux.

Ou que l’on peut, si l’on est pressé, obtenir d’un coup de carte bleu. Ce moyen de monétisation (avec ceux sur PA et durées des actions) doit être un des plus utilisé.

C’est aussi pour moi l’un des plus dangereux. Parce que l’équilibrage est plus que super difficile à faire. Pour que les gens achètent des pack ressources on aurait tendance à mettre un maximum de ressource dans les packs. Mais à trop en mettre on rend l’achat obligatoire et donc on perd tout ses joueurs non payant .. Combien de mmoweb ai-je arrêter après m’être rendu compte que l’armée que j’avais mis un mois à développer pouvait être réduite à néant par n’importe lequel de mes adverses qui se contenter de dépenser 50 cents … je ne les compte plus.

4- Encourager ses joueurs à jouer à la barbie.

Cette monétisation là est plus orientée pour les jeux où l’on joue un ou plusieurs personnages (ou voitures ou vaisseaux spatiaux…) Là aussi le principe est très simple. Il repose sur l’envie que chacun a de faire en sorte que son personnage soit beau, se démarque des autres, soit reconnu quand on le croise dans le monde du jeux.

Et pour cela, il n’y a pas 36 solutions. Il faut le tuner. Lui acheter des vêtements ou des armes d’apparat (enjoliveurs, peintures ou réacteur hyper-espace avec des flammes peintes dessus).

Là il y a deux possibilités :

  • soit ce sont des objets uniquement figuratif. Là aucun problème, parce que cela ne nuit pas à l’équilibre du jeux.
  • Soit ce sont des objets qui vont avoir un effet sur les caractéristiques de votre personnage (le pendentif du soleil sacré qui multiplie vos dégats de sort de feu par 12,4) et là, encore une fois, il faut faire attention à l’équilibrage.

Mais dans tout les cas, permettre à vos joueurs de tuner leur avatar a un autre avantage, plus qu’intéressant. Plus vos joueurs s’investissent dans leur personnages, plus il sera difficile pour eux d’y renoncer et d’arrêter de jouer. Et qu’ils jouent, c’est après tout ce que vous voulez.

5- Les fonctionnalités supplémentaires hors jeux.

Suivant les jeux, on peut imaginer faire payer pour des fonctionnalités hors jeux.

Pour un jeux avec des parties courtes (genre jeux de combat entre créature, ou casual réflexion type échec), on peut imaginer de payer pour réserver un slot de partie, histoire d’être sur de pouvoir toujours jouer, quel que soit l’affluence sur le site.

6- Les dons.

Après tout pourquoi pas ? Vos joueurs se doutent bien que maintenir le jeux sur lequel ils passent tant d’heure, ce n’est pas gratuit. Alors pourquoi pas tout simplement faire appel à leur bon coeur ? Je suis plutôt dubitatif sur le taux de retour d’une telle initiative. Mais on ne sait jamais.

7- La publicité.

Vous l’aurez remarqué, jusqu’à présent je n’ai pas parlé de publicité. Pourquoi ? Deux raisons. Parce que c’est un moyen de gagner de l’argent que l’on peut ‘placer’ de partout. Un MMOweb, un blog, un site de comparatif de prix, etc etc .. Et je voulais essayer d’orienter mon billet autour des moyens de monétisation spécifique aux jeux vidéos.

Et puis aussi parce que ce n’est pas, pour moi, dans ce contexte de jeux mmoweb, un moyen très sur de gagner de l’argent. Je ne dis pas forcément que la pub est un business qui ne marche pas. Mais disons que pour le Mmoweb, je n’y crois pas vraiment. Et la dessus je me base sur mon expérience de joueur. Depuis que je joue à des jeux web, et ça commence à remonter pas mal. 9 ans en fait, presque 10, je n’ai jamais cliqué sur un lien pub (alors qu’il m’arrive assez fréquemment de cliquer sur des liens pubs bien ciblé). Donc la pub.. voilà j’en parle en dernier, parce qu’il faut bien en parler, mais ce n’est pas pour moi, un des moyens principaux de monétiser un mmoweb.

8- L’abonnement obligatoire.

Je ne crois pas connaître un seul mmoweb qui fonctionne comme un MMORPG classique, c’est à dire avec un abonnement obligatoire (aussi réduit soit-il) à payer.

Je me demande si cela fonctionnerait, après tout, pourquoi pas.

Je suis preneur d’exemple si l’un de vous, cher lecteur, aurait connaissance d’un jeux utilisant ce principe là.

9- En conclusion.

La monétisation d’un jeux vidéo, n’est au final pas très difficile à mettre en place. Il y a suffisamment de possibilité pour que l’on trouve s’en trop de problème ce que l’on va vendre aux joueurs.

Ce n’est pas cela qui est difficile. Ce qui est difficile c’est de respecter l’équilibrage des choses. De respecter la règle fondamentale que j’ai donné en début de billet. Cette règle qui assure qu’un joueur qui ne paie rien s’amusera quand même.

Pourquoi cette règle me direz vous ? Est ce qu’il y a une autre raison que le fait que moi, en temps que joueur, je suis un pingre et que je veux tout de même pouvoir jouer aux jeux que vous développerez ? Surement :).

Mais pas seulement. Ce qu’il faut que vous gardiez en tête, c’est que la grande majorité de vos joueurs ne paieront rien. Ils joueront simplement, à la version gratuite. Et que comme ils ne paieront rien, arrêter de jouer leur sera facile. Mais, si tout (ou beaucoup de) vos joueurs gratuits partent, il ne restera plus que la faible proportion de joueurs payant. Et dû coup, les joueurs payant, en faible nombre, vont s’ennuyer. Et si ils s’ennuient ils arrêteront de jouer. Et op, un mmoweb de plus dans le cimetière des mmoweb.

Donc, je le redit encore une fois, ne négligez jamais vos joueurs gratuits, ce sont à la fois vos appeaux et vos filets à joueurs payant.

Nov 012009
 

Retour d’un billet parlant plus d’entrepreneuriat que de technique avec pour sujet l’un des points les plus difficiles qui soit, quel prix donner à ses produits/services. Je resterais assez ‘vague’ dans ce billet qui se limite à parler du positionnement de ses offres par rapport à celle de la concurrence. Le calcul ‘précis’ du prix d’une prestation sera le sujet d’un prochain billet.

Pourquoi un tel billet ? Ce n’est pas seulement pour le plaisir d’avoir les neurones qui fredonnent en sourdine le générique d’une émission bien connu des années 90. Non, pas seulement.  Mais bien parce que comme je viens de le dire, c’est un sujet difficile et qui peut avoir des conséquences plus qu’importante si l’on se trompe. Et, ayant eu, assez récemment, quelques discussions sur le sujet avec des amis qui se lancent en temps qu’auto-entrepreneur, je me suis dit que c’était un bon sujet de billet, d’où acte.

Je me contenterais dans ce billet de parler de ce que je connais un petit peu à savoir le prix des services (et je parlerais un peu plus spécifiquement des auto-entrepreneurs).

Quand on fixe son prix, on a trois choix possibles :

  • casser les prix et fixer un prix en dessous du marché
  • s’aligner sur ses concurrents et rester proche du prix du marché
  • définir un prix au dessus du prix du marché.

Vous aurez beau tourner et retourner, au final il n’y a que ces trois choix là.

1- Casser les prix.

C’est la tentation que l’on peut tous avoir quand l’on démarre. Il faut trouver des clients, il faut faire bouillir la marmite, faire du chiffre. Cassons donc les prix pour avoir nos premiers clients. Pourquoi pas.. On a du tous le faire plus ou moins, surtout lorsque c’était notre première expérience entreprenariale. Avec le recul, je pense que c’est rarement une bonne solution, sur le moyen long terme. Que ce soit pour un auto-entrepreneur ou une entreprise plus ‘classique’.

Pour les auto-entrepreneur, l’utilisation de cette solution est viable,  à la condition que :

  • vous soyez retraités et c’est simplement pour mettre un peu de beurre dans les épinards
  • vous soyez salariés et c’est simplement pour mettre un peu de beurre dans les épinards
  • vous vouliez rester indigents toute votre vie.

C’est pourtant la solution que vont privilégier la plupart des auto-entrepreneurs (en tout cas d’après certains articles que j’ai pu lire). Le raisonnement étant rapide : ‘je paie peut de charge grâce à mon statut d’auto-entrepreneur, je vais diminuer mes prix pour arriver à un bénéfice identique que mes concurrents qui eux paient plus de charge et op j’aurais tout de suite plein de clients.

Mais, ce qu’il ne faut surtout pas oublier dans votre réflexion sur la mise en place de vos prix, surtout si votre activité d’auto-entrepreneur est votre activité principale, c’est que ce régime ne durera qu’un temps. Un jour, vous ferrez plus que 32 000 euros de chiffre d’affaire. Et ce jour là, ce n’est plus 22 % de charges que vous paierez sur votre CA. Et votre marge bénéficiaire risque de se réduire comme peau de chagrin. Ce qui vous obligera à augmenter dans l’urgence vos tarifs (ce que vous ne pourrez pas forcément faire si vous êtes sur des contrats de type maintenance de longue durée ou autre), ce qui générera une incompréhension de la part de vos clients. (Mais pourquoi vous augmentez de 45 % du jour au lendemain, pour le même service ?). Clients qui auront vite fait d’aller voir un des autres auto-entrepreneurs du coin qui lui ferra toujours moins de 32 000 euros de CA et donc continuera à plomber les prix.
C’est le deuxième point qui intervient dans la réflexion sur les prix. C’est comment je donne envie à mon client de rester mon client et de ne pas aller voir ailleurs ? (tiens un autre futur sujet de billet..) Compter seulement sur le fait qu’on est le moins cher, c’est sur de la prestation en tout cas, à mon avis risqué. Le prix est au final la variable la plus ‘facilement’ ajustable. Qu’un concurrent auto-entrepreneur décide de ne manger que des pâtes pendant les 4 prochaines années, de ne rouler qu’à vélo et de ne plus aller au ciné du tout et il pourra proposer un prix moins cher que le votre.

On en revient au dernier point. Généralement, on ne vend pas pour le plaisir de vendre, lorsqu’on est auto-entrepreneur, freelance ou que l’on possède son entreprise. On fait du CA pour pouvoir, à minima, vivre confortablement et payer décemment ses salariés. Se retrouver à devoir durablement réduire drastiquement son train de vie pour pouvoir baisser ses prix et signer des contrats, c’est pour moi la pire des solutions.

2- S’aligner sur les prix du marché

C’est la stratégie moyenne par excellence. On fait une petite étude de marché sur ses concurrents et on se positionne à peu près au même niveau. Un peu moins cher ici, un peu plus là. C’est une stratégie à la fois facile et assez sure, donc pourquoi pas après tout. Il ne faut pas alors oublier que puisque l’on ne peut pas se différencier par le prix, il faudra trouver d’autre critère de différenciation. Une façon différente de proposer ses prestations, un groupe de prestation un peu innovant, des références spécifiques .. Dans le cas contraire, être choisi sur un contrat relevera un peu de la roulette russe et du temps qu’il fait.

3- Proposer un prix élevé.

Sans doute la stratégie la plus ‘risquée’ à choisir. Celle que l’on imagine pas pouvoir mettre en place. Et pourtant, ça fonctionne. Bien entendu il ne faut pas non plus devenir fou et proposer des tarifs complétement abracadabran. Mais quand des tarifs élevés sont justifiables, pourquoi pas. (un des formateur que j’ai pu croisé lors de mon parcours  de chef d’entreprise était un consultant freelance qui cherchait une seule chose , travailler le moins de jour possible tout en gardant le même CA, chaque année, c’était un virtuose du ciselage de prestation, il ne gardait dans son panel de prestation que les prestations où il était très bons, qu’il pouvait facturer beaucoup et où sa valeur ajoutée était reconnue). Et j’aurais même tendance à dire ‘non pas pourquoi pas, foncez tout de suite’. Alors cela nécessite à la fois une vrai excellence technique et un vrai bagout commercial. Il va falloir démontrer pourquoi on est plus cher, où l’on amène de la valeur ajouté.

4- Conclusion

Au final, il n’y a pas de recette miracle. Le juste prix, c’est le prix qui vous permet de faire vivre votre activité au quotidien, tout en vous offrant la possibilité de vous constituer une réserve spéciale mauvaises passes et imprévus sans oublier bien entendu de permettre l’investissement R&D, quel qu’il soit pour vous.

Et puis surtout, il n’y a pas un bon prix fixé à jamais dans le marbre. Votre prix doit vivre, comment votre entreprise vit. S’adapter au fluctuation de l’écosystème vos clients/vos partenaires/vos fournisseurs.

En fait, si il ne devait rester qu’une chose de ce billet, j’aimerais que ça soit simplement le fait que vous vous disiez ‘non, fixer mon prix ce n’est pas uniquement me vendre à un prix moins cher que la concurrence, fixer son prix cela se réfléchit’.

Oct 302009
 

Me revoilà donc pour le désormais presque célèbre billet mensuel de la django-app du mois. Comme d’habitude, je le fais sur le fils, limite à être en retard. Mais c’est bien normal, après tout il me faut bien un mois complet pour choisir, tester à fond et rédiger un magnifique billet concernant l’app du mois.

L’app d’octobre est donc django-tagging. Qui comme son nom l’indique sert à taguer des models.

Où on le trouve, comment on l’installe, tout ça quoi ?

On le trouve, très simplement sur google-code, sur sa page projet.  Pour l’installation, là aussi c’est du très classique :

  • pip
  • easy_install
  • télécharger un tar.gz
  • utiliser le svn de google-code

moi j’ai choisi, une fois n’est pas coutume d’utiliser easy_install.

Niveau documentation ?

Un fichier en ReStructuredText, accessible directement sur le site et présent dans les sources donne la doc et des exemples d’utilisation. Il n’est d’ailleurs par forcément à jour. Certaines fonctionnalités décrites comme étant dans la version de dev sont en fait dans la 0.3

En plus, trois petites pages sont présentes sur le wiki :

  • une pour parler d’un tips d’utilisation (avec des properties)
  • une pour les incompatibilité entre versions
  • une pour les idées et le planning

Ils sont où les murs alors ? ( ou qu’est ce qu’on peut faire avec django-tagging)

Ok, ce titre de chapitre est surement le plus pourris de ma carrière de créateur de titre de chapitre, mais tant pis j’assume.

Le configurer

Il y a quelques possibilité de configuration, en setant des variables dans le settings.py du projet. On peut par exemple forcer à ce que les tags soient en minuscule ou donner la longueur maxi d’un tag.

L’utiliser

On peut donc taguer des instances de model. Mais bon en disant cela, j’ai rien dit. En fait on peut register des models pour pouvoir ensuite simplement rajouter des tags (ou les lister) aux instances de ces models.

On peut également passer directement par les managers de Tags, fournit par l’app, pour taguer des instances.

L’utiliser encore plus

il y a quelques fonctions utilitaires fournis avec l’app.

On pourra par exemple ( avec la fonction get_intersection_by_model) récupéré le sous-ensemble des instances contenu dans le queryset passé en paramêtre 1 qui sont tagués avec tout les tags d’une liste passé en paramêtre 2

De même avoir toutes les instances d’un models tagués par un ou plusieurs tags est possible avec la fonction get_by_model, mais aussi les unions d’instance ou les groupe d’instance ayant les même tag qu’un autre objet …

Et aussi (et presque surtout aurais-je envie de dire) la fonction calculate_cloud qui permet de calculer le nuage de tag en calculant une taille de font pour chacun des tags passé en paramètre. (l’algorithme utilisé pour le calcul est configurable, en plus)

afficher les tags

Avec 4 templatestags différent pour afficher le nuage de tag, tout les tags d’un objet, tout les objets (d’un model précis) tagués avec un tag précis, ou tout les tags qui sont reliés à un model (enfin à ses instances, vous m’avez compris)

Conclusion.

Même si la façon d’ajouter un tag peu sembler un peu alambiqué (pour pouvoir avoir des tags avec des espaces, ou avec des espaces plus des guillemets, etc .. ) , c’est vraiment une bonne app, qui ne fait qu’une chose, mais qui le fait très bien. Donc, je ne peux que conseiller son utilisation.

Oct 282009
 

J’ai mis quelques temps à le découvrir ce built-in, pour l’oublier presque aussi vite. Je l’ai redécouvert au détour d’une conversation python au boulot.

A quoi sert-il donc ? En fait ‘à rien’, simplement à alléger l’écriture (niveau perf, je ne sais pas si cela change quelque chose, ça par contre)

any prend un seul paramêtre, un iterable et renvoie True dés que l’un des iterables est vrai. Si je cite la doc python, any est équivalent à une fonction définie comme suit :

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

un petit exemple sur une recherche de sous-chaine dans des chaines :

avant :

for word in list_words:
    if word.find(substring) != -1:
        return True
return False

après :

return any ( word.find(substring) != -1 for word in list_words )

C’est plus léger, tout le monde sera d’accord avec moi …

Et puis, vu qu’on y est, il existe aussi le built-ins all qui prend lui aussi un itérable en paramètre et renvoie True si tout les éléments de l’itérable sont True.
(note de bas de billet : oui je sais, mes titres de billets sont toujours aussi … mais j’assume)

Oct 252009
 

Dans ce billet, je vais parler plus spécifiquement au mmoweb de types rpg ou jeux de gestion et  non aux autres type de mmoweb. Je parlerais un peu des mmo jeux de carte (comme urban rivals par exemple) à la fin du billet, mais pas plus.

Pourquoi limiter le nombre d’actions journalières ?

C’est une question qui se pose. Après tout vouloir limiter le nombre d’actions effectuable par jour  semble être une hérésie. Puisque cela en vient à limiter, en tout cas il semblerait, le temps de jeux.
Et que, par définition, pour qu’on joueur soit content, il faut qu’il joue, longtemps. Si il ne peut pas jouer à son mmoweb préféré, le joueur ne sera pas content, et il arrêtera de jouer. C’est vrai.

Mais, première élément de réponse, limiter le nombre ne limite pas le temps de jeux. Je l’ai déjà dit dans mon premier billet, l’un des éléments essentiels d’un mmoweb, c’est tout ce qui se trouve autour du jeux. Les messages que l’on peut envoyer aux autres joueurs, les forums où les personnages discutent, où les alliances se nouent et les items se vendent. Écrire des posts sur le forum du jeux, même si cela ne rendra pas votre personnage ou votre ville plus puissante dans le jeux, c’est du temps de jeux. Non obligatoire, puisque n’apportant ‘rien’ en terme de puissance directe dans le jeux, mais du temps de jeux tout de même.

Ensuite, il faut bien voir quels sont les deux types de jeux (si j’oublie pour un temps les mmoweb de type puzzle et cartes). Ce sont les mmorpg et les mmo de gestion (de ville, d’élevage de dinosaures ou autre). Les deux se fondent sur un même principe plus on fait d’action plus on devient puissant. Pour le mmorpg c’est principalement tuer des monstres, pour le mmo de gestion, construire des choses.

Revenons en maintenant à ce qu’est un  mmoweb. Un mmoweb c’est un jeux auquel on joue à la pause à midi, ou rapido le soir entre deux lectures d’article de journaux en ligne. C’est la plupart du temps un jeux ‘secondaire’ pour les joueurs. Pas celui auxquels ils jouent tout le temps, mais celui auxquels ils jouent parce que ça fait passer le temps et que c’est rigolo.

Alors, bien entendu, c’est une grosse généralisation. Mais c’est l’idée. La grande majorité des joueurs de mmoweb y jouent sans vraiment y penser. Et c’est cette grande majorité qui pourtant va faire vivre le jeux, avec par exemple de la pub ou des micro-paiement.

La majorité des joueurs de mmoweb va donc jouer peu de temps, 15 à 30 minutes par jour. Mais il y a toujours des joueurs qui accrochent plus. Des joueurs qui vont vouloir jouer plus, c’est sur les mmo classiques ceux qui vont jouer 7 ou 8h tout les jours, qui seront toujours les premiers à finir toutes les quêtes et qui seront toujours imbattables. Ce déséquilibre est acceptable dans un jeux classique. Mais dans un jeux web,ce n’est pas admissible. Parce qu’on arrête bien plus facilement de jouer à un mmoweb qu’à un autre type de jeux, surtout si on a l’impression que cela ne sert à rien, que de toute façon on pourra jamais battre ceux qui jouent plus que nous.

Avant de continuer, je veux juste revenir sur une autre raison de limiter le nombre d’action quotidiennes. Elle est très simple. Si on met en place un mécanisme de limitation du nombre d’action, on peut très bien assouplir cette limitation en … faisant payer les joueurs.

Comment limiter le nombre d’action ?

Si on réfléchit un peu on trouve rapidement deux types de limitation du nombre d’actions faisable par les joueurs. Tout les mmoweb que j’ai pu tester mette en place l’une de ses deux limitations.

Les points d’actions.

C’est un système très simple, hérités des jeux de rôles papier. Chaque action coutent un certain nombre de point d’action. Se battre / se déplacer / manger / dormir. Tout à un coup en point d’action. Un personnage possède un certain nombre de point d’action. Ce nombre de point d’action est réinitialiser à son maximum à minuit. Et voilà. Tout est dit. Vous faites vos actions tranquillement et puis vous attendez le lendemain. La monétisation est très facile. Soit vous achetez directement des points d’actions, soit vous achetez des  items qui réduiront le coût en PA de certaines actions (des bottes de sept lieux pour courir plus vite par exemple)

La durée des actions

Ce système est encore plus simple. C’est celui mis en place dans Travian. Là c’est tout simple. Chaque action a une durée en minutes, heures. Vous lancez une action (construire une étable) et vous attendez qu’elle se termine. Lorsqu’elle est finit, vous pouvez en lancer une autre. Construire une étable prenant 3h, vous savez que vous ne pourrez en construire que 8 dans la journée, quoi qu’il arrive. La encore la monétisation est facile. Soit elle permet de réduire le temps d’une action soit elle permet (c’est le cas d’en travian) de mettre en attente des actions qui se déclencheront automatiquement lorsque votre première action est finie. Je m’explique. Il est 23h, vous lancez le démarrage de la construction d’un château. Construire un château prend 4h. Il sera donc fini a 3h du matin. Vous, vous ne vous lèverez qu’à 7h du matin, vous allez donc perdre 4h de construction. Trois possibilité :

  • vous en avez rien à faire, le jeux attendra
  • vous ne voulez pas perdre ces 4h de construction, vous réglez votre réveil à 3h du mat
  • vous payez 50 cents, vous avez dorénavant une pile d’action à votre disposition, vous indiquez que vous voulez que la construction de l’étable démarre directement après celle du château.

Regardez les mmoweb auxquels vous jouez, vous verrez qu’ils se rangent dans ces deux catégories (et si ce n’est pas le cas, je veux bien avoir le nom et l’url du jeux en commentaire).

Les jeux de puzzle et de cartes.

Ce sont des jeux web différents. Ils ne se basent pas sur un univers persistants mais sur des parties ‘courtes’ que l’on joue seuls ou contre un autre joueur. Il faut donc raisonner en nombre de partie et non en nombre d’action. Il semblerait alors qu’il n’y ait, dans ce cas là, pas de raison de limiter le nombre de partie possible. C’est vrai, mais pas forcément. Limiter le nombre de partie possible a deux avantages. Le plus intéressant, c’est encore et toujours la monétisation. Vous ne pouvez faire que 5 parties par jour, sauf si vous payez. L’autre c’est de garder le joueur plus longtemps, dans le cas où vous avez un jeux incluant une progression de niveau en fonction du nombre de parties jouées. (exemple, un jeux de combat où vos personnages deviendraient de plus en plus fort après chaque combat gagnés)

Oct 202009
 

Je ne l’ai jamais caché (et ça doit transparaitre dans mes posts de toutes façon), j’ai depuis de nombreuses années, joué à pas mal de MMO différent. Dans une très large majorité c’était des mmo ‘classique’, mais j’ai aussi testé quelques MMOweb et même des MMO Iphone (j’en ai déjà parlé de ceux là d’ailleurs).

Après avoir parlé de ‘théorie des MMORPG’ en général et du mmorpg auquel j’essaie de jouer actuellement (j’essaie parce qu’il n’y a pas assez d’heures dans mes journées pour que je trouve le temps de jouer), j’ai eu envie de parler de MMOweb. Une des raisons étant surement que cela fait pas mal de temps que l’idée de me retrousser les manches pour en ‘faire’ un me trotte dans la tête. Je vais commencer par un premier billet, plutôt court et qui se contentera de décrire quelques aspects des mmoweb.

1- Différences et similitudes

Les mmoweb sont à la fois très proches et très différents des mmo ‘classiques’.

  • Dans les deux cas, on joue un personnage (même si c’est le maire d’une ville dans un jeux de gestion de ville).
  • Dans les deux cas, on le fait évoluer (quel que soit la manière de le faire évoluer)
  • Dans les deux cas, on interagit avec plein de joueurs.
  • Dans les deux cas, on retrouve un système de niveau / classement / accomplissement / découvertes du monde.

Mais c’est à peu prés tout. Pour tout le reste, ces deux types de jeux sont très différents. Les mmoweb reposent en grande partie sur la mise en place d’un personnage et le dialogue (forum/message privé) entre les joueurs. Le roleplay est bien souvent beaucoup beaucoup plus présent que sur un mmo classique, parce que, il faut bien le dire, en caricaturant beaucoup ‘il n’y a que cela à faire.
Un mmo classique est basé sur l’action, le temps réel, de longues plages de jeux continue.
Un mmo web est basé sur la ‘gestion’, des moments de jeux cours tout au long de la journée.

Si j’osais, je dirais qu’on joue à un mmo classique comme on regarde un film, on joue à un mmoweb comme on écrit une lettre.

Autant dire que pour beaucoup les mmoweb sont chiants comme la mort. Très peu d’images, pas de 3D, pas de cinématique qui déchire, pas de bande son entrainante, rien que des pages web, avec  un peu de flash ou d’images quand on a de la chance.

Quand à l’adrénaline des combats en temps réel dans les mmo classique, là faudra repasser. Bien souvent on clique sur combattre, on attend et voilà, le résultat du combat apparaît, sans que l’on ait rien pu faire pour influencer le combat. Enfin là encore je caricature, quand vous lancez une armada de vaisseaux spatiaux sur l’un de vos ennemis. L’adrénaline du combat, elle est là aussi. Et l’attente du résultat de la confrontation existe belle et bien, mais d’une façon différente.

2- Mais au fait, pourquoi donc jouer à un mmoweb ?

Parce que vu la description rapide que je viens de faire, c’est pas vraiment la joie. Est-ce que cela ne seraient-ils pas des ‘sous-mmo’ destinés aux handicapés du clavier qui n’arrive pas à lancer leurs pouvoirs dans le bon sens tout en se déplaçant autour de leurs ennemis en ronds rapide et changeant ou aux accros du post de forum de 5000 mots, post qui décrira chaque minute de la vie de son perso imaginaire, même dans des moments aussi inintéressant que son petit déjeuner ?

Bon déjà, effectivement c’est une bonne façon de s’amuser pour ces deux populations là.(et je le rappelle il n’y a pas de ‘sous-façon’ de jouer) Mais ce n’est pas tout.

Tout d’abord, jouer à un mmo classique apporte souvent un lot de contraintes que l’on imagine pas. Il vaut jouer par tranche suffisamment importante pour pouvoir ‘avancer’, finir des quêtes, des instances, etc … Tout dans les mmo-classique est de toute façon penser pour vous ‘forcer’ à rester longtemps connecté.

Alors que dans le mmoweb, c’est différent. On joue par petite plage de temps, 10-20 minutes, plusieurs fois par jours. On peut jouer le matin, pendant la pause midi au boulot, puis le soir, etc…

Le moyen de jouer aussi permet plus de liberté. Il suffit d’un navigateur. Pas besoin d’un logiciel de 10 giga qui nécessite une carte graphique de tueur. Donc un peu joueur de bien plus d’endroit (même de son téléphone si il a un navigateur).

3- Et pourquoi en faire ?

Alors là, les raisons sont assez facile à comprendre. Imaginez vous faire un mmorpg dans votre chambre le soir.. Le nouveau WoW fait dans un garage au fin fond du périgord ? Ca ne colle pas vraiment.

Maintenant imaginez vous faire un site web … C’est déjà plus réaliste. Bon un mmoweb c’est pas exactement le blog de tonton alphonse, mais ça reste du web, avec ‘peu’ de ressource graphique. C’est imaginable de tenter l’aventure. Même si il faut se rassembler à 2 ou 3. Mais c’est faisable.

Et puis il y a une autre raison. Du fait de la relative facilité à développer un mmoweb, on peut plus facilement tester des choses, des mécanismes de jeux un peu innovant, différent.

Après ce rapide petit exposé de présentation, pas forcément super intéressant mais bon faut bien planter le décor, dés que j’ai le temps, je rentrerais un peu plus dans le vif du sujet avec un billet qui parlera des mécanismes de fonctionnement des mmoweb.

Oct 192009
 

Libertis est une des associations d’entreprise de PACA. C’est l’association des entreprises (prestataires,intégrateurs,éditeurs) qui font du libre. Bien entendu, en temps qu’entreprise, on y est adhérent. Et j’ai même l’honneur d’en être, depuis 6 mois et pour encore 1 an et demi, le président.

Depuis 3 ans,  (ha 2007, comme tu parais loin maintenant), Libertis organise un salon, le SPLLOS, (Salon Professionnel des Logiciels Libres et de l’Open Source). Cette année ce fut donc encore le cas. Cette année se fut un peu spécial parce qu’en fait le SPLLOS eu lieu au sein d’un ‘meta-salon’, le TopTIC, qui rassembla plusieurs salons en un seul. (j’aime bien le terme de meta-salon tiens).

Cette année, ce fut le 12 octobre, mardi dernier donc. Et ce fut, il faut le dire une réussite. Je serais presque tenté de dire, comme chaque année, mais on va croire que je flagorne. Bon allez, tant pis, je le dis. (Pour la petite histoire, cette année, nous avions décidé de faire différent, et il n’y avait pas un stand par entreprise dans l’espace SPLLOS mais un seul espace Libertis où se trouvait tout les membres et nous orientons les visiteurs suivant leur besoin, un stand collaboratif quoi).

Si je parle de cela ce soir, ce n’est pas seulement pour faire connaître Libertis et le SPLLOS (même si, en soit, cela serait une bonne raison), c’est aussi pour parler :
des raisons qu’une association peut avoir de monter un salon et celles qu’une entreprise peut avoir d’y aller.
Des raisons de ne pas monter un salon et de ne pas y aller

1  Coté Blanc

1.1 – Pour une association.

Bon alors là je parle plus spécifiquement d’une association d’entreprise, mais ça peut marcher pour tout les types d’asso.

Une asso monte un salon pour une raison principale. Sa légitimité. Pour qu’on la connaisse, qu’on sache qu’elle existe et qu’il faut la prendre en compte.

Parce que l’air de rien, monter un salon, c’est difficile, fatiguant, long, éprouvant. C’est des heures de réunions, des jours de coups de téléphones et de mails, des nuits d’angoisse.

Et au final, y arriver, et surtout surtout si c’est un succès, ça prouve de sa volonté et de sa force de travail. Ca donne de la visibilité. Et la visibilité c’est du poids.

Ca permet aussi de faire un peu de prosélytisme et de trouver de nouveaux adhérents. Et au final ça permet d’offrir un canal de communication à ses membres. Et au final c’est presque le plus important (surtout pour une asso d’entreprise), offrir des opportunités à ses membres.

1.2 Pour les entreprises

Il y a plein de raisons pour aller sur un salon. La première, qui est une mauvaise raison, c’est de faire du business à court terme. Parce que ça n’arrive pas souvent. Vraiment pas souvent. Parfois c’est le cas et alors c’est la cerise sur le gateau au chocolat, mais il ne vaut mieux pas compter dessus.

Pourquoi donc perdre du temps et de l’argent sur un salon ?

Parce qu’il y a plein d’autre raison.

1.2.1 La veille.

La première faire de la veille. Être exposant sur un salon, ça permet de voir tout ses concurrents, de juger de ce qu’ils font. Mais, je suis bien d’accord avec ce que vous êtes en train de penser, cette raison n’est pas suffisante pour y aller, surtout que cette veille, on peut la faire en temps que visiteur.

1.2.2 Rappeler que l’on est pas mort.

Ca peut paraître couillon, mais c’est comme ça. Etre sur un salon, ca permet de rappeler aux gens que l’on existe, que l’on propose des produits ou des services. Et peut-êre que dans six mois quand on recontactera un des prospects que l’on a croisé, il aura besoin de nos services et il se rappellera de nous. Sans compter qu’en temps qu’exposant, on peut espérer être présent sur les communications/mailing tout ça du salons.

1.2.3 Lancer un produit ou faire une annonce

Un salon est en effet l’endroit rêver pour lancer un nouveau produit ou service. (Il y aussi les bains douches mais c’est carrément pas le même budget). Ça permet d’avoir des retours assez important (en fonction du nombre de visiteur) et de faire un peu de buz rapidement. (Par exemple lors du SPLLOS, l’annonce de la création officielle du Groupe Pôle du Libre, un regroupement de 5 entreprises qui mutualisent locaux et moyens a été faite)

Plein de raisons donc, que ce soit pour une entreprise ou une association de participer ou monter des  salons.

Pour autant, tout n’est pas rose, tout n’est pas si merveilleux.

2 Coté Noir

2.1 Monter un salon, le supplice de tantale moderne

Mon titre exagère un peu. Mais il n’en reste pas moins qu’il faut avoir les nerfs bien accroché et être prêt à ne pas compter son temps.

Et il faut bien se rendre compte des risques. C’est quitte ou double. Réussissez et vous gagnerez une légitimité. Ratez vous, et personne ne viendra vous chercher au fond du caniveau où vous vous retrouverez.

2.2 Être exposant, pourquoi pas jetez ses sous par la fenêtre aussi.

Après tout, le retour à court terme est hasardeux. Et faire savoir que l’on existe, on peut le faire par d’autre moyen que celui là, qui est plutôt très couteux.

Sans compter que ‘faire’ un salon, ce n’est pas seulement passer une journée à rester debout à coté de son stand à serrer des mains et boire du mauvais café (je ne sais pas comment c’est possible, mais le café est quasiment tout le temps mauvais sur les salons, c’est un peu comme dans les gares)

Il faut le préparer le salon. Préparer les plaquettes, ce qui veut dire écrire les textes de celles-ci et les faire imprimer.
Préparer également ses totems, ses cartes de visites. Préparer les démos que l’on pourra faire aux visiteurs qui seront intéressés, les discours qu’on leur tiendra.

Et puis ne pas oublier de communiquer sur sa participation au salon. Pour que ses clients, ses prospects, tout le monde sache que l’on participe à ce salon là.

Beaucoup de temps et d’effort donc, pour un résultat plus qu’incertain, à se demander si cela vaut le coup.

3 Conclusion.

Personnellement, je suis assez partagé. Niveau Hybird, nous n’avons jusqu’à présent que fait très peu de salon. En fait cela se limite quasiment au trois SPLLOS. Vous me direz rien que les SPLLOS soit 3 salons en 4 ans d’existence, c’est pas mal. C’est vrai.

Mais je pense que c’est une décision qui doit se réfléchir, murement. Il serait crétin de partir du principe que les salons c’est toujours une perte de temps. Mais il serait tout aussi crétin (et beaucoup plus couteux) de passer son temps sur les routes à participer à tout les salons possibles.

A chacun de voir midi à sa porte donc…. 🙂

Oct 172009
 

Les erreurs 404 et les erreur 500 sont les deux erreurs les plus courantes sur le web. Quand on est pas en mode debug (vu que là c’est le mode debug qui gére le tout, avec une jolie traceback pour l’erreur 500), il faut s’occuper de l’affichage des dites pages.

Et par défaut, il n’y a pas de templates pour les deux erreurs. Même pas un petit template tout vide. Non rien. Ce qui fait que lorsqu’on génère une 404, comme django ne trouve pas le template, boum on se prend une 500 dans les dents, qui elle même râle parce qu’elle ne trouve pas son template.

Template 404 et 500

Les templates doivent se nommer, fort intelligemment 404.html et 500.html. Ces deux fichiers de templates doivent se trouver, c’est important, à la racine de votre répertoire contenant les templates.

Spécificités de la 404

il sera passé une variable à votre template 404 , request_path , qui contiendra l’URL qui a généré la 404. Vos contextes processors seront également appelés et donc vous pourrez les utiliser dans votre template.

Spécificités de la 500

Il n’est rien passé au template 500, histoire de ne pas, potentiellement, aggraver les problèmes, pas une seule variable.

Les handlers

Il est possible que redéfinir des templates ne vous suffisent pas. C’est peut-être fort improbable, mais possible. Ce cas là a été prévu. Il vous suffit de définir vos views spécifique et de enregistrer dans les deux handlers qui vont bien à savoir handler404 et handler500.

Vous voilà maintenant paré. Amusez vous bien avec vos templates persos de page d’erreur.

Oct 042009
 

Parmi les commentaires rattachés à mon premier post parlant d’XMPP, il y en a eu un me demandant de présenter des exemples d’utilisation d’XMPP par un programme python. J’avais promis de le faire. Avec un certain délais, pour ne pas dire un délai certain, je vais essayer de répondre à cette demande en la généralisant. A savoir : à quoi ça peut servir xmpp pour un programme. Et comme je suis bavard, je finirais en me déguisant en madame soleil et en donnant mon avis sur le futur de l’utilisation d’XMPP.

XMPP, oui mais on peut faire quoi avec ?

La première chose à savoir pour répondre à cette question, c’est que le protocole XMPP c’est bien bien plus qu’un protocole de messagerie instantanée.

La discussion vocal est sensée être gérée (je dis sensée parce qu’à ma connaissance le support de cette fonctionnalité est assez ‘en mode alpha). L’envoi de fichier également, mais c’est un classique de l’IM ça.

Ce que l’on sait moins c’est qu’un mécanisme de publication très complet est gérée (PubSub) qui permet à des auteurs de publier du contenu et d’en limiter l’accès et à des lecteurs de lire le dit contenu. Et comme on est sur un fonctionnement intelligent (et connecté) il n’y a pas besoin de faire comme avec le RSS, c’est à dire d’avoir des lecteurs qui se connectent toutes les N minutes pour voir si il y a un nouvel article à lire. Là non, les lecteurs se connectent au serveur XMPP qui les notifiera du fait qu’un nouvel article est lisible, quand cela sera le cas.

Il existe également des mécanismes de data form, pour envoyer des ‘formulaires’ (comme des formulaires web quoi) entre deux points xmpp.

Plusieurs mécanismes de lancement de commande, que ce soit par xml-rpc ou avec une XEP (les XEP sont un peu les RFC du XMPP) qui spécifie comment un noeud XMPP peut demander à un autre nœud de lancer une commande et comment cet autre noeud peut ensuite renvoyer le résultat.

Et c’est loin d’être tout, il en existe tout plein d’autre de XEP, si la liste vous intéresse vous la trouverez ici : http://xmpp.org/extensions/

Ok, mais pour faire quoi au final ?

Parce qu’avoir un protocole qui fait plein de choses, c’est bien. Savoir quoi en faire, c’est mieux. Bon là évidemment vous n’êtes limités que par votre imagination, après tout, je ne vais pas pouvoir vous faire la liste exhaustive de toute les choses que vous pouvez faire avec XMPP.

Mais, parce que je suis gentil, je vais vous donner quelques exemples.

Le plus facile, c’est bien entendu, lorsqu’on développe un programme qui intègre de la messagerie instantanée. Plutôt que de perdre du temps à réinventer la roue, autant utiliser un truc qui est éprouvé. (je me répète peut être, mais comme exemple parfait on peut citer Eve Online qui utiliser xmpp pour le chat intra jeux).

C’est loin d’être la seule utilisation possible. Personnellement, je l’utiliserais dans tout les mécanismes de communication client / serveur qui n’ont pas un besoin ultime de non latence. Il est certains qu’envoyer les déplacements des joueurs par XMPP, dans un fps ne serait pas une excellente idée. Mais dans tout ce qui se rapproche à un jeux de stratégie, gestion, jeux de rôle en tour par tour. Op, du xmpp. (par exemple imaginons la version informatique du jeux ‘Les colons de Catane‘, c’est en XMPP sinon rien, de même pour tout les jeux web qui fleurissent aujourd’hui, une version non web serait à faire en xmpp).

La je parle de jeux, mais ça pourrait s’appliquer à bien d’autre domaine. Communication entre un programme opérateur et les automates qu’il contrôle par exemple. (imaginons un truc simple, un logiciel qui doit contrôler des automates qui sont chargés de fermer / ouvrir des vannes et qui peuvent donner leur statuts courant, où alors des daemons systèmes qui logueraient leur activités à travers du XMPP).

On peut (et on devrait) utiliser le XMPP à chaque fois que l’on se retrouve devant un mécanisme de publication / consultation de contenu. (comment ça je parle du web classique ? Mais pas du t… si en fait si).

Le futur et les perspectives du XMPP

Je vous le dis, et vous pouvez me croire, on aura jamais besoin de plus de 640Ko de mémoi… Mais qu’est ce que je dis moi là?

Le futur du XMPP. J’espère qu’il sera radieux. J’espère que ce protocole (utilisé massivement par google d’ailleurs) se développera et remplacera peu à peu les choses sous optimales que l’on fait au jour d’aujourd’hui.

Je trouve par exemple, complétement hallucinant tout le mécanisme de rss aujourd’hui. Avec les problèmes qu’impliquent le fait de consommer des ressources pour rien dans 80 % du temps (à savoir quand votre client RSS va vérifier que non, il n’y a vraiment pas de nouvel article à lire sur les 343 flux rss que vous suivez).

J’espère vraiment le développement futur d’une sorte d’XMPP-Web, avec des navigateurs xmpp qui se connectent sur des sites web xmpp. Des sites XMPP qui mixeront alors d’une façon complétement naturelle de la gestion de contenus, de la discussion entre lecteurs (sans devoir passer par des rajouts en js pour gérer un chat sur la page web..) , des parties du sites ludiques, etc etc ..

Si j’ai un espoir, c’est vraiment celui-là. Un glissement du HTTP-Web au XMPP-web, même si cela doit passer au départ par des plugins pour que les navigateurs HTTP puisse browser des sites XMPP.