User:Michel Lemmon/log Propedeutico

From Second Life Wiki
Jump to: navigation, search

Log - Formazione Propedeutica

  • [12:57] Salahzar Stenvaag: allora, iniziamo
  • [12:57] Salahzar Stenvaag: l'idea era di far partire delle lezioni di script intermedi
  • [12:57] Salahzar Stenvaag: che fossero produttivi
  • [12:58] Salahzar Stenvaag: sulla lavagna vedere il programma che intendevo fare
  • [12:58] Salahzar Stenvaag: una lezione propedeutica
  • [12:58] Salahzar Stenvaag: (questa)
  • [12:58] Salahzar Stenvaag: per fare un riepilogo delle varie cose
  • [12:58] Salahzar Stenvaag: e poi una serie di lezioni
  • [12:58] Salahzar Stenvaag: su come scriptare oggetti
  • [12:58] Salahzar Stenvaag: ed approfondire tematiche
  • [12:59] Salahzar Stenvaag: 1: comunicare a distanza
  • [12:59] Salahzar Stenvaag: 2. rezzare oggetti
  • [12:59] Salahzar Stenvaag: 3. sensori e sonde
  • [12:59] Salahzar Stenvaag: 4. object inventory
  • [12:59] Salahzar Stenvaag: 5. lettura di notecard
  • [12:59] Salahzar Stenvaag: 6. costruzione di un vendor
  • [13:00] Salahzar Stenvaag: poi si pensava di fare anche corsi avanzati
  • [13:01] Salahzar Stenvaag: allora adesso vediamo le slide che ho preparato
  • [13:01] Salahzar Stenvaag: alcune probabilmente sono banali
  • [13:01] Salahzar Stenvaag: però le ho messe lo stesso
  • [13:01] Salahzar Stenvaag: perchè qualcuno potrebbe non saperle
  • [13:01] Salahzar Stenvaag: come vedete
  • [13:02] Salahzar Stenvaag: ho cominciato proprio con come si fa uno script
  • [13:02] Salahzar Stenvaag: poi si passa alla sintassi dello scripting
  • [13:02] Salahzar Stenvaag: istruzioni, pardon
  • [13:02] Salahzar Stenvaag: e poi si vede come funzionano alcuni comandi fondamentali
  • [13:03] Salahzar Stenvaag: se per voi le cose sono troppo elementari, ditemelo
  • [13:04] Salahzar Stenvaag: magari facciamo solo una piccola indagine
  • [13:04] Salahzar Stenvaag: quanti di voi sanno bene come si fa uno script?
  • [13:05] Salahzar Stenvaag: perfetto, allora vado un po' veloce
  • [13:05] Salahzar Stenvaag: il sistema a)
  • [13:05] Salahzar Stenvaag: che vedete qua
  • [13:05] Salahzar Stenvaag: create new script è il più veloce, ma ad esempio non funziona ancora con opensim
  • [13:05] Salahzar Stenvaag: scusa il modo b)
  • [13:06] Salahzar Stenvaag: quello di cliccare su "New Script" dal content di un oggetto
  • [13:06] Salahzar Stenvaag: invece creare uno script nell'inventory e poi trascinarlo sul content dell'oggetto funziona sempre
  • [13:06] Salahzar Stenvaag: anche se è un po' scomodo
  • [13:06] Salahzar Stenvaag: quando avete lo script creato
  • [13:06] Salahzar Stenvaag: con doppio click o con tasto destro open potete editarlo
  • [13:07] Salahzar Stenvaag: vedere sulla lavagna gli appunti
  • [13:07] Salahzar Stenvaag: sull'uso del copia / incolla
  • [13:07] Salahzar Stenvaag: credo che siano cose ovvie per voi
  • [13:07] Salahzar Stenvaag: giusto?
  • [13:07] Salahzar Stenvaag: è utile per cercare il testo
  • [13:08] Salahzar Stenvaag: e la sintassi viene spiegata discretamente dall'editor "embedded" nel vostro browser
  • [13:08] Salahzar Stenvaag: passando sopra una istruzione
  • [13:08] Salahzar Stenvaag: vi dice esattamente la sintassi e i parametri
  • [13:08] Salahzar Stenvaag: ok, passiamo allo stato dello script
  • [13:09] Salahzar Stenvaag: potete mettere uno script in stato NON running
  • [13:09] Salahzar Stenvaag: per fermarne l'esecuzione
  • [13:09] Salahzar Stenvaag: oppure fare il reset dello script
  • [13:09] Salahzar Stenvaag: quando uno script è non running
  • [13:09] Salahzar Stenvaag: mantiene tutte le informazioni che stava elaborando
  • [13:10] Salahzar Stenvaag: è un po' come quando lo mettete nell'inventory
  • [13:10] Salahzar Stenvaag: si "sospende"
  • [13:10] Salahzar Stenvaag: quando invece gli fate il reset
  • [13:10] Salahzar Stenvaag: perde tutte le sue informazioni
  • [13:10] Salahzar Stenvaag: il reset è l'unico modo per ripristinare uno stato di stack/collision
  • [13:10] Salahzar Stenvaag: vale a dire quando aveter mandato in "overflow" la memoria degli script
  • [13:11] Salahzar Stenvaag: che come sapete è molto bassa :(
  • [13:11] Salahzar Stenvaag: ci sono solo 16Kbyte
  • [13:11] Salahzar Stenvaag: ma in realtà di usabili effettivamente ce ne sono molto meno
  • [13:11] Salahzar Stenvaag: perchè bisogna lasciare spazio
  • [13:11] Salahzar Stenvaag: con il nuovo motore MONO
  • [13:11] Salahzar Stenvaag: lo spazio utilizzabile aumenta
  • [13:12] Salahzar Stenvaag: ma non in modo eccezionale :(
  • [13:12] Salahzar Stenvaag: è chiaro?
  • [13:12] Salahzar Stenvaag: questo invece è importante
  • [13:12] Salahzar Stenvaag: gli script hanno la tendenza a "fare i capricci"
  • [13:13] Salahzar Stenvaag: non funzionano quasi mai al primo colpo :)
  • [13:13] Salahzar Stenvaag: quindi occorre abituarsi all'idea di mettere istruzioni di debug
  • [13:13] Salahzar Stenvaag: per capire cosa stanno facendo
  • [13:13] Salahzar Stenvaag: io le metto sempre, anche quando magari non le userò
  • [13:13] Salahzar Stenvaag: questione di abitudine
  • [13:14] Salahzar Stenvaag: poi ognuno ha uno stile personale
  • [13:14] Salahzar Stenvaag: quindi quello che vi dico non è detto che debba essere la "verità rivelata"
  • [13:14] Salahzar Stenvaag: anzi
  • [13:14] Salahzar Stenvaag: cmq, la cosa più semplice è quella di fare dire all'oggetto con llSay
  • [13:14] Salahzar Stenvaag: in punti opportuni delle informazioni
  • [13:15] Salahzar Stenvaag: molti usano llOwnerSay
  • [13:15] Salahzar Stenvaag: oppure llSay(0
  • [13:15] Salahzar Stenvaag: ad esempio llOwnerSay("Sono stato toccato, x vale "+(string)x);
  • [13:15] Salahzar Stenvaag: è sempre bello verificare il valore delle variabili che sia quello che ci aspettiamo
  • [13:16] Salahzar Stenvaag: qui consiglio di usare come metodo di debug un canale, il 10 che non è quello normalmente usato per chattare
  • [13:16] Salahzar Stenvaag: e nemmeno l'ownersay
  • [13:16] Salahzar Stenvaag: in modo tale che se per caso vi dimenticate il debug attivo
  • [13:16] Salahzar Stenvaag: non abbiate sporcamenti sulle vostre finestre
  • [13:16] Salahzar Stenvaag: scrivere sul canale 10
  • [13:17] Salahzar Stenvaag: potete sempre avere un tool che vi legga il canale 10
  • [13:17] Salahzar Stenvaag: e vi rimandi i debug a voi o sul canale 0
  • [13:17] Salahzar Stenvaag: ad esempio il Mystitool
  • [13:17] Salahzar Stenvaag: che io uso normalmente lo fa facilmente
  • [13:17] Salahzar Stenvaag: è chiaro?
  • [13:17] You: il Mystitool è gratuito per i mentori, se lo desiderate inviatemi un IM alla fine
  • [13:18] Salahzar Stenvaag: il Mystitool è pieno di cose utilissime
  • [13:18] Salahzar Stenvaag: quindi io lo raccomando sempre
  • [13:18] Salahzar Stenvaag: ma anche se non lo avete non è un grosso problema
  • [13:18] Salahzar Stenvaag: sapendo scriptare si può ovviare LOL :)
  • [13:19] Salahzar Stenvaag: ecco qui metto in colore azzurro i concetti più avanzati
  • [13:19] Salahzar Stenvaag: si possono fare debug e tracciature usando altri sistemi oltre a llSay
  • [13:19] Salahzar Stenvaag: ad esempio si può usare llSetText
  • [13:20] Salahzar Stenvaag: per scrivere sulla cima di un oggetto delle informazioni preziose
  • [13:20] Salahzar Stenvaag: ho visto script che colorano dei bottoni
  • [13:20] Salahzar Stenvaag: per indicare che stanno elaborando
  • [13:20] Salahzar Stenvaag: si possono mandare IM
  • [13:20] Salahzar Stenvaag: ma la cosa più interessante è che si possono mandare le tracce
  • [13:20] Salahzar Stenvaag: i debug
  • [13:21] Salahzar Stenvaag: su un server web esterno, con comandi http
  • [13:21] Salahzar Stenvaag: questo è un esempio di una funzione di debug
  • [13:21] Salahzar Stenvaag: che scrive su un sito web
  • [13:21] Salahzar Stenvaag: e consente di vedere il tabulato
  • [13:22] Salahzar Stenvaag: l'ho messo in blu perchè è un argomento avanzato
  • [13:22] Salahzar Stenvaag: quindi non è necessario che lo capiate
  • [13:22] Salahzar Stenvaag: (almeno non adesso)
  • [13:22] Salahzar Stenvaag: prima dobbiamo fare le lezioni sull'http
  • [13:23] Salahzar Stenvaag: ma se qualcuno è interessato, lo script php è su un mio sito web
  • [13:23] Salahzar Stenvaag: qui l'ho messo solo per farvi vedere che si può operare in infiniti modi
  • [13:23] Kathrine Slade: il link che si trova lì?
  • [13:23] Salahzar Stenvaag: :)
  • [13:23] Salahzar Stenvaag: www.salahzar.info è il mio dominio personale
  • [13:24] Salahzar Stenvaag: /lsl/httplog.php è il programma php che appende una stringa su un file
  • [13:24] Salahzar Stenvaag: usando un file che si chiama diversamente a seconda della chiave k
  • [13:25] Salahzar Stenvaag: la traccia la si leggerà poi su un browser (firefox) con la url www.salahzar.info/lsl/data/log_k
  • [13:25] Salahzar Stenvaag: per evitare usi "abusivi" il programma risponde solo passandogli una password
  • [13:25] Salahzar Stenvaag: questo per altro è un modello di uso "avanzato"
  • [13:26] Salahzar Stenvaag: ma ne parleremo moolto più avanti :)
  • [13:26] Salahzar Stenvaag: ok
  • [13:26] Salahzar Stenvaag: qui parlo invece dei concetti legati alle permissions
  • [13:26] Salahzar Stenvaag: suppongo che voi conosciate bene le permission più normali, giusto
  • [13:26] Salahzar Stenvaag: ?
  • [13:27] Salahzar Stenvaag: ok, per gli script normalmente
  • [13:27] Salahzar Stenvaag: le permission che si usano sono le "full-permissions" per prodotti opensource
  • [13:27] Salahzar Stenvaag: che regalate a chiunque
  • [13:27] Salahzar Stenvaag: senza scopo di lucro
  • [13:27] Salahzar Stenvaag: mentre normalmente se volete conservare la proprietà intellettuale usate copy ma NON modify
  • [13:28] Salahzar Stenvaag: in modo che gli acquirenti non possano vedere il vostro script o trasferirlo
  • [13:28] Salahzar Stenvaag: l'assenza di permissions è sconsigliabile
  • [13:28] Salahzar Stenvaag: perchè rende praticamente impossibile usare gli oggetti scriptati
  • [13:29] Salahzar Stenvaag: l'operazione di settaggio delle permissions
  • [13:29] Salahzar Stenvaag: almeno per me
  • [13:29] Salahzar Stenvaag: è una delle cose più noiose
  • [13:29] Salahzar Stenvaag: e difficili
  • [13:29] Salahzar Stenvaag: si rischia sempre di sbagliare
  • [13:29] Salahzar Stenvaag: togliendo troppe permissions
  • [13:29] Salahzar Stenvaag: o lasciandone troppe
  • [13:29] Salahzar Stenvaag: chissà se sapete di tools che consentano
  • [13:29] Salahzar Stenvaag: di verificare le permissions
  • [13:29] Salahzar Stenvaag: o di impostarle in modo indolore?
  • [13:30] Salahzar Stenvaag: (questo è in comune anche con i builders etc...)
  • [13:30] Salahzar Stenvaag: ok
  • [13:30] Salahzar Stenvaag: adesso andiamo sulla sintassi del linguaggio
  • [13:30] Salahzar Stenvaag: non mi soffermo troppo sui numeri
  • [13:30] Salahzar Stenvaag: che vedete nella slide
  • [13:31] Salahzar Stenvaag: la cosa normalmente più interessante sono le stringhe
  • [13:31] Salahzar Stenvaag: che in lsl sono molto più complesse di quello che sembra
  • [13:31] Salahzar Stenvaag: specie se si usano caratteri "strani"
  • [13:32] Salahzar Stenvaag: in pratica
  • [13:32] Salahzar Stenvaag: se usate caratteri strani come le vocali accentate
  • [13:32] Salahzar Stenvaag: queste contano "per due"
  • [13:33] Salahzar Stenvaag: quindi una stringa di 10 caratteri può utilizzare anche 16-20 bytes
  • [13:33] Salahzar Stenvaag: come nell'esempio di "città"
  • [13:33] Salahzar Stenvaag: UTF-8 è la codifica dei caratteri che usa secondlife
  • [13:34] Salahzar Stenvaag: che è simile alla codifica ASCII per i caratteri non accentati
  • [13:34] Salahzar Stenvaag: la codifica ASCII è quella usata dalla maggior parte dei linguaggi di programmazione
  • [13:34] Salahzar Stenvaag: mentre l'UTF-8 è utilizzato da Java
  • [13:35] Salahzar Stenvaag: e serve per rappresentare i caratteri + strani
  • [13:35] Salahzar Stenvaag: ditemi se sono troppo complicato ....
  • [13:35] Salahzar Stenvaag: ok
  • [13:35] Salahzar Stenvaag: invece qua ci sono gli altri tipi
  • [13:36] Salahzar Stenvaag: la key che rappresenta un oggetto, un avatar etc
  • [13:36] Salahzar Stenvaag: ed è una specie di "stringa"
  • [13:36] Salahzar Stenvaag: i vettori e le rotazioni
  • [13:36] Salahzar Stenvaag: che servono per le posizioni spaziali e le rotazioni
  • [13:36] Salahzar Stenvaag: e le liste
  • [13:36] Salahzar Stenvaag: che sono insieme il gioiello e la croce di lsl :(
  • [13:37] Salahzar Stenvaag: conoscete tutti questi tipi?
  • [13:37] Salahzar Stenvaag: se avete qualche dubbio su queste cose potete chiedermi
  • [13:38] Salahzar Stenvaag: ok allora vado
  • [13:38] Salahzar Stenvaag: dunque le variabili
  • [13:38] Salahzar Stenvaag: sono dei pezzi di memoria
  • [13:38] Salahzar Stenvaag: e sono FONDAMENTALI
  • [13:39] Salahzar Stenvaag: tutti gli script usano almeno 1 variabile per memorizzare qualcosa
  • [13:39] Salahzar Stenvaag: anche solo per l'intervallo di qualche istruzione
  • [13:39] Salahzar Stenvaag: in lsl
  • [13:39] Salahzar Stenvaag: le variabili globali vanno dichiarate in testa al programma
  • [13:39] Salahzar Stenvaag: ogni volta che qualcuno modifica una variabile globale
  • [13:39] Salahzar Stenvaag: questa cambia
  • [13:40] Salahzar Stenvaag: e potrebbe dare fastidio ad altre parti di programma
  • [13:40] Salahzar Stenvaag: pensate se avete una variabile intera di nome "i"
  • [13:40] Salahzar Stenvaag: e ne cambiate il valore quando un pezzo di codice la sta usando per fare un loop
  • [13:40] Salahzar Stenvaag: il linguaggio lsl è difficile
  • [13:41] Salahzar Stenvaag: perchè molti eventi accadono praticamente nello stesso momento
  • [13:41] Salahzar Stenvaag: e quindi è fondamentale evitare che un pezzo di script "sporchi" variabili gestite da altri pezzi di codice
  • [13:41] Salahzar Stenvaag: le variabili locali invece si possono usare liberamente senza problemi
  • [13:42] Salahzar Stenvaag: il mio consiglio
  • [13:42] Salahzar Stenvaag: è quello di usare una convenzione
  • [13:42] Salahzar Stenvaag: in modo da capire subito se una variabile è globale e specificare il tipo
  • [13:42] Salahzar Stenvaag: quindi iNOTECARD
  • [13:42] Salahzar Stenvaag: è una variabile globale
  • [13:42] Salahzar Stenvaag: di tipo intero
  • [13:42] Salahzar Stenvaag: vPOS è un vettore
  • [13:43] Salahzar Stenvaag: globale e così via
  • [13:43] Salahzar Stenvaag: poi ci sono le funzioni
  • [13:43] Salahzar Stenvaag: le funzioni come scritto qua
  • [13:43] Salahzar Stenvaag: servono per "riciclare" pezzi di codice
  • [13:44] Salahzar Stenvaag: ad esempio per scrivere qualcosa in cima al vostro oggetto potreste avere una funzione
  • [13:44] Salahzar Stenvaag: info(str)
  • [13:44] Salahzar Stenvaag: che magari fa una llSetText(str,<1,0,0>,1)
  • [13:44] Salahzar Stenvaag: sono utilissime
  • [13:44] Salahzar Stenvaag: quindi ogni volta che fate una cosa ripetutamente utilizzatele
  • [13:45] Salahzar Stenvaag: ecco e qui veniamo alla struttua a stati
  • [13:45] Salahzar Stenvaag: struttura
  • [13:45] Salahzar Stenvaag: in lsl voi potete avere oggetti che hanno più di uno stato
  • [13:45] Salahzar Stenvaag: anche se francamente
  • [13:46] Salahzar Stenvaag: la maggior parte degli script che ho visto ne utilizzano 1 o 2 al massimo
  • [13:46] Salahzar Stenvaag: noi faremo finta per il momento che vi sia un solo stato quello di default
  • [13:46] Salahzar Stenvaag: quello che siete obbligati a scrivere
  • [13:47] Salahzar Stenvaag: all'interno di un evento vi sono gli eventi + importanti
  • [13:47] Salahzar Stenvaag: che sono quelli in basso sulla slide
  • [13:47] Salahzar Stenvaag: - touch_start
  • [13:47] Salahzar Stenvaag: on_rez
  • [13:47] Salahzar Stenvaag: state_entry
  • [13:47] Salahzar Stenvaag: listen
  • [13:47] Salahzar Stenvaag: timer
  • [13:47] Salahzar Stenvaag: conoscete tutti questi eventi?
  • [13:48] Salahzar Stenvaag: qualcuno mi sa dire la differenza fra touch_start e touch?
  • [13:48] Salahzar Stenvaag: si infatti il + importante è touch_start
  • [13:48] Salahzar Stenvaag: (ma c'è anche il touch_end)
  • [13:49] Salahzar Stenvaag: è quello utilizzato e parte al momento in cui l'oggetto viene toccato
  • [13:49] Salahzar Stenvaag: il touch(integer count)
  • [13:49] Salahzar Stenvaag: continua ad essere chiamato finchè l'avatar continua a toccare l'oggetto
  • [13:49] Salahzar Stenvaag: quindi diciamo ogni mezzo secondo
  • [13:50] Salahzar Stenvaag: il che crea anche un po' di stress
  • [13:50] Salahzar Stenvaag: si esatto
  • [13:50] Salahzar Stenvaag: quindi potreste fare uno script
  • [13:50] Salahzar Stenvaag: che distingue le 3 fasi
  • [13:50] Salahzar Stenvaag: se ne aveste bisogno
  • [13:50] Salahzar Stenvaag: o che calcoli quanti secondi un avatar ha tenuto cliccato un oggetto
  • [13:50] Salahzar Stenvaag: potrebbe essere un modo potente che so per
  • [13:50] Salahzar Stenvaag: fare dei flipper
  • [13:51] Salahzar Stenvaag: cmq ve l'ho fatto vedere
  • [13:51] Salahzar Stenvaag: perchè il linguaggio di scripting di sl
  • [13:51] Salahzar Stenvaag: pur apparentemente spartano
  • [13:51] Salahzar Stenvaag: è in realtà ricchissimo
  • [13:51] Salahzar Stenvaag: di cose particolari
  • [13:51] Salahzar Stenvaag: basta solo la fantasia per farci sopra le cose + strane
  • [13:52] Salahzar Stenvaag: ok veniamo ai costrutti elementari
  • [13:52] Salahzar Stenvaag: ritengo che i primi li conosciate tutti
  • [13:52] Salahzar Stenvaag: giusto?
  • [13:52] Salahzar Stenvaag: il comando @label
  • [13:52] Salahzar Stenvaag: e jum label
  • [13:52] Salahzar Stenvaag: jump
  • [13:52] Salahzar Stenvaag: sono l'equivalente del goto
  • [13:52] Salahzar Stenvaag: si esatto
  • [13:53] Salahzar Stenvaag: e viene utilizzato a volte per due motivi
  • [13:53] Salahzar Stenvaag: 1\ perchè risparmia bytes
  • [13:53] Salahzar Stenvaag: 2\ perchè può essere utile per uscire da un ciclo
  • [13:53] Salahzar Stenvaag: il goto
  • [13:53] Salahzar Stenvaag: permette di spostare l'elaborazione ad un altro punto dello script
  • [13:54] Salahzar Stenvaag: è simile all'if then else
  • [13:54] Salahzar Stenvaag: con la differenza che è "incondizionato"
  • [13:54] Salahzar Stenvaag: l'if then else va al blocco else se il test non è verificato
  • [13:54] Salahzar Stenvaag: il jump va "sempre" alla label
  • [13:54] Salahzar Stenvaag: e di solito come dicevo viene utilizzato
  • [13:54] Salahzar Stenvaag: per uscire da un loop
  • [13:55] Salahzar Stenvaag: oppure da qualche programmatore pazzo e scatenato
  • [13:55] Salahzar Stenvaag: lol
  • [13:55] Salahzar Stenvaag: io ho visto molti pezzi di codice dei guru pieni di jum
  • [13:55] Salahzar Stenvaag: jump
  • [13:56] Salahzar Stenvaag: diciamo che di solito si riesce "quasi" sempre a farne a meno :)
  • [13:56] Salahzar Stenvaag: ma ve l'ho messo così se lo vedete lo capite
  • [13:56] Salahzar Stenvaag: io la prima volta che l'ho visto in lsl mi ha messo un po' in crisi
  • [13:56] Salahzar Stenvaag: e qui veniamo invece alle cose "truci"
  • [13:56] Salahzar Stenvaag: la potenza di lsl sta nella sua libreria di funzioni
  • [13:57] Salahzar Stenvaag: queste in questa pagina le dovreste conoscere già
  • [13:57] Salahzar Stenvaag: uno scripter elementare dovrebbe averle già usate tutte
  • [13:57] Salahzar Stenvaag: giusto? :)
  • [13:57] Salahzar Stenvaag: queste invece
  • [13:57] Salahzar Stenvaag: sono per i "guru"
  • [13:58] Salahzar Stenvaag: mi sa che non le avete mai usate
  • [13:58] Salahzar Stenvaag: in particolare l'ultima istruzione
  • [13:58] Salahzar Stenvaag: studiatela bene
  • [13:58] Salahzar Stenvaag: perchè viene usata spesso da script che hanno problemi di memoria
  • [13:59] Salahzar Stenvaag: nella prima funzione non c'è una vera e prorpia chiave
  • [13:59] Salahzar Stenvaag: la key
  • [13:59] Salahzar Stenvaag: è una cosa che viene indicata anche come UUID
  • [13:59] Salahzar Stenvaag: nella letteratura dei guru
  • [13:59] Salahzar Stenvaag: ed è un algoritmo complessissimo
  • [14:00] Salahzar Stenvaag: che usa il computer su cui è stata generata
  • [14:00] Salahzar Stenvaag: la data e l'ora
  • [14:00] Salahzar Stenvaag: e alcuni elementi casuali
  • [14:00] Salahzar Stenvaag: le UUID sono garantite essere UNIVOCHE in tutto l'universo
  • [14:00] Salahzar Stenvaag: (almeno sulla terra) lol
  • [14:00] Salahzar Stenvaag: cmq si
  • [14:01] Salahzar Stenvaag: le puoi vedere come una specie di chiave di accesso all'oggetto
  • [14:01] Salahzar Stenvaag: qui con MD5
  • [14:01] Salahzar Stenvaag: si intende invece un altro algoritmo diverso dall UUID
  • [14:01] Salahzar Stenvaag: che estrae un integer
  • [14:01] Salahzar Stenvaag: a partire da una stringa
  • [14:01] Salahzar Stenvaag: in questo caso non si garantisce l'univocità
  • [14:02] Salahzar Stenvaag: è un discorso un po' complesso da fare
  • [14:02] Salahzar Stenvaag: per cui lo saltiamo adesso
  • [14:02] Salahzar Stenvaag: ve lo facevo vedere come al solito
  • [14:02] Salahzar Stenvaag: per farvi vedere la ricchezza del linguaggio
  • [14:02] Salahzar Stenvaag: anche nella sua "semplicità"
  • [14:02] Salahzar Stenvaag: se trovate da qualche parte x=(x="")+x+c;
  • [14:02] Salahzar Stenvaag: adesso sapete cosa vuol dire?
  • [14:03] Salahzar Stenvaag: vuol dire semplicemente l'aggiunta della stringa c alla stringa x
  • [14:03] Salahzar Stenvaag: viene raccomandata dalla linden
  • [14:03] Salahzar Stenvaag: per risparmiare spazio
  • [14:03] Salahzar Stenvaag: ok
  • [14:04] Salahzar Stenvaag: qui abbiamo invece alcune funzioni matematiche
  • [14:04] Salahzar Stenvaag: non mi addentro
  • [14:04] Salahzar Stenvaag: ma llFrand
  • [14:04] Salahzar Stenvaag: può essere utile
  • [14:04] Salahzar Stenvaag: per generare dei channel casuali
  • [14:04] Salahzar Stenvaag: le rotazioni per il momento le lasciamo anche loro tranquille
  • [14:05] Salahzar Stenvaag: e qui invece abbiamo funzioni sempre + interessanti
  • [14:05] Salahzar Stenvaag: come dicevo prima le liste sono insieme il gioiello e la croce di lsl
  • [14:05] Salahzar Stenvaag: si possono fare tantissime cose
  • [14:06] Salahzar Stenvaag: ma spesso in modo abbastanza complesso
  • [14:06] Salahzar Stenvaag: comunque le funzioni su questa pagina sono quelle + intuitive
  • [14:06] Salahzar Stenvaag: tra queste le più usate
  • [14:06] Salahzar Stenvaag: sono llGetListLength
  • [14:07] Salahzar Stenvaag: e llList2<type>
  • [14:07] Salahzar Stenvaag: la seconda per estrarre un elemento da una lista
  • [14:08] Salahzar Stenvaag: queste invece sono le funzioni + avanzate
  • [14:11] Salahzar Stenvaag: allora
  • [14:11] Salahzar Stenvaag: in realtà molte di queste funzioni
  • [14:11] Salahzar Stenvaag: meriterebbero una lezione a parte per ognuna di loro
  • [14:12] Salahzar Stenvaag: io sto facendo solo una carrellata
  • [14:12] Salahzar Stenvaag: in modo tale che almeno le abbiate già viste
  • [14:12] Salahzar Stenvaag: poi di volta in volta quando le useremo
  • [14:12] Salahzar Stenvaag: vi spiegherò i loro vari aspetti
  • [14:13] Salahzar Stenvaag: delle funzioni di lista che vedete vi sono vari concetti che vi accenno
  • [14:13] Salahzar Stenvaag: 1\ strided list
  • [14:13] Salahzar Stenvaag: sono la cosa più vicina alle "matrici"
  • [14:13] Salahzar Stenvaag: array n-dimensionali
  • [14:13] Salahzar Stenvaag: che lsl possa fornire
  • [14:14] Salahzar Stenvaag: in realtà sono un trucco
  • [14:14] Salahzar Stenvaag: ad esempio se avete una matrice di 10 righe per 2 colonne
  • [14:14] Salahzar Stenvaag: in lsl si possono rappresentare con una lista "stirata"
  • [14:14] Salahzar Stenvaag: ad esempio la lista
  • [14:15] Salahzar Stenvaag: list matrix=*[ "a",5,"b",6,"c",7];
  • [14:15] Salahzar Stenvaag: potrebbe corrispondere ad una matrice di 3 righe per 2 colonne
  • [14:15] Salahzar Stenvaag: la prima riga è "a" 5
  • [14:15] Salahzar Stenvaag: la seconda "b" 6
  • [14:15] Salahzar Stenvaag: ecc
  • [14:16] Salahzar Stenvaag: questa lista viene indicata come una lista con "stride=2"
  • [14:16] Salahzar Stenvaag: stride credo che si possa tradurre come "salto" od intervallo
  • [14:16] Salahzar Stenvaag: quindi dice che "ogni due" parte una nuova riga
  • [14:16] Salahzar Stenvaag: non so se ve l'ho presentato chiaramente
  • [14:17] Salahzar Stenvaag: ok allora stop con le stride per il momento
  • [14:17] Salahzar Stenvaag: l'altro grosso concetto
  • [14:17] Salahzar Stenvaag: è rappresentato dalla trasformazione di una lista in stringa
  • [14:17] Salahzar Stenvaag: e viceversa
  • [14:17] Salahzar Stenvaag: questo è IMPORTANTISSIMO
  • [14:17] Salahzar Stenvaag: perchè spesso nelle liste vi sono informazioni importanti
  • [14:18] Salahzar Stenvaag: che devono essere trasmesse fra oggetti
  • [14:18] Salahzar Stenvaag: come vedremo
  • [14:18] Salahzar Stenvaag: e dobbiamo avere uno strumento per mandare la lista come se fosse una stringa
  • [14:19] Salahzar Stenvaag: le funzioni più semplici per fare questo sono llList2CSV (lista=>stringa)
  • [14:19] Salahzar Stenvaag: e llCSV2List (stringa lista)
  • [14:19] Kathrine Slade: cosa fa llListStatistics?
  • [14:19] Salahzar Stenvaag: quella è molto potente
  • [14:19] Salahzar Stenvaag: data una lista con dei valori misurati
  • [14:19] Salahzar Stenvaag: consente di estrarre informazioni
  • [14:19] Salahzar Stenvaag: come la media
  • [14:19] Salahzar Stenvaag: lo scarto quadratico medio
  • [14:19] Salahzar Stenvaag: ed altre informazioni statistiche
  • [14:20] Salahzar Stenvaag: prova a farlo in cobol LOL
  • [14:20] Salahzar Stenvaag: ecco
  • [14:20] Salahzar Stenvaag: nell'ultima riga
  • [14:20] Salahzar Stenvaag: avete invece il solito trucco
  • [14:20] Salahzar Stenvaag: strano
  • [14:20] Salahzar Stenvaag: lst=(lst=*[])+lst+x
  • [14:21] Salahzar Stenvaag: in particolare per le liste
  • [14:21] Salahzar Stenvaag: una lista potrebbe essere lunga 4-5000 bytes
  • [14:21] Salahzar Stenvaag: se non si facesse in quel modo si perderebbero 5000 bytes
  • [14:21] Salahzar Stenvaag: lst+=x
  • [14:22] Salahzar Stenvaag: usa 3 volte la memoria per lst
  • [14:22] Salahzar Stenvaag: mentre la sintassi che vi ho detto usa solo 2 volte lo spazio di memoria
  • [14:22] Salahzar Stenvaag: se avete script cicciuti
  • [14:22] Salahzar Stenvaag: dovete sapere fare queste cose
  • [14:23] Salahzar Stenvaag: altrimenti non vanno :)
  • [14:23] Salahzar Stenvaag: okay ora
  • [14:23] Salahzar Stenvaag: torniamo ad argomenti + terra terra
  • [14:23] Salahzar Stenvaag: sicuramente avete già usato la lllisten
  • [14:23] Salahzar Stenvaag: (con 3 elle) lol
  • [14:23] Salahzar Stenvaag: sapete che è importante scegliere un canale
  • [14:23] Kathrine Slade: no con tre l mi manca..:D
  • [14:24] Salahzar Stenvaag: e sapete la differenza fra il canale 0, canali positivi e negativi
  • [14:24] Salahzar Stenvaag: allora lo zero è quello che dà più fastidio
  • [14:24] Salahzar Stenvaag: e dà anche più lag
  • [14:25] Salahzar Stenvaag: ma anche i canali positivi sono pesanti
  • [14:25] Salahzar Stenvaag: i canali negativi, essendo utilizzati solo dagli oggetti
  • [14:25] Salahzar Stenvaag: generano MENO lag
  • [14:25] Salahzar Stenvaag: ricordatevi di usare sempre la MINORE quantità possibile di llListen
  • [14:26] Salahzar Stenvaag: gli IM viaggiano su canali propri totalmente diversi
  • [14:26] Salahzar Stenvaag: si
  • [14:26] Salahzar Stenvaag: i canali negativi generano meno lag
  • [14:26] Salahzar Stenvaag: perchè non vengono rimbalzati su tutti i browser
  • [14:27] Salahzar Stenvaag: ma rimangono nel computer remoto
  • [14:27] Salahzar Stenvaag: => meno traffico di rete
  • [14:27] Salahzar Stenvaag: questa slide
  • [14:27] Salahzar Stenvaag: vi spiega la frustrazione
  • [14:27] Salahzar Stenvaag: che si ha a volte
  • [14:27] Salahzar Stenvaag: con le lllisten
  • [14:28] Salahzar Stenvaag: avete fatto uno splendido script
  • [14:28] Salahzar Stenvaag: ma quando gli parlate
  • [14:28] Salahzar Stenvaag: o quando fate touch e c'è il menu
  • [14:28] Salahzar Stenvaag: lui non fa nulla
  • [14:28] Salahzar Stenvaag: la soluzione è una cosa (a parte essere perfettissimi e non dimenticarsi nulla)
  • [14:28] Salahzar Stenvaag: lol
  • [14:29] Salahzar Stenvaag: mettete tante scritte di debug per essere sicuri che tutto sia come deve essere
  • [14:29] Salahzar Stenvaag: la llListen venga fatta sul canale giusto
  • [14:29] Salahzar Stenvaag: eccetera.
  • [14:29] Salahzar Stenvaag: poi a volte voi stessi fate in modo che l'oggetto reagisca SOLO se siete l'owner
  • [14:29] Salahzar Stenvaag: ad esempio io ho modificato questa lavagna
  • [14:30] Salahzar Stenvaag: in modo che SOLO IO posso cliccarne i tasti
  • [14:30] Salahzar Stenvaag: poi lo vediamo in apposita lezione
  • [14:30] Salahzar Stenvaag: e siamo al timer
  • [14:30] Salahzar Stenvaag: anche questo coso
  • [14:30] Salahzar Stenvaag: sembra semplice
  • [14:31] Salahzar Stenvaag: ma ho visto fare delle cose con il timer :)
  • [14:31] Salahzar Stenvaag: comunque nel suo comportamento più semplice
  • [14:31] Salahzar Stenvaag: fa esattamente quello che sembra
  • [14:31] Salahzar Stenvaag: fa scattare l'evento dopo tot secondi
  • [14:31] Salahzar Stenvaag: come scritto viene spesso utilizzato
  • [14:32] Salahzar Stenvaag: per rimuovere un listen dopo un certo intervallo di tempo
  • [14:32] Salahzar Stenvaag: ricordatevi che finchè non fate llSetTimerEvent(0)
  • [14:32] Salahzar Stenvaag: il timer rimane attivo
  • [14:32] Salahzar Stenvaag: e continua a scattare
  • [14:32] Salahzar Stenvaag: sul touch
  • [14:33] Salahzar Stenvaag: (forse l'evento + usato su secondlife)
  • [14:33] Salahzar Stenvaag: mi sa che lo sapete usare tutti
  • [14:33] Salahzar Stenvaag: mi sapete dire che cosa rappresenta quell'integer count?
  • [14:33] Salahzar Stenvaag: c'è scritto sulla slide :)
  • [14:34] Kathrine Slade: il numero di avatar che tocca l'oggetto... (uffi)
  • [14:34] Salahzar Stenvaag: però la maggior parte dei programmatori
  • [14:34] Salahzar Stenvaag: non lo considerano
  • [14:34] Salahzar Stenvaag: e usano semplicemente llDetectedKey(0)
  • [14:34] Salahzar Stenvaag: perchè si suppone che in circostanze normali un solo avatar tocchi l'oggetto
  • [14:34] Salahzar Stenvaag: e noi faremo anche così (siamo pigri)
  • [14:35] Salahzar Stenvaag: ecco cosa si dovrebbe fare
  • [14:35] Salahzar Stenvaag: ok saltiamo le altre interazioni
  • [14:35] Salahzar Stenvaag: la llDialog
  • [14:35] Salahzar Stenvaag: è anche usatissima
  • [14:35] Salahzar Stenvaag: e come vedete quasi sempre insieme a touch-start
  • [14:36] Salahzar Stenvaag: in questa slide
  • [14:36] Salahzar Stenvaag: vedete che elenco le opzioni
  • [14:36] Salahzar Stenvaag: dentro una lista
  • [14:36] Salahzar Stenvaag: e poi la llDialog visualizza il menù in alto a destra (il classico menu blu)
  • [14:36] Salahzar Stenvaag: la llDialog ha la particolarità
  • [14:36] Salahzar Stenvaag: che l'ordine delle scelte nella lista
  • [14:37] Salahzar Stenvaag: corrisponde in modo "strano" a come le visualizza
  • [14:37] Salahzar Stenvaag: nel menù
  • [14:37] Salahzar Stenvaag: questo succede quando avete più di 3 opzioni
  • [14:37] Salahzar Stenvaag: perchè il maledetto
  • [14:37] Salahzar Stenvaag: ordina le opzioni dal basso a sinistra verso destra
  • [14:37] Salahzar Stenvaag: e poi va su in verticale
  • [14:37] Salahzar Stenvaag: come se fossero coordinate X,Y
  • [14:38] Salahzar Stenvaag: e non un testo che parte dall'alto a sinistra e poi scorre verso il basso
  • [14:38] Salahzar Stenvaag: ci sono numerosi trucchi per ovviare a questo
  • [14:38] Salahzar Stenvaag: se vedete questo listato
  • [14:38] Salahzar Stenvaag: vedete che ho messo insieme un po' tutte le funzioni che vi ho descritto prima
  • [14:39] Salahzar Stenvaag: touch_start
  • [14:39] Salahzar Stenvaag: listen
  • [14:39] Salahzar Stenvaag: dialog
  • [14:39] Salahzar Stenvaag: timer
  • [14:39] Salahzar Stenvaag: è chiaro quello che fa?
  • [14:39] Kathrine Slade: si.. fa apparire un menù dando tot tempo di risposta
  • [14:39] Salahzar Stenvaag: perfect
  • [14:40] Salahzar Stenvaag: quella era l'ultima slide
  • [14:40] Salahzar Stenvaag: vuol dire che adesso siete pronti per la prima lezione
Michel's Informazioni
Michel Lemmon2.jpg
Click per Ingrandire


Link VTeam