mercoledì 30 dicembre 2015

Pagamenti in-app per iOS

I pagamenti "in-app" sono delle opzioni sbloccabili solo dietro pagamento. I pagamenti in-app si possono mettere sia un'app gratuita sia in una a pagamento. Questo sistema risulta molto comodo per diffondere i nostri programmi e poi farci pagare per delle funzioni aggiuntive o dopo un certo periodo di tempo.
Questo sistema è implementabile con livecode anche su iOS, e a questa pagina trovate una guida con tanto di file scaricabile: http://lessons.livecode.com/m/4069/l/186807-how-do-i-implement-in-app-purchases-in-livecode-apple-appstore


martedì 29 dicembre 2015

Percepire più pulsanti premuti

Molte volte, soprattutto quando si scrivono videogiochi, è importante riuscire a capire se l'utente stia premendo contemporaneamente dei pulsanti, ad esempio due tasti frecce insieme per far spostare in diagonale un personaggio.
In livecode è possibile utilizzando la funzione keysdown():


on keydown
   put keysdown() into msg
end keydown

on arrowkey
   put keysdown() into msg
end arrowkey


Nell'esempio avrete la finestra dei messaggi che si aprirà mostrandovi i numeri dei tasti premuti, separati da virgola.
Ad esempio freccia destra e freccia in basso premuti insieme sono: "65363,65364".
In questo modo potrete gestire qualsiasi combinazione di tasti senza problemi.

lunedì 28 dicembre 2015

Fare un'app per iPhone in 3 minuti

Il video seguente è un esempio per fare una app per iPhone in 3 minuti usando livecode, questo video è stato presentanto alla conferenza MacTech del 2011:

giovedì 24 dicembre 2015

Animazione con le GIF

In un altro posto abbiamo visto come creare animazioni e sfruttarle per fare videogiochi (http://livecodeitalia.blogspot.it/2014/05/come-creare-un_14.html), oggi vedremo come fare prima usando le GIF animate.
Ad esempio prendiamo due sfondi animati come i seguenti:

Ora scegliano due animazioni, una per il personaggio da fermo e una per il personaggio quando fa un'attività:
A questo punto importatele nel vostro programma: File -> Import as control -> Image file. A ogni immagine sarà assegnato da livecode un numero ID nella finestra delle proprietà (ad esempio 1012), annotiamoli per usarli dopo.
Create due pulsanti, uno per lo sfondo che chiameremo sfondoPrincipale  e uno per il personaggio, che chiameremo Ryu. Ovviamente dalle proprietà levate show name, Three D, border, hilite border.
Fatto ciò possiamo creare un pulsante per cambiare lo sfondo col seguente codice:

on mouseUp
   if the icon of button "sfondoprincipale" is 1012 then
      set the icon of button "sfondoprincipale" to 1013
   else
      set the icon of button "sfondoprincipale" to 1012
   end if
end mouseUp



Mentre per il personaggio, possiamo creare un altro pulsante col seguente codice, sapendo che l'animazione dell'attacco dura 600 millisecondi:

on mouseUp
   lock screen
   set the currentframe of image "street_fighter_005_rev5.gif" to 1
   set the repeatCount of image "street_fighter_005_rev5.gif" to 1
   set the icon of button "ryu" to 1018
   unlock screen
   send "resetta" to button "ryu" in 600 millisec
end mouseUp


Resetta è un messaggio del pulsante Ryu per rimettere l'animazione standard:


on resetta
   set the icon of me to 1019
end resetta



Per ora abbiamo associato gli eventi ai click delmouse, ma si possono associare a ciò che preferiamo.
Il risultato è il seguente:

Utilizzare le GIF permette di suddividere il lavoro fra programmatori e disegnatori. I disegnatori devono solo dire al programmatore quanto durano le animazioni, che è un valore impostabile nella GIF. Inoltre, come avete visto, usare le GIF richiede molto meno codice.

venerdì 18 dicembre 2015

Contare le ricorrenze delle parole di un testo

Immaginiamo di dover sapere quante volte le parole sono state ripetute in un testo, ad esempio nella frase "Tre tigri contro tre tigri" abbiamo che la parola tre e la parola tigri sono ripetute due volte.
In livecode fare il conteggio delle ripetizioni di tutte le parole è velocissimo, basta il seguente codice:

repeat for each word tWord in testo     
   add 1 to conteggio[tWord]
end repeat


in questo modo otteniamo un array dove ogni elemento è individuato dalla parola e contiene il numero di ripetizioni. Questo conto è velocissimo, per tutta la divina commedia livecode impiega meno di 1 secondo!
Sempre utilizzando la frase "Tre tigri contro tre tigri", otterremo:
  • conteggio["tre"] = 2
  • conteggio["tigri"] = 2
  • conteggio["contro"] = 1
Il seguente codice prende il testo contenuto in un campo e mette il conteggio in un secondo campo, ordinandolo per numero di ricorrenze:



   repeat for each word tWord in field 1   
      add 1 to conteggio[tWord]
   end repeat
   combine conteggio using return and ":"
   set itemdel to ":"
   sort lines of conteggio numeric by item 2 of each
   put conteggio into field 2



Ad esempio per la divina commedia abbiamo:

martedì 15 dicembre 2015

Rinominare automaticamente i nuovi controlli

Quando usiamo livecode per scrivere un programma, tutti i nuovi bottoni hanno come nome "button", i campi di testo "field" e così via...
In realtà hanno anche un nome univoco che è il numero di ID, ma non è semplice da ricordare.
Se volessimo che ogni nuovo controllo abbia già un nome univoco semplice e immediato possiamo usare questa estensione gratuita per livecode scaricabile da link qui di seguito: ControlNamer
Avviando questo programma vi apparirà una finestra con un solo pulsante per attivare o disattivare l'estensione:

Se l'attiverete, ogni nuovo controllo avrà un nome diverso, tipo: button1, button2, button3, ecc.
In questo modo potrete orientarvi subito quando lavorate con finestre con moltissimi controlli identici.

venerdì 11 dicembre 2015

Usare i cookie col livecode server

Se usiamo livecode anche come server, è importante saper utilizzare i cookie. Oggi vediamo come fare.
Se vogliamo creare un cookie temporaneo che si cancella quando si chiude il browser, questo è il codice da inserire nella pagina html:

<?lc
put cookie "sessioncookie" for "/" with "Questo cookie si cancella quando si chiude il browser"
?>


se invece vogliamo un cookie che rimanga per del tempo sul computer dell'utente, dobbiamo specificare la durata indicando la data di termine in secondi UNIX , ad esempio:


<?lc
put cookie "yearcookie" for "/" with "Questo cookie dura un anno" until (the seconds + 60 * 60 * 24 * 365)
?>


Per leggere i cookie, basta utilizzare la variabile $_COOKIE che contiene tutti i cookie in un array.
Esempio:


<?lc
put $_COOKIE into tCookiesArray
if tCookiesArray is an array then
   put tCookiesArray["yearcookie"] into temp
end if
?>


Con questi esempi la variabile temp contiene "Questo cookie dura un anno".
Il ciclo if è solo un controllo per verificare che l'utente abbia dei cookie.

mercoledì 9 dicembre 2015

Servizi aggiuntivi livecode

La società livecode, oltre ad offrire livecode gratuitamente o a pagamento a seconda delle vostre esigenze, offre dei servizi aggiunti per quelle società o persone che hanno bisogno di qualcosa di più.
A questa pagina trovate le varie possibilità offerte: https://livecode.com/livecode-services/
Ecco i servizi più comuni offerti:

Nuove funzionalità (Add a Feature)

Potete richiedere di aggiungere a livecode delle funzionalità, queste aggiunte, se non rientrano in quelle già pensate da nel prospetto annuale, saranno aggiunte quanto prima.

Una giornata con un programmatore (Architecture Advice)

Potete prenotare una giornata con un programmatore, che vi spieghi alcune tecniche o trovi delle soluzioni ai vostri problemi.

Correzione urgente di bug (Priority Bug Fix)

Potete richiedere di correggere un bug prima di altri. Se quel bug per voi è critico, può risparmiarvi parecchi problemi.

Revisione del vostro codice (Code Review)

Potete chiedere di controllare e correggere il vostro codice. 

Corso di formazione personalizzato (Customized Training)

Potete richiedere della formazione specifica su certi argomenti. 

lunedì 7 dicembre 2015

Avviare programmi minimizzati

La tecnica che mostro qui di seguito  non è esclusiva per livecode, ma può essere utile saperlo anche per i programmatori di livecode. Se vi serve di avviare un programma in background, ma che non ha delle opzioni specifiche, su Windows potere fare in modo che comunque si avvi in background con il comando start /min, ecco qui di seguito un esempio:


put shell("START /MIN C:\" & quote & "Programmi\Free SMTP Server\localsrv.exe" & quote)


come vedete potete anche lanciare programmi che nel percorso o nel nome abbiano degli spazi; in tal caso dovete usare la parola quote, che rappresenta le virgolette, da mettere dopo c:\.

mercoledì 2 dicembre 2015

Conferenza annuale Livecode 2016

E' stata pubblicata la data e il lugo della conferenza annuale Livecode 2016.
Quest'anno si terrà in Edimburgo (Scozia) dal 2 al 4 Agosto 2016.

In questi tre giorni dedicati a livecode potrete incontrare altri sviluppatori, divertirvi al festival Fringe di Edimburgo e inoltre prenotare una giornata con uno dei programmatori di livecode in modo che vi aiuti nel vostro progetto. In pratica è come se lo assumeste per una giornata.
Qui potete vedere i dettagli dell'evento: https://livecode.com/edinburgh-2016/
Qui potete prenotare un programmatore tutto per voi: https://livecode.com/edinburgh-2016/developer-day/

lunedì 30 novembre 2015

Baby name eliminator

Oggi presentiamo un'app per iOS, fatta con livecode, che aiuta a scegliere il nome per i propri figli: baby name eliminator.
Questa app permette i scegliere una lista di nomi per categoria, dare un voto ai nomi preferiti e pian piano arrivare al nome che più ci piace.
Il programma lo potete scaricare da qui: https://itunes.apple.com/us/app/baby-name-eliminator/id459025614?mt=8
Qui sotto potete vedere alcune schermate:

giovedì 26 novembre 2015

Raccolta fondi per nuovo comando replace

Il comando replace in livecode serve per sostituire una parola con un altra in una stringa, ad esempio:

replace "Mario" with "Lucia" in "Mario si alza presto la mattina"


Ora è possibile applicarlo anche direttamente ai campi di testo così:

replace "Mario" with "Lucia" in field "miotesto"


solo che così perdiamo tutta la formattazione del testo.
Per questo motivo la società livecode ha lanciato una nuova raccolta fondi per permette al replace di lasciare intatta la formattazione.
Potete trovare tutte le informazioni qui: https://livecode.com/project/find-replace/

Che ne pensate?

giovedì 19 novembre 2015

Programmatore livecode cercasi

Pubblico qui un'annuncio della società Trevix design :

Salve a tutti.
Sto sviluppando una applicazione per commercialisti, avvocati e professionisti in genere che promette di essere molto interessante.
Prevista per Desktop e tablet, l'idea ha passato il primo turno del Pitch your App in Create it with Livecode.
Il premio eventuale finale sarà un viaggio a Los Angeles per presentare la App a possibili investitori.
La necessità di renderla disponibile per mobile e la complessità delle funzioni che ormai vengono richieste a qualsiasi App (acquisti in App, DataGrid, Sharing files, notifiche, protezione, strategie di vendita, ecc) mi fanno rendere conto che per una persona sola il lavoro è immane.
Cerco quindi un collaboratore/socio che, a fronte di futuri possibili utili (niente soldi subito), voglia aiutarmi a svilupparla.
Idealmente il collaboratore ha una preparazione simile alla mia (lavoro con Livecode da 10 anni e ho già alcune applicazioni attive - http://www.trevix.it/software.html) o complementare. Conoscenza della lingua inglese è necessaria.
Contattatemi per maggiori informazioni: info@trevix.it
Roberto
trevix


martedì 17 novembre 2015

BJJ Scoreboard

Certe volte capita che il programma che ci servirebbe tantissimo non esiste. In questi frangenti o rinunciamo, o ce lo creiamo da noi.
Ricardo Varjão ha deciso di farsi da solo il programma per segnare i punti nei tornei di ju-jitsu utilizzando livecode.
Il risultato è stato talmente eccellente tanto che il suo programma è tra i più utilizzati per segnare i punti nei tornei mondiali.
Ecco una schermata del suo programma:


Il programma è un'app per iOS e lo potete trovare qui: https://itunes.apple.com/us/app/bjj-scoreboard/id513066325?mt=8
Il programma può essere utilizzato oltre che nei tornei, anche per allenamento.

lunedì 16 novembre 2015

Mandare email dal server livecode

Livecode, oltre ad essere un ottimo linguaggio di programmazione, è disponibile anche come server web.
Se abbiamo installato il livecode server su un sistema operativo Linux (o Mac), possiamo appoggiarci a un programma di posta già presente, in modo da poterlo sfruttare anche con altre applicazioni.
Uno dei programmi sempre presenti su linux è sendmail.
Qui di seguito vediamo il codice del messaggio che potremmo usare per inviare le email:

on mail pTo, pSub, pMsg, pFrom, pCc, pBcc, pHtml, pAtts
   #Questo messaggio serve per mandare le email
   #ogni indirizzo può essere del tipo "nome <indirizzo_email>"
   # gli indirizzi possono essere separati da virgola
   # la lista degli indirizzi, in alternativa, può essere un array, con un array degli allegati per ognugno
   #Variabili:
   -- pTo       - La lista degli indirizzi a cui spedire
   -- pSub       - L'oggetto del messaggio
   -- pMsg       - Il corpo del messaggio
   -- pFrom    - L'indirizzo email del mittente
   -- pCc       - La lista degli indirizzi in copia (CC)
   -- pBcc       - La lista degli insirizzi in copia nascosta (BCC)
   -- pHtml       - Questa variabile può essere true o false, e indica se il messaggio deve essere in HTML o meno
   -- pAtts       - L'array degli allegati da spedire, nella forma:
   --                   * name: il nome dell'allegato
   --                   * path: il percorso assoluto di dove si trova l'allegato sul server
   --                   * type: il tipo MIME dell'allegato
   
   #Qui costruiamo l'header del messaggio anche con gli indirizzi A: e CC:   
   put "From:" && pFrom & return & "To:" && pTo & return & "Subject:" && pSub & return into tMsg   
   if pCc is not empty then
      put "Cc:" && pCc & return after tMsg
   end if
   
   #qui mettiamo il separatore per gli allegati (multipart)   
   if pAtts is an array then
      local tBoundary
      put "boundary" & the seconds into tBoundary
      put "MIME-Version: 1.0" & return & "Content-Type: multipart/mixed; boundary=" & wrapQ(tBoundary) & return & "--" & tBoundary & return after tMsg
   end if
   
   #qui mettiamo il corpo del messaggio (HTML o TEXT)   
   if pHtml is true then
      put "Content-Type: text/html;" & return & return after tMsg
   else
      put "Content-Type: text/plain;" & return & return after tMsg
   end if
   put pMsg & return after tMsg
   
   #qui mettiamo gli allegati
   if pAtts is an array then
      put "--" & tBoundary & return after tMsg
      repeat for each element tAtt in pAtts
         if there is a file tAtt["path"] then
            if tAtt["type"] is empty then
               get "application/octet-stream"
            else
               get tAtt["type"]
            end if
            put "Content-Type:" && it & "; name=" & wrapQ(tAtt["name"]) & ";" & return & "Content-Transfer-Encoding: base64;" & return & return & base64Encode(URL ("binfile:" & tAtt["path"])) & return & "--" & tBoundary & return after tMsg
         end if
      end repeat
   end if
   
   #spediamo l'email con sendmail. Lo chiamiamo da shell e poi mandiamo la stessa email agli indirizzi in BCC.
   get shell("echo" && wrapQ(shellEscape(tMsg)) && "| /usr/sbin/sendmail" && wrapQ(shellEscape(pTo)) && "-f" && wrapQ(shellEscape(pFrom)))
   if pBcc is not empty then
      get shell("echo" && wrapQ(shellEscape(tMsg)) && "| /usr/sbin/sendmail" && wrapQ(shellEscape(pBcc)) && "-f" && wrapQ(shellEscape(pFrom)))
   end if
   #FINE   
end mail

function shellEscape pText
    repeat for each char tChar in "\`!$" & quote
       replace tChar with "\" & tChar in pText
    end repeat
    return pText
end shellEscape

-- wrap quotes around text
function wrapQ pText
    return quote & pText & quote
end wrapQ


Come vedete è quasi più grande il commento per spiegare come funziona che il codice del messaggio.
In fondo ci sono due funzioni piccolissime: una per mettere il carattere di escape per i caratteri riservati della shell (shellEscape()), l'altra funzione (wrapQ()) serve solo a mettere il virgolette all'inizio e alla fine di una stringa.
Interessante è la stringa utilizzata per separare gli allegati è creata unendo il la parola "boudary" con il numero che esce fuori con la funzione seconds(). Per chi non lo sapesse la funzione seconds indica il numero di secondi tra l'istante corrente è il 1/1/1970. In questo modo non ci dovrebbero essere problemi a separare gli allegati tra loro.
Dove vedete due e commerciali ("&&"), non è un errore, bensì è un sistema più veloce equivalente a scrivere "& space &".
Il resto del codice è tutto commentato, ma se avete domande, fatele pure nei commenti e proverò a rispondervi.


venerdì 13 novembre 2015

Creare un app da zero in 3 ore e 16 minuti

Il video seguente di appena 3 minuti vi mostra tutto il procedimento per creare un app videogioco per iPhone, dalla grafica, fino all'installazione utilizzando livecode.
E' stato chiesto ad un programmatore che non conosce l'ojective-c e che non ha mai sviluppato per cellulari di fare tutto con livecode.
Partendo dall'idea, ai disegni e allo sviluppo, le righe di codice, non ci sono volete che poche ore.
Ecco come ha distribuito il tempo:
  • l'idea: 8 minuti
  • creare la grafica da zero: 39 minuti
  • scrivere il codice e testare il programma sul simulatore: 2 ore e 29
Ecco il simpatico video:


mercoledì 11 novembre 2015

Widget Browser

Come sapete la versione 8 di livecode non è per gli utenti normali, è solo di prova e la stanno implementando lentamente. Se volete programmare, utilizzate la versione 7.
Nonostante ciò, un'altra novità della versione 8, inserita dalla versione 8 dp8, è il controllo browser.
Ora è possibile direttamente trascinare un browser web dentro ai nostri programmi, semplicemente utilizzando l'icona col mondo presente nella finestra degli strumenti.
Browser in modalità edit

Anche nelle versioni precedenti di livecode era possibile inserire un browser, ma era tutto da codice. Ora, grazie alla nuova architettura a widget, inserire nuovi controlli come questo in livecode è molto più semplice.
Widget in modalità utilizzo (browse tool)
Le sue due proprietà fondamentali sono:

  • URL
  • htmltext
Impostando la proprietà URL, carica la pagina web indicata e imposta la proprietà htmlText mettendoci dentro quello che riceve dalla pagina.
Viceversa, impostando la proprietà htmlText, comparirà nel browser ciò che scrivete in HTML e la proprietà URL diviene un indirizzo fittizio (http://libbrowser_dummy_url/).
Qui sotto un esempio mettendo come htmlText la stringa "<b>Ciao livecode!</b>".
htmlText="<b>Ciao livecode!</b>"

martedì 10 novembre 2015

any

Ho appena scoperto una parola comodissima da usare in livecode e voglio condividere questa nozione con voi lettori del blog.
La parola è any, e serve ad estrarre un valore casuale da un qualsiasi tipo di lista o oggetto.
Ad esempio:


   put "1,3,6,5,12,58,87" into temp
   put any item of temp


ma la anche questo è valido:

put any key of mioArray



oppure questo:
put any line of miaLista


Non solo potete estrarre elementi a caso senza impazzirvi con la funzione random(), ma potete utilizzarla anche in altri modi nei vostri programmi:
go to any card

select any button

lunedì 9 novembre 2015

Livecode 7 compatibile raspberryPi 2

Livecode 7 è compatibile con raspberry Pi 2.
Raspberry Pi 2

Se avete questo nuovo modello, potete programmarci con livecode senza problemi.

venerdì 6 novembre 2015

Licenze e sconti

In questi giorni c'è uno sconto del 30% sul prezzo delle licenze commerciali di livecode.
Livecode è gratuito e open source, ma per fare applicazioni chiuse (closed source) bisogna usare la versione a pagamento. Sul sito di livecode c'è il seguente semplice specchietto per capire cosa si può fare e cosa no con la versione open source. Sono le stesse restrizione di qualunque software open source:

Si può usare la versione gratuita Open SourceSi deve usare la versione Commerciale
Il dipendente Mario vuole fare un software da usare dentro la sua azienda per gestire le fatture.

Il dipendente Mario vuole fare un software per gestire le fatture ad altri senza mostrare il codice.
La società Rossi vuole distribuire un programma e il codice sorgente.

La società Rossi vuole distribuire una App su iOS, su iTune o su Mac app Store.
L'insegnante Luigi vuole insegnare a programmare ai suoi studenti

Luigi vuole vendere il suo programma senza distribuire il codice sorgente.
Lo studente Marco vuole creare una app Android open source

La società Sara crea una app chiusa per un cliente. Senza fornirgli i sorgenti
La società Franchi vuole fare una app open source e guadagnare con servizi e supportoLa società Franchi vuole incorporare nel suo programma chiuso qualcosa fatto con livecode. (servirebbe la licenza tipo enterprise)

Stefano vuole creare una app open source e ricevere soldi come donazioniLa società Luca ha bisogno di supporto tecnico a una correzione urgente di alcuni bug. (servirebbe la licenza tipo enterprise)

Roberto vuole creare un'applicazione server per la sua società che comunica con i cellulari dei dipendenti

Roberto vuole creare un'applicazione server  che comunica con i cellulari dei dipendenti e venderla
Carlo vuole creare un programma da condividere con gli altri programmatori di livecodeCarlo vuole fare un programma con un canone.
La licenza commerciale serve anche  anche se è incorporato in un programma con un canone.

Questo specchietto è molto utile anche per chi lavora nell'open source.

giovedì 5 novembre 2015

json

Le Json sono un metodo per inviare più informazioni, tipo XML, trovate una spiegazione dettaglita qui: http://www.json.org/json-it.html

Sono molto usate in Java e ad esempio è il seguente testo:



{"impiegati":[
    {"Nome":"John", "cognome":"Doe"},
    {"Nome":"Anna", "cognome":"Smith"},
    {"Nome":"Peter", "cognome":"Jones"}
]}

Se dovete ricevere o inviare dati nel formato Json, esiste una libreria che trasforma un array livecode in Json e vicevera. Si può scaricare da qui: https://github.com/bhall2001/fastjson  basta scaricare solo il file fastjson.lc.
Incorporandolo nei vostri programmi (start using stack "fastJson") avrete accesso alle seguenti funzioni:

  • arrayToJson(), per trasformare un array livecode in un testo Json
  • jsonToArray(), per trasformate un file Json in un array livecode
  • isJson(), per verificare che sia un testo Json
Personalmente non trovo nulla di speciale in Json, per mandare un array potete usare CSV, XML e le funzioni arryencode / arraydecode, comunque è utile conoscerlo.

mercoledì 4 novembre 2015

Esempio HTML5

Una delle novità di livecode 8 è l'esportazione in HTML5, cioè il vostro programma può essere eseguito anche dentro un browser. Ad esempio il seguente programma di disegno:

lo potete provare a questo link: http://hyperhh.org/html5/krikelKrakel-8.0.0-dp-7X.html

Sempre dello stesso autore potete provare altri esperimenti a questa pagina: http://hyperhh.org/html5/

mercoledì 28 ottobre 2015

Un altro libro su livecode

Tutti i lettori di questo blog disicuro già conoscono il libro incluso dentro livecode, che potete trovare anche qui: https://www.scribd.com/doc/281187138/LiveCode-User-Guide
Ora esiste anche un libro introduttivo più semplice: Livecode computer programming made ridiculously simple
Il libro l'ha scritto Stephen Goldberg, un medico che ha un sito con svariate pubblicazioni educative per studenti di medicina. Grazie a livecode è riuscito a fare in breve tempo programmi didatici che altrimenti non sarebbe riuscito a realizzare. Il suo sito è: www.medmaster.net/ Questo libro lo potete leggere e scaricare anche da qui sotto:

martedì 27 ottobre 2015

Grazie Reggio Emilia

Voglio ringraziare tutto lo staff del Reggio Emmilia linux user group (http://relug.linux.it) per l'accoglienza e la possibilità di aver potuto fare una fantastica lezione introduttiva su Livecode.
Sono stato anche colpito dall'entusiasmo degli studenti che hanno visto livecode in azione.
Ecco alcune foto dell'evento:












Qui sotto invece avete le slide della presentaziono:

mercoledì 21 ottobre 2015

Linux day Reggio Emilia

Sabato 24 Ottobre farò una presentazione di Livecode a linux day a Reggio Emilia.
Per chi fosse interessato a incontrarmi e parlare ci possiamo vedere lì.
Ecco la locandina dell'evento:


L'ingresso è gratuito, ma si consiglia la prenotazione qui: http://www.eventbrite.it/e/biglietti-linux-day-2015-a-reggio-emilia-18607555700

martedì 20 ottobre 2015

Smart watch

Avete mai provato a creare un programma per un orologio smart? E' come per un qualsiasi programma android, considerate la grandezza dello stack sui 240x240 pixel.
Ecco alcuni esempi:
Nell'IDE e nell'orologio
L'app livecode è la "Roger Wear"
Eccola in funzione
Uno screenshot dello sviluppo dell'app

lunedì 19 ottobre 2015

Archeodox

Oggi presentiamo un software per gestire scavi archeologici, gestire e catalogare reperti e molto altro ancora. Questo software si chiama Archeodox: e chiaramente è fatto con livecode:

Archodox permette di catalogare e lavorare con misure, descrizioni, foto, immagini, GIS, CAD o alrri file 3D.
Permette di lavorare su diversi sistemi operativi contemporaneamente, così ogni ricercatore può lavorare col computer che preferisce.
Ecco alcuni casi reali di utilizzo:


In Germania è già utilizzato. E' basato su codice open source e scaricabile da qui: http://www.archaeodox.de/

venerdì 16 ottobre 2015

Disk drill

Oggi presentiamo un software fatto con livecode per recuperare i dati su qualsiasi dispositivo collegabile al proprio computer (Win o Mac): disk drill.



Disponibile per Mac qui: http://www.cleverfiles.com/
e per windows qui: http://pc.cleverfiles.com/
Vi permette di

  • Recuperare partizioni
  • riformattare i dischi
  • Recuparare dischi che non si avviano
  • Recuperare file cancellati
  • Svuotare cestini
  • Recuparere dati da pennu USB, card di memoria, ecc.

giovedì 15 ottobre 2015

Sviluppare su iOS

Sviluppare per iOS può sembrare difficile, per questo c'è il seguente video che spiega come poter ottenere provisioning profile per distribuire app per iOS:


Il link apple da cui cominciare è: https://developer.apple.com/
Mentre a questa pagina trovate tutto scritto passo per passo: http://lessons.runrev.com/m/4069/l/32957-how-do-i-create-a-distribution-profile-for-ios

mercoledì 14 ottobre 2015

Livecode Vs Delphi

C'era una volta in programma scritto in Delphi, questo programma era un registro per insegnanti fatto così:

Il programma aveva più di 100'000 righe di codice da analizzare, ad un certo punto il programmatore decise se non era più semplice gestirlo riscrivendolo in livecode. Questo programmatore con sole 25'000 righe riscrisse e migliorò il codice ottenendo questo:

Non solo aveva ridotto il codice, ma era riuscito a renderlo più semplice da analizzare e migliorare.
Ecco un paragone fra i due:
Anche il Delphi è un IDE integrato con la grafica, ma è pur sempre ancorato ad un vecchio linguaggio come il Pascal e tutto ciò rende più lungo anche i compiti più semplici.
Il programmatore si chiama Scott McDonald e gestisce il seguente sito: http://www.runrevplanet.com/catalogue.html

lunedì 12 ottobre 2015

Math gadgets

Ecco un altro programma creato con livecode: Math Gadgets.
Si tratta di un programma di assistenza agli studenti per imparare la matematica:
Potete vedere un video del suo funzionamento qui:

E' molto simpatico, con una grafica carina e copre tantissimi argomenti, lo potete trovare qui: http://www.mathgadgets.com/