Visualizzazione post con etichetta Open Source. Mostra tutti i post
Visualizzazione post con etichetta Open Source. Mostra tutti i post

2014-09-30

Dizionario on-line da bash con curl

La RFC 2229 descrive il protocollo Internet DICT per permettere l'accesso a dizionari in rete.
Un modo molto semplice per accedere è l'utilizzo del comando curl che supporta tale protocollo.

Un esempio con la parola inglese door che viene tradotta in Italiano in porta o uscio:
curl "dict://dict.org/d:door:fd-eng-ita"
restituisce:
220 pan.alephnull.com dictd 1.12.1/rf on Linux 3.14-1-amd64 <auth.mime> <6051747.13047.1412087461@pan.alephnull.com>
250 ok
150 1 definitions retrieved
151 "door" fd-eng-ita "English-Italian FreeDict Dictionary ver. 0.1.1"
door
 porta; uscio
.
250 ok [d/m/c = 1/0/12; 0.000r 0.000u 0.000s]
221 bye [d/m/c = 0/0/0; 0.000r 0.000u 0.000s]

le righe che iniziano con un numero fanno parte del protocollo ed offrono un utilizzo agevolato per il trattamento automatico:
il 220 corrisponde al messaggio di benvenuto da parte del server che indica i suoi riferimenti e le sue caratteristiche.
il 250 seguito da ok rappresenta la presa in carico della richiesta.
il 150 riporta il numero delle definizioni trovate, se non ce ne fossero il codice sarebbe 552.
Per ogni definizione trovate avremo un 151 con l'indicazione della parola cercata, il codice e la descrizione del dizionario in cui è stata trovata
Di seguito alla riga con codice 151 viene riportato il contenuto della definizione che si conclude con una riga contenente solo un punto "."
Al termine delle definizioni trovate di nuovo un codice 250 con eventuali indicazioni dei tempi impiegati per reperire le informazioni.
Il codice 221 rappresenta i saluti da parte del server per la chiusura della connessione.

Altrettanto interessante può essere l'esecuzione di una richiesta senza specificare il dizionario da usare:
curl "dict://dict.org/d:door"
si ottiene il contenuto della definizione door per il Dizionario Inglese Collaborativo Internazionale che rappresenta il dizionario di default del server dict.org.

Per ottenere la lista dei dizionari disponibili in dict.org eseguire:
curl "dict://dict.org/show:db"
in risposta si ottiene un codice 110 con l'indicazione del numero di dizionari presenti e di seguito la lista indicante il codice e la descrizione di ognuno, termina con la solita riga con un solo punto, poi il 250 e il 221 di saluti.

Nella lista ottenuta vorrei che si notasse:
foldoc "The Free On-line Dictionary of Computing (20 July 2014)"
e trovo doveroso il comando:
curl "dict://dict.org/d:linux:foldoc"

Idea presa da http://www.thegeekstuff.com/2012/04/curl-examples/

2014-09-15

Lubit cresce e consuma sempre poco

Lubit, attualmente alla versione 3, si conferma come ottima soluzione per l'installazione di Linux su PC con poche risorse.

L'immagine che segue ne è la prova:


Il limitato impegno di risorse in termini di memoria e di CPU ne fanno una distribuzione ideale per il recupero di vecchio hardware reperibile nelle proprie soffitte oppure dalle aziende che dismettono PC non più utilizzabili per usi professionali con i software proprietari disponibili sul mercato. Proprio i PC dismessi dalle aziende potrebbero essere riutilizzati nelle aziende stesse, anche se di solito si trova terreno poco fertile in questa direzione; ancora di più potrebbero essere utilizzati in scuole oppure associazioni in cui le disponibilità economiche sono sempre ridotte all'osso.

Inoltre trovo utili le guide nel sito del progetto, se proprio non vorrete installare Lubit potranno comunque risultare utili anche in altre distribuzioni. Di documentazione sui software liberi se ne trova sempre tanta ma la qualità di queste guide mette in evidenza le capacità e gli obiettivi del team.

Finora ho provato Lubit 3 solo installata in macchine virtuali ma a breve dovrò riutilizzare dei vecchi PC e penso che sarà la scelta che adotterò. Non mancherò di aggiornare il blog con le impressioni che ne deriveranno.

Intanto i complimenti e gli auguri di buon lavoro al team di Lubit.

2013-05-30

Disabilitare il salvataggio dei core con systemd

Eclipse da un po' di tempo a questa parte esegue un'operazione non corretta, che non intendo dettagliare in questo post, tale problema causa il crash del processo ed il conseguente salvataggio dello stato della memoria.
Il salvataggio della memoria di un processo che chiude in modo anomalo è utilissimo per poter indagare sulla causa dell'errore ma quando non si ha intenzione di indagare oppure non si è in grado l'operazione di salvataggio risulta inutile.
Nel caso specifico di Eclipse il salvataggio della memoria è un procedimento assai lungo ed essendo il momento in cui sto per spegnere il computer lo trovo molto fastidioso. L'aspetto più fastidioso è quello di ritrovarsi con la macchina impegnata a scrivere alcune centinaia di MiB su disco e quindi risulta scarsamente reattiva alle sollecitazioni dell'utente e tantomeno le richieste di spegnimento.
I nuovi metodi di gestione del sistema introdotti qualche mese fa su Arch Linux ancora mi risultano un po' oscuri e queste situazioni mi spingono a documentarmi, nella pagina di manuale di systemd-system.conf ho trovato nella sezione [Manager] il parametro da modificare per disabilitare il salvataggio del core:
DumpCore=no
Nel file /etc/systemd/system.conf l'ho trovata commentata con il # ad inizio riga ed il valore era yes, quello corrispondente al default, quindi l'ho "decommentata" eliminando il # e corretto con no.

Per rendere effettiva la modifica eseguire il comando
systemctl daemon-reload
oppure riavviare il sistema.

Finalmente alla chiusura di Eclipse non ho più quella fastidiosa sensazione di perdita del controllo del PC.

2013-05-28

Lubit distribuzione leggera

Da qualche giorno è disponibile per il download la distribuzione Lubit.
Realizzata da una piccola comunità italiana, è basata su Ubuntu 13.04 e preconfezionata in modo da permettere un notevole risparmio in termini di memoria.
La prima prova in modalità live su macchina virtuale VirtualBox mi ha fatto un'ottima impressione; dopo l'installazione, sempre su macchina virtuale, l'impressione è ancora migliorata.
Vedere utilizzati 86.1MiB di memoria RAM avendo attivato un desktop grafico di tutto rispetto la rende molto utilizzabile con hardware datati ma ancora funzionanti.
Il fatto di avere OpenBox come window manager ne permette una configurabilità notevole per le operazioni con il mouse e con quelle da tastiera che personalmente prediligo.

Concludo con il consiglio di provare questa distribuzione e riporto la Pagina di presentazione e quella per il download

2013-02-06

Openpolis colpisce ancora

In questo periodo in cui la campagna elettorale è nel vivo, l'associazione Openpolis ha redatto un rapporto molto interessante dal nome "Camere Aperte 2013".

Il contenuto è un riassunto dei dati già presenti nel sito ma di ancor più facile consultazione e diffusione.
Vi invito a leggerlo e diffonderlo.

Ecco il link dal quale scaricare il PDF: Camere Aperte 2013

2012-09-05

Thunderbird e le risposte

Utilizzo ormai da qualche anno Thunderbird come agente di posta elettronica.
Mi trovo bene con molte sue caratteristiche che potranno essere oggetto di post futuri.
Un problema particolare che ho deciso di approfondire è la posizione del cursore nel testo di un messaggio in fase di risposta; quando si risponde ad un messaggio cliccando sul tasto Rispondi (o Reply per la versione inglese) viene creato un nuovo messaggio con aggiunto il testo del messaggio originale, il cursore però si posiziona in fondo al testo.
Non ci vuole molto a posizionarsi in cima, ovvero dove di solito ci si aspetta di scrivere la nostra risposta, per me che sono un amante dell'utilizzo della tastiera Ctrl-Home assolve velocemente il compito.
Considerato che per abitudine rispondo sempre scrivendo all'inizio, ho cercato un modo per avere in automatico il cursore posizionato all'inizio.
L'ho trovato! Tra gli appunti che si possono fare c'è la difficile rintracciabilità delle opzioni di configurazione del prodotto...
Si deve entrare nelle impostazioni dell'account: Menu > Modifica > Impostazioni account...
si deve poi scegliere la voce Composizione ed indirizzi del l'account per il quale si vuole cambiare il comportamento e scegliere inizia la risposta sopra il testo a cui si risponde nella voce dopodiché appena sotto la casella inserisci automaticamente il messaggio originale nella risposta.

Grazie al mio amico Michele che mi ha sensibilizzato sul problema e stimolandomi per la ricerca.

2012-04-10

La data in Gnu-Linux

Per Unix il tempo è iniziato l'1 Gennaio 1970.
Ogni orario viene riferito a quel momento, quanti secondi sono passati dal 01/01/1970? Nel momento in cui scrivo 1.334.009.466.
Il comando date di Gnu ci fornisce questa informazione passandogli un determinato parametro: +%s
L'opzione  --date ( nella versione abbreviata -d ) serve per fornire una date/orario differente da quelli di sistema per la visualizzazione, quindi provando ad eseguire il comando:
date --date="2012-04-10 00:13:00" +%s
in qualunque ora lo eseguiate otterrete 1334009580.
Cercando di calcolare quanti secondi sono passati dall'impatto del Titanic con l'iceberg al 01/01/1970:
date --date="1912-04-14 23:50" +%s
a questo punto si ottiene un numero negativo essendo antecedente il 1970, sottraendo i secondi del Titanic a quelli attuali si ottengono i secondi passati dall'impatto del Titanic:
echo $(($(date --date="2012-04-10 00:13:00" +%s) - $(date --date="1912-04-14 23:50" +%s)))

I vecchi comandi date presenti nelle vecchie versioni di Unix servivano solamente per consultare ed impostare la data di sistema e quindi i progettisti avevano dato per scontato che non ci sarebbe stata la necessità di inserire date precedenti il 1970. In seguito l'implementazione Gnu ha esteso il comando date anche a funzioni di visualizzazione di date e orari arbitrari e quindi anche date antecedenti il 1970.

L'opzione --date ci permette anche di indicare date indietro o in avanti rispetto al momento attuale esprimendo ad esempio:
domani: "tomorrow"
ieri: "yesterday"
la prossima Domenica: "next Sunday"
le 18:30 della Domenica precedente "last Sunday 18:30"
il mese scorso: "last month"
la settimana scorsa: "last week"
fra 3 domeniche: "3 sunday"
fra 4 settimane: "4 weeks"
3 settimane fa: "3 weeks ago"
domani più una settimana: "tomorrow + week"
ieri più due mesi: "yesterday + 2 month"
fra 5 giorni e 2 ore: "5 days + 2 hours"

2012-03-29

Marziani in rete ed Open SuSE 11.2

Mar 29 09:12:33 pc2kx kernel: [ 1048.245950] martian source 192.168.2.0 from 0.0.0.0, on dev eth0
Mar 29 09:12:33 pc2kx kernel: [ 1048.245970] ll header: ff:ff:ff:ff:ff:ff:00:00:00:00:fe:01:08:00
Mar 29 09:12:34 pc2kx kernel: [ 1048.999644] martian source 192.168.2.0 from 0.0.0.0, on dev eth0
Mar 29 09:12:34 pc2kx kernel: [ 1048.999665] ll header: ff:ff:ff:ff:ff:ff:00:00:00:00:fe:00:08:00
Mar 29 09:12:34 pc2kx kernel: [ 1049.745748] martian source 192.168.2.0 from 0.0.0.0, on dev eth0
Mar 29 09:12:34 pc2kx kernel: [ 1049.745768] ll header: ff:ff:ff:ff:ff:ff:00:00:00:00:fe:01:08:00
Mar 29 09:12:35 pc2kx kernel: [ 1050.499409] martian source 192.168.2.0 from 0.0.0.0, on dev eth0
Mar 29 09:12:35 pc2kx kernel: [ 1050.499429] ll header: ff:ff:ff:ff:ff:ff:00:00:00:00:fe:00:08:00

Quello che precede è quello che mi trovo regolarmente nel file /var/log/messages da un po' di tempo a questa parte della mia macchina Open SuSE 11.2. So che nella rete al quale sono collegato ci possono essere pacchetti poco puliti e poi mi preoccuperò di sollecitare un controllo a chi di dovere. Per il momento non mi preoccupo dell'origine dei pacchetti che generano il log, voglio solo disabilitare la registrazione nel log di sistema, con la frequenza di un paccheto ogni 75 centesimi di secondi il mio log di sistema diventa ingestibile. Dopo un po' di ricerche e la lettura del seguente thread nel forum OpenSUSE ho eseguito il seguente comando:

sysctl -a|grep -i martian | while read L U; do sysctl -w $L=0;done

Adesso non vengono più riportati nel log i pacchetti marziani. Dopo un po' il servizio DHCP client conferma l'indirizzo IP già ottenuto in precedenza e richiama gli script per sistemare le cose necessarie, in pratica non fa niente, solo che rieseguendo lo script di configurazione del firewall reimposta i valori di sysctl appena modificati. Ricorro allora alla modifica del file /etc/sysconfig/network/scripts/dhcpcd-hook, ho aggiunto la seguente funzione:
 
disable_log_martians()
{
        sysctl -a|grep -i martian | while read L U; do sysctl -w $L=0;done
}

e l'ho richiamata con:

disable_log_martians

prima del ;; del case di up) e new) Adesso aspetto, si fa per dire, se cambia di nuovo qualcosa, poi domani al reboot verifico se tutto funziona come sperato.

2011-12-15

Grails 2.0 è tra noi

Oggi, 15 Dicembre, è stato rilasciato Grails 2.0.
La velocità di uscita di RC2 ed RC3 mostrava l'impazienza del team di sviluppo che sembra aver accelerato molto negli ultimi tempi.
Adesso è disponibile per il download alla pagina: http://grails.org/Download in cui si può scegliere il formato e la modalità di download preferita.

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

2011-10-28

Backup del file aperto con vim l'editor

Molte volte mi capita di aprire un file per modificarlo e solo dopo aver iniziato le modifiche mi ricordo di voler mantenere la versione originale in una copia del file.
Fortunatamente mi ricordo subito prima di salvarlo ed allora ricorro al seguente comando:
:!cp % %.orig
con questo comando si esegue una shell fornendo il comando cp con due parametri: il primo il nome del file aperto con vim, il secondo parametro è lo stesso nome del file con l'aggiunta di un suffisso .orig

2011-10-27

La calcolatrice di vim l'editor

Anche vim ha una calcolatrice.
In principio potrebbe sembrare inutile, visto che ogni sistema operativo, in modalità grafica e non, mette a disposizione un programma per eseguire calcoli.
Il solo fatto che sia disponibile una calcolatrice direttamente nell'editor permette di velocizzare il lavoro quotidiano:
Ctrl-R=
ci si accede digitanto questa sequenza di caratteri quando si è in modalità inserimento oppure nella modalità ed, quella in cui si entra digitando i due punti ':'.
Il cursore si posizionerà in fondo allo schermo in attesa di un'espressione da valutare e una volta premuto INVIO il risultato verrà inserito nel punto in cui si stava digitando.
Oltre al fatto che non si debba ricorrere all'apertura di un nuovo programma di calcolatrice, ritengo molto interessante il fatto che ci si ritrovi a "sporcare" la clipboard per eseguire un calcolo in un programma esterno e poi copiare il risultato.

2011-09-27

Eliminare gli spazi a fine riga con vim

Editando un file di testo con vim l'editor può capitare di inserire degli spazi in fondo alla riga, dato il tipo di visualizzazione, questi spazi possono sfuggire ed allora se non si ha l'accortezza di evitarlo durante la digitazione si può ricorrere ad uno dei comandi disponbili per toglierli tutti in un solo colpo.
:%s/\s\+$//
La magia è presto spiegata
: serve per entrare in modalità comando ed
% indica di agire sulle righe dell'intero file
/ delimita l'inizio del testo da cercare
\s indica gli spazi o i caratteri di tabulazione
\+ definisce la quantità di caratteri definito da \s ovvero 1 o più
$ indica che il testo cercato deve trovarsi a fine riga
/ delimita la fine del testo da cercare e l'inizio del testo da sostituire a quello cercato
/ delimita la fine del testo da sostituire a quello cercato

Tradotto in termini più comprensibili: sostituisci qualsiasi serie di tabulazioni o spazi in fondo alla riga con niente, ovvero: eliminala.

2011-09-14

Comandi vim per gestione testo racchiuso

Con Vim si possono effettuare agevolmente modifiche di testo racchiuso da particolari delimitatori com parentesi oppure apici. Per eseguire la modifica di una stringa delimitata da virgolette ( doppi apici ) ci si può posizionare in uno qualsiasi dei caratteri della stringa e, in modalità comando, digitare ci" ed inserire il nuovo testo da inserire nella stringa. Allo stesso modo se si vogliono modificare i parametri passati ad una funzione, posizionarsi all'interno delle parentesi tonde, digitare ci( e digitare i nuovi parametri per la funzione.
Lo stesso funziona per l'apice singolo, le parentesi graffe e quadre ed i caratteri < e > molto usati nei linguaggi di markup. Il testo da modificare può essere anche posizionato su più righe.
Oltre alla modifica questo sistema di selezione del testo può essere utilizzato per la cancellazione utilizzando la d invece della c oppure per la copia con y per poi incollarlo con p dalla posizione del cursore.

Vedere anche gli altri post che riguardano vim.