|
Bots for Teeworlds
|
Antoine Jacquet (Royale)
|
You will find in this post some details about the bots I have created for the game Teeworlds.
I am not talking about aimbots, but 100% computer controlled bots for training purposes.
They are meant to be run server side and will connect to localhost by default.
The code is based on the current 0.5.1 client source, modified to remove graphics and run in console mode (this saves a lot of CPU, they eat about 5% of CPU each on my P4 3Ghz).
Basically, they do the following:
- When they find a known checkpoint, they will follow a hard coded path, using directions/jumps/hooks. This allows the bots to be quite fast when they are on a known route (they can sometime capture the flag in 8 seconds). Currently there are 5 paths for the map "ctf5", but it is possible to add more).
- When they lose the path (collision, hooked, stuck, etc) they will switch to pseudo random move and try to come back to the closer base, in order to catch again the path.
- Strangely, they don't know about the flag :) They will just go from bases to bases forever hopping to capture the flag.
- They try to shoot at the closer enemy using the current weapon (switch weapon on pickup activated), and will fall back to gun when they have no ammo left. I added some random deviation to avoid "perfect" shoots, like pure aimbots would do.
- They will also try to catch the closer enemy using the hook. If the enemy is close enough, they will use the hammer.
- They know about the "holes" in the map and will try to avoid suicides (but they still do it too much
).
Currently they only play on CTF5 (my favorite map) because I made checkpoints only for this map.
If you are curious, they can be seen/tested on my server, search "zeRezo" in the server list. The bots are all named "bot|royale".
Here are some videos of the bots in action:
I modified the bot to restore graphics for these demos, normally they only run in console mode.
I posted this message on the official forum to have some feedbacks, specially from admins.
As I expected, they don't want the code to be released, since it could help cheaters to make aimbots.
So this will stay an exclusivity for my server
19/06/2009 à 00:42
|
|
Comment faire des podcasts facilement ?
|
Eric Le Merdy
|
Voilà ma méthode pour réaliser des podcasts. Elle est issue de mes recherches sur le sujet et quelques tentatives. En trois étapes, je ne pense pas être original sur la démarche globale, mais plutôt sur les choix faits dans ces étapes.
Acquisition du son
- Un dictaphone numérique Philips VOICETRACKER 600 qui enregistre en mp3 (Mono, 22050 Hz à 64kb/s) ; estimation du rapport temps poids : 2 minutes = 1 Mo.
Les 512 Mo embarqués conviennent à mes besoins. Un port mini-usb permet de transférer les fichier mp3 sur l'ordinateur.
- Un microphone cheap de chez itworks (8 € !)
- Un microphone Sony stéréo d'occasion sur eBay (inutile pour le dictaphone qui est mono).
- Il est aussi possible de réaliser l'acquisition à partir d'un pc portable équipé d'un logiciel de capture mais de nombreuses perturbations électriques internes viennent brouiller l'enregistrement (bruit du disque dur, écran, et même processeur).
- Je n'ai pas retenu non plus la solution carte son externe (sur port USB). Même si on élimine le problème des perturbations électroniques, il est toujours nécessaire d'avoir son ordinateur allumé, ce qui est moins compatible avec un usage nomade.
J'obtiens finalement un bon son avec le micro intégré dans le dictaphone. Le micro sur pied permet juste de s'approcher de la discussion si possible. Quant au micro Sony stéréo, il fonctionne mais pas de différence majeure avec le micro intégré.
Montage
Pour un montage simple (sans mixage), je conseille :
mp3DirectCut : un freeware qui supporte le découpage de la piste sonore (élimination des temps morts) et surtout l'application d'un gain sur la piste ce qui permet d'augmenter le volume - très utile en cas de prise de son un peu faible. Ce logiciel est dit "lossless", c'est-à-dire sans perte de qualité, il ne ré-encode pas la piste mp3. On obtient donc un fichier mp3 d'une taille égale après modification.
-
Pour un montage plus sophistiqué, je me suis orienté vers le fameux :
audacity : un logiciel libre qui permet de travailler une bande son. On peut faire la même chose que le précédent mais avec une perte de qualité à l'arrivée puisqu'il y a une phase de ré-encodage à l'enregistrement. En contrepartie, on peut par exemple mixer une musique avec les paroles.
Mise en ligne
Le couple gagnant : internet archive et feedburner.
- Internet archive est une organisation à but non lucratif qui souhaite lutter contre l'aspect éphémère d'internet en proposant d'héberger du contenu. Vous lui apportez de la richesse et lui vous héberge gratuitement, un bon deal, non ?
Après avoir créé un compte (avec un openid par exemple), vous avez accès à une belle interface d'upload pour envoyer votre fichier (utiliser l'interface Ajax en beta, elle est plus efficace pour les fichiers volumineux). Ensuite, une page dédiée permet de centraliser les méta-données générées par l'envoi du fichier.
- Un flux RSS doit être mis en ligne. Moi, je le fais "à la main" pour y ajouter la pièce jointe (en fait, le lien vers le fichier MP3 hébergé par internet archive).
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{titre}</title>
<link>{home page}</link>
<description>{description}</description>
<atom:link href="http://eric.lemerdy.free.fr/dotclear/index.php?post/2009/06/18/{lien vers le flux}" rel="self" type="application/rss+xml" />
<item>
<title>{titre de l'épisode}</title>
<link>{lien de l'épisode}</link>
<description>
{du html avec caractères échapés}
</description>
<enclosure url="{l'URL du fichier sonore}" length="{la taille en octets}" type="audio/mpeg"/>
<guid>{un identifiant unique, pourquoi pas l'url de l'épisode}</guid>
</item>
{d'autres item...}
</channel>
</rss>
Il est possible de gérer l'upload et l'intégration RSS directement dans un blog, mais c'est pour ceux qui ont de la place sur leur blog.
- Je n'ai plus ensuite qu'à enregistrer ce flux chez feedburner sans oublier de préciser qu'il s'agit d'un podcast pour obtenir les statistiques de téléchargement.
Conclusion
A moindre frais, avec un dictaphone numérique et son micro intégré, un mixage simple pour améliorer la prise de son en post-production sans perte de qualité et moyennant une mise en ligne légèrement fastidieuse, on peut créer des podcasts sans trop y passer de temps. C'est pour l'instant la méthode qui me garantit à la fois : de la mobilité lors de l'acquisition, des fichiers sonores pas trop longs à télécharger et une qualité satisfaisante à l'écoute.
17/06/2009 à 23:23
|
|
le bout du tunnel?
|
Guillaume Saint Etienne (yohm31)
|
enfin, on sort des ténèbres... après presque 10 ans de règne sans partager sur l'accès aux données depuis la création du Framework .Net, les DataSets rendent les armes.
C'est une vision personnelle, mais je ne peux me rappeler que mes soirées de debuggage intenses avec les DataSet... absence de typage, requêtes SQL construites sur des concaténations de chaînes de caractère... en tout cas au début, on était obligé de commencer comme ca.
Même s'ils ont mûri, les DataSets sont synonymes de lignes et lignes de codes de plomberie techniques, lourdes, fastidieuses, inutiles... et à mon sens une vision tordue de l'accès aux données.
Tout cela m'avait vite poussé à regarder NHibernate et ses confrères. Vive le Mapping Objet Relationnel!
Pour moi Linq et surtout Ado.Net Entity Framework allait enterrer définitivement les odieux DataSets... il n'en a rien été.
Et cette nouvelle m'apparaît comme une sortie du tunnel: "here are no plans to add DataSet into future releases of Silverlight"
Un signe? Un espoir?
Une promesse d'une aube nouvelle???? 
Si une technologie qui a le vent en poupe ne soutient plus cet ancêtre, peut être est-ce l'annonce du début de la fin?
Allez, il faut croire au progrès.
http://blogs.msdn.com/adonet/archive/2009/05/26/dataset-and-silverlight.aspx
http://www.sheysrebellion.net/blog/2008/07/31/datasets-are-evil/
http://jelle.druyts.net/PermaLink.aspx?guid=61676665-06a7-443a-9462-71dae713539e (DataSets Are Not Evil)
11/06/2009 à 09:31
|
|
UDS Karmic jour 5
|
Christophe Sauthier (huats)
|
Voici donc le dernier billet billet sur l'UDS Karmic, puisque le dernier jour est arrivé :)
Bon alors bien sur les grincheux remarqueront que plusieurs jours se sont écoulés depuis le billet traitant du jour 4, la raison est tout simple : il faut bien rentrer à sa maison et se remettre un peu de tout ça.
Bref aujourd'hui je profite du retour au bureau pour continuer/finir la série :)
Pour moi cette fin de UDS a été surtout l'occasion de continuer des discussions commencée les jours précédents quitte à ne pas aller dans certaines sessions qui m'intéressaient moins. J'ai néanmoins assisté à la table ronde de la Desktop Experience Team, c'est à dire ceux qui ont réalisé entres autres les notifications dans jaunty. Le bilan est assez intéressant, on y apprend en particulier qu'il vont chercher à avoir plus de retour de la part des utilisateurs finaux en essayant en particulier de les mettre en relation avec les designers dans des réunions dédiées. A voir donc comment ça va se passer dans les fait.
La grosse décision de la session suivante est que normalement empathy devrait remplacer pidgin, comme client de IM par défaut, enfin des tests doivent se passer un peu comme c'est le cas pour Rhythmbox/Banshee.
J'ai enfin suivi une session sur l'utilisation de Gnome Control Center, qui ne devrait pas avoir de gros changement d'ici à karmic vu que déjà pas mal de choses sont prévues du coté Gnome.
Voilà donc grosso modo pour ma journée, qui s'est achevée par la traditionnelle session de retour sur l'UDS, ces derniers étant majoritairement assez bon !
Enfin dernier soir oblige, une soirée était organisée en ville, avec au programme Karaoke... Je crois que certains d'entre nous ont raison de rester aux logiciels libres... Il suffit de regarder/écouter ces quelques exemples : Jono et jorge, mais également un groupe (dont je reconnais faire parti). Bref une bonne soirée qui cloture une bonne semaine de "travail" entre amis :)
02/06/2009 à 14:32
|
|
Mon premier homebrew sur Wii
|
Antoine Jacquet (Royale)
|
Après les homebrews sur PSP, je me suis naturellement attaqué aux homebrews sur Wii.
Ca fait un moment que ça me tente, mais j'ai bien fait d'attendre un peu, car ça a permis à la communauté d'avancer un peu, notamment sur le portage des bibliothèques.
Comme pour la PSP, on a donc besoin d'un toolchain afin de cross-compiler.
Pour la Wii, les instructions sont assez simples, et des binaires pré-compilés sont fournis, ce qui permet de mettre en place l'environnement assez rapidement.
Les principales bibliothèques ont été portées, notamment SDL depuis peu.
J'ai donc commencé par un jeu que je connais bien, à savoir zeRace.
Le jeu n'a pas évolué depuis quelques années, donc il est assez basique, mais au moins ce n'était pas trop difficile à porter.
Et ça marche ! Mon jeu a même été ajouté au Homebrew Browser qui permet de facilement ajouter des programmes dans le Homebrew Channel.
Un utilisateur a déjà fait une vidéo du jeu, voilà donc ce que ça donne :
Contrairement à la PSP, même SDL_net a été porté.
Par contre le portage est très récent, ce qui m'a posé quelques problèmes avec UDP (donc le mode réseau de zeRace n'est pas encore fonctionnel sur la Wii)
Il se trouve que la sortie de mon jeu coïncide avec un concours organisé par la communauté, donc je me suis inscrit à la Nintendomax Wii Dev Compétition 2009, on verra bien ce que ça donne !
J'aimerai évidemment adapter d'autres jeux, notamment Chromium B.S.U. et X-Moto comme pour la PSP.
Malheureusement ça risque d'être assez difficile d'après mes premiers tests, car certaines bibliothèques requises ne sont pas portées.
J'ai réussi à me débrouiller pour SQLite et cURL (en créant des bouchons juste pour que ça compile), mais à priori ça va être plus difficile pour OpenGL.
Il existe une bibliothèque pour traduire les appels en équivalent " GX" utilisé par la Wii, mais le développement n'est plus assuré.
02/06/2009 à 00:35
|
|
UDS Karmic jour 4
|
Christophe Sauthier (huats)
|
Continuons donc notre 'visite' de mes sessions de l'UDS.
Mon début de journée a été marqué par 2 sessions consécutives (1 présentation de Jono et 1 table ronde) sur le "burn out", c'est à dire en gros le craquage sous une trop forte implication/pression. Aussi éloigné que celà peut paraître de Ubuntu et des Logiciels Libres, en fait c'est quelque chose de vraiment très fréquent puisque chacun de nous en avait souffert à différents niveaux. C'est assez amusant de voir à quel point les gens ont des réactions différentes là dessus, même Mark Shuttleworth, de passage dans la salle, a échangé avec nous là dessus. La conclusion est simple : socialiser et faire du sport (oui oui j'en vois d'ici qui se frottent les mains en disant "Tu vois je te l'avais dis...."). Je trouve aussi très intéressant d'échanger là dessus pour le détecter plus facilement autour de moi, et essayer d'aider dans ce cas.
Ma fin de matinée a été placée sous le signe du Desktop : intégration de Firefox 3.5 comme navigateur par défaut pour Karmic et l'arrivée programmée de Gnome 3.0. La bonne nouvelle étant que tout ça va se faire :) La moins bonne est qu'il y a un peu de travail, mais bon ce sera l'occasion de bien participer :) D'ailleurs il risque d'y avoir un vrai effort de la part de la communauté pour aider un peu le projet Gnome pour se débarasser de certaines vieilles librairies... A suivre...
Après un bon repas (comme tous les jours), la traditionnelle photo a été prise. Puis une session super intéressante sur le boot et le but des 10s.Il faut dire que Scott James s'y connait dans ce domaine. Et pour avoir vu certaines boot optimisés, c'est vraiment impressionnant :)
Dans mon après midi, j'ai passé pas mal de temps à parler avec des personnes autour des sessions, n'ayant assisté vraiment qu'à la session sur comment améliorer la participation à distance à l'UDS. Ils semblent que les moyens sont bons (IRC/Micro Blogging/Flux Audio), mais que les gens présents n'ont pas encore tous les moyens pour bien prendre en compte les remarques extérieures (le fait d'avoir un video projecteur, affichant en permanence dans chaque salle un canal dédié IRC étant vraiment bien lors du dernier UDS). Plusieurs pistes sont donc à essayer pour les prochaines fois, mais on vois vraiment la place que le microblogging a pris en 6 mois.
La soirée a été marquée par un repas entre LoCo.Vraiement un bon moment. Et comme toujours la soirée a été terminée dans le hall de l'hotel à parler, boire un verre ensemble, profiter de ces moments...Car nous sommes tous d'accord là dessus, 75% des décisons se passent en dehors des sessions :)
29/05/2009 à 07:32
|
|
Une journée au XP Day France 2009
|
Eric Le Merdy
|
Je n'ai assisté qu'au deuxième jour du XP Day France 2009.
Le cadre était bucolique. Si je peux me permettre un reproche, les salles du chalet n'étaient pas si pratiques. Je connaissais déjà les lieux pour y avoir fait un "Team building" l'année dernière et nous avions rencontré déjà le soucis de la traversée des salles pour accéder aux autres.
Sessions:
Voici ce que j'en retiens:
- Lightning talks Outils logiciels
- Sonar
- Qu'est-ce que c'est ?
un outil de collecte et de visualisation de mesures faites sur le code source (java en premier lieu).
- Eprouvé
Il repose sur des briques d'analyse de code reconnues depuis longtemps déjà dans le monde java.
- Riche
Son interface web de reporting des mesures est agréable à consulter. L'analyse bi dimentionnelle sous forme de treemap (une métrique sur la surface, une autre sur la couleur) permet de comparer de façon les deux métriques choisies.
- Manques
L'outil manque peut-être selon certain d'une gestion des droits un peu plus fine pour raffiner l'accès aux mesures par projet. Je crois moins à l'argument avancé en session par un participant sur le masquage de certaines mesures "faille" à son client. L'agilité ne prônerait-elle pas une transparence sur les données projet ?
- Outils .Net
J'avoue ne pas être familier du framework .Net. Sans avoir pris de note, voici ce que j'en ai retenu. L'écosystème des outils semble à première vue couvrir tout le "cycle de développement". Entre parenthèses, le cycle présenté était certes itératif mais peu adapté à une stratégie de test-first. La force de Microsoft Team System serait l'intégration poussée de l'outillage. Par contre, la qualité de certaines briques serait inférieure à leur équivalent Open-source (notamment pour les Tests unitaires). Les présentateurs ont sentit la montée en puissance de l'écosystème. Ils tiennent à souligner l'effort de la communauté Alt.net qui pousse Microsoft à s'ouvrir de plus en plus. A en croire par le nombre croissant d'outils open-source qui sortent, ils obtiendraient une bonne attention de la part de l'éditeur. D'après ce que j'ai compris, Microsoft supporterai même certains outils open-source. C'est vrai qu'ils ont tout à y gagner si la contribution est de bonne qualité. Team System est déjà un outil ALM intégré alors qu'en java, ou avec les briques open-source ou gratuites de .Net, il faut se construire son propre ALM...
- GreenPepper
Une introduction pas si claire que ça sur la motivation du besoin des tests d'exigences automatisées a fait place à quelques écrans GreenPepper. Tout y est dans cet outil: le Wiki pour éditer les spécifications, la machinerie interne pour passer les tests sur le code de l'application, les fixtures à apporter pour fournir ce code liant. Cependant, on sent assez vite que GreenPepper souffre de quelques lacunes. Impossible par exemple de gérer en ligne de produit ces exigences fonctionnelles car la base des exigences est exportable mais pas rejouable dans le wiki. Il doit également faire face à une concurrence renforcée depuis 6 mois car Fitnesse bénéficie actuellement une forte activation de sa communauté grâce à la refonte du moteur de FIT vers Slim.
- Lean Software Developement et Pratiques Agiles
Ce fut moi le speaker de cette session. Ma première contribution au XP Day fut donc d'expliquer le Lean Software Development aux participants. J'ai bien aimé l'exercice, Je me suis sentis assez à l'aise. C'est ma collègue Elisabeth Ducarre qui devait assurer la présentation mais elle n'était pas disponible. Le sujet me passionne beaucoup et semble être la méthode agile à découvir en 2009. La salle était comble et je m'en félicite. J'en profite pour vous parler du prochain Valtech AfterWork qui se tiendra la La Défense le 10 juin prochain. Cette session gratuite et ouverte à tous après le boulot vous permettra de rencontrer Elisabeth et moi pour une présentation approcfondie du Lean Software Development et sans doute quelques animations participatives. Elisabeth donne aussi un cours chez Valtech Training sur 3 jours pour apprendre à pratiquer le Lean dans votre organisation.
J'ai finalement répondu au mieux aux diverses questions que la pratique du Lean n'a pas manqué d'éveiller chez l'auditoire. Je serai heureux de récolter vos commentaires sur ma présentation.
- Repas en compagnie d'un des alchimiste-agile. Une discussion passionnante sur le métier de coach.
- Pratiques d'ingénierie incrémentale
Cette session a rencontré un succès certain puisque la salle était comble. Il est vrai que c'est toujours un plaisir d'écouter Eric Mignot. Cette fois-ci, il a fait le point sur les pratiques d'ingénierie incrémentale. Cette présentation sous forme d'échange avec l'auditoire avec peu de support powerpoint fut d'abord axée sur les différentes pratiques agiles qui permettent d'assurer une ingénierie incrémentale. Eric semble être un adepte de l'application de la méthode SCRUM aux individus. En particulier, il nous a parlé de sa méthode d'immersion dans les équipes qui consiste à ne pas imposer de pratiques mais à provoquer chez les équipiers l'envie de les pratiquer. Il maintient un backlog de tâches qu'il souhaite livrer à l'équipe. Par exemple, l'adoption des réunions quotidiennes n'est pas une cérémonie imposée, il préfère montrer à la machine à café par exemple que les gens ont besoin de ce point journalier pour avancer dans de meilleures conditions. Si on impose la cérémonie, le premier point douloureux est de trouver un horaire qui convienne à chacun des participants. Si je devais un jour avoir à être accompagné sur un projet ou passer le cap et faire de l'accompagnement moi-même, j'aimerai avoir la même aisance qu'Eric dans le domaine.
- Introduction à certains principes Lean
Une courte session qui s'est faite légèrement manger par le discours d'Eric. Lean étant un sujet vaste, ce que je retiens de cette présentation est de ne pas forcément chercher à tout automatiser. Il a plutôt préconisé de tenter d'éxécuter l'activité manuellement pour bien mesurer si il existe un bénéfice à l'automatiser. L'orateur n'avait pas beaucoup d'aisance et cela s'est ressentit sur le succès de sa présentation.
- De l'atelier à l'usine logicielle : Enjeux et retours d'expérience d'Orange Labs
L'ALM est aux portes de nos organisations, mais la route reste encore longue quand on souhaite bâtir cette solution avec les produits existants. Orange Labs nous a fournit un retour d'expérience pertinent sur l'état de leurs travaux dans le domaine. Lorsqu'ils réalisent un développement sur une des briques open-source, ils n'ont pas peur de le verser dans la communauté. C'est un signe de maturité face à l'adoption de l'open source.
Quelques accroches: "de l'atelier à l'usine logicielle", "de l'intégration continue à la synchronisation continue", "le statut du projet sur le serveur d'intégration continue est la seule référence valable".
L'objectif de leur unité: assurer la répétabilité temporelle et spatiale de la production des livrables logiciels. Temporelle car on souhaite pouvoir régénérer à l'identique un livrable produit précédemment, spatiale car on souhaite que ce comportement soit valable non seulement sur tous les postes de développement de l'équipe, mais aussi sur tous les projets que l'organisation héberge.
Pour arriver à ce résultat, toutes les solutions ne sont pas encore mûres. Voyons ce qu'il existe et ce qu'il reste à faire:
Solutions mûres:
- gestion des dépendances: avec Maven, les projets modulaires déclarent de façon versionnée leur dépendances aux librairies externes.
- gestion de configuration: avec Subversion, on assure une historisation du code source indispensable au développement collaboratif.
- intégration continue: L'outil Hudson assure que la compilation du logiciel est automatisé, des tests automatisés peuvent être passés sur cette plate-forme pour en valider la qualité. On peut aussi générer de la documentation, des mesures qualitatives sur le code à ce moment et packager les livrables automatiquement.
- portail de mesures: Sonar permet d'exécuter et d'historiser les mesures qualitatives sur le code source.
- référentiel de livrables: un repository maven permet à un service de peupler une base de libraires provenant des contributions open-source mais aussi issu de ses propres développements
- "tracker": l'outil Jira permet de gérer l'ensemble des anomalies et évolutions sur un composant. Aujourd'hui, leur solution est basée sur un plugin maven qui automatise le commentaire de commit en associant automatiquement une modification de code à un ticket de la base. Cela leur permet aussi de générer automatiquement la release note d'une version non pas simplement en tant que liste de fichiers qui ont évolué dans la gestion de configuration mais surtout en termes de bugs résolus et d'évolutions apportées par requêtage de la base Jira.
Solutions à mûrir:
- Automatisation du déploiement de l'usine logicielle: Même si ils arrivent aujourd'hui à un bon niveau d'intégration des briques, ils souffrent encore du temps nécessaire pour déployer ces outils sur chacun des projets qu'ils ont à gérer. La voie de la virtualisation est une bonne piste pour constituer des serveurs "scalables" à mettre en place par projet. De même, la configuration du poste client prend encore pas mal de temps (retour d'expérience de Bull).
- Trop de portails: un portail pour les builds, un pour le suivi des mesures qualitatives, un pour les sites générés au build: ils travaillent donc tout d'abord sur les liens inter-sites pour qu'ils soient au moins liés entre eux
- Une informatique hédoniste et responsable.
Session rafraichissante sur les parallèles entre la philosophie hédoniste (opposée à la philosophie idéaliste platonicienne bien répandue dans notre société occidentale). Un appel a participation à un manifeste hédoniste a été lancé en ouvrant la participation à des philosophes ou des profils sciences humaines.
La communauté agile semble toujours très active. L'association XP France a évolué cette année en changeant de statuts et en prenant le nom d'"Agile Paris". Du coup, le titre de l'association est beaucoup plus en phase avec les compétences réelles de ses membre qui n'ont jamais été réduites seulement à la méthode XP.
A l'année prochaine pour une nouvelle session. 2009 sera riche en événements et on ne peut également que se féliciter de la création d'associations à travers la France entière.
28/05/2009 à 21:29
|
|
UDS Karmic jour 3
|
Christophe Sauthier (huats)
|
Continous donc mon récit avec la journée 3 de l'UDS Karmic qui se passe en ce moment à Barcelone. Je vais surtout détailler les sessions où j'ai vraiment participé, et mais pas celles où j'ai assisté en étant assez passif, car justement si je n'ai pas participé activement je n'ai pas grand chose à dire dessus :)
Ma journée a commencée par une session sur comment améliorer le marketing réalisé par les LoCo. Assez intéressant, puisque mené par Paolo en s'appuyant sur son expérience avec ubuntu italie. Il va surement y avoir des sessions/actions pour continuer les réflexions là dessus, donc n'ayez pas peur vous aurez l'occasion de vous impliquez en temps voulu. La conclusion de cette session est venue avec la projection de "Stand By Me", dans une version chantée par plusieurs personnes réparties autour du monde.Vraiment très sympa, ça symbolise bien l'esprit Ubuntu... Bref une sorte d'hymne est en train d'apparaitre :)
Ensuite j'ai assisté à une "analyse" de l'action du Loco Council,1 peu plus de 1 an après sa création. Vraiment très intéressant, Pour résumer, ça c'est bien passé, il faut continuer comme ça, mais vu la charge de travail il se pose la question de peut etre rajouter 1-2 membres (il y en a 5 en ce moment).
Les sessions éclairs étaient vraiment super intéressantes : Daniel T Chen a commencé par nous expliquer les problèmes de la gestion du son... Vraiment un gros bazar pour le moment, mais apparement ça devrait aller de mieux en mieux :) Il y a eu ensuite les résultats d'une étude menée par des étudiants sur "Ubuntu et sa Communauté". Et enfin des présentations/démos sur Moblin et Android... Sympa tout ça. Et Android sur Ubuntu ça semble bien sympa :) Mais bon je ne vais pas le détailler puisque d'autres personnes en ont déjà parlés plusieurs fois sur planet.ubuntu-fr.org
La dernière session du jour fut consacrée au Conférence Pack qui est envoyé par Canonical pour les LoCo. Ce n'est pas quelque chose que nous utilisons à ubuntu-fr car celà ne nous convient pas vu la taille de nos évènements (3 Tshirts ça ne nous sert à rien....). Mais c'est toujours important d'écouter un peu les soucis/besoins des autres.
Voilà, journée avec assez peu de sessions en fait, mais beaucoup de discussions/interactions. Et puis la soirée a été chargée aussi avec le match Barça/Manchester United... Et vu que Barcelone a gagné, autant dire que c'était de la folie en ville et en particulier à "La Rambla". Bref un bon moment :)
Voilà, la suite demain !
28/05/2009 à 08:26
|
|
UDS Karmic jour 2
|
Christophe Sauthier (huats)
|
Continuons donc notre série de point sur les journées qui passent à l'UDS.
Au programme de mon jour 2 à l'Ubuntu Developer Summit, il y a d'abord eu le tour de table de la Desktop Team. Ca tombe bien c'est là où je suis le plus actif au niveau développement dans Ubuntu. Et le moins que l'on puisse dire c'est que Karmic va apporter de très très nombreuses nouveautés : un nouveau gdm (enfin diront certains), un temps de boot encore plus rapide, l'intégration de KMS, et bien d'autres que je dois oublier. Ca va etre aussi l'occasion pour nous (Desktop Team) de changer notre manière de travailler en utilisant un outil central pour savoir qui travaille sur quoi et donc que faire :)
J'ai ensuite continué avec une session communauté sur comment améliorer l'Open Week, cette semaine de sessions IRC qui est là pour initier les gens au monde qui s'agite pour faire de Ubuntu ce que c'est. Plusieurs idées ont étés présentées comme en particulier faire moins de sessions (il y en a 40 envrion par OpenWeek) mais plus étalées au niveau des zones horraires (pour toucher plus de monde). De plus l'utilisation de démos à distance en utilisant le couplage de screen et de EC2 comme a pu le montrer Dustin Kirkland lors de la dernière OpenWeek a été pas mal apprécié.
Puis est venu le moment de la session de travail sur le Loco Directory, ce projet de base centrale de l'ensemble des locos. C'est un projet auquel je participe activement puisque j'ai initié la mise en place d'une carte pour cet outil en utilisant des technos sympa (mapnik, openlayers, postgis). Bref il y a encore du travail mais on va essayer d'avoir la version de la carte prète pour la sortie de Karmic, alors que la version initiale du projet devrait partir en validation par les admins-sys canonical d'ici quelques semaines. J'ai d'ailleurs zapé la session d'après pour continuer les discussions sur la carte du Loco directory.
Après le déjeuner a eu lieu la "traditionnelle" série de présentations éclairs : Kvm, R, Kerberos... et la 'surprise' du jour était l'envoie de tshirts par Qt/Ubuntu offerts nokia...D'ailleurs on peut me voir avec le mien :)
Ma première session de l'après midi était en rapport avec l'intégration de gwibber par défaut dans le bureau Ubuntu pour permettre une meilleure intégration avec le micro-blogging (Twitter/Identi.ca/Facebook). En fait j'étais assez intéressé par ces discussions car c'est un des axes annoncé par Mark dans son speech d'ouverture, mais également car je suis le mainteneur d'une dépendance de gwibber (python-webkit) et que cette inclusion aurait des répercutions là dessus. Et le résultat étant que l'on va surement l'intégrer... Il y a eu pas mal de discussions sur comment l'intégrer, celà se fera surement au niveau de l'applet FUSA.
J'ai ensuite assité à une session très intéressantepour savoir si il faut changer le player multimédia par défaut de rythmbox vers banshee. Il s'avère que ce dernier semble meilleur mais avec encore quelques points bloquants. Un autre point sera donc à faire dans le cycle (vers Feature Freeze), mais il est possible que banshee devienne très prochainement un choix par défaut.
Voilà pour mon programme de la journée ! La suite demain :)
27/05/2009 à 07:38
|
|
UDS Karmic jour 1
|
Christophe Sauthier (huats)
|
Comme certains d'entre vous le savent déjà, je suis actuellement à l'Ubuntu Developer Summit (UDS) à Barcelone pour travailler sur la future version la 9.10 (Karmic Koala) qui sortira au mois d'octobre prochain. J'ai en effet eu le plaisir/la chance d'être encore une fois sponsorisé par Canonical pour venir ici, dans cet hotel de luxe (oui oui le mot n'est pas trop fort), en compagnie de Didier Roche (didrocks de son pseudo) qui vit là son premier UDS :)
C'est comme toujours un très bon moment passé avec des personnes partageant le même centre d'intéret, la même passion : les logiciels libres et Ubuntu en particulier. Tous les aspects de Ubuntu sont abordés : du développement Kernel à la gestion des traductions dans launchpad en passant par le Poste de travail (sous Gnome, sous Kde) et même LTSP ;)
Pour ma part je vais tout naturellement m'intéresser principalement aux sessions sur la communauté, le poste de travail (sous Gnome) et un peu de serveur (en fonction des créneaux), car il faut bien faire un choix : 14 sessions se déroulant en parallèle....
Bref après ces quelques explications sur le principe de l'UDS, passons au résumé de mon premier jour. Il faut savoir que les journées sont très chargées et vu que les soirées aussi (mais beaucoup plus sur un thème festif/papotage :)), tenir la durée de l'UDS est souvent le résultat d'un gros travail :) D'ailleurs celà faisait partie des mises en gardes/recommendations de Jono dans sa session d'ouverture :) Après ce speech d'ouverture (mais également celui de Scott James Remanant et celui de Mark Shuttleworth).
Le thème de ma première session fut autour de la communauté et comment améliorer les différents évènements organisés par les communautés locales, oùnous nous sommes focalisé sur les différentes "Jam" (Bug, Traduction...). Les principales idées étant l'importance des taches non techniques mais également de pouvoir intégrer des évènements dans launchpad mais égalemet tirer le meilleur du futur Loco Directory.
J'ai enchainé sur la session qui visait à trouver des moyens pour "redonner l'esprit Ubuntu" en faisant plus "de publicité" autour de ce qui nous anime, de ce qui nous plait...
Après le repas de midi plusieurs petites sessions éclairs dont une au sujet de LTSP (pour faire plaisir à manu_ubu surement). On m'a ensuite demandé de participer à la réfexion sur mettre en place d'un programme de mentoring pour le bug control, en prenant comme exemple le progamme de mentoring pour devenir developpeur Ubuntu que je gère. C'est un peu la même idée qui était présente dans la dernière session de la journée que j'ai suivi sur les moyens d'identifier des taches simples pour attirer de nouveaux contributeurs à Ubuntu.
Bref une journée bien pleine, qui a été complétée le soir par pas mal de discussion sur le Loco Directory et en particulier sur l'intégration de la carte que je suis en train de préparer et que nous allons aborder lors d'une prochaine session... Mais bon ce sera abordé dans une autre journée...
26/05/2009 à 08:17
|
|
Présentation du Lean Software Developement
|
Eric Le Merdy
|
Je vais parler aux XP Day !
(c'est le sac de l'année dernière)
1
2
3
- Ne pas négliger la théorie
- S'entraîner en s'écoutant pour se corriger
- Prendre des forces (5 fruits et légumes par jour, c'est un objectif dur à atteindre !)
La théorie permet d'être à l'aise avec les fondements de ce que l'on vit sur nos projets.
En s'écoutant, on apprend à se placer du côté de l'auditoire. Je cherche à me poser les questions en tant que public de la présentation : quels sont mes attentes et serais-je déçu si j'y assistais ? Mais la voix n'est pas le vecteur primordial pour faire passer l'information. L'attitude, le ton, la présence comptent aussi beaucoup.
Il est aussi important d'avoir une idée claire des messages que l'on souhaite faire passer. Ensuite, le mieux est de trouver une histoire à raconter pour faire passer le tout de façon agréable. Ce qui me plaît dans une présentation, ce sont les accroches, et lorsque les exemples résonnent dans mon expérience actuelle et passée. J'utilise donc des cartes pour répéter sur lesquelles j'inscris le message important du slide et les accroches et les transitions dans une autre couleur.
Tentons de faire tout ça pour le 26 mai !
13/05/2009 à 05:58
|
|
Migration de mon Ubuntu Serveur vers un linutop
|
Christophe Sauthier (huats)
|
J'ai eu la chance de rencontrer lors de Solution Linux pas mal de monde très sympatique. C'est ainsi que j'ai pu rencontrer plusieurs personnes parmi l'équipe qui fabrique Linutop qui sont tous des fervents supporter du libre...
Et pour ceux qui se demandent ce que c'est, il s'agit un mini PC très faible consomation (8W contre au moins 60W pour un PC classique), qui a pour principaux avantages de ne pas faire de bruit (complètement silencieux) et tout petit (la taille d'un boitier CD environ). Il est livré par défaut avec le système Linutop (un dérivé de Xubuntu assez épuré) sur une carte flash 1Go tout à fait adapté pour un usage bureautique, mais on peut tout à fait changer ça par un disque dur interne 2,5 pouces IDE.
Et lorsque vous saurez que depuis quelques temps j'ai la farouche envie de changer mon serveur actuel (celui qui héberge ce site mais aussi pas mal d'autres sites/services), dans l'optique d'avoir une solution plus économique d'un point de vue consommation EDF, mais aussi au niveau du bruit, vu qu'il est quand même physiquement dans notre bureau/salon :) Vous comprendrez facilement l'intérêt que je peux porter à ce PC. Et tout celà sans savoir à quel point les fabriquants étaient sympatiques !
Bref je suis reparti avec un joli exemplaire du salon :) Et je suis donc attaqué à la migration de mon "vieux" serveur. J'ai un serveur qui tourne sur Ubuntu Serveur Hardy (8.04.2).
Autant le dire tout de suite tout c'est très très bien passé... La procédure que j'ai suivie a été la suivante :
- Branchement du disque dur du futur serveur sur l'ancien.
- Création des partitions sur le nouveau disque dur.
- Copie du contenu de l'ancien serveur vers le nouveau (avec rsync et en prenant soin de bien mettre les données dans les bonnes partitions car je n'avais pas la même topologie entre l'ancien et le nouveau)
- Démarrage du nouveau serveur depuis une clé USB Ubuntu pour mettre proprement grub
- Redémarrage du nouveau serveur sur l'ancien système
- Et c'est tout !
Tout le matériel est immédiatement reconnu. Et tous les services ont de suite fonctionné... Bref que du bonheur... Et puis quel plaisir d'avoir ce petit objet qui ne fait pas de bruit, ne prend pas de place plutôt que mon ancienne tour. Bon alors c'est sur que ce n'est pas les mêmes performances d'un point de vue puissance brute, mais pour une utilisation classique de serveur personnel (qui a pourtant pas mal de visites au total), malgrè une puissance demandée non négligeable (j'héberge pas mal de technos différentes dont certaines assez gourmandes comme Zope/Plone), le résultat est vraiment très très bon.
Bref mon serveur ubuntu tourne sur Linutop et c'est cool ! Et qui sait peut etre que vous aussi bientot, puisque il y aura un linutop à gagner à la tombola de la prochaine Ubuntu Party parisienne du 16 et 17 Mai...
27/04/2009 à 16:27
|
|
Compte rendu de la Ubuntu Global Bug Jam à Toulouse du 20 Février
|
Christophe Sauthier (huats)
|
Et bien pour faire simple c'était très très sympa. il faut dire qu'entre les gens venus suite aux annonces sur Toulibre et ceux venus suite aux annonces sur ubuntu-fr il y avait pas loin de vingt personnes qui ont participées.
La session principalement encadrée par lionel et moi même a permis d'initier de nouveaux venus au monde du developpement Ubuntu, mais aussi certains déjà habitués. Bref nous avons pu faire plusieurs types de bugs des bugs qui n'ont pas de paquet associé, jusqu'à certains bitesize.
Celà a donc été un moment très sympa, le clic cool café étant vraiment bien adapté pour celà, et en plus ils aiment le libre :)
Bref je pense que l'on peut dire que le but est atteint, certains vont continuer plus avant l'aventure du logiciel libre avec Toulibre, d'autres vont venir participer plus activement à ubuntu-fr et enfin un va vamême peut etre tenter de l'aventure du programme de mentoring pour devenir MOTU !!! Alors à quand la prochaine ???
22/02/2009 à 22:47
|
|
Ubuntu Global Bug Jam à Toulouse le 21 Férvier 2009
|
Christophe Sauthier (huats)
|
Dans le cadre de la Global Ubuntu Bug Jam qui se déroule partout dans le monde du 20 au 22 Février, ubuntu-fr et Toulibre ont le plaisir d'organiser ensemble une Bug Jam à Toulouse. Elle aura donc lieu au Clic Cool Café 5 rue de la digue, 31300 TOULOUSE, Samedi 21 Février de 14h à 18h30.
Ce sera l'occasion de se réunir dans un lieu convivial, pour s'initier au traitement de bugs Ubuntu dans la plateforme launchpad. Et pour ceux qui sont déjà venu à la précédente édition, celà nous permettra de poursuivre cet apprentissage :) Encore une fois aucune connaissance technique n'est requise, juste de la bonne volonté et de la bonne humeur !
Pour rappel, il n'est demandé aucune préparation particulière mais la rcréation d'un compte sur launchpad est vivement recommandée pour gagner du temps...
De plus ceux qui possèdent un ordinateur portable capable de se connecter à un réseau (cable ou wifi), sont vivement encouragés à amener pour permettre de travailler plus efficacement.
Voilà, à samedi !
19/02/2009 à 12:35
|
|
TNT HD sous Linux
|
Antoine Jacquet (Royale)
|
Un billet rapide qui aidera peut-être ceux qui comme moi ont eu du mal à visionner les nouvelles chaines TNT HD sous Linux.
Je possède un tuner USB DVB-T basique ( DTV-5100), supporté par le noyau Linux.
Tout fonctionne donc parfaitement pour les chaînes normales, par exemple avec le logiciel Me TV.
Le tuner ne fait que transférer le flux brut à l'ordinateur qui se charge de la décompression, ce qui lui permet d'être officieusement compatible "TNT HD".
Depuis Versailles, je ne capte pas tous les canaux TNT, il me manque notamment le canal R1 qui contient la chaine France 2.
Par contre, je capte le canal R5 qui diffuse les chaînes HD, notamment France 2.
Me TV détecte ces chaînes, mais est incapable de les décompresser en temps réel.
La version de VLC packagée par Debian ne reconnait pas le codec vidéo.
Xine fonctionne mais galère comme Me TV...
Par contre MPlayer fonctionne correctement !
Il faut d'abord créer le fichier de chaînes :
scan /usr/share/dvb/dvb-t/fr-Paris > ~/.mplayer/channels.conf
Vous devriez alors être en mesure de visualiser une chaîne normale :
mplayer dvb://TF1
Par contre MPlayer ne démarre jamais la vidéo sur une chaîne HD, pensant qu'il s'agit d'un flux MPEG2 standard :
VIDEO MPEG2(pid=220) NO AUDIO! NO SUBS (yet)! PROGRAM N. 0
La solution est d'éditer le fichier ~/.mplayer/channels.conf à la main pour corriger les identifiants :
TF1 HD:538166000:INVERSION_AUTO: [...] :HIERARCHY_NONE:110+120:110+130:1281
France 2 HD:538166000:INVERSION_AUTO: [...] :HIERARCHY_NONE:210+220:210+230:1282
M6HD:538166000:INVERSION_AUTO: [...] :HIERARCHY_NONE:310+320:310+330:1283
J'ai trouvé ces identifiants en utilisant dvbtune et dvbsnoop, mais je pense que ce sont les mêmes au niveau national.
Par contre ne changez pas les fréquences qui dépendent de votre émetteur.
Ensuite il est possible de regarder les chaînes avec MPlayer :
mplayer dvb://'France 2 HD'
Evidemment ça ne résoud pas les problèmes de lenteur liés au codec, mais grâce aux nombreuses options de MPlayer (et à Google  ) j'ai réussi à obtenir un résultat correct :
mplayer -vfm ffmpeg -lavdopts fast:skiploopfilter=all:threads=8 -vf pp=md dvb://'France 2 HD'
Les options "fast" et "skiploopfilter=all" sont documentées dans le man. Elles désactivent certains algorithmes de H.264 pour améliorer la vitesse de décodage, au détriment de la qualité.
Le fait d'activer 8 threads m'aide aussi, ce qui est surprenant vu que je n'ai qu'un processeur mono-coeur sans hyper-threading...
Enfin, il reste un peu de CPU pour désentrelacer la vidéo avec "pp=md".
Au final, mplayer occupe environ 60% de mon processeur et Xorg 10%... donc je ne peux pas faire grand chose en même temps, au risque de ralentir la vidéo (ce qui à tendance à casser la synchronisation audio/vidéo).
15/02/2009 à 21:18
|
|
Productivité: faire son Hansei
|
Eric Le Merdy
|
"Je trouve que je passe trop de temps au travail."
Cette phrase exprime un ressenti sur une situation dangereuse.
Que faire pour améliorer cet état ? Et en premier lieu quel est cet état ?!?
Le bon sens cartésien veut que l'on ne puisse mesurer une amélioration que de ce que l'on peut préalablement quantifier.
Partant de ce constat, j'ai décidé de tenter une petite expérience cette semaine: mesurer mon temps de travail.
Ne disposant pas d'un outil aussi interactif que Talia (Pyxis en parle), je me suis monté un google document tableur pour reporter mon activité:

(Les valeurs sont en décimales d'heures)
Tous les jours, je remplis le nombre d'heures de travail
- total de la journée (hors pause déjeuner)
- de 'dev' on peut traduire par travail productif (slides, docs, etc.)
- de 'support', les questions des utilisateurs, le support aux autres développeurs
- de 'other', web surfing, checkage de mail clientèle, pro et perso, lecture de docs et... autre quoi
Le reste est calculé tout seul par différence. C'est ce qui n'est pas comptabilisé (pause toilettes (!), oubli du chrono, etc.).
Le chrono, justement, pièce maîtresse dans mon expérimentation. Je suis infidèle à la philosophie agile ou lean du 'physical communication'. Et non, je n'ai pas trois chronos qui trônent sur mon bureau. A la place, c'est un 'google gadget' sur mon bureau virtuel qui compte le temps qui passe. C'est le bien-nommé : Task List and Timer Timer

Bilan après une semaine:
- L'interface du timer n'est pas très jolie. Encore un développeur qui essaye de faire une interface... Pourquoi diable a-t-il voulu créer sa propre scrollbar ? En regardant comment est fait un google gadget, j'ai compris mais au moins, il aurait pu prendre un style d'ascenseur plus joli.
- A l'usage, c'est assez lourd de déclencher les chronos au changement d'activité. Un déclenchement à la voix serait sympa, ou alors une IA qui infère l'activité en fonction des logiciels en action sur le poste... C'est possible mais pas dispo. sur google gadget...
- Ce qui n'apparaît pas justement est le nombre de "changements de contexte" qui est une cause classique de perte de productivité.
- La tentation de l'isolation est donc importante pour augmenter facilement la productivité
- L'irrégularité de la journée de travail dénote un emploi du temps assez torturé cette semaine...
- Prise de conscience sur la répartition réelle des activités quotidiennes
- Le côté motivant : voir la courbe de l'activité productive qui monte est assez stimulant.
- Qu'est-ce-qui est fait pendant la journée de travail qui pourrait être éliminé sans conséquences ?
Je pense prolonger encore un peu le monitoring pour tirer d'autres leçons de ces données puis recommencer le mois prochain. Je n'ai pas encore terminé mon "Hansei" (auto-critique, réflexion).
En tous cas, j'encourage quiconque souffrant du temps qui passe trop vite de mener à son tour ce genre d'expérience adapté à son contexte. En effet, le lean nous apprend qu'il n'y a pas de métrique magique qui va illuminer tout seul les gains de productivité à faire. Par la suite, pourquoi ne pas partager les retours en "Hansei Kai" (réunion d'auto-critique) ?
(Ces termes japonnais sont issus de la pensée lean [ppt])
12/02/2009 à 22:45
|
|
Freelance Facebook developper
|
Antoine Jacquet (Royale)
|
I have been working on several Facebook applications, and this gave me some visibility on this subject, mainly thanks to these french applications:
Following several contacts I had in Paris, I decided to start as a freelancer.
So I am now able to accept requests for the development of Facebook applications, and I am going to start next week with a first client in France.
For now, I am doing this work in parallel to my main job, so I am focussing on the domain of Facebook applications.
I am familiar with the Facebook technologies thanks to my projects, like the FBML language and the PHP API, as well as the Facebook social/viral concepts.
If you are interested by my skills, feel free to contact me on Facebook.
You will also find contact details in my resume.
06/02/2009 à 21:19
|
|
Développeur indépendant Facebook
|
Antoine Jacquet (Royale)
|
Les différentes applications Facebook que j'ai pu développer récemment m'ont donné un peu de visibilité dans ce domaine, notamment :
Suites à plusieurs contacts sur Paris, je me suis enfin décidé à me lancer...
Le statut d' auto-entrepreneur qui est en place depuis le début de l'année m'a également aidé puisque les formalités administratives sont simplifiées.
Je suis donc maintenant en mesure de répondre à des demandes concernant le développement d'applications Facebook, et je dois commencer dès la semaine prochaine avec un premier client !
Pour l'instant, je fais cette activité en parallèle de mon CDI, et je me concentre donc dans un premier temps sur le domaine des applications Facebook.
Je maîtrise les technologies Facebook grâce à mes différents projets, notamment FBML et l'API PHP, ainsi que les techniques d'utilisation virale du réseau social.
Si vous êtes intéressés par mes prestations, vous pouvez me contacter sur Facebook.
Vous trouverez également mes coordonnées détaillées en consultant mon CV.
06/02/2009 à 21:07
|
|
Merci...
|
Christophe Sauthier (huats)
|
Je viens de me rendre compte suite à certains commentaires/blogs, que je suis la personne actuellement sur le Hall Of Fame Ubuntu du moment, c'est à dire une sorte de tableau d'honneur...
Je ne peux dire que Merci ! Mais je tiens juste à dire que je ne prends cette récompense pour moi, mais que je la partage avec toute l'équipe de Ubuntu-fr car je sais bien que nos activités ont eu un rôle plus que prépondérant dans cette récompense...
03/02/2009 à 19:53
|
|
Une journée extra-ordinaire
|
Guillaume Saint Etienne (yohm31)
|
Pour changer de .Net, un petit billet d'humeur sur... le travail.
Voila donc cette grande journée de grève avec une paralysie quasi-totale annoncée.
Et qu'est ce que je remarque ce matin au boulot: 2 fois moins de mes collègues sont venus travailler, les autres sont restés travailler chez eux.
C'est un des avantages à bosser dans les domaines de l'IT ou du service. Nous n'avons pas *vraiment* besoin de nous déplacer sur notre lieux de travail tous les jours, dans l'absolu.
Résultat de cette journée: l'ambiance était particulièrement décontractée voire joviale. Travaillant dans un OpenSpace, voila que -tout d'un coup- une quiétude et un calme nécessaire à la concentration régnaient autour de nous. Le travail allait en être plus efficace.
Les gens étant restés, pour bon nombre, chez eux, la circulation fut plus fluide que d'habitude (source Europe 1) et la qualité de l'air était bonne ( http://www.airparif.asso.fr ).
L'analyse de la courbe de cumul de bouchon en IdF fait ressortir une étrangeté ( http://www.sytadin.fr/ ): l'intensité des bouchons était exactement égale à la courbe des moyennes (donc aucun effet de sur-bouchon) mais elle était décalée dans le temps; c'est à dire que les bouchons se sont produits beaucoup plus tôt dans la matinée puis résorbés, pour avoir retrouvé à 9h30 une valeur quasi nulle... du jamais vu pour Paris et sa banlieue!

75% des métros ont fonctionné mais comme il y avait beaucoup moins de monde, les voyageurs étaient détendus.
Et de réfléchir, en ces temps de crise, à la nécessité de repenser nos modes de travail. Avons nous besoin de dépenser autant de CO2 pour transporter autant de monde à des distances parfois incroyables (plus de 3h de transport par journée pour certains). Et tous en même temps (ne pouvons nous pas imaginer des horaires mieux adaptés?).
Selon le WWF, 50% des émissions de CO2 des entreprises sont liées aux déplacements professionnels : voyages d’affaires, trajets domicile-bureau, etc. L’ONG vient donc de lancer le challenge One in five pour pousser les entreprises à réduire leurs déplacements professionnels de 20% d’ici 5 ans. (source: http://www.greenit.fr/article/acteurs/50-des-emissions-de-co2-liees-aux-voyages-daffaires )
En bon provincial (et Occitan de surcroît) je suis convaincu qu'il y a trop de monde en Ile de France, et que concentrer 1/5eme de la population sur 1,7% de la surface du territoire est une aberration environnementale (et idéologique).
Les instances territoriales font toutes les études qui démontrent que les trajets domicile-travail coûtent trop cher en CO2 ( http://www.hauts-de-seine.equipement.gouv.fr/IMG/pdf/p6_pda_covoiturage_vf_cle636a11.pdf ).
Le gouvernement et la CEE s'y mettent aussi ( http://www.bougezautrement.gouv.fr/ ).
Je saluerai donc toutes les initiatives qui vont dans le sens du télétravail et de la dématérialisation, tel que http://www.cyberworkers.com/
et de suivre les actualités de sites "IT durable" tels que http://www.greenit.fr/
Il est temps de vivre au 21e siècle et de laisser loin derrière nous la révolution industrielle. L'ère a changé!
29/01/2009 à 11:09
|
|
Paris Java Camp 3
|
Eric Le Merdy
|
Je compte participer à ce BarCamp. Il y a 22 inscrits pour l'instant. Je suis le 23ème. Je pense qu'il faut tenter le samedi au moins une fois pour voir ce que ça donne. En semaine, il m'est déjà arrivé d'être un peu fatigué le soir.
Agrandir le plan
Au plaisir de vous voir samedi prochain.
29/01/2009 à 07:40
|
|
la Modélisation Métier est elle soluble dans le CRUD (et inversement)?
|
Guillaume Saint Etienne (yohm31)
|
http://docs.google.com/Doc?id=dhp3ggmx_115g524prcq
je vais lever une veille taupe, peut être un débat sans fin, mais il me parait important d'essayer de remettre les cartes sur table.
Plus les années avancent, et plus je me questionne sur où vont les technologies et les éditeurs ou les projets Open Source?
Et je me demande si on ne frôle parfois pas la schizophrénie...
Par exemple chez Microsoft, on nous dit : "CRUD, Only When You Can Afford It" ( http://msdn.microsoft.com/en-us/library/ms978509.aspx )
et après on met en avant ASP.NET Dynamic Data, qui permet de faire des applications 100% orientées CRUD.
Au début était l'informatique, les carte perforées, puis les disques durs. Et tout cela stockait des données, des données, des données.
Puis vint Merise en grand éclaireur de la pensée informatique industrielle (pendant que les scientifiques n'en avaient cure, et persistait dans une voie fonctionnelle).
Ce que faisaient alors les logiciels se résumait en 4 verbes: Créer, Lire, Modifier, Effacer des données (Create Read Update Delete, CRUD en anglais).
Et après de nombreux logiciels produits sur ce modèle, on s'est rendu compte que:
1) cela ne faisait que produire des logiciels d'informaticiens, c'est à dire pas du tout "User Friendly";
2) la complexité de la réalité dépasse le stade de ces 4 opérations basiques.
On a commencé à réfléchir du point de vue de l'utilisateur. On s'est aperçu qu'il avait un besoin de logiciel dans le but de l'assister dans l'exécution de son métier (et accessoirement que l'utilisateur était livré avec des yeux).
On a donc sorti une artillerie lourde pour décrire - MODELISER - les processus métier, issus du besoin réel de l'utilisateur, représentés bien souvent par des Scénarios Utilisateurs (merci UML).
Des paradigmes tels que le "Model Driven Design" ou le "Domain Driven Design" sont venus consolider cette nouvelle façon de faire du logiciel.
Pourtant le CRUD n'avait pas pour autant disparu...
On a l'habitude de dire qu'il ne faut pas exposer les données directement au dessus d'une couche métier, tels que ce que l'on peut trouver exposé par un Web Service, et pourtant nombre d'applications le font.
et Microsoft qui va droit dedans avec SdS et ASP.NET Dynamic Data.
"Data-driven application" redevient un mot que l'on peut prononcer sans honte.
Microsoft n'est pas le seul, avec la lame de fond qu'est REST, tout est orienté ressource, donc données, et les opérations permises sont encore au nombre de... 4!
Question légitime: comment exprimer du métier avec ce genre d'outils?
Comment faire dans cet incessant aller-retour entre une paroisse et une autre? Est-ce un éternel recommencement? (et piétinement?)
la suite sur http://docs.google.com/Doc?id=dhp3ggmx_115g524prcq
28/01/2009 à 17:17
|
|
la Recette du Gâteau Logiciel selon Microsoft
|
Guillaume Saint Etienne (yohm31)
|
article intégral sur http://docs.google.com/Doc?id=dhp3ggmx_113fv4x6tr7
the Microsoft's Application Architecture Guide 2.0
ou la Recette du Gâteau Logiciel selon Microsoft
commentée par votre serviteur
l'équipe P&P (Practices & Patterns) de Microsoft vient de sortir un bouquin en ligne (donc gratuit) à l'usage des architectes logiciels que je vous recommande chaudement: http://www.codeplex.com/AppArchGuide
Même si de larges pans de ce livre sont exclusivement tournés vers les technologies développées par MS, il y a de très bons passage très généralistes et utile au travail de n'importe quel architecte.
Je me propose de vous livrer et condenser ici 380 pages de précieux conseils.
A la lecture de cet ouvrage, il m'a semblé toujours judicieux de rappeler ce qui sont pour moi les fondements de l'art et la technique du développement logiciel en 2009:
Principes Clefs
(ou Grands Principes Métaphysiques, Tablettes de la Loi, Trucs de Grand Chef... comme vous voudrez)
on pourrait les voir comme une espèce de 6 commandements bibliques, quelque chose à inscrire dans les gènes de toute personne qui veut se lancer dans le développement d'un programme, qu'il s'agisse d'une application industrielle destinée à des milliers de personnes ou d'un programme pour machine à calculer, en passant par une RIA Web2.0 très à la mode.
• Divisez en plus petites unités fonctionnelles (Separate the areas of concern / SOC).
Diviser votre application en "features" ou "lots fonctionnels" de telle sorte que les fonctionnalités se recouvrent le moins possible (voire pas du tout).
Chaque "feature" (fonction) sera ainsi optimisée de manière indépendante des autres.
De même si une fonction ne rempli par complètement son rôle, ou bien si sa livraison est en echec, les autres fonctions en seront moins impactées.
Cette approche vous garanti que votre projet logiciel est facile à COMPRENDRE, puis à modéliser et à gérer durant tout son cycle de vie (et surtout sur les phases de maintenance et évolution)
Pour résumer: diviser, simplifier, découper. Discrétiser comme dirait mon prof de maths.
Prendre un problème complexe et le sub-diviser jusqu'à obtenir une somme de petits problèmes, chacun séparément étant évidement plus simples à résoudre que l'ensemble.
• Un composant/objet = Une responsabilité (et vice-versa).
Sachant qu'une responsabilité est soit technique, soit liée à une fonctionnalité (feature) décrite dans une spec (dans un monde idéal).
Les composants deviennent alors plus clair.
Bien sûr la notion même de ré-utilisabilité vient parfois rendre opaque une telle lecture. Car dès lors qu'un composant devient générique, son rôle peut s'opacifier. Il convient alors de bien prendre garde justement à ne pas aller vers une modélisation trop abstraite au risque de perdre ses collègues (et soi même) dans des méandres de réflexion trop personnelle. Toujours garder en tête l'utilisateur (ou l'utilisation) de la chose programmée.
"Un grand pouvoir implique de grandes responsabilités" lisait-on dans le comics Spider Man. C'est aussi vrai dans la fabrication d'un logiciel qui n'est pas une affaire à prendre à la légère.
Toute ligne de code à des effets. Et surtout l'effet de produire potentiellement un bug.
En limitant la responsabilité d'un module logiciel (j'appelle ici "module": une unité, une partie identifiable, interprétable, compilable ou encore une ressource) vous limiterez les sources d'erreurs.
Mais plus encore, il vous sera aisé de maintenir une "cartographie" de votre construction logicielle, c'est à dire savoir qu'est ce qui est responsable de quoi.
• Principe des boites noires (ou de moindre connaissance)
connu en Anglais sous les termes de: Principle of least knowledge. A component or an object should not know about internal
details of other components or objects. Also known as the Law of Demeter (LoD).
Chaque objet/composant/service est comme une boite noire (ou blanche). Il ne doit rien laisser transparaître de son fonctionnement interne.
Cette position est intéressante du point de vue extérieur à l'objet (ou au composant): un minimum de connaissance (voir aucune dans l'idéal) devrait être requis pour faire fonctionner un objet (ou le ré-utiliser).
En clair: celui-ci doit être tellement simple (et pas simpliste) à utiliser, tellement ER-GO-NO-MI-QUE, que il n'y a (presque) pas besoin de mode d'emploi.
Son usage doit tomber sous le sens.
Il doit être programmé en pensant à ceux qui vont s'en servir pour que toute manipulation en soit dramatiquement aisée.
S'il ne répond pas à ce critère, vous pouvez alors purement supprimer le composant en question.
* Ne ré-inventez pas la roue (ou tout autre chose) et ne vous répétez pas
en Anglais ça donne:
Don’t Repeat Yourself (DRY). Do not duplicate functionality within an application.
Dans le cadre de la séparation des responsabilité, il ne doit pas y avoir 2 objets/composants/services qui aient la même responsabilité.
En clair, veillez à ce que jamais une fonctionnalité ne soit dupliquée quelque part dans votre édifice final (ou solution ou même votre ensemble urbanisé d'informatique d'entreprise).
Ceci est un exercice délicat. Sans parler des problèmes complexes qui se posent dès que l'on veut partager des fonctionnalités avec d'autres équipes ou d'autres systèmes (problème de représentation, de vision, d'échange et de politiques - et ces politiques ne s'arrêtent pas à des histoires de sécurité mais revêtent bien des fois des apparences de politique civile - voir guerrière dans certaines organisation ... bref!).
Un exercice délicat, disais-je, ne serait-ce que tenter de l'appliquer à soi-même.
Il est difficile de donner un recette pour être sûr que ce précepte soit constamment appliqué.
Mais j'ai appris récemment une bonne approche: supprimer du code.
Oui, oui, vous avez bien lu. L'idée est de considérer que toute ligne de code écrite est mauvaise.
Elle l'est par définition, car derrière une ligne se cache un bug.
Ensuite, relisez (ou faites relire) votre code en vous disant "est-ce que cette fonction (ou feature) n'existe pas déjà ailleurs"?
Pour arriver à faire une telle lecture de votre solution logicielle (code ou intégration de composants/service), il est indispensable d'en posseder une cartographie particulièrement claire et bien documentée.
Dans les effets positifs, on sait bien qu'une telle mesure rend les changements plus simples à gérer ainsi que la maintenance corrective de l'application ou la solution.
* Ne passez pas votre vie à faire du Design / Modélisation
"Avoid doing all your design upfront (BDUF). "
Modéliser c'est bien. Agir c'est mieux. Mais difficile de trouver le juste équilibre. On ne va pas non plus revenir au RAD des années 80.
Combinez les approches. MDA ? le Modèle avant tout? TDD? les tests et rien que les tests?
Peut être un peu de tout ça.
En tout cas, ne vous laissez pas bloquer.
Un Design genre "Draft" (brouillon) ou "squetch" (exquisse) peut parfois être suffisant dans nombre de projets.
Si les spécifications sont peu claires ou très glissantes, alors partez sur du code dirigé par les tests.
Mais n'oubliez pas de tenir un modèle à jour pour avoir une bonne cartographie du projet.
Les modèles évoluent, et parfois aussi vite que le code. L'art est de garder le tout synchronisé!
(Re)Mettez-en des couches!
Différence entre un Tiers et une Couche (Tiers/Layer)
Une couche est un regroupement logique de "composants" logiciels.
Une bonne analogie est le modèle en couche OSI que j'ai déjà mentionné dans les colonnes.
La séparation de communication entre N et N+1 est complètement vérifiée (ou doit l'être).
La suite de l'article intégral sur http://docs.google.com/Doc?id=dhp3ggmx_113fv4x6tr7
15/01/2009 à 15:42
|
|
S'initier au développement Ubuntu en Français ? C'est possible !
|
Christophe Sauthier (huats)
|
Un des principaux reproches qui revient souvent lorsque on parle de développement Ubuntu et de manière générale dans tous les gros projets libres est que toute la communication s'effectue en anglais. Partant de ce principe, plusieurs initiatives ont vu le jour, comme par exemple l'excellentissime classroom française issu du collectif u-classroom .
Ce même thème va être abordé dans le cadre de la prochaine Ubuntu Developper Week qui se déroulera la semaine prochaine (du 19 au 23 Janvier 2009). En effet cet évenement commencera lundi 19 de 17h à 19h par des sessions parallèles dans plusieurs langues (Anglais, Allemand, Espagnol, Français, Italien), pour permettre au plus grand nombre de s'initier aux méthodes de travail dans le cadre du développement Ubuntu et ainsi mieux comprendre la suite des sessions...
Bien sûr le français sera de la partie, puisqu'une session animée par plusieurs développeurs francophones, se tiendra sur le channel IRC #ubuntu-fr-classroom.
Et si jamais vous ne savez pas trop comment utiliser l'IRC, le site ubuntu-fr possède un système qui vous permet de vous connecter sur cette salle (#ubuntu-fr-classroom) sans installer de logiciel sur votre ordinateur.
Aucune raison valable donc pour rater le coup d'envoi de cette nouvelle année de cours et leçons...
15/01/2009 à 13:35
|
|
How to build X-Moto for the PSP
|
Antoine Jacquet (Royale)
|
Here is a quick tutorial to explain how you can build X-Moto for the PSP from source code.
This is only required if you want to contribute to the development.
If you just want to play, you can download the PSP port directly.
I assume you are running a Debian or Ubuntu Linux system, but it should be easy to use these instructions for another Linux distribution.
Basically, this will build a cross-compiler on your computer, with all the libraries needed by X-Moto.
Depending on your hardware, this process can be quite long (about 2 hours)...
1. Build the toolchain
sudo apt-get install subversion
svn co svn://svn.pspdev.org/psp/trunk/psptoolchain
cd psptoolchain
Follow the instructions in the readme-ubuntu.txt file (install required packages for building process and edit your .bashrc file to add the path).
sudo ./toolchain-sudo.sh
cd ..
2. Install DA SDK
This step might be optional in the future, but currently it is needed because some libraries depend on headers and libraries not available in the standard SDK.
wget http://www.gwailos.com/downloads/401M33-2.rar
unrar x 401M33-2.rar
sudo cp SDK/include/kubridge.h /usr/local/pspdev/psp/sdk/include/
sudo cp SDK/lib/libpspkubridge.a /usr/local/pspdev/psp/sdk/lib/
3. Build the libraries
svn co svn://svn.pspdev.org/psp/trunk/psplibraries
cd psplibraries
Follow the instructions in the readme-ubuntu.txt file (install required packages for building process).
sudo ./libraries-sudo.sh
cd..
4. Build libode
svn co svn://svn.ps2dev.org/psp/trunk/ode
cd ode
Edit the config/makefile.psp file and append "-lpspvfpu" to the LINK_OPENGL variable.
make
sudo cp -rf include/* /usr/local/pspdev/psp/include/
sudo cp -rf lib/* /usr/local/pspdev/psp/lib/
cd ..
5. Build libcurl
svn co svn://svn.pspdev.org/pspware/trunk/libcurl/
cd libcurl
LDFLAGS="-L$(psp-config --psp-prefix)/lib -L$(psp-config --pspsdk-path)/lib" \
LIBS="-lc -lpspnet_inet -lpspnet_resolver -lpspuser" \
./configure --host=psp --disable-shared --prefix=$(psp-config --psp-prefix)
make CFLAGS=-G0
sudo PATH=/usr/local/pspdev/bin/:$PATH make install
cd ..
6. Build X-Moto-PSP
Download X-Moto version 0.4.2 :
wget http://download.tuxfamily.org/xmoto/xmoto/0.4.2/xmoto-0.4.2-src.tar.gz
tar zxvf xmoto-0.4.2-src.tar.gz
Apply the X-Moto-PSP 0.2 patch :
wget http://royale.zerezo.com/psp/X-Moto-PSP-0.2.patch.bz2
bunzip2 X-Moto-PSP-0.2.patch.bz2
cd xmoto-0.4.2
patch -p1 < ../X-Moto-PSP-0.2.patch
And finally build X-Moto for the PSP :
cd src
make -f Makefile.psp
cd ../..
You should end up with a "EBOOT.PBP" file in the src folder, which is the PSP binary for X-Moto.
7. Copy X-Moto-PSP to your PSP
mkdir X-Moto-PSP
cp xmoto-0.4.2/readme.txt xmoto-0.4.2/changes.txt xmoto-0.4.2/src/EBOOT.PBP X-Moto-PSP
cp -r xmoto-0.4.2/bin/xmoto.bin xmoto-0.4.2/bin/Textures xmoto-0.4.2/po X-Moto-PSP
Copy a dummy config folder as well :
cp -rf ~/.xmoto X-Moto-PSP/config
Edit the X-Moto-PSP/config/config.dat file to change the resolution to 480x272 fullscreen :
var name="DisplayWidth" value="480"
var name="DisplayHeight" value="272"
var name="DisplayBPP" value="24"
var name="DisplayWindowed" value="false"
var name="MenuGraphics" value="Low"
var name="GameGraphics" value="Low"
Finally, copy the X-Moto-PSP folder to your PSP in psp/game.
You will need a custom firmware on your PSP in order to run the game.
Feel free to leave a comment if you spot any issue in this tutorial
29/12/2008 à 10:41
|
|
Et de 2 !
|
Antoine Jacquet (Royale)
|
Le nouveau noyau 2.6.28 est sorti, et il inclut mon driver tuner TNT
royale@fanta:~$ wget ftp://ftp.free.fr/mirrors/ftp.kernel.org/linux/kernel/v2.6/linux-2.6.28.tar.bz2
[...]
18:26:40 (10.14 MB/s) - « linux-2.6.28.tar.bz2 » sauvegardé [52665364]
royale@fanta:~$ tar jxf linux-2.6.28.tar.bz2
royale@fanta:~$ fgrep -lr Jacquet linux-2.6.28/drivers/
linux-2.6.28/drivers/media/dvb/dvb-usb/dtv5100.c
linux-2.6.28/drivers/media/dvb/dvb-usb/dtv5100.h
linux-2.6.28/drivers/media/video/zr364xx.c
28/12/2008 à 21:11
|
|