User:Michel Lemmon/log Propedeutico

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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