Simply ADV

2013-04-04

Chrome e audio con Flash su Linux x86_64

Con il mio Arch Linux x86_64 ho avuto un problema di audio guardando dei filmati dal sito motogp.com con browser Chrome, l'audio è "zoppicante".
Cerca e cerca ho trovato nel magico forum ufficiale di Arch l'opzione da dare a chrome per risolvere il problema:
--audio-buffer-size=4096
Con questo l'audio è corretto, spero che prosegua così.

riferimenti:
https://bbs.archlinux.org/viewtopic.php?pid=1252816
https://bbs.archlinux.org/viewtopic.php?id=160605

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-12-07

bash e l'aggiornamento delle dimensioni del terminale

Come ho forse accennato in post passati, utilizzo LXDE come desktop environment e bash come interprete di comandi, il tutto dentro varie linux-box con Arch Linux.
Mi capita spesso di aprire una finestra di terminale, attualmente LXTerminal, e lavorare a linea di comando con grande utilizzo delle funzioni di recupero dei comandi precedenti.
A volte, utilizzando Ctrl-R oppure con la freccia verso l'alto per ricercare un comando precedente, mi è capitato che i caratteri venissero disposti male nella riga di comando in modo da rendere impossibile correggere e avere la certezza di sottomettere il comando corretto.
Ho scoperto che non succede sempre, solo quando ho ridimensionato la finestra del terminale, ma non sempre, sapevo che le variabili COLUMNS e LINES contengono le dimensioni in caratteri della finestra di terminale e che vengono aggiornate al momento del ridimensionamento della finestra stessa ed in condizioni normali vengono aggiornate correttamente.
Capita però a volte che non si aggiornino ed ho verificato che non si aggiornano quando la finestra viene ridimensionata durante l'esecuzione di un programma, che sia esso vim, less o qualsiasi altro programma attivo al momento del resize, anche un semplice sleep o una compilazione.
La causa del mancato aggiornamento delle variabili è dovuta al fatto che il programma LXTerminal o similare, manda un segnale SIGWINCH sotto forma di kill al processo attivo al momento del ridimensionamento e non alla shell.
Per ripristinare i corretti valori delle variabili COLUMNS e LINES si può ricorrere a due metodi:
- ridimensionare la finestra nel momento in cui il controllo è tornato alla bash
- mandare il kill corretto alla shell con il comando:
kill -SIGWINCH $$
Per provare eseguire le seguenti operazioni:
- da bash su terminale grafico eseguire e prendere nota dei valori ottenuti con il comando:
echo $COLUMNS $LINES
- eseguire il comando:
sleep 10
- ridimensionare la finestra entro i dieci secondi, prima della ricomparsa del prompt
- rieseguire il comando precedente e se tutto va come ho descritto i valori dovrebbero essere invariati
- eseguire il ridimensionamento oppure il comando:
kill -SIGWINCH $$
- esaminare di nuovo i valori delle variabili che dovrebbero essere aggiornate, sempre che tutto funzioni come ho descritto

2012-09-05

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

2012-03-28

Eclipse ed il cut-and-paste

Seguendo un interessante tutorial di un argomento di cui scriverò a breve, ho imparato un comodo modo di utilizzare il copia e incolla in Eclipse.
Se negli appunti, la clipboard, c'è memorizzato il sorgente di una classe sotto forma di testo, in pratica avete selezionato il testo del sorgente dal web oppure da un altro editor, si può incollare nella vista Package Explorer nel progetto di Eclipse nel quale volete inserire tale classe ed Eclipse penserà al resto: vi ritroverete la classe corretta. C'è una distinzione da riconoscere: se incollate nella cartella di tipo source verrà creata la classe rispettando l'eventuale package originario, se invece incollate in un package già esistente Eclipse provvederà a correggere l'istruzione package adattandola al valore corretto.
Se il codice che avete copiato nella clipboard è solo un pezzo di codice Java, quindi non un'intera classe, Eclipse provvederà a creare una classe di nome Snippet contenente un metodo con il codice incollato.