Ciao a tutti,
il Sig. Martini cerca aiuto per convertire un suo programma da Hypercard (il vecchio livecode) in livecode. Il programma è un traduttore particolare.
Il Sig. Martini è disposto a pagare per tale lavoro, se siete interessati, lo potete contattare alla email: martiniglm38@gmail.com
giovedì 29 dicembre 2016
giovedì 22 dicembre 2016
Plugin per mobile
Il programmatore Ludovic ha creato un plugin per chi sviluppa per dispotivi mobili:
Questo plugin vi permette di fare diverse cose:
Questo plugin vi permette di fare diverse cose:
- impostare il dispositivo bersaglio dell'app (iOS)
- impostare la lingua (iOS)
- attivare il beta test per TestFlight (iOS)
- inserire degli intent filter personalizzati per Android
martedì 20 dicembre 2016
Modificare il widget segmented control
Il widget segmented control non è altro che un controllo che permette di selezionare una o più scelte da un elenco orizzontale:
Possiamo sfruttarlo per creare un sistema di votazione con le stelle, per fare questo vi basta creare un segmented control, chiamarlo giudizio e poi digitare i seguenti comandi nel message box:
Potreste farloanche dal pannello proprietà, ma così è più semplice spiegare quali proprietà modificare. Otterrete quindi questo:
Poi mettete questo codice nello script widget:
e avrete il controllo per le votazioni cercato:
Questo è solo un esempio delle possibilità che offre questo widget.
Possiamo sfruttarlo per creare un sistema di votazione con le stelle, per fare questo vi basta creare un segmented control, chiamarlo giudizio e poi digitare i seguenti comandi nel message box:
set the itemcount of widget "giudizio" to 5
set multiplehilites of widget "giudizio" to true
set the itemstyle of widget "giudizio" to "icons"
set the itemicons of widget "giudizio" to "star,star,star,star,star"
set the hiliteditemicons of widget "giudizio" to "star,star,star,star,star"
Potreste farloanche dal pannello proprietà, ma così è più semplice spiegare quali proprietà modificare. Otterrete quindi questo:
Poi mettete questo codice nello script widget:
local srating
on hiliteChanged
-- Find the rightmost item that changed. This is
-- the segment that the user clicked
put the hilitedItems of me into tHilited #esempio 1,2,3
repeat with tSegment = 5 down to 1
if tSegment is among the items of tHilited then
if tSegment > sRating then
put tSegment into sRating
exit repeat
end if
else
if tSegment <= sRating then
put tSegment into sRating
exit repeat
end if
end if
end repeat
-- Highlight all the segments up to and
-- including the one that was clicked
repeat with tSegment = 1 to sRating
put tSegment & comma after tNewHilite
end repeat
-- Remove trailing comma
delete char -1 of tNewHilite
set the hilitedItems of me to tNewHilite
end hiliteChanged
e avrete il controllo per le votazioni cercato:
Questo è solo un esempio delle possibilità che offre questo widget.
lunedì 19 dicembre 2016
Beneficienza e livecode
La società Livecode ha deciso di attivarsi per un opera di beneficenza, chiamata https://onebillion.org per sviluppare app in lingua nei paesi più poveri per imparare. L'obbiettivo iniziale è insegnare la matematica.
Per questo la società livecode ha deciso di donare $1 per ogni copia cartacea acquistata prima del 23 Dicembre:
Potete acquistarla da qui: https://livecode.com/limited-edition-dictionary-bundle/
Per questo la società livecode ha deciso di donare $1 per ogni copia cartacea acquistata prima del 23 Dicembre:
Potete acquistarla da qui: https://livecode.com/limited-edition-dictionary-bundle/
venerdì 16 dicembre 2016
librerie
Il programmatore Charles Buchwald ha pubblicat delle librerie molto interessanti per livecode sulla pagina http://buchwald.ca/developer-tools/
Vediamole insieme:
In questo modo potete modificare i campi di testo nella maniera che preferite, utilizzando la sintassi HTML.
Semplice ed efficiente.
Vediamole insieme:
LcResTool
Si tratta di un plugin per la risoluzione dei programma, permette di impostare la grandezza e risoluzione del programma, passare dalla modalità orizzontale a quella verticale e molto altro:LcHTML
Questo plugin permette di modificare e aggiornare la proprietà htmlText dei campi di testo, inerire i caratteri speciali e molto altro. (v. figura a sinistra)In questo modo potete modificare i campi di testo nella maniera che preferite, utilizzando la sintassi HTML.
LcLipsum
Questo semplice plugin serve a riempire i campi di testo con del testo di prova per vedere l'effetto complessivo.Semplice ed efficiente.
LcMover
Questo plugin serve per spostare le finestre facilmente con precisione.LcRatios
Questo plugin serve a calcolare i rapporti tra altezza e larghezza per scalare correttamente gli oggetti.mercoledì 14 dicembre 2016
Funzione getOpt
Livecode 9 (dp3) contiene una nuova funzione: getOpt.
Questa funzione vi permette di avere la liste delle opzioni da riga di comando date in pasto al vostro programma.
Ad esempio se il vostro programma viene lanciato così:
mioProgramma.exe -v -s 10x10 -n Max --bello -z=51
potete cercare di estrarre le opzioni così:
Per più informazioni leggete: http://livecode.wikia.com/wiki/Getopt
Questa funzione vi permette di avere la liste delle opzioni da riga di comando date in pasto al vostro programma.
Ad esempio se il vostro programma viene lanciato così:
mioProgramma.exe -v -s 10x10 -n Max --bello -z=51
potete cercare di estrarre le opzioni così:
put GetOpt("v s n b,bello z") into tInfo
if the number of elements in tInfo["errors"] > 0 then
write "ERROR:" && tInfo["errors"][1] to stderr
else if "v" is among the keys of tInfo["options"] then
put "l'utente ha scelto l'opzione v"
else if "s" is among the keys of tInfo["options"] then
put "s = " tInfo["options"]["s"]
else if "n" is among the keys of tInfo["options"] then
put "n = " tInfo["options"]["n"]
end i
Per più informazioni leggete: http://livecode.wikia.com/wiki/Getopt
martedì 13 dicembre 2016
Libreria oAuth2
Livecode 9 (dp3) ora implementa la libreria per le autenticazione oAuth2 utilizzata da twitter, facebook e altri siti.
Per utilizzarla, a causa di un bug, dovete prima specificare da qualche parte
e avrete a disposizione i comandi:
Cliccate sui relativi link per sapere come funzionano.
Per utilizzarla, a causa di un bug, dovete prima specificare da qualche parte
start using stack "oauth2"
e avrete a disposizione i comandi:
Cliccate sui relativi link per sapere come funzionano.
lunedì 12 dicembre 2016
Twitter e livecode
Le versioni a pagamento di livecode hanno una libreria per interagire con twitter, ma ora esiste anche una libreria gratuita che potete scaricare da qui:
http://codyssea.com/index.php/downloads/
giovedì 1 dicembre 2016
Javascript dentro livecode
Ora è possibile lanciare comandi javascript dentro le applicazioni HTML5 di livecode usando il codice:
Per esempio si possono l'utente bhall2001 ha provato a creare un gioco del blackjack usando delle api javascript che si appoggiano a http://deckofcardsapi.com/ (poteva farlo anche sempliciemtente usando put URL). Il risultato è questo:
L'esempio è su http://bobhall.net/blackjack/index.html, mentre il sorgente è scaricabile da http://bobhall.net/blackjack/standalone.zip ed è il file "__boot.livecode".
Un altro esempio è cambiare lo sfondo di una pagina web utilizzando il codice javascript:
Module.canvas.parentNode.setAttribute("style","background: hsl(sHue,100%,50%)")
dove sHue varia continuamemnte da 0 a 360. Qui potete vedere un esempio: http://www.maxvessi.net/livecode/public/HTML5withJavascriptExample1
do JScript as "JavaScript"
Per esempio si possono l'utente bhall2001 ha provato a creare un gioco del blackjack usando delle api javascript che si appoggiano a http://deckofcardsapi.com/ (poteva farlo anche sempliciemtente usando put URL). Il risultato è questo:
L'esempio è su http://bobhall.net/blackjack/index.html, mentre il sorgente è scaricabile da http://bobhall.net/blackjack/standalone.zip ed è il file "__boot.livecode".
Un altro esempio è cambiare lo sfondo di una pagina web utilizzando il codice javascript:
Module.canvas.parentNode.setAttribute("style","background: hsl(sHue,100%,50%)")
dove sHue varia continuamemnte da 0 a 360. Qui potete vedere un esempio: http://www.maxvessi.net/livecode/public/HTML5withJavascriptExample1
lunedì 28 novembre 2016
Generatore di chiavi per app
Il programmatore Kroka ha rilasciato il programma per generare facilmente e velocemente della chiavi valide per poter firmare le nostre app, un requisito obbligatorio per pubblicare le app su siti Google Play Store o SlideMe. Chiaramente questo programma lo ha fatto con livecode:
Ecco i link dove scaricarlo:
Ecco i link dove scaricarlo:
- Windows: http://www.fehr-media.de/downloads/Keymaker_Windows.zip
- Mac: http://www.fehr-media.de/downloads/Keymaker_Mac.zip
venerdì 25 novembre 2016
Cache di un'immagine
Quando creiamo un programma con delle immagini, senza che ce ne accorgiamo, al momento di visualizzare le immagini il nostro programma deve scompattarle dal formato utilizza (JPG, PNG, GIF, ecc.) e trasformarle in un dato pronto all'uso per lo schermo.
L'immagine scompattata pronta all'uso viene messa nella memoria cache.
Possiamo impostare la dimensione della memoria di cache con le immagini impostando la proprietà ImageCacheLimit. Il valore preimpostato per i sistemi mobili (Android, iOS) è 64Mb, mentre per i computer è 254Mb.
Se la cache si riempie, i dati più vecchi vengono cancellati per far spazio ai nuovi. Svuotare e riempire la cache rallenta il programma, quindi per avere delle prestazioni migliori, se usate tante immagini, valutate quanto vi serve grande la cache.
Per sapere quanto è piena la cache potete leggere la proprietà imageCacheUsage, che restituisce il valore in bit. Ad esempio 268435456 è 256Mb (basta dividere 1'048'576 per ottenere il valore in MegaByte).
Se volete che sia subito decompattata nella cache all'apertura della card, potete impostare la proprietà alwaysBuffer su true. Anche qui fate attenzione a non esagerare.
Se un qualunque momento volete forzare delle immagine a essere caricate nella cache, potete usare il comando prepare image.
L'immagine scompattata pronta all'uso viene messa nella memoria cache.
Possiamo impostare la dimensione della memoria di cache con le immagini impostando la proprietà ImageCacheLimit. Il valore preimpostato per i sistemi mobili (Android, iOS) è 64Mb, mentre per i computer è 254Mb.
Se la cache si riempie, i dati più vecchi vengono cancellati per far spazio ai nuovi. Svuotare e riempire la cache rallenta il programma, quindi per avere delle prestazioni migliori, se usate tante immagini, valutate quanto vi serve grande la cache.
Per sapere quanto è piena la cache potete leggere la proprietà imageCacheUsage, che restituisce il valore in bit. Ad esempio 268435456 è 256Mb (basta dividere 1'048'576 per ottenere il valore in MegaByte).
Se volete che sia subito decompattata nella cache all'apertura della card, potete impostare la proprietà alwaysBuffer su true. Anche qui fate attenzione a non esagerare.
Se un qualunque momento volete forzare delle immagine a essere caricate nella cache, potete usare il comando prepare image.
giovedì 24 novembre 2016
Ordinare a caso una sequenza
Oggi vedremo una peculiarità del comando sort molto sottovalutata.
Come esempio creiamo una sequenza e ordiniamola in modo casuale:
nell'esempio il codice usa comando sort con la funzione random(). Il comando sort per ogni elemento chiede ogni volta alla funzione dopo la parola by il valore per l'ordinamento. Poichè random() è una funzione che estrae un valore casuale, nell'esempio da 1 a 6, l'ordine dei numeri sarà casuale.
Questo sistema è comodissimo nel caso di estrazioni di numeri casuali, perchè creiamo prima l'elenco dei numeri gli ordiniamo a caso e prendiamo i primi n che ci servono!
Rispetto a tanti altri modi per estrarre dei numeri casuali, non dobbiamo fare alcuna verifica se il numero estratto è già contenuto nei numeri generati precedentemente.
Al posto di random() si può usare un funzione personalizzata e ottenere ordinamenti con logiche molto complesse.
Come esempio creiamo una sequenza e ordiniamola in modo casuale:
put "1,2,3,4,5,6" into temp
sort items of temp by random(6)
nell'esempio il codice usa comando sort con la funzione random(). Il comando sort per ogni elemento chiede ogni volta alla funzione dopo la parola by il valore per l'ordinamento. Poichè random() è una funzione che estrae un valore casuale, nell'esempio da 1 a 6, l'ordine dei numeri sarà casuale.
Questo sistema è comodissimo nel caso di estrazioni di numeri casuali, perchè creiamo prima l'elenco dei numeri gli ordiniamo a caso e prendiamo i primi n che ci servono!
Rispetto a tanti altri modi per estrarre dei numeri casuali, non dobbiamo fare alcuna verifica se il numero estratto è già contenuto nei numeri generati precedentemente.
Al posto di random() si può usare un funzione personalizzata e ottenere ordinamenti con logiche molto complesse.
mercoledì 23 novembre 2016
Rimuovere elementi duplicati
Molte volte ci capita di avere a che fare con una lista che contiene duplicati, qual è il modo più veloce per rimuovere i duplicati? Semplice passare per un array!
Ecco come in poche righe di codice si possono eliminare le linee duplicate di un testo, e potete applicare lo stesso codice anche ad altre code (parole, numeri, ecc.); per esempio la variabile theList contiene la lista da cui eliminare i doppioni:
Vediamo che succede:
Ecco come in poche righe di codice si possono eliminare le linee duplicate di un testo, e potete applicare lo stesso codice anche ad altre code (parole, numeri, ecc.); per esempio la variabile theList contiene la lista da cui eliminare i doppioni:
split theList by return and return
combine theList by return and empty
delete the last char of theList
Vediamo che succede:
- Il comando split trasforma la variabile theList in un array
- l'array conterrà una cella per riga
- ogni cella conterrà cosa c'è dopo il primo carattere di accapo (cioè nulla, visto che gli stiamo dando in pasto una riga alla volta)
- ogni cella avrà un'etichetta pari al testo della riga.
- Poichè non possono esistere due celle con la stessa etichetta, in questo modo si eliminano le righe uguali.
- il comando combine rimette insieme le righe
- poi eliminiamo l'ultimo carattere di accapo
giovedì 17 novembre 2016
Livecode per FileMaker
Livecode ha appena lanciato una versione specificatamente creata per supportare il database FileMaker. Per ora è in versione beta.
Potete provarla per Mac gratuitamente da questa pagina: https://filemaker.livecode.com/
Tra le altre cose contiene:
Potete provarla per Mac gratuitamente da questa pagina: https://filemaker.livecode.com/
Tra le altre cose contiene:
- integrazione con google drive
- possibilità di selezionare, mostrare e editare solo alcune parti di un PDF
- Cattura video da webcam
lunedì 14 novembre 2016
Risolvere il problema del browser e del dizionario in livecode 8 e 9
Finalmente è stato capito dove sia il problema che affliggeva livecode dalla versione 8 per quanto riguardava il browser e il dizionario su Linux.
Su questo sistema operativo, infatti, sia il dizionario che il widgert borwser rendevano inutilizzabile livecode.
Poichè entrambi sono basati su Chromium, l'utente Saa ha scoperto che lo stesso bug affligge Steam su linux (che sia basato su livecode?) e gli utenti linux hanno trovato una soluzione. Prima di avviare livecode su linux, prima bisogna impostare le varabile LC_ALL e LC_NUMERIC su C.
In pratica, per lanciare livecode 8 o livecode 9 su linux, bisogna scrivere:
E tutto funzionerà perfettamente:
Su questo sistema operativo, infatti, sia il dizionario che il widgert borwser rendevano inutilizzabile livecode.
Poichè entrambi sono basati su Chromium, l'utente Saa ha scoperto che lo stesso bug affligge Steam su linux (che sia basato su livecode?) e gli utenti linux hanno trovato una soluzione. Prima di avviare livecode su linux, prima bisogna impostare le varabile LC_ALL e LC_NUMERIC su C.
In pratica, per lanciare livecode 8 o livecode 9 su linux, bisogna scrivere:
LC_ALL= LC_NUMERIC=C
/opt/livecode/livecodecommunity-9.0.0-dp-1.x86_64/livecodecommunity.x86_64
E tutto funzionerà perfettamente:
venerdì 11 novembre 2016
Python Vs Livecode
In giro ho trovato il seguente script python per aggiungere la filigrana (watermark) al centro di un'immagine:
Sono 28 righe di codice abbastanza semplice da capire.
In livecode si può fare come puro script con:
Circa 27 righe. La gestione della posizione è più semplice in livecode, perchè la proprietà loc è il baricentro dell'oggetto e basta farli coincidere per mettere al centro di un'immagine la filigrana.
A sfavore del Python è il sistema di gestione dei blocchi di codice solo su indentazione, è un attimo fare degli errori. Al contrario in Livecode è l'indentazione è automatica, e i cicli sono racchiusi da delimitatori ben chiari tipo ON/END.
Voi che ne pensate?
import sys
import os
import Image
def modifica(filename, watermarkname):
photo = Image.open(filename)
watermark = Image.open(watermarkname)
Pwidth = photo.size[0]
Pheight = photo.size[1]
Wwidth = watermark.size[0]
Wheight = watermark.size[1]
x = (Pwidth/2)-(Wwidth/2)
y = (Pheight/2)-(Wheight/2)
photo.paste(watermark, (x, y), watermark)
photo.save(filename.split(".")[0]+"_watermark.jpg")
if len(sys.argv) < 3:
print "Esempio d'uso: python watermark.py foto.jpg watermark.png"
sys.exit()
foto = os.path.abspath(sys.argv[1])
watermark = os.path.abspath(sys.argv[2])
if os.path.isdir(foto):
for file in os.listdir(foto):
modifica(foto+"/"+file, watermark)
else:
modifica(foto, watermark)
Sono 28 righe di codice abbastanza semplice da capire.
In livecode si può fare come puro script con:
on OpenCard
if $# <> 3 then
put "Esempio d'uso: livecode -ui watermark.livecode foto.jpg watermark.png"
quit 64 #command line usage error
end if
import paint from file $2
set the name of last image to watermark
if last char of $1 is "/" then
set the defaultFolder to $1
put files() into lista
else
put $1 into lista
end if
repeat for each line tFile in lista
applicaW tFile
end repeat
quit
end openCard
on applicaW tFile
import paint from file tFile
set the name of last image to foto
set the loc of image watermark to the loc of image foto
set itemdel to "."
put item 1 of tFile into tFile
export snapshot from rect (the rect of image foto) of this card to file ( tFile & "_watermark.jpg") as JPEG
delete image foto
end applicaW
Circa 27 righe. La gestione della posizione è più semplice in livecode, perchè la proprietà loc è il baricentro dell'oggetto e basta farli coincidere per mettere al centro di un'immagine la filigrana.
A sfavore del Python è il sistema di gestione dei blocchi di codice solo su indentazione, è un attimo fare degli errori. Al contrario in Livecode è l'indentazione è automatica, e i cicli sono racchiusi da delimitatori ben chiari tipo ON/END.
Voi che ne pensate?
giovedì 10 novembre 2016
Bash Vs Livecode
Ho trovato in giro il seguente script bash per catturare tutti i riferimenti esterni:
#!/bin/bash
pagina=$1
if [ ${pagina:0:4} = "http" ]; then
#web
curl $pagina | grep -o 'href=['"'"'"][^"'"'"']*['"'"'"]' | sed -e 's/^href=["'"'"']//' -e 's/["'"'"']$//' >> links.txt
else
#locale
less $pagina | grep -o 'href=['"'"'"][^"'"'"']*['"'"'"]' | sed -e 's/^href=["'"'"']//' -e 's/["'"'"']$//' >> links.txt
fi
Sono 7 righe di codice (ignorando i commenti). In pratica prende quello che c'è dopo "href=", solo che l'espressione di grep e sed sono veramente difficili da comprendere.
Ho provato a farlo in livecode e il risultato è questo:
Sono 9 righe, solo due di più di bash, ma forse molto più chiare. Voi che ne dite?
pagina=$1
if [ ${pagina:0:4} = "http" ]; then
#web
curl $pagina | grep -o 'href=['"'"'"][^"'"'"']*['"'"'"]' | sed -e 's/^href=["'"'"']//' -e 's/["'"'"']$//' >> links.txt
else
#locale
less $pagina | grep -o 'href=['"'"'"][^"'"'"']*['"'"'"]' | sed -e 's/^href=["'"'"']//' -e 's/["'"'"']$//' >> links.txt
fi
Ho provato a farlo in livecode e il risultato è questo:
put $1 into indirizzo
#web o locale?
if (char 1 to 4 of $1) is not "http" then put "file:" before indirizzo
put url indirizzo into pagina
set itemdel to "="
put the number of items of pagina into nn
repeat with i=1 to nn
if (char -4 to -1 of item i of pagina ) = "href" then put word 1 of item (i+1) of pagina & return after listaLink
end repeat
put listaLink
Sono 9 righe, solo due di più di bash, ma forse molto più chiare. Voi che ne dite?
mercoledì 9 novembre 2016
Behavior concatenati
In livecode è possibile associare a più oggetti lo stesso codice. Questa operazione è fatta con il behavior.
Alcune delle novità delle ultime versioni consistono nel poter assegnare dei behavior concatenati e il codice del behavior può essere scritto sia nei pulsanti, sia nelle card.
La possibilità di concatenare i behavior riduce ancora di più le righe di codice necessari per scrivere un programma.
Un oggetto può avere del codice, ma se ha anche un behavior, poi esegue anche il codice del behavior e i messaggi passati col comando pass. Se anche l'oggetto contenete il codice behavior ha un behavior anch'esso, anche quest'ultimo passerà i messaggi al behavior successivo se vengono passati con pass.
Ecco un esempio:
Alcune delle novità delle ultime versioni consistono nel poter assegnare dei behavior concatenati e il codice del behavior può essere scritto sia nei pulsanti, sia nelle card.
La possibilità di concatenare i behavior riduce ancora di più le righe di codice necessari per scrivere un programma.
Un oggetto può avere del codice, ma se ha anche un behavior, poi esegue anche il codice del behavior e i messaggi passati col comando pass. Se anche l'oggetto contenete il codice behavior ha un behavior anch'esso, anche quest'ultimo passerà i messaggi al behavior successivo se vengono passati con pass.
Ecco un esempio:
venerdì 4 novembre 2016
Il dizionario su Linux 32 bit è tornato a funzionare
Il dizionario di Livecode dalla versione 8 è diventato una pagina HTML+Javascript, non è più un programma incorporato su livecode. Sfortunatamente su linux non ha mai funzionato.
Ora nella versione 9 almeno su Linux 32bit è tornato a funzionare!
Vi allego una schermata:
Se avete un linux a 64 bit potete utilizzare la guida non ufficiale: http://livecode.wikia.com/wiki/Livecode_Wiki
ha un motore di ricerca che funziona come (o meglio) del dizionario. Inoltre potete correggere o aggiungere voi stessi voci o guide.
Ora nella versione 9 almeno su Linux 32bit è tornato a funzionare!
Vi allego una schermata:
Se avete un linux a 64 bit potete utilizzare la guida non ufficiale: http://livecode.wikia.com/wiki/Livecode_Wiki
ha un motore di ricerca che funziona come (o meglio) del dizionario. Inoltre potete correggere o aggiungere voi stessi voci o guide.
venerdì 28 ottobre 2016
Prof. Cyril Pruszko
Oggi presentiamo il sito del Prof. Cyril Pruszko: https://sites.google.com/a/pgcps.org/livecode/
Questo professore appassionato di livecode ha creato un sito che spiega di tutto su livecode, dai primi passi agli strumenti avanzati come videogiochi, intelligenza artificiale, chatbot e big data (gestire quantità enormi di informazioni).
E' una risorsa preziosa e indispenzabile per qualunque programmatore di livecode.
Ogni giorno il suo sito si amplia sempre di più, è incredibile.
Questo professore appassionato di livecode ha creato un sito che spiega di tutto su livecode, dai primi passi agli strumenti avanzati come videogiochi, intelligenza artificiale, chatbot e big data (gestire quantità enormi di informazioni).
E' una risorsa preziosa e indispenzabile per qualunque programmatore di livecode.
Ogni giorno il suo sito si amplia sempre di più, è incredibile.
giovedì 27 ottobre 2016
Artwork
Siccome mancano degli artwork su livecode, adesso c'è questa sezione del forum italiano dove potete mettere le immagini che vi piacciono di più o le vostrecreazioni:
http://livecodeitalia.freeforums.org/artwork-f5.html
ad esempio tempo fa feci questo:
http://livecodeitalia.freeforums.org/artwork-f5.html
ad esempio tempo fa feci questo:
mercoledì 26 ottobre 2016
Hosting a vita
Livecode sta lanciando un'offerta di hosting a vita per € 499 con €7 l'anno di manutenzione.
Questo hosting contiene:
Questo hosting contiene:
- livecode server commercial
- 500 GB di spazio
- infinite email
- infinite mailing list
- spamassassin
- MySQL
- PHP
- Ruby
- Perl
- Cron
- CGI
- FTP
- Apache
- backup
- virus scanner
- PGP/GPG
- Statistiche
- Vari pannelli di gestione e log
- supporto email 24 ore al giorno, 7 giorni su 7
lunedì 24 ottobre 2016
Livecode 9
E' uscita livecode 9, scaricabile sempre da http://downloads.livecode.com/
Da questa versione cambierà in meglio la numerazione, non ci saranno più tre numeri, ma solo due. Il primo rappresenta la versione il secondo gli aggiornamento della versione. Quindi d'ora in poi avremo solo 9.1, 9.2, 10, 10.1, ecc.
Le novità di questa versione sono:
Da questa versione cambierà in meglio la numerazione, non ci saranno più tre numeri, ma solo due. Il primo rappresenta la versione il secondo gli aggiornamento della versione. Quindi d'ora in poi avremo solo 9.1, 9.2, 10, 10.1, ecc.
Le novità di questa versione sono:
- Migliorata la velocità del cerca nel codice
- proprietà defaultNetworkInterface per accettare le connessioni da specifiche porte
- tabalign nel htmlText
- migliorati i messaggi di errori del compilatore dei widget
- altre migliorie per l'integrazione con altri liguaggi, ma al momento non sono visibili all'utente (andate su GitHub per vederle)
venerdì 14 ottobre 2016
Nuova Guida
Le ultime versioni di livecode includono un nuovo PDF che è la versione aggiornata della guida. Potete trovarla, oltre che dentro Livecode, anche qui:
New LiveCode User Guide: version 2016 8.1 by angerangel2575 on Scribd
mercoledì 12 ottobre 2016
Gioco per bambini
Oggi presentiamo un gioco fatto con livecoe, per i bambini più piccoli, ma che interesserà anche i grandi: dog tales.
Questo gioco è stato pensato per i più piccoli, che di solito si distraggono con i comandi; toccando il lato sinistro dello schermo i protagonista si muove, mentre toccando il lato destro salta. Per interagire bisogna toccare gli oggetti sullo schermo. Che ne pensate?
Potete scaricarlo da qui: https://itunes.apple.com/us/app/dog-tales/id582763528?mt=8
Questo gioco è stato pensato per i più piccoli, che di solito si distraggono con i comandi; toccando il lato sinistro dello schermo i protagonista si muove, mentre toccando il lato destro salta. Per interagire bisogna toccare gli oggetti sullo schermo. Che ne pensate?
Potete scaricarlo da qui: https://itunes.apple.com/us/app/dog-tales/id582763528?mt=8
martedì 11 ottobre 2016
App per malati di HIV
Oggi presentiamo una app per iOS creata da un medico per monitorare lo stato di salute dei malati di HIV e mantenere efficiente il cuore:
Potete scaricarla da questa pagina: http://www.leftbrainmedia.com/hiv.html
Questa app può essere usata o dai malati stessi o dai loro familiari per pianificare un'attività salutare, avere le ultime notizie su questa malattia e altro ancora, adatta sia per tablet, sia per cellulari:
Potete scaricarla da questa pagina: http://www.leftbrainmedia.com/hiv.html
venerdì 7 ottobre 2016
id3lib
La libreria per leggere i tag id3 degli MP3 è passata su github, poichè l'autore originale è morto, il nuovo programmatore che mantiene la libreria è Paul McClernan, potete scaricare la libreria da: https://github.com/PaulMcClernan/id3lib
giovedì 6 ottobre 2016
Compendium
Oggi vediamo una app per iOS fatta con livecode: compendium.
Questa app creata dal Dott. David Kwinter serve ad annotare i casi clinici dei paziente e mettere in condivisione con gli atri medici i dati che vuoi rendere pubblci, in questo modo si possono scambiare i dati tra medici ed arrivare ad un'analisi più accurata. Si possono condividere anche immagini, video e articoli.
In questo modo digitando anche poche parole sulla barra di ricerca, otterrete una lista di risultati incredibile.
Potete scaricarlo da qui:
https://itunes.apple.com/us/app/compendium/id879888201?mt=8
Questa app creata dal Dott. David Kwinter serve ad annotare i casi clinici dei paziente e mettere in condivisione con gli atri medici i dati che vuoi rendere pubblci, in questo modo si possono scambiare i dati tra medici ed arrivare ad un'analisi più accurata. Si possono condividere anche immagini, video e articoli.
In questo modo digitando anche poche parole sulla barra di ricerca, otterrete una lista di risultati incredibile.
Potete scaricarlo da qui:
https://itunes.apple.com/us/app/compendium/id879888201?mt=8
martedì 4 ottobre 2016
Inserire un nuovo widget: SVG Text
Oggi vedremo come inserire un nuovo widget e per farlo useremo ad esempio il widget per fare scritte vettoriali SVG.
I widget sono nuovi controlli personalizzati, e inserendoli nell'IDE avremo nuovi possibilità di programmare in maniera sempre più veloce..
Scarichiamo da http://livecodeshare.runrev.com/stack/810/LCB-widget%3A-SVGText il nuovo widget. Scompattae l'archivio e dovrebbe esserci un file con estensione lce.
Andiamo su Tools -> Extension manager e vi apparirà una finestra tipo questa:
Cliccate sul + in alto a sinistra e scegliete il file lce. Una volta fatto ciò il nuovo widget apparirà nella sezione dei widget di livecode:
Questo widget vi permette di scrivere del testo vettoriale che potete anche ruotare e trasformare come preferite:
Usate il property inspector per vedere tutte le proprietà che potete modificare.
I widget sono nuovi controlli personalizzati, e inserendoli nell'IDE avremo nuovi possibilità di programmare in maniera sempre più veloce..
Scarichiamo da http://livecodeshare.runrev.com/stack/810/LCB-widget%3A-SVGText il nuovo widget. Scompattae l'archivio e dovrebbe esserci un file con estensione lce.
Andiamo su Tools -> Extension manager e vi apparirà una finestra tipo questa:
Cliccate sul + in alto a sinistra e scegliete il file lce. Una volta fatto ciò il nuovo widget apparirà nella sezione dei widget di livecode:
Questo widget vi permette di scrivere del testo vettoriale che potete anche ruotare e trasformare come preferite:
Usate il property inspector per vedere tutte le proprietà che potete modificare.
venerdì 30 settembre 2016
Importare ed esportare documenti word/excel/openOffice/LibreOffice
Il programmatore Curry Kenworthy ha creato una serie di plugin per importare ed esportare documenti office in livecode. Potete scaricarli per prova o comprarli da qui:
- http://livecodeaddons.com/wordout/ per creare file Word
- http://livecodeaddons.com/wordlib/ per importare file Word, OpenOffice, LibreOffice
- http://livecodeaddons.com/spreadlib/ per creare file Excel
- http://livecodeaddons.com/wordreport/ per creare reports
venerdì 16 settembre 2016
Animation builder
Oggi presentiamo un programma segreto dentro livecode: Animation Builder.
Si tratta di un programma che crea animazioni partendo da una finestra livecode, memorizza ogni modifica, che potete metter in qualsiasi punto del filmato, stabilire le varie velocità, in modo da creare l'animazione voluta.
Si trova in Development -> Plugins -> revAnimation, oppure lo potete scaricare da qui e metterlo nella vostra cartella Plugins.
Si tratta di un programma che crea animazioni partendo da una finestra livecode, memorizza ogni modifica, che potete metter in qualsiasi punto del filmato, stabilire le varie velocità, in modo da creare l'animazione voluta.
Si trova in Development -> Plugins -> revAnimation, oppure lo potete scaricare da qui e metterlo nella vostra cartella Plugins.
giovedì 15 settembre 2016
Applicare le proprietà di un altro oggetto
Quando si fa un programma, capita che lo stile predefinito dei pulsanti o del testo non ci vada bene, e personalizziamo i nostri oggetti.
Se sono molti oggetti, personalizzarli uno per uno può richiedere molto tempo, per questo ho scritto il seguente plugin che permette di copiare le proprietà di un oggetto su altri oggetti, selezionando quali copiare e quali no.
In pratica copia l'array properties, in modo da applicarlo al nuovo oggetto, tutte le proprietà impostate a empty non modificheranno quelle già presenti.
Potete scaricarlo e analizzare il codice da qui: http://livecodeshare.runrev.com/stack/809/Style-Manager
Come tutti i plugin dovete copiarlo dento la vostra cartella Plugin, e poi lo troverete in Development->Plugins->StyleManager
Se sono molti oggetti, personalizzarli uno per uno può richiedere molto tempo, per questo ho scritto il seguente plugin che permette di copiare le proprietà di un oggetto su altri oggetti, selezionando quali copiare e quali no.
In pratica copia l'array properties, in modo da applicarlo al nuovo oggetto, tutte le proprietà impostate a empty non modificheranno quelle già presenti.
Potete scaricarlo e analizzare il codice da qui: http://livecodeshare.runrev.com/stack/809/Style-Manager
Come tutti i plugin dovete copiarlo dento la vostra cartella Plugin, e poi lo troverete in Development->Plugins->StyleManager
mercoledì 14 settembre 2016
Animazione modificata in tempo reale
Mi è stato chiesto di spiegare il codice di questo video che ho fatto qualche tempo fa:
Si tratta di un pulsante che segue un tracciato fatto e modificato dall'utente continuamente dall'utente.
Per prima cosa creiamo una grafica a mano libera cliccando sul pulsante degli strumenti di disegno, clicchiamo su freehand:
Ora nella card mettiamo il seguente codice per far disegnare l'utente:
Notate che if the mouse is down serve per capire se l'utente mantiene cliccato il pulsante. Mentre ho impostato che il rettangolo del disegno dell'utente sia sempre dentro il rettangolo "0,0,382,316".
Ora l'utente può divertirsi a disegnare, mettiamo un pulsante col sole e in basso un pulsante con la scritta GO e un pulsante con Clear.
Ora nel pulsante GO mettete questo codice:
La prima parte serve solo a far partire e fermare l'animazione, il messaggio successivo serve a spostare il sole lungo i punti del disegno. La proprietà personalizzata serve solo a riprendere da dove si è fermata l'animazione.
Se cambiate il valore dei secondi dell'ultima riga, cambierete la velocità dell'animazione.
Per finire nel pulsante Clear:
Si tratta di un pulsante che segue un tracciato fatto e modificato dall'utente continuamente dall'utente.
Per prima cosa creiamo una grafica a mano libera cliccando sul pulsante degli strumenti di disegno, clicchiamo su freehand:
Ora nella card mettiamo il seguente codice per far disegnare l'utente:
on MouseMove newH, NewV
if the mouse is down then MouseDown
end MouseMove
On MouseDown
put the MouseLoc into temp
if temp is within "0,0,382,316" then
put the points of graphic 1 into temp2
if temp2 is empty then
set the points of graphic 1 to temp & return & temp
else
set the points of graphic 1 to (temp2 & return & temp)
end if
end if
end MouseDown
Notate che if the mouse is down serve per capire se l'utente mantiene cliccato il pulsante. Mentre ho impostato che il rettangolo del disegno dell'utente sia sempre dentro il rettangolo "0,0,382,316".
Ora l'utente può divertirsi a disegnare, mettiamo un pulsante col sole e in basso un pulsante con la scritta GO e un pulsante con Clear.
Ora nel pulsante GO mettete questo codice:
on mouseUp
if the label of me is "GO" then
set the label of me to "STOP"
else
set the label of me to "GO"
end if
moveSun
end mouseUp
on moveSun
if the label of me is "STOP" then
put the points of graphic 1 into mypoints
put the angolo of me into temp
if temp is empty or temp > the number of lines of mypoints then put 1 into temp #this is useful for the first launch or redrawing
if mypoints is empty then put the loc of button "Sun" into mypoints
put line temp of mypoints into newloc
set the loc of button "Sun" to newLoc
add 1 to temp
set the angolo of me to temp
send "movesun" to me in 0.02 sec
end if
end moveSun
La prima parte serve solo a far partire e fermare l'animazione, il messaggio successivo serve a spostare il sole lungo i punti del disegno. La proprietà personalizzata serve solo a riprendere da dove si è fermata l'animazione.
Se cambiate il valore dei secondi dell'ultima riga, cambierete la velocità dell'animazione.
Per finire nel pulsante Clear:
on mouseUp
set the label of button "GO" to "GO"
set the points of graphic "Curve" to empty
end mouseUp
martedì 13 settembre 2016
CasparCG
CasparCG è software per l'editing video, utilizzato anche dai canali TV più importanti, lo potete scaricare da qui: http://www.casparcg.com/
L'utente bern333 ha realizzato un software open source con livecode che interagisce con il server CasparCG, qui potete scaricare il suo software http://tech-ops.co.uk/bern/titler/ e qui sotto vedete un esempio:
L'utente bern333 ha realizzato un software open source con livecode che interagisce con il server CasparCG, qui potete scaricare il suo software http://tech-ops.co.uk/bern/titler/ e qui sotto vedete un esempio:
mercoledì 7 settembre 2016
Lavorare con testi che utlizzano codifiche differenti
Quando scriviamo un testo le lettere che vediamo sullo schermo sono per il computer una sequenza di bit, e a seconda della lingua o del paese, quei bit possono essere male interpretati.
Quando sono nati i computer, inizialmente erano stati pensati solo i 255 caratteri ASCII, ma erano stati pensati solo per la lingua inglese e mancavano dei caratteri accentati di altre lingue o altri caratteri speciali; ad esempio Ą, Ɛ, ƺ, Љ, א, ठी. Per questo motivo sono nati delle nuove codifiche che utilizzano più caratteri e alcune sono pensate per alcune lingue, altre si adattano ad altre lingue.
Tutto ciò ha portato ad una grande confusione, per questo motivo livecode supporta la maggior parte dei caratteri nativamente; ma se dovete interfacciarvi con altri programmi che supportano solo alcuni caratteri come fate?
Per questo motivo per fortuna c'è la funzione codepointToNum() che trasforma il carattere in un numero, i numeri sono universalmente accettati da tutte le codifiche e quindi potete inviarlo a qualunque programma.
Ecco due funzione per importare ed esportare testi molto utili:
per esportare:
per importare il testo esportato con stringToNums():
Quando sono nati i computer, inizialmente erano stati pensati solo i 255 caratteri ASCII, ma erano stati pensati solo per la lingua inglese e mancavano dei caratteri accentati di altre lingue o altri caratteri speciali; ad esempio Ą, Ɛ, ƺ, Љ, א, ठी. Per questo motivo sono nati delle nuove codifiche che utilizzano più caratteri e alcune sono pensate per alcune lingue, altre si adattano ad altre lingue.
Tutto ciò ha portato ad una grande confusione, per questo motivo livecode supporta la maggior parte dei caratteri nativamente; ma se dovete interfacciarvi con altri programmi che supportano solo alcuni caratteri come fate?
Per questo motivo per fortuna c'è la funzione codepointToNum() che trasforma il carattere in un numero, i numeri sono universalmente accettati da tutte le codifiche e quindi potete inviarlo a qualunque programma.
Ecco due funzione per importare ed esportare testi molto utili:
per esportare:
function stringtonums tString
repeat for each char tChar in tString
put CodepointToNum(tChar) & comma after temp
end repeat
return temp
end stringtonums
function numsToString tString
repeat for each item tChar in tString
put numToCodepoint(tChar) after temp
end repeat
return temp
end numsTostring
venerdì 2 settembre 2016
Report builder
Ho scoperto che nella versione 7 di livecode sono presenti degli stack segreti. Oggi vi presento Report builder:
Vi permette di stampare scegliendo varie opzioni come la stampante, il formato, le card da stampare, la testata e il piè di pagina utilizzando altri stack come modelli.
Lo potete scaricare anche da qui.
Vi permette di stampare scegliendo varie opzioni come la stampante, il formato, le card da stampare, la testata e il piè di pagina utilizzando altri stack come modelli.
Lo potete scaricare anche da qui.
mercoledì 31 agosto 2016
Mettere pubblicità nelle app
Esistono vari modi per mettere la pubblicità nelle app, ecco un paio molto semplici:
Appwrapper
Non c'è bisogno di programmare, una volta creata l'app, la ci pensa lui ad inserire il codice per la pubblicità. Per più informazioni http://www.vserv.com/technology/appwrapper/
Smaato
Qui basta inserire un piccolo browser ndentro la app che si collega alla pagina indicata da smaato. Per più informazioni https://www.smaato.com/
mergBanner
Integrato nella versione a pagamento, permette di utilizzare iAd su iOS.
Appwrapper
Non c'è bisogno di programmare, una volta creata l'app, la ci pensa lui ad inserire il codice per la pubblicità. Per più informazioni http://www.vserv.com/technology/appwrapper/
Smaato
Qui basta inserire un piccolo browser ndentro la app che si collega alla pagina indicata da smaato. Per più informazioni https://www.smaato.com/
mergBanner
Integrato nella versione a pagamento, permette di utilizzare iAd su iOS.
martedì 23 agosto 2016
Languistik
Oggi presentiamo un sito che ha sviluppato con livecode dei programmi per imparare velocemente le lingue: Languistik.
Questi programmi hanno sia una parte multimediale con audio e video sia la grammatica da studiare.
Il sito di questa società finlandese lo potete trovare qui: https://eopin.fi
Questi programmi hanno sia una parte multimediale con audio e video sia la grammatica da studiare.
Il sito di questa società finlandese lo potete trovare qui: https://eopin.fi
venerdì 12 agosto 2016
Tracker2Go
Oggi presentiamo un'altra app fatta con livecode: Tracker2Go.
Questa app non solo vi dice quanto calorie ingerite coni pasti, ma anche quante ne consumate con la vostra attività fisica.
Lo potete scaricare da https://itunes.apple.com/us/app/tracker2go/id433038944?mt=8&ls=1
Questa app non solo vi dice quanto calorie ingerite coni pasti, ma anche quante ne consumate con la vostra attività fisica.
Lo potete scaricare da https://itunes.apple.com/us/app/tracker2go/id433038944?mt=8&ls=1
Iscriviti a:
Post (Atom)