giovedì 31 luglio 2014

Font personalizzati

Abbiamo già visto come cambiare i font dei nostri programmi, ma se vogliamo utilizzare dei font che non sono nel nostro sistema possiamo anche caricarli da un file esterno. Vediamo come fare.
Prima di tutto immaginiamo di avere il nostro file dei font che si chiami FunnyFont.ttf, ci basterà caricarlo con il comando revFontLoad e il font sarà disponibile nelle nostre applicazioni. Esempio del codice:


revFontLoad "C:/FunnyFont.ttf"
set the textFont of field 1 to "FunnyFont"

ed ecco il risultato:

mercoledì 30 luglio 2014

Messaggi PRIVATE

Una possibilità spesso ignorata da chi si affaccia le prime volte a Livecode è quella di poter rendere visibile certe funzioni o messaggi solo all'interno dell'oggetto corrente.
Per esempio se vogliamo creare una funzione che si chiama "aumentare", ma non vogliamo confonderla con altre che possano avere lo stesso nome, la possiamo dichiarare come privata (private).
Ad esempio:

private function aumentare
      answer "Aumento il volume"
end aumentare

Questo vale sia per i messaggi che per le funzioni.
Se si ha in mente il percorso dei messaggi: stack -> card -> oggetti; è difficile confondersi anche senza usare la parola private. Prima Livecode cerca il messaggio (o funzione) richiesto nell'oggetto corrente, se non lo trova passa alla card corrente e se non lo trova ancora passa allo stack corrente.
Quando si lavora in gruppi di persone sullo stesso programma, per evitare confusioni private può risolvere alcuni conflitti, ma anche utilizzare nomi unici per le funzioni può ottenere lo stesso effetto.

martedì 29 luglio 2014

Funzioni di basso livello

Livecode è un linguaggio di altissimo livello e per questo permette di creare in pochi minuti programmi altamente complessi. Al contrario linguaggi come il C e tutti i suoi simili sono di basso livello, permettendo di accadere a funzioni particolari del computer, ma pagando il tutto in centinaia di righe di codice in più per ottenere programmi molto semplici.
Ad oggi è già possibile attingere e sfruttare librerie esterne, come spiegato nei seguenti articoli: http://livecode.wikia.com/wiki/Working_with_DLLhttp://livecode.wikia.com/wiki/Working_with_shared_libraries .
Nonostante ciò, il team di sviluppatori di Livecode sta pensando a qualcosa di più semplice per lavorare a basso livello.
L'idea è di poter creare degli elementi che rappresentino l'interfaccia con il basso livello della macchina, per esempio su Mac sarà possibile sfruttare le librerie dell'ambiente grafico stesso per visualizzare i PDF. Tutto questo senza dover scrivere neppure una riga di codice in C, ma solo utilizzando un opportuno linguaggio molto simile a Livecode. Questo permetterà di sviluppare applicazioni molto particolari in tempi notevolmente minori rispetto al C.
I file per accedere al basso livello saranno con un'estensione diversa.
Il tutto è già in parte realizzato e il seguente video vi mostra tutti questi concetti come sono già stati realizzati e verranno implementati prossimamente in Livecode:

lunedì 28 luglio 2014

Nuove versioni di test: 6.7 e 7.0

Come forse già sapete, in questo periodo lo sviluppo di  Livecode viaggia su due strade parallele. La versione 6 è quella più famosa e consolidata, la versione 7 sarà la prima a contenere il supporto nativo per la codifica unicode.
La 7 è ancora in lavorazione, per questo si continua ad aggiornare la 6. Per entrambe è disponibile sul sito http://downloads.livecode.com/ la versione DP (development preview), che contiene tutte le migliorie in anteprima rispetto alla versione stabile. Se doveste incontrare dei bug, li potete segnalare sul sito: http://quality.runrev.com/

Vediamo cosa hanno di nuovo queste versioni:

LiveCode 6.7  dp6

E' stato aggiunto il supporto ai display high DPI (high pixel density), cioè i display ad altissima risoluzione, e le seguenti novità:

  • Cocoa – Adesso si utilizzano le ultime API Mac OS, in questo modo le app Mac sono le migliori in questo campo.
  • coreText – Migliorata la velocità del testo su Mac OS
  • webKit browser – Il browser interno di Livecode è diventato webkit, in questo modo sono migliorate velocità e l'integrazione con il Javascript.
  • Extended in-app purchasing – Aggiunto il supporto "in-App" per i negozi on-line Samsung e Kindle
  • AVFoundation – Nuovo gestore multimediale su Mac OS che è abilitato per l'invio all'AppStore.
  • Effective points of graphics – un'aggiunta di Mark Wieder
  • Nove modi per deformare le immagini – Potete divertirvi con le immagini sempre di più
  • 126 bug corretti.


LiveCode 7.0 dp7

Il cuore di Livecode è stato completamente riscritto, e sarà la base delle novità 2014 e 2015, ad oggi è stato aggiunto:

  • Transparent Unicode support – Potete scrivere i vostri programmi in qualsiasi lingua con qualsiasi set di caratteri.
  • New chunk expressions – Potete giocare con i caratteri unicode grazie alle nuove parole chiave: Paragraph, sentence, trueword, codeunit, codepoint 
  • Engine refactor – Il nuovo cuore di Livecode permette di creare aggiunte esterne all'IDE e nuove scorciatoie interne molto più semplicemente.
  • Linux GDK port – I programmi per Linux adesso utilizzano le ultime librerie GDK.
  • 181 bug corretti

    venerdì 25 luglio 2014

    Mondo Apple: Imagine Poker

    Oggi presento un app per iOS che era nata come un semplice videogioco per Windows e Mac: Imagine Poker.
    L'autore ha usato Livecode per realizzarlo, inizialmente era un semplice videogioco per PC e Mac di poker con personaggi delle favole. L'autore stesso ha spiegato che, grazie a Livecode, la parte più semplice è stata la gestione della grafica e l'interazione dell'utente; mentre, non avendo molta esperienza nel poker Texas hold'em, sviluppare tutta la statistica per le scelte migliori degli avversari computerizzati ha richiesto la collaborazione con mailing list di giocatori di poker.
    Poi appena è stata aggiunta l'esportazione per iOS, l'ha trasformata in un click in un app per iPhone e iPad. E' disponibile su iTunes a $ 3.99.
    Ora con l'ultimo aggiornamento ha la seguente grafica:
    Immaginate cosa potereste fare se aggiungeranno l'esportazione ad applicazioni web HTML5 a Livecode. Si aprono veramente migliaia di opportunità per tutti.

    giovedì 24 luglio 2014

    Caso PEMSoft

    Oggi vi presento la società PEMSoft, che ha sviluppato del software per i pediatri, utilizzando Livecode.


    La società nel 2012 è stata comprata dalla multinazionale EBSCO specializzata in diversi settori dell'informazione.
    A tutt'oggi il software è venduto ed utilizzato negli USA e in Australia.
    Uno dei software più utilizzati riguarda la gestione delle emergenze pediatriche, con più di  3000 argomenti clinici, supportati da 2700 immagini e video. Il tutto è controllato e corretto da 24 pediatri.

    Questo è un valido esempio di come si possano ottenere ottimi software commerciali con Livecode.

    mercoledì 23 luglio 2014

    Testo scorrevole

    Se volete creare un testo scorrevole, potete farlo con pochissime righe di codice.
    Predente un elemento di testo, come ad esempio un field.  Metteteci dentro un testo lungo a piacere e inserite il seguente codice:



    repeat for 100 times
       put the text of field testo into temp
       put char 1 of temp after temp
       delete char 1 of temp
       set the text field testo to temp
       wait 0.1 sec
    end repeat



    Chiaramente sta a voi decidere cosa attivi questo evento, quante volte ripeterlo e così via.

    lunedì 21 luglio 2014

    Muovere (meglio) un'immagine

    Riprendendo l'ultimo post, mi sono accorto che il messaggio arrowkey restituisce solo l'identificativo di un pulsante. Se si vuole muovere l'immagine utilizzando più tasti freccia insieme ci sono dei problemi, perchè solo il primo pulsante premuto viene restituito nel messaggio.
    Per fortuna ci sono altri messaggi che gestiscono tutti i pulsanti premuti, contemporaneamente o meno. Io per ora vi suggerisco di usare keysdown
    Questo messaggio resitusce la lista dei pulsanti premuti, utilizzando l'identificativo numerico; ad esempio:
    • 65361 = freccia sinistra
    • 65362 = frecci sù
    • 65363 = freccia destra
    • 65364 = freccia giù
    Quindi possiamo modificare il codice così:

    on arrowkey puls      
       put the keysdown into temp2
       repeat for each item tItem in temp2
          switch tItem
             case "65362"
                put the angle of image "car" into temp         
                #creaimo una strina del tipo x,y
                put -5 * sin( pi / 180 * temp) into movimento
                put "," after movimento
                put -5 * cos( pi / 180 * temp) after movimento
                move image "car" relative movimento      
                break         
             case "65364"
                #dobbiamo muoverla in indietro rispetto al verso del muso
                #prendiamo l'angolo della direzione
                put the angle of image "car" into temp         
                #creaimo una strina del tipo x,y
                put 5 * sin( pi / 180 * temp) into movimento
                put "," after movimento
                put 5 * cos( pi / 180 * temp) after movimento
                move image "car" relative movimento      
                break         
             case "65361"
                put the angle of image "car" into temp
                add 1 to temp
                set the angle of image "car" to temp
                break               
             case "65363"
                put the angle of image "car" into temp
                add -1 to temp      
                set the angle of image "car" to temp
                break                        
          end switch
       end repeat
    end arrowkey





    giovedì 17 luglio 2014

    Muovere un'immagine

    Abbiamo già visto come muovere un'immagine con il comando move relative in questo post; se per esempio noi vogliamo muovere un'immagine rispetto a dove guarda, le cose sono leggermenta più complicate.
    Per esempio, immaginiamo di dover fare un gioco dove bisogna muovere una macchina usando i tasti freccia della tastiera e che va spostata relativamente a dove punta il muso della macchina, come nelle macchinine telecomandate.
    Prima di tutto mettiamo l'immagine della macchina:
    Per ruotarla basta cambiare la proprietà angle dell'immagine.
    Finchè rimane in verticale è facile dare le coordinate per spostarla, ma se la inclinassimo di 45°, come dobbiamo scrivere il codice?
    Conoscendo un minimo di trigonometria, per muoverla di 5 pixel alla volta, tutto il codice è il seguente:


    on arrowkey puls   
       switch puls
          case "up"
             #dobbiamo muoverla in indietro rispetto al verso del muso
             #prendiamo l'angolo della direzione
             put the angle of image "car" into temp         
             #creaimo una strina del tipo x,y
             put -5 * sin( pi / 180 * temp) into movimento
             put "," after movimento
             put -5 * cos( pi / 180 * temp) after movimento
             move image "car" relative movimento      
             break         
          case "down"
             #dobbiamo muoverla in indietro rispetto al verso del muso
             #prendiamo l'angolo della direzione
             put the angle of image "car" into temp         
             #creaimo una strina del tipo x,y
             put 5 * sin( pi / 180 * temp) into movimento
             put "," after movimento
             put 5 * cos( pi / 180 * temp) after movimento
             move image "car" relative movimento      
             break         
          case "left"
             #ruotiamo a sinistra l'immagine
             put the angle of image "car" into temp
             add 1 to temp
             set the angle of image "car" to temp
             break               
          case "right"
             #ruotiamo a destra l'immagine
             put the angle of image "car" into temp
             add -1 to temp      
             set the angle of image "car" to temp
             break                        
       end switch
    end arrowkey

    Notate che non c'è bisogno di preoccuparsi se angle è più di 360° o meno di zero, livecode ritrasforma l'angolo correttamente. Anche per le coordinate relative non è un problema se non sono degli interi.
    L'unica attenzione va fatta nelle funzioni seno e coseno, che accettano come input l'angolo in radianti, mentre l'angolo delle immagini è espresso in gradi. Per questo motivo c'è la moltiplicazione per π/180 che fa da conversione.
    Per chi è a digiuno di informatica ricordo che il sistema di riferimento X,Y delle finestre, in tutti i linguaggi di programmazione, ha:
    • l'origine nell'angolo in alto a sinistra
    • l'asse X punta verso destra
    • l'asse Y punta verso il basso
    In Livecode, inoltre, l'angolo delle immagini parte da zero in alto e va in senso antiorario.
    Per chiarezza ecco uno schema riassuntivo:

    mercoledì 16 luglio 2014

    Caso Hyperactive software

    Oggi presentiamo un'altra software house che usa Livecode circa 20 anni. Si, avete capito bene, Livecode è stato progettato e realizzato più di 20 anni fa. Ha avuto vari nomi, Metacard, Hypercard, Revolution, Livecode

    La società si chiama Hyperactive software, ed è gestita quasi interamente da una persona sola, nella foto qui a sinistra.. E' specializzata in software dedicati per i clienti, come presentazioni multimediali, programmi educativi e di training, registrazione e analisi dati. Tra i prodotti più richiesti abbiamo i software educativi e Airlaunch per iOS, che permette di sfruttare il Wi-Fi con iOS come protocollo di trasferimento file in maniera molto semplice.
    Tra le pagine del sito potete trovare vari articoli sulla programmazione con Livecode.

    lunedì 14 luglio 2014

    Windows e i percorsi (forzati) virtuali

    Windows, da Vista in poi, ha aggiunta una funzionalità di sicurezza sconcertante: i percorsi virtuali.
    L'idea di fondo è quella di impedire l'accesso a file o cartelle di sistema importanti, che potrebbero compromettere il computer; un'intuizione intelligente realizzata in maniera pessima. Da Vista in poi non è possibile sapere quali cartelle si possono modificare, perchè apparentemente si ha accesso a tutto; in realtà, per ogni percorso o file vietato, Windows crea un nuovo file o cartella da un'altra parte e l'utente non si accorge di lavorare con altre cartelle o file. Tutto ciò comporta dei pasticci enormi con computer dove lavorano più utenti. Le modifiche di un utente al sistema, non sono viste dagli altri.
    La stessa cosa vale per gli elementi del registro di Windows, se provate a sistemare qualche problema al registro di windows, quella modifica avrà effetto solo su di voi; o forse neanche su di voi, visto che alcuni programmi che leggono il registro potrebbero essere avviati con altri permessi!
    Per fortuna con fortuna con Livecode c'è un modo per aggirare il tutto, indicare in codice normale o esadecimale la cartella, windows accetta entrambi i formati. Esempio:


    put SpecialFolderPath(36)
    put SpecialFolderPath(0x0024)

    entrambi i codici danno come output  su WinXp C:/WINDOWS. Esistono tantissimi codici, ecco i più comuni di Xp:
    • 0x0000  Il cartella desktop dell'utente corrente. (C:/Documents and Settings/max/Desktop)
    • 0x0006 Cartella preferiti dell'utente.  (C:/Documents and Settings/max/Preferiti)
    • 0x0014 Cartella che contiene i font.  (C:/WINDOWS/Fonts)
    • 0x0005 Cartella documenti. documenti dell'utente corrente (C:/Documents and Settings/max/Documenti)
    • 0x0026 Cartella dei programmi. (C:/Programmi)
    • 0x0002 Cartella programmi utente corrente (C:/Documents and Settings/max/Menu Avvio/Programmi)
    • 0x0007 Programmi in esecuzione automatica all'avvio dell'utente corrente (C:/Documents and Settings/max/Menu Avvio/Programmi/Esecuzione automatica)
    • 0x0024 Cartella di Windows. (C:/WINDOWS)
    Ecco quelli di Window Vista:

    Num. Descrizione Esempio
    0 Desktop utente C:/Users/Ken/Desktop
    2 Programmi utente C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Start Menu/Programs
    5 Documenti utente C:/Users/Ken/Documents
    6 Favoriti utente C:/Users/Ken/Favorites
    7 Programmi di avvio utente C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup
    8 Cartella file recenti utente C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Recent
    9 Cartella utente SendTo C:/Users/Ken/AppData/Roaming/Microsoft/Windows/SendTo
    11 Cartella "Start Menu" generale C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Start Menu
    13 Cartella musica utente C:/Users/Ken/Music
    14 Cartella video utente C:/Users/Ken/Videos
    16 Cartella desktop utente C:/Users/Ken/Desktop
    19 Cartella utente "Network Shortcuts" C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Network Shortcuts
    20 Cartella di sistema Fonts C:/Windows/Fonts
    21 Cartella utente Templates C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Templates
    22 Cartella di sistema "Start Menu" C:/ProgramData/Microsoft/Windows/Start Menu
    23 Cartella di sistema dei programmi "Start Menu/Programs" C:/ProgramData/Microsoft/Windows/Start Menu/Programs
    24 Cartella di sistema programmi di avvio C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Startup
    25 Cartella desktop comune a tutti gli utenti C:/Users/Public/Desktop
    26 Cartella utente "Roaming" C:/Users/Ken/AppData/Roaming
    27 Cartella utente stampanti C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Printer Shortcuts
    28 Cartella utente dati locali C:/Users/Ken/AppData/Local
    29 Cartella utente programmi di avvio C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup
    30 Cartella di sistema programmi di avvio C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Startup
    31 Cartella utente favoriti C:/Users/Ken/Favorites
    32 Cartella utente file temporanei internet C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Temporary Internet Files
    33 CSIDL_COOKIES C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Cookies
    34 Cartella utente storico C:/Users/Ken/AppData/Roaming/Microsoft/Windows/History
    35 Cartella di sistema dati applicazioni C:/ProgramData
    36 Cartella di windows C:/Windows
    37 Cartella "System32" C:/Windows/system32
    38 Cartella di sistema Programmi C:/Program Files
    39 Cartella utente immagini C:/Users/Ken/Pictures
    40 Cartella utente C:/Users/Ken
    41 Cartella "system32" C:/Windows/system32
    42 Cartella programmi C:/Program Files
    43 Cartella file comuni ai programmi C:/Program Files/Common Files
    44 Cartella file comuni ai programmi C:/Program Files/Common Files
    45 Cartella di sistema tempates C:/ProgramData/Microsoft/Windows/Templates
    46 Cartella comune documenti C:/Users/Public/Documents
    47 Cartella di sistema che punta ai programmi di amministrazione C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Administrative Tools
    48 Cartella utente che punta ai programmi di amministrazione C:/Users/Ken/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Administrative Tools
    53 Cartella utente musica C:/Users/Public/Music
    54 Cartella utente immagini C:/Users/Public/Pictures
    55 Cartella utente video C:/Users/Public/Videos
    56 Cartella risorse di sistema C:/Windows/Resources
    59 Cartella burn C:/Users/Ken/AppData/Local/Microsoft/Windows/Burn/Burn

    venerdì 11 luglio 2014

    Script reporter

    Scrivere programmi in Livecode è molto semplice, ma leggere i programmi di altri può esserlo meno. Il sistema di programmazione di Livecode associa il codice agli oggetti, quindi esaminando lo script di un altro,  si può perdere del tempo a capire dove è stato inserito il codice. L'application browser di Livecode indica dove è il codice, ma esiste uno strumento molto più semplice da utilizzare scaricabile qui: http://livecodeshare.runrev.com/stack/581/Script-Reporter-LC



    Questo programma vi permette di esaminare e modificare solo il codice, mostrandovi dove si trova.

    giovedì 10 luglio 2014

    File, filtri e ordinamento

    Oggi esamineremo come ottenere una lista di file e cartelle, filtrarle e ordinarle.
    Prima di tutto esaminiamo come ottenere la lista dei file nella cartella corrente:

    put the files


    questo comando vi crea una lista di files, ordinati uno per riga:

    .setup.exe
    .setup.txt
    about.txt
    Engine License.txt
    IDE License.txt
    License Agreement.txt
    LiveCode Community.exe
    Open Source Licenses.txt
    Release Notes.pdf
    revpdfprinter.dll
    revsecurity.dll


    Se volessimo ottenere più informazioni sui file, ci basterebbe aggiungere l'opzione detailed:

    put the detailed files


    e otterremmo una lista, proprio come questa  dove in ogni riga trovereste, se il sistema operativo fornisce tale informazioni:
    • Il nome, in formato URL (quello usato dai browser)
    • Dimensione in bytes (corrisponde al data fork su Mac)
    • Dimensione del resource fork (solo per Mac)
    • Data di creazione in secondi
    • Data di modifica in secondi
    • Data di ultimo accesso in secondi
    • Data dell'ultimo backup (solo per Mac)
    • Proprietario del file (solo Linux e Mac)
    • Gruppo di appartenenza (solo Linux e Mac)
    • Permessi del file
    • Creatore e tipo del file (solo Mac)

    proprio come questa lista:

    .setup.exe,53653104,,1404119405,1404119409,1404907646,,,,777,
    .setup.txt,73132,,1404119356,1404119409,1404119409,,,,666,
    about.txt,14689,,1404119356,1404119356,1404119356,,,,666,
    Engine+License.txt,34458,,1404119358,1404119358,1404119358,,,,666,
    IDE+License.txt,1587,,1404119359,1404119359,1404119359,,,,666,
    License+Agreement.txt,34182,,1404119359,1404119359,1404119359,,,,666,
    LiveCode+Community.exe,3715072,,1404119359,1404119360,1404907620,,,,777,
    Open+Source+Licenses.txt,41578,,1404119360,1404119360,1404119360,,,,666,
    Release+Notes.pdf,474521,,1404119360,1404119360,1404119360,,,,666,
    revpdfprinter.dll,753664,,1404119360,1404119360,1404310153,,,,666,
    revsecurity.dll,1553408,,1404119360,1404119360,1404907622,,,,666,

    Alla stessa maniera potete ottenere la lista delle cartelle con:

    put the folders
    #oppure
    put the detailed folders


    ecco la lista normale delle cartelle:

    ..
    Documentation
    Externals
    Plugins
    Resources
    Runtime
    Toolset


    Come vedete il sistema operativo, Windows in questo caso, può aggiungere delle cartelle fittizie quando si richiede la lista delle cartelli. Le cartelle fittizie possono essere quella indicata da un punto (.) e/o quella indicata da due punti (..). La cartella mostrata come un punto (.) significa la cartella stessa; mentre la cartella con due punti (..) rappresenta la cartella superiore, cioè quella che contiene la cartella corrente.

    Se ci danno fastidio queste cartelle virtuali, possiamo eliminarle dalla lista semplicemente con il comando filter, ad esempio:

    put the folders into temp
    filter lines of temp without ".."
    filter lines of temp without "."



    Se vogliamo avere la lista dei file ordinati per dimensione, ci basta usare sort:


    put the detailed files into temp
    sort lines of temp descending numeric by item 2 of each


    Per finire, se vogliamo spostarci in un'altra posizione, basta impostare la proprietà folder (senza la s finale), ad esempio per salire di una cartella basta:

    set the folder to ".."


    Oppure potete impostare folder con un percorso assoluto:

    set the folder to "C:/Programmi/RunRev"



    mercoledì 9 luglio 2014

    Nuovo forum in italiano

    Visto che il forum di Google permetteva solo a chi aveva una email Google di partecipare, ho spostato il forum a questo indirizzo: livecodeitalia.freeforums.org
    Siete liberi di partecipare, qualunque email abbiate!

    lunedì 7 luglio 2014

    Mondo Apple: il caso Ecamm

    Oggi vediamo un esempio di programmatori che sviluppano applicazione per prodotti Apple. La casa di sviluppo Ecamm produce programmi per computer Mac e iOS. La loro piattaforma di sviluppo principale è Livecode.
    Questa società è costituita da solo due fratelli gemelli che fin dalla fine degli anni novanta ha avuto passione per la programmazione e i prodotti Apple. Ecco qui una loro foto:
    Al loro attivo hanno otto applicazioni sia per iOS che per MacOS, con prezzi che vanno dai $ 19 ai $ 75.
     Non male per una società fatta da due sole persone.

    venerdì 4 luglio 2014

    Videogioci con Livecode: Alida

    A titolo di esempio presentiamo oggi un vecchio gioco fatto da una persona sola: ALIDA.

    Il gioco è molto simile al più famoso MYST, si tratta di un'avventura grafica "punta e clicca" corredata da alcuni filmati:

    La trama è molto surreale: un'isola con una chitarra gigante; comunque è molto lodevole lo sforzo del programmatore che mostra alcune capacità di Livecode.

    giovedì 3 luglio 2014

    Aggiunte nuove licenze

    Come sapete Livecode è gratuito: se volete fare programmi open source con licenza GPL (General Pulbic License) vi basta andare sul sito www.livecode.com e scaricarvi gratuitamente livecode.
    La versione gratuite non è compatibile con l'App Store di Apple, perchè l'Apple Store non permette di caricare App con licenza GPL. Quindi vi serve una versione di Livecode che vi permetta di rilasciare App con una licenza non GPL.
    Per fortuna adesso sono disponibili versioni di Livecode con licenza non GPL molto più economiche di quella commerciale classica. Esaminiamo tutte le licenze disponibili:
    • Community: è gratuita permette di ottenere programmi con licenza GPL per Windows, Linux, Mac e Android.
    • Membership: costa $ 99 all'anno, permette di ottenere programmi non commerciali per Windows, Linux, Mac, Android e iOS. Il codice rimane aperto.
    • Indy: costa $ 299 all'anno, permette di ottenere programmi commerciali per Windows, Linux, Mac, Android e iOS. Il codice può essere chiuso.
    • Business: costa $ 999. E' obbligatoria se si guadagna più di $ 500'000 all'anno con Livecode (Si, c'è gente che guadagna così tanto programmando con Livecode). Vi da accesso ad un forum riservato.
    • Pro: costa $ 1'999 all'anno. Vi assegnano un account manager personale, vi telefonano direttamente per capire cosa volete fare con Livecode, i bug segnalati da voi vengono risolti prima, avete delle anteprime sugli sviluppi di Livecode.
    • Premium: costa $ 10'000 l'anno, oltre tutti i benefici della Pro, avete: funzioni aggiuntive richieste da voi hanno la precedenza, supporto telefonico, tutti i pacchetti aggiuntivi sono inclusi, biglietto per il congresso annuale incluso, una vostra app viene testata e migliorata direttamente dai programmatori di Livecode.
    Qui trovate la pagina con tutte le versione in raffronto: http://livecode.com/livecode-licenses/

    mercoledì 2 luglio 2014

    Aggiungere l'esportazione delle app in HTML5 a Livecode

    Come già sapete, se scrivete un programma in Livecode, con un click potete trasformarlo un un programma per Widnows, Linux, Mac, Android e iOS.
    Bene ora gli inventori di Livecode vogliono aggiungere anche l'esportazione in HTML5, cioè lo stesso programma potrà girare come un'applicazione web, semplice come caricare una pagina dal browser!
    Se non ci credete guardate questo filmato:


    Chiaramente per rilasciare gratuitamente questa nuova funzionalità hanno bisogno di fondi, per questo potete andare alla pagina: http://livecode.com/livecode-to-html5 e fare la vostra donazione. Hanno bisogno di raggiungere la quota di $395'000. Avete meno di 29 giorni per fare la vostra donazione, se non raggiungeranno la quota, vi restituiranno la donazione.


    Immaginate che per far funzionare la vostra app basti caricare il file da un browser, come qualunque altra pagina web. HTML5 significa che la pagina sarà composta da cosice HTML e javascript, ma senza che voi dobbiate impazzirvi a scrivere il javascript!
    Non ci sarà bisogno di nessun plugin aggiuntivo, funzionerà con qualsiasi browser!

    P.S. stanno cercando programmatori, se siete interessati scrivete a: support@runrev.com

    martedì 1 luglio 2014

    Un browser integrato

    Funzionalità molto interessante è quella di poter attivare un browser integrato nelle nostre applicazioni. Questo browser potrà visualizzare le pagine web e tutti i file che può leggere il browser predefinito del sistema operativo su cui gira il nostro programma (ad esempio Internet Explorer su Windows). In questo modo potreste integrare anche un lettore di PDF dentro al vostro programma.
    Il browser va creato dal programma, non può essere un elemento già presente. Vediamo un esempio, facciamo due pulsanti, in uno mettiamo il seguente codice per avviare il browser:

    on mouseUp
       #Ci serve l'identificativo unico della finestra
       put the windowid of this stack into tID
       #Avviamo il browser
       put revBrowserOpen(tID,"http://www.google.com") into browserid
       #Salviamo l'identificativo del browser
       set the curbrow of this stack to browserid
       #Impostiamo alcune proprieta' del browser
       revBrowserSet browserid,"rect","0,0,600,400"
       revBrowserSet browserid,"showBorder","true"
    end mouseUp


    Nell'altro il seguente per chiuderlo:


    on mouseUp
       put the curbrow of this stack into temp
        revbrowserclose temp
    end mouseUp


    Se tutto è andato bene il risultato sarà: