{"id":94197,"date":"2008-06-09T15:09:00","date_gmt":"2008-06-09T15:09:00","guid":{"rendered":"http:\/\/weblogs.madrimasd.org\/\/bioinformatica\/archive\/2008\/06\/09\/94197.aspx"},"modified":"2008-06-09T15:09:00","modified_gmt":"2008-06-09T15:09:00","slug":"widgets-widgets-%c2%a1mas-widgets","status":"publish","type":"post","link":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/2008\/06\/09\/94197","title":{"rendered":"Widgets, widgets \u00a1m\u00e1s widgets!"},"content":{"rendered":"<p>Recordando la frase de \u00ab<a href=\"http:\/\/en.wikipedia.org\/wiki\/Johnny_5\">Johnny 5<\/a>\u00bb en la vieja pel\u00edcula \u00ab<a href=\"http:\/\/en.wikipedia.org\/wiki\/Short_Circuit_2\">Cortocirtuito 2<\/a>\u00bb &#8216;<b>Datos, Datos, \u00a1M\u00e1s Datos!<\/b>&#8216; he creado el t\u00edtulo de esta entrada. Los <a href=\"http:\/\/es.wikipedia.org\/wiki\/Widget\"><i>widgets<\/i><\/a> son peque\u00f1os trozos de c\u00f3digo que proporcionan funcionalidades sencillas, pero necesarias (calculadoras, informaci\u00f3n meteorol\u00f3gica, vuelos disponibles, etc&#8230;), integradas en alg\u00fan tipo de entorno (escritorios, tel\u00e9fonos m\u00f3viles, navegadores, etc&#8230;). Por ejemplo ya hay un <a href=\"http:\/\/www.w3.org\/TR\/widgets\/\">intento de estandarizaci\u00f3n de los widgets por parte de la W3C<\/a>, <a href=\"http:\/\/www.google.com\/\">Google<\/a> tiene su propio sistema de <i>gadgets<\/i> para su <a href=\"http:\/\/www.google.com\/ig\"><i>i<\/i>Google<\/a>, <a href=\"http:\/\/www.yahoo.com\/\">Yahoo!<\/a> provee <a href=\"http:\/\/widgets.yahoo.com\/\">su propio sistema de widgets (con programas para poder lanzarlos en diversas plataformas)<\/a>, el navegador <a href=\"http:\/\/widgets.opera.com\/\">Opera lleva bastante tiempo con esa tecnolog\u00eda<\/a>, sistemas como <a href=\"http:\/\/www.apple.com\/downloads\/dashboard\/\">Mac OS X (<i>dashboard<\/i>)<\/a>, <a href=\"http:\/\/www.microsoft.com\/windows\/products\/windowsvista\/features\/details\/sidebargadgets.mspx\">Windows Vista (<i>gadgets<\/i>)<\/a> o <a href=\"http:\/\/plasma.kde.org\/\">KDE4 (<i>Plasma<\/i>)<\/a> los integran en el escritorio, y sistemas como <a href=\"http:\/\/www.widgetgallery.com\/\">Konfabulator<\/a> o <a href=\"http:\/\/netdragon.sourceforge.net\/\">Superkaramba<\/a> los popularizaron.<\/p>\n<p><A href=\"http:\/\/weblogs.madrimasd.org\/bioinformatica\/archive\/2006\/02\/01\/12798.aspx\">Uno de los primeros mensajes que sub\u00ed a este blog<\/a> fue el de <a href=\"http:\/\/homepage.mac.com\/eludens\/proyectos\/htmls\/proteinglimpseen.html\">ProteinGlimpse<\/a> un <i>widget<\/i> hecho por un antiguo alumno, y ahora compa\u00f1ero de trabajo y amigo, Jaime Fern\u00e1ndez. Pues bien, <a href=\"http:\/\/homepage.mac.com\/eludens\/proyectos\/htmls\/proteinglimpseen.html\">este widget como tal ha llegado a la versi\u00f3n 1.5<\/a>, y pronto <a href=\"http:\/\/www.osnews.com\/story\/13141\">ser\u00e1 usable en Linux gracias a las mejoras de KDE 4.1<\/a>. Tanto \u00e9l como yo y vari@s de mis compa\u00f1er@s estamos involucrados en el desarrollo del sistema <a href=\"http:\/\/cargo.bioinfo.cnio.es\/\">CARGO<\/a> (<a href=\"http:\/\/www.ncbi.nlm.nih.gov\/sites\/entrez?cmd=retrieve&amp;db=pubmed&amp;list_uids=17483515&amp;dopt=Abstract\">enlace a la publicaci\u00f3n<\/a>), que intenta desarrollar el concepto de <i>widget<\/i> en el \u00e1mbito bioinform\u00e1tico.<br \/><!--more--><\/p>\n<div align=\"center\"><a href=\"http:\/\/cargo.bioinfo.cnio.es\/\"><img decoding=\"async\" src=\"http:\/\/cargo.bioinfo.cnio.es\/img\/new_cargo.gif\"><\/a><\/div>\n<p>Uno de ellos, Jos\u00e9 Manuel Rodr\u00edguez, estuvo investigando c\u00f3mo poder integrar los <i>widgets<\/i> de CARGO en <i>i<\/i>Google, y tras perseguirlo un poco he conseguido que escriba la siguiente documentaci\u00f3n de c\u00f3mo hacer un <i>i<\/i>Google <i>gadget<\/i>:<\/p>\n<blockquote>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">Se ha creado para<a href=\"http:\/\/cargo.bioinfo.cnio.es\/\">Cargo<\/a> un iGoogle Gadget para poder as\u00ed tener la funcionalidadde esta aplicaci\u00f3n web en varios sitios. La vista inicial deCargo como un iGoogle Gadget es la siguiente:<\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\" align=\"center\"><font color=\"#a52a2a\"><img decoding=\"async\" src=\"\/blogs\/bioinformatica\/wp-content\/blogs.dir\/41\/files\/167\/o_API-Google_html_fffb32f.png\" name=\"graphics1\" width=\"300\"><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">La API de GoogleGadgets es un m\u00e9todo simple para crear peque\u00f1asaplicaciones que se ejecuten en varios sitios web, incluido la <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/ig?source=hapi\">P\u00e1ginade iGoogle<\/a><\/u>, <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/desktop.google.com\/\">GoogleDesktop<\/a><\/u>, <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/pages.google.com\/\">GooglePage Creator<\/a><\/u> y miles de sitios de Internet queutilizan <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/ig\/directory?synd=open&amp;source=gapi\">GoogleGadgets<\/a><\/u> para tu p\u00e1gina web. Google Gadgetsllega a decenas de millones de usuarios cada semana; mejor a\u00fan,Google proporciona alojamiento gratuito, ancho de banda gratuito y unm\u00e9todo f\u00e1cil para enviar tus gadgets al directoriooficial, desde donde podr\u00e1n acceder a ellos usuarios de todoel mundo.<\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">Los gadgets sonf\u00e1ciles de crear. La <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/intl\/es\/apis\/gadgets\/docs-home.html\">Gu\u00edapara programadores<\/a><\/u> te explica c\u00f3mo utilizar laAPI de Google Gadgets y c\u00f3mo crear un gadget. En un nivelb\u00e1sico, un gadget es s\u00f3lo un archivo XML que recogecontenidos o aplicaciones web ya existentes. Por ejmplo:<\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\"><font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;?xmlversion=\u00bb1.0&#8243; encoding=\u00bbUTF-8&#8243; ?&gt; <\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\"><font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;Module&gt;<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\">  <font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;ModulePrefstitle=\u00bbhello world example\u00bb \/&gt; <\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\">  <font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;Contenttype=\u00bbhtml\u00bb&gt;<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\">     <font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;![CDATA[<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\">       <font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">Hello,world!<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\">     <font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">]&gt;<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\">  <font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;\/Content&gt;<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0cm;\"><font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;\/Module&gt;<\/font><\/font><\/p>\n<blockquote>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">Hello, world!<br \/><\/font><\/p>\n<\/blockquote>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">Una de las primerasdecisiones que se deben tomar a la hora de crear un gadget es el tipode contenido (vea los <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/intl\/es\/apis\/gadgets\/fundamentals.html\">Principiosde programaci\u00f3n<\/a><\/u>).<\/font><\/p>\n<\/blockquote>\n<blockquote>\n<table border=\"1\" bordercolor=\"#000000\" cellpadding=\"7\" cellspacing=\"0\" height=\"389\" width=\"383\">\n<col width=\"134\">\n<tbody>\n<tr valign=\"top\">\n<td height=\"16\" width=\"134\">\n<p class=\"western\" align=\"center\"><font color=\"#a52a2a\">Tipo de contenido<\/font><\/p>\n<\/td>\n<td width=\"420\">\n<p class=\"western\" align=\"center\"><font color=\"#a52a2a\">Descripci\u00f3n<\/font><\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\">\n<td height=\"110\" width=\"134\">\n<p class=\"western\"><font color=\"#a52a2a\">html<\/font><\/p>\n<\/td>\n<td width=\"420\">\n<p class=\"western\"><font color=\"#a52a2a\">Con un tipo de contenido html, todo el\t\t\tcontenido reside en la especificaci\u00f3n del gadget. Un gadget\t\t\tque incluya type=\u00bbhtml\u00bb contiene c\u00f3digo HTML,\t\t\tposiblemente con JavaScript, Flash, ActiveX u otros objetos del\t\t\tnavegador incrustados. Este es el tipo de contenido\t\t\tpredeterminado.<\/font><\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\">\n<td height=\"17\" width=\"134\">\n<p class=\"western\"><font color=\"#a52a2a\">html-inline<\/font><\/p>\n<\/td>\n<td width=\"420\">\n<p class=\"western\"><font color=\"#a52a2a\">El c\u00f3digo HTML del gadget se ejecuta\t\t\tcomo parte de la p\u00e1gina principal en lugar de hacerlo en un\t\t\tiframe. De esta manera, el gadget podr\u00e1 modificar la p\u00e1gina\t\t\tprincipal, por ejemplo, para cambiar el color de la fuente.<\/font><\/p>\n<\/td>\n<\/tr>\n<tr valign=\"top\">\n<td height=\"15\" width=\"134\">\n<p class=\"western\"><font color=\"#a52a2a\">url<\/font><\/p>\n<\/td>\n<td width=\"420\">\n<p class=\"western\"><font color=\"#a52a2a\">Aqu\u00ed el contenido del gadget se aloja en\t\t\tuna p\u00e1gina web remota a la que hace referencia una URL en\t\t\tla especificaci\u00f3n del gadget. La p\u00e1gina web remota\t\t\tes el lugar donde reside todo el lenguaje de marcas HTML y\t\t\tJavaScript. NO se puede insertar ning\u00fan c\u00f3digo de\t\t\tlenguaje de marcas HTML ni JavaScript en la especificaci\u00f3n\t\t\tdel gadget propiamente dicha.<\/font><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">El iGoogle Gadget deCargo se trata de un tipo \u201curl\u201d, con lo que laadministraci\u00f3n y mantenimiento del Gadget depende totalmentedel servidor remoto.<\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">La descripci\u00f3ndel iGoogle Gadget de Cargo se muestra a continuaci\u00f3n. <\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;Module&gt;<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-left: 1.27cm; margin-bottom: 0.35cm;\"><font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;ModulePrefs title=\u00bbCargo\u00bbtitle_url=\u00bbhttp:\/\/cargo2.bioinfo.cnio.es\u00bbdirectory_title=\u00bbCancer and Related Gene Online\u00bbdescription=\u00bbCARGO displays biological information fromdifferent sources. We are thankful to the developers and Institutionsfor providing freely available services.\u00bbthumbnail=\u00bbhttp:\/\/cargo2.bioinfo.cnio.es\/iGoogleGadget\/cargo.png\u00bbwidth=\u00bb365&#8243; height=\u00bb400&#8243; author=\u00bbJose ManuelRodriguez Carrasco\u00bb author_email=\u00bbjmrodriguez@cnio.es\u00bbauthor_location=\u00bbMadrid, Spain\u00bb\/&gt;<\/font><\/font><\/p>\n<p class=\"western\" style=\"text-indent: 1.27cm; margin-bottom: 0.35cm;\"><font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;Content type=\u00bburl\u00bbref=\u00bbhttp:\/\/cargo2.bioinfo.cnio.es\/iGoogleGadget\/cargo.html\u00bb\/&gt;<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\" face=\"Courier\"><font size=\"2\">&lt;\/Module&gt;<\/font><\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">Aqu\u00ed sedetalla diferentes campos de informaci\u00f3n c\u00f3mo el nombredel Gadget, una decripci\u00f3n, el tipo de contenido, etc. C\u00f3mose ha dicho, el tipo de contenido de Cargo se trata de una URL.<\/font><\/p>\n<p class=\"western\" style=\"margin-bottom: 0.35cm;\"><font color=\"#a52a2a\">A continuaci\u00f3nse describen los pasos b\u00e1sicos que debes seguir para crear einstalar un gadget:<\/font><\/p>\n<ol>\n<li><font color=\"#a52a2a\">Usa un editorde textos para escribir la especificaci\u00f3n del gadget ygu\u00e1rdala en un servidor p\u00fablico. Si no tienes acceso aun servidor p\u00fablico, puedes usar una de las <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/intl\/es\/apis\/gadgets\/basic.html#Hosting\">alternativas<\/a><\/u>disponibles.<\/font><\/li>\n<li><font color=\"#a52a2a\">Ve a<\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/ig\">http:\/\/www.google.com\/ig<\/a><\/u>.Si a\u00fan no dispones de una p\u00e1gina de iGoogle, debescrear una como se describe en <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/intl\/es\/apis\/gadgets\/gs.html#Hello_World\">APIde Google Gadgets: introducci\u00f3n<\/a><\/u>.<\/font><\/li>\n<li><font color=\"#a52a2a\">Haz clic en<b>A\u00f1adir elementos<\/b>. Esto te llevar\u00e1 <\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/ig\/directory\">aldirectorio de contenido<\/a><\/u>. Puedes usar dicho directoriopara buscar gadgets y a\u00f1adirlos a tu p\u00e1gina principal.<\/font><\/li>\n<li><font color=\"#a52a2a\">Haz clic en elv\u00ednculo <b>A\u00f1adir por URL<\/b>, junto al bot\u00f3n\u00bbBuscar contenido en la p\u00e1gina principal\u00bb.<\/font><\/li>\n<li><font color=\"#a52a2a\">En el cuadrode texto <b>A\u00f1adir por URL<\/b>, escribe la URL de laespecificaci\u00f3n de gadget XML que deseas a\u00f1adir y hazclic en A\u00f1adir. Para averiguar cu\u00e1l es la URL, esposible que necesites ayuda del webmaster. Tambi\u00e9n puedes usar<\/font><font color=\"#a52a2a\"><u><a href=\"http:\/\/www.google.com\/intl\/es\/apis\/gadgets\/basic.html#DevModStart\">elgadget del programador<\/a><\/u> para a\u00f1adir gadgets a tup\u00e1gina de iGoogle.<\/font><\/li>\n<\/ol>\n<\/blockquote>\n<p>Espero que os sirva esta introducci\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recordando la frase de \u00abJohnny 5\u00bb en la vieja pel\u00edcula \u00abCortocirtuito 2\u00bb &#8216;Datos, Datos, \u00a1M\u00e1s Datos!&#8216; he creado el t\u00edtulo de esta entrada. Los widgets son peque\u00f1os trozos de c\u00f3digo que proporcionan funcionalidades sencillas, pero necesarias (calculadoras, informaci\u00f3n meteorol\u00f3gica, vuelos disponibles, etc&#8230;), integradas en alg\u00fan tipo de entorno (escritorios, tel\u00e9fonos m\u00f3viles, navegadores, etc&#8230;). Por ejemplo ya hay un intento de estandarizaci\u00f3n de los widgets por parte de la W3C, Google tiene su propio sistema de gadgets para su iGoogle, Yahoo! provee su propio sistema de widgets (con programas para poder lanzarlos en diversas plataformas), el navegador Opera lleva bastante tiempo\u2026<\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0},"categories":[187,189],"tags":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":4}},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/posts\/94197"}],"collection":[{"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/comments?post=94197"}],"version-history":[{"count":0,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/posts\/94197\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/media?parent=94197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/categories?post=94197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.madrimasd.org\/blogs\/bioinformatica\/wp-json\/wp\/v2\/tags?post=94197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}