martedì 22 maggio 2018

Verificare email

Se volete verificare che un indirizzo email sia valido, vi basta utilizzare un'espressione regolare, ecco il codice con livecode:

put "((?i)(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|" & quote & "(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*" & quote & ")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\]))" into regemail
put matchtext(tEmail,regemail,controllo) into temp
if controllo is not tEmail then
   answer tEmail " non è un indirizzo email valido"
else
   answer tEmail " è un indirizzo email valido"
end if


Chiaramente la variabile tEmail contiene l'indirizzo da verificare.

venerdì 18 maggio 2018

Animazioni: indipendenti o ciclo padre?

Livecode permette di fare animazioni e videogiochi in diverse modalità.
Una delle caratteristiche più apprezzate è che ad ogni oggetto si può dire di muoversi in una certa maniera, usare un percorso, in maniera relativa e assoluta. Tutto utilizzando il comando move.
Questo permette di creare animazioni molto complesse con sprite e disegni che si muovono tutti per conto loro, prendono anche decisione autonome.
D'altro canto utilizzare move implica che non dovete bloccare lo schermo con  lock screen per calcolare e costruire nuove immagini.
Lock screen si usa quando non volete far vedere tutti gli spostamenti sullo schermo, ma passare da una configurazione ad un'altra. Se dovete piazzare all'improvviso un'immagine, ma non avete idea delle dimensioni e volete bloccare lo schermo per fare i calcoli, non potete utilizzare anche move; il risultato complessivo verrebbe come un'animazione a singhiozzo.
In tal caso vi conviene utilizzare un unico ciclo che blocca lo schermo, fa tutti gli spostamenti e calcoli, e poi sblocca lo schermo per dare l'effetto di animazione.
Per utilizzare un unico ciclo vi consiglio il comando send "ciclo" to me in 33 millisec; 33 millisecondi è il tempo di aggiornamento ideale per l'occhio umano, un tempo più corto non ha senso, mentre un tempo più lungo vi potrebbe servire se i calcoli sono talmente complessi che per ogni aggiornamento dello schermo vi servono più di 33 millisecondi.
Sta a voi decidere ogni volta quale strada intraprendere a seconda dell'applicazione che state programmando.

sabato 12 maggio 2018

Spesso Livecode è l'unica soluzione

Immaginate di avere un sistema VoIP particolare, un sistema android da interfacciare e siete voi l'incaricato di trovare una soluzione, beh quando si tratta di sistemi variegati livecode diventa l'unica soluzione, ecco un video di esempio:
https://www.facebook.com/rich.blackmore3/videos/1912590665426648/


https://www.facebook.com/rich.blackmore3/videos/1912590665426648/

venerdì 11 maggio 2018

Offerta speciale: livecode hosting a vita

Liveocde ha appena lanciato l'offerta Livecode hosting sul loro cloud a vita a per €499.
Qui trovate tutti i  dettagli, che ne pensate?
https://livecode.com/hosting/pricing/#!/~/

lunedì 23 aprile 2018

Nuova versione di Piccolo installer

E' uscito un mio nuovo aggiornamento di Piccolo Installer, uno stack di Livecode per creare OSX e Windows installers.
Tutte le informazioni qui: https://www.software.trevix.it/piccolo_installer/
Potete inoltre scaricarlo all'interno di LC, su Sample Stacks.

Ringraziamo Marco Trevisan per la segnalazione.

mercoledì 11 aprile 2018

Risolvere il bug del dizionario di livecode 9 su Linux

Su alcune distribuzioni Linux il dizionario appare bianco, c'è un bug misterioso che affligge la libreria di sqlite dbsqlite.so e al momento per risolverla c'è da aggiornare sqlite3 all'ultima versione e copiare il vecchio dbsqlite.so da livecode 8.
Quindi dopo aver aggiornato sqlite vi conviene eseguire come root, oppure con sudo i seguenti comandi:


cd /opt/livecode/livecodecommunity-9.0.0.x86_64/Externals/Database\ Drivers

mv dbsqlite.so dbsqlite.so.bak

cp /opt/livecode/livecodecommunity-8.2.0-dp-2.x86_64/Externals/Database\ Drivers/dbsqlite.so ./

cd ../../Runtime/Linux/x86-64/Externals/Database\ Drivers/

rm dbsqlite.so

ln -s ../../../../../Externals/Database\ Drivers/dbsqlite.so

venerdì 30 marzo 2018

Livecode 9.0.0-RC1

E' uscita la nuova versione di livecode: 9.0.0.rc1
ed è piena di novità!
Vediamole insieme:
  • un nuovo spinner come widget
  • OAuth2 per l'integrazione con Facebook, Google, GitHub e simili
  • funzioni per creare dei comandi stile Linux
  • quando si crea l'eseguibile, adesso tutte le finestre sono chiuse e riaperte. Così facendo ricevono i messaggi di chiusura e apertura. Tenetelo in considerazione.Per evitarlo potete usare questo codice:
    on closeStack
      if the mode of stack "revStandaloneProgress" > 0 then
       exit closesStack
      end if
    end closeStack
  • Supporto da Windows 7 in su
  • Supporto da Linux Ubuntu 14.04 in su
  • Supporto da Mac 10.9 in su
  • Supporto da iOS 6.2 in su
  • Supporto da Android 4.1 in su
  • gli stack script possono contenere un behavior
  • se esportate come HTML5, adesso potete usare più finestre
  • file e folder adesso hanno anche il parametro kind per scegliere il tipo di risultato
  • supporto ad Android AAR
  • possibilità di unire il manifesto Adnroid con altri manifesti
  • le estensioni possono appoggiarsi a librerie esterne
  • c'è il pulsante per testare i programmi in versione HTML5
  • supporto ai jar files per Android
  • supporto alla variabile CLASSPATH del sistema operativo
  • supporto migliorato per l'internet se esportato in HTML5
  • Add support for accepting socket connections on a port in the ephemeral port range
  • possibilità di parlare col javascript nei programmi esportati in HTML5
  • nuovo comando difference per gli array
  • nuovo comando symmetric difference per gli array
  • messageDigest() supporta ora anche SHA-2 e SHA-3 
  • grafica migliorata appoggiandosi a Skia (https://skia.org)
  • CTRL + . non blocca le finestre modali
  • corretto create in
  • recordformats() ritorna la lista dei formati in cui può registrare il sistema operativo
  • conversione di pacchetti Java in linguaggio livecode builder (https://github.com/livecode/livecode/blob/develop/toolchain/lc-compile-ffi-java.1.md)
  • il terminale message box è stato riscritto
  • revVideoGrabber rimane disponibile solo per Windows
  • Supporto NFC per Android
  • in livecode builder si possono indicare i permessi richiesti ad Android usando i metadata.
  • revFontLoad e revFontUnload sono stati sostituiti da start using font.
  • si possono specificare le porte per i socket
  • ora è possibile indicare il numero massimo di caratteri di un campo di testo iOS
  • una app HTML5 può chiamare il javascript
  • migliorato libURLMultipartFormAddPart.
  • tabalign è la nuova proprietà per allineare il testo in HTMLtext e StyledText
  • se scrivete in livecode builder, adesso potete utilizzare più file, uno chiamato main.lcb e gli altri nella stessa cartella con estensione lcb.
  • ora ci sono le proprietà cDeveloperExtensionsFolders e cDeveloperExtensionsActiveFolders
  • i datagrid di tipo FORM ora hanno in più l'edit mode (proprietà dgEditMode) e lo swipe più altre funzioni per modificarne le icone, l'ordinamento e far scomparire e apparire alcune parti.
  • le estensioni possono avere il proprio property inspector
  • aggiunta l'opzione che una app su iOS si chiude se il cellulare va in sospensione
  • aggiunto il build number per le app iOS, così potete inviare più volte la stessa app
Questa è solo una concisa lista di tutto quello che porta di nuovo la nuova versione.