martedì 12 febbraio 2013

Impronte di lupo sulla neve

Questa foto non c'entra nulla con il contenuto di questo blog ma fotografare le impronte di lupo sulla neve sopra Vallombrosa  non puo' lasciare indifferenti


Debugging HTML5

Una delle cose che ho sempre trovato fastidiose di Javascript era l'assenza di un metodo di debugging step by step

Attualmente la soluzione e' semplice ed integrata in Chrome
Attivando il menu' Strumenti/Strumenti per sviluppatori si apre una finestra al di sotto della pagina visualizzata nel quale sono riassunti i dettagli

In particolare andando al tab Scripts si osserva il codice Javascript ed e' possibile effettuare una sessione di debugging step by step inserendo dei breakpoint cosi' come il qualsiasi altra IDE moderna (ovvero cliccando sul numero di riga all'estrema sinistra del codice)


Veramente molto utile

Adb e Root su Mk808b

Ieri stavo cercando disperatamente di guadagnare i privilegi di root sull' MK808 usando tutte le informazioni sui vari forum
Per ottenere il risultato il primo passo era quello di ottenere un accesso alla macchina mediante Adb
Purtroppo tutti i consigli (tipo collegarsi mediante il cavo OTG scollegando il cavo di alimentazione e le altre Usb) non hanno portato i frutti desiderati... non sono mai riuscito ad ottenere un collegamento Adb

Alla disperazione ho provato a lanciare Root Checker e con mia grande sorpresa ho scoperto che non era necessario nessun unrooting perche' il sistema operativo gia' disponeva dei privilegi di amministratore



Debian su MK808

In questo post un breve video sull'utilizzo di una immagine Debian Complete in Linux Complete Installer su un MK808



come si puo' vedere il processore dual core da 1.2 Ghz fa la sua differenza rispetto alla precedente prova sul Samsung Galaxy Next Plus con processore da 800 MHz single Core

Per la cronaca l'MK808 e' collegato ad un televisore 720p con una risoluzione di 1024x768 che costringe a scrollare a mano in quanto lo schermo e' piu' grande della finestra reale del televisore

giovedì 7 febbraio 2013

Autenticazione su Linux con chiave USB

Ognuno di noi ha qualche chiavetta USB vecchia e poco capiente abbandonata in qualche cassetto ... perche' non usarla??




Nel mio caso ho usato una vetusta chiave Lexar Media da 32 Mb (!!!!) per usare una autenticazione automatica su Linux

per prima cosa si devono scarica i pacchetti pam

apt-get install pamusb-tools libpam-usb

successivamente si inserisce la chiave che si intende configure e si lancia

pamusb-conf --add-device my-usb-stick

seguito da 

pamusb-conf --add-user luca

(dove luca e' il nome dell'utente da configurare)

gia' finito almeno usando una Debian Testing....si puo' vedere il video allegato per verificare il funzionamento. In pratica alla finestra di login si inserisce la chiavetta e si digita il solo username (nel caso in cui non si ha la chiavetta il login e' automatico)



Eventualmente (se si usa Gnome) si puo' settare il comando che all'estrazione della chiavetta fa partire lo screensaver con il lock del monitor modificando il file /etc/pamusb.conf come segue
----------------------------------------------------------------------
<user id="ubuntu-user">
 <device> my-usb-stick </device> 
<agent event="lock">gnome-screensaver-command -l</agent> 
<agent event="unlock">gnome-screensaver-command -d</agent> 
</user>
----------------------------------------------------------------------

Testare PhoneGap con Ripple

Uno dei problemi maggiori di PhoneGap e' quello di non poter usare il debugger integrato nell'Android SDK in quanto tutto il codice e' Javascript

Per questo motivo puo' essere utile testare il solo codice HTML5 e PhoneGap in un ambiente esterno e la soluzione puo' essere utilizzare Ripple, una estensione per Chrome che permette questo tipo di operazione

Per prova e' stato utilizzato il codice del post precedente ed e' stato configurato un web server locale nel quale sono stati inseriti i file della cartella assets del progetto



Come si puo' vedere e' possibile simulare le accelerazioni e si osserva il programma in esecuzione come se fosse su un telefono reale

PhoneGap



PhoneGap e' un insieme di API che permette di interagire con l'hardware dei dispositivi mobile (Android, IPhone, WebOs ed altri) direttamente da HTML5 ed e' quindi sostanzialmente indipendente dal linguaggio nativo del sistema operativo di ogni telefono


Windows
installare Java JDK (non JRE)
installare Eclipse
installare Android SDK ed ADT
installare Ant
aggiungere alla path le directory platform-tools e tool dell'Android SDK
aggiungere alla path la directory bin del pacchetto ant
eseguire i comandi sottostanti
--------------------------------
C:\>set JAVA_HOME="C:\Programmi\Java\jdk1.7.0_09\bin"
C:\>set PATH=%JAVA_HOME%\bin;%PATH%
--------------------------------


Linux
in Linux (Debian Testing) l'unico problema e' relativo al fatto che stranamento ant non e' incluso in openjdk-7 ma nella versione 6 per cui deve essere scaricato il pacchetto precedente


Una volta configurato il sistema si procede andando nella directory
/phonegap/lib/android/bin
e si lancia il comando
create /directory_lavoro  com.prova.test phonegap

che creera' un nuovo progetto nella directory di lavoro.
A questo punto si apre Eclipse e si crea un nuovo progetto da Android Project From Existing code e si punta alla directory create

Il risultato sara' qualcosa di questo tipo




si vede subito che la funzione main e' piuttosto stupida in quanto crea un WebView che punta al contenuto di assets

phonegap.java
-------------------------------------------------------

public class phonegap extends DroidGap
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");
    }
}
----------------------------------------------------------
quindi il codice da mofidicare e' index.html.


Nel seguente esempio ho provato a vedere il risultato dell' accelerometro
Index.html
-------------------------------------------------------

<!DOCTYPE html>
<html>
  <head>
    <title>Accelerazione</title>

    <script type="text/javascript" charset="utf-8" src="cordova-2.3.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    document.addEventListener("deviceready", onDeviceReady, false);

    function onDeviceReady() {
    var options = { frequency: 3000 };
        navigator.accelerometer.watchAcceleration(onSuccess, onError);
    }

    // onSuccess: Get a snapshot of the current acceleration
    //
    function onSuccess(acceleration) {
    
    var accx = document.getElementById('accx');
    var accy = document.getElementById('accy');
    var accz = document.getElementById('accz');
    
    accx.innerHTML = 'Accelerazione X :  '     +acceleration.x;
    accy.innerHTML = 'Accelerazione Y :  '     +acceleration.y;
    accz.innerHTML = 'Accelerazione Z :  '     +acceleration.z;
    
  
    }

    // onError: Failed to get the acceleration
    //
    function onError() {
        alert('onError!');
    }

    </script>
  </head>
  <body>
    <p id="accx">Accelerazione X : </p><br>
    <p id="accy">Accelerazione Y : </p><br>
    <p id="accz">Accelerazione > : </p><br>
    
  </body>
</html>
-------------------------------------------------------

Qui il risultato di 5 minuti di lavoro. I dati vengono riaggiornati ogni 3 secondi


Considerando che ci ho messo meno di 5 minuti a capire come funziona il gioco direi che e' decisamente interessante

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...