1948
El motor de busqueda Trogdor de PieIsGood es sencillamente impresionante. Desarrollado gracias a las herramientas BOSS (Build Your Own Search Engine) de Yahoo! ofrece unos resultados espectaculares al obtener los resultados a medida que vas introduciendo los datos, sin tener que pulsar ningún botón.
menéame
Keyboardr está pensado para ser una página con metabuscador, de cara al usuario. Su código es pesado (necesita jQuery entre otras librerías) y además no es público. Y no sé para qué, pero utiliza un cargador en PHP.
En cambio la página de búsqueda "as you type" de Pieisgood es sólo un ejemplo de lo que se puede hacer con Trogdor. Trogdor en realidad es la librería Javascript que hace la búsqueda, y está orientada a los desarrolladores "web". Código es abierto, ligero (7,5K) y sin dependencias externas. Y no requiere de ninguna acción por parte del servidor, es veloz porque todo lo hace la parte cliente.
Si alguien es reticente a usar resultados de Yahoo, no costaría demasiado adaptar Trogdor a Google, utilizando la API de búsqueda de éste.
Me la he estado mirando por dentro y sorprende lo simple y fácil de usar que es. Esta librería es una llave de oro para desarrolladores. Yo ya la he añadido a mi "saco" de recursos.
¿Donde está el truco? ¿Que sabe esa gente de mí?
Poniendo únicamente la letra 'c' me apareció la palabra 'ciberdroide'. Dudo que nadie sepa que es, pero tiene mucha relación conmigo. No lo entiendo. Parece magia.
Supongo que si se extendiese el uso de Trogdor cuando hace una búsqueda de, por ejemplo:
"chicas de grandes melones", si lo haces de forma clásica envías una petición al buscador. Si lo haces a través de Trogdor se envian 23 peticiones de búsqueda, por lo que los responsables del motor no estarán muy contentos con este script, ya que saturaría el sistema. La idea es buena, y de hecho funciona bien para búsquedas locales donde es tu propio equipo el que consume recursos, pero no creo que sea buena idea su uso masivo.
Lo digo porque el blog enlazado no contiene ABSOLUTAMENTE nada de información, es exactamente lo mismo que la descripción de la noticia
search.wikia.com/index.html
o el yacy que es peer to peer y también es democrático y respeta la intimidad:
141.52.175.50:8080/yacysearch.html?display=2&search=&Enter=Sea
como siempre váis a caer en la opción más capitalista, porque presta mejores servicios y el precio será vuestra libertad. os váis a hipotecaaaaaaaaaaaaaaar, y miren que hay más opciones, pero ni con eso. Será un motor con filtros propios, pero, el motor es de yahoo, os van a timaaaaaaaaaaaaaaaaaaar. La culpa no la tienen las empresas ni los gobiernos, vosotros váis a colaborar picando. La culpa es de todooooooooooos, por no tener una cultura tecnológica.
...y google muestra los resultados mucho más rápido.
#22 Hombre, trivial sólo es si tienes experiencia en Javascript. La brillantez de esta librería ya la he explicado antes: ya está hecha, es ligerísima y no depende de otras librerías. Se integra en un minuto, mientras que hacerlo uno mismo lleva un ratillo (que la idea es sencilla y por tanto rápida, pero si miras el código verás que la implementación no lo es tanto).
#20 No sabes de qué escribes (y de hecho no sabes escribir tampoco).
a) Trogdor se puede adaptar a cualquier buscador con API en cinco minutos.
b) Cualquier buscador es manipulable. Cualquiera. Pero sucede que precisamente los más multitudinarios son más difíciles de manipular.
En cambio los dos que has puesto, por su provisión "democrática" de información (que estaría por ver), se pueden bombardear con información interesada hasta manipular cualquier cosa que leas en ellos.
De modo que si tu idea de la libertad son los dos buscadores que has puesto, es que eres tonto.
c) Todo esto no tiene que ver con la privacidad. Aprende a distinguir entre servidores y servicios, melón.
d) Las vocales de tu teclado se atascan cosa mala. ¿Ya lo limpias, o estás demasiado preocupado por tu inexistente privacidad?
La velocidad de la búsqueda es otra cosa. Lógicamente será la velocidad del motor de búsqueda subyacente.
También se puede ver afectada la velocidad por extensiones que alteren el rendimiento de JS y Ajax en tu navegador (me viene a la mente Firebug, que es la que más se nota). Porque lo que hace Trogdor es ir añadiendo Javascript a la página.
Y si lo tienes diez horas buscando sin parar te aseguro que la página te irá a pedales. Pero es que la página es sólo un ejemplo, la noticia es la librería.
Lo he subido a mi servidor, aquí tenéis para vuestro disfrute:
www.hispashare.com/test/buscador/index.php
www.youtube.com/watch?v=7gz1DIIxmEE
Si en vez de utilizar tu servidor haces que la petición se haga directamente desde Javascript a una API de Google (como hace Trogdor), me convences. Mira el código de Trogdor, que es bastante ingenioso en este punto y va añadiendo a la página scripts de Javascript al vuelo.
www.trogdor.com
Trogdor es bastante famoso, hay referencias a el por ejemplo en un capitulo de Buffy Cazavampiros y la cancion de "Trogdor the burninator"(en su version larga) es una de las canciones secretas de Guitar Hero 2.
Aqui tienes la version 2, ahora usando el API de google. Ahora es todavia mas simple. Con el HTML y todo son sólo 36 lineas.
www.hispashare.com/test/buscador/index2.php
Como la API de google no está completamente documentada, he tenido que hacer un apaño hookeando un evento de su formulario. Por cierto, ahora la velocidad si que es notable. Los resultados son prácticamente inmediatos.
Así cualquiera, jeje. Pero la idea era no utilizar librerías externas, como Trogdor. En el primer intento lo hiciste mucho mejor.
Tampoco te lo tomes como un pique, ¿eh? Que me sabe mal que curres porque a mí Trogdor me parezca una buena implementación.
<script src="www.google.com/jsapi" type="text/javascript"></script> Lo mismo que hace Trogdor con el equivalente de yahoo.
Mas info: code.google.com/intl/es-ES/apis/ajaxsearch/documentation
De todos modos, un API no es más que un conjunto de librerías (Application Programming Interface)
Que no te sepa mal, yo me lo paso pipa con estas tonterías... y tampoco tengo nada mejor que hacer.
Lo que has hecho en tu segundo intento es CARGAR la librería enterita en tu página, con la consiguiente lentitud añadida.
Usar una API "web", en cambio, no requiere cargar la librería, sino sólo hacer llamadas al servidor de Google (vía URL y/o vía POST) para que haga él las búsquedas y te las devuelva en la respuesta.
Insisto, mira cómo llama Trogdor a Yahoo. Si incorporas algo así a tu primer ejemplo usando Google, me pillo tu ejemplo en vez del de Pieisgood.
En la segunda version (#52) no hay PHP, todo es html y javascript (mira el código de la pagina).
para ver el codigo en firefox: Control+U
en internet explorer: Alt+F4, ejecutar Firefox, Control+U
Dios, lo que me he reído al leer esto. Podrías convertir esas instrucciones en un meme mundial.
#57 Pero dime en qué estoy equivocado, hombre. Yo distingo muy bien entre una librería y la API ("application programming interface") que una librería provee.
Por si no queda clara la diferencia, Trodgor utiliza una API de Yahoo, pero sin cargar ninguna librería externa. Para mí ésa es la solución ideal, la que provee de una página más ligera y rápida de cargar.
Y si además utiliza la API sin recurrir a la parte servidor (PHP, etc.), también resulta más rápida buscando.
P.D.: Lo que estoy empezando a dudar es si Google posee una API parecida al BOSS de Yahoo. Sé positivamente que en el pasado la tenía, pero como últimamente han ido abandonando tantos proyectos...
Un API es más que hacer peticiones POST o GET, puede estar en cualquier lenguaje y operar de cualquier manera, es decir, un API es una librería que te permite interactuar fácilmente con algún tipo de servicio. Puede estar en AJAX, C, Phyton, o cualquier lenguaje.
Tu dices que el API de yahoo es mas ligero porque solo usa POST y GET... pero precisamente eso es lo mismo que hace el AJAX.
De hecho, los APIS de google y yahoo son similares, solo que el de google es más elegante ya que yahoo lo que hace es crear dinámicamente un script: d.createElement('script'); con un src también creado dinámicamente: boss.yahooapis.com/ysearch/web/v1/{query}?appid={appid}&format=jso y luego de ahí extrae los resultados... no se, me parece una forma un poco guarra de hacer las cosas... además que no es asíncrono, claro que ese es el sistema de Trogdor, podría haber hecho lo mismo y de manera más elegante usando ajax...
Ah y en el 2º ejemplo yo no uso nada de PHP, las busquedas las obtengo directamente de google. En el primer ejemplo lo hice así porque sólo era un ejemplo y nunca había usado el API de google, para el 2º ya he tenido que leerme un poco la documentacion.
El único código "buscador" que Trogdor carga en la página lo controlas tú en tu servidor, y pesa sólo 7,5Kb (2,0Kb compactado). No creo que ninguna librería de Google o Yahoo pueda competir con eso.
Y debo reiterar que Trogdor no carga NINGUNA librería externa, ni de Yahoo ni de ninguna parte. Quizá lo parece porque la URL que compone la llamada a la API se utiliza como fuente de un "script" (como bien has apuntado, y a mí me ha hecho dudar también).
Pero basta una simple comprobación para ver que no es ninguna librería lo que carga, sino justamente los datos resultantes de la llamada a la API. Carga esto en tu navegador, es una llamada a la API tal y como la hace Trogdor (simplemente busca información sobre la palabra "Linux"):
boss.yahooapis.com/ysearch/web/v1/Linux?format=jsonp&appid=C82ywM3
Como ves, no es ninguna librería lo que se carga. Sencillamente son los datos del resultado de la búsqueda en formato JSON, que es el que más rápido puede interpretar el navegador.
Si esto aún no te convence de que la URL compuesta es una llamada a una API y no una librería, el mismo resultado se puede obtener en otros formatos, como por ejemplo XML:
boss.yahooapis.com/ysearch/web/v1/Linux?format=xml&appid=C82ywM3V3
En cuanto al "script" dinámico, no es sino un truco para no tener que recurrir a ninguna llamada al servidor propio (y muy buen truco, por cierto). Se crea un Javascript dinámico y se cargan en él directamente los datos en JSON resultantes de la llamada (que son datos interpretables en Javascript, ni más ni menos).
¿Que es algo "guarro"? Hombre, eso es opinable. Hace tiempo que una página "web" no es algo estático, y el DOM está para utilizarlo. A mí me parece una solución ingeniosa, eficiente y sobretodo veloz.
Por cierto, que la llamada que hace Trogdor sí es asíncrona. Fíjate que tiene su "callback", y que recompone la página cuando Yahoo responde asíncronamente. Ajax no se limita al uso del objeto XMLHTTPRequest.
Joer... Lamento llevarte la contraria en tantos detalles, porque te has tomado interés y molestias por ahondar en el tema y enriquecerlo. Pero es que después de revisarlo por tercera vez, me reafirmo en que Trogdor es algo realmente digno de recrearse en su sencillez y eficiencia.
Por cierto, después de investigar un poco he llegado a la conclusión de que Google NO permite usar su API de búsqueda si no es cargando librerías como la que tú has utilizado. Lo más parecido que tiene a la utilidad que nos ocupa son las "Google Custom Search", pero no son ni remotamente una API sino un control de búsqueda prefabricado. Una verdadera pena y algo decepcionante por parte de Google.
es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones
Sobre si es mejor el api de google o de yahoo, me da igual, ninguno de los dos me paga. Todo este hilo comenzó porque dije que trogdor no es "el buscador mas rápido del mundo" y que fácilmente se podía hacer lo mismo de manera mas simple. Puse los ejemplos y ya está.