11 janvier 2011

Cusine jap

Un film d'animation sur un jeune padawan et son maitre... mais pas au katana.. pour changer un peu.
Cuisine jap.... ou la vraie histoire de l'invention de la cuisine japonaise...


Cuisine Jap from beckoury on Vimeo.

10 janvier 2011

Calendrier 2011

Je suis tombée sur un beau calendrier en forme de dodécaèdre... A la base un calendrier Ubuntu.... donc comme il était en creative commons, je me suis dépêchée de le prendre et de l'adapter au dojo.
Et donc voici pour 2011 : le calendrier en 3D Eternal Blades !!

Donc il suffit d'imprimer l'image ci-dessous, et de la découper, de la plier et de coller où il faut.
On plie sur les pointillés et on découpe sur les morceaux droits, sauf au centre. Mais on comprends vite là où il faut faire...

Alors à vos ciseaux et tubes de colle...
Et bonne année !!!




Voici ce que cela peut donner (autre modèle de calendrier : ici le ubuntu) :




J'ai pas eu le temps de faire le calendrier Eternal Blades, sinon j'en aurais mis la photo.

Les pages d'origine :



Le calendrier original "Calendario Ubuntu - Ubuntu Calendar" by byroncorrales est sous licence Creative Commons Attribution-Share Alike 3.0. Il en est de même pour la traduction française sur SpreadUbuntu, et bien évidemment du modèle Eternal Blades


Si jamais le modèle Eternal Blades n'avait pas une résolution assez forte et que l'impression était mauvaise, dites le moi et je referai l'image, je n'ai pas eu le temps de le faire, trop pressée que j'étais de vous le donner.

Bon collage

9 janvier 2011

LSL : Scripts et mémoire

English version

Pour reprendre un peu l'esprit du précédent post sur l'analyse des katanas C:SI en regard du nombre de script et de mémoire allouée, plusieurs petits point de réflexion.

Je peux avoir un objet avec un seul script qui consomme beaucoup de mémoire. Par exemple : je définis une liste et mon script ajoute des valeurs à cette liste... Les valeurs étant stockées dans le script, sa taille va augmenter.

Pour plus d'information sur la mémoire consommée : http://wiki.secondlife.com/wiki/LSL_Script_Memory

De la même manière un petit script peut être très gourmand en temps processeur.

On parle beaucoup en ce moment dans le petit monde du C:SI de détection du nombre de scripts et de mémoire allouée, mais n'oublions pas q'un script gourmand en mémoire peut consommer peut de temps processeur sim, et qu'un petit script peut être une grosse usine a gaz.

La notion de nombre de script, mémoire allouée, est juste une indication.

Essayer de définir des limites raisonnables peut parfois être une erreur.
Pour tout ceux qui veulent approfondir la chose, voici un petit script tout simple. A placer dans un objet. Quand on clique dessus, il donne le nom de l'avatar, le nombre de scripts dans les objets portés et la mémoire allouée pour tout cela.

Il s'appuie sur la fonction suivante : llGetObjectDetails
Pour obtenir les infos souhaitées, je lui passe en paramètres : OBJECT_RUNNING_SCRIPT_COUNT et OBJECT_SCRIPT_MEMORY

Voici le code :


default {

touch_start(integer total_number) {
list infos = llGetObjectDetails(llDetectedKey(0),[OBJECT_RUNNING_SCRIPT_COUNT,OBJECT_SCRIPT_MEMORY]);

//avatar name
string msg = llDetectedName(0);

// Scripts count
msg += " - " + llList2String(infos, 0) + " scripts - " ;

// memorry allocated
msg += (string)((integer)llList2String(infos, 1) / 1024) + " Ko";

// display all informations
llSetText(msg, <1.0,1.0,1.0>, 1.0);
}
}








English version (quick and not litteral translation)

To continue previous post on analysis of C: SI katanas compared to the number of script and memory allocated, several small reflections.

I can have an object with a single script that consumes lots of memory. For example: I define a list and my script adds values to this list ... The values are stored in the script, its size will increase.

For more information about memory consumption : http://wiki.secondlife.com/wiki/LSL_Script_Memory

Similarly, a small script can be very CPU-intensive.

In the small world of C: SI, there is much talk now about detecting how many script you wear and allocated memory.
But do not forget that a heavy memory script can be low lag, and a little script can use lot's of CPU time.

The concept of a number of scripts, allocated memory, is just an indication.

Try to set reasonable limits can sometimes be a mistake.

I give you a simple script. Place in an object. When clicked, it gives the name of avatar, number of scripts and the memory allocated .

It is based on the following function: llGetObjectDetails
To obtain the desired information, I use this parameters : OBJECT_RUNNING_SCRIPT_COUNT and OBJECT_SCRIPT_MEMORY

Here's the code:


default {

touch_start(integer total_number) {
list infos = llGetObjectDetails(llDetectedKey(0),[OBJECT_RUNNING_SCRIPT_COUNT,OBJECT_SCRIPT_MEMORY]);

//avatar name
string msg = llDetectedName(0);

// Scripts count
msg += " - " + llList2String(infos, 0) + " scripts - " ;

// memorry allocated
msg += (string)((integer)llList2String(infos, 1) / 1024) + " Ko";

// display all informations
llSetText(msg, <1.0,1.0,1.0>, 1.0);
}
}

Enjoy, use, modifiy, adapt it....

4 janvier 2011

Scripts et mémoire - Katanas C:SI

English version here

Je me suis amusée à réaliser un outil de mesure du nombre de scripts que portent sur lui un avatar et ce que cela consomme en espace mémoire.

Il existe en effet une fonction du LSL permettant d'obtenir ces données.
Si on donne à celle-ci en paramètre la clé UUID d'un avatar, elle nous retourne les valeurs suivantes (je cite le wiki de SecondLife) :
  • Running script : Gets the number of running scripts attached to the object or agent (renvoie le nombre de scripts actifs attachés à l'objet ou l'agent, dans notre cas, l'avatar)
  • Script memory : Gets the total amount of script memory allocated to the object or agent, in bytes (renvoie le montant total de mémoire alloué à l'objet ou l'agent)
Dans le cas d'un agent, ici, d'un avatar, cela prend en compte tous les objets attachés, que ce soit sur soi ou en hud.

Je me suis donc amusée à mesurer nos armes C:SI. Profitant de l'occasion pour mesurer le cout en ARC des katanas.


Protocole de mesure :
  • Les mesures sont faites en portant l'arme dans la main, le fourreau, et le hud CSI
  • Pour la mesure de l'ARC (Avatar Rendering Cost), l'arme est dégainée, comme en situation de combat.
Il y a une variation d'une amplitude maximale de +/- 100 entre l'ARC arme dans le foureau et l'ARC arme dégainée.

La mesure s'est faite en deux temps : sans le katana ni le hud, pour étalonnage, puis avec. De manière à déterminer le poids de chaque arme.


Tenue minimale mais belle pour pour le test


Le hud utilisé (fabrication personnelle) et un exemple de mesure :
à "vide" pour le test, on voit que mon hud contient 19 script
pour 1245 Ko de mémoire allouée


Il manque encore quelques valeurs que je complèterai au fur et à mesure.

Je me suis aussi amusée à calculer la moyenne mémoire par script, correspondant à ce que consomme en moyenne chaque script comme mémoire.


Katana ARC Scripts Mémoire
(Kio)
Mémoire/Script (Kio/script)
Arkatech



Red Sunset 1468 103 1687 16,38
Ring Katana 892 98 1605 16,38
Heart of Darkness



Dragon Katana



Naginata 1825 109 1786 16,39
Blood Drinkers 5851 155 2539 16,38





Musashi Blade



Dynasty Flame Katana 1799 89 1507 16,93
Ronin 4214 118 2031 17,21
Gotokuneko 3302 106 6456 60,91
Black Rose Katana 2366 99 1622 16,38
Oxide Ichi



Musashi Eternal



Sizuka naru Shi - Duals 6269 152 2490 16,38
Battle Angel 1417 134 6324 47,19
Demon's Wing 2312 103 3260 31,65
Fallen Rival 1720 115 5079 44,17
Wind Staff 569 82 2932 35,76
Endless Power



Fist of Legend 351 103 2916 28,31





Ashes



Ashes Katana



Jin Geom 1385 104 1703 16,38
Cursed Spirit 1316 126 2064 16,38
Ninjaken 1464 145 2408 16,61





Daikon Forge



Taketori 658 77 1278 16,6
Wave Katana 1319 84 1376 16,38
Kodachi 674 75 2408 32,11


Que conclure de cela ?

Plus l'arme est complexe, plus elle contient de scripts et consomme de mémoire. Certains katanas réputés identiques niveau scripts et animations, ne le sont finalement pas.
Certaines armes réputées lourdes le sont moins que prévues et réciproquement.
Plus l'arme est complexe et précise dans les mouvements, plus elle sera lourde. Cela on le savait déjà.
Certains chiffres peuvent paraitre énormes, surtout en mémoire.
Par contre la moyenne Mémoire / Script donne un nombre stable.... L'ancienne génération de katana est à moins de 20, les plus récents à plus de 20.

J'ai fait un petit test : sans katana, avec des cheveux contenant un script Resize, un collier et des boucles d'oreilles avec en plus un script de changements de couleur, des bottes, un AO, et un autre hud, je monte à plus de 450 scripts et près de 15 Mo de mémoire.

Tout est donc à relativiser, et les blood drinkers (vive les bloods \o/) ne font pas laguer à mort comme on le dit souvent ; les AO masquant les animations étant souvent bien pires.

Mais on comprend bien pourquoi le fait de sparer en ressemblant à un noob est une aide appréciable.
Cette étude ne me fera pas changer mes habitudes niveau spar !




English version (quick and not litteral translation)

I have scripted a little tools to measure how many scripts an avatar worn on it and memory allocated for that.

There is a LSL function that gives thoses datas. This function give you (from LSL wiki):
  • Running script : Gets the number of running scripts attached to the object or agent
  • Script memory : Gets the total amount of script memory allocated to the object or agent, in bytes
In case of Agent, avatar for us, it weighs all attached objects, either on you or on hud. I measured our C:SI weapons, taking opportunity to measure ARC (Avatar Rendering Cost)

Measurement protocol :
  • weapon in hand, drawn, sheath worn, C:SI hud too.
  • to ARC : weapon drawn, wheath worn

Measurement was done in two stages: without katana and hud, to calibrate, and after with. In order to determine the weight of each weapon.


Reduced outfit for test

Hud used (made by me) and sample measurement :
only hud worn, you can see that hud contains
19 scripts for 1245 Ko of memory allocated.



It still lacks some values that I will complete as soon as possible.

I also calculated the average memory per script, corresponding to that consumed on average each script as memory.


Katana ARC Scripts Mémoire
(Kio)
Mémoire/Script (Kio/script)
Arkatech



Red Sunset 1468 103 1687 16,38
Ring Katana 892 98 1605 16,38
Heart of Darkness



Dragon Katana



Naginata 1825 109 1786 16,39
Blood Drinkers 5851 155 2539 16,38





Musashi Blade



Dynasty Flame Katana 1799 89 1507 16,93
Ronin 4214 118 2031 17,21
Gotokuneko 3302 106 6456 60,91
Black Rose Katana 2366 99 1622 16,38
Oxide Ichi



Musashi Eternal



Sizuka naru Shi - Duals 6269 152 2490 16,38
Battle Angel 1417 134 6324 47,19
Demon's Wing 2312 103 3260 31,65
Fallen Rival 1720 115 5079 44,17
Wind Staff 569 82 2932 35,76
Endless Power



Fist of Legend 351 103 2916 28,31





Ashes



Ashes Katana



Jin Geom 1385 104 1703 16,38
Cursed Spirit 1316 126 2064 16,38
Ninjaken 1464 145 2408 16,61





Daikon Forge



Taketori 658 77 1278 16,6
Wave Katana 1319 84 1376 16,38
Kodachi 674 75 2408 32,11


What can we conclude from this ?


More weapon is complex, more it contains scripts and consumes memory. Some katanas that are considered identical in scripts and animations, do not ultimately.
Some weapons are deemed less serious than expected and vice versa.
More weapon is complex and has precise movements, more it will heavy. This we already knew.
Some values may seem huge, especially in memory.
We note that average memory / script provides a stable value .... The older generation of katana is less than 20, the latest in more than 20.

I did a little test : with no katana, with hairs including Resize scripts, a necklace and earrings including color change script, boots, AO, and another hud, I have more than 450 scripts and nearly 15 MB of memory.

Everything is in perspective, and blood drinkers (long live the bloods \ o /) do not as laggy as the saying goes, AO masking animations is often much worse.

But it's clear why spar like a noob is a useful aid.
This study will not make me change my sparing habits !

2 janvier 2011

Un outil onliner

Avant d'aller plus loin, je vous souhaite à tous une bonne et heureuse année nouvelle.
Plus paisible, calme et zen que la précédente.

Mes bonnes résolutions 2011 : et si je refaisais un ou deux (voire même trois) petits tutos de LSL ??

Donc commençons l'année par mettre en pratique les bonnes résolutions : un petit tuto pour la réalisation d'un onliner tout simple....

Un quoi ?? Un objet qui dit si quelqu'un est connecté ou non. On en voit souvent dans les boutiques qui nous disent si le propriétaire est là ou non.

Comme toujours le script sera simple avec juste cette fonctionnalité... A vous de l'améliorer en ajoutant plein d'autres choses....

Objectifs : un objet qui dit si une personne est connectée et passe au vert dans ce cas... rouge sinon, avec un message au-dessus si des fois on n'avait pas compris.

Fonctions qui seront utiles :

Marche a suivre :

  1. Créer une prim, dans mon cas une sphère
  2. Dans l'onglet inventaire : nouveau script
  3. Ouvrir et saisir le code suivant. Les explications en dessous...



Script :

vector ROUGE = <1.0,>;
vector VERT = <0.0,>;
float delay = 10.0;

key avatar = "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; //le UUID de la personne
string name "Deirdre"; // le nom de la personne
key query;
integer etat= 0; // 0 : offline ---- 1 : online

default{

state_entry()
{
llSetColor(ROUGE, ALL_SIDES );
llSetText( name +"\nOFFLINE", <1.0,1.0,1.0>, 1.0);
llSetTimerEvent(delay);
}

timer(){
query = llRequestAgentData(avatar, DATA_ONLINE);
}

dataserver(key queryid, string data){
if (query == queryid ){
if (data == (string)1) {
llSetColor(VERT, ALL_SIDES );
llSetText(name +"\nONLINE", <1.0,1.0,1.0>, 1.0);
etat = 1;
}
else {
llSetColor(ROUGE, ALL_SIDES );
llSetText(name +"\nOFFLINE", <1.0,1.0,1.0>, 1.0);
etat = 0;
}
}
}

}

analyse du code :
  • ROUGE et VERT : deux constantes pour les couleurs de la boule
  • delay : le script lance un vérifie si la personne est online ou non toutes les 10.0 sec... changer la valeur pour modifier ce temps. Un temps trop court crée plus de lag.
  • avatar : la clé, le UUID de l'avatar sur lequel le script est basé
  • name : son nom
  • query : variable qui sert pour le dataserver
  • etat : vaut 0 si la personne est offline et 1 sinon
A l'entrée dans le script, on fixe la couleur et le texte : rouge et offline. Et on lance le timer. Chaque fois que le timer se déclenche, on fait une requête de online sur le dataserver. et On modifie l'affichage en conséquence.
Et voila, c'est tout pour aujourd'hui.

Je suis pas là

Je suis là