mercoledì 12 agosto 2015

Hyper-V e Virtualbox

Da quando ho installato l'SDK di Windows Phone (e l'annesso emulatore) ho avuto la sgradita sorpresa che Virtualbox (cosi' come WMWare) non risultano piu' funzionanti perche' e' possibile avere in esecuzione un solo hypervisor per volta...peccato che a me serva anche una Linux box anche se virtualizzata

La soluzione del problema e' questa (copiata da qui):

1) Si clicca  Tasto Windows+X e si apre una finestra di shell come amministratore

2) Si digita bcdedit /copy {current} /d "No Hyper-V".Questo comando riporta come risposta una stringa tra parentesi graffe. Il testo tra le graffe deve essere copiato perche' sara' utile per il comando successivo

3) Si digita bcdedit /set {inserire_qui_codice_copiato} hypervisorlaunchtype off

4) A questo punto si effettua il logout e si, tenendo premuto il tasto SHIFT, si clicca con il mouse per riavviare il sistema

5) Al reboot sara' presente una nuova opzione (non di default) di boot No Hyper-V che dovra' essere usata se si vuole successivamente impiegare Virtualbox od altro software di virtualizzazione


lunedì 10 agosto 2015

Abetone Trail Park sulla stampa

Abetone Trail Park e' la mia ultima applicazione ed e' riuscita a ritagliarsi anche un suo piccolo spazio sulla stampa locale

La Nazione ed. Pistoia 8 Agosto 2015

Il Tirreno ed. Pistoia 6 Agosto 2015

Sviluppata in PhoneGap ha come aspetto tecnico piu' significativo quello di avere una base cartografica per escursionismo completamente integrata senza la necessita' di scaricarla dalla rete (in montagna la connessione dati non e' assolutamente garantita)..un altro aspetto interessante e' che i 625 Kmq di cartografia, originariamente per circa 90Mb, sono riusciti a rientrare in 32 Mb (comprimendo i dati di base ed eliminando i livelli di zoom non di interesse)




In attesa del MarketPlace di Firefox (un po' lentino ad approvare le applicazioni) e di Amazon Store questi sono i link per scaricare l'applicazione

https://play.google.com/store/apps/details?id=com.lucainnocenti.abetonetrailpark&hl=it

https://itunes.apple.com/us/app/abetone-trail-park/id1014602667?mt=8

https://www.microsoft.com/en-us/store/apps/abetone-trail-park/9nblggh1rdq7


venerdì 7 agosto 2015

OCR di spartiti musicali con Audiveris

Come principiante nello studio della musica il problema principale e' la lettura dello spartito.
Esiste il solfeggio ma la soluzione piu' veloce e' quella di usare un programma di editing musicale (come Musescore) per "sentire" come suona uno spartito prima di provare con lo strumento vero e proprio

Il sistema funziona ma e' piuttosto lungo e tedioso trascrivere partiture anche semplici anche perche' la scrittura musicale (della musica classica, la musica pop e' un altro mondo) e' molto densa di informazioni

Ho trovato pero' una scorciatoia ovvero l'utilizzo del servizio Audiveris, uno scanner OCR specializzato in trascrizioni di notazione musicale. Questo servizio e' di tipo online e si puo' utilizzare sia su https://audiveris.kenai.com/ che tramite https://musescore.com/import


Per una prova ho usato il primo esercizio dei 20 Studi per flauto di Gariboldi (in formato pdf. da notare anche il watermark che sicuramente confonde l'OCR)

Originale in PDF

Dopo il riconoscimento OCR viene generato un file in MusicXML o direttamente in MSCZ (formato di Musescore). Come si vede il risultato e' ottimale a parte un problema di impaginazione sulla battuta 29 ed il tempo che invece di essere un 4/4 viene letto come 2/2 (tempo tagliato)

veramente non male

mercoledì 5 agosto 2015

Usbmount

Un amico mi ha chiesto un sistema (per un gioco) di creare un sistema di registrare il passaggio dei concorrenti da alcuni passaggi obbligati....ovviamente il sistema doveva essere al costo minimo possibile ed i dati di passaggio dovevano essere registrati su un dispositivo portato dal concorrente (non e' previsto che ci potesse essere un collegamento Internet nei punti di passaggio ed i punti di passaggio dovevano essere recuperati anche molte ore dopo il termine del gioco)



Scartata l'ipotesi Rfid, per il costo del singolo chip Rfid scrivibile intorno ai 3-4 euro ciascuno e per il costo del programmatore di chip, una possibile soluzione e' quella di usare una Raspberry e delle normali chiavette USB per registrare i dati del passaggio

In pratica il concorrente deve inserire la chiavetta nella Raspberry ed in automatico devono inseriti i dati e la chiavetta deve essere estrarre senza smontare esplicitamente il dispositivo

La soluzione e' stata quella di usare una Raspbian minimale (senza Xwindow) ed il pacchetto Usbmount che crea automaticamente i device /media/usb, /media/usb0/ (apt-get install usbmount)

Per intercettare l'evento di inserimento della chiavetta e poter scrivere i dati sulla stessa si puo' modificare lo script /etc/usbmount/mount.d/00_create_model_symlink aggiungendo al termine del file (prima dell'exit) qualcosa del tipo

echo "luca" > /media/usb0/file.txt

in generale il sistema funziona bene anche se non e' velocissimo perche' impiega circa 5 secondi per la scrittura

ho provato anche un altro sistema ovvero creare una regola /etc/udev/rules.d/100-miaregola.rules con questo contenuto

ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd[a-z]1", RUN+="/home/luca/usb.sh" 

nella home ho poi ho messo uno script che doveva scrivere il file sul dispositivo USB. Curiosamente, nonostante l'evento di inserimento della penna USB venisse correttamente intercettato (ho usato logger per scrivere in syslog e verificare) la scrittura del file, nonostante tutti i tentativi di svuotare le cache, avveniva solo alla disconnessione della penna USB e quindi sul disco fisso (cioe' in /media/sdb1 ma solo quando il device era stato smontato)

giovedì 30 luglio 2015

Muta di cicala


Mute di cicala trovate in pineta
Per vedere un video di come avviene la muta https://www.youtube.com/watch?v=u-jI6s4BqWc






Configurazione di rete su Linux

Abituati agli installer delle varie distribuzioni e ai vari network manager oramai e' difficile configurare le interfacce di rete usando i file testo (alla vecchia maniera).
Nel caso di configurazioni un po' piu' complesse, per esempio con interfacce fisiche multiple, puo' essere necessario "sporcarsi le mani" con la configurazione manuale

Partendo dal basso ci sono i seguenti casi

1) L'interfaccia non e' listata in ifconfig

Nel caso il dispositivo fisico sia stato correttamente montato ma non risulta nella lista di ifconfig la causa piu' probabile e' che non sia stato il  modulo del kernel corrispondente al dispositivo.
Un po' piu' esotico e' il caso in cui la scheda di rete non riesca a negoziare la velocita' di rete con gli altri dispositivi (cioe' non riesce a capire se si deve settare a 1Gb,100Mb o 10 Mb)
Si puo' vedere con il comando ethtool e si puo' forzare la velocita' della scheda con il comando

ethtool -s eth3 duplex full speed 100 autoneg off

2) L'interfaccia e' configurata ma non riesce a pingare nessun dispositivo della propria rete locale

Presupposto che gli altri dispositivi della rete privata siano pingabili (non sempre e' settato il protocollo di ICMP) la causa di questo comportamento puo' essere la mancanza di un corretto instradamento dei pacchetti. In questo caso si puo' provare ad aggiungere una route statica del tipo

up route add -net 10.1.1.0/24 dev eth3

nel file interfaces. Cio' indica ad eth3 indica  di instradare i pacchetti nella sottorete 10.1.1.0

3) Si riesce a vedere completamente la rete interna ma i pacchetti non escono

Questa e' facile. Manca la configurazione del gateway

up route add default gw 10.1.1.1 dev eth3

cosi' si istruisce eth3 ad uscire verso Internet da 10.1.1.1

per controllare le modifiche si puo' usare route -n 

4) Il dispositivo e' su Internet ma risolve solo gli indirizzi numerici 

Anche questa e' facile. Non e' stato configurato il DNS Server

mercoledì 8 luglio 2015

Raspberry e la giusta SD Card

Assieme ad un amico da qualche giorno stavamo configurando le nostre Raspberry (io una Rasp 1 modello B il mio amico una Rasp 2) scambiandoci idee via mail non potendosi incontrare di persona


La cosa curiosa e' che, mentre a me tutto funzionava tutto per il meglio, al mio amico insorgevano continui problemi con il sistema operativo che da funzionante diventava completamente irrecuperabile al riavvio successivo.

Dopo un giorno di tentativi di isolare il problema (e dopo che il sistema della Rasp 2 era miseramente crollato dopo una semplice rimozione di un pacchetto deb e successivo riavvio) e' stato chiaro che il problema non era nella configurazione software del SO ma in qualcosa altro differente

Una breve consultazione su http://elinux.org/RPi_SD_cards ha permesso di verificare che le due schede SD del mio amico (nel dettaglio due Kingston, SDC4/16 e SDC10/8) non sono compatbili con Raspberry e cio' giustifica le corruzioni del sistema operativo e gli errori senza una precisa logica che sono emersi

Cambiato il modello di scheda (e' stata sempre usata una Kingston) la Raspberry 2 ha finalmente iniziato a funzionare in modo corretto. Cio' conferma la mia impressione che si tratti di una soluzione valida sotto molti aspetti ma ancora troppo legata all'instabilita' dell'SD Card


FigSpec FS-60CL

A lavoro mi hanno rifilato questo sensore iperspettrale cinese (pushbroom 400-1000 nm con larghezza di banda di 0.5 nm compatibile con DJI M...