Commenti sull’Info Age

Diari sull’informatica e dintorni

Archivio per Giugno 2007

Plugin Eclipse: Editor PHP

Pubblicato da orter su Giugno 21, 2007

screenshot.png

Tra i vari plugin disponibili per Eclipse, quelli utili ad editare file php sono tra i più ghiotti. Un buon plugin di questo genere si trova nel sito Plog4U. Per installarlo basta seguire la guida che si trova nel sito stesso. Sostanzialmente si tratta di selezionare dal menu di Eclipse Help->Software Updates->Find/Install , aggiungere http://phpeclipse.sourceforge.net/update/releases, alla lista dei repository e schiacciare il tasto Finish.

Se si utilizza Ubuntu Feisty, però, occorre soffrire un altro pò. Ubuntu non installa il sun java jre, quindi occorre installarlo con

sudo apt-get install sun-java6-jre

Dopo questa installazione, si rende necessario editare il file /etc/eclipse/java_home mettendo in testa la stringa /usr/lib/jvm/java-gcj per indicare quale jvm deve utilizzare il plugin.

Se usate la versione 64 bit potreste trovarvi ad una ulteriore difficoltà: il file /etc/eclipse/java_home non esiste. Occorre creare la cartella /etc/eclipse con

sudo mkdir /etc/eclipse

Il contenuto del file è questo (si può fare cut and paste delle prime due righe non commentate):

# This file determines the search order the Eclipse Platform uses to find a
# compatible JAVA_HOME. This setting may be overridden on a per-user basis by
# altering the JAVA_HOME setting in ~/.eclipse/eclipserc.

/usr/lib/jvm/java-gcj
/usr/lib/kaffe/pthreads
/usr/lib/jvm/java-1.5.0-sun
/usr/lib/j2se/1.5
/usr/lib/j2se/1.4
/usr/lib/j2sdk1.5-ibm
/usr/lib/j2sdk1.4-ibm
/usr/lib/j2sdk1.5-sun
/usr/lib/j2sdk1.4-sun

Dopo di questo, tutto dovrebbe funzionare.

Pubblicato su applicazioni linux | Lascia un commento »

La Guida Galattica alle Unix Shell: parte 2 — I primi esperimenti con i comandi Unix

Pubblicato da orter su Giugno 19, 2007

hacker.jpg

Piccolo riassunto delle parti componenti questa guida:

Parte 1. Perchè esistono le shell.
Parte 2. I primi esperimenti con i comandi Unix.
Parte 3. Script Warm Up.

Nella puntata precedente….il xchè delle script unix, la lista dei comandi + comuni (avete notato il linguaggino giovane da sms, very cool vero? Merito una citazione da Repubblica?).

In questa breve puntata, si incomincia a pacciolare (dal dialetto veneto razzolare, in senso lato pasticciare, manipolare, azionare con spirito di studio e/o sperimentazione) con i comandi stessi. Perchè per fare script solide (o semplicemente utili) occorre saper funzionare i comandi.

Il motto è niente teoria, solo pratica e quindi ci spariamo alcuni esempi:

Lista dei file nascosti in una directory: ls -al

Lista di solo subdirectory: ls -d

Lista di file ordinati per data di variazione ascendente (cioè dai file più vecchi ai più recenti): ls -altr

Ricercare la stringa “mammaliturchi” all’interno dei file contenuti in una directory: grep mammaliturchi ./*

Cercare un file chiamato “vivamammozzo” a partire dalla root: find / -name vivamammozzo. Attenzione però, lanciando questo comando potreste ricevere alcune segnalazioni di errore tipo “Cannot Open File/Directory” anche se siete root (neanche root riesce ad aprire file temporanei gestiti dai processi). Ignorateli.

A questo punto dovrebbe essere chiaro che alcuni caratteri particolari permettono di accedere a directory particolari

/ è root. La directory su cui sono mantate tutte le altre cartelle.

. è la directory corrente (se non vi ricordate qual’e’ usate il comando pwd)

.. è la directory padre nell’albero delle dir.

Altri esempi:

Cercare lo stesso file a partire dalla dir “miadir”: find miadir -name vivamammozzo

Cercare nella solita dir miadir un file che non ha avuto accesso (in lettura o scrittura) da 2 giorni: find miadir -type f -atime +2.

Ricercare un file creato o modificato da due giorni nella cartella miadir: find miadir -type f -mtime +2.

Find è un comando iteratore, ovvero, eseguendo le ricerche, può eseguire anche dei comandi su ogni file/directory trovato: find miadir -name ‘*’ -type f -exec rm -f {} \;

E’ bene commentare il comando precedente: si chiede di ricercare nella cartella miadir un oggetto che si chiama ‘*’ (qualunque file o cartella). L’oggetto deve essere di tipo f (ovvero un file). Per ciascuno di questi oggetti si esegue il comando rm -f (cancella senza richiedere conferma). Le lettere {} \; servono a chiudere il comando, usatele così come sono quando vi scappa di utilizzare l’opzione -exec. Altri esempi :

find miadir -name ‘*’ – atime +2 -type f -exec rm -f {} \;

find miadir -name ‘*’ -type f -exec pg {} \; (pg stampa il file a video).

Nella prossima puntata: la base della programmazione script!

Pubblicato su unix script | 2 Commenti »

Un posto al sole.

Pubblicato da orter su Giugno 14, 2007

sun-for-web.gif

Linus Torvalds, in questo suo post, apparso nella Linux Kernel Mailing List, critica SUN sulla decisione di pubblicare un kernel OpenSolaris sotto la Gplv3.

La base della critica è una osservazione di Alexandre Olivia che, in un altro post, si chiedeva perchè Opensolaris non sia stata rilasciata tempo addietro sotto Gplv2.

Torvalds sostiene che la scelta di SUN è puramente opportunistica: adottando la filosofia Gpl, la casa di Solaris può trarre vantaggio dal lavoro dei Kernel Hackers senza dare nulla in cambio.

In pratica (e parafrasando) SUN potrà utilizzare drivers sviluppati da volenterosi programmatori senza per questo dare un contributo essenziale allo sviluppo del Kernel.

Linus ha sicuramente ragione, ma questa è la filosofia di base Gpl. Certo, poichè SUN produce Chip non diffusissimi, i progetti seguiti per Opensolaris potrebbero non avere applicazione facile per le piattaforme 32 o 64 bit Intel e AMD. Ma questo rischio sta nel gioco dell’Open Source. E quando si gioca, occorre seguire le regole anche se sembrano ingiuste.

Gli utenti possono sperare nella pubblicazione di un Kernel ufficiale Solaris che giri su AMD o Intel (magari qualche utilità per i servizi di rete potrà anche esserci), ma personalmente dubito che questo avverrà.

Peraltro rimango d’accordo con Linus: Solaris sta lentamente sparendo, dubito che la mossa di SUN porterà giovamento.

Pubblicato su linux kernel | Lascia un commento »

E’ tutto oro quello che luccica.

Pubblicato da orter su Giugno 13, 2007

william-blake.jpg

Giovedì 7 Giugno Repubblica ha pubblicato on line e “on carta” nuove su crimini commessi su Second Life. Ovviamente crimini anche pedopornografici (ci mancherebbe!).

Il giornale non specifica se siano stati oggetti di questi crimini dei veri bambini, ma specifica che il proprietario del sito (i Linden Labs) ha dichiarato Second Life “sito per adulti”.

La notizia è vera, anzi è pure vecchia, ma mi fa venire in mente ciò che dissi in un precedente post. Repubblica stigmatizza, come è ovvio, e racconta la storia di un gruppo di utenti che si offre come vigilantes.

Il messaggio e chiaro vero? 2nd Life è un posto insicuro! Attenti, sopratutto ai bambini!

C’e’ anche un messaggio nascosto: c’e’ un bel sitarello (per adulti) dove si fanno cose birichine, non sentite le acquoline!?

Il giorno dopo succede qualcosa di prodigioso: Venerdì di Repubblica pubblicizza una sua guida a 2nd Life! Senza citare i crimini già descritti, la rivista dichiara che (parafrasando) “senza questa guida ci si potrebbe perdere nel modo virtuale”.
Se un giornale parla (anche male) di qualcosa è pronto a farci ‘bisiness’. Per ora è una guida, ma domani…chissà. In fondo milioni di utenti goderecci fanno gola ad un giornale che annaspa ogni anno di più!

Pubblicato su Mercato | Lascia un commento »

La Guida Galattica alle Unix Shell: parte 1 — Perchè esistono le shell

Pubblicato da orter su Giugno 12, 2007

hacker495.jpg

Piccolo riassunto delle parti componenti questa guida:

Parte 1. Perchè esistono le shell.
Parte 2. I primi esperimenti con i comandi Unix.
Parte 3. Script Warm Up.

E adesso: la guida.

Visto che c’è chi ridacchia sugli Shell Writers, onore vuole che si renda la pariglia sul versante command line only.

Vi sentite veri/e uomini/donne, siete pronti ad andare dove nessuno è mai andato prima? Bene, prenotate una gita al vostro villaggio vacanze preferito, stampate la magnifica “Guida Galattica alle Unix Shell” e leggetela con gusto.

Come prima cosa viene da chiedersi: nell’era delle finestre vibranti perchè qualcuno scrive shell script? La risposta viene da un’osservazione attenta di quello che fanno alcune delle applicazioni finestrate più gettonate, per esempio aptude. Se clikkate sul tasto “Advanced” durante una installazione vi trovate di fronte a veloci linee che scrollano liente sulla vostra finestrina. Quelle linee sono “linee di comando”. Se voi copiaste quelle linee su di una console, riuscireste a scaricare i vostri programmi senza utilizzare le finestre (piroettanti o meno), degustando il piacere di essere anche voi degli script makers!

Le script utilizzano comandi che potete digitare sulla Linux console, quindi una guida, per quanto breve, non può esimersi dall’enumerare i comandi più utili. Ma prima…come si lancia una Linux Console? Da GNOME andate sul menù applicazioni > system > console. Su KDE menu Applicazioni>Accessories>Terminal.

La console KDE può essere settata per essere trasparente, avere vari colori, sfondi, ecc, ecc. Sbizzarritevi, io personalmente la uso così:

Comunque, ecco una guida ai comandi essenziali:

Comandi di Base -Ambiente UNIX

Indice

Introduzione all’uso
Gestione files, directories e dischi
Gestione dei diritti di accesso
Gestione dei processi
Ricerca e gestione dei file

Introduzione all’uso

Unix è un sistema basato su terminali grafici e testuali. Un ambiente Unix ne implementa normalmente 6.
Per navigare tra i terminali occore digitare CTRL+ALT+[Tasto Funzione]. L’accesso è permesso inserendo ID e password.
Esiste un’utente particolare che ha id fisso

root

che amministratore del sistema.
Unix è CASE SENSITIVE, i comandi sono in minuscolo.


Per avere informazioni su di un particolare comando:

man numerocapitolo nomecomando

dove nomecomando è il comando di cui volete spiegazioni e numerosezione è il capitolo che intendete leggere. Oppure:

whatis  nomecomando

apropos  nomecomando

info  nomecomando

Gestione files, directories e dischi

In che directory sono?

pwd

ritorna la directory corrente.


Lista files e directories:

ls -opz nomedirectory

restituisce la lista dei files contenuti nella directory corrente.
Opzioni:
-a mostra files e dir nascoste
-l mosta permessi, proprietari, data di creazione e nomi di file
-b mostra caratteri non stampabili con il loro codice ottale
-i mostra l’inode di partenza
-x mostra il risultato in riga e non in colonna


Cambio directory:

cd nomedirectory

cambia la directory puntando a nomedirectory. Se si vuole tornare alla dircetory che è radice dell’attuale digitare cd ..


Navigazione assistita:

pushd nomedirectory

mette un puntatore alla directory in uno stack

popd

si riposiziona alla directory in cima allo stack


Quanto spazio mi rimane sul disco?:

df

restituisce quanto spazio del disco è occupato e quanto è libero suddiviso per partizioni
Opzioni:
-a mostra anche le partizioni che hanno 0 blocchi
-H mostra i risultati in Kb o megabyte (means human readable, how fun!)
-T mostra il tipo di filesystem


Gestione dei diritti di accesso

Come funzionano?

Digitando:

ls -l

si vedono sull’estrema sinistra questi caratteri:

drwxrwxrwx

per ogni file, directory e link. Il primo carattere è ‘d’ per le directory e ‘l’ per i link. Seguono tre gruppi di caratteri.
Il primo gruppo indica i permessi garantiti al proprietario del file/directory/link. Il secondo gruppo è relativo al gruppo
cui il proprietario appartiene. Il terzo è relativo a tutti gli altri utenti. Il carattere r indica il permesso di
scrittura, il carattere w quello di scrittura ed infine x sta per esecuzione-modifica.


Chi può cambiare i permessi?

Il proprietario del file.


Si può cambiare la proprietà di un file?

Solo root dovrebbe poter cambiare il propietario di un file
Digitando:

chown user_nuovo_proprietario nomefile/nomedirectory

il proprietario del file o della directory viene cambiato. l’opzione -R forza l’istruzione a cambiare il proprietario
di tutti i file contenuti nella directory indicata.


Come cambio i permessi di accesso?

Digitando:

chmod opz u:g:a +:- r:w:x nomefile/nomedirectory

u usato per cambiare i permessi dell’owner, g per quelli del gruppo, a per tutti gli altri (non nel gruppo dell’uetente e diversi dall’utente).
Se si vogliono cambiare i permessi del gruppo e dell’utente bisogna usare il comando due volte.
L’opzione -R induce la variazione di accessi su tutti i file e sottodirectory di quella indicata. Una versione veloce del comando è questa:

chmod opz nnn nomefile/nomedirectory

Il comando in nnn usa valori decimali così gestiti: la prima cifra corrsiponde all’owner, la seconda al gruppo, la terza a tutti gli altri.
Le cifre sono calcolate usando le seguenti bitmap

100 lettura: valore 4

010 scrittura: valore 2

001 esecuzione: valore 1

Quindi 110 (lettura+scrittura) è 4+2=6, 111 (lettura+scrittura+esecuzione) è 4+2+1=7.

Per fare un esempio:

chmod -R 666 foodir

pone gli accessi di lettura scrittura a tutti per tutti i file e le sottodirectory della directory foodir
Mentre:

chmod -R 111 foodir

mette tutto in sola lettura

chmod -R 600 foodir

nasconde a tutti eccetto l’owner.


Come cambio la password?

passwd

e rispondere alle domande.


Gestione dei processi

Chi sta usando questa macchina?

who opz

ritorna la lista degli utenti he stanno usando il sistema. L’opzione -i mostra quando è avvenuto il logon dell’utente, -a informazioni
su tutti i terminali


Chi sono io (nel senso…che utente sto usando)?

whoami

Quali processi stanno girando in macchina?

ps -ely

ritorna la lista di tutti i processi attivi.

ps -elF

ritorna un albero dei processi

ps -aux

ritorna i processi e gli owner.

E’ interessante annotare il campo processid, con il quale si esegue il kill.


Ancora, quali processi stanno girando in macchina?

top

in linux è un ottimo sistema per tenere d’occhio facilmente quali programmi girano. Una volta lanciato
questo gestore di task rimane attivo in attesa di comandi. questa una lista di comandi:

q esce dal programma

> sposta la lista avanti

< sposta la lista indietro

h help

Z cambia i colori

B toglie i grossetti

u mostra solo i processi di un particolare user

f aggiunge o toglie una colonna nella vista (per Linux la scelta è guidata)

o cambia ordine delle colonne (per linux la scelta è guidata)

W salva la configurazione visuale

c mostra i comandi che stanno girando

i mostra le attività in idle
Nota: qualche terminale remoto potrebbe avere problemi di visualizzazione.
Si consiglia Putty .


Come lancio i processi in background?

Digitare

nomecomando &

per lanciare un programma in background.

bg numeroprocesso

per portare un comando in background (il numero processo lo da’ ps o top)


Come porto un processo in foreground?

Digitare

fg numeroprocesso

per portare un comando in foreground da background (il numero processo lo da’ ps o top)


Come comunico con i processi?

Digitare:

kill -HUP numeroprocesso

per riavviarlo. Il numeroprocesso lo da’ ps o top

kill -H numeroprocesso

per chiuderlo. Il numeroprocesso lo da’ ps o top


Cambiare la priorità di un processo

Le priorità del kernel GNU/Linux vanno da -20 a +20. La priporità più elevata è -20, solo il superuser può
settare priorità negative. La più basse è 20. 0 è la priorità di base. Digitare:

renice livello numeroprocesso

per cambiare le priorità. Il livello è un numerico da -20 a +20. Il numeroprocesso fornito da ps. Un formato alternativo è:

kill livello -p processo -g gruppo -u user

per indicare i processi di un gruppo di utenti o un utente.
Esempio:

vi &ps -e | grep vi

una volta letto il PID (=numeroprocesso) eseguire

renice +1 PID

Lanciare un processo ad una certa priorità

Digitare:

nice -n priorità comando opzionicomando [&]

per lanciare il comando nella priorità indicata in priorità .


Ricerca e gestione dei file

Cercare i file

Digitare:

find -name nomefile/nomedirecory

Cercare una stringa dentro ad un file

Digitare:

grep stringa nomefile

Concatenare più file

Digitare:

cat nomefile1 nomefile2 nomefile3 .... nomedistinazione

Visualizzare la coda di un file

Digitare:

tail -n numerorighe nomefile

per vedere le ultime numerorighe del file. Se si usa:

tail nomefile

si vedono le ultime 10 righe


Visualizzare la testa di un file

Digitare:

head -n numerorighe nomefile

per vedere le prima numerorighe del file. Se si usa:

head nomefile

si vedono le ultime 10 righe


Visualizzare un file

Digitare:

less nomefile

oppure:

more nomefile

si vedono le ultime 10 righe


Differenze tra file

Digitare:

diff nomefile1 nomefile2 > filedidifferenze

per avere un file che mostra le differenze tra file. Questo file di differenze si può anche
utilizzare per allineare due file:

patch nomefiledestinazione filedidifferenze

il file nomefiledestinazione viene aggiornato con le differenze.
Per una trattazione più esaustiva ‘read the fine manual’


Contare le righe di un file

Digitare:

wc nomefile1

Come cambio dei caratteri di un file con altri?

Per la variazione massiva di caratteri di un file

tr stacaratteridavariare listacaratteridainserire

per esempio. tr usa come input lo standard input e come output lo standard
output. Quindi per esempio

less prova.txt | tr '.' [:space:] > provaout.txt

Per cancellare un carattere:

less prova.txt | tr -d '.' [:space:] > provaout.txt

Una guida esaustiva e in italiano sulle Unix Scripr la si trova nel famoso (per chi sa cos’è una BBS) www.pluto.it. Non leggetela se siete Lamers (ovvero persone che scrivono sui Blog come esperti quando ancora devono imparare qualcosina, è il contrario di Hackers), siamo di fronte a guida con un manutentore, sicura e vecchio stile, niente blog e niente wiki!

Alla rpossima puntata!

Pubblicato su unix script | 2 Commenti »

Installare Eclipse su Ubuntu 7.04 – 7.10 versione 64 bit

Pubblicato da orter su Giugno 11, 2007

updatemanager-gtk.png

Eclipse è un editor free sponsorizzato da IBM, nato per l’ambiente JAVA. Eclipse offre controllo sintattico, autocompletamento, debug e altre piacevolezze per il programmatore.

Tramite specifici PlugIn Eclipse permette di editare con le stesse utility anche Cobol, PHP, C, C++, Lisp, ecc. Altri PlugIn permettono di integrare in Eclipse anche versionatori come Serena Dimension e sistemi di test integrato come Test Director.

Eclipse esiste per piattaforme SUN, Linux, MS XP/Vista/2k/2.3K. E’ precompilato per un numero consistente di processori.

Se possedete una macchina con almeno 1 Gb di RAM e programmate, dateci sicuramente un’occhiata. Anche se il sottoscritto scrive programmi C e script PHP in EMACs e sempre con EMACS usa il GDB, Eclipse è sicuramente invitante.

Per installare Eclipse su di una Linux BOX è sufficiente andare nel sito di Eclipse e scaricare la versione per il processore/OS voluto.

L’installazione per Linux consite nella sola decompressione del file tar.gz scaricato.

La versione 32 bit di Eclipse parte senza alcun problema, ma quella a 64 potrebbe riservare qualche sorpresa.

In particolare al lancio Eclipse potrebbe terminare con una diagnostica simile a “Cannot Load Workbench”.

La motivazione del problema sta nell’integrazione nel motore Mozilla delle librerie AWK di JAVA. Eclipse è scritto interamente in JAVA infatti.

La soluzione consiste nellla sostituzione delle librerie AWK. Si può scaricare l’ultima versione di tali librerie, nel mio caso la org.eclipse.swt.gtk.linux.x86_64_3.2.2.v3236a.jar.

Successivamente si deve sostituire questo jar a org.eclipse.swt.gtk.linux.x86_64_3.2.2.jar già presente nella directory <eclipse_dir>/plugin. Questa cartella si torva nella directory su cui si è decompresso Eclipse.

Successivamente alla sostituzione, potrebbe esserci ancora l’errore! In tal caso dovreste lanciare Eclipse da questo script:

export MOZILLA_FIVE_HOME=/dev/null
/usr/local/eclipse/eclipse &

Naturalmete /usr/local/eclipse è la cartella dove io ho installato Eclipse.

Al prezzo di tenere una console aperta (se la chiudete Ecplise si chiude) tutto dovrebbe funzionare.

Se create una icona su Gnome o KDE che lancino la script non avrete neppure il fastidio della console.

Questo trucco dovrebbe funzionare anche su AIX e Solaris, ma non ho potuto testarlo.

Pubblicato su applicazioni linux | 2 Commenti »