Browsing Posts in Guide

Hi all, this is a good tutorial (screencast), that I have found on youtube, about how you can do to create a beautiful, plastic stile sphere icon for your website, using an open source tool for vector graphics Inkscape.

Those kind of images are particular appreciated in “web2.0 style” and many website are moving their graphics towards this style, so why don’t you keep updated?
continue reading…

Cos’è Ajax:

Ajax o Asyncronous JavaScript and XML non è facilmente descrivibile, è un nuovo sistema di pensare il web, di offrire interfacce utente più usabili grazie all’ausilio delle tecnologie ormai d’uso comune, fondanti AJAX ossia Javascript, CSS e XML.
Con Ajax è possibile aggiornare singole porzioni di pagine web senza doverle ricaricare, è possibile offrire form in grado di validare i dati inseriti e di auto-completare quanto digitato dall’utente, tutto questo vi sembra fantascienza? Dovreste vedere cos’altro si può fare.

Molti portali e grandi aziende hanno puntato negli ultimi anni su questa innovazione tecnologica, il più visibile tra questi attori è Google, che ha fatto di Ajax il suo cavallo di battaglia, ad esempio, l’intera interfaccia di GMail è gestita in AJAX e attraverso un complicato sistema di frame e javascript.

Inoltre sempre Google offre ai suoi utenti la possibilità di effettuare delle ricerche con dei suggerimenti, il servizio si chiama Google Suggest, in poche parole mentre voi digitate la parola da ricercare, l’interfaccia di Google vi offre dei suggerimenti che riguardano i possibili risultati ottenuti e la rilevanza, rispetto alla chiave di ricerca, di ciascuno di questi.

Google non è davvero l’unico, ci sono molti altri esempi, ma non mi dilungherò oltre nei case studies.

continue reading…

Per tutti quanti coloro che desiderano pubblicare degli indirizzi email visibili sulle loro pagine web, ma sono terrorizzati dallo spam, questo semplice script in php vi consente di mettervi in parte al riparo da questo problema.

Quello che fa lo script è produrre un’immagine PNG al volo contenente l’indirizzo email da voi passato, inoltre per evitare che gli spider dediti alla raccolta di email riconoscano nel vostro codice html l’indirizzo, questo può essere invalidato con due tecniche (che in realtà possono essere anche abinate insieme):

  1. con l’inserimento di un numero arbitrario di spazi bianchi all’interno dell’email
  2. con la sostituzione del carattere @ con la stringa [___AT___] (N.B. sono tre gli underscore prima e dopo AT).

Lo script prevede anche la possibilità di rendere lo sfondo dell’immagine trasparente in modo da adattarla allo sfondo della pagina sulla quale deve visualizzare l’immagine, per questa funzionalità basterà decommentare la linea 15 del file emailToImage.php

Per quanto riguarda l’utilizzo del file vi propongo qui di seguito un breve codice HTML (perdonatemi se non è un codice perfetto ma non è questo l’intento dell’articolo):

Error: Could not open Test_emailToImage.html

mentre per quanto riguarda il codice dello script PHP continue reading…

ATTENZIONE: questa configurazione dopo i recenti aggiornamenti su dreamhost non è più consigliata, spesso causa crash nel sito che risulta irraggiungibile ritornando Errore 500, appena possibile pubblicherò una guida aggiornata…

Questa è una versione modificata rispetto alla guida ufficiale che potrete trovare sul wiki di dreamhost, difatti punta a farvi utilizzare non la versione preinstallata che trovate sul vostro server di python ma una vostra installazione personalizzata, con tutte le librerie di cui potreste aver bisogno, il documento originale in inglese da cui sono partito per scrivere questo tutorial si trova all’indirizzo:
http://forums.site5.com/showthread.php?t=10236
ora non mi rimane che augurarvi una buona lettura.

Per iniziare dopo aver completato le fasi di registrazione su dreamhost e una volta che avrete ottenuto un account ssh questi sono i passi da seguire per installare Django su Dreamhost, facendo uso però di una versione personalizzata di python:

  1. collegatevi in ssh sul vostro server
  2. una volta entrati nella vostra home digitate:
    wget http://peak.telecommunity.com/dist/virtual-python.py
    python virtual-python.py

    Questo creerà nella vostra home diverse cartelle (bin, lib, …) che vi consentiranno di avere una installazione personalizzata di python.
    Il vantaggio di questo approccio è che vi consentirà di avere a vostra disposizione le librerie più indicate per il vostro progetto proprio come se aveste un vostro server personale.

  3. Adesso è necessario scaricare ez_setup:
    wget http://peak.telecommunity.com/dist/ez-setup.py
    ~/bin/python ez_setup.py

    Adesso avete un’installazione completamente funzionante di python al vostro servizio, passiamo ora all’installazione delle librerire necessarie.

Librerie di python:

  1. La prima libreria necessaria per il funzionamento di Django su Dreamhost è quella per interfacciare Python al dbms MySQL, consiglio vivamente di scaricarsi ogni volta l’ultima versione della libreria che trova a questo indirizzo http://sourceforge.net/projects/mysql-python e al limite caricarla in ftp direttamente nella vostra home e seguire le indicazioni che vi sto per dare, per la sua installazione, ad eccezione della prima linea.
    wget http://path.to.sourceforge.mirror/sourceforge/mysql-python/MySQL-python-1.2.1_p2.tar.gz
    tar zxvf MySQL-python-1.2.1_p2.tar.gz
    cd MySQL-python-1.2.1_p2
    ~/bin/python setup.py install
  2. Installiamo una libreria che è utile (e necessaria) soprattutto se usate le immagini nel vostro progetto e gli ImageField, si tratta della libreria PIL (Python Imaging Library):
    wget http://effbot.org/downloads/Imaging-1.1.5.tar.gz
    tar zxvf Imaging-1.1.5.tar.gz
    cd Imaging-1.1.5
    ~/bin/python setup.py install
  3. Installiamo infine la libreria flup:
    svn co http://svn.saddi.com/flup/trunk flup
    cd flup
    ~/bin/python setup.py install

    a questo punto siete pronti per l’installazione vera e propria di Django.

Installazione di Django:

  1. scarichiamo per prima cosa nella nostra home l’ultima versione di django, utilizzando svn:
    svn co http://code.djangoproject.com/svn/django/trunk/ django-src
  2. adesso rendiamo disponibile il path di django nella nostra installazione di python facendo un soft link:
    ln -s ~/django_src/django ~/lib/python2.4/site-packages/django
  3. creiamo una directory nella vostra home che conterrà il progetto che andrete ad utilizzare:
    mkdir ~/django_project

    All’interno di questa directory dovrete caricare il vostro progetto django con tutte le cartelle ad eccezione della cartella media.

Rendiamoci visibili:

Nella vostra home oltre a tutte le cartelle che avete creato fin qui, ci dovrebbe essere una cartella con il nome uguale a quello del dominio che avete acquistato, in caso contrario vi consiglio di visitare il wiki di dreamhost per maggiori informazioni.

  1. Supponendo quindi che voi abbiate una cartella miodominio.com la prima cosa da fare è aggiungere le ultime due cartelle create nel PATH di sistema:
    vim ~/.bashrc
    export PYTHONPATH=$PYTHONPATH:$HOME/django_src:$HOME/django_projects
    :wq
    source ~/.bashrc
  2. bisogna creare un file di configurazione che vi permetta di interfacciare il vostro progetto Django con il modulo fcgi:
    vim ~/miodominio.com/django.fcgi
    #!/home/username/bin/python
    import sys
    sys.path += ['/home/username/django_src']
    sys.path += ['/home/username/django_projects']
    from flup.server.fcgi import WSGIServer
    from django.core.handlers.wsgi import WSGIHandler
    import os os.environ['DJANGO_SETTINGS_MODULE'] = 'Progetto.settings'
    WSGIServer(WSGIHandler()).run()
    
    :wq

    ovviamente le parti con username e Progetto vanno sostituite con i vostri dati.
    (N.B.) Fate molta attenzione ad utilizzare nano o vim come editor se hanno il wordwrap, perch� in questo caso le linee troppo lunghe verranno spezzate ed il file sar� inservibile.

  3. ora va creato sempre nella directory miodominio.com il file che vi consentirà di utilizzare il mod_rewrite di Apache, quindi questo è quello che dovrete scrivere:
    vim ~/miodominio.com/.htaccess
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_URI} ^/stats/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    RewriteRule ^(media/.*)$ - [L]
    RewriteRule ^(admin_media/.*)$ - [L]
    RewriteCond %{REQUEST_URI} !(django.fcgi)
    RewriteRule ^(.*)$ django.fcgi/$1 [L]  
    
    :wq

    la riga

    RewriteCond %{REQUEST_URI} ^/stats/(.*)$ [OR]

    sta ad indicare la parte di file nella quale dovrete inserire tutte le url che non debbono essere gestite da django, quindi ad esempio l’url per accedere alle statistiche del sito www.miodominio.com/stats

  4. gli ultimi ritocchi da fare sono:
    ln -s ~/django_src/django/contrib/admin/media ~/miodomionio.com/admin_media

    per rendere disponibile la grafica dell’amministrazione e caricare tramite ftp la cartella media del proprio progetto sempre dentro ~/miodominio.com

  5. Ormai giunti alla fine di questo lungo lavoro, dovrete modificare il file di configurazione di django, settings.py in modo tale che rispetti il nuovo ordinamento delle directory, in particolare vanno modificate tutte le linee che si riferiscono alla cartella media indicando dove queste vanno ricercate, cioè ~/miodominio.com:
    MEDIA_ROOT = '/home/username/miodominio.com/media/'
    
    MEDIA_URL = 'http://www.miodominio.com/media/'
    
    ADMIN_MEDIA_PREFIX = '/admin_media/'
    
    TEMPLATE_DIRS = ( '/home/username/miodominio.com/media/template/',  )
  6. Per concludere dovrete “uccidere” tutti i processi attivi con python e django, ricordate questo passaggio è necessario ripeterlo tutte le volte che modificherete un file vitale di django come settings.py o urls.py, digitate quindi:
    killall -9 /home/username/bin/python
    killall -9 django.fcgi

Questo è veramente tutto, vi consiglio di leggere il tutorial su come utilizzare vim presente in questo blog all’indirizzo: http://www.antonellocicchese.com/2005/12/12/tutorial-vim/

ATTENZIONE: questa configurazione dopo i recenti aggiornamenti su dreamhost non è più consigliata, spesso causa crash nel sito che risulta irraggiungibile ritornando Errore 500, appena possibile pubblicherò una guida aggiornata…

L’URL rewriting è quella tecnica che vi permette (server consentendo), attraverso l’uso di particolari istruzioni nei file .htaccess, di trasformare gli indirizzi dei vostri siti dinamici, umanamente illegibili ed ancor peggio inaffidabili per gli spider, in un formato utile all’indicizzazione nei motori e alla memorizzazione degli utenti.Per farvi capire cosa sono le pagine dinamiche, diciamo che voi avete il vostro bel forum nella barra degli indirizzi presenta l’url in un formato caratterizzato dalla presenza di molte variabili (sono tutte quelle voci che seguono il ?) che via via che vi aggirate nel sito cambiano in funzione del punto dove vi trovate.

Dal punto di vista di quei simpatici ragnetti dei motori di ricerca questi url sono la cosa pi� pericolosa che esista, difatti nulla assicura allo spider che seguendo questi indirizzi riuscirebbe ad indicizzare correttamente il sito ad esempio supponiamo che voi abbiate un sito con due sole pagine index.php e spidertrap.php, e che per qualche motivo index contenga un link a spidertrap utlizzando un indirizzo nel formato sito/spidertrap.php?SID=84duryreyey e spidertrap contenga un link a index sempre nel formato di prima, dove SID � la variabile che contiene l’id di sessione del vostro visitatore, quello che potrebbe succedere, ad ogni nuova visita degli spider, è che seguendo i link tra le due pagine, lo spider cadrebbe in un loop nel quale ad ogni nuovo accesso SID avrebbe un valore diverso da quello precedente, inducendo così lo spider a pensare di trovarsi difronte ad una pagina mai indicizzata, ottenendo così un’indicizzazione infinita.

La norma per gli spider è quindi quella di non considerare i parametri negli url, (o almeno tralasciarne buona parte) riducendo così la profondità di indicizzazione nei vostri siti.

Proprio in ragione di questo interviene l’url rewriting che consente di riscrivere gli indirizzi che contengono parametri in indirizzi nel formato: sito/param1/param2/param3/pippo.php o in quasi qualunque altra forma vi venga in mente, consentendo così agli spider di attraversare tutto il vostro sito, oltre che ai vostri utenti di rintracciare una pagina interna senza diventare matti.

Il post potrei dichiararlo concluso qui, non mi metterò a spiegare come vanno scritte le regole per l’url rewrite, ma se qualcuno fosse particolarmente interessato potrei pensare di scrivere un nuovo post.

Consiglio a tutti gli interessati di leggersi questo articolo se potete usare .htaccess sul vostro server:

http://pro.html.it/articoli/id_219/idcat_28/pag_3/pag.html

mentre quest’altro se non vi viene concesso:

http://freephp.html.it/articoli/view_articolo.asp?id=61

Originariamente questa testo è stato pubblicato da me sul forum del sito AlVerde.net, a questo indirizzo potrete leggere la versione originale:
http://www.alverde.net/forum/topic.asp?TOPIC_ID=6866&whichpage=1