Loreto Parisi Home

Pensieri e parole di un nomade informatico

Profile

Blogger: loretoparisi
Nome: Loreto Parisi
Just an Engineer!

  • Contattami
  • Il mio profilo
  • Linkami

View Loreto Parisi's profile on LinkedIn

My status

Feeds

  • RSS 2.0
  • ATOM 0.3
  • Powered by Splinder

Visits

visitato *loading* volte

Announces

giovedì, 24 aprile 2008
Le API della Ricerca

Sebbene i motori di ricerca su Internet siano numerosi e differenziati per metodologia di ricerca e soprattutto per target (pensiamo ai motori specializzati per i blog, che cercano tra post e commenti), sono pochi quelli che mettono a disposizione API per la ricerca, e comunque in genere attraverso API keys, application IDs e identificatori del genere.
In particolare, le informazioni che viaggiano sulle rete attraverso le API, vengono ben rappresentate da codifiche quali XML e JSON (quest'ultima grazie alle applicazioni AJAX prende sempre più piede). In tal modo le applicazioni possono comunicare secondo un protocollo comune. Le interfacce di tali API sono per lo più XMLRPC, SOAP, e più recentemente REST. Tutte queste interfacce prendono spunto da architetture di tipo CORBA (Common Object Request Broker Architecture), che definiscono un modello per la comunicazione tra componenti remoti, secondo protocolli comuni e descrittori (IDL, Interface Description Language), come appunto la chiamata a procedura remota (Remote Procedure Call).
In particolare, nel caso dei motori di ricerca, i sistemi espongono semplici API XMLRPC o JSONRPC attraverso semplice HTTP GET/HTTP POST, il chè permette di invocare tali API dai più svariati linguaggi (dal JavaScript a Java, da PHP a Perl, da Flash a Ruby, ecc).
In genere, l'output è XML, e se siamo fortunati sotto forma di feed RSS/Atom, altrimenti l'xml ha un DTD (Document Type Definition), oppure ancora sono in JSON (array associati o hash).
Spesso permettono il passaggio di una callback, se chiamati da JavaScript, in modo da avere i risultati della chiamata in una funzione - del tipo foo(results), mentre librerie più sofisticate, permettono di implementare handler veri e propri (pensiamo ad esempio ad ActionScript di Flash).
Eccoci quindi catapultati nel mondo della API della Ricerca.
Iniziamo per ora con la Google AJAX Search API
L'API espone una semplice interfaccia REST e output di tipo JSON. Permette la ricerca su un numero diverso di servizi Google (Web Search, Local Search, Video Search, Blog Search, News Search, Book Search, e Image Search). Permette callback JavaScript, ed è facilmente interfacciabile da JavaScript, ActionScript (Flash), Java, Php, ecc.

Ecco un semplice esempio di chiamata alla AJAX Search API:

curl -e http://www.my-ajax-site.com \
 'http://ajax.googleapis.com/ajax/services/search/web?' \ 'v=1.0&q=Paris%20Hilton&callback=foo&context=bar'


Questa produrrà un output JSON del tipo:

{"responseData": {
 "results": [
  {
   "GsearchResultClass": "GwebSearch",
   "unescapedUrl": "http://en.wikipedia.org/wiki/Paris_Hilton",
   "url": "http://en.wikipedia.org/wiki/Paris_Hilton",
   "visibleUrl": "en.wikipedia.org",
   "cacheUrl": "http://www.google.com/search?q\u003dcache:TwrPfhd22hYJ:en.wikipedia.org",
   "title": "\u003cb\u003eParis Hilton\u003c/b\u003e - Wikipedia, the free encyclopedia",
   "titleNoFormatting": "Paris Hilton - Wikipedia, the free encyclopedia",
   "content": "\[1\] In 2006, she released her debut album..."
  },
  {
   "GsearchResultClass": "GwebSearch",
   "unescapedUrl": "http://www.imdb.com/name/nm0385296/",
   "url": "http://www.imdb.com/name/nm0385296/",
   "visibleUrl": "www.imdb.com",
   "cacheUrl": "http://www.google.com/search?q\u003dcache:1i34KkqnsooJ:www.imdb.com",
   "title": "\u003cb\u003eParis Hilton\u003c/b\u003e",
   "titleNoFormatting": "Paris Hilton",
   "content": "Self: Zoolander. Socialite \u003cb\u003eParis Hilton\u003c/b\u003e..."
  },
  ...
 ],
 "cursor": {
  "pages": [
   { "start": "0", "label": 1 },
   { "start": "4", "label": 2 },
   { "start": "8", "label": 3 },
   { "start": "12","label": 4 }
  ],
  "estimatedResultCount": "59600000",
  "currentPageIndex": 0,
  "moreResultsUrl": "http://www.google.com/search?oe\u003dutf8\u0026ie\u003dutf8..."
 }
}
, "responseDetails": null, "responseStatus": 200}

consentendo pertanto il recupero da remoto dei risultati della ricerca, e un accesso ad essi di tipo associativo (o con notazione puntata):

Supposto results l'array associativo con il precedente JSON, abbiamo:


var firstResult=results.responseData.results[0];
var firstResultUrl=firstResult.url;
var firstResultContent=firstResult.content;


e così via, in modo molto semplice dunque.

LP


Links:
Google AJAX Search API
JSON
XMLRPC
REST
JSONRPC(JABSORB)
CORBA

Postato da: loretoparisi a 00:02 | permalink | commenti | commenti (popup)
ajax, search, rest, json, google ajax search api, xmlrpc, jsonrpc

sabato, 22 marzo 2008
V2-Day 2008: Io ci sarò



Vday

Postato da: loretoparisi a 03:35 | permalink | commenti | commenti (popup)

giovedì, 06 marzo 2008
One Laptop Per Child?

Un noto produttore di notebook, sta per mettere sul mercato la nuova versione del proprio subnotebook, l'Eee PC. Un prodotto interessante, non c'è che dire. Disco fisso a stato solido (ssd), Sistema Operativo GNU Linux (no Microsoft Windows Mobile o Embedded), connessioni Wireless integrate, peso davvero contenuto e lunga durata delle batterie. Inoltre prezzo alla portata di tutti, o quasi (sui 300$).

Ma c'è qualcosa che non mi torna, qualcosa che mi fa riflettere. Vedo il subnotebook pubblicizzato con  bambini che vi giocano divertendosi. E penso. Penso che forse non era necessario questo pc, piccolo gadget per la borghesia viziata. Ne abbiamo davvero bisogno? Quale è lo scopo?

Vogliamo insegnare ai bambini ad usare il computer? Esiste il LOGO, che potrebbe essere insegnato alle Elementari. Ma non serve un altro notebook per questo.
Vogliamo investire in nuove tecnologie, che consentano di produrre hardware a basso costo? C'è chi lo fa già e per scopi ben lontani dal lucro, e ben più nobili.

La OLPC ha prodotto il proprio subnotebook. Ma l'OX non lo troverete in commercio, non lo troverete spiattellato sulle riviste di informatica o sui settimanali a fine rivista tra i gadget per fricchettoni rimbecilliti. No, non lo troverete tra i vari tablet pc, mediacenter, e amenità del genere. Non potrete acquistarlo nella folle spesa del fine settimana nel mega-maxi-store di turno. Lui sta lì dove serve, dove è necessario. Sta lì per portare un messaggio. Che a volte, si può fare (http://laptop.org/en/vision/index.shtml). Che a volte ci sono persone che fanno qualcosa di utile (http://laptop.org/en/vision/people/), per chi ne ha davvero bisogno (http://laptop.org/en/children/).
Ecco cosa.


LP


Links:
OLPC - XO
Wikipedia - Subnotebook
Wikipedia - SSD, Solid State Drive
Wikipedia - LOGO

Postato da: loretoparisi a 22:33 | permalink | commenti (3) | commenti (3) (popup)
logo, olpc, subnotebook, olpc ox

giovedì, 28 febbraio 2008
Per favore, non andate a votare

Per favore, non andate a votare.

Vday

Postato da: loretoparisi a 22:00 | permalink | commenti (6) | commenti (6) (popup)
elezioni, voto

mercoledì, 20 febbraio 2008
Dati non confutabili.

Prendo spunto da

Sistersuzie (17/02/2008) good friends
are like stars.
you don't always see them...
Leggi ancora...


per un assunto.
Fino ad ora ho acquisito i seguenti dati (per me) non confutabili:
Dato non confutabile 1. Dell'amore. L'amore logora, si logora, implica costi, l'amore implica amicizia;
Dato non confutabile 2. Dell'amicizia. L'amicizia dura, non logora, non implica costi, l'amicizia non implica l'amore.
Dato non confutabile 3.Della salute. «"Quando c'è l'amore c'è tutto!"»,«"No, chell' è a salute!"»(Massimo Troisi).

:)

Postato da: loretoparisi a 20:43 | permalink | commenti | commenti (popup)



Comments

Presence

Search

Photos

Books