2011-11-23

EasyStroke con estensione multitouch per Arch Linux

Ho realizzato l'archivio con cui distribuire la mia patch di estensione di EasyStroke per multi touch.
La mia estensione è ancoraa in versione alfa, l'ho provata solo nel mio Acer Iconia Tab W500 con sistema Arch Linux e LXDE con OpenBox.
Non ho ancora avuto modo di provarla in altri ambienti ed altri hardware.
Riporto il link per scaricare la versione del giorno:
https://sites.google.com/site/ant1antuan/easystroke-multi-touch/easystroke_mt-20111123.tar.gz?attredirects=0&d=1

Nel video che segue mostro alcune figure che ho realizzato solo a scopo di verifica di riconoscimento per visualizzare la gesture riconosciuta, non ho associato alcun comando.


2011-11-22

Convertire un file di testo da UNIX a DOS con vim l'editor

La conversione di un file di testo da UNIX ( CR come fine riga ) a DOS ( coppia di CR-LF come fine riga ), può essere svolta in molti modi con i comandi UNIX.

Questa è la volta di vim l'editor.

L'esigenza è quella di aggiungere il carattere CR (Carriage Return) (codice ASCII decimale 13, esadecimale 0x0D) a fine riga prima del carattere LF (Line Feed) (codice ASCII decimale 10, esadecimale 0x0A).

Bene, una volta aperto con vim il file da convertire si può sapere se è già in formato DOS verificando la presenza dell'etichetta: [dos] subito dopo il nome del file che compare nell'ultima riga dello schermo, se compare vuol dire che il file è già in formato DOS. Se l'etichetta [dos] non compare va eseguito il comando:

    :set ff=dos<INVIO>

poi il file va salvato nel modo abituale*, alla successiva riapertura del file l'etichetta [dos] dovrebbe essere presente a dimostrare che il formato del file adesso è quello previsto da DOS.



Per l'inverso il comando da impartire è:

    :set ff=unix<INVIO>

che permette di eliminare il carattere CR alla fine di ogni riga al momento del salvataggio del file di testo.

* non ho indicato il modo per chiudere vim salvando il file perché dipende dai gusti personali, riassumo quelli che uso più spesso:

    :wq<INVIO>

    ZZ

    :x<INVIO>

2011-11-20

EMTEC s800h firmware 5412 e YouTube

Mi sono deciso! Ho aggiornato il firmware del mio ottimo s800h.
Ho aggiornato il bootloader e poi il firmware alla versione 5215. Poi vado a cercare qualche novità e trovo che nel frattempo, da quando avevo scaricato gli aggiornamenti, la EMTEC ha rilasciato altri due nuovi firmware, fino ad arrivare alla 5412. Ho prontamente scaricato l'ultima versione e l'ho installata.
Magia delle magie: YouTube c'è e funziona!
C'è anche il controllo remoto via WEB, dal browser ci si può collegare e comandare le funzioni del media recorder. Nulla a che vedere con quello che ho realizzato io, ma forse più elegante. E' possibile raggiungerlo con l'indirizzo: http://emtec:1024/remote_control.html se avete cambiato il nome di rete del dispositivo sostituitelo ad "emtec" nell'indirizzo, e se ancora non funziona mettete l'indirizzo IP che potete vedere nella configurazione di rete.
Alla pagina http://www.emtec-international.com/el-eu/firmware_s800h_el si trova tutto il necessario per gli aggiornamenti.

2011-11-09

Dimensioni scrollbar per touchscreen in Linux

Per il mio Acer Iconia Tab W500 con Arch Linux e LXDE / Openbox le scrollbar erano troppo piccole per le mie dita.
Le scrollbar sono utilissime per lo scorrimento in fase di visualizzazione, ma se sono troppo piccole è facile cliccare in un punto non desiderato; per la configurazione della loro dimensione sono ricorso al file
~/.gtkrc-2.0
quindi nella home directory dell'utente essendo preceduto da ~/
Al suo interno ho aggiunto il seguente contenuto:
style "scroll"
{
        GtkRange::slider-width = 30
}
class "*" style "scroll"
Con questa configurazione viene creato un nuovo stile denominato scroll in cui si imposta a 30 pixel la larghezza della scrollbar verticale o altezza della scrollbar orizzontale; infine lo stile scroll viene assegnato alle finestre di qualunque classe (con * si intente qualsiasi classe).
A me personalmente non è interessato cambiare la dimensione delle frecce nelle due direzioni per spostare le barre, non le uso mai, ma se lo ritenete necessario potete aggiungere:
GtkRange::stepper-size =30
subito dopo la riga di slider-width, la dimensione la potete scegliere a piacere, per vedere l'effetto fa effettuato logout e login di nuovo.

2011-11-06

Tablet Acer Iconia Tab W500 - Linux EasyStroke e patch per multitouch

Usando EasyStroke per il riconoscimento delle gesture ho notato la necessità di distinguere le gesture eseguite con una o più dita.
Ho iniziato da qualche giorno ad indagare sui sorgenti del progetto per comprenderne la logica e per cercare di interpretare i dati restituiti dal driver del touch eGalax del mio Iconia Tab W500.
Dopo una serie di modifiche e prove sono riuscito a rilasciare una patch che ho pubblicato sullo strumento di tracking del progetto EasyStroke su sf.net. Il ticket è il seguente:
https://sourceforge.net/apps/trac/easystroke/ticket/107

In questo video dimostro il funzionamento e mostro due esempi di utilizzo

2011-11-04

Chiedi a Google di rovesciarsi

In Google con il browser ci giocano, sono arrivati al punto che riescono a fare cose divertenti e nemmeno troppo invadenti. Questa volta vi propongo la rotazione della pagina, in pratica viene simulata la rotazione di un aereo sul suo asse. Provate a digitare nella casella di ricerca di Google:
do a barrel roll
e avviate la ricerca, vedrete comparire il risultato e la finestra inizierà a roteare.
Se avete la funzione di previsione dei termini di ricerca, vedrete iniziare a roteare la finestra ancor prima di aver avviato la ricerca.

2011-11-03

Tablet Acer Iconia Tab W500 - Arch Linux e EasyStroke per le gesture

Mai prima di ora mi sono trovato a mio agio ad utilizzare un programma per il riconoscimento delle gesture.
In passato ho già scritto della mia avversione all'utilizzo del mouse, con l'arrivo del monitor touch le cose sono un po' cambiate. Per il posizionamento del puntatore ho ancora qualche problemino, il fatto di coprire con il dito l'elemento da puntare non mi piace.
Con le gesture le cose cambiano, per eseguire un comando o una funzione di un programma è sufficiente disegnare sullo schermo un tratto specificato in precedenza ed il comando (o funzione) viene eseguito.


Per attivarlo subito dopo il login ho aggiunto nel file
.config/lxsession/LXDE/autostart
la seguente riga:
@/usr/local/bin/my_easystroke.sh
e creato il file /usr/local/bin/my_easystroke.sh con il seguente contenuto:
#!/bin/bash
easystroke --disable
 ho aggiunto l'opzione --disable per avviare il programma con il riconoscimento disabilitato, mi piace abilitarlo solo quando mi serve. L'ho reso eseguibile con:
chmod +x /usr/local/bin/my_easystroke.sh
 Nella versione originale l'attivazione e disattivazione si esegue facendo click con il tasto destro sulla tray icon che ne visualizza lo stato, con il click sinistro si attiva il menu di gestione del programma. In un sistema touch il tasto destro non è molto agevole, avrei preferito che fossero invertiti i due tasti, per questo ho realizzato una patch che ho inviato su sf.net al gestore del progetto, per utilizzare il tasto sinistro per abilitare e disabilitare il riconoscimento.

Quello che mi piacerebbe che facesse EasyStroke è riconoscere se la gesture è stata disegnata con uno, due o più dita, in modo da aumentare di tanto le possibilità di utilizzo.

2011-11-02

Tablet Acer Iconia Tab W500 - Arch Linux e la rotazione dello schermo

Con il mio tablet vanno avanti le sperimentazioni ed ho installato i driver video proprietari, so che non è molto Open ma non essendo un fondamentalista il fatto per me è accettabile.
L'installazione dei driver va eseguita con
pacman -S xf86-video-ati catalyst

* In fondo all'articolo ho riportato alcune note per i problemi di compatibilità dei driver con il server X

Resi funzionanti i driver ATI, ho realizzato quattro script per la rotazione dello schermo.
Per la rotazione verso sinistra:

2011-11-01

Conversioni da esadecimale, binario e ottale a decimale in bash

In bash c'è un costrutto sintattico molto utile per eseguire calcoli, è assimilabile al meccanismo di sostituzione delle variabili:
$((7+5))
nella linea di comando verrà sostituito con 12, per visualizzarlo andrà preceduto dal comando echo:
echo $((7+5))
gli operandi delle espressioni possono essere forniti in diverse basi numeriche, i numeri forniti con 0 come prima cifra saranno interpretati come numeri ottali (in base 8), quelli prefissati da 0x come esadecimali (base 16) e quelli che iniziano per le cifre da 1 a 9 come decimali (base 10).
Per ottenere la conversione in decimale da ottale o esadecimale è sufficiente inserire tra le parentesi il numero da convertire prefissandolo come previsto per indicare la base corretta:
$((0x400))
oppure
$((02000))
per ottenere 1024.
Ogni altra base può essere specificata prefissando con la base seguita dal carattere #, ad esempio per esprimere un numero binario:
$((2#100))
$((4#10))
per ottenere 4.
Se si deve eseguire un calcolo con bsi miste si può liberamente indicare ogni numero con la sua propria base secondo la convenzione descritta.

Il capitolo 42 del manuale di vim l'editor

In pochi avranno fatto uso del manuale in linea di vim, ma è giusto sapere che è ricco di informazioni suddivise in molti capitoli.
Il capitolo 42 affronta l'aggiunta di menu, devo riconoscere ch si tratta di un argomento avanzato. In fondo al capitolo c'è una bizzarra frase alla quale si può arrivare direttamente digitando il comando:
:help 42
oppure la sua forma contratta:
:h42
il numero 42 è "La risposta alla domanda fondamentale sulla vita, l'universo e tutto quanto" restituita, dopo un'elaborzione di sette milioni e mezzo di anni, da un supercomputer costruito appositamente, nel romanzo Guida galattica per gli autostoppisti.