L’entreprena-zen-itude

Un horrible néologisme comme titre pour faire un petit billet listant des conseils (que je ne respecte pas du tout, et oui voici le premier, mais surement pas le dernier, billets faites ce que je dis, pas ce que je fais), qui peut-être vous éviteront de péter un plomb un jour et de courir dans le plus simple appareil, dans les rues de votre ville. (non, ça, je ne l’ai pas encore fait).

  • Sachez arrêter de travailler, quelques temps, chaque jour. Le soir, après le boulot, ce n’est plus le boulot. Même si vous ramenez le PC à la maison, parce qu’inconscient que vous êtes, vous avez un PC portable, ne passez pas vos soirées à bosser. Sinon autant rester au boulot et y dormir, vous éviterez les temps de transport.
  • Ne faites pas 35 heures en deux jours. N’oubliez pas qu’il y a une vie, enfin il paraît, à coté du boulot. Pensez à dormir, manger, faire des choses quoi.
  • Prenez des vacances. De vrai vacances (quand j’ai dit que je ne suivais pas mes propres conseils, je ne mentais pas). Des vacances où vous passez plus d’une heure, une heure et demi à bosser pour le boulot, ce n’est plus des vacances, c’est du télétravail.
  • Si vous commencez à avoir envie de prendre votre clavier à deux mains et de frapper violemment votre écran jusqu’à ce que celui ci explose dans un feu d’artifice de composants électroniques, faites une pause.
  • La pression, c’est bien. Tout le monde le dit. Et tout le monde vous dira qu’on bosse mieux avec la pression, que ça booste, etc etc. C’est des foutaises. Enfin, moi aussi j’aime bien bosser sous la pression. De temps en temps. Et je préfère largement quand tout est prêt, finit, bien avant la date de livraison prévu. Laisser vous le temps. Et si cela implique de dire non, parce que votre prospect veut tout, tout de suite. Dites non. Vous perdrez peut-être un prospect, mais vous ne ne vous retrouverez pas avec une horde de mécontents aux trousses.
  • Apprenez que le monde ne se limite pas à votre boulot, vos concurrents, vos clients, prospects, fournisseur, etc … N’oubliez pas que le reste de l’humanité existe et qu’il est bon d’interagir avec elle, un minimum.
  • Ne négligez pas vos hobbies et votre vie sociale. Ca permettra à votre cerveau de respirer et en plus, peut-être que vous trouverez de nouvelles idées, angle d’attaque pour le boulot.

Conclusion

Pourquoi donc j’écris ce billet, si même moi je ne suis pas les conseils que j’y donne?

Pour plusieurs raisons. Même si je ne les suis pas, je sais que c’est de bons conseils, que je suis bien idiot de ne pas mettre en pratique. Ca faisait longtemps que je n’avais rien publié et je ne voulais changer ça.

Et puis, en plein milieu d’une grosse session boulot, j’ai eu, vraiment, besoin d’une petite pause.  Et ça coute beaucoup moins cher de taper un billet que de frapper avec son clavier, sur son écran. Beaucoup, beaucoup moins cher. Si, si, je vous jure.

Django Extensions, le couteau suisse du djangonaute.

Une nouvelle catégorie apparaît (oui je sais, encore une alors que certaines restent désespérément vide, mais grâce à la magie de wordpress, vous ne le savez pas, vu que les catégories vides n’apparaissent pas… ), la Django App du mois. Tout est dit dans le nom, tout les mois, en fin de mois, je posterais un petit billet sur une django app que j’aurais testé pendant le mois. Enfin, ça c’est le principe, est ce que je vais tout les mois avoir le temps de chercher/choisir/tester une django app.. Ça, rien n’est moins sur. (d’ailleurs j’en profite, si vous avez des idées de django app, les commentaires sont là pour ça).

Pour ce premier numéro, la django App qui a la chance d’être la django App d’août est Django Extensions. (tiens, je viens d’avoir une idée, un calendrier des DjangoApp, que les djangonautes, ou les routier, pourraient accrocher dans leur bureau ou leur camion).

1- A quoi elle sert ?

Django Extensions est une application d’aide au développement. Elle rajoute plein de commande au manage.py, commandes tellement indispensable qu’on se demande comment l’on avait pu faire sans.

Elle rajoute aussi quelques Database Model Fiels et  Database Model. Et comme si cela ne suffisait pas on gagne aussi, pour le même prix, une extension pour la gestion des ForeignKey du coté admin.

2- Et plus en détail ?

2.1 Les commandes en plus

Je vais me limiter à décrire quelqu’une des commandes que vous pourrez utiliser avec Django Extensions, celles que moi, j’utilise le plus souvent.

  • generate_secret_key

elle permet de générer une secret key pour son projet. Ca a l’air tout con et inutile, mais en fait non. Quand on utilise un gestionnaire de source pour déployer rapido son projet et que donc on ne passe pas par la commande de création de projet, et ben en fait c’est super utile.

  • create_app

rien de plus que la commande de base sauf que l’on peut donner en plus un répertoire de template à utiliser

  • reset_db

qui n’a pas eu besoin de reset 42 fois par jour sa bd ? Et passer soit par le client ligne de commande soit par les interface web d’admin, ça devient rapidement très chiant. Pour tout ces djangonautes là (dont je fais parti) reset_db c’est le paradis.

  • runscript

lance un script dans l’environnement django.

  • runserver_plus

l’une des (si ce n’est pas la) commandes la plus utile de toute l’extension. Elle nécessite d’avoir Werkzeug installé (mais un petit easy_install et c’est bon). Et elle permet ensuite de lancer le serveur de dev avec le debugguer de Werkzeug. Et là, c’est le pied. A chaque exception reçu, on se retrouve avec une vrai interface de debugger dans notre page web. On peut ouvrir des consoles interractive un peu partout (à tout les pas d’appel de fonction), on peut voir l’état courant des variables, le code de chaque fonctions tracées ). C’est juste ultime.

  • shell_plus

celle là aussi est une commande indispensable. Elle vous permet de lancer un shell qui a déjà importé tout vos models. Lorsqu’on utilise comme moi, assez souvent le shell pour faire quelques petits tests, vérifications, on se rend vite compte du gain de temps.

  • dumpscript

qui permet de générer un script python à partir des données contenu dans une base de donnée à un instant t. dumpscrit fonctionne pour toute une app ou juste un model d’app.

2.2 Le système de job

Django Extensions rajoute un mécanisme complet de job. Un job est une classe python qui dérive de BaseJob et qui implémente la fonction execute (self).

Les jobs se définissent par app django. Pour mettre en place le système de jobs pour une app, il suffira d’utiliser la commande create_jobs en lui donnant le nom de l’app en question. Django Extensions créera alors l’architecture de répertoire qui va bien.

Une fois que l’on a créé ses jobs, on peut les configurer pour qu’ils soient executés toutes les heures, les jours, les semaines, les mois. On peut aussi demander l’exécution d’un ou de plusieurs jobs en commande manage.py.

3- Comment on l’installe, où on le trouve ?

Django extensions étant hosté par google code, il suffit d’aller sur son espace google code se trouvant là http://code.google.com/p/django-command-extensions/

Pour l’installation deux possibilités :

  • télécharger la derniere versions sur le site web puis faire un simple python setup.py install
  • lancer un easy_sintall

ensuite, il vous suffira, pour chaque projet dans lequel vous voulez l’utiliser, d’ajouter django_extensions dans votre INSTALLED_APPS .

Et c’est tout.

4- Et la doc ?

Vous en trouverez sur le google code. Plutôt complète et claire. Il y a même un lien vers un screencast.

5- En conclusion

Une application à utiliser, sans aucune modération et qui fait vraiment gagner énormément de temps.

Champions Online, très bref aperçu de l’open béta.

Il y a quelques temps, lors de mon essai de Eve Online, mon windows avait décidé de me faire une blague et de se suicider. J’avais finalement réussi à le faire revenir à la vie en utilisant un combo chkdsk , mode sans échec, réinstallation du SP3 (qui avait du merdé à sa première install en maj auto). Ce qui m’avait permis de tester Team Fortress 2 et de me dire que ma clé Open Beta pour Champions Online ne serait pas complétement inutile.

Sauf qu’apparemment, mon windows est un vrai comique. Et il adore le comique de répétition. Et donc après … 1h30 de jeux, gros plantage complet, reboot bourrin et surprise … windows encore mort. Et là, le chkdsk n’a rien fait, impossible de booter, mode sans échec ou pas. Donc, c’est la fête, et mon exaspération grandissant de plus en plus, l’achat d’un nouveau PC approche à grand pas. Et pour une fois, je l’orienterais jeux ce PC, ouais je me réjouis déjà des heures perdues sur les forum à chercher si il vaut mieux une Radeon HD 4870 ou une GTX 260 , quelle carte mère pour un core i7 ou si les phenom sont ou pas des gros bousins …

Mais revenons à champions online. Car j’ai quand même pu y jouer 1h30, même si c’était en low details (plus low que low d’ailleurs) et en 800×600 (oui je sais, mon PC est vraiment au bout du rouleau).

1- Visuellement

Alors au vu de mes réglages graphiques, je ne vais pas pouvoir vraiment juger. Mais au vu des différents screenshoots que j’ai vu voir, je dirais qu’il est plutôt joli. Un point important, l’intégralité du jeu est en cellshading. Ca donne un rendu assez spécial, il y a ceux qui sont fan et ceux qui détestent. Perso je trouve que ça rend plutôt bien.

2- Création de votre super héros.

Plusieurs points intéressants à ce niveau. Tout d’abord l’absence de classe. Vous n’avez pas un voleur super-héros, un paladin super-héros, un guerrier de la mort super-héros. Non, vous jouez un super héros, un point c’est tout. ( il faut tempérer cela par la notion de rôle qui existe dans le jeu, mais que je n’ai pas testé, on peut choisir 4 rôles, gardien , vengeur, sentinelle, protecteur qui influent sur le comportement du héros et qui sont respectivement des rôles équilibré, attaquant, defensif, soutien)

Un super héros qui a ….

2.1 des pouvoirs.

Ceux-ci sont rangés par catégories qui sont :

  • Élémentaires
  • Technologie
  • Art Martiaux
  • Puissance
  • Psychiques
  • Mysticisme

Chaque catégorie contient elle même des sous catégorie de pouvoir (par exemple pour élémentaires il y a électricité, feu, force, glace, pour technologie tout 4 sous catégories dont gadget ) Pour voir la liste complète, il y a ce très complet article de jeuxonline.

A la création de votre perso, vous choisissez une sous catégorie (moi par exemple j’avais choisi gadget). Ensuite au gré de l’évolution de votre perso, vous pourrez acheter des pouvoirs de votre sous catégorie ou (et c’est là que c’est cool) ceux d’autres sous-catégories (imaginons que vous ayez toujours voulu jetez des éclairs en plus d’utiliser des dizaines de gadget cool, aucun problème, vous achetez un pouvoir d’éclair).

Bien entendu les pouvoirs demande des pré-requis, mais ils sont suffisamment bien fait pour que vous puissiez vraiment piocher à gauche et à droite dans les différents arbre de pouvoir (le prérequis sera par exemple ‘un pouvoir de la même branche ou deux pouvoirs quelconques de type charge )

Mais un super héros, ce n’est pas que des pouvoirs dans un slip par dessus un collant, c’est aussi …

2.2 des caractéristiques.

Elles sont au nombre de huit :

  • Constitution
  • Endurance
  • Force
  • Dextérité
  • Intelligence
  • Ego
  • Présence
  • Récupération

Elles influent directement sur la ‘vie’ de votre super héros. La dextérité par exemple permet d’augmenter les chances de coups critiques et les chances d’esquiver une attaque.

Parmi ses huit caractéristiques vous aurez à en choisir 2, vos …. SUPER STATS !!!!!. Elles augmenteront petit à petit avec l’expérience de votre perso et influeront sur les dommages de vos pouvoirs.

2.3 La création en elle même.

C’est un des gros points forts du jeux. La personnalisation est énorme. Vous pourrez la aussi trouver plein de screen de perso (un petit lien vers un thread forum jeunxonline , non ceci n’est pas un billet sponsorisé par jeuxonline). Vous pourrez vraiment tout faire, un perso extra terreste, avec un manteau à la néo, des cornes, des bas résilles, Vegeta, Goldorak, un jackson five, avec une tête de requin, une auréole. Je ne suis juste pas sur qu’on puisse faire un héros bedonnant, je voulais essayer, mais je n’ai pas eu le temps … Seul petit bémol, il y a tellement de possibilité et d’option que c’est un peu fouilli. Il va falloir passer du temps à le créer son super héros, et à chercher toute les options possibles.

3- Le jeux.

3.1 La baston.

Il y a quelques petites ‘originalités’ que je trouve sympa.

Comme le premier pouvoir qui est un pouvoir ‘automatique’. On clic et c’est parti, il se lance, encore et encore. On lance un autre pouvoir, le pouvoir automatique s’arrête, le nouveau pouvoir se lance, puis le pouvoir automatique revient.

Où les pouvoirs à charge, comme le deuxième pouvoir gadget. Cliquer une fois, le pouvoir se lance. Cliquer, laisser appuyer, il charge, relâchez, et le pouvoir se lance, mais fait bien plus de dégâts.

De ce que j’ai pu voir, j’ai l’impression que, pour ce qui est des mobs en tout cas, la baston se fait à distance. Moi, ça me va, je n’aime pas trop les bastons cac, mais ça peut ennuyer les fans du combat full contact.

3.2 Les pouvoirs de déplacement.

En plus des pouvoirs de bastons, sont présent les pouvoirs de déplacement. Vous allez pouvoir voler comme superman, utiliser des bottes à réaction, un surf en glace, vous téléporter ou courir en super vitesse. A vous de choisir suivant votre préférence et le style que vous voulez donner à votre super héros.

3.3 L’équipement

je peux me tromper , mais j’ai l’impression que l’équipement de votre super héros est assez réduit. Des armes, et un système de slots ( un primaire , 3 secondaires ) pour la partie défense, attaque, pouvoir passif.

3.4 Le craft

La aussi je n’ai pas pu tester, forcément, mais il y a du craft, uniquement utile (impossible de crafter un super bouquet de fleur pour la saint valentin de votre super-copine).

3.5 Le housing

Apparemment pas de possibilité d’avoir sa super maison ou sa super cachette perso. Il est prévu de pouvoir avoir une super maison de guilde par contre, mais elle n’est pas encore implémenté.

3.7 Le PVP

Comme tout le monde joue un super héros, il est un peu difficile d’implémenter un pvp qui colle avec l’univers (c’était un peu le même problème sur Tabula Rasa). Il y a dans champion un mécanisme d’arène et de BG qui est sensé résoudre cela. Pas de pvp sauvage donc, à part  dans des zones spécialement prévues pour. Il y aura aussi un tournoi ultime des champions, mais je ne sais pas comment il se présentera.

3.8 Sa Némésis

Elle (ou il) apparaît aux alentours du lvl 25. C’est votre super ennemi perso. Construit en fonction de vos pouvoirs, c’est votre joker, votre Lex Luthor , celui ou celle que vous combattez encore et encore sans jamais totalement le battre. Vous pourrez lui donner un nom, choisir son apparence, sa motivation, ses sbires et vous l’affronterez ensuite, encore et encore. Sur le papier, ça a l’air très sympa, faudra voir en jeu après …

3.9 l’humour

Ce n’est pas un jeux ambiance sérieuse, on s’en serait douter. Les PNJ ont parfois des remarques rigolotes, les pouvoirs sont assez fun (le jouet d’attaque, pouvoir de gadget, qui invoque un jouet qui combat à la place du héros par exemple)

3.10 Les quêtes.

Vu le peu que j’ai jouer, les quêtes restaient assez classiques :

  • tuer X mobs
  • escorter une personne
  • récupérer un item
  • sauver X citoyens malmenés par des vilains

Mais de ce que j’ai pu lire comme retour, ça s’améliore ensuite et les quêtes ne restent pas au niveau du ‘rapporte moi 4 peaux de loups ‘

3.9 le décor modifiable.

Un bon gros point pour le jeu. On peut, dans une certaine mesure modifier le décor. Arracher un lampadaire pour taper sur les mobs par exemple. Mais aussi les poubelles, les boites aux lettres et je crois même (mais pas sur) soulever des voitures.

3.10 L’instanciation à outrance

Je ne sais pas si cela change après, mais pour ce qui était de la zone du tutorial, c’était instanciation maximum, avec une limite d’une quarantaine (voir d’une cinquantaine) de perso par instance. Autant dire que je ne suis vraiment pas fan de cette façon de faire. (j’avais déjà pu y gouter dans Age Of conan, j’avoue que les rendez vous de guilde rendu impossible par cette fout….instanciation massive, ça ne m’avait pas vraiment plut).

4- Sur l’open beta en elle même.

4.1 Avant de pouvoir jouer

Déjà, je déteste un truc. Les éditeurs de jeux qui s’associent à des sites genre file planet pour faire dl les clients du jeux. Avec la restriction que si on n’a pas un compte payant fileplanet, on ne peut pas dl avant le début de l’open béta et qu’en plus après le dl est pas super top. Donc, comme champions online utilise cette méthode, déjà, je râle.

Ensuite, que le site web officiel tombe le jour du lancement de l’open béta, c’est ennuyeux (surtout quand on a pas pensé à activer sa clé avant et que l’on lutte pour y arriver).

Que le client qu’on a enfin réussit à dl passe un temps infinis à se patcher ( après 12h de dl non stop,  a peine  à 50 % de dl du patch) c’est déjà plus rageant.

Que le petit patch (350) mis en ligne le lendemain du lancement de l’open beta, une fois dl et lancé ne serve à rien, c’est carrément inadmissible (sans compter les petits tips du style ‘déplacer les fichiers de ce répertoire à celui-ci le patcheur a un problème).

Et qu’au final, pour pouvoir jouer il faille re-dl, à nouveau sur file planet, le client à jour (youhou encore 2,5 giga de dl), alors là, ça donne carrément envie d’exploser.

4.2 En jeu

J’ai été plutôt agréablement surpris, surtout après la catastrophe que ce fut pour avoir le droit de jouer.
Pas mal de texte traduit, très peu de constante de traduction à base de object_defense_passive dans l’interface. Pas de plantage serveur (en même temps, en 1h30 de jeu … ). J’ai pas vu de gros bug, de gros lag ou de gros freeze. Les patchs sur des bugs trouvé par les joueurs sortent assez vite, d’après ce que je peux suivre en discutant avec des joueurs qui eux, n’ont pas perdu leur windows. A voir sur la durée et au lancement de la release.

5- En conclusion.

J’ai clairement pas assez joué pour pouvoir me décider. Disons simplement, qu’après 1h30 de jeux, je n’avais pas envie de le désinstaller mais bien de continuer à le tester. De ce que j’en ai vu, il y a vraiment plein plein de bons points, qui me donne envie de le découvrir un peu plus. Suffisament, pour, si les retours que je peux avoir d’autre joueurs d’ici là ne sont pas mauvais, prendre un abonnement de quelques mois lorsque j’aurais mon nouveau PC.

Pour l’instant, comme ça, les trois seuls défauts que je lui voie sont :

  • L’absence de PVP sauvage qui pourrait être contrebalancé par la multitude de mode pvp, enfin j’espère.
  • L’absence de craft inutile et de housing perso. Ben oui j’aime bien avoir des objets qui servent à rien et je pense que la super cachette sécréte du super héros est un must have.
  • Le gros gros point noir pour moi : les instances. Faudra voir comment c’est gérer par la suite. Mais jouer sur des instances de 50 … mouais. Vraiment à voir quoi.

Xmpp en python, petit tour des possibilités

Pour ce premier post parlant d’XMPP, je ne vais pas faire trop compliqué, je vais me contenter de faire un petit tour des possibilités qui s’offre au gentil et innocent développeur python qui, ayant découvert le monde merveilleux d’XMPP se décide à utiliser ce joli protocole dans un de ces programmes python.

Il faut dire, que lorsque j’ai commencé à m’intéresser à ce sujet, il y a un peu plus d’un an, j’ai été surpris par le peu de librairies maintenues et proposant un peu plus que la simple paire réception/envoi de message. Aujourd’hui, la situation n’a pas vraiment changé. C’est, je trouve, assez étrange, surtout que cette situation ne se retrouve pas dans d’autre langages qui ont pléthore de librairie (un seul exemple, en Java).

1- Les mortes, ou presque.

Parmi les librairies zombies, je vais en citer deux Zymb  ou jabber.py

Il semble ne plus avoir eu un seul mouvement sur leur deux sites respectifs depuis 2007 ou 2003. La doc est quasiment inexistante, les exemples de même. A ne surtout pas choisir donc, si vous voulez commencer à bidouiller avec XMPP.

2- La  librairie sans code

Sleekxmpp est une petite librairie hébergé sur google code. Je n’ai pas l’impression qu’elle bouge beaucoup au niveau du code, même si des bugs ont été commentés très récemment. Mais, il y a comme un problème. Impossible de récupérer le code source de la dite lib, le svn est vide.

3- La plus complète

Celle qui est, sans aucun doute, la plus complète, celle la version modifié de xmpppy qui est utilisée par gajim. Elle gère énormément de XEP, son développent est continue, le rêve quoi. Sauf que.. j’ai essayé de l’utiliser et le faire sans devoir utiliser tout le code de gajim, c’est un peu (voir beaucoup) mission impossible. Sans compter qu’elle existe en de multiple version (quand je l’ai testé, le support du BOSH était dans une version bien spécifique de la lib, une des branches SVN, je ne sais pas si c’est toujours le cas).

4- Les autres

Xmpppy en version originale ou pyxmp. Elles gèrent un certain nombre de XEP, pas une panacée mais un peu plus que le simple envoi/réception de message. La doc a au moins le mérite d’exister. Une doc API avec même quelques petits exemple de code. J’ai un peu utilisé Xmpppy et elle est pas mal, surtout quand on veut utiliser une librairie légère (sans être ridicule) dans un prog où le XMPP n’est pas central mais une partie, au milieu des autres.

5- Celle que j’utilise.

La librairie que j’utilise actuellement est en fait, au final, presque celle avec laquelle j’ai commencé à faire joujou avec XMPP en python. J’ai commencé en utilisant Twisted words qui est la partie consacré aux Instants Messaging (et IRC) dans Twisted. Autant dire que c’est le parent pauvre de Twisted, peu de doc, peu d’exemple (mais relativement, par rapport aux autres lib, beaucoup), aucune gestion de XEP. Le concept de twisted words xmpp était simple :
Vous avez la puissance de twisted, on vous fournit un moyen de vous connecter et de brancher des callback sur des cheminx XPATH, à vous de faire le reste. D’une simplicité magnifique.

Sauf que, même si le concept est élégant, avoir quelque XEP de gérer, out of the box, c’est un peu mieux, quand on veut juste utiliser le XMPP et pas devenir développeur de lib XMPP.

C’est pour cela que j’utilise Wokkel, une surcouche à Twisted words qui gèrent quelques XEP (dont pubsub). J’ai ainsi quelques XEP (même si je pourrais en avoir plus en essayant d’utiliser la lib de gajim) et je bénéficie de toute la puissance de Twisted.

Une particularité de Twisted (et wokkel) c’est que ce sont des librairies qui sont prévues pour développer des clients ou des serveurs. Certaines fonctionnalités sont donc gérer pour les deux cotés, que pour le coté serveur ou que pour le coté client.

Une autre particularité, qui peut être ennuyeuse, c’est que twisted se fonde sur l’utilisation de ‘reactor’ et qu’il peut parfois être un peu difficile de concilier la façon de fonctionner de twisted avec celle de l’application dans laquelle on veut l’intégrer.

Petits tips concernant django.db.models.Q : le Q identité.

Il peut arriver que l’on doive ‘calculer’ un critère de filtrage Q en combinant plusieurs Q dont les conditions seraient saisis par l’utilisateur. On se retrouve à faire des choses du style

for one_q in q_list :
    full_q &= one_q

La question est de savoir comment initialiser full_q avant de commencer la boucle. La réponse est toute simple, il existe un filtre Q identité, qui ne trie donc rien, c’est tout simplement Q ()

utiliser un package python pour ses models

Il devient rapidement assez ennuyeux de n’avoir qu’un seul fichier Models.py pour y ranger tout les models de sa petite application django en cours de dev. On réfléchit alors quelques secondes et là, miracle (Euréka même), une idée jaillit.

Pourquoi ne pas utiliser un package. Aussitôt dit, aussitôt fait. Un petit repertoire Models, tout plein de fichier .py à l’intérieur pour nos models. Un splendide __init__.py qui importe les models que l’on veut que le syncdb trouve en parcourant automatiquement nos apps et le tour est jouer.

Oui … mais en fait Non.

Parce que là, Oh Misère, Oh désespoir, le vilain syncdb ne trouve aucun de nos modules. Et c’est normal. Il manque quelque chose, un truc pas du tout documenté dans la doc (il y a d’ailleurs un ticket à propos de ce manque de documentation).

Il faut indiquer, dans chaque classe modèle, à traver la classe Meta, à quelle application appartient notre models. Par exemple pour une classe Post appartenant à l’app blog_app, ça donnerait :

class Post ( models.Model ):
    …...

    class Meta:
        app_label = 'blog_app'

Et voilà, comme cela, ça fonctionne. Facile n’est ce pas ?

Enfin, quand on le sait.

Faillite de violet, mais que vont devenir nos compagnons à grande oreilles ?

Violet est donc en redressement, attendant, espérant un repreneur. Violet, pour ceux qui ne le sauraient pas, c’est l’entreprise qui commercialise depuis quelques année, le Nabaztag, un joli petit lapin blanc wifi qui sert à rien et à tout.

J’en ai un, cadeau de Noël 2006 de ma chérie. Elle en a un aussi d’ailleurs, mon cadeau de Noël 2006. Parfois, les grands esprits se rencontrent :).

Bientôt trois ans donc que j’ai mon Nabaztag et qu’il clignote avec entrain en remuant des oreilles. Comme je l’ai dit, il sert à rien et à tout. Il donne l’heure, la météo, lit la radio ou les RSS, récite les tweets, déclame les petits messages qu’on lui envoie. Rien d’indispensable, ni même de bien utile. Il fait même lecteur RFID. Les derniers produits de violet, des mini-lapin RFID, des puces RFID et le mirror un socle lecteur RFID continuent d’aller dans la voie du RFID.

Le nabaztag, un gadget, voilà tout. Mais un beau gadget et qui préfigure à mon avis le ‘futur’, l’interconnexion de plus en plus grandissante de nos objets. (les grands penseurs de ce monde appelle cela l’internet des objets). Que ce soit à travers le web, des services web 2.0 (comme BakerTweet, un petit boitier construit pour les boulangers et qui tweet quand la dernière fournée de pain au chocolat est prête) en utilisant des protocoles de type XMPP et/ou en s’appuyant sur du RFID, je ne pense pas beaucoup prendre de risque en prophétisant que c’est ce qui nous attend dans les quelques années à venir.

Mais si c’est ce qui nous attends, pourquoi alors violet est en redressement ? On pourra dire, que comme toujours, ceux qui imaginent l’avenir avant qu’il ne soit là, se casse les dents sur les marches de l’escalier quand le présent tire violemment sur le tapis pour les faire tomber. Peut-être. Mais pas seulement.

A mon avis, mais ce n’est que le mien, les choses auraient pu être différentes si nos jolis lapins n’avaient pas été autant limité. La limitation des messages a une poignée de seconde était horripilante, il est vrai. Mais plus que le reste c’est l’obligation de devoir se connecter aux serveurs de Violet (assez capricieux, il faut bien le dire), l’absence complète d’API sérieuses pour développer des applications qui ont affaiblis le lapin. Pour prendre un parallèle, qui n’est pas forcément très bien choisi, mais bon, il se fait tard, est ce que Facebook serait devenu ce qu’il est s’il avait été impossible de développer les millions de petites applications facebook qui horripilent tout le monde mais que tout le monde a sur sa page ?

Ouvrir tout cela, permettre aux gens de développer leur propre serveur de substitution, de vraiment commander leur lapin par le biais de vrais applications, voilà qui aurait, à mon avis, pu changer la donne, augmenter le nombre de gens qui aurait adopté un petit lapin blanc et permettre à violet de continuer à sortir de nouveau objets communicants. (il n’y a qu’à voir les tentatives faite à ce sujet, alors qu’il n’y a ni doc, ni aide, rien … )

Tout ce que j’espère maintenant, c’est que quelqu’un reprendra Violet (peut-être Illiad qui a déjà travaillé avec Violet pour faire du Nabaztag, un répondeur téléphonique pour les freebox) et que ce repreneur réfléchira à la possibilité de libérer ou au moins de documenter certaines parties du code permettant au Nabaztag de fonctionner.

Parce que dans le cas contraire, voir mon lapin clignoter continuellement en orange, cela va finir par me rendre triste…

Eve Online, premières impressions..

Après le dernier post, plutôt sérieux,  voici un nouveau post plutôt ludique qui va me permettre de donne rmon avis sur Eve Online. Post écrit pendant la soirée mais que je publie l’après-midi, pour voir si l’heure de publication intervient.

1- Eve Online ??

Eve est un MMORPG sorti en 2003 (et qui existe toujours) totalisant dans les 260 000 joueurs. Vous allez me dire, c’est très peu (enfin disons plutôt que c’est peu). C’est un peu vrai et c’est normal, Eve est un jeu de niche. Il a été conçu comme cela et il vit très bien comme cela.

A contrario de la plupart des jeux du moment, Eve est un jeux futuriste. Tout ce passe dans une galaxie très très lointaine, dans très très longtemps. Vous êtes un pilote de vaisseau spatial, représentant de l’une des trois races jouable, et vous voilà, prêt à démarrer dans la vie aux commandes de son rookie ship. Et toute la galaxie s’ouvre à vous. Faites en ce que vous voulez.

2- Particularités

Eve est un jeu atypique, l’exemple parfait du jeu de niche qui va déplaire à la plupart des joueurs mais rendre fou de bonheur les autres.

Poussière l’équipement était,  poussière il redeviendra

Tout d’abord, dans Eve vous pouvez tout perdre. Si votre vaisseau explose, c’est pour de vrai. Il ne vous restera que vos yeux pour pleurer. (Et c’est là que l’on apprend la première règle de Eve, ne sortir un vaisseau du hangar que si on peut se permettre de le perdre). Pire, si un vil vilain après avoir détruit la petite capsule de sauvetage dans laquelle vous vous étiez réfugié, vous allez même perdre la vie. Vous devrez alors utiliser un de vos clones, mais cela ne va pas sans perte de points de compétences.

Gestion des compétences et niveaux

Eve ne possède pas de système de niveau global de votre personnage. Fini le ‘j’ai un perso lvl 80, Ha Ha Ha’ . Ce système basique est remplacé par un système de niveau (entre 1 et 5) ramené à chaque compétence (compétences existant par dizaine, voir plus). Vous pouvez,  par exemple, être niveau 5 en Trade et niveau 0 en Industry.

Et c’est là qu’arrive la différence majeure qui existe entre Eve et les autres mmorpg. Dans Eve il n’y a pas de phase de leveling. Il n’est pas nécessaire de tuer 3405042 sangliers pour avoir suffisamment de point d’expérience pour passer niveau 56.

Ici, il faut faire une petite parenthèse pour revenir sur un point du background d’Eve. Celui-ci indique que l’apprentissage du savoir se fait un peu comme dans matrice, par injection directe du savoir dans la cervelle de l’apprenant. Une fois que l’injection est finie et que la compétence a bien été ‘absorbée’, c’est fini on peut s’en servir. Bien entendu, comme c’est plus facile d’acquérir les rudiment d’une compétence que de devenir expert, apprendre le lvl 1 est beaucoup beaucoup plus rapide qu’apprendre le lvl 5.

Mais comment est ce qu’on apprend devez vous vous demandez ? Simplement en allant dans sa fenêtre de gestion du personnage et en lançant l’apprentissage d’une compétence. On ne peut bien entendu lancer un apprentissage qu’à certaine condition :

  • avoir validé tout les pré-requis
  • si c’est une compétence lvl 1, avoir le ‘bouquin de compétence’ (pour les lvl suivant d’une compétence plus besoin de nouveau bouquin)

Et ensuite l’apprentissage se fait, pendant que vous continuez à jouer. Et prend plus ou moins de temps entre 20 minutes et des mois, de ‘vrai’ temps. Oui oui, de temps de la vie réel. Et c’est ça qui est génial. Parce que l’apprentissage continue aussi même quand vous ne jouez pas. Si par exemple vous partez en vacances 1 semaines et qu’une compétence que vous voulez apprendre prends 6 jours, lancez son apprentissage avant de partir, à votre retour, elle sera là, prête à être utiliser. Et ça, c’est tout simplement génial. Bien entendu, ils y a quelques limitations intelligente. Vous ne pouvez apprendre qu’une compétence à la fois et même si vous jouez plusieurs personnages, un seul peut apprendre une compétence à la fois.

Le marché

Dans Eve, il n’y a pas de personnage non joueur marchand. Il y a par contre une modélisation d’un vrai système économique. Tout se vend et tout s’achète. D’ailleurs une bonne partie des joueurs passent leur temps à acheter dans un système solaire, voyagé jusqu’à un autre et revendre avec une plus value. Parce que bien entendu, la gestion des distances est prise en compte. Et si vous achetez un truc à 3 ou 4 systèmes de distance, il faudra prendre votre vaisseau sous le bras et aller chercher votre marchandise.

Le système de contrat

Les joueurs (ou les guildes) peuvent passer des contrats. Les contrats peuvent être de plusieurs types. Contrat de mise aux enchères (certains objets comme les vaisseaux par exemple ne peuvent pas  être vendu au marché mais seulement par enchères), contrat de transport ( la guide X qui veut que vous ameniez son chargement de la planète Y à la planète Z), de troc, ou de mise à prix de sur la tête de quelqu’un.

3- Mon avis

Je n’ai pu jouer que quelques poignées d’heure, ayant démarré samedi soir dans la nuit et n’ayant plus pu jouer depuis mardi soir (vous verrez pourquoi plus bas). Je ne suis donc qu’au tout début du jeu et cela biaise forcément mon avis. Mais déjà je dois dire que j’accroche beaucoup (c’est d’ailleurs pour cela que je ne commence à jouer que maintenant et non en 2003, parce que j’étais bien conscient que j’allais accrocher à ce … de jeu).

Moi qui m’ennuie tout de suite très vite dans les combats contre des monstres, là, en tout cas pour l’instant, je reste en haleine, pour la simple raison que je ne veux pas perdre le vaisseau que j’ai mis tant de temps à avoir. Et puis pour une fois,  les combats ne se limite pas à un concours de celui qui cliquera le plus vite sur ses touches. Les armes, en tout cas jusqu’à maintenant, une fois enclenchées tire toute seule, à leur rythme. Par contre le positionnement, l’angle d’attaque (en orbite autour des ennemis ou pas, rapidement ou lentement, etc…), la vitesse d’approche, le choix des cibles, les changements de trajectoires, tout cela prend une importance capitale. Choisir au mieux sa vitesse radiale lorsqu’on est en orbite autour d’un vaisseau ennemi, de façon à gêner au maximum ses tourelles sans empêcher les siennes de tirer, voilà un défi qu’il vous faudra relever pendant les combats de Eve.

Bien entendu, j’adore le système des compétences que je trouve tout simplement génial (je pense que cela c’était vu dans mes phrases précédentes). Le système de contrat, je trouve aussi que c’est une excellente idée.
Pour ne rien gâcher je trouve la musique bien foutue et l’ergonomie du client est très bien pensée. Et cerise sur le gâteau, les autres joueurs sont, de ce que j’ai pu en juger, plutôt sympa.

Le seul inconvénient, pour l’instant en tout cas, que j’ai trouvé, c’est que le jeu est en anglais….

nota de fin de post.

J’aurais bien voulu mettre des screen mais deux raisons m’en ont empêché.
mon PC portable, avec ses deux ans d’âge, commence à se faire vieux, surtout qu’il est plus taillé pour le boulot que pour le jeux.
Mon windows, a décidé de se suicider, mercredi. Impossible de booter dessus. Et comme en plus je n’arrive pas à installer Eve sous Linux, je n’ai plus de moyen (tant que je ne trouve pas le temps de réparer mon windows) de me connecter à Eve.

Où s’installer ? ou ‘à plusieurs, on est plus fort que seul’

Où s’installer ? C’est l’une des grandes questions récurrentes d’un créateur d’entreprise. Hormis les entrepreneurs individuels qui ont parfois la possibilité de travailler de chez eux (est-ce une bonne idée, je suis assez partagé sur la question d’ailleurs, ça demande une volonté d’acier en tout cas), les autres créateurs, sont eux bien obligés de trouver un local pour héberger leur entreprise.

Là toute les solutions sont possibles (essayez d’éviter tout de même, la cabane au fond du jardin ou sur la plage).

Je vais parler de celle que l’on a choisit nous, tout d’abord parce que justement comme on l’a choisi, je peux en parler en connaissance de cause et puis surtout parce que je pense que c’est un bon choix.

Nous, on a décidé, dés la création (et même avant) d’aller en pépinière d’entreprise.

1- Mais c’est quoi, une pépinière d’entreprise ?

Un immeuble, des longs couloirs, plein de portes toutes identiques (rouge pour nous), derrière chaque porte un bureau plus ou moins petit. Décrit comme cela, ce n’est pas super sexy. Et pourtant.. pourtant.

Rajoutez des créateurs d’entreprise plein d’entrain derrière chaque porte. Des discussions autour des distributeurs boisson/café/sandwich dans le grand espace attente/détente du rez de chaussée. Des petits déjeuners café/croissant offert dans certains bureaux, des apéros (sans alcool, bien entendu) organisés, au dépoté, par d’autre, certains vendredi soir.

Vous serez déjà plus prêt de la réalité.

2- Et ça à quoi de bien, une pépinière ?

Tellement de chose petit scarabée, tellement de chose.

L’infrastructure.

Vous arrivez dans un lieu où tout est prévu pour vous. Des photocopieurs, une standardiste, des boites aux lettres, un service d’envoi du courrier, des fax, des salles de réunion à disposition..

Tout ce que vous n’avez pas les moyen de vous payer seul, la pépinière vous le propose, en jouant sur la mutualisation des coûts.

L’accompagnement et l’animation

En étant en pépinière vous bénéficiez assez souvent de deux types d’accompagnement.
Le premier, c’est celui qui va vous aider à résoudre des problèmes ponctuels. Ce sera des séances de travail avec des experts qui répondront à vos questions que ce soit pour un sujet compta, marketing, avocat, etc …
Le second, c’est un suivi sur le long terme par le personnel de la pépinière. Tout les trimestres (ou n’importe quelle autre fréquence) il faudra ‘passer sur le grill’, expliquer où vous en êtes, ce que vous avez fait, etc etc. Cela peut faire un peu école primaire mais c’est utile, ça permet d’avoir un avis extérieur sur la durée et de mettre le doigt sur les problèmes avant que ceux soit eux qui vous mettent le doigt dessus.

Pour l’animation cela pourra consister en des petits déjeuner conférence, voir des conférences tout court sur des sujets aussi nombreux que variés (l’aide à l’export, comment remplir un dossier de crédit impôt recherche, comment réussir une démarche commerciale).

Les autres.

C’est le grand plus, pour moi, d’une pépinière. Plus encore que tout le reste. Vous n’êtes pas seul. Vous avez des voisins que vous croisez sans arrêt dans les couloirs, en allant chercher votre courrier ou aux toilettes. Alors forcément, vous vous mettez à discuter, vous raconter vos expériences, vos histoires. Rapidement les évènements joyeux sont partagés, gonflant le moral de tous. Et lors des coups de blues, il y a toujours un bureau ouvert avec quelqu’un qui offre du café, écoute et tente de vous remotiver.

Et en plus, vous pouvez faire du business, directement ou indirectement. Nous, l’un de nos premiers clients fut un ‘voisin’ qui avait son bureau 4 ou 5 portes avant le notre. Et depuis, je ne compte plus les affaires signés directement ou par un contact rapporté avec un de nos voisins.

3- Le seul inconvénient.

C’est qu’on ne peut rester dans son petit cocon si doux plus de quelques années. Après il faut se sevrer et aller se trouver, à nouveau, un autre endroit où installer.

Où alors il faut faire comme nous. Décider avec d’autres entreprises de créer son propre cocon, un endroit rien qu’à nous qui serait comme une petite pépinière…

Multi settings avec Django.

Cette petite astuce n’est pas un scoop, bien au contraire. Vous avez pu la lire des dizaines de fois, sur des dizaines de site, présenté de plein de façon différente. Moi c’est @davidbgk qui m’en a parlé lorsque je me m’interrogeais sur comment faire cela proprement.

Mais d’un autre coté, il faut bien commencé par un premier post et ça me permet d’écrire un premier post Django. (et c’est dimanche en plus, faut pas trop être exigeant).

Donc un premier post, pour résoudre un problème tout simple à savoir faire en sorte d’avoir X versions de configurations différentes de django, une version par défaut (qui peut être celle de prod) et une version pour chaque développeurs, plus celles pour les environnement de tests, etc etc…

Ma version de cette solution est simple.

A la fin du settings.py , je rajoute ces quelques lignes , X fois, pour chacun des environnements :

try:
    from local_settings_jmad import *
except ImportError:
    pass

Il suffit ensuite d’avoir les bons fichiers de local_settings_NOM.py en ignore dans son contrôleur de version de source et ça roule.

Spotify sous Linux.

En fait, je ne voulais pas installer Spotify. Non, je voulais essayer d’installer le client Ultima Online sous Linux pour profiter, lors de mes prochaines vacances, de l’offre de 14 jours de jeux offert.

Après quelques tests avec wine, directement, je me suis rendu compte que ça allait être un peu plus difficile que prévu. Quelques requêtes google plus tard, je suis tombé sur une petite merveille

PlayonLinux. ( http://www.playonlinux.com/fr )

playonlinux

Une surcouche à wine qui permet d’installer N versions de wine différente, de chacune les configurer proprement et d’installer différents programmes en permettant de choisir avec quelles versions de wine fonctionne quel programmes. (Ils appellent ça des prefixes, chaque préfixes est en fait un répertoire qui contient tout ce qui est nécessaire pour émuler un windows, c’est en fait un peu comme si vous aviez N machines virtuelles différentes).

Mais non seulement PlayonLinux permet d’avoir pleins de versions de wine (et de les installer automatiquement à travers son interface) et de les configurer facilement, mais il permet aussi (et surtout dirais-je) d’installer des programmes windows. Soit d’une manière manuelle (comme avec ultima) soit d’une manière automatique en les sélectionnant dans une liste (bon il vous faut le CD d’installation pour windows pour la plupart), liste qui est d’ailleurs plutôt bien remplie.

Malheureusement Ultima Online n’était pas dans la liste. J’ai donc du me débrouiller manuellement et ce ne fut pas sans effort (comme l’astuce de killer la fenêtre du navigateur lancé par l’autopatcheur pour permettre au jeu de se lancer). Ce n’est qu’après avoir réussi à installer Ultima Online que je suis allé voir, dans le détails la liste de programme.

Et là, dans la rubrique Multimedia, que vois-je ? Spotify.

playonlinux_liste

Je clique et émerveillé, je le vois s’installer. Téléchargement automatique du client, décompression, installation, création d’icône sur mon bureau Xfce. Le pied. Et je ne parle même pas de l’intégration dans la zone de notification d’Xfce (bon ok j’en parle). Autant dire que c’est une solution bien bien supérieure à ma solution précédente qui était d’installer Spotify dans une VM Virtualbox.