Articoli con Tag ‘Internet’


Creare un RSS Reader in PHP e Javascript

Visto che siamo su un Blog (Weblog) e lo scambio di file RSS è diventato uno standard, ecco alcuni semplici estratti di codice utili per manipolare Feed-RSS.
Sappiamo tutti che i file RSS sono – alla fine – dei semplici file testuali che rispettano lo standard XML. Ne deriva che manipolarli non è poi così complesso.

La prima classe che presentiamo, in PHP, permette di “leggere” un file RSS da qualsiasi indirizzo, permettendo di elaborare il risultato e di riproporlo da qualsiasi parte.

Continua...

Come inserire Google Map nel proprio Web

Web2.0 significa anche software distribuito tramite API (Interfaccia di Programmazione di un’Applicazione). La possibilità di sfruttare funzioni e funzionalità remote altrove risulta estremamente utile in realtà come Internet. Oltre a Yahoo, con il suo ToolKit 2.0 style, anche Google – nell’ambito della geo-referenzazione – propone i suoi strumenti free, in questo caso per la manipolazione e gestione delle mappe.

Google Maps API permette di inserire Google Maps nelle proprie pagine Web tramite Javascript.

Continua...

browsershots.org: multiple browser output

Ecco la risposta alla drammatica incompatibilità con i vari browser attualmente disponibili. Browsershots.org è un servizio – gratuito per ora e open source – che fornisce un modo semplice per verificare se un sito è visualizzato allo stesso modo su varie piattaforme e vari browser.

Grazie ad una piccola server-farm casalinga, gli autori di questo utilissimo servizio mettono a disposizione gli output video delle schermate generate dal vostro Web, così da poter verificare la correttezza dell’interpretazione HTML/CSS su varie macchine e browser: Linux PLD 2.0 (Ac), Windows 2003 (Server), Windows NT 5.1 (XP), Mac OS X 10.4 (Tiger) ed altre.

browsershot-serverform

Il sito è davvero ben curato, con tanto di documentazione wiki, sorgenti, roadmap e timeline. Inoltre è possibile visualizzare gli ultimi screenshots, lo stato delle code-di-processo e lo stato della factories. Unica nota dolente, ma superabile, è il tempo richiesto per la generazione degli screen-shot, un po’ lento! Tuttavia è un grosso aiuto ai Web Developer per verificare la correttezza del loro lavoro, senza dover installare browser e/o macchine virtuali per far convivere – ad esempio – Internet Explorer 6 e 7. Sono supportati praticamente tutti i browser, da FireFox a Safari. Interessante è la possibilità di verifcare IE6 e IE7, insieme alle versioni 5.01 e 5.5.
Bravi!

Continua...

Ajax: Rich Internet Application?

Domanda: possiamo considerare le applicazioni Ajax come vere e prorie RIA (Rich Internet Application – una RIA è un’applicazione web con tutte le caratteristiche e funzionalità di una tradizionale applicazione desktop per PC)?
Secondo Ryan Stewart, no – o almeno non ora.

The role of the desktop in Rich Internet Applications by ZDNet‘s Ryan Stewart — Rich Internet Applications have helped change the face of the web. It’s more interactive, designers have been able to leave their mark and innovation in web development has soared. Rich Internet Applications helped open up the web to better experiences and now they are doing the same for desktop applications. Where do RIAs fit into the world of desktop development?

In effetti la concorrenza con altri “approcci” – per così dire – è davvero elevata. La recente esplosione del fenomeno Net TV, ad esempio, dimostra che l’unione fa la forza. In “Ajax” non è possibile visualizzare un Video, tanto per dirne una. Come non è possibile realizzare tante altre cosine. Non credo che Ajax sarà il futuro assoluto. Io vedo in Ajax più che altro un’estensione del browser e un nuovo modo per affrontare alcune dinamiche relative all’UI prima neanche prese in considerazione.

Tuttavia, se qualcuno non se ne fosse accorto, esistono ancora degli ostacoli da superare. Ad esempio:

  • Migliorare la compatibilità tra i vari browser in commercio, argomento largamento discusso su questo stesso Blog
  • Permettere una maggiore interazione tra le pagine Web e il sistema operativo “ospitante”, ad esempio un Drag & Drop dal desktop alla pagina Web
  • Standardizzazione degli scripting: JScript, Javascript (1.3, 1.7, …), VBScript
  • Accessibilità, usabilità e sicurezza, vista che stiamo sulla rete!!

Librerie, Prototype/Script.aculo.us e YUI components: il vero intoppo?

Quando uno sviluppatore crea una libreria o un frame-work per risolvere (una volta per tutte) una serie di necessità, inizia a creare un mostro. Spesso non ce ne accorgiamo ma il legame sviluppatore end-user è davvero contorto. Si inizia, ad esempio, con la creazione di una libreria Javascript in grado di creare delle semplici finestre. Basta poco e qualcun’altro crea una libreria simile che permette di creare finestre modali, ridimensionabili e con la gestione dell’ordinamento e sovrapposizione. Dopo un po’ ne arriva un’altro che implementa anche la personalizzazione grafica… e così via.

In pratica quando si ottiene qualcosa, nell’istante immediatamente successivo questo qualcosa sembra non bastare più, sembra diventare lo standard e quindi si cercano nuovi accessori per migliorarne ancora di più le performance o l’aspetto. Tutte richieste dell’end-user! E lo sviluppatore corre, quasi come un cagnolino intimidito; l’end-user ha sempre ragione!

Questa continua corsa, in un universo come quello di Internet, rischia a lunga gettata di portare più confusione che altro.

Web 3.0?

Negli ultimi tempi esperienze (beta) nell’ambito del Web2.0 sono proliferate sulla rete a ritmi impressionanti. Ognuno ha portato all’attenzione la sua applicazione Ajax-style, ognuno con le sue soluzioni embedded, appoggiandosi a librerie note, scrivendo frame-work proprietari, ecc…
Ogni esperienza aveva le sue peculiarità: qualcuna era graficamente accattivante, alcune estremamente veloci, altre estrememente personalizzabili e altre estremamente usabili.
Ma nessuno, fino ad ora, è riuscito ad unire tutto questo in un unico ambiente.

Ragionandoci attentamente risulta evidente che il motivo è nello scarso supporto fornito dal browser stesso e dall’immensa complessità del problema.

Anche se qualcuno ha assimilato il browser ad un sistema operativo, quest’ultimo detiene ancora un’enorme vantaggio. Primo fra tutti è il cosidetto Kernel. Qual’è il Kernel di Explorer o di FireFox? Entrambi, come Opera o Safari, supportano a mala pena quel linguaggio di scripting chiamato Javascript (o JScript a secondo dei casi). Mozilla, nel suo FireFox sta per rilasciare la versione di Javascript 1.7, davvero interessante. Ma Microsoft Explorer che farà? Toccherà installare un ActiveX che lo emuli, attendere il 2012 per l’uscita di IE8 o utilizzare una miriade di if per capire su che piattaforma si sta lavorando?

Non posso che essere d’accordo con Ryan Stewart. Per il momento Ajax è un tecnica di notevole aiuto in ben determinati casi, ma paragonare questa tecnica (e sottolineo tecnica non tecnologia) ad una RIA mi sembra – almeno per ora – davvero eccesivo.

Macromedia/Adobe

Interessanti, invece, sono le tecnologie (e sottolineo tecnologie e non tecniche) Flex/Flash ed Apollo, che dopo l’acquisizione di Macromedia da parte di Adobe stanno per vivere una seconda giovinezza.
Consiglio vivamente a tutti gli interessati di visionare gli Adobe Labs, dove si evince una simpatica nuova politica che ispira sicuramente più fiducia nel futuro di Script.aculo.us – senza offesa e senza nulla togliere allo sviluppatore.

Tuttavia Internet ha una caratteristica unica, quella di sorprendere, quindi non mi stupirei affatto di aver detto – a breve – una miriade di sciocchezze!

Continua...

Geni: il social albero genealogico

Geni! È proprio vero che la fantasia non ha limiti. Probabilmente Ajax ci porterà li dove nessun developer è mai giunto prima! Comunque bravi. Questo tool, free, è davvero simpatico. Permette di creare “al volo” il proprio albero genealogico, fatto salvo che abbiate tutti i dati. La registrazione è “nascosta” nel primo inserimento, ovvero voi stessi.

Si procede abbastanza spediti, tiene in cosiderazione praticamento tutto (divorsi, parenti in vita, sesso, …) ogni “persona” ha una vera e propria scheda personale, quasi da rubrica o agenda clienti. L’interfaccia princpale ha un risposta abbastanza rapida, cosa che non si può dire dell’interfaccia a schede per i singoli elementi aggiunti: ogni volta che si clicca su un TabStrip viene eseguita una richiesta Ajax davvero lenta.
A parte qualche “baghetto” quà e la, la lentezza cronica di alcune fasi, l’idea è simpatica. Da provare almeno una volta…

NOTE:
Fa uso di Prototype/Script.aculo.us e i componenti YUI (Yahoo). Forse è per questo che è molto lento.

Continua...

100 milioni di IE7 installati! Safari per Windows?

Mentre Microsoft, tramite il suo Blog su IE7, annuncia gongolante la “favolosa” cifra di 100 milioni di installazioni di IE7 nei primi giorni di gennaio 2007, circolano voci su una probabile versione di Safari (il noto anche se ormai obsoleto browser – nativo – per Mac) per Windows.
Microsoft dal canto suo è felice di constatare che IE7 è il secondo browser più utilizzato, dopo IE6.
Tutto ciò accade quando mancano ancora numerose localizzazioni di IE7, ed è quindi comprensibile l’assoluta fiducia riposta da Microsoft nel suo nuovo browser, in “vista” anche dell’uscita di Vista (scusate il giochino di parole)!
È quindi davvero necessario “portare” Safari su Windows?
Mary Jo Foley, nel suo Blog, ha provato a chiederlo agli utenti. Votate anche voi.
Per ora i risultati sono:

Evidentemente, se questi “rumors” sono autentici, iPhone , l’ultima meraviglia Apple, potrebbe essere coinvolto in qualche modo.
Certamente sul nuovo iPhone di Apple è preferibile usare FireFox o Opera, sempre che Apple lo renda possibile. Su un normale Mac, stando agli end-user, Safari da tempo perde colpi, rendendo innavigabili alcuni siti.
Possiamo tuttavia intravedere in queste speculazioni quanto la presentazione del nuovo iPhone Apple abbia scosso qualcosa.

Continua...

IE Developer Toolbar Beta 3

Microsoft ha rilasciato la Beta 3 di IE Developer Toolbar, la sua versione di FireBug, il noto Add-in per FireFox utilizzato per il debugging e controllo delle pagine Web. IE Developer Toolbar è tuttavia ancora allo stato embrionale rispetto al suo diretto conconrrente FireBug. Sono assenti molte funzionalità, come il tracking della rete ad esempio. Inoltre, almeno sulla mia macchina, è andato in crash un paio di volte…

IE developer toolbar

Comunque l’impegno va premiato e visto che siamo alla Beta 3 siamo fiduciosi di poter – a breve – ottenere uno strumento almeno paragonabile a FireBug, per ora il migliore nel suo genere.

Continua...

Cos’è la Net TV?

Una definizione esatta di NET TV è probabilmente contenuta nel suo stesso nome; semplice, chiaro, privo di ambiguità e in linea con la straordinaria evoluzione che Internet sta partando all’intera community/umanità.
La televisione è stata una rivoluzione, un potere in continua crescita dal dopo guerra ad oggi. E ora?
Dopo il fallimento del Digitale Terrestre e le confuse proposte di televisione via cavo, via satellite e via discorrendo, la comunità Web ha risolto da sola e in modo armonico la comunicazione video.
La maggiore diffusione della banda larga, l’evoluzione delle tecnologie di compressione e visualizzazione video, una crescente comunità Internet disposta a sperimentare, sono tra le principali cause della nascita di questo nuovo – recente – fenomeno che sta dilagando sul Web.

È la NET TV il futuro della televisione?

Forse addirittura qualcosa in più!
Sarebbe bello, in quanto incorpora tutta una serie di caratteristiche assenti – tutte insieme – in altri tipi di soluzioni proposte (o imposte).
Per esempio:

  • Chiunque può realizzare la sua (NET) TV, o se preferite il suo Network
  • L’offerta dei format e dei content è virtualmente illimitata
  • L’approccio è di tipo on-demand, quindi il migliore possibile
  • Possibilità di approccio al “canale” completamente nuove: ricerca, taggatura, feed-video, e chissà cos’altro
  • Scalabilità del sistema anch’essa virtualmente illimitata, cosa da non sottovalutare rispetto a tutte le altre tecnologie estremamente vincolate a satelliti, decoder, ecc…
  • Pluralità di formati: vedi alta definizione, ad esempio
  • Partecipazione attiva dello spettatore! Questo è sicuramente il punto più importante ed interessante, completamente assente nelle versioni attuali della televisione. L’utente finale diventa attivo in modi prima impensabili, non foss’altro in quanto può egli stesso essere “costrutture” del “canale”, inviando video realizzati personalmente! Una vera e straordinaria innovazione nell’espressione delle comunità

Queste sono solo alcune delle caratteristiche che si rivelano vincenti nell’universo NET TV. Ed altre sono proprio adesso in fase di creazione e mutamento. Questo è un’altro aspetto vincente della NET TV: è snella è le innovazioni e le proposte viaggiano a velocità warp rispetto ai canoni televisivi attuali!
Come sottolineano nel Blog di Tommaso Tessarolo, che si occupa da tempo anche di questo fenomeno, (vedi “Cos’è la NET TV“) «Internet sta cambiando la TV», il che dimostra come le sorti di questi media si siano da tempo ivertite.

È stata – dopo tutto – proprio la televisione il primo grande sponsor di Internet. Tutto è iniziato quando le trasmissioni televisive, come telegiornali, giochi a premi, rubriche, tutte, insomma, nessuna esclusa, hanno iniziato a lasciare i loro indirizzi e-mail e i siti Web collegati. Ecco che Internet ha iniziato a cambiare la televisione (e non il contrario come qualcuno all’epoca ha pensato), aprendo nuove prospettive con uno strumento già radicato nelle case.

Sicuramente Internet ha prodotto una crescita esponenziale dei PC all’interno delle mura domestiche. Se prima il televisore era l’elettrodomestico per eccellenza, oggi lo scettro è passato decisamente al Computer, utilizzato per comunicare, vedere e registrare la TV, fotocopiare, lavorare, scrivere, disegnare, giocare, suonare … … …

Probabilmente il PC è l’elettrodomestico – senza offesa – più versatile mai concepito dall’uomo, se pensiamo che potrebbe “fare anche il caffè” o tenere sotto controllo l’intera nostra abitazione (domotica). Già oggi è difficile pensare una vita senza Computer, figuriamoci a breve.

Sempre più spesso i telegiornali mostrano comunicati stampi prelevati dal Web. Addirittura video presenti solo sul Web (come oggi, 8 gennaio 2007, un incdente nella metropolitana di WASHINGTON trasmesso su CNN live Web e ripreso da Canale 5 – paro paro, con tanto di player…).

Insomma, cos’è la NET TV? È il futuro! È il nuovo modo di fruire un mezzo – la televisione – che ci ha accompagnato negli ultimi 50 anni. Le premesse sono ottime, grazie anche al sub-strato Internet che ha dimostrato di essere già di per sè una grande rivoluzione. La NET TV è quindi figlia di questa grande innovazione del nostro secolo e rappresenta un’ottima alternativa alla televisione corrente.

Considerando anche il cross-platform che si preannuncia all’orizzonte, dove cellulari, palmari, notebook, mini-console, PSP, iPod, ecc… sono tutte perferiche – già – pronte ad ospitare la NET TV?!
Visto quello che è accaduto con la musica, la rivoluzione di iTunes e il formato MP3, ecco scorgere all’orizzonte il nuovo evento, qualcosa che sarà ricordato nella storia della comunicazione come un grande passo in avanti, verso una più ampia e democratica (veramente) pluralità d’informazione.

Lunga vita alla NET TV, quindi, lunga vita ad Internet.

Da visitare:

Continua...

WEB 2.0: parola d’ordine beta

Il 2006 è stato l’anno di Ajax o più in particolare della cosidetta web2.0 generation. La novità più importante è stata forse l’introduzione o l’esplicitazione di una nova strategia di comunicazione nella comunità Internet. Si è palesata in modo assai efficace la tendenza a coinvolgere tutta la comunità di Internet, sviluppatori ed end-user, nella ricerca del “software” costruito a misura di utilizzatore.
La cosa interessante è che questo approccio ha iniziato a diffondersi a macchia d’olio, coinvolgendo entità considerate – a torto – al di sopra di ogni sospetto.
L’iniziativa di Adobe di costituire gli Adobe Labs è un lampante esempio dell’influenza del web2.0 su tutta la comunità Internet. La possibilità di contribuire alla definizione di un software sin dalle origini è una novità per le “grandi software house”. Non è certo una novità per il mondo Open-Source che da sempre utilizza il contrinuto della Internet community per la realizzazione di software ed esperienze Web.
Nell’open-source, tuttavia, questo tipo di approccio era più una necessità se non una caratteristica propria dell’open-source. L’open-source è per definizione un collettiva collaborazione.
Adobe non è stata l’unica, Microsoft, sempre nel 2006, ha aperto le porte del suo Blog dedicato a Internet Explorer 7. Tutti hanno contribuito all’uscita del nuovo browser Microsoft, o così – Microsoft – ci ha fatto credere.
Poter scaricare la versione beta di Adobe Phoptoshop CS 3 è un bel traguardo. Ringraziamo quindi il web2.0 per questo, non tanto per Ajax che – come sappiamo – alla fine non è innovitivo di per se, come tecnologia, al limite come approccio allo sviluppo Web.

Continua...

Javascript Object (parte I)

Se si ha bisogno di istanziare più oggetti di una classe, un metodo è quello di definire la classe tramite lo pseudo-costruttore function().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// class definition
function CmyClass(param1,param2) {
    this.myProperty = param1;
    this.myAdding = param1+param2;
    //
    this.myMethod = function(param1) {
         alert( "add: "+this.myAdding+" - Param: "+param1);
    }
}
//
var obj1 = new CmyClass(10,20);
var obj2 = new CmyClass(20,40);
//
obj1.myMethod("Hi from obj1");
//
obj2.myMethod("Hi from obj2");

Definita la classe – con tanto di parametri iniziali – posso creare n istanze del mio oggetto, personalizzandole durante la creazione con la keyword new.
Posso anche inserire una chiamata ad un metodo durante la fase di inizializzazione dell’oggetto, stando solo attento ad inserirlo per ultimo – vedi riga 14:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// class definition
function CmyClass(param1,param2) {
  this.myProperty = param1;
  this.myAdding = param1+param2;
  //
  this.myMethod = function(param1) {
     alert( "Result: "+this.myResult );
  }
  //
  this._init = function() {
    this.myResult = this.myProperty*100;
  }

  this._init();

}
//
var obj1 = new CmyClass(10,20);
var obj2 = new CmyClass(20,40);
//
obj1.myMethod("Hi from obj1");
//
obj2.myMethod("Hi from obj2");

Un modo sbagliato sarebbe – vedi riga 6:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// class definition
function CmyClass(param1,param2) {
  this.myProperty = param1;
  this.myAdding = param1+param2;

  this._init();

  //
  this.myMethod = function(param1) {
     alert( "Result: "+this.myResult );
  }
  //
  this._init = function() {
    this.myResult = this.myProperty*100;
  }


}
//
var obj1 = new CmyClass(10,20);
var obj2 = new CmyClass(20,40);
//
obj1.myMethod("Hi from obj1");
//
obj2.myMethod("Hi from obj2");

Un’altro modo per creare un oggetto al volo (on-fly) è quello di dichiarare una variabile/funzione, mono uso:

1
2
3
4
5
6
7
8
9
var myObject = {
  myProperty: 10,
 
  myMethod: function() {
    alert("Hi from "+this.myProperty);
  }
};

myObject.myMethod();

Questa tecnica è comoda quando si vuole creare una sola istranza di un oggetto, e trattarlo come tale. Questa viene spesso usata nei recenti framework Ajax, come prototype e derivati. A partire da questa, infatti, non è possibile istanziare un nuovo oggetto, in quanto la classe è andata persa.

Si può poi ricorrere all’uso di prototype per estendere una classe, anche vuota. Ad esempio:

1
2
3
4
5
6
7
8
9
10
11
12
13
function CmyClass() {}

CmyClass.prototype = {
  myProperty: 10,
 
  myMethod: function() {
    alert( "Hi from " + this.myProperty);
  }
}

var obj = new CmyClass();

obj.myMethod();

Oppure:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function CmyClass() {
  this.myOldProperty = 1000;
  }

CmyClass.prototype = {
  myProperty: 10,
 
  myMethod: function() {
    alert( "Hi from " + this.myProperty);
    alert( "Hi from " + this.myOldProperty);
  }
}

var obj = new CmyClass();

obj.myMethod();

Continua...



Stop SOPA