$(document).ready(function() {
$("input, textarea").live('keypress', function(e){
var key;
var val1;
//se è IE
if (window.event){
key = e.keyCode;
if ((key > 0x60) && (key < 0x7B) || key == 232
|| key == 242 || key == 224 || key == 249 || key == 236
|| key == 233){
key = key-0x20;
}
//tutti gli altri browser
}else{
key = e.which;
if ((key > 0x60) && (key < 0x7B) || key == 232
|| key == 242 || key == 224 || key == 249
|| key == 236 || key == 233){
key = key-0x20;
}
}
// fa in modo che prenda gli altri eventi come il
backspace oppure ctrl+v o ctrl+c
if (key == 8 || e.ctrlKey || e.altKey || key == 0){
return;
}
val1 = $(this).val();
$(this).val(val1 + String.fromCharCode(key));
return false;
});
venerdì 26 marzo 2010
Script javascript per trasformare i caratteri in maiuscolo
venerdì 8 gennaio 2010
Movimento Fon: la rete wifi gratis più grande al mondo!
è nata ormai da anni una comunità che si chiama fon, in breve è una comunità per la diffusione libera di hotspot wifi.
Questo avviene grazie alla diffusione di un router wifi che permette la condivisione di una piccola parte della vostra connessione a tutti gli utenti che aderiscono a questo movimento.
Chi ad esempio non aderisce a questa iniziativa, dovrà pagare per l'accesso a questi hotspot.
Il bello è che i guadagni vanno metà a coloro che hanno investito in questa fantastica idea e l'altra metà a coloro che avranno aderito a questo movimento.
Ad esempio, se un utente non appartenente alla fonera si volesse connettere per tutto il giorno pagherebbe 5 euro e a voi verrebbero in tasca 2.5 euro (se naturalmente si connette al vostro hotspot). Non è tantissimo ma dipende anche dalla zona in cui si abita.
Ma il bello deve ancora arrivare perchè uno a questo punto si chiede: "ma come faccio a sapere dove si trovano questi hotspot?" semplice, sul sito http://www.fon.com/ c'è una mappa aggiornata di tutti coloro che aderiscono a questo movimento.
A settembre 2009 si è avuta un'ulteriore evoluzione del router WiFi della fonera.
La Fonera 2.0N che non è più solo un router WiFi in grado di fornire connettività ai propri utenti e agli altri membri della comunità FON: la nuova Fonera è una vera e propria open platform che si potrà configurare, personalizzare e programmare a proprio piacimento.
è in grado di gestire il collegamento con qualsiasi dispositivo esterno USB. Così, ad esempio, collegando un hard disk sarà possibile condividerne i contenuti con altri utenti, oppure salvare i file scaricati da un'applicazione Bit Torrent sviluppata per la Fonera, senza la necessità di lasciare il PC acceso.
Ma le applicazioni possono essere tante altre: condividere una stampante in rete collegata attraverso la porta USB del router, controllare via webcam un qualsiasi ambiente o il sonno tranquillo del bimbo in camera, caricare direttamente dalla fotocamera le foto su Flickr o i video su Youtube, allestire il centralino casalingo per gestire le telefonate VoIP.
Per concludere e farvi capire l'importanza di tutto ciò, FON, fondata nel 2005, ha raccolto in totale 34 milioni di euro di finanziamenti da Skype, Google, Sequoia Capital, British Telecom, Index Ventures ed altri investitori ed ha raggiunto ormai più di 800.000 punti di accesso attivi in tutto il mondo.
Se vogliamo essere al pari dell'america incominciamo a fare qualcosa tutti
I costi degli attuali router vanno dai 14 euro ai 60 euro della fonera 2.0N.
venerdì 11 dicembre 2009
Database geografico comuni
è da un pò di tempo che mi balenava in testa l'idea di realizzare un database completo e aggiornato di tutti i comuni d'Italia che contenesse il maggior numero di informazioni possibili.
Dopo un lungo lavoro sono riuscito nel mio intento, realizzando un database che raccoglie al suo interno anche informazioni geografiche per ogni comune. Realizzato grazie a postgres e postgis in seguito trasfomato e realizzato con Mysql per favorire le esigenze di chi volesse usare questo database sui comuni hosting internet che offrono prevalentemente servizi per database Mysql.
In molti si chiederanno a cosa può servire un database geografico per i comuni. Beh la risposta è molto semplice, basta vedere un piccolo esempio di ciò che ho realizzato con questo database:
http://www.symrad.net/
Per dirla in parole povere, in questa mappa si ha una navigazione su tre diversi livelli a seconda del livello di zoom adottato, ad esempio:
dal livello di zoom che va dallo 0 al 7 si possono vedere i confini regionali
dal livello di zoom che va dall 8 al 14 si possono vedere i confini provinciali
dal livello di zoom che va dal 15 in poi si vedono i confini comunali
Inoltre, puntando il mouse sui poligoni si potrà vedere nel box a destra lo stemma e il nome delle regioni, province o comuni (sempre a seconda del livello di zoom in cui ci si trova).
Il database è composto da 8 tabelle:
Regioni (20 righe)
Geometrieregioni (20 righe)
Province (110 righe)
Provincegeometrie (110 righe)
Comuni (8100 righe)
Comunigeometrie (8100 righe)
Capgrandicitta (90264 righe, poichè ogni grande città come Milano, Roma possiede più CAP, nel database per ogni città che ha questi requisiti sono presenti tutte le vie con il rispettivo CAP)
Frazioni ( 55207 righe)
Alcune chicche del database sono:
La presenza degli stemmi delle regioni, province e comuni (per i comuni si hanno 8000 stemmi).
La latitudine e longitudine dei comuni e delle frazioni.
I confini regionali, provinciali e comunali.
I CAP delle grandi città.
I siti web di 7354 comuni.
Informazioni riguardanti i singoli comuni quali: nome abitanti, santo patrono, festa del comune, latitudine massima e minima, latitudine casa comunale, codice catastale, locator, codice istat, zona climatica e molto altro.
Il database è aggiornato con le nuove province e i nuovi comuni.
Nel link qui sotto, vi rimando allo schema del database:
http://symrad.02lab.net/SchemaErPostgis.jpg
Per conoscere il costo ed avere un preventivo mandatemi una mail a symrad@virgilio.it
venerdì 4 dicembre 2009
Installare Apache Php Mysql Postgres
Innanzitutto vi spiego perchè installare separatamente Apache, Php, Postgres e Mysql.
I programmi tutto in uno come ad esempio easyPhp o Wamp offrono un bel servizio, perchè installano tutto con un unico eseguibile.
Diventa un problema quando sul computer si devono installare ad esempio Postgres e Mysql e far si che questi due database comunichino fra loro.
easyPhp è uno strumento molto valido per lavorare con PHP e Mysql e ne esiste un altro per lavorare con PHP e Postgres. Il problema è che installando due servizi di questo genere ci verremmo a trovare due server apache sullo stesso computer, che risulta una cosa davvero sconveniente in quanto sarà molto più complesso far comunicare tra loro i due database.
Per ovviare a questo problema è sufficiente installare Apache, Php, Postgres e Mysql separatamente. Al contrario di quanto credevo è un'operazione molto semplice che richiede pochi minuti. Un vantaggio ulteriore che deriva da tutto ciò è che installando Php separatamente ci troveremo già con tutte le estensioni in esso presente senza magari doverle andare a cercare in un secondo momento (ad esempio l'estensione curl).
Per fare tutto ciò vi rimando ad un articolo che ho trovato in rete che ci spiega passo dopo passo come fare:
http://www.phpnews.it/articoli/php/installare-apache-2-php-5-mysql-41-su-windows/6/
Nell'articolo non viene spiegato come installare e fare funzionare Postgres con il server apache e Php, quindi ve lo spiego io in breve:
- Per prima cosa installare Postgres (non sto qui a spiegarvi come si fa perchè è un'operazione abbastanza semplice, basta scaricare l'eseguibile da sito e seguire la procedura guidata)
- Ora è sufficiente andare nella cartella in cui è stato installato PHP e cercare il file php.ini, al suo interno cerchiamo la riga riportata qui sotto e decommentiamola (togliendo i punti e virgola), salviamo e il gioco è fatto.
;extension=php_pgsql.dll
;extension=php_pdo_pgsql.dll
martedì 1 dicembre 2009
Inviti a Google Wave
siccome nessuno è ancora riuscito a spiegare l'importanza di google wave sul web e tutti lo fanno in modo piuttosto approssimativo senza conoscere bene cosa sia, cercherò di spiegarvelo elencando alcune delle sue potenzialità.
Wave non è altro che uno strumento open-source come altri strumenti di google quali maps, gmail, youtube e molti altri che ha lo scopo di riunire al proprio interno molti degli strumenti di web 2.0 nati di recente. Naturalmente si pone come obiettivo quello di aggregare questi strumenti ed ampliare le loro potenzialità.
Pensiamo ad esempio alla possibilità di chattare con gli amici vedendo durante la conversazione ogni singolo carattere da loro digitato e ogni correzione apportata al testo. Questo a prima vista potrebbe essere una cosa superflua o addirittura fastidiosa in una chat, perchè in quanti di voi scrivono una frase poi ci ripensano poi scrivono un'altra cosa, rileggono etc?! Diciamo che è come se stessimo parlando in tempo reale, quindi mentre uno scrive l'altro ha la possibilità di controbattere immediatamente.
Ora lasciando da parte la chat pensiamo al fatto che con questa tecnologia all'interno di un wave, è possibile condividere un video, creare una mappa personalizzata, giocare ad esempio a sudoku con altre 50 persone contemporaneamente, creare una videoconferenza, condividere foto.
E alcuni si chiederanno ma cos'è un wave? potrei rispondere dicendo che non è altro che un gruppo di persone che partecipano a una discussione. Per chiarirci meglio è come il thread di un forum, oppure facendo l'esempio di facebook è come se fosse un gruppo. Spero di avere reso abbastanza l'idea se no guardate il video qui sotto.
Be in molti penseranno che questa non sia una grande innovazione, visto che già molti social network lo fanno, anche se in maniera più grezza e meno evoluta.
Beh arrivati a questo punto è sembrato anche a me un complesso giochino ma nulla più, poi avendo la pazienza di vedere il filmato di presentazione della durata di 1 ora e 20, mi sono accorto che va oltre il semplice gioco.
Immaginiamo ad esempio di essere un gruppo di studenti che deve fare una ricerca e tutti devono fare un pezzo o supervisionare.
Molte volte non si ha la possibilità di riunirsi in un luogo e si usa internet per comunicare. Ognuno fa il suo e qualcuno aggrega i vari pezzi e se necessario li corregge per dare un filo logico al documento.
Con google wave non sarebbe necessario tutto ciò, dato che è possibile condividere all'interno di un wave un' applicazione. Immaginiamo dunque di condividere un documento di word. A questo punto si aggiungono al wave tutte le persone che debbono lavorare a questa ricerca. Ogni parte del testo modificato da un singolo utente sarà visionabile in tempo reale dagli altri, in questo modo ogni singolo partecipante potrà visionare l'intero documento e monitorare quello che fanno gli altri avendo la possibilità di correggere. Diciamo che potrebbe essere la stessa idea alla base di wikipedia, in cui ognuno mette le proprie conoscenze al servizio del gruppo e ogni singolo utente ha la possibilità di correggere o aggiungere qualcosa sull'argomento trattato in modo che risulti il più completo possibile. La sola differenza è che in wave viene fatto tutto in tempo reale. Questo, naturalmente, è uno degli innumerevoli motivi che per cui un utente potrebbe essere spinto a utilizzare google wave.
Da tutto ciò traspare che l'idea innovativa alla base di questo strumento è che tutto è condivisibile e fatto in tempo reale.
Ora non mi dilungo oltre sull'argomento perchè si potrebbero fare molti altri esempi ma mi sembra superfluo proseguire, l'importante è capire l'innovazione che sta alla base, una volta capito questo vi verranno in mente 1000 altri motivi per cui usarlo.
Facendo un ultimo esempio potrei dire che sarebbe bello poterlo inserire all'interno di un social network come facebook.
Infatti ci dà la possibilità di creare applicazioni come in facebook ma condivisibili. Creare gruppi di discussione pubblici o privati, chattare, creare videoconferenze e molto altro ancora.
Tuttavia è anche possibile che se i social network non fanno loro questa tecnologia, muoiano gradualmente. Di per se questo servizio di google potrebbe anche essere considerato un social network a tutti gli effetti.
Per finire, metto a disposizione un totale di 5 inviti per poter visionare la beta di google wave.
Se sarete così gentili da collaborare sarò anche lieto di far passare gli inviti da 5 a 10 e così via a seconda dell'affluenza e delle persone che collaborano, per ora ne ho spediti 5 e ne ho ancora un pò (devo ringraziare chi me li ha chiesti, sono stati molto gentili)
Se volete ottenere l'invito scrivetemi a symrad@tiscali.it
lunedì 5 ottobre 2009
WebTv, Ipod, Film, Televideo, Radio, Gadgets tutto a portato di barra
Per quanto riguarda la rai, è già possibile vedere tutte le emittenti presenti sul digitale grazie al suo sito RaiTv, che a quanto pare non in molti conoscono (io ad esempio l'ho scoperto solo da un mese)
Per quanto riguarda mediaset la situazione è più complessa perchè tramite il suo sito Rivideo c'è la possibilità di rivedere le trasmissioni ma a pagamento e siccome non è il caso di pagare per vedere fiction italiane o i programmi di Maria de Filippi, ho cercato un sito che trasmettesse questi canali in streaming.
Facendo questa ricerca, mi sono imbattuto in un programma per explorer, firefox e safari veramente geniale, di nome webnotes.
WebNotes non è altro che una toolbar che ci consente di avere tutto a portata di click:
- Ty
- Televideo
- Partite di calcio
- Ipod
- Radio
- Film in streaming
- Live cam da tutto il mondo
e molti gadget da scaricare, grazie alla quale ad esempio si possono monitorare le notifiche ricevute su facebook, consultare dizionari e molto altro ancora.

domenica 4 ottobre 2009
Creare una mappa in locale con OpenStreetMap
Le mappe di OpenStreetMap possono essere inserite nel proprio sito reperendole online oppure ricreando i TILE che le compongono tramite software di render per essere poi consultabili in locale senza aver la necessità di una connessione ad internet.
Mettiamo ad esempio il caso che questo servizio ci serva per la creazione di uno strumento interattivo per musei e che il museo non possegga una connessione ad internet per l'integrazione di questo servizio (faccio questo esempio perché mi è capitato), in questo caso basta fare una copia in locale della porzione di mappa che ci interessa.
Questo è quello che cercherò di mostrarvi oggi!!!
Per prima cosa è necessario scaricare e installare i seguenti software:
- Postgres con estensione Postgis (http://www.postgresql.org/download/)
molto semplice da installare per ulteriori informazioni sull'installazione consultate il seguente link:
http://database.html.it/articoli/leggi/1689/postgresql-su-windows-procedura-di-installazione/
Una volta installato andate in start - > programmi -> PostgreSQL 8.4 aprite l'applicazione "Application Stack Builder" e scaricate l'estensione Postgis che si trova sotto la voce "spatial extensions".
Ora inserite il programmino osm2pgsql.exe (http://artem.old-dev.openstreetmap.org/files/ scaricare quello non zippato)
all'interno della cartella "bin" che si trova in:
C:\Program Files\PostgreSQL\8.4\
N.B. installare Python2.5 e non versioni precedenti
- Mapnik 0.6.1 che è il nostro motore di render
http://media.mapnik.org/mapnik_0.6.1-win32_py25.zip
Ora convertiremo il file OSM (che è un file di backup del database di OpenStreetmap) in un database con estensione geografica.
Creeremo un nuovo ruolo all'interno di Postgres a cui daremo il nome dell'account windows e un nuovo database di nome 'gis'.
Quindi andremo su ruolo utente -> nuovo ruolo utente
- In proprietà metteremo come nome del ruolo il nome che abbiamo dato all'account windows
- In privilegi di ruolo spunteremo tutto
Ora creeremo il database:
Andremo su database (tasto destro) -> nuovo database
- Nome: gis
- Proprietario: nome del ruolo creato prima
- Codifica: UTF8
- Modello: template_postgis
- Tablespace: pg_default
- Aggiungeremo al database alcuni requisiti tramite una query:
GRANT ALL ON DATABASE gis TO public;
GRANT ALL ON DATABASE gis TO " account windows ";
COMMENT ON DATABASE gis IS 'OSM';
Il prossimo passo sarà quello di andare a modificare il file pg_hba.conf in modo che l'accesso al server possa essere fatto senza l'utilizzo di una password, altrimenti il programmino osm2psql non riuscirebbe ad accedervi.
File->Apertura di pg_hba.conf
Selezioniamo il file che nel mio caso ha il seguente percorso:
C:\Program Files\PostgreSQL\8.4\data
Una volta aperto modifichiamo il metodo in 'trust' e facciamo ricaricare il server.
A questo punto bisognerà scaricare il file OSM che conterrà tutte le informazioni riguardanti i nodi, le vie e le relazioni tra esse dell'intero pianeta o della sola area che si vorrà renderizzare.
Eccovi i file OSM:
http://debian.gfoss.it/maps/
http://planet.openstreetmap.org/planet-latest.osm.bz2
Scaricato il file basterà far partire il comando DOS osm2pgsql, se ad esempio il programmino si trova in:
C:\Program Files\PostgreSQL\8.4\bin
Basterà eseguire i seguenti comandi da DOS:
cd C:\Program Files\PostgreSQL\8.4\bin
osm2pgsql.exe -v E:\Openstreetmap\planet.osm
In questo modo I dati verranno caricati all'interno del database precedentemente creato.
Con l'utilizzo del database venutosi a creare sarà possibile renderizzare i TILES.
Per fare ciò è necessario installare Python2.5 e Mapnik:
- Per prima cosa si installa Python che è un eseguibile e non necessità di spiegazioni per l'installazione
- Una volta installato python si seguono i passi descritti in questa pagina per l'installazione di Mapnik:
http://trac.mapnik.org/wiki/WindowsInstallation
- A questo punto creeremo una nuova cartella all'interno di mapnik di nome 'osm' con all'interno:
Una cartella di nome boundaries che conterrà i file presenti negli archivi 'processed_p.zip' e 'world_boundaries-spherical.tgz'
Scaricabili dai seguenti siti:
http://hypercube.telascience.org/~kleptog/processed_p.zip
http://tile.openstreetmap.org/world_boundaries-spherical.tgz
Una cartella vuota di nome 'tiles' che sarà poi riempita dai tiles che si andranno a renderizzare.
Una cartella 'symbols' in cui copieremo tutti quei simboli usati durante il render per creare strade punti di interesse etc.
I simboli si trovano all'interno del sito:
http://svn.openstreetmap.org/applications/rendering/mapnik/symbols
All'interno della cartella 'osm' copieremo i file python di configurazione (generate_tiles.py, set-mapnik-env, osm-template.xml, customize-mapnik-map) scaricabili dal seguente sito:
http://svn.openstreetmap.org/applications/rendering/mapnik/
Modificheremo i file di configurazione a seconda delle nostre esigenze come descrittoci all'interno dei file readme.txt presente sul sito
Se non si dovesse riuscire a configurare i file con python basta usare uno dei tanti editor per sostituire all'interno del file osm-template.xml le variabili con i nostri dati.
Ad esempio:
SYMBOLS_DIR=C:/mapnik-0_5_1/osm/symbols
WORLD_BOUNDARIES_DIR= C:/mapnik-0_5_1/osm/boundaries
DBHOST="localhost"
DBPORT="5432"
DBNAME='gis'
DBUSER=`Sym`
DBPASS=""
PREFIX="planet_osm"
Una volta sostituite queste variabili con I vostri dati, bisognerà modificare alcune cose all'interno del file generate_tiles.py:
in fondo al file al posto di:
if __name__ == "__main__":
home = os.environ['HOME']
try:
mapfile = os.environ['MAPNIK_MAP_FILE']
except KeyError:
mapfile = home + "/osm-local.xml"
try:
tile_dir = os.environ['MAPNIK_TILE_DIR']
except KeyError:
tile_dir = home + "/osm/tiles/"
bisognerà ad esempio inserire:
if __name__ == "__main__":
home = "C:/mapnik_0_6_1/osm"
mapfile = home + "/osm-template.xml"
tile_dir = home + "/tiles/"
Dopo aver fatto tutto ciò sarà possible far partire lo script generate_tiles.py
I COMMENTI SONO BEN ACCETTI PER EVENTUALI CORREZIONI ED AGGIORNAMENTI IN MERITO A QUESTO ARGOMENTO.
PER EVENTUALI DIFFICOLTA' SARO' BEN LIETO DI AIUTARVI FIN DOVE MI SARA' POSSIBILE.


