lunedì 4 novembre 2013

Amanita Cesarea e Trombette di morto


Di ritorno da un giro nel bosco

Amanita Cesarea

Trombetta di morto (Craterellus cornucopioides)
ed alla fine il tramonto su Firenze


giovedì 31 ottobre 2013

USB Key Read Only


Un amico mi ha portato questa chiavetta USB pubblicitaria perche' era interessato ad utilizzarla per i propri file visto il taglio da 17 Gb. Il problema e' che l'unita' si mostrava sempre come in sola lettura e quindi sostanzialmente non usabile per scopi differenti dal vedere il filmato pubblicitario

La cosa mi e' sembrata subito strana dato che non ho mai visto a giro tagli di memoria di questo tipo (o 16 o 32 Gb per esempio)


Ho provato a smontare il dispositivo per vedere se era nascosto uno switch. Sulle prime USB era comune trovare un interruttore a slitta vicino al connettore ma dopo aver rimosso 4 viti, una cucitura ed una tonnellata di colla nessun risultato

Rimontato il tutto ho riprovato ad inserire il dispositivo nella mia Debian Box le cose si sono un po' chiarite.
Sono visibili due partizioni: la prima da 18 Mega (e non 17 Giga!!) a sola lettura ed una seconda da 944 Mega di spazio libero liberamente scrivibile. Si tratta quindi di una comunissima USB Key da 1 Giga.
A questo punto rimane il problema della partizione a sola scrittura. Non puo' trattarsi di un blocco hardware perche' un eventuale switch di blocco scrittura avrebbe agito su tutta l'unita' disco e non su una sola partizione. Non si tratta nemmeno dell'impostazione dei permessi del sistema operativo (ho provato ad usare GParted per cancellare le partizioni ma l'operazione non e' permessa)

La possibile soluzione e' che il firmware della scheda sia stato modificato in modo proprietario per far apparire le due partizioni di cui una bloccata in scrittura (qualcosa di simile e' possibile con le chiavette SANDISK..ho provato il loro tool di formattazione a basso livello launchpadremoval.exe ma senza successo). Mi sa che la riconsegno cosi' com'e'

mercoledì 30 ottobre 2013

Cambio sistema di coordinate geografiche

Ogni tanto mi ricordo di essere un geologo con un po' di esperienza in telerilevamento.
Per un studio che sto facendo nei ritagli di tempo sto usando delle immagini Landsat 7 e non avendo una licenza Envi e ArcGis mi sto adattando ad usare QGis

Caricando i dati Landsat Toscana-Emilia (TIF georiferite) direttamente in QGis queste vengono inserite nel sistema di riferimento EPSG:32632 (WGS84 UTM Zona 32 N)


LE71920292001046EDC01
Gli shapefile che invece mi servono sono tutti nel sistema di riferimento EPSG 3003 (Monte Mario Italy Zona 1)

Invece di convertire le immagini e' possibile traslare il sistema di riferimento degli shapefile usando i tools GDAL in particolare con il comando

dove
wgs.shp e' il nome dello shape risultato dell'elaborazione
boaga.shp e' il nome del file shape da convertire
-s_srs e' il sistema di riferimento di partenza
-t_srs e' il sistema di riferimento finale

ogr2ogr wgs.shp boaga.shp -s_srs EPSG:3003 -t_srs EPSG:32632

martedì 29 ottobre 2013

Compressione video

Il video originale dell'intervento al Linux Day 2013 e' stato ripreso con una micro camera Go Pro a risoluzione Full HD. Il risultato e' che l'intervento della durata di circa 16 minuti corrisponde ad una occupazione su disco di circa 3.7 Gb... un po' troppo per pensare di effettuare l'upload su Youtube



Ho quindi provato a comprimere il file mediante il software ffmpeg e la seguente stringa

ffmpeg -i luca.mp4 -s 720x480 -acodec copy luca.mkv

al termine della compressione il file e' risultato essere di circa 30 Mb con una compressione di oltre un fattore 1000. La conversione e' stata fatta su un IBM T61 dual core con 2 Giga di Ram e per ogni secondo di video erano necessari circa 3-4 secondi di calcolo

Personalizzazione di Webiopi

Il sistema di gestione Web delle porte GPIO di Raspberry presentato in questo post puo' essere anche customizzato nell'aspetto dell'interfaccia per esempio per mostrare un solo pulsante



Un esempio viene riportato al Wiki di Google Code ...peccato che sia sbagliato

Dopo un po' di ricerche ecco una pagina funzionante che accende e spenge il solo pin GPIO 25. L'aspetto fondamentale e' che prima di usare il pin questo deve essere dichiarato come output
Il file deve essere posizionato in /usr/share/webiopi/htdocs
------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <meta name="viewport" content = "height = device-height, width = 420, user-scalable = no" /> 
        <title>WebIOPi | Demo</title>

        <script type="text/javascript" src="/webiopi.js"></script>
        <script type="text/javascript">
        webiopi().ready(function() {
webiopi().setFunction(25,"out");

                var content, button;
                content = $("#content");
                               
                button = webiopi().createGPIOButton(25, "SWTICH");
                content.append(button); // append button to content div
                       
           

webiopi().refreshGPIO(true);
                
        });
                
        function mousedown() {
                webiopi().digitalWrite(7, 1);
        }
        
        function mouseup() {
                webiopi().digitalWrite(7, 0);
        }
        
        function outputSequence() {
                var sequence = "01010100110011001100101010" // S.O.S. morse code or whatever you want
                // output sequence on gpio 7 with a 100ms period
                webiopi().outputSequence(7, 100, sequence, sequenceCallback);
        }
        
        function sequenceCallback(gpio, data) {
                alert("sequence on " + gpio + " finished with " + data);
        }
        
        function callMacro() {
                var args = [1,2,3] // or whatever you want
                // call myMacroWithArgs(arg)
                webiopi().callMacro("myMacroWithArgs", args, macroCallback);
        }
        
        function macroCallback(macro, args, data) {
                alert(macro + " returned with " + data);
        }
        
        </script>
        <style type="text/css">
                button {
                        display: block;
                        margin: 5px 5px 5px 5px;
                        width: 160px;
                        height: 45px;
                        font-size: 24pt;
                        font-weight: bold;
                        color: black;
                }
                
                input[type="range"] {
                        display: block;
                        width: 160px;
                        height: 45px;
                }
                
                #gpio7.LOW {
                        background-color: White;
                }
                
                #gpio7.HIGH {
                        background-color: Red;
                }
        </style>
</head>
<body>
        <div id="content" align="center"></div>
</body>
</html>

Video presentazione Linux Day 2013 - Nemo Rov

Il video dell'intervento al Linux Day 2013
La prima parte e' tenuta da Francesco Mugnai con la presentazione dell'esperienza sulla Costa Concordia mentre nella seconda viene spiegato con qualche dettaglio maggiore le caratteristiche del ROV






File presentazione Libreoffice
File presentazione Pdf

lunedì 28 ottobre 2013

Importanza del cavo USB

Un amico e' mi ha chiesto su un aiuto per recuperare i dati dal suo disco esterno Lacie. Questo modello, riportato nella foto, presenta  un cavo USB esterno sempre attaccato al case in alluminio che ovviamente si era tranciato nel punto di maggiore tensione 


Il primo istinto e' stato quello di trovare un set di chiavi torx per aprire il case quando e' stato notato che il cavo esterno era facilmente rimuovibile e sotto il connettore grigio si nascondeva una rassicurante mini Usb.

E' stato quindi recuperato quindi il primo cavo mini Usb presente in ufficio .. un cavo retrattile come quello riportato come esempio nella foto sottostante

Una volta connesso il cavo al disco ed al computer il disco fisso ha iniziato a girare emettendo dei tipici ticchettii spesso indicatori di disco fisicamente rotto.
Visto che era improbabile anche la rottura del disco ho suggerito di sostituire il cavo retraibile con un normale cavo mini USB (caratterizzato da una sezione maggiore)

A questo punto il disco ha iniziato a funzionare correttamente. L'ipotesi piu' probabile e' che il cavo retraibile non fosse in grado di alimentare in modo corretto il disco che quindi provava a mettersi in moto ma non avendo corrente a sufficienza emetteva il rumore sopra descritto

Debugger integrato ESP32S3

Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede  nell'ID USB della porta Jtag. Nel modulo...