Appunti Linux

Per conoscere l’indirizzo IP di una macchina dato il nome è sufficiente il comando ping:

marcob@jsbach:~$ ping www.google.it
PING www.l.google.com (209.85.143.104) 56(84) bytes of data.

Per la risoluzione inversa, utilizzare il comando dig:

marcob@jsbach:~$ dig -x 209.85.143.104
...
;; QUESTION SECTION:
;104.143.85.209.in-addr.arpa.    IN    PTR

;; ANSWER SECTION:
104.143.85.209.in-addr.arpa. 86135 IN    PTR    dy-in-f104.1e100.net.
...

LDAP

Link utili per la configurazione di OpenLDAP 2.4

http://www.openldap.org/doc/admin24/quickstart.html

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-it-4/ch-ldap.html

PHP Excel

Errore in cui sono incorso provando la libreria PHPExcel:

marcob@jsbach:~$ tail -f  /var/log/apache2/error.log
[Thu Mar 31 16:40:26 2011] [error] [client 127.0.1.1] 
PHP Fatal error: Uncaught exception 'Exception' with message 
'Could not close zip file
/var/www/Classes/PHPExcel/Tests/01simple.xlsx.' in
/var/www/Classes/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php:344
Stack trace:n#0 /var/www/Classes/PHPExcel/Tests/01simple.php(77):
PHPExcel_Writer_Excel2007->save('/var/www/Classe...')
#1 {main}
thrown in 
/var/www/Classes/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php
on line 344

In sostanza non riesco a scrivere nella directory

/var/www/Classes/PHPExcel/Tests/

Soluzione:

root@jsbach:/var/www/Classes/PHPExcel# chmod 775 Tests/
root@jsbach:/var/www/Classes/PHPExcel# chgrp www-data Tests/

L’errore sparisce e il file viene salvato.

150° anniversario dell’Unità d’Italia

150° Anniversario dell'Unità d'Italia

Simon Van Der Meer

Il 4 marzo scorso è scomparso Simon Van Der Meer, ingegnere tra le personalità più importanti nella storia del CERN di Ginevra.

Aveva vinto il premio Nobel 1984 assieme a Carlo Rubbia per gli esperimenti che avevano confermato l’esistenza delle particelle Z e W, i bosoni dell’interazione debole, e credo sia l’unico ingegnere ad essere stato insignito con un premio così importante nell’ambito della Fisica. Il suo contributo alla scoperta fu l’invenzione e la realizzazione del raffreddamento stocastico applicato all’acceleratore SPS (Super Proton Synchrotron), un metodo per stabilizzare i fasci di protoni e antiprotoni.

Il CERN gli ha dedicato un elogio nel sito istituzionale.

Nel sito http://nobelprize.org si trovano la lezione di Van Der Meer sul raffreddamento stocastico e la sua autobiografia.

Energie rinnovabili

È un tema che mi sta a cuore da qualche anno, ho anche frequentato un corso di progettazione di impianti fotovoltaici nel 2008 a Padova, al Collegio degli Ingegneri.

Il decreto firmato dal Presidente della Repubblica il 7 marzo sembra mettere in crisi il settore. Il Governo giura di no, ma gli addetti al settore invece dicono che è vero.

Ho cercato di farmi un’idea autonomamente, leggendomi sia la direttiva 2009/28/CE (che il decreto recepisce), che il decreto legge. Ammetto di fare un po’ di fatica a districarmi nel ginepraio di titoli, articoli, commi riferimenti incrociati (suggerimento al parlamento: PERCHÉ NON SCRIVETE LE LEGGI IN HTML COSÌ SI PUÒ LEGGERE UN RIFERIMENTO CLICCANDOCI SOPRA?), per cui ho cercato qualche aiuto. Nel sito del Sole 24 ore ci sono alcuni articoli, come questo, che evidenziano i punti salienti.

Si intitola: Meno incentivi sul fotovoltaico.

E’ di parte? Credo di poter dire di no: il quotidiano è l’organo della Confindustria che ha subito definito buono il decreto. Ma mi pare di capire che le cose non siano, però, così buone.

Può essere utile approfondire, ma l’impressione non è positiva.

Umask e sticky bit

Veloce incursione nel mondo Linux/Unix.

umask = 777 – diritti di lettura / scrittura (in ottale)

il valore umask è il complemento a 128 dei permessi di scrittura. Ci dice quali permessi vogliamo negare sul file più che concedere.

Ad esempio se una directory è leggibile / scrivibile / eseguibile dal proprietario e solo leggibile/eseguibile dalresto del mondo (il gruppo e tutti gli altri), si ha:

  • proprietario = 111 = 7
  • gruppo = 101 = 5
  • altri = 101 = 5

per cui umask = 777 – 755 = 022 (ottale)

Se anche il gruppo dovesse poter scrivere, si deve impostare la directory con

chmod 775 /path/to/dir

ossia umask = 777 – 775 = 002.

umask è un comando Unix che altera permanentemente i diritti di accesso ai file / directory creati dopo il comando per quella shell. Esempio:

marcob@jsbach:~$ umask 022
marcob@jsbach:~$ touch nuovo
marcob@jsbach:~$ ll nuovo 
-rw-r--r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo
marcob@jsbach:~$ umask 002
marcob@jsbach:~$ touch nuovo1
marcob@jsbach:~$ ll nuovo*
-rw-r--r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo
-rw-rw-r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo1

Ma cosa vuol dire:

drwxrwxrwt  15 root root  4096 2011-03-07 14:55 tmp/

cioè cosa significa la t?

Significa che per la directory /tmp/ è stato impostato lo sticky bit (bit adesivo) che fa in modo che nella directory tutti possano scrivere ma solo i proprietari dei file possano rinominarli o cancellarli.

Per i file: il kernel, quando carica nella swap area un file eseguibile, non lo rimuove (lo incolla letteralmente alla swap area) nemmeno quando ha terminato l’esecuzione. Questo, soprattutto alle origini, per fare in modo che i programmi più frequentemente usati dall’utente rimanessero in memoria per avviarli più rapidamente.

Sull’uso di tablespaces separati per dati e indici

Mi sono imbattuto in questo interessantissimo botta e risposta nel sito dell’Oracle.

La domanda è: sarà più performante il database nelle operazioni di lettura e scrittura (e magari anche per i backup) se mettiamo tabelle e indici in tablespace separati?

I DBA con cui lavoro spesso adottano questo espediente per avere prestazioni migliori, ma alla Oracle stessa non ritengono così certa questa convinzione,  che, a quanto pare, risulta molto diffusa. La separazione può essere utile, ma non per le ragioni per cui di solito viene adottata.

Leggetevi la discussione in questo interessante forum: Ask Tom Oracle … almeno fino ad un certo punto rimane lucida; poi, come capita spesso nei forum, si va a farfalle.

“Howto” per l’installazione di un sistema LAOP (Linux Apache Oracle PHP)

Ho avuto la necessità di realizzarmi un ambiente di sviluppo basato su Linux, Apache e PHP ma con il vincolo di adottare una base dati Oracle.

Oracle da’ la possibilità di utilizzare un server ad uso test Oracle eXpress Edition. Il sistema che ne deriva l’ho chiamato LAOP, ricordando il molto più popolare ambiente LAMP che si basa sul DBMS MySQL (che è di proprietà di Oracle).

Ho seguito un utile howto sull’ottimo sito http://www.danilovizzarro.it/ ma ho voluto “vivisezionare” gli script di automazione per capire ciò che facevano. Ne è risultato un piccolo howto, redatto ovviamente in LaTeX ;-), che volentieri metto a disposizione con la speranza che risulti utile.

XML

Un piccolo problema: avevo la risposta di un web service e volevo renderla leggibile con maggior facilità. I web service rispondono (nella maggior parte dei casi) in XML, l’indentazione non è necessaria per un parser (il software che legge il file) ma per l’occhio umano è preferibile vedere come si annidano i nodi nel gioco di scatole cinesi.

Due soluzioni:

  1. in Ubuntu, aprire Synaptic e cercare xmlindent (probabilmente non è installato); una volta installato si lancia
    $ xmlindent file.xml > file1.xml

    Per chi vuole qualche info in più, man xmlindent

  2. soluzione per chi smanetta un po’ di più: applicare una trasformazione XSLT come suggerito in questo sito. Per chi non conosce le trasformazioni XSLT ho fatto qualche esempio in questa risorsa.