2012-04-18
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:
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"
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.
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.
Serie di numeri ottali ed esadecimali in bash
Per ottenere una serie di numeri in uno script si può ricorrere alle caratteristiche di espansione messe a disposizione da bash.
Provate:
Provate:
echo {1..10}
echo {15..-3}
Oggi ho avuto necessità di ottenere i numeri in notazione ottale da 0000 a 0377 e poi gli stessi valori ma in notazione esadecimale, per ottenerli ho realizzato i seguenti codici per l'espansione:
echo 0{0..3}{0..7}{0..7}
echo {{0..9},{A..F}}{{0..9},{A..F}}
Nel post Sequenze di valori con bash ho trattato più approfonditamente l'argomento delle sequenze di valori.
Scroll contemporaneo di finestre con vim l'editor
Quando si devono consultare e/o modificare due file contemporaneamente con vim si può ricorrere all'opzione -O per aprire in modo affiancato tutti i file passati come parametri. Per passare con il cursore da una finestra all'altra si usa <Ctrl>W W oppure <Ctrl>W <Ctrl>W.
Per impartire a vim l'ordine di scorrere in modo sincronizzato il contenuto di ogni finestra si deve dare il comando:
Per impartire a vim l'ordine di scorrere in modo sincronizzato il contenuto di ogni finestra si deve dare il comando:
:set scrollbind
ad ogni finestra del quale si vuole sincronizzare il movimento, si posiziona il cursore nella finestra interessata e si digita il comando.
Se si vuole togliere la sincronizzazione ad una finestra si impartisce:
:set noscrollbind
2012-03-21
Ho abbandonato il driver Catalyst
In Arch Linux installato nel tablet Acer Iconia W500 ho rinunciato al driver proprietario Catalyst per la scheda grafica ATI per passare alla versione open source, il motivo non è stato per questione di principi, mi sono reso conto che il ritardo nei rilasci di aggiornamenti non era più accettabile. Avere una distro reattiva come Arch Linux e rimanere indietro con il server Xorg mi sembra veramente inaccettabile.
Ad ogni modo il motivo scatenante è stato la voglia di provare le funzionalità multi-touch della nuova versione di Xinput. Ho provato, però il driver del touch deve avere ancora qualcosa da aggiornare perchè Xorg lo riconosce come multi-touch ma quando deve riconoscerlo la libreria XI2 non risulta multi.
Devo ancora indagare. L'obiettivo finale è quello di convertire la versione multi-touch di Easystroke che ho realizzato in una versione un po' più portabile verso altri driver e altre configurazioni.
Ad ogni modo il motivo scatenante è stato la voglia di provare le funzionalità multi-touch della nuova versione di Xinput. Ho provato, però il driver del touch deve avere ancora qualcosa da aggiornare perchè Xorg lo riconosce come multi-touch ma quando deve riconoscerlo la libreria XI2 non risulta multi.
Devo ancora indagare. L'obiettivo finale è quello di convertire la versione multi-touch di Easystroke che ho realizzato in una versione un po' più portabile verso altri driver e altre configurazioni.
Impressioni di utilizzo di Volunia
Qualche giorno fa sono stato selezionato come "power user" di Volunia, la cosa mi aveva attirato ed ho provato a cercare di capire cosa potesse offrirmi un sistema che si presenta come un nuovo metodo per accedere ad Internet ed ai siti che formano Internet.
Le prime prove non mi hanno convinto molto sul fatto che offra soluzioni che migliorino di molto la ricerca e la fruizione dei contenuti disponibili.
Devo riconoscere che non mi sento molto "social" e l'opportunità di leggere i commenti lasciati da altri utenti o lasciarne di miei nei siti che consulto mi sembra inutile o almeno poco fruibile.
Avere a disposizione la mappa del sito nella modalità proposta da Volunia lo trovo simpatico, ma oltre la simpatia non riesco a trovare ancora un'utilità particolare del modo rivoluzionario di navigazione. Non escludo che non sia riuscito ad interpretare correttamente il miglior modo di utilizzo e per questo non demordo e proverò ancora.
Le prime prove non mi hanno convinto molto sul fatto che offra soluzioni che migliorino di molto la ricerca e la fruizione dei contenuti disponibili.
Devo riconoscere che non mi sento molto "social" e l'opportunità di leggere i commenti lasciati da altri utenti o lasciarne di miei nei siti che consulto mi sembra inutile o almeno poco fruibile.
Avere a disposizione la mappa del sito nella modalità proposta da Volunia lo trovo simpatico, ma oltre la simpatia non riesco a trovare ancora un'utilità particolare del modo rivoluzionario di navigazione. Non escludo che non sia riuscito ad interpretare correttamente il miglior modo di utilizzo e per questo non demordo e proverò ancora.
Iscriviti a:
Post (Atom)