Archivi per Agosto, 2006

I Quotidiani italiani e Internet-Uno studio

Su Pandemia qualche giorno fa Luca Conti faceva notare che, a fronte di uno studio sui 50 giornali italiani più venduti, i siti web di tali quotidiani sono ancora al Web 0.2 più che al Web 2.0.

La feature migliore di tanti, troppi di essi pare essere la registrazione obbligatoria per poterli leggere.

Rimanendo in Europa si scopre invece che il Guardian ha appena assunto Kevin Anderson, ex BBC e blogger su Corante, come Head of Blogging and Interaction.

Si aprirà mai una posizione del genere in Italia?

Popularity: 4% [?]

Yahoo! Maps

Come vedete sono ancora qua, probabilmente alcuni di voi diranno “ma quando vai in vacanza”?
La risposta è mai!!!
Visto che ero qui, ho pensato (forse per “par condicio”) di implementare oltre alle API di Google anche quelle di Yahoo!, iniziando da un classico: le mappe.
La prima differenza che si può notare tra i due tipi di mappe è che quelle di Yahoo!, sono disponibili in diverse “versioni”:

  • Ajax
  • Flash (usando Javascript o ActionScript)
  • Flex

Le tre “versioni”, offrono pressappoco le stesse funzioni, ma solo quelle in Ajax non necessitano di installare nulla. Per questo motivo ho deciso di riportare un esempio solo di questo tipo.

Per prima cosa è necessario ottenere un application ID andando ad autenticarsi all’indirizzo http://api.search.yahoo.com/webservices/ register_application con un account Yahoo! (che potrete ottenere gratuitamente sul sito di Yahoo!) e successivamente scegliere l’application ID che preferite, purché risulti disponibile.

Come per Google, anche in questo caso sono necessarie pochissime righe di codice per aggiungere Yahoo Maps al vostro sito:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Aggiungere Yahoo! Maps ad una pagina web</title>

<!-- Sostituendo "INSERISCI_L'APPLICATION_ID" con il vostro application ID, lo sript importerà nella pagina tutto il codice Javascript necessario per gestire le mappe //-->
<script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid= INSERISCI_L'APPLICATION_ID "></script>

<!-- Definisce la struttura della pagina dove verrà messa la mappa di dimensioni 600x450 px //-->
<style type="text/css">

#strutturaMaps {
width: 600px;
height: 450px;
top: 20px;
left: 300px;}
</style>

</head>

<body>
<div id="strutturaMaps"></div>

<script type="text/javascript">

// Crea un'oggetto alle coordinate di latitudine 45.068150 e longitudine 7.688050 (Torino)
var centro = new YGeoPoint(45.068150,7.688050);

// Definisce l'oggetto map che caricherà una mappa nell'elemento della pagina definito come "strutturaMaps"
var map = new YMap(document.getElementById('strutturaMaps'));

// Aggiunge una barra di controllo che permette tre tipi di
// visualizzazione: mappa, setellite e ibrida
map.addTypeControl();

// Aggiunge una barra di controllo per lo zoom
map.addZoomLong();

// Imposta il tipo di mappa come ibrida
map.setMapType(YAHOO_MAP_HYB);

// Mostra la mappa centrata alla latitudine e longitudine del punto "centro" con uno zoom di 1
map.drawZoomAndCenter(centro, 1);

</script>

</body>

Inserendo al posto di “INSERISCI_L’APPLICATION_ID” il vostro ID, potrete ottenere una mappa come questa.

Popularity: 8% [?]

Aggregatore di feed con Google Gadgets

Anche se la maggior parte delle persone ormai sono al mare o in montagna a divertirsi, noi teniamo duro e continuiamo a lavorare alacremente fino all’ultimo.
“Ronzando” un pò qua e la tra i vari siti legati a Google ho trovato delle “API” che potrebbero essere molto interessanti: quelle di Gooogle Gadgets.
Chi segue il nostro Blog ormai saprà benissimo che queste Application Program Interfaces permettono di integrare su un sito delle vere e proprie applicazioni che nel caso specifico di Google Gadgets, consistono nel creare dei Gadgets personalizzati che chiunque può inserire nella propria pagina personale di Google. Per farlo è sufficiente selezionare “Aggiungi contenuto” e successivamente “Aggiungi da URL” dalla homepage personale di Google ed inserire l’indirizzo del file XML che conterrà il nostro Gadget.

Tra le varie funzioni disponibili in queste API, mi hanno particolarmente colpito quelle che permettevano di leggere dei file XML. Così ho pensato di realizzare un Gadget che permettesse a coloro che possiedono più Feed RSS di integrarli in un unico oggetto, dando inoltre la possibilità di indicare quanti items visualizzare per Feed.
Ecco le righe di codice necessarie con tutti i commenti:

<?xml version="1.0" encoding="UTF-8" ?>
<Module>

<ModulePrefs title="Esempio di aggregatore di feed RSS" author="Gabriele Rocca" title_url="http://etech.top-ix.org/" height="200" scrolling="true" />
<Content type="html">
<![CDATA[
<!--Parte di HTML//-->
<div id="content__MODULE_ID__"></div>
<!--Script che costruisce il Gadget//-->
<script type="text/javascript">

function repeater()
{
_IG_FetchXmlContent(rssUrl,
function parser(response)
{// effettua un controllo verificando che il feed esista
if (response == null || typeof(response) != "object" || response.firstChild == null)
{
document.write("Feed non trovato");
return;
}
// Cerca in channel il titolo del feed
var itemChannel=response.getElementsByTagName("channel");
var nodeChannel=itemChannel.item(0).childNodes;
for (var j = 0; j < nodeChannel.length ; j++) {
var nodeTitle=nodeChannel.item(j);
if (nodeTitle.nodeName == "title") {
var tit=nodeTitle.firstChild.nodeValue;
}
}
// aggiunge il titolo del feed impostandone lo stile
html += "<div style='text-align:center; font-size: 120%; font-weight: 700;'>" + tit + "</div><br>"
// ottiene gli elementi items
var itemList = response.getElementsByTagName("item");
// se il numero di items e' inferiore a quelli
// che vogliamo visualizzare mostra solo quelli esistenti
if(itemList.length < numItem)
{numItem=itemList.length;}

for (var i = 0; i < numItem ; i++)
{
//per ogni item estrapolo i figli
var nodeList = itemList.item(i).childNodes;
//ogni figlio contiene a sua volta un insieme di tag
for (var j = 0; j < nodeList.length ; j++)
{
var node = nodeList.item(j);
if (node.nodeName == "title")
{var titolo=node.firstChild.nodeValue;}
if (node.nodeName == "description")
{var descr=node.firstChild.nodeValue;}
if (node.nodeName == "link")
{var collegam=node.firstChild.nodeValue;}
}

// variabili per rappresentare il target e gli apici
var blank="_blank";
var ap='"';
// aggiunge alla variabile che sara' stampata i vari items
html += "<a href="+ap+collegam+ap+" target="+ap+blank+ap+"> "+titolo+"</a><br>";
}

// verifica se il feed analizzato e' l'ultimo
if (indRss == (rssList.length-1))
{// se e' l'ultimo chiude il div e stampa i feed
html += "</div>";
_gel('content__MODULE_ID__').innerHTML = html;
}
else
{// incrementa l'indice del feed e richiama la funzione repeater()
indRss=indRss+1;
rssUrl=rssList[indRss];
html += "<br>";
repeater();
}
}// chiude "function parser()"
);
}// chiude "function repeater()"

// Impostazioni Utente
var prefs=new _IG_Prefs(__MODULE_ID__);
// definisce il numero di feed
var nMaxRss=2;
// dimensiona l'array di feed
var rssList=new Array(nMaxRss);
// inserire i feed!
rssList[0]="inserisci-Url-feed";
rssList[1]="inserisci-Url-feed";
// specifico il numero di items che voglio vedere per ogni feed
var numItem=10;
// definisco lo stile del gadget
var html="<div style='padding:5px;background-color: #ccf;font-family:Arial,Helvetica;text-align:left;font-size:90%'><br>";
// azzero l'indice dei feed e passo la prima url
var indRss=0;
var rssUrl=rssList[indRss];
// chiamo la funzione repeater() che fa il parser di tutti i feed
repeater();

</script>
]]>
</Content>
</Module>

Se volete provare ad integrare questo Gadget nella vostra home page usate l’URL: http://etech.top-ix.org/etech/aggregatore_feed.xml

Popularity: 15% [?]

Inserire icone personalizzate assegnandole ad un marker

Su google Map è possibile assegnare una propria icona ad un marker!

Per prima cosa bisogna procurarsi delle icone da caricare sul proprio sito web.
Una volta caricata l’icona nella directory del sito bisogna inserire nella funzione che crea il marker le seguenti righe di codice:

	// definisco un array chiamato icons.
	var icons = [];

	// assegna alla variabile icons["topix"] tramite
	// la funzione GIcon l'immagine "miaicona.png"
	//(che è presente nella stessa directory del sorgente).
	icons["topix"] = new GIcon(G_DEFAULT_ICON, "miaicona.png");

	// invio alla funzione che crea il Marker come secondo
	// valore la variabile dell'icona
	var marker = new GMarker(point,icons["topix"]);

Popularity: 26% [?]