lunedì 24 agosto 2015

Tempo di risposta App Store

Un breve riassunto sulla mia esperienza sulla pubblicazioni di applicazioni sui vari Store 



Google Play
Il costo della licenza era (circa 4 anni fa) di 18 euro e non ha scadenza temporale. Il sistema di pubblicazione e' di tipo sostanzialmente automatico e passano poche ore dall'upload dell'apk alla presenza sul Google Play. L'applicazione risulta presente nel motore di ricerca nelle 24 ore successive

Apple Store
Il costo della licenza e' aumentata a 100 euro l'anno. In generale dal momento dell'upload dell'applicazione passano 6 giorni prima che venga presa in carico dal sistema di validazione (rigorosamente umana). Se tutto va bene il programma viene esaminato nelle 24 ore successive ed entra nel motore di ricerca nelle 48 ore successive. C'e' da dire che a seconda della persona che esamina l'applicazione ci possono essere i piu' svariati metri di misura (per esempio ho aspettato due mesi prima di pubblicare una applicazione quando, una volta cambiato esaminatore, e' stata immediatamente accettata)

Windows Phone
Il costo della licenza da sviluppatore e' di circa 15 euro e la durata e' di un anno. La pubblicazione e' sottoposta a validazione (non e' chiaro se umana od automatica) che e' giunta il giorno successivo alla richiesta di pubblicazione. L'applicazione e' entrata nel motore di ricerca dello store nelle 24 ore successive

Firefox MarketPlace
Non ci sono costi per la licenza di sviluppatore. La pubblicazione e' particolarmente lenta (l'esame e' di tipo umano e normalmente fatto da volontari) , la mia ultima applicazione e' stata sottoposta a validazione il 29 luglio ed e' stata pubblicata il 22 agosto 

Amazon Store
Non pervenuto. Ho provato una sola volta a pubblicare su questo store. Il sistema di compilazione del form mi indica un errore sulla presenza di una traduzione non accettata. Non riuscendo a capire quale fosse il problema ho aperto un ticket verso l'assistenza tecnica che non ha mai avuto risposta. Ho lasciato perdere

venerdì 21 agosto 2015

Arduino Nano e usb2.0-serial

Nella foto ci sono i due cloni di Arduino Nano che ho nella mia collezione.
La prima a sinistra, l'ho comprata qualche tempo fa e non mi mai dato problemi.
Quella a destra invece e' un recentissimo acquisto e quando lo ho connessa ad Arduino IDE (sotto Windows e Mac) ho avuto la spiacevole sorpresa che non era presente la porta seriale e su Windows era richiesto il driver usb2.0-serial (i driver Arduino era gia' correttamente installati)



La soluzione risiede nell'installare i pacchetti scaricabili a questo indirizzo
http://www.arduined.eu/ch340g-converter-windows-7-driver-download/
perche' sui cloni Arduino recenti viene montato un convertitore CH340G USB/Serial al posto del normale FTDI

giovedì 20 agosto 2015

Midi over Usb con Arduino

Arduino non puo' diventare un vero e proprio dispositivo Midi a meno che non si faccia una modifica al firmware (nel qual caso poi non diventi poi piu' programmabile) ma puo' comunque inviare stringhe MIDI via seriale che sono poi convertite, via software, da programmi Serial->Midi.

Questa prova e' stata fatta su Mac ma in linea di principio e' ripetibile anche su Windows (con altri software) ma io non ci sono riuscito





(da importare la libreria Arduino Midi Library, codice modificato dal primo esempio)
-------------------------------------------------
#include <MIDI.h>

MIDI_CREATE_DEFAULT_INSTANCE();

#define LED 13      

void setup()
{
    pinMode(LED, OUTPUT);
    MIDI.begin(1);         
    Serial.begin(115200);
}

void loop()
{
        digitalWrite(LED,HIGH);
        MIDI.sendNoteOn(42,127,1);  // Send a Note (pitch 42, velo 127 on channel 1)
        delay(1000);        // Wait for a second
        MIDI.sendNoteOff(42,0,1);   // Stop the note
        digitalWrite(LED,LOW);
}
-------------------------------------------------

Poi si va in Applicazioni/Utility e si carica Configurazioni Midi Audio, Mostra Studio Midi Driver IAC e si attiva il driver

Per la conversione del segnale seriale derivante da Arduino in segnale Midi si puo' usare Hairless-MidiSerial. Il funzionamento e' quanto mai semplice. A sinistra si imposta la porta seriale dell'Arduino e sulla destra gli input ed output Midi (nel mio caso era solo un input in quanto Arduino spedisce solo dati)
Come destinatario del segnale Midi, non avendo altro a disposizione, ho provato Virtual Midi Piano Keyboard
Tramite questa catena e' possibile far suonare ad Arduino il pianoforte Midi




E' ovviamente noioso ma basta inserire un po' di pulsanti e riprogrammare Arduino per rendere tutto piu' interattivo

Samba su Centos 7

Per installare Samba su Centos 7 ho seguito questi passi (la macchina ha Selinux disattivato)

yum install samba samba-client samba-common

ed in seguito

systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service

ad un primo tentativo il servizio nmd non veniva tirato su, ho risolto facendo uno yum update (e' quindi consigliabile farlo da subito prima dell'installazione dei pacchetti)

dato che il server su cui lo ho installato ha due interfacce (una con ip pubblico ed una con ip privato)  ho modificato il file /etc/samba/smb.conf per mettere in ascolto solo sull'interfaccia interna modificando

[global] 
interfaces = 10.1.1.16 lo 
bind interfaces only = yes

per verificare che tutto sia andando a buon fine si puo' digitare netstat -tapn | grep smbd

Rimane da aprire la porta del firewall 

firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd reload

visto che era richiesto l'accesso autorizzato ad una cartella condivisa e' stato creato un utente samba generico che permette di scrivere sulla directory del web server

smbpasswd -a www_user


il file smb.conf finale e' di questo tipo
---------------------------------------------------
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
interfaces = 10.1.1.16 lo
bind interfaces only = yes
#============= Share Definitions ==============
[www]
path = /var/www/html
valid users = www_user
read only = No
create mask = 0777
directory mask = 0777

mercoledì 19 agosto 2015

Errore collect2.exe: error: ld returned 5 Arduino IDE



Su Arduino IDE 1.6.5 per Windows XP (non ho provato sulle altre piattaforme) in fase di compilazione di un codice leggittimo (che si compilava in precedenza) viene generato il seguente errore

collect2.exe: error: ld returned 5 exit status
Errore durante la compilazione

dopo un po' di prove ho scoperto che la riga incriminata che genera l'errore e' relativa all'istruzione delay (commentata la riga tutto funziona). Non ho trovato soluzione se non installare una versione piu' vecchia dell'IDE

martedì 18 agosto 2015

NFC Mifare e Nexus

Un paio di anni fa mi ero interessato all'uso degli Rfid su Android per un progetto che non e' mai partito ed allo scopo avevo comprato un centinaio di tag solo leggibili ed un tag riscrivibile in formato Mifare Classic 1K (con una memoria di 1024 byte, un po' costoso all'epoca devo ammettere)

Le prove le avevo eseguite con il Nexus S che era all'epoca il telefono di sviluppo


A sinistra Nexus 4, al centro Mifare Classic ed a destra Nexus S
Ho ripreso in mano il progetto per un nuovo possibile utilizzo stavolta utilizzando il Nexus 4.
Con mia sorpresa ho scoperto che il sensore di N4 non ha compatiblita' con il formato Mifare Classic 1K ed ho dovuto ordinare dei nuovi tag Ntag 203 (che dovrebbero essere universali)

NFC e' sempre rimasto un aspetto marginale di Android e di sicuro continuera' ad esserlo se non vengono definiti degli standard stabili nel tempo

lunedì 17 agosto 2015

Salvare pagine html on line per rassegna stampa

Uno dei problemi che si incontrano quando si cercano di salvare pagine html sui vari siti  (per esempio per creare una rassegna stampa) e' che la qualita' del risultato e' sempre scarsina, qualunque sia il formato di salvataggio

Per esempio partiamo da uno screenshot di una notizia sulla recensione della mia applicazione Abetone Trail Park


se si salva il contenuto in pdf mediante Chrome il risultato e' questo


Il tutto e' ovviamente non impaginato
Ho trovato utile usare il software Paparazzi, che riporta una impaginazione decisamente fedele del sito desiderato




Change Detection with structural similarity

L'idea di base e' quella di cercare le differenze tra le due immagini sottostanti Non e' immediatamente visibile ma ci sono dei ...