mercoledì 29 agosto 2007

Val di Fassa, ti adoro

Rilassato. Ritemprato. Nella pace dei sensi. E' così che mi sento: ho passato cinque giorni veramente belli. Passeggiate nella natura all'ombra delle dolomiti tutto il giorno, aria buona e tempo bello. Tanti impianti di risalita presi...quest'anno sono arrivato a quota 2700 metri sul livello del mare: la prossima volta oserò di più :-D
Mi sento pronto per ricominciare...a studiare e a produrre (vedi progetto valkyrja).

A proposito...non facevo solo passeggiate: erano le 18:30 e ci facevano male le gambe...così abbiamo provato il centro benessere del nostro albergo (Hotel Alaska), gratis! Per la cronaca: in questo albergo siamo stati veramente, veramente bene! Credo di essere ingrassato..che per me è incredibile!
Vi allego un po' di foto, giusto per rendere l'idea del relax :-D

venerdì 24 agosto 2007

Vacanze in montagna!

Per 5 giorni il blog si ferma...vado in vacanza sulle Dolomiti! Precisamente vado a Pozza di Fassa, per rilassarmi un po'. Speriamo nel tempo...

Eccovi però un regalino: pubblico la foto della webcam...così da questo blog si potrà vedere com'è il clima lassù :-D

Pozza di Fassa

mercoledì 22 agosto 2007

Un pannello di controllo LAMP


Oggi mi sono divertito un po' a scrivere uno script per la gestione di Apache2 e MySql. Eh, con Xampp era più semplice...tutti i servizi sotto controllo!Perché non ricreare una cosa simile in Linux? In aiuto ci viene la shell e il programma zenity (per Gnome, divertitevi ad impararlo qui e qui); quest'ultimo gestisce varie tipologie di finestre (informazioni, errori, notifiche, eccetera). Se zenity non è presente nella vostra linux box, installatelo (sudo apt-get install zenity).
Chiaramente è uno script molto semplificato e non esente da bug (perlomeno così immagino), quindi lasciate pure commenti!
Il codice può essere scaricato dal seguente link (è un file .sh):

http://www.box.net/shared/7k800qs310

Ricordatevi di mettere i permessi giusti (chmod +x lamp.sh) e di eseguirlo con gksu (gksu lamp.sh).
Qui vi mostro uno screenshot:

martedì 21 agosto 2007

Gnome: cambiare lo splash screen


Immaginiamo di aver creato una bella immagine con GIMP (vedi tutorial scritto in precedenza).
Desideriamo impostarla come splash screen al caricamento di Gnome? Niente di più facile. In Gnome esiste un bellissimo tool simile al (bleah) regedit di windows, chiamato gconf-editor. Quindi digitiamo ALT+F2 per fare comparire la finestrella "Esegui applicazione" e digitiamo:

gconf-editor

Ora cerchiamo, navigando l'albero, il percorso:
apps->gnome-session->options
All'interno troveremo le seguenti chiavi:
  • show_splash_screen per abilitare o disabilitare lo splash;
  • splash_image per modificare la posizione dell'immagine da usare;
Per splash_image la stringa di default è splash/ubuntu-splash.png. Modifichiamo con un qualsiasi altro percorso (completo, non dimenticatevi la / iniziale, del genere /home/stefano/splash.png)

Divertitevi a creare gli splash screen che più vi ispirano :-)

domenica 19 agosto 2007

Commenti liberi!

Messaggio di servizio: ho abilitato tutti a postare i commenti, vediamo cosa succede...alcuni miei amici han detto che non avevano un account google e quindi non potevano commentare!
Ma se trovo commenti di robots...tornerò sulla mia scelta :-D

sabato 18 agosto 2007

Php: gestire i download

Vediamo oggi come scrivere poche righe di php per forzare lo scaricamento di un file.
Spesso infatti si ha la necessità di mettere files sul proprio webserver non direttamente scaricabili (ad esempio, i vari server per l'hosting gratuito di file come http://www.box.net). In questo caso non si usano link diretti ai file scaricabili, ma pagine che permettono di scaricare files contenuti in directory nascoste e non accessibili dall'esterno.
Attenzione però alla sicurezza: un downloader non deve fare scaricare files sensibili!Quindi non create obbrobri di questo tipo: download.php?file=Documento.pdf e magari $filename=$_REQUEST["file"] (vedi codice sotto per intenderci). Una richiesta malevola (download.php?file=../../../../../../etc/passwd) può combinare dei bei casini...Meglio appoggiarsi ad un database con corrispondenze stringaID->nomefile; ad esempio, la stringa "ad6cjf6d5s" fa riferimento a "Documento.pdf". La richiesta allo script (che quindi dovrà leggere dal DB) sarà download.php?id=ad6cjf6d5s.
Mostro adesso un semplice script, che non ha le caratteristiche di lettura dal DB appena citate, ma può servire come base per una successiva modifica :-)

<?
$filename
="Documento.pdf";
header ("Pragma: public");
header ("Expires: 0");
header ("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header ("Cache-Control: private", false);
header ("Content-Type: application/force-download");
header ("Content-Disposition: attachment; filename=\"" . $filename . "\";");

header ("Content-Description: File Transfer");
header ("Content-Transfer-Encoding: binary");
header ("Content-Length: " . filesize ($filename));

set_time_limit (0);
@
readfile ($filename);
?>


Come potete vedere, il file da scaricare è "Documento.pdf", ma può essere automatizzato (con tutti gli accorgimenti di sicurezza del caso, come ho descritto in precedenza). Vengono inviati i vari header al browser dopodichè viene inviato tutto il contenuto del file (readfile), con particolare attenzione ad eludere il time limit del php (il file da scaricare può anche essere parecchi mega, e portare via parecchio tempo).

Buon php a tutti!

venerdì 17 agosto 2007

GIMP: creare uno scenario spaziale

Sul sito gimptalk.com ho trovato una guida su come ricreare una scena dello spazio. I passi sono pochi e semplici (io che non ne so mezza di GIMP l'ho fatto in 30 secondi, giusto il tempo di pensare: "woh, che figata"). Vediamo i passi in dettaglio:
  1. Creare una nuova immagine (io l'ho fatta 500x300 per lo Splash screen di Ubuntu)
  2. Impostare il colore Foreground a Nero
  3. Usiamo il Fill Tool per riempire lo sfondo dell'immagine di nero
  4. Ora selezioniamo dal menù Filters->Noise->Scatter HSV
  5. Nella finestra che viene fuori, impostiamo il valore HUE a 255, e proviamo a giocare con i restanti parametri
  6. Ora andiamo su Filters->Light Effects->Gflare e divertiamoci come non mai a provare tutti gli effetti fino al risultato desiderato (anche più volte, mettiamo queste sorgenti di luce, che siano stelle o cosa, dove vogliamo)
  7. Usiamo Filters->Light Effects->FlareFX per sistemare i riflessi della luce
  8. Aggiungiamo l'effetto motion blur (è troppo bello): Filters>Blur>Motion Blur e selezioniamo la funzione Zoom (il valore ve lo consiglio su 3/4, non più di 5 che viene fuori uno shifo degno del regista di Lucignolo di Italia Uno).

giovedì 16 agosto 2007

Film Parodia: Ridoppiaggio

C'è chi dice che più di guardano film che fan ridere più si sta meglio :-)
Mi permetto di consigliarvi due siti:
Scaricateli e divertitevi!

mercoledì 15 agosto 2007

Ubuntu 1, Windows 0

Oggi mi è capitato di dover installare windows XP a casa dei miei cugini. Due dischi: in uno già con win, l'altro ci dovevamo installare un'altro windows per le prove (giochi, programmi beta...). Se non fosse che il BootMagic vuole il disco su cui essere installato formattato in FAT32: mamma mia, antidiluviano. Vabbè penso, Xp si installa su FAT32...eh, magari. Supporta fino a 32 GB: è un disco da 120GB...Ok. Niente panico.
Destino vuole che mio cugino ha un CD di Ubuntu che gli hanno regalato all'università (Dio benedica quel sant'uomo che glielo ha dato). Schiaffo il cd, parte in Live, mi vede tutti i dischi SATA, formatto in FAT32. Ottimo.
Finito? Magari. Windows rompe perchè non trova i dischi: normale, è SATA. Dove Ubuntu trova da solo, Win vuole un fottuto floppy disk con i driver. MA DICO IO, UN PROGRAMMA COMMERCIALE è più scarso di uno gratis...

Bah. Meditate gente: Opensource sempre e comunque, quando si può fare a meno dei .exe :-)

Per la cronaca: oggi sono stato contattato dal Brasile con complimenti per Valkyrja, il progetto GPL di una amministrazione Firewall e affini completamente in Php. Mi ha anche chiesto di sviluppi futuri.
Queste sono le cose che mi fanno tornare a scrivere del nuovo codice :-D

martedì 14 agosto 2007

La storia di Linux: il più grande sistema operativo mai esistito


Googleando in giro (verbo coniato or ora) cercando tutorial per Honeyd (un mio futuro post, vedrete), mi sono imbattuto in un sito chiamato "Sistemisti indipendenti" http://www.sistemistiindipendenti.org. Un bel sito, pieno di articoli interessanti (tra cui anche una guida per honeyd)....mi perdevo negli articoli per il networking quando il cursore del mouse si è posato su un titolo: "Il più grande sistema operativo mai esistito". Preso dalla curiosità, ho chiaramente cliccato e letto: parla minuziosamente (e bene) della storia di Linux, del suo creatore, del rapporto con il progetto GNU della Free Software Foundation. Certo è un po' datato (è del 2003, ma il passato non è che cambia), io però 10 minuti per leggerlo li spenderei volentieri...l'articolo potete trovarlo a questo indirizzo:
http://www.sistemistiindipendenti.org/modules/sections/index.php?op=viewarticle&artid=2

Buon software libero a tutti!!

giovedì 9 agosto 2007

Creare file PDF con Php


Visto che avevo parlato dei file zip creati con php, perchè non parlare anche dei file PDF? Sempre più questo formato prende piede ogni giorno...e potremmo avere la necessità di creare on-the-fly dei file PDF con i contenuti più vari. Le soluzioni native del Php sono praticamente tutte a pagamento oppure negate per un uso commerciale.
Ecco che viene in aiuto il mondo open-source con due progetti!
Il primo, chiamato FPDF (http://www.fpdf.org) è una classe che permette tramite semplici comandi di creare un PDF. Nel sito si trovano tutti gli esempi e i tutorial (ce ne sono veramente tanti). Come noterete in questa classe tutto è "cella", cioè per l'inserimento delle tabelle ad esempio tutto deve essere scritto con cura maniacale (questa cella con questo contenuto qui, quest'altra qua di queste dimensioni...).
Perchè non usare un linguaggio conosciuto e semplice come l'HTML?? La risposta ce la dà il secondo progetto, che si basa su FPDF ma si chiama HTML2(F)PDF (http://html2fpdf.sourceforge.net/) che permette in poche istruzioni di creare un file PDF...scrivendo in html!!
Bene. Ora i test: andate sul sito di html2fpdf e scaricate lo zippone che contiene tutto (dentro c'è anche fpdf). Importantissimo dentro c'è una cartella fonts, NON eliminatela!
Ho creato un semplice file per provare le funzionalità dello script:

<?
require_once("html2fpdf.php");
$html=file_get_contents("filehtml.html");
$pdf=new HTML2FPDF();
$pdf -> AddPage();
$pdf -> WriteHTML($html);
$pdf -> Output ('prova.pdf','I');
?>

In filehtml.html ho scritto il codice da trasformare, ho provato poche cose (ma nel sito c'è la lista completa dei tags supportati): ho provato un center, un b (grassetto), e una immagine. Notate che avrei potuto scrivere il codice HTML direttamente dentro la variabile $html (e quindi non necessariamente leggerlo da un file).
BUG: incredibile a dirsi, ma su linux non supporta i file GIF! Almeno credo su linux, forse anche su windows (sulla mia ubuntu non va, e secondo google tanti hanno questo problema), fate un po' di prove...in sostanza se non trova le immagini contenute nel codice html, carica una immagine no_img.gif, e subito dopo dà errore irreversibile di lettura sulla gif...niente da fare, sostituendo con un'altra gif o cambiando i permessi è sempre uguale...appena ho inserito però una PNG....magia, tutto funziona! Non arrabbiatevi, visto che è gratis: un motivo in più per passare al formato PNG ;-)

Buon php a tutti!

mercoledì 8 agosto 2007

Creare file zip con Php

  Primo post riguardante Php finalmente! Bene, oggi scrivo un metodo per creare file compressi (in formato zip) con il linguaggio Php. Niente di trascendentale: andate all'indirizzo http://www.phpconcept.net/pclzip/index.en.php e scaricate la libreria PclZip. Ora vi mostro un semplice file php che ho usato per testarne il funzionamento.
$backupFile="archive".date("dmY").".zip";
//Se esiste già, lo cancello
if (file_exists($backupFile)) @unlink($backupFile);
//Includo la libreria e genero l'oggetto zip
require_once('pclzip-2-6/pclzip.lib.php');
$archive = new PclZip($backupFile);
//Una lista di nomi di files da comprimere
$listOfFilesToCompress="backup.php,prova.php";
//Aggiungo i files all'archivio
$v_list = $archive->add($listOfFilesToCompress);
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}

//Opzionale: faccio scaricare il file zip
header("Content-type: application/zip");
header("Content-Disposition: attachment; filename=$backupFile");
header("Content-Description: Backup");
header("Content-Length: ".filesize($backupFile));
readfile($backupFile);
Io ho utilizzato una stringa che contiene i nomi dei files da aggiungere all'archivio compresso, e devono essere tutti separati da una virgola. Risoluzione ad un problema comune: tra un file e l'altro mettete solo la virgola e NON gli spazi (ad esempio: "backup.php,prova.php" e NON "backup.php, prova.php") altrimenti la libreria darà errore.
Che altro...se dovete comprimere una cartella, dovrete fare un ciclo su tutti i files contenuti nella cartella (usate opendir eccetera).
Se notate ho anche scritto alcune righe per lo scaricamento automatico del file zip risultante:
Per altre informazioni (ad esempio sull'estrazione automatica) riguardanti le caratteristiche di PclZip vi rimando al manuale del sito ufficiale:
http://www.phpconcept.net/pclzip/man/en/index.php?understand

Buon Php a tutti!!

martedì 7 agosto 2007

Gnome PowerToys

Titolo semiserio per introdurre alcune funzioni interessanti nel nostro Nautilus, il file manager di Gnome. A me farebbe comodo, ad esempio, che cliccando col destro su un file/cartella potessi aprirlo/a come amministratore, oppure aprire il terminale nel percorso di questa cartella, oppure ancora ridimensionare o ruotare immagini con un click!

Tutto questo è possibile semplicemente digitando sul solito terminale:

sudo apt-get install nautilus-gksu nautilus-image-converter nautilus-open-terminal



Questi tre pacchetti permettono di effettuare quelle comode operazioni che ho elencato poco sopra.
Inutile dire quanto io usi la funzione di ridimensionamento immagini per questo blog... :-)

domenica 5 agosto 2007

Nintendo DS

Tempo di weekend, tempo di boiate. Guardate cosa mi è toccato regalare alla mia ragazza:

Trattasi di "Nintendo DS Lite", di colore ROSA (che lo vendono solo bianco e nero, l'ho trovato per vie traverse...). Come console è veramente bella: due monitor, uno touch-screen e l'altro no, i vari pulsanti (è retrocompatibile con il mitico GameBoy Advance), un microfono, altoparlanti, presa per cuffie/microfono estero. Ma è quando si guarda ai giochi che diventa una vera chicca. Ad esempio Nintendogs (eh si, purtroppo ha comprato anche quello) il motore di gioco del cane e dell'ambiente è molto ben fatto: coccole, passeggiate, giochi con vari oggetti, bagnetto, tutto questo tramite pennina sul monitor touch-screen.

Come se non bastasse, gare varie (abilità, frisbee) e la possibilità di insegnare i comandi al cane...tramite microfono, riesce a riconoscere la voce...
Per fare pari, lei mi ha regalato il Brain Training....ma lo descriverò in un altro post, per ora vi basti sapere che è bello pure questo :-D

venerdì 3 agosto 2007

Ameritaliano dei Simpsons

Oggi è sabato e quindi spazio alle cose meno serie. Cosa c'è di più divertente dei Simpsons?
Ieri mi aggiravo per youtube...cosa ti vado a trovare? Puntate in inglese dei Simpsons (spezzoni) dove si tenta di parlare in italiano! I risultati sono sconcertanti :D E fanno parecchio ridere!
Nel primo video Lisa si fa insegnare l'italiano da Milhouse!


Nel secondo video la famiglia Simpson va a ritirare una macchina Lamborghini per il sign. Burns in Italia:

Linux: come calcolo gli indirizzi IP?

Se c'è una cosa in cui non sono veramente mai stato capace è il calcolare le varie reti/netmask e relativi prefissi degli indirizzi IP. L'unica cosa che riuscivo a capire era 192.168.0.1/24, ma già se mi si metteva /23 andavo nel panico! (E qui i retisti mi possono anche prendere in giro).
Fortunatamente ho scovato il software giusto per contrastare il mio blocco mentale: trattasi di Gip, Gnome IP calculator. E' veramente semplice da usare, riporto solo uno screenshot:
Ah! Dimenticavo di dire che in Ubuntu installarlo è altrettanto semplice, basta digitare da terminale:

sudo apt-get install gip

E ogni volta che lo volete eseguire digitate gip nel terminale...tutto qua! ;-)

giovedì 2 agosto 2007

Installare una stampante PDF in Ubuntu

Ecco a voi un altro tips che mi è stato molto utile. Oramai il bisogno di creare file PDF è largamente presente, e programmi come OpenOffice lo supportano in toto. Ma se voglio creare un PDF da un'altra applicazione? Non sarebbe bella una stampante virtuale come in Windows, che mi permetta di stampare file in formato PDF?

Chiaramente la comunità libera prontamente ha apportato questa caratteristica...ed è anche semplice installarla.
Prima di tutto, digitate da terminale:
sudo apt-get install cups-pdf
Questo installerà il supporto PDF per il sistema cups (io l'avevo già installato quest'ultimo).
Ora andate sotto Sistema -> Amministrazione -> Stampa e selezionate "Nuova Stampante" come da figura:
Bene, nella schermata che segue lasciate Tipo: Locale o stampante rilevata e Usa Stampante individuata (scegliete PDF Printer, se avete anche una stampante vera vi verrà visualizzata anche quella).

Ora cliccate avanti. Scegliete Produttore: Generic e Modello: Postscript (il driver è uno solo).

Cliccate avanti e finalmente nella schermata che segue potete inserire il nome della stampante (Ad esempio StampantePDF, senza spazi) e una breve descrizione della stampante. Cliccando su Fine...si ottiene l'effetto sperato!

Fate una prova di stampa: viene stampato il tutto e...ma dove lo salva???Beh a tutto c'è rimedio...viene creata una cartella PDF sotto la home directory del vostro utente, e lì dentro salverà tutti i file PDF che crea...buon PDF a tutti!

mercoledì 1 agosto 2007

Linux Tips: autocompletamento esteso


Come tutti voi saprete, durante una sessione in un terminale linux (gnome-terminal ad esempio in Ubuntu) premendo "tab" si attiva l'autocompletamento dei comandi (e solo di quelli). Ad esempio sarebbe comodo scrivere:
sudo apt-get
e premendo tab mostrasse le varie opzioni (remove, install, autoremove ecc.). Stessa cosa se installo un pacchetto tramite l'opzione install: inizio a scrivere ad esempio "gnome" e l'autocompletamento mi mostra tutti i pacchetti disponibili da installare che iniziano per "gnome".
Ottenere questo effetto è molto semplice, basta aprire una console ed editare il file

sudo gedit /etc/bash.bashrc


Trovare le linee:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
#fi


e cambiarle in:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi


In breve, decommentate le tre righe :-) Chiudendo e riaprendo la console, premendo TAB dopo aver scritto apt-get vengono mostrate le opzioni:

autoclean clean install update build-dep dist-upgrade remove upgrade check dselect-upgrade source


Mi è stato veramente utile come consiglio...un grazie sentito a Marco Fabbri (blog personale, INGLESE) per il tips!