giovedì 19 marzo 2015

Conferenza su Livecode 8

Come già sapete Livecode 8 è disponibile da scaricare, è una versione di prova.
Il CEO Kevin Miller ha fatto una presentazione, che potete vedere qui di seguito:

Riassumendo ecco alcuni punti salienti:

Cambio nome della società da RunRev a LiveCode


La società cambia nome in Livecode, ora è più facile associarla col linguaggio.

Nuove licenze, ma quelle annuali rimangono

Per semplificare il costo delle licenze, ci saranno anche delle tariffe mensili, oltre quelle annuali.
Per esempio ci sono persone che hanno bisogno di chiudere il codice solo una volta l'anno, quando rilasciano la nuova versione, oppure chi ha voglia di vedere quanto vende al propria app solo per qualche mese.

Extension manager, per scaricare o comprare

Un nuovo sistema per aggiungere estensioni oppure vendere o rendere pubblici le proprie estensioni. Si basa sui widget,  un nuovo tipo di controllo che usa un linguaggio a parte, spiegato più sotto.
Somiglia a iTune o Google play.

Ridotta sempre di più la dipendenza di livecode  IDE da C++

L'IDE di livecode si poggerà sempre più su livcode stesso e sempre meno su C++, su github si accettano solo le modifiche che riguardano codice in livecode.

Nuovo linguaggio livecode per widget

I controlli widget si scrivono in un nuovo linguaggio, livecode builder, fortemente tipizzato. E' un semplice file di testo che viene dato in pasto ad un compilatore livecode, se il compilatore è quello gratuito è incluso il sorgente, se è quello commerciale non è incluso il sorgente.
I wdiget potranno essere controlli o librerie.
Un esempio di linguaggio per widget è:

widget com.livecode.miowidegt
   
   metadata title is "Primo esempio"
   metadata author is "Max"
   metadata version is "1"
   
   use com.livecode.canvas
   
   public handler onPaint()
      //che succede quando la grafica si aggiorna?
      variable tCirclePath as Path
      put circle path centered at point [my width / 2, my height/2] with radius (my width /2) into tcirclepath]
      set the paint of this canvas to solid paint with color [1,0,1]
      fill tCirclePath on this canvas
   end handler

public handler Create()
//che succede quando appare per la prima volta?
end handler

public handler GeometryChanged()
//che succede quando cambiamo le dimensioni?
end handler

//proprieta'
property cicleMargin get sMargin set sMargin

end widget


Una lunga lista di esempi di codici per widget la trovate in questa pagina:
https://github.com/runrev/livecode/tree/develop/extensions/widgets

Nuovo dizionario

Il nuovo dizionario incorpora in automatico i nuovi comandi e le nuove proprietà dei widget aggiunti in tempo reale.
Graficamente è molto simile a quello online a http://docs.runrev.com/

Versioni disponibili

Quando la 8 sarà pronta, le versioni 6 e 7 non saranno più sviluppate. Lo sviluppo in parallelo di due versioni è stato necessario solo perchè la 7 era il passaggio obbligato per arrivare alla 8, ma anche il più imprevedibile.
Dalla 8 in poi si ricomincerà a lavorare solo su una versione alla volta.
Stanno migliorando la grafica e la velocità di risposta della grafica con la 8.

HTML5

L'esportazione dei programmi in pagine web interattive sarà disponibile una prima versione in estate.


martedì 17 marzo 2015

revSpeak

Dentro livecode è presente una libreria per poter far parlare i nostri programmi: revSpeak. Questa libreria funziona con Windows e Mac.
L'uso è semplicissimo:

revspeak "Hello, I'm talking!"

In pratica il computer legge ciò che vogliamo. Su windows si appoggiano alle Micorsoft Speech API, che hanno installato di solito solo una lingua di default: Microsoft Sam. Questa voce ha l'inflessione inglese, per l'italiano non è il massimo.
Per vedere le voci disponibili sul vostro computer basta usare la funzione revspeechVoices(), vi restituirà tutte le voci disponibili. Altre voci sono scaricabili gratuitamente o a pagamento.
A partire da Windows 8 esistono anche le seguenti voci, che però hanno dei nomi abbastanza anonimi:
  • Microsoft David (USA male) 
  • Hazel (UK female) 
  • Zira (USA female) 
  • Microsoft Helena (Spagnolo)
  • Microsoft Sabina (Spagnolo)
  • Microsoft Hortense (Francese)
  • Microsoft Hedda (Tedesco)
  • Microsoft Haruka (Giapponese)
  • Microsoft Heami (Koreano)
  • Microsoft Hanhan (Cinese)
  • Microsoft Elsa (Italiano)
  • ...
Quindi se volete utilizzare un'inflessione italiana, vi serve di impostare:

revSetSpeechVoice "Microsoft Elsa"

Oltre la lingua, si può impostare il volume con il comando revSetSpeechVolume, utilizzando un numero tra zero e cento.
Per caricare la libreria utilizzate il comando revLoadSpeech, mentre per non utilizzarla più e risparmiare la memoria revUnloadSpeech.
Potete anche cambiare il tremolio della voce col comando revSetSpeechPitch, utilizzando un numero tra 30 e 127.

venerdì 13 marzo 2015

Livecode 8 disponibile

E' appena uscita la prima versione di Livecode 8! Potete scaricarla da: http://downloads.livecode.com/livecode/
Chiaramente è ancora in fase iniziale.
Sono presenti nove nuovi controlli, chiamati widget:
Il property inspector ora è a linguette:
Vi consiglio di chiuderlo e avviarlo più volte all'inizio, deve creare e caricare molte nuove impostazioni, che altrimenti non vi apparirebbero.
Spero che esca subito una guida ai widget, perchè non è per nulla chiaro come farli e cosa siano...

mercoledì 11 marzo 2015

Anteprime di Livecode 8

Ecco alcune immagini del futuro Livecode 8:
Come vedete hanno aggiunto dei pulsanti e dei controlli.
Mentre questa schermata mostra uno dei risultati:
I nuovi controlli sono tutti in stile mobile (Android e iOS), speriamo di non dover aspettare troppo prima di vedere la luce di questa nuova versione.

martedì 10 marzo 2015

Ordinare le date

Noi europei quando scriviamo le date, le poniamo nella forma giorno/mese/anno; ad esempio: 9/3/2015. Questa modalità è alquanto scomoda per i computer, infatti hanno difficoltà a capire l'ordine delle date, poichè per un computer la data è un numero, e mettendo davanti i giorni, cioè la parte più piccola, sbagliano ad ordinarle. Molti sistemi, inclusi i database, consigliano di scrivere la data in forma anno/mese/giorno (2015/3/9): in questo modo non possono sorgere errori, soprattutto nella ricerca dei periodi prima o dopo una data. In SQlite le date, infatti, sono scritte così: 2015-03-09.
Se non vogliamo stare a modificare le date, possiamo usare sort indicando più chiavi di ordinamento contemporaneamente; ad esempio:


   put "1/1/2015" & CR & "1/2/2015" & CR & "2/1/2015" into temp
   set itemdel to "/"
   sort lines of temp by (item 3 of each) & (item 2 of each) & (item 1 of each)
   put temp



In questo modole date saranno ordinate correttamente in questo ordine:
  • 1/1/2015
  • 2/1/2015
  • 1/2/2015
Volendo tutto ciò può essere implementato in un datagrid.

venerdì 6 marzo 2015

Gradienti: esempi pratici

I gradienti possono essere utilizzati per ottenere oggetti grafici complessi, ad esempio utilizzando dei gradienti uno su l'altro e modificando le varie trasparenze, potete ottenere una sfera come questa:
Potete anche aggiungere degli effetti particolari, ad esempio con un gradiente di tipo conico, ripetizione 30, mirror e wrap attivati, potete arrivare a questo risultato:



Inoltre potete animare la sfera come in questo video:

Il codice dell'animazione si può scaricare da qui.
Oltre che il property inspector, per le trasparenze c'è sempre la comoda proprietà blendlevel, mentre per giocare con i gradienti, c'è la proprietà fillGradient.
La proprietà fillGradient è un array, con le seguenti chiavi:
  • type - il tipo, può essere uno dei seguenti valori: linear, radial, conical, spiral, diamond, xy, sqrtxy
  • ramp - Una lista di colori per il gradiente. Ogni riga di questa lista deve contenere cinque numeri separati da virgola ("0.5,255,0,0,125"); i numeri rappresentano in ordine:
    • posizione - è un numero decimale tra 0 e 1 (compresi).
    • colore - è una tripletta che esprime il colore in formato RGB (255,0,88).
    • trasparenza - un numero intero tra 0 e 255 che rappresenta la trasparenza. Il valore 0 significa completamente trasparente, il 255 completamente opaco.
  • from - le coordinate del punto di partenza del gradiente
  • to - le coordinate del punto di arrivo del gradiente
  • via - un punto tra parteza e arrivo che influisce sia sulla scalla che l'inclinazione del gradiente.
  • quality - la qualità che può essere solo: normal, good
  • repeat - le ripetizioni tra la partenza e l'arrivo, può essere solo un numero intero tra 1 e 255.
  • mirror - se attivare l'effetto specchiato, può essere solo vera (true) o falsa (false).
  • wrap - se attivare l'effetto riempitivo, può essere solo vera (true) o falsa (false).

mercoledì 4 marzo 2015

Caricare un avatar Xbox Live

XBox live è un servizio per gli utenti XBox dove poter giocare con gli altri utenti. Ogni utente ha un profilo con tutta una serie di dati pubblici, ad esempio l'immagine dell'avatar. Per caricare l'immagine dell'avatar basta una riga di codice:
Ecco il codice:

on mouseUp   
   put url("http://avatar.xboxlive.com/avatar/kuroyi/avatar-body.png") into image 1   
end mouseUp