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/
sabato 12 maggio 2018
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/#!/~/
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.
Tutte le informazioni qui: https://www.software.trevix.it
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:
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:
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
martedì 6 marzo 2018
VFR Course Calculator
Oggi vediamo una app per iOS fatta in 3 giorni: VFR Course Calculator. Questa app permette di calcolare la rotta degli aerei. Calcola la vera rotta, direzione e rotta magnetica, la direzione della bussola, angolo di correzione del vento, vento trasversale e vento contrario, direzione e velocità del vento, velocità dell'aria reale, variazione e deviazione. Inoltre è possibile calcolare il tempo di volo (TL) per una distanza in funzione della velocità al suolo. In base a questi valori, calcola il carburante necessario e il suo peso. Non importa quale unità usi, l'app convertirà automaticamente i dati inseriti in sistemi metrici, statunitensi e britannici.
Questa app è utile ai piloti e agli apprendisti di aerei per pianificare il tuo volo VFR in modo rapido e semplice.
Che dire, è incredibile che con livecode si possa fare così tanto in così poco tempo!
Potete scaricarla da qui: https://itunes.apple.com/us/app/vfr-course-calculator/id954985075?mt=8
giovedì 15 febbraio 2018
Libreria per GPIO raspberryPi
Abbiamo già visto precedentemente come lavorare con i GPIO della raspberry, ma ecco il codice di una libreria che rende tutto più facile:
on Pi_gpio_init nbr dir /* Pi_gpio_init RaspberryPi Syntax: Pi_gpio_init nbr, dir # Command # Examples: Pi_gpio_init 2, "in" Pi_gpio_init 2, "out" Description: Initialize the gpio and set the direction of the operation nbr is one of the gpio pins: "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32" dir is "in" or "out" Source: Michael Doub Pi_gpio_init */ /* Include RaspberryPi_var Pi_gpio_output */ local cmd, direction_path if nbr is not among the items of good_pins then return "error: invalid pin nbr" if lower(dir) is not among the items of good_directions then return "error: invalid direction" if the platform is "Linux" then put ("/sys/class/gpio/gpio" & nbr & "/direction") into direction_path if there is not a file direction_path then put "echo" && nbr && "> /sys/class/gpio/export" into cmd get shell (cmd) if it is not empty then return "error:" & it end if if there is not a file direction_path then return "error:" && direction_path && "does not exist" open file direction_path for write write dir to file direction_path close file direction_path end if put dir into gpio[nbr][direction] return emptyend Pi_gpio_init
on Pi_gpio_input nbr /* Pi_gpio_input RaspberryPi Syntax: Pi_gpio_input nbr # Command # Examples: Pi_gpio_input 2 Description: Input from the gpio nbr nbr is one of the gpio pins: "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32" Source: Michael Doub Pi_gpio_input */ /* Include RaspberryPi_var Pi_gpio_init */ local value_path if nbr is not among the items of good_pins then return "error: invalid pin nbr" if the platform is "Linux" then put ("/sys/class/gpio/gpio" & nbr & "/value") into value_path if there is not a file value_path then return "error:" && value_path && "does not exist" open file value_path read from file value_path until EOF close file value_path end if return itend Pi_gpio_input
on Pi_gpio_output nbr val /* Pi_gpio_output RaspberryPi Syntax: Pi_gpio_output nbr, val # Command # Examples: Pi_gpio_output 2, 1 Pi_gpio_output 2, 0 Description: Output to the gpio nbr, with value of val nbr is one of the gpio pins: "2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,32" val is 1 or 0 Source: Michael Doub Pi_gpio_output */ /* Include RaspberryPi_var Pi_gpio_init */ local value_path if nbr is not among the items of good_pins then return "error: invalid pin nbr" if val is not among the items good_values then return "error: invalid value" if the platform is "Linux" then put ("/sys/class/gpio/gpio" & nbr & "/value") into value_path if there is not a file value_path then return "error:" && value_path && "does not exist" open file value_path for write write val to file value_path close file value_path end if put val into gpio[nbr]["value"] return emptyend Pi_gpio_output
on Pi_to_Gert_Close /* Pi_to_Gert_Close RaspberryPi Syntax: Pi_to_Gert_Close # Command # Examples: Pi_to_Gert_Close Description: This reoutine actually closes the serial port to the GertDuino. Source: Michael Doub Pi_to_Gert_Close */ /* Include Pi_to_Gert_Variables */ put false into _pi_okToRead wait for _pi_readrate with messages close file _pi_thePort end Pi_to_Gert_Close
on Pi_to_Gert_Open pPortName, pReadrate, pBaud, pParity, pDatabits, pStopbits /* Pi_to_Gert_Open RaspberryPi Syntax: Pi_to_Gert_Open pPortName, [pReadrate], [pBaud], [pParity], [pDatabits], [pStopbits] # Command # Examples: Pi_to_Gert_Open Description: Set the serial port configuration paramenters and opens the serial port to the GertDuino. Defaults: . pPortName: "/dev/ttyAMA0" . readrate: 10 . pBaud: 9600 . pParity: N . pDatabits: 8 . pStopbits: 1 Source: Michael Doub Pi_to_Gert_Open */ /* Include Pi_to_Gert_Variables */ if pPortName is empty then put "/dev/ttyAMA0" into _pi_theport else put pPortName into _pi_thePort end if if pReadrate is empty then put 10 into _pi_readrate if pBaud is empty then put 9600 into pBaud if pParity is empty then put "N" into pParity if pDatabits is empty then put 8 into pDatabits if pStopbits is empty then put 1 into pStopbits Put "BAUD=" & pBaud &&\ "PARITY="& pParity &&\ "DATA=" & pDatabits &&\ "STOP=" & pDatabits into serial if the platform = "Linux" then set the serialControlString to serial open file _pi_thePort for binary update end ifend Pi_to_Gert_Open
on Pi_to_Gert_Start_Reading pCallbackname, pObj /* Pi_to_Gert_Start_Reading RaspberryPi Syntax: Pi_to_Gert_Start_Reading pCallbackname, pObj # Command # Examples: Pi_to_Gert_Start_Reading "WeGotData", me Description: This routine starts the reading process between the Gertduino and the raspBerryPi. Since you must read the serial port until empty, this means that you must constantly have a read active on the port. When data is actually recieved it is passed to pCallbackname of pObj thru the message path with a single parameter of the data base64encoded. Source: Michael Doub Pi_to_Gert_Start_Reading */ /* Include Pi_to_Gert_Variables readPort_Gert */ put true into _pi_okToRead put pCallbackname into _pi_callbackname put pObj into _pi_owner readPort_Gertend Pi_to_Gert_Start_Reading
on Pi_to_Gert_Stop_Reading /* Pi_to_Gert_Stop_Reading RaspberryPi Syntax: Pi_to_Gert_Stop_Readingj # Command # Examples: Pi_to_Gert_Stop_Reading Description: This routine stops the continious read process that is expecting data from the Gertdino serial port. Source: Michael Doub Pi_to_Gert_Stop_Reading */ /* Include Pi_to_Gert_Variables */ put false into _pi_okToReadend Pi_to_Gert_Stop_Reading
on Pi_to_Gert_Write theData pDecode /* Pi_to_Gert_Write RaspberryPi Syntax: Pi_to_Gert_Write theData, [pDecode] # Command # Examples: Pi_to_Gert_Write thedata Pi_to_Gert_Write thedata, true Description: Writes theData to the Gertduino serial port. If pDecode is true then the data will be base64decoded Source: Michael Doub Pi_to_Gert_Write */ /* Include Pi_to_Gert_Variables */ if pDecode then write base64decode(theData) to file _pi_thePort else write theData to file _pi_thePort end ifend Pi_to_Gert_Write
Iscriviti a:
Post (Atom)



