Tutto il blog è stato spostato all'indirizzo
http://pierprogramm.altervista.org/wordpress/


I post memorizzati qui non verranno rimossi ma saranno obsoleti. Questo blog non sarà più aggiornato.

giovedì 28 luglio 2011

Eseguire sorgenti Python rapidamente

Ho scritto uno script shell che permette di eseguire script Python comodamente con due click.
E' pensato soprattutto per chi come me programma in Python e necessita durante la programmazione di testare i propri script man mano che scrive

Scarica lo script

E' possibile eseguire lo script Python passandoglielo per parametro, oppure se non riceve input apre la finestra Zenity(wiki in inglese) nella cartella dove sono presenti gli script. Occorre quindi che sia installato Zenity, per farlo digitare da terminale sudo apt-get install zenity oppure trovarlo dal gestore pacchetti.
Il percorso assoluto di questa cartella deve essere immesso dentro lo script nella parte evidenziata dai commenti EDIT ME



ATTENZIONE: Ho modificato lo script shell che esegue script shell. Questo

mercoledì 13 luglio 2011

Operatori (confronto,logici) linguaggio Bash

Tra i linguaggi che ho (e sto) studiato il linguaggio Bash e' sicuramente il piu' difficile da comprendere quando si parla di operatori di confronto e logici. Specialmente perche' si usano operatori differenti per stringhe e interi.
Questa vuole essere una specie di appendice per chi, gia' un po' esperto, sta imparando a programmare in questo linguaggio.


Operatori di Confronto (STRINGHE)

-n : Verifica che la stringa sia di lunghezza maggiore di zero

-z : Verifica che la stringa abbia lunghezza zero

= : Verifica che due stringhe siano uguali

!= : Verifica che due stringhe siano diverse

< : Verifica che la prima stringa sia lessicograficamente minore della seconda
> : Verifica che la prima stringa sia lessicograficamente maggiore della seconda



Operatori Logici (STRINGHE)

! : Operatore di negazione, inverte il valore logico dell'espressione al quale viene applicato. !(vero) = falso

-a : Operatore AND. Ritorna vero se entrambi gli argomenti passati lo sono.

-o : Operatore OR. Ritorna vero se almeno uno degli argomenti lo e'.





Operatori di Confronto (NUMERI)

op1 -eq op2 : Vero se gli operandi sono uguali.

op1 -ne op2 : Vero se gli operandi sono differenti.

op1 -lt op2 : Vero se il primo operando e' inferiore al secondo.

op1 -le op2 : Vero se il primo operando e' inferiore o uguale al secondo.

op1 -gt op2 : Vero se il primo operando e' maggiore del secondo.

op1 -ge op2 : Vero se il primo operando e' maggiore o uguale al secondo.



Operatori Logici (NUMERI)

! espressione : Inverte il risultato logico dell’espressione.

espressione -a espressione : Vero se entrambe le espressioni danno un risultato Vero.

espressione -o espressione : Vero se almeno un’espressione dà un risultato Vero.







Operatori (FILE)

-e file : Vero se il file esiste ed e' di qualunque tipo.

-b file : Vero se il file esiste ed e' un dispositivo a blocchi.

-c file : Vero se il file esiste ed e' un dispositivo a caratteri.

-d file : Vero se il file esiste ed e' una directory.

-f file : Vero se il file esiste ed e' un file normale.

-L file : Vero se il file esiste ed e' un collegamento simbolico.

-p file : Vero se il file esiste ed e' una pipe con nome.

-S file : Vero se il file esiste ed e' un socket.

-t : Vero se lo standard output e' aperto su un terminale.



Permessi (FILE)

-g file : Vero se il file esiste ed e' impostato il suo bit SGID.

-u file : Vero se il file esiste ed e' impostato il suo bit SUID.

-k file : Vero se il file ha il bit Sticky attivo.

-r file : Vero se il file esiste ed e' leggibile.

-w file : Vero se il file esiste ed e' scrivibile.

-x file : Vero se il file esiste ed e' eseguibile.

-O file : Vero se il file esiste e appartiene all’UID efficace dell’utente attuale.

-G file : Vero se il file esiste e appartiene al GID efficace dell’utente attuale.



Altri operatori (FILE)

-s file : Vero se il file esiste e ha una dimensione maggiore di zero.

file1 -nt file2 : Vero se il primo file ha la data di modifica più recente.

file1 -ot file2 : Vero se il primo file ha la data di modifica più vecchia.

file1 -et file2 : Vero se i due nomi corrispondono allo stesso inode.

sabato 5 febbraio 2011

Nuova Sezione

E' stata appena creata una nuova sezione dedicata all'analisi di algoritmi fondamentali dove si spiega il funzionamento, si propone una implementazione Java e si analizza brevemente la complessita' temporale.
Gli algoritmi che verranno proposti saranno:
  1. Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort, shell sort, heap sort
  2. Algoritmi di ricerca: binary search, jump search
  3. Altri....
E' un lavoro che faro' con molta calma. Quando c'e' qualcosa di nuovo aggiornero' la lista di algoritmi.

mercoledì 17 novembre 2010

Modifica lista per dual-boot (Grub1, OBSOLETO)

A volte chi installa Ubuntu in dual-boot con Windows(o altro) preferisce che, nella lista di sistemi, Windows compaia per primo.

Occorre prima verificare il tipo di grub(e' la lista che compare appena accendete il pc) installato sulla macchina:
  • digitate da terminale grub-install -v
  • se ottenete un output del genere: grub-install (GRUB) 1.98+20100804-5ubuntu3.3 dove la versione del grub e' 1.98 (partono dalla 1.96) vuol dire che questa guida non vi serve a niente perche' avete la nuova versione del grub(in genere dovrebbe essere sempre cosi' per ubuntu aggiornati)
  • Se ottenete un output con la versione del grub inferiore alla 1.96 allora probabilmente questa guida e' quella giusta.
  • Detto piu' brutalmente se non trovate il file /boot/grub/menu.lst, vuol dire che non avete la giusta versione per questa guida

Bisogna modificare il file /boot/grub/menu.lst
Per farlo occorre aprire il file con privilegi da utente root. Seguite semplicemente queste istruzioni:
1) Da terminale digitate sudo -s gedit /boot/grub
2) Vi chiedera' una password, inserite la stessa che usate nella schermata d'avvio (N.B.: I caratteri non compaiono mentre digitate)
2) Vi si aprirà l'editor di testo gedit.

Navigare in questo file di testo è molto semplice.
Il sistema da caricare verra' indicato con questa sintassi:

title Ubuntu 9.10, kernel 2.6.31-20-generic
uuid 33d1bedb-2f8a-447b-8e19-fdaf5c457940
kernel /boot/vmlinuz-2.6.31-20-generic root=UUID=33d1bedb-2f8a-447b-8e19-fdaf5c457940 ro quiet splash
initrd /boot/initrd.img-2.6.31-20-generic
quiet



Scorrete il testo e cercate qualcosa che gli assomigli, tralasciate le righe che iniziano per # sono solo commenti.
Per modificare l'ordine della lista, basta modificare l'ordine con cui i sistemi compaiono nel file.


title Ubuntu 9.10, kernel 2.6.31-20-generic
uuid 33d1bedb-2f8a-447b-8e19-fdaf5c457940
kernel /boot/vmlinuz-2.6.31-20-generic root=UUID=33d1bedb-2f8a-447b-8e19-fdaf5c457940 ro quiet splash
initrd /boot/initrd.img-2.6.31-20-generic
quiet

title Windows Vista (loader)
rootnoverify (hd0,0)
savedefault
chainloader +1



Diventa...


title Windows Vista (loader)
rootnoverify (hd0,0)
savedefault
chainloader +1

title Ubuntu 9.10, kernel 2.6.31-20-generic
uuid 33d1bedb-2f8a-447b-8e19-fdaf5c457940
kernel /boot/vmlinuz-2.6.31-20-generic root=UUID=33d1bedb-2f8a-447b-8e19-fdaf5c457940 ro quiet splash
initrd /boot/initrd.img-2.6.31-20-generic
quiet



N.B.: Di solito i kernel(= "sistemi operativi") che compaiono nella lista sono piu' di due anche se avete il sistema DUAL-boot. Questo perche' ad ogni aggiornamento significativo che effettuate, Ubuntu non cancella la precedente versione del kernel. Basta che mettete il vostro vecchio sistema per primo!

Scarica questo articolo in versione pdf!

mercoledì 22 settembre 2010

Eseguire script bash

Per eseguire script bash (.sh) sono possibili due vie:

1) Aprire il terminale, posizionarsi nella cartella dove e' presente lo script, eseguire il comando "sh nomeScript.sh". Oppure aprire il terminale e digitare il comando "sh path_completo_script", dove path_completo_script e' il path (percorso) assoluto del file .sh (es. sh /home/nomeutente/Documenti/nomeScript.sh)

2) Entrare nella cartella dello script con Nautilus, cliccare col tasto destro sullo script, scegliere Proprieta', andare sulla scheda "Permessi" e spuntare la casella "Consentire l'esecuzione del file come programma". Fare doppio click sullo script, si aprira' una finestra che ci chiedera' come Ubuntu si deve comportare con il file, quindi cliccare sul pulsante "Esegui nel terminale".

Se volete ho scritto anche un breve script, seguito da un lanciatore, che prendendo in input il path assoluto del vostro script, lo esegue immediatamente senza la necessita' di aprire il terminale.

Scarica lo script

E' necessario pero' eseguire lo script almeno una volta con uno dei due metodi descritti prima per permettergli la creazione del proprio lanciatore.

Scarica questo articolo in versione pdf!

giovedì 5 agosto 2010

Programma d'esempio Java per creare un lanciatore

Scarica il file

Innanzi tutto scompattare la cartella compressa in un percorso a piacere.
Per eseguire il programma d'esempio e' sufficiente eseguire lo script CreareLanciatore.sh.
Per visualizzare il codice sorgente aprire con il gestore archivi il file CreaLanciatore.jar ed estrarre il file CreaLanciatore.java.
Il programmino creera' un lanciatore che aprira' Nautilus nella home.
L'utilita' e' nulla, infatti si chiama "programma d'esempio".

martedì 3 agosto 2010

Avviare il server mySql

Server version: 5.1.37-1ubuntu5.4
Per semplificare le "operazioni" per avviare (o altro) il server MySql,ho scritto un brevissimo "scriptino" in bash in modo che con 2 click e' possibile eseguire le operazioni piu' comuni sul server; senza la necessita' di ricordarsi il percorso della socket e la sintassi del comando.

Operazioni eseguibili: start, stop, restart, reload, force-reload, status.
Scarica lo script

Per facilitare ancora di piu' l'uso di MySql e' possibile creare un lanciatore (anche per via grafica) che esegua il comando "mysql -u root -p". In questo modo non sara' necessario aprire il terminale, bastano un po' di click dal menu'.
Scarica il lanciatore


Scarica questo articolo in versione pdf!