Publié le 11 Juin 2008

Prenez un tableau noir.
Saupoudrez le de quelques milliers de particules rouges et bleues.
Posez-y délicatement une douzaine d'attracteur à particules et de deux douzaine de répulseurs à particules.
Faites chauffer le CPU et regarder le mijoter.
Mmmmm.... c'est beau.
Note 1 : Cliquez sur l'image pour charger l'applet java et admirer l'évolution en temps réel.
Note 2 : Attention, c'est addictif ;)


Edit : un screenshot de la V3 en haute resolution, ici : http://www.electrosphere.fr/java/attractor-XL.jpg

Voir les commentaires

Rédigé par kerunix Flan

Publié dans #y'a de l'idée

Repost0

Publié le 11 Juin 2008

En mathématiques, une chaîne de Markov est un processus stochastique possédant la propriété markovienne. Dans un tel processus, la prédiction du futur à partir du présent ne nécessite pas la connaissance du passé. Elles ont pris le nom de leur découvreur, Andrei Markov.

Merci pour l'info.

...

Un peu plus (ou moins) sérieusement, les chaînes de Markov permettent de faire des trucs assez rigolo. Comme generer du texte, après une période d'apprentissage et même tenter (et échouer pitoyablement) de tenir une conversation. Il peut arriver qu'il arrive  à dire un truc sencé, mais ca sera le pur fruit du hasard... ou presque.

Avant d'aller plus en avant, je vais reprendre l'exemple de wikipedia :



On prend le cas d'un hamster, amnésique (c'est important, voir la definition au debut du post), qui ne se rappelle pas de ce qu'il faisait la minute d'avant, et qui est capable de faire 3 choses :
- dormir dans ses copeaux.
- manger.
- jouer dans sa roue.

Ces 3 "états" sont representés par les points bleus.
Les fleches représentent le passage d'un état a l'autre.
Les chiffres representent les probabilités de passage d'un etat a l'autre, 1 etant 100%

On considère que toutes les minutes on va laisser le hasard decider de ce qu'il va faire la minute suivante.
On voit qu'il y a des fleches qui pointent vers elle meme, ce qui veut dire "on continue la meme activité" (on ne change pas d'etat).

A la première minute on va considerer que le hamster dort dans ses copeaux (il faut bien partir d'un etat initial).
A la minute suivante :
- il a 90% de chance de continuer a dormir (la fleche 0.9 qui pointe sur elle même)
- 5% de chance de manger
- 5% de chance de faire de l'exercice

On lance les dés... hop ! Il va manger.
II mange pendant 1 minute.
A la minute suivant, on recommence.
On constate que l'etat "mangeoire" n'a pas de fleche vers elle-même, cela veut dire qu'il ne mangera jamais pendant 2 minute d'affilée.
30% de chance d'aller faire de l'exerice.
70% de chance d'aller dormir
0% de continuer a manger.

Je vous laisse deviner pour l'etat "exercice", ca marche pareil.


Maintenant... comment appliquer cela à la generation de texte ?
Pas si compliqué... On remplace les etats par des mots.

prenons un texte d'exemple pour illustrer mon propos :
Bonjour, ca va ?
Bonjour, ca roule !
Super, ca fait plaisir de te voir.


Bon, j'ai simplifié a l'extreme hein. Pour pouvoir faire les calculs de tête.
On constate :
"bonjour" a 100% de chance d'etre suivis du mot "ca"
"ca" a 33% de chance d'etre suivi du mot "va", 33% du mot "roule", 33% du mot "fait".
"super" a 100% de chance d'etre suivi du mot  "ca".
Et ainsi de suite... pour chaque mot. Tache horriblement répetitive, domaine dans lequel l'ordinateur est très largement superieur au cerveau humain. Donc c'est pas un problème.

Ensuite, on prend un mot de depart, on choisi le mot suivant (en tenant compte des probabilité), et on recommence a partir de ce 2ème mot pour en choisir un 3ème. puis un 4ème a partir du 3ème, et etc ...

Ce generateur ne connait aucune règle grammaticale, aucune règle syntaxique, il n'a pas la moindre idée de ce qu'il écrit. Quand il choisi le 3ème mot, il ne tiens pas compte du 1er. Autrement dit, il choisi le mot qui suit, sans tenir compte du mot qui precede. Ce qui peut generer des phrases particulièrement décousue ;)
Mais... étant donné qu'il se base sur ce qu'il a appris, il peut arriver qu'il genere des phrases qui tiennent la route.

Par exemple, j'fais bouffer "Discours de la methode" descarte à un tel generateur et il m'a pondu :
Or j'avoue que les mouvements dans lesquels je ne me reste plus distinctement connoître, comme indivisible;

Bon... c'est pas le meilleur exemple... Descarte étant déjà particulierement complexe à la base, ca ne pouvai pas donner grand chose de bon.

Si on recommence mais avec le contenu de ce post, c'est deja mieux :
70% de ce qui est très largement superieur au cerveau humain.
c'est pas de manger - il choisi le hamster dort dans sa roue.
"super" a 90% de faire les mouvements dans lesquels je vous laisse deviner pour l'etat "exercice", ca marche pareil.


Y'a du mieux !!
Cependant le générateur demande beaucoup d'amélioration, sans toucher au principe de base.
Par exemple, il considère "bonjour" et "bonjour," (avec une virgule) comme etant 2 mots differents, ce qui fout en l'air les probabilités. Mais ca se corrige (considerer chaque ponctuation comme un mot a part entière et les faire entrer dans les tables de probabilités, ignorer completement les ponctuations ouvrante-fermante comme les parenthèse, les guillemets.

Pour eviter ce genre de choses : 0% de chance de chance d'etre suivi du post), qui veut dire qu'il va laisser le passage d'un hamster, amnésique (c'est important, voir la meme activité" (on ne change pas le cas d'un hamster, amnésique (c'est important, voir la definition au cerveau humain.

ou : On prend un tel generateur ne connait aucune règle grammaticale, aucune règle grammaticale, aucune règle grammaticale, aucune règle syntaxique, il peut arriver qu'il faisait la base, ca roule ! Super, ca va faire 3 "états" sont representés par exemple, j'fais bouffer "Discours de texte ? Pas un mot de depart, on prend un mot qui ne change pas compte du 1er.

A suivre dans la partie 2 : comment implémenter ca dans un programme. (on va y retrouver des jolies structures comme dans l'article sur 010 Editor. (en essayant de simplifier au mieux).

Voir les commentaires

Rédigé par kerunix Flan

Publié dans #y'a de l'idée

Repost0

Publié le 10 Juin 2008

Un des gros problème de la francogrid à été pendant longtemps son système d'inscription.
Le problème est maintenant reglé et l'inscription devrait se passer sans encombre.


Cela se passe ici : http://user.francogrid.com/index.php?page=create

Si vous rencontrez des problèmes d'inscription merci de le signaler en commentaire sur ce blog, avec le detail des problèmes et/ou diffcultés rencontrées.

Un autre système est en cours de réalisation, encore plus simple... et bien mieux adapté.

Voir les commentaires

Rédigé par kerunix Flan

Publié dans #Secondlife

Repost0

Publié le 10 Juin 2008


(note : le dessin viens de ce site antivoiture, c'est pas de moi)


A l'heure actuelle, on parle de fibre optique et du très haut debit en général.
Le gouverment s'est rendu compte qu'il était urgent de cabler en fibre optique toutes les villes de plus de 100.000 habitants. C'est plutot bien ! Mais ...

Est-ce vraiment important ? Je veux dire, est-il vraiment necessaire de faire un gros effort pour que les citadins aient un accés au très haut-debit, avec 100Mb/s ? Oui et non. C'est important pour le developpement economique, creer des nouveaux marchés, utiliser de nouveaux services comme le VOD et la TVHD-sur-IP et des trucs du genre. Mais pas vital au pint d'en faire une priorité gouvernementale.

Ce qui est très important a l'heure actuelle, c'est d'economiser l'energie et tout particulierement le pétrole. Donc limiter les déplacements en voiture par exemple et favoriser le télétravail quand le metier le permet. ( *shameless-plug* : en utilisant les univers virtuels par exemple).

Quand on habite en ville c'est plutot facile, à Toulouse je me déplacai en roller, en bus, en metro.
Le télétravail n'est pas une priorité en ville. Et actuellement l'ADSL dégroupé permet d'obtenir des debits de 20Mb/s qui sont très largement suffisant pour une réunion virtuelle de plus d'une centaine de personne.

Le problème vient plutot des campagnes, des petites villes et des "grande banlieue", là c'est deja heureux si on arrive à avoir du 2Mb/s. Ce qui n'est pas encore trop problématique à l'heure actuelle, mais qui risque de devenir très juste, très rapidement. Et c'est justement les campagnes qui ont le plus besoin de limiter les deplacements (car tout est toujours plus loin, la densité est très faible, et donc les déplacements plus long et plus couteux), de privilegier le télétravail, et donc d'avoir un peu plus de debit... pas la fibre optique non, mais au moins du 10Mb/s ca serait déjà sympa.

Si rien n'est fait, la hausse du prix du pétrole vous nous obliger a nous entasser en ville, déserter les campagnes.
Ca serait malheureux qu'a l'heure ou l'écologie est plus important que jamais, on soit obligé d'aller s'entasser dans des tours de beton.

Voir les commentaires

Rédigé par kerunix Flan

Publié dans #y'a de l'idée

Repost0

Publié le 10 Juin 2008

Je commence a m'apercevoir que je communiquai très peu, voire pas du tout, en dehors de Second Life. C'est certe un bon mode de communication, mais etant donné ma situation dans SL c'etait un peu ... limité. "Bonjour, ca va, merci. J'suis occupé, a+"


Maintenant que je suis à la "retraite", j'ai beaucoup plus de temps a consacrer à autre chose. SL ne me manque pas le moins du monde et je n'ai pas l'impression de "surcompenser" en me rabatant sur le blog. Avant je n'avais pas le temps, maintenant je l'ai. C'est aussi simple que ca.

Un autre soucis, venant encore de ma situation dans SL, était l'influence de mes écrits sur Second Life. Qui me limitai parfois dans ce que j'avais envie d'écrire. Un peu comme les blogs de CEO, mais a une bien moindre echelle bien sur ;)

Donc je vais poster plus souvent, c'est déjà le cas d'ailleur, et j'ai bien envie d'en faire ma Resolution N°2.

Voir les commentaires

Rédigé par kerunix Flan

Publié dans #Secondlife

Repost0

Publié le 10 Juin 2008

On pourrait s'imaginer que je ne pars pas gagnant avec mon keru.org et pourtant je m'y sens bien.Pour être vraiment "in" j'aurai du prendre un nom de domaine du genre keruo.com. Sauf que :
- C'est déjà pris
- C'est le nom du scénariste qui a réalisé le film "le roi des singes". Et que le parallèle avec le community managment serait fort mal placé ;)

De plus le .com ne veut pas dire "communication", ni "communauté" mais "commercial".
Ce blog n'a rien de commercial et il est orienté communauté.
Le .org est donc bien plus adapté.


C'est peut être un peu ringard de respecter les standards et recommandations du début d'internet, mais c'est comme ca qu'internet fonctionne : à base de standards et de recommandations.

Vieux jeu, oldschool, mais cela a survecu à plusieurs generations de décideurs pressés révolutions technologiques, et je ne suis pas de ceux qu'on attrape à coup de bling-bling.

En plus keru.org à un gros avantage pour la conquête du saint-graal de la première page de Google. En cherchant "keru" sur google, on tombe sur une association de pêcheurs et keru.com est a vendre (surement très cher, comme tous les domaines en 4 lettres).

Je change la forme... mais pas le fond.
Et passer en .com ou changer de nom(eo) c'est un changement de fOOnd que je me refuse à faire.
Et il y aura beaucoup d'autres choses que je me refuserai à faire : Etre CorpoHype, ok, mais pas au point de changer mon identité numérique .

Resolution N°1 : Garder keru.org.


Voir les commentaires

Rédigé par kerunix Flan

Publié dans #Exercice de style

Repost0

Publié le 10 Juin 2008

Au fil du temps, j'ai appris que la forme etait au moins tout aussi importante que le fond. Illuster un blog par exemple, c'est important. De préference il faut une illustration en rapport avec le texte, autrement ce n'est plus une illustration hein, c'est du décor. L'image à gauche là, par exemple, montre que même si t'es moche, à partir du moment ou t'as le look corporate tu pourras lever toutes les babes du campus. Parce que le type, là, il a la classe. Le laptop, le pda, le plume, 3 dossiers, la chemise assortie au dossier, le col ouvert-mais-pas-trop, ... Avec tout ca elles font même plus attention a sa calvitie et a son sourire con.

Moi je dis : y'a respect là quand-même.


Il existe tout un tas de technique dans ce genre, des vieux machins usés jusqu'à la corde que le monde entier s'évertue a reutiliser à tour de bras : faire du buzz, du teasing, des trackbacks, des syndications, des blogs de blogs, des mise en scène d'autocongratulations à peine déguisée, des crossposts, et tout un tas de trucs qui portent des noms plus ou moins specieux, sinon technohype, pour monter en grade de facon totalement artificielle.

Et plus c'est gros, mieux ca passe.
Alors je vais tenter un truc, je vais me prendre au jeu et voir si ca marche vraiment !
Refaire le design du blog, parler de trucs a la mode, écrire des trucs totalements inutiles mais qui donnent l'impression que je suis vraiment cool, à la pointe de la technologie du Grand 'Ternet, que je sais tout le temps de quoi je parle et que tout le monde reconnait mon  expertise sur le community managment, les technologies de l'information, les reseaux sociaux, et de tout un tas de trucs ... et de bidules !

ouai, j'suis comme ca moi !

Voir les commentaires

Rédigé par kerunix Flan

Publié dans #Exercice de style

Repost0

Publié le 9 Juin 2008

En plus de ma multitude de server linux j'ai 1 serveur windows 2008 server.

Et bien... je l'aime bien ! Je dirai, enfin un OS Microsoft pour les sysadmin !
Les precedentes moutures de windows server ressemblaient plus a des assemblages de "features blingbling" destinées a motiver le "decideur pressé" a acheter du windows plutot qu'a se soucier vraiment des problèmes de tous les jours d'un administrateur.

Maintenant on a tout un tas de modules, avec des vrais fonctionalités, et on peut se debarasser des modules qu'on utilise pas, simplement, sans avoir 5000 de dependances avec des trucs qui encombrent l'administration alors qu'elles ne servent pas.

Ils ont meme poussé jusqu'a sortir l'edition "core". (pour ne pas dire "hardcore").
Windows 2008 Server Core c'est, un shell. C'est tout, rien d'autre.
Pas d'explorateur machinbidule, pas de menu demarrer, et tout ce genre de trucs qui n'ont qu'un tres vague interet de le fonctionnement quotidien d'un serveur.

Je n'utilise pas la version core, ca demande une connaissance de windows que je n'ai pas, et le shell est vraiment pourrave. De coté la Microsoft a encore pas mal de boulot, mais je dirai que, enfin, ils prennent la bonne direction.

Je pense aussi que cela est du au fait que beaucoup de monde apprend maintenant l'administration systeme sur du linux, et non pas du windows. Que dans la tete des gens, maintenant, un systeme optimisé est un systeme minimaliste, qui ne fait que ce qu'on lui demande de faire, et rien d'autre.

Ca semble etre une question de bon-sens et microsoft a fini par le remarquer ;)
Perso j'ai toujours été pour les logiciels libres, pas pour des raisons "philosophiques", mais pour des raisons "techniques". Si un logiciel ou un OS proprio fait mieux qu'un logiciel ou un OS libre, ca ne me derange pas de l'utiliser. A condition que le prix en vaille le coup bien sur.
Pour l'instant l'avantage est nettement du coté des logiciels libres dans la majorité des cas. Et je reste avec ma tripotée de serveurs linux. Mais contrairement a windows 2003 que j'ai jeté au bout d'une semaine, je garde mon Win2008, simplement parce qu'il fontcionne et qu'il fait ce que je lui demande de faire, au meme titre que mes serveurs linux.

Voir les commentaires

Rédigé par kerunix Flan

Publié dans #y'a de l'idée

Repost0

Publié le 9 Juin 2008

Vous avez été nombreux a me contacter ce weekend (et ce lundi, j'viens de me lever :p ).
Et bien j'etais... pas loin, mais pas la :)

Pas une seule seconde je me suis soucié de secondlife et de l'avenir, et ca fait du bien.

J'ai joué (et terminé) a "FrontLine : fuel of war".
Ca se passe en 2024, y'a preque plus de petrole et le monde se bat autour des quelques puits restants.
On pensait que "ils" allaient trouvé des solutions, mais le monde etait bien trop occupé a survivre pour chercher des solutions alternatives au petrole. Famine, Terrorisme, plus de petrole pour se deplacer, ...
Un FPS bien bourrin avec le moteur Unreal Engine, des vehicules, des drones, beaucoup d'ennemis. On a une team de PNJ avec nous, ils sont pas très futé et faut pas trop compter sur eux, mais ca occupe parfois l'ennemi ("les rouges", alliance russie-chine).

Du bon defouloir.


J'ai enchainé sur "Supreme Commander : Gold", avec l'extension "Forged Alliance".
Celui la je l'ai pas fini ;)
Par rapport au premier supcom' que j'ai connu, ils ont revu l'interface et c'est *beaucoup* mieux. Surtout en dual screen ;)
Le jeu ne rame pas avec 500 unités par camp (et 4 camps) et ca fait plaisir d'avoir un jeu reellement optimisé multi-core.

Contrairement aux campagnes du premier supcom' il n'y a pas de lente evolution du niveau technologique, des le premier chaptitre tu peux te bastonner a coup de Nv3 et d'experimentaux. Et y'a plutot interet a le faire.

Le jeu avance par etape, avec un partie de la carte seulement au depart, pour la totalité de la carte a la fin. A chaque objectif accomplis le carte s'aggrandi.
Je suis plutot dans le genre ou je n'avance qu'a condition d'avoir une superiorité numerique et technologique écrasante. 90% de mes parties sont : "Defense monstrueuse" + "Artillerie a gogo". Et un gros rush massif pour eliminer les restes laissés par l'artillerie. Ce qui fait des partie de 3h par carte, ca marche uniquement contre l'IA qui n'est pas trop du genre a prendre des initiatives.
Par contre les aggrandissement ce carte (passage a un sous-chapitre suivant) sont du genre violent. Il vaut meiux sauvegarder avant de finaliser chaque objectif, car les surprises sont parfois ... de tailles (rush de robot experimentaux, attaque nucleaire, ...).

Autant avec le premier supcom je n'avais pas tout a fait retrouvé l'ambiance de "total anihilation", autant la on est en plein dedans. Du bonheur ;)

Voir les commentaires

Rédigé par kerunix Flan

Repost0

Publié le 8 Juin 2008

Je reviens un petit peu sur 010 Editor et le format de texture.entries.

Ou je vais compliquer les choses... pour les rendres plus simple d'utilisation ;)
(L'informaticien est en grand faineant, mais il est capable de deployer une grande quantité d'energie afin de faire faire a l'ordinateur le maximum de boulot possible, et le minimum pour lui).


On va faire en sorte que la structure de textures.entries soit un peu plus lisible, voir utilisable a d'autres fins.
En particulier a propos de l'UUID.
Une UUID comme on la connait est sous cette forme : "a822ff2b-ff02-461d-b45d-dcd10a2de0c2"

C'est un ensemble d'octets au format en hexadecimal, separé par des "-" a certains endroits (pour des raisons qui m'echappent).

Hors, avec l'exemple de la partie 1, 010 Editor affiche une serie de chiffres decimaux qui n'ont aucun interets.
LLUUID stocke l'UUID, est le resultat presenté ne ressemble en rien a une UUID, mais a un tableau de 16 elements au format decimal.
Logique, c'est ce qu'on lui a demandé de faire.

Pour rappel, on a defini LLUID de cette facon : typedef ubyte LLUUID[16];
Et... c'est tres bien comme ca. il n'existe pas de type "chaine de caracteres en hexadecimal  separé par des tirets de temps en temps". C'est juste une histoire de format de presentation, pas de format de données.


Il est possible de dire a 010 Editor : "A chaque fois que tu va lire cette donnée, tu vas faire le travail que je vais te demander et qui est decrit dans une fonction que je vais te decrire".

Dans la partie 1 on a declaré et utilisé directement les structures. pour des raisons de simplicité.
Cette fois, de la meme maniere qu'on a créé le type "LLUID" (tableau de 16 ubyte) on va creer un type de structure, auquel on va rajouter un mot clé pour dire a 010 ce qu'il faudra faire a chaque fois qu'il lira ce type.

typedef ubyte LLUUID[16];

typedef struct
{
    float mVersion;
    uint32 mEntries;
} EntriesHeader;

typedef struct
{
    LLUUID mID;
    int32 mSize;
    time_t mTime;
} EntriesBody <read=ReadEntriesBody>;


A chaque lecture de EntriesBody, 010 Editor va executer la fonction "ReadEntriesBody".
Que l'on declare ici :

string ReadEntriesBody( EntriesBody &body)
{
    string s;
 SPrintf(s,"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",body.mID[0],body.mID[1],body.mID[2],body.mID[3],body.mID[4],body.mID[5],body.mID[6],body.mID[7],body.mID[8],body.mID[9],body.mID[10],body.mID[11],body.mID[12],body.mID[13],body.mID[14],body.mID[15]);
    return s;
}


La fonction Sprintf permet d'afficher un texte dans un format specifié.
Pour resumer :
"%02x" veut dire "affiche la donnée te correpondant (body.mID[0] pour la premier %02x, et ainsi de suite) au format hexadimal, sur 2 caracteres".
La syntaxe des regles de formatage pour Sprintf est un standard decrit partout sur le web (c'est la meme regle que le bon vieux "printf" du langage C (ou autre langages)).

On a declaré nos nouveaux, type, reste a les utiliser, on rajoute a la fin :
EntriesHeader header;
EntriesBody body[header.mEntries];   

Et voila. On se retrouve avec 010 Editor qui nous affiche les UUID au format qu'on connais. (et qui se trouve etre aussi le format du nom de fichier que l'ont peut trouver dans les reperoites de texture du cache secondlife).

cafééééééééééééééé !

Voir les commentaires

Rédigé par kerunix Flan

Publié dans #Secondlife

Repost0