<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DEIFQ3c6eCp7ImA9WhRaFEw.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497</id><updated>2012-02-16T19:21:52.910+01:00</updated><category term="copyscape copia contenidos google" /><category term="artículo" /><category term="podcast" /><category term="javascript" /><category term="web" /><category term="mudanza" /><category term="apache php fallo" /><category term="mundo" /><category term="tagcloud" /><category term="mejor" /><category term="business intelligence" /><category term="monos" /><category term="derechos fundamentales" /><category term="diógenes" /><category term="redes neuronales neural networks" /><category term="raytracing" /><category term="nuve de tags" /><category term="internet" /><category term="gráficos" /><category term="streetview" /><category term="ciberéntico" /><category term="inteligencia" /><category term="scalable" /><category term="herencia" /><category term="vector" /><category term="offblog" /><category term="teorema" /><category term="frase desarrollo" /><category term="select" /><category term="stephen king" /><category term="productividad" /><category term="google maps" /><category term="frase turing" /><category term="ajax" /><category term="svg jquery raphaeljs javascript svg vml" /><category term="graphics" /><category term="selectedIndex" /><category term="jsp" /><category term="programacion" /><category term="empresa" /><category term="vectoriales" /><category term="síndrome" /><category term="fase" /><category term="wordpress" /><category term="numeros primos" /><category term="dwr" /><category term="comet" /><category term="historia" /><category term="jquery" /><category term="programación web consejos" /><category term="paralelismo" /><category term="dojo" /><category term="angel arens" /><category term="it crowd" /><category term="programación" /><category term="svg" /><category term="wp-cumulus" /><category term="firefox firebug fireunit javascript" /><category term="infinitos" /><category term="frase wozniak" /><category term="jdk7 jdk70 cambios explicados" /><category term="anuncio" /><category term="blogspot wordpress blogs" /><category term="manifiesto" /><category term="flash ubuntu problema" /><category term="codificación utf-8" /><category term="inteligencia empresarial" /><category term="prototype" /><category term="json" /><title>¿Ha probado con reiniciar?</title><subtitle type="html">Artículos, vivencias, programación, nuevas tecnologías... de todo vamos :D</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>33</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/haProbadoConReiniciar" /><feedburner:info uri="haprobadoconreiniciar" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CE4HRHcycCp7ImA9WxBWEU8.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-29577056244115026</id><published>2010-02-02T16:00:00.003+01:00</published><updated>2010-02-02T16:02:15.998+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-02T16:02:15.998+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mudanza" /><title>Me mudo!</title><content type="html">Bueno gente, ha sido un placer intentar escribir en este y mi otro blog  sobre mis inquietudes y temas personales, pero ha llegado la hora de tener un dominio propio,  no sé que haré con este, por cuestiones de posicionamiento debería  eliminarlo (por lo del contenido duplicado y tal), pero me da lástima y  tengo miedo de que se fastidie el otro y pierda los posts que tengo escritos (no son muchos, pero son mios :D), lo que sí os pido a  quienes me leais que ahora estaré en &lt;a href="http://iquark.org/"&gt;http://iquark.org&lt;/a&gt;.&lt;br /&gt;Quiero separar ambos blogs teniendo una parte para lo personal, como el de &lt;a href="http://estovaadoler.blogspot.com"&gt;esto va a doler&lt;/a&gt; y para lo referente a informática y tecnología, como este, a ver si me aclaro con el wordpress...&lt;br /&gt;&lt;br /&gt;Un besazo.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-29577056244115026?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RDtS15oR7e0R4jXCdIDYgOHbP1E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RDtS15oR7e0R4jXCdIDYgOHbP1E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RDtS15oR7e0R4jXCdIDYgOHbP1E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RDtS15oR7e0R4jXCdIDYgOHbP1E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/5XyXzCKUeMw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/29577056244115026/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2010/02/me-mudo.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/29577056244115026?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/29577056244115026?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/5XyXzCKUeMw/me-mudo.html" title="Me mudo!" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2010/02/me-mudo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UCRn85eSp7ImA9WxBXFkQ.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-8778374507855455852</id><published>2010-01-28T17:00:00.003+01:00</published><updated>2010-01-28T17:14:27.121+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-28T17:14:27.121+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="apache php fallo" /><title>Apache 2.2 falla al configurar php</title><content type="html">He instalado &lt;a href="http://httpd.apache.org/"&gt;Apache 2.2.x&lt;/a&gt;, el servidor http de esta compañía, y posteriormente &lt;a href="http://www.php.net/downloads.php#v5"&gt;php 5.2.x&lt;/a&gt; con una serie de extensiones, el caso es que el servidor no me arrancaba, me daba fallo, en el log de &lt;span style="font-weight: bold;"&gt;error.log&lt;/span&gt; &lt;blockquote&gt;[Thu Jan 28 14:11:35 2010] [crit] (OS 6)Controlador no válido.  : master_main: create child process failed. Exiting.&lt;br /&gt;&lt;/blockquote&gt;y cosas así, tras un rato buscando por la web he visto que el problema era que había puesto extensiones que no debía, tales como la de soporte de Oracle o Postgre, no teniendo instaladas estos sistemas.  Vamos un típico caso de &lt;span style="font-style: italic;"&gt;¿quiere instalar esto? Po fale..&lt;/span&gt;.&lt;br /&gt;Pues eso, si a alguien le da error Apache cuando instala php puede ser por las extensiones, para solucionar tal entuerto no hay mas que editar el &lt;strong&gt;php.init&lt;/strong&gt; e ir a las últimas líneas y comentar con el carácter punto y coma o semicolon para los angloparlantes (;):&lt;br /&gt;&lt;blockquote&gt;[PHP_OCI8]&lt;br /&gt;;extension=php_oci8.dll&lt;br /&gt;[PHP_PGSQL]&lt;br /&gt;;extension=php_pgsql.dll&lt;/blockquote&gt;Ale si le sirve a alguien bueno sea...&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-8778374507855455852?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/91NmPfYo6mZSmb4m7gd45IeDwNg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/91NmPfYo6mZSmb4m7gd45IeDwNg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/91NmPfYo6mZSmb4m7gd45IeDwNg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/91NmPfYo6mZSmb4m7gd45IeDwNg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/56vdYWBZ77s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/8778374507855455852/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2010/01/apache-22-falla-al-configurar-php.html#comment-form" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/8778374507855455852?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/8778374507855455852?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/56vdYWBZ77s/apache-22-falla-al-configurar-php.html" title="Apache 2.2 falla al configurar php" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2010/01/apache-22-falla-al-configurar-php.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ANRXcycSp7ImA9WxBTFEg.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-1986927335354142935</id><published>2009-12-10T16:33:00.004+01:00</published><updated>2009-12-10T16:43:14.999+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-10T16:43:14.999+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="productividad" /><title>Blog sobre productividad</title><content type="html">Echando un vistazo en una lista de twitter que sigo he encontrado un enlace de un blog sobre productividad, concretamente un post sobre los errores que ha cometido el autor, he leído varias cosas sobre el tema (que si &lt;abbr title="Getting Thinks Done"&gt;GTD&lt;/abbr&gt;, que si &lt;abbr title="Zen To Done"&gt;ZTD&lt;/abbr&gt;... todo muy bonito) me ha gustado bastante porque habla, por encima, de los típicos errores con los que mas de uno se ha encontrado, sé que ha escrito un libro sobre el tema (un libro por el que no niego haberme interesado), no avanzo nada, aquí os pongo los enlaces:&lt;br /&gt;El post que he leído: &lt;a href="http://thinkwasabi.com/2009/12/mis-errores-productividad/"&gt;Mis errores en el mundo de la Productividad&lt;/a&gt;&lt;br /&gt;La lista de posts sobre el tema:  &lt;a href="http://thinkwasabi.com/productividad/"&gt;ThinkWasabi::Productividad&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-1986927335354142935?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0LI05UwOMHXxY96ZbCQYpNpVqmQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0LI05UwOMHXxY96ZbCQYpNpVqmQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0LI05UwOMHXxY96ZbCQYpNpVqmQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0LI05UwOMHXxY96ZbCQYpNpVqmQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/AlMb3r1blns" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/1986927335354142935/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/12/blog-sobre-productividad.html#comment-form" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1986927335354142935?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1986927335354142935?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/AlMb3r1blns/blog-sobre-productividad.html" title="Blog sobre productividad" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/12/blog-sobre-productividad.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MNRnwycCp7ImA9WxNaGU8.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-8443862404479020998</id><published>2009-12-04T11:04:00.001+01:00</published><updated>2009-12-04T11:11:37.298+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-04T11:11:37.298+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="derechos fundamentales" /><category scheme="http://www.blogger.com/atom/ns#" term="manifiesto" /><category scheme="http://www.blogger.com/atom/ns#" term="internet" /><title>Manifiesto “En defensa de los derechos fundamentales en internet”</title><content type="html">Ante la inclusión en el &lt;strong&gt;Anteproyecto de Ley de Economía sostenible&lt;/strong&gt; de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que:  &lt;ol&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos&lt;/strong&gt;, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial&lt;/strong&gt;. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español&lt;/strong&gt;, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural&lt;/strong&gt;. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones&lt;/strong&gt;. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas&lt;/strong&gt;, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas&lt;/strong&gt; por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exigimos que el Gobierno garantice por ley la neutralidad de la Red&lt;/strong&gt;, en España ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin&lt;/strong&gt;: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público&lt;/strong&gt; y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p&gt;&lt;em&gt;Este manifiesto, elaborado de forma conjunta por varios autores, es de todos y de ninguno. Se ha publicado en multitud de sitios web. Si está de acuerdo y quiere sumarse a él, difúndalo por Internet.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Enlaces en Facebook:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.facebook.com/#/group.php?gid=186879394498"&gt;Grupo en Facebook&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.facebook.com/#/event.php?eid=188699126609&amp;amp;ref=mf"&gt;Concentración en Alicante&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-8443862404479020998?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/V3YqnqUdlu5XC7jKruPtus2u_Y8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V3YqnqUdlu5XC7jKruPtus2u_Y8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/V3YqnqUdlu5XC7jKruPtus2u_Y8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V3YqnqUdlu5XC7jKruPtus2u_Y8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/x9KyxmUU01c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/8443862404479020998/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/12/manifiesto-en-defensa-de-los-derechos.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/8443862404479020998?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/8443862404479020998?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/x9KyxmUU01c/manifiesto-en-defensa-de-los-derechos.html" title="Manifiesto “En defensa de los derechos fundamentales en internet”" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/12/manifiesto-en-defensa-de-los-derechos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4EQ3s7eCp7ImA9WxNaFUs.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-6705034111065069639</id><published>2009-11-30T08:53:00.002+01:00</published><updated>2009-11-30T08:58:22.500+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-30T08:58:22.500+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="copyscape copia contenidos google" /><title>Copyscape: quien copia tus contenidos</title><content type="html">Deambulando por la web esta fría mañana de finales de Noviembre, me he topado con una aplicación web llamada &lt;a href="http://www.copyscape.com/"&gt;Copyscape&lt;/a&gt; cuya función es la de, tras introducir una dirección web, buscar en los índices de Google quién podría estar copiando tus contenidos, es interesante para el tema del posicionamiento que no se dupliquen, así que con esto te puedes ahorrar tiempo buscando tú a mano a base de búsquedas a lo bruto. &lt;br /&gt;Da algún falso positivo que otro, pero vale la pena probarlo :D.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-6705034111065069639?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/y1gYJLT47oRNNscW34laRqcrZd8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y1gYJLT47oRNNscW34laRqcrZd8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/y1gYJLT47oRNNscW34laRqcrZd8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y1gYJLT47oRNNscW34laRqcrZd8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/uKkfMHMpHEw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/6705034111065069639/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/11/copyscape-quien-copia-tus-contenidos.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/6705034111065069639?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/6705034111065069639?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/uKkfMHMpHEw/copyscape-quien-copia-tus-contenidos.html" title="Copyscape: quien copia tus contenidos" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/11/copyscape-quien-copia-tus-contenidos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYMRHg7cCp7ImA9WxNaEUU.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-8771214805416195738</id><published>2009-11-25T22:13:00.006+01:00</published><updated>2009-11-25T22:56:25.608+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-25T22:56:25.608+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="flash ubuntu problema" /><title>Ubuntu: problemas en flash al hacer click (Solucionado)</title><content type="html">Navegando por páginas con vídeos en flash, por ejemplo &lt;a href="http://www.megavideo.com/"&gt;Megavideo&lt;/a&gt;, me inflaba a darle clicks al botón central de play y no iba... bueno lo solucionaba a base de darle a tabulador hasta llegar al elemento del botón y darle a enter, pero lo malo era cuando quería avanzar, subir o bajar el volumen... como es normal, esto crispa a cualquiera, pensaba que era cosa del plugin pero no podía ser puesto que era el oficial de &lt;a href="http://www.adobe.com/"&gt;Adobe&lt;/a&gt;, así que debía ser cosa del entorno, que no le gustase hacer click ahí por alguna razón.&lt;br /&gt;He buscado y &lt;a href="http://helpforlinux.blogspot.com/2009/11/i-cannot-click-on-flash-in-ubuntu.html"&gt;he encontrado una página&lt;/a&gt; que explica los siguientes pasos que a mi me ha funcionado con &lt;span style="font-weight: bold;"&gt;Ubuntu 9.10 Karmic Koala&lt;/span&gt; (¡¡que alguien me explique lo del koala kármico por favor!!):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Le das a &lt;span style="font-weight: bold;"&gt;Alt+F2&lt;/span&gt;, esta combinación abre una ventanita para ejecutar cualquier aplicación (como &lt;span style="font-weight: bold;"&gt;Ejecutar&lt;/span&gt; en Windows XP).&lt;/li&gt;&lt;li&gt;Escribe en la ventana: &lt;span style="font-weight: bold;"&gt;gksudo gedit /usr/lib/nspluginwrapper/i386/linux/npviewer&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Lo anterior te ha abierto el gedit con un documento con unas líneas de texto, pues &lt;span style="font-weight: bold;"&gt;antes&lt;/span&gt; de la última línea (en mi caso . /usr/lib/nspluginwrapper/noarch/npviewer), debes escribir:  &lt;span style="font-weight: bold;"&gt;export GDK_NATIVE_WINDOWS=1&lt;/span&gt;&lt;/li&gt;&lt;li&gt;y nada, guardas y reinicias cualquier aplicación que ejecute flash (los navegadores web mayormente)&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Disfrutar del click en las animaciones y vídeos flash :D.&lt;/li&gt;&lt;/ol&gt;¡Ale! ¡p'a quien le valga!&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-8771214805416195738?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VX6a4HNcQFnSeSnK5Se8Twom2cQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VX6a4HNcQFnSeSnK5Se8Twom2cQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VX6a4HNcQFnSeSnK5Se8Twom2cQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VX6a4HNcQFnSeSnK5Se8Twom2cQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/bThkythttR4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/8771214805416195738/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/11/ubuntu-problemas-en-flash-al-hacer.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/8771214805416195738?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/8771214805416195738?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/bThkythttR4/ubuntu-problemas-en-flash-al-hacer.html" title="Ubuntu: problemas en flash al hacer click (Solucionado)" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/11/ubuntu-problemas-en-flash-al-hacer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08HRns-eCp7ImA9WxNaEUg.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-8591249469362755107</id><published>2009-11-23T13:11:00.004+01:00</published><updated>2009-11-25T13:23:57.550+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-25T13:23:57.550+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox firebug fireunit javascript" /><title>FireUnit: pruebas unitarias en javascript</title><content type="html">He encontrado por la web un plugin para firefox, realmente es un plugin para otro plugin existente, el firebug, mi favorito :D.&lt;br /&gt;El componente al que me refiero es uno llamado &lt;a href="http://fireunit.org/"&gt;&lt;span style="font-weight: bold;"&gt;fireunit&lt;/span&gt;&lt;/a&gt;, creado por &lt;a href="http://www.softwareishard.com/"&gt;Jan Odvarko&lt;/a&gt; y &lt;a href="http://ejohn.org/"&gt;John Resig&lt;/a&gt; (el creador de &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; y mas cosas), por lo visto es para pruebas unitarias de código en javascript, como el &lt;a href="http://www.junit.org/"&gt;jUnit&lt;/a&gt; para Java.&lt;br /&gt;En la página de John Resig, tiene un &lt;a href="http://ejohn.org/blog/fireunit/"&gt;post sobre el uso de fireunit&lt;/a&gt; en el que hay algunos ejemplos de uso.  He mirado en la página del &lt;a href="http://wiki.github.com/jeresig/fireunit"&gt;repositorio en GitHub&lt;/a&gt;, pero no he encontrado documentación tal cual sobre API alguna, os pongo algunas cosas recopiladas que he deducido en la sección &lt;span style="font-weight: bold;"&gt;internals&lt;/span&gt; apoyándome en los ejemplos que he visto:&lt;br /&gt;&lt;div class="codigo"&gt;//Hay funciones para comprobar si una función devuelve lo que se espera:&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;ok&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;(&lt;/span&gt; &lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;true&lt;/span&gt;, &lt;span style="color: rgb(51, 102, 204);"&gt;funcion&lt;/span&gt;)&lt;br /&gt;//Funciones que comparan cadenas:&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;compare&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;("Cadena uno", "cadena dos", "cadena por si son iguales")&lt;/span&gt;&lt;br /&gt;//Con expresiones regulares:&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;reCompare&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 102, 255);"&gt;/cadena .* prueba/&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;, "cadena de prueba", "cadena por si son iguales")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;//Función para mostrar los resultados finales:&lt;/span&gt;&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;testDone&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Aparte, se pueden simular eventos del navegador por si es necesario para el testeo:&lt;br /&gt;&lt;div class="codigo"&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;mouseDown&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;(&lt;/span&gt; input &lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;click&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;(&lt;/span&gt; input &lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;focus&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;(&lt;/span&gt; input &lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;key&lt;/span&gt;&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;(&lt;/span&gt; input, &lt;span style="color: rgb(51, 102, 204);"&gt;"a"&lt;/span&gt; &lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;/div&gt;&lt;br /&gt;Y como en jUnit, se pueden ejecutar varios tests a la vez:&lt;br /&gt;&lt;div class="codigo"&gt;// Ejecutar varios tests&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;runTests&lt;/span&gt;(&lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;"test2.html"&lt;/span&gt;, &lt;span style="color: rgb(0, 136, 0); font-weight: bold;"&gt;"test3.html"&lt;/span&gt;)&lt;br /&gt;// Se pone esto al fin de cada test&lt;br /&gt;fireunit.&lt;span style="color: rgb(0, 102, 0);"&gt;testDone&lt;/span&gt;()&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Bueno, todo es probarlo, yo ya lo he instalado, en tener un rato un día de estos (¡no paro!) miro como va...&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-8591249469362755107?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/A5MM-C98-VLiBp1bAqhfrPgvziM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A5MM-C98-VLiBp1bAqhfrPgvziM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/A5MM-C98-VLiBp1bAqhfrPgvziM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A5MM-C98-VLiBp1bAqhfrPgvziM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/lIcqNA5UUlc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/8591249469362755107/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/11/pruebas-unitarias-en-javascript-con.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/8591249469362755107?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/8591249469362755107?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/lIcqNA5UUlc/pruebas-unitarias-en-javascript-con.html" title="FireUnit: pruebas unitarias en javascript" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/11/pruebas-unitarias-en-javascript-con.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYCRnYzeSp7ImA9WxNUFE0.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-1356785537814006921</id><published>2009-11-05T08:51:00.000+01:00</published><updated>2009-11-05T09:02:47.881+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-05T09:02:47.881+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="blogspot wordpress blogs" /><title>He borrado mi blog de Wordpress</title><content type="html">&lt;p&gt;Tenía este mismo blog en Wordpress (http://haprobadoconreiniciar.wordpress.com), para ver con cuál me quedaba, me gustan mas los diseños de ese sistema, pero no me dejaba cambiar ni el CSS (bueno dejaba, pero si no pagaba no lo podía ver nadie, lo cual es lo mismo que no dejar... :P).  También estaba interesado en unos plug-in de resaltado de código (lo que aquí medio "arreglo" poniendo un fondo amarillento, algún día me lo curraré mas).&lt;/p&gt;&lt;p&gt;No me molestaba tener ambos blogs en marcha, lo único es que estaba totalmente penalizado por tener el contenido completamente copiado de este, es decir que era invisible, es posible que incluso haya penalizado este en alguna ocasión (aunque aparece primero en varias búsquedas referentes a las entradas que tiene).&lt;/p&gt;&lt;p&gt;Me ha dado bastante lástima, ya que digo que es un sistema que me gusta más que blogger, pero me limita en algunas cosas... lo que no descarto (y llevo un tiempo con la idea en la cabeza) es pillarme un dominio y un hosting e instalarme wordpress, migrar todas las entradas de los blogs que tengo (este y el de &lt;a href="http://estovaadoler.blogspot.com"&gt;esto va a doler&lt;/a&gt;) para así tener mi pequeño portfolio de cosas.&lt;/p&gt;&lt;p&gt;Ya iré informando sobre el asunto ^^.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-1356785537814006921?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eK2gi0jwlt7rzV_E6czi35qvuAk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eK2gi0jwlt7rzV_E6czi35qvuAk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eK2gi0jwlt7rzV_E6czi35qvuAk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eK2gi0jwlt7rzV_E6czi35qvuAk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/EiicOZxk748" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/1356785537814006921/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/11/he-borrado-mi-blog-de-wordpress.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1356785537814006921?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1356785537814006921?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/EiicOZxk748/he-borrado-mi-blog-de-wordpress.html" title="He borrado mi blog de Wordpress" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/11/he-borrado-mi-blog-de-wordpress.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QBQXg4fip7ImA9WxNVFk4.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-7163326465754133891</id><published>2009-10-27T08:53:00.001+01:00</published><updated>2009-10-27T09:15:50.636+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-27T09:15:50.636+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="svg jquery raphaeljs javascript svg vml" /><title>Me cambio de RaphaelJS a JQuerySVG</title><content type="html">&lt;p&gt;Bueno, tras ver que en las nuevas versiones de &lt;a href="http://raphaeljs.com/"&gt;RaphaelJS&lt;/a&gt; han quitado el manejo de grupos, es decir hacer una serie de elementos e incluirlos en un grupos y poder realizar sobre estos transformaciones, tales como traslación, rotación..  en su lugar han puesto la opción de crear &lt;em&gt;sets&lt;/em&gt;, la genial idea fué de su desarrollador (Dmitry Baranovskiy), cuya excusa era que los grupos no están en &lt;abbr title="Vector Markup Language"&gt;VML&lt;/abbr&gt; para la compatibilidad con Internet Explorer.&lt;/p&gt;&lt;p&gt;Estos sets son grupos de elementos, como anteriormente, pero para el cual las transformaciones se comportan de forma distinta, en mi caso necesitaba realizar rotaciones, con los grupos podía colocar un elemento en el centro y otro a un lado, al rotar el grupo daba la impresión que el segundo elemento orbitaba alrededor del primero, ahora con los sets lo que me hace es rotar cada uno sobre su propio centro, de modo que tengo dos elementos que dan vueltas a sí mismos, pero no en conjunto.&lt;/p&gt;&lt;p&gt;Pensé en usar la librería con la que empecé, la 0.8.6, la cual sí que tiene la opción de grupos, pero no tiene otra opción que han incluido en la nueva, que es la de poder destruir un elemento que haya en pantalla (cuando tienes miles de elementos svg no puedes permitirte esconderlos con css para mostrar otros, debes destruirlos o tu navegador irá muyyyy lento).  Para poder disfrutar de esta segunda opción me lié a pelear con trigonometría para hacer orbitar el segundo elemento, conseguí hacerlo, pero pensé que si tengo que comerme tanto la cabeza para girar cualquier cosa sobre otro elemento... símplemente paso.&lt;/p&gt;&lt;p&gt;Es por ello que le he dado una oportunidad a la librería de Keith Wood, la &lt;a href="http://keith-wood.name/svg.html"&gt;JQuerySVG&lt;/a&gt;, por ahora puedo hacer lo que quería, pero no tengo compatibilidad con Internet Explorer... que le den, estoy cansado del &lt;a href="http://es.wikipedia.org/wiki/Quirks_Mode"&gt;Quirks Mode&lt;/a&gt;, creo que es un retraso y una forma de fastidiar buenas webs que usan estándares válidos que los navegadores viejos no soportan.  Esta librería es un plugin de JQuery (como habreis podido imaginar) y, como tal, tiene total integración en este framework.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Lo único que echo de menos es la buena documentación que tenía la RaphaelJS... ya veremos qué tal me va con la otra...&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-7163326465754133891?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fpxEbsM2T6i1m-62huHvOIsnUZA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fpxEbsM2T6i1m-62huHvOIsnUZA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fpxEbsM2T6i1m-62huHvOIsnUZA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fpxEbsM2T6i1m-62huHvOIsnUZA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/mdnHdq56QMA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/7163326465754133891/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/10/me-cambio-de-raphaeljs-jquerysvg.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/7163326465754133891?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/7163326465754133891?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/mdnHdq56QMA/me-cambio-de-raphaeljs-jquerysvg.html" title="Me cambio de RaphaelJS a JQuerySVG" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/10/me-cambio-de-raphaeljs-jquerysvg.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UCQ3s6eyp7ImA9WxNXE0o.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-1210738456941395401</id><published>2009-10-01T08:40:00.000+02:00</published><updated>2009-10-01T08:41:02.513+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-01T08:41:02.513+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="frase turing" /><title>Una frase mas...</title><content type="html">&lt;div class="frase"&gt;La ciencia es una ecuación diferencial. La religión es una condición de frontera.&lt;/div&gt;&lt;br /&gt;&lt;div class="cita"&gt;Alan Turing&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-1210738456941395401?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RLPCyHQ_3zuCDkF5xug55JyH094/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RLPCyHQ_3zuCDkF5xug55JyH094/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RLPCyHQ_3zuCDkF5xug55JyH094/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RLPCyHQ_3zuCDkF5xug55JyH094/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/RXM7zkbcgA0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/1210738456941395401/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/09/una-frase-mas.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1210738456941395401?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1210738456941395401?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/RXM7zkbcgA0/una-frase-mas.html" title="Una frase mas..." /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/09/una-frase-mas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4AR344fSp7ImA9WxNQGEo.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-5848157392773961624</id><published>2009-09-25T11:09:00.001+02:00</published><updated>2009-09-25T12:19:06.035+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-25T12:19:06.035+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jquery" /><category scheme="http://www.blogger.com/atom/ns#" term="select" /><category scheme="http://www.blogger.com/atom/ns#" term="selectedIndex" /><title>select con jQuery</title><content type="html">Esto es un simple apunte, lo pongo aquí para quien le pueda servir.&lt;br /&gt;Trabajar con select en jQuery:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;selectedIndex:&lt;/span&gt;&lt;ul&gt;&lt;li&gt;$("select:#id_del_select").attr("selectedIndex")&lt;/li&gt;&lt;li&gt;$("#id_del_select").attr("selectedIndex")&lt;/li&gt;&lt;li&gt;$("#id_del_select")[0].selectedIndex&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;options[]:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;$("#id_del_select option")&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;option actual:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;$("#id_del_select option:selected") ó $("#id_del_select :selected")&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;value: &lt;/span&gt;$("#id_del_select option:selected").val()&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;texto:&lt;/span&gt; $("#id_del_select option:selected").text()&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-5848157392773961624?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ee7oL2Ml3_2k1OgcZgwpPtwOlvg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ee7oL2Ml3_2k1OgcZgwpPtwOlvg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ee7oL2Ml3_2k1OgcZgwpPtwOlvg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ee7oL2Ml3_2k1OgcZgwpPtwOlvg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/00pFOPtwct4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/5848157392773961624/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/09/select-con-jquery.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/5848157392773961624?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/5848157392773961624?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/00pFOPtwct4/select-con-jquery.html" title="select con jQuery" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/09/select-con-jquery.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE4GSXs4fCp7ImA9WxNQEks.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-6144210752320162436</id><published>2009-09-18T10:31:00.000+02:00</published><updated>2009-09-18T10:35:28.534+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-18T10:35:28.534+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jdk7 jdk70 cambios explicados" /><title>cambios aceptados en jdk7 (y explicados)</title><content type="html">Para la versión 7 del jdk se han aceptado siete de 10 cambios para mejorar la legibilidad y simplificar en algún aspecto el lenguaje, es por si veis que en un futuro vuestro proyecto dice que tenéis algo mal que sepáis por qué puede ser:&lt;br /&gt;&lt;br /&gt;&lt;u&gt; Los siete cambios aceptados: &lt;/u&gt;&lt;br /&gt;      &lt;b&gt;&lt;span class="goog-spellcheck-word"&gt;Strings&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;in&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;switch&lt;/span&gt; &lt;/b&gt;&lt;span class="goog-spellcheck-word"&gt;&lt;b&gt;statements:&lt;/b&gt; esto es fácil, en los switch ahora se aceptarán cadenas de texto, un pequeño ejemplo:&lt;br /&gt;&lt;/span&gt;&lt;div class="codigo"&gt;&lt;pre style=""&gt;&lt;big&gt;&lt;b&gt;&lt;big&gt;&lt;b&gt;Con JDK7.0:&lt;/b&gt;&lt;/big&gt;&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;big&gt;switch(s) {&lt;br /&gt;case "foo":&lt;br /&gt; processFoo(s);&lt;br /&gt; break;&lt;br /&gt;}&lt;/big&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;b&gt;         &lt;span class="goog-spellcheck-word"&gt;Automatic&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Resource&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Management: &lt;/span&gt;&lt;/b&gt;&lt;span class="goog-spellcheck-word"&gt;Un "resource" es un objeto que debe ser cerrado manualmente, tal como &lt;/span&gt;java.io.InputStream, OutputStream, Reader, Writer, Formatter; java.nio.Channel;java.net.socket; java.sql.Connection, Statement, ResultSet o java.awt.Graphics.&lt;br /&gt;Como el tener que cerrar algo manualmente suele ser un nido de errores (a todo el mundo se le puede olvidar, tenemos que para lo que hasta ahora es:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre style=""&gt;&lt;big&gt;&lt;b&gt;Caso actual:&lt;/b&gt;&lt;br /&gt;static String readFirstLineFromFile(String path) throws IOException {&lt;br /&gt;&lt;br /&gt;     BufferedReader br = new BufferedReader(new FileReader(path));&lt;br /&gt;&lt;br /&gt;     try {&lt;br /&gt;&lt;br /&gt;         return br.readLine();&lt;br /&gt;&lt;br /&gt;     } finally {&lt;br /&gt;&lt;br /&gt;         br.close();&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;/big&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;&lt;big&gt;&lt;b&gt;Con JDK7.0:&lt;br /&gt;&lt;/b&gt;&lt;/big&gt;&lt;/b&gt;&lt;/big&gt;&lt;big&gt;&lt;big&gt; static String readFirstLineFromFile2(String path) throws IOException {&lt;br /&gt;&lt;br /&gt;     try (BufferedReader br = new BufferedReader(new FileReader(path)) {&lt;br /&gt;&lt;br /&gt;        return br.readLine();&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt; }&lt;/big&gt;&lt;/big&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;o un ejemplo más elaborado:   &lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre style=""&gt;&lt;b&gt;&lt;big&gt;Caso actual:&lt;/big&gt;&lt;/b&gt;&lt;br /&gt;&lt;big&gt;    static void copy(String src, String dest) throws IOException {&lt;br /&gt;&lt;br /&gt;     InputStream in = new FileInputStream(src);&lt;br /&gt;&lt;br /&gt;     try {&lt;br /&gt;&lt;br /&gt;         OutputStream out = new FileOutputStream(dest);&lt;br /&gt;&lt;br /&gt;         try {&lt;br /&gt;&lt;br /&gt;             byte[] buf = new byte[8 * 1024];&lt;br /&gt;&lt;br /&gt;             int n;&lt;br /&gt;&lt;br /&gt;             while ((n = in.read(buf)) &amp;gt;= 0)&lt;br /&gt;&lt;br /&gt;                 out.write(buf, 0, n);&lt;br /&gt;&lt;br /&gt;         } finally {&lt;br /&gt;&lt;br /&gt;             out.close();&lt;br /&gt;&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;     } finally {&lt;br /&gt;&lt;br /&gt;         in.close();&lt;br /&gt;&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;/big&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;&lt;big&gt;&lt;b&gt;Con JDK7.0:&lt;br /&gt;&lt;/b&gt;&lt;/big&gt;&lt;/b&gt;&lt;/big&gt;&lt;big&gt; static void copy(String src, String dest) throws IOException {&lt;br /&gt;&lt;br /&gt;     try (InputStream in = new FileInputStream(src);&lt;br /&gt;&lt;br /&gt;          OutputStream out = new FileOutputStream(dest)) {&lt;br /&gt;&lt;br /&gt;         byte[] buf = new byte[8192];&lt;br /&gt;&lt;br /&gt;         int n;&lt;br /&gt;&lt;br /&gt;         while ((n = in.read(buf)) &amp;gt;= 0)&lt;br /&gt;&lt;br /&gt;             out.write(buf, 0, n);&lt;br /&gt;&lt;br /&gt;     }&lt;/big&gt;&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;    &lt;span class="goog-spellcheck-word"&gt;Improved&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Type&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Inference&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;for&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Generic&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Instance&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Creation&lt;/span&gt; (operador &lt;span class="goog-spellcheck-word"&gt;diamond&lt;/span&gt;): &lt;/b&gt;Esto símplemente quita una redundancia a la hora de crear algún tipo genérico, ahora ahora siempre que se crea un, por ejemplo, Map se pone el tipo de variable que es el key y el contenido en la declaración y en el new, ahora será solo en la declaración:&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre style=""&gt;&lt;big&gt;&lt;b&gt;Hasta ahora:&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;big&gt;Map&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt; anagrams = new HashMap&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt;();&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;&lt;big&gt;&lt;b&gt;Con JDK7.0&lt;/b&gt;&lt;/big&gt;&lt;/b&gt;&lt;/big&gt;&lt;big&gt;&lt;br /&gt;Map&amp;lt;String, List&amp;lt;String&amp;gt;&amp;gt; anagrams = new HashMap&amp;lt;&amp;gt;();&lt;/big&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;      &lt;span class="goog-spellcheck-word"&gt;Simplified&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Varargs&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Method&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Invocation: &lt;/span&gt;&lt;/b&gt;&lt;span class="goog-spellcheck-word"&gt;esto &lt;/span&gt;no supone un cambio en la programación, aquí lo que pasa es que si teníamos un método con parámetros de tipo &lt;a href="http://mundogeek.net/archivos/2009/04/04/varargs-en-java/"&gt;vararg&lt;/a&gt;, si metías tipos no &lt;a href="http://codeidol.com/java/javagenerics/Reification/Reifiable-Types/"&gt;reifiables&lt;/a&gt; (no sé la traducción de &lt;i&gt;reifiable&lt;/i&gt;), daba un warning donde se llamaba a la función y ahora se produce en la declaración de dicha función:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre style=""&gt;&lt;big&gt;&lt;b&gt;Hasta ahora:&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;big&gt;  static &amp;lt;T&amp;gt; List&amp;lt;T&amp;gt; asList(T... elements) { ... }&lt;br /&gt;&lt;br /&gt;static List&amp;lt;Callable&amp;lt;String&amp;gt;&amp;gt; stringFactories() {&lt;br /&gt; Callable&amp;lt;String&amp;gt; a, b, c;&lt;br /&gt; ...&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt; &lt;b&gt;   *// Warning: **"uses unchecked or unsafe operations"*&lt;/b&gt;&lt;/span&gt;&lt;br /&gt; return asList(a, b, c);&lt;/big&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;&lt;big&gt;&lt;b&gt;Con JDK7.0&lt;/b&gt;&lt;/big&gt;&lt;/b&gt;&lt;/big&gt;&lt;big&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;  &lt;b&gt;*// Warning: **"enables unsafe generic array creation"*&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;static &amp;lt;T&amp;gt; List&amp;lt;T&amp;gt; asList(T... elements) { ... }&lt;br /&gt;&lt;br /&gt;static List&amp;lt;Callable&amp;lt;String&amp;gt;&amp;gt; stringFactories() {&lt;br /&gt; Callable&amp;lt;String&amp;gt; a, b, c;&lt;br /&gt; ...&lt;br /&gt; return asList(a, b, c);&lt;br /&gt;}&lt;/big&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;pues eso, que si veis warnings donde declarasteis vuestros métodos con parámetros vararg y con tipos no reifiables que no os extrañeis.&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="goog-spellcheck-word"&gt;&lt;/span&gt;   &lt;b&gt;      &lt;span class="goog-spellcheck-word"&gt;An&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;amnibus&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;proposal&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;for&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;better&lt;/span&gt; integral &lt;span class="goog-spellcheck-word"&gt;literals: &lt;/span&gt;&lt;/b&gt;&lt;span class="goog-spellcheck-word"&gt;este cambio combina dos propuestas que añadiran nuevas formas de escribir literales enteros, literales binarios y subrayados en números.&lt;br /&gt;El primero propone que escribas los literales binarios del modo &lt;b&gt;0b101&lt;/b&gt; o &lt;b&gt;0B101&lt;/b&gt;.&lt;br /&gt;El segundo te ofrecerá la posibilidad (es opcional) poner subrayados en números para hacerlos más legibles, por ejemplo 9_223_312_123_345_786_343L&lt;/span&gt;&lt;span&gt;&lt;code&gt;.&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;        &lt;span class="goog-spellcheck-word"&gt;Language&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;support&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;for&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Collections: &lt;/span&gt;&lt;/b&gt;&lt;span class="goog-spellcheck-word"&gt;Este es otra combinación de dos propuestas, literales de Collection y sintaxis de acceso a la indexación de Lists y Maps.&lt;br /&gt;Permitirá utilizar expresiones para inicializar nuevas Lists, Sets y Maps de una forma más concisa, por ejemplo:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre style=""&gt;&lt;big&gt;&lt;b&gt;Hasta ahora:&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;big&gt;final List&amp;lt;Integer&amp;gt; piDigits = Collections.unmodifiableList(Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9 ));&lt;/big&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;será del siguiente modo:&lt;/b&gt;&lt;br /&gt;&lt;/big&gt;&lt;big&gt;final List&amp;lt;Integer&amp;gt; piDigits = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9];&lt;/big&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;Si quieres un Set, usa llaves:&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;big&gt;final Set&amp;lt;Integer&amp;gt; primes = { 2, 7, 31, 127, 8191, 131071, 524287 };&lt;/big&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;big&gt;&lt;b&gt;Hasta ahora un mapa se inicializaba así:&lt;br /&gt;&lt;/b&gt;final Map&amp;lt;Integer, String&amp;gt; platonicSolids;&lt;br /&gt;static {&lt;br /&gt; solids = new LinkedHashMap&lt;/big&gt;&lt;map&gt;&lt;integer, string=""&gt;&lt;big&gt;;&lt;br /&gt; solids.put(4,  "tetrahedron");&lt;br /&gt; solids.put(6,  "cube");&lt;br /&gt; solids.put(8,  "octahedron");&lt;br /&gt; solids.put(12, "dodecahedron");&lt;br /&gt; solids.put(20, "icosahedron");&lt;br /&gt; platonicSolids = Collections.immutableMap(solids);&lt;br /&gt;}&lt;/big&gt;&lt;br /&gt;&lt;big&gt;&lt;b&gt;Con JDK7.0&lt;/b&gt;&lt;/big&gt;&lt;br /&gt;&lt;/integer,&gt;&lt;/map&gt;&lt;big&gt;final Map&amp;lt;Integer, String&amp;gt; platonicSolids = { 4 : "tetrahedron", 6 : "cube",&lt;br /&gt; 8 : "octahedron", 12 : "dodecahedron", 20 : "icosahedron" };&lt;/big&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;     &lt;b&gt; &lt;span class="goog-spellcheck-word"&gt;Language&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;support&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;for&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;JSR&lt;/span&gt; 292: &lt;/b&gt;JSR292 está enfocado en soportar dinámicamente lenguajes tipados en la plataforma Java. Esto cambia el lenguaje para que éstas características estén disponibles desde Java.  Por ejemplo esta propuesta podría permitirte invocar dinámicamente cuialquier método en una variable de tipo java.dyn.Dinamic.  Esto siempre compilará.  En tiempo de ejecución si el método existe, la invocación se realizará:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;&lt;pre style=""&gt;&lt;big&gt;Dynamic x = (aquí puede haber cualquier tipo de expresión);&lt;br /&gt;Object  y = x.foo("ABC").bar(42).baz()&lt;/big&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;No sé  si aquí están queriendo decir que se pueden hacer closures.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Cambios descartados por el momento: &lt;/u&gt;&lt;br /&gt;   &lt;br /&gt;     &lt;b&gt; &lt;span class="goog-spellcheck-word"&gt;Improved&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Exception&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Handling&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;for&lt;/span&gt; Java:&lt;/b&gt; esto es capturar varias excepciones en un solo catch:&lt;br /&gt;&lt;br /&gt;&lt;div class="codigo"&gt;&lt;big&gt;&lt;br /&gt;&lt;/big&gt;&lt;pre style=""&gt;&lt;big&gt;try {&lt;br /&gt; doWork(file);&lt;br /&gt;} catch (final IOException|SQLException ex) {&lt;br /&gt; logger.log(ex);&lt;br /&gt;*    throw ex;*&lt;br /&gt;}&lt;br /&gt;&lt;/big&gt;&lt;/pre&gt;&lt;big&gt;&lt;br /&gt;&lt;/big&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;         &lt;span class="goog-spellcheck-word"&gt;Elvis&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;and&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Other&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Null&lt;/span&gt;-&lt;span class="goog-spellcheck-word"&gt;Safe&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Operators: &lt;/span&gt;&lt;/b&gt;&lt;span class="goog-spellcheck-word"&gt;el operador Elvis se usa en Groovy, recuerda al típico del interrogante que hay en C/C++.  Hay varios:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;?:&lt;/b&gt; este es el elvis, si lo que hay a la izquierda es null, se evalua lo de la derecha.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;variablenull ?: "es null!!"&lt;/b&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;?. &lt;/b&gt;este funciona como el punto, pero si lo que hay a la izquierda es null, no se hace nada:&lt;/li&gt;&lt;ul&gt;&lt;li&gt; variable?.toString()  // si variable es null, devuelve null&lt;/li&gt;&lt;li&gt;Luego tendríamos algo como &lt;b&gt;variable?.toString() ?: "variable vacía"&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;b&gt;?[]&lt;/b&gt; para arrays, lo típico, si es null devuelve null&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Luego tendríamos algo como array?[1].nombre?.toString() ?: "algo está a null"&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;         &lt;b&gt;&lt;span class="goog-spellcheck-word"&gt;Large&lt;/span&gt; &lt;span class="goog-spellcheck-word"&gt;Arrays&lt;/span&gt;:&lt;/b&gt; esto era cambiar el tamaño del índice de los arrays, actualmente de 32bit a 64bit.&lt;br /&gt;&lt;br /&gt;Un saludo!&lt;br /&gt;&lt;br /&gt;Las fuentes:&lt;br /&gt;http://blogs.sun.com/darcy/entry/project_coin_final_five&lt;br /&gt;http://www.artima.com/forums/flat.jsp?forum=270&amp;amp;thread=266751&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-6144210752320162436?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7rCfVUAalkXOR411xB5Z0z1qZ7w/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7rCfVUAalkXOR411xB5Z0z1qZ7w/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7rCfVUAalkXOR411xB5Z0z1qZ7w/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7rCfVUAalkXOR411xB5Z0z1qZ7w/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/bi-Jm7MbPAQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/6144210752320162436/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/09/cambios-aceptados-en-jdk7-y-explicados.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/6144210752320162436?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/6144210752320162436?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/bi-Jm7MbPAQ/cambios-aceptados-en-jdk7-y-explicados.html" title="cambios aceptados en jdk7 (y explicados)" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/09/cambios-aceptados-en-jdk7-y-explicados.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08NR3ozeSp7ImA9WxJVFUs.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-1386299885306713629</id><published>2009-07-02T20:43:00.000+02:00</published><updated>2009-07-02T21:11:36.481+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-07-02T21:11:36.481+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="podcast" /><title>Pocasts que suelo oir</title><content type="html">Muy buenas, llevaba un tiempo sin escribir (tampoco creo que nadie se haya echado a llorar), por fin voy a tener mas tiempo para poder hacerlo ya que prácticamente he terminado la carrera (oeeee oe oe oeeeeeeeeee)...&lt;br /&gt;El caso es que, a fuerza de oir la misma música en el mp4 mientras trabajaba, me dió por buscar temas del mundillo del &lt;a href="http://es.wikipedia.org/wiki/Podcasting"&gt;podcasting&lt;/a&gt;.  La verdad es que nunca me había parado a escuchar alguno, en todo caso los videocasts de ejemplo de uso de algunos frameworks como Ruby on Rails, Codeigniter o Django...&lt;br /&gt;Bueno, símplemente era, por si alguien estaba como yo y tiene curiosidad, si tiene gustos parecidos a los míos (programación, física, curiosidades sobre tecnología, y casos y personajes de la ciencia, conceptos de informática..), pongo los que he estado escuchando:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://feeds.javahispano.org/JHPodcasts"&gt;JavaHispano Podcast&lt;/a&gt;: un podcast sobre programación y lenguaje Java, muy completo.&lt;/li&gt;&lt;li&gt;&lt;a href="http://eltamiz.com/podcast/"&gt;ElTamiz&lt;/a&gt;: un podcast sobre física y curiosidades, la verdad es que complementa un blog muy pero que muy recomendable.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.triunfaeninternet.com/"&gt;Triunfa En Internet&lt;/a&gt;: otro podcast que me ha gustado mucho, son tertulias sobre distintos temas de informática y otros asuntos muy interesantes, muy entretenido.&lt;/li&gt;&lt;li&gt;&lt;a href="http://elblogdepablot.wordpress.com/"&gt;El blog de pablot&lt;/a&gt;: una persona que me ha caido bastante simpática, también habla de informática y cosas así.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.fjromero.com/"&gt;Soliloquios de Javier Romero&lt;/a&gt;: otra persona que me ha caido muy simpática, he visto que en algunos podcasts habla de temas que también se tratan en triunfa en internet, dando su punto de vista o explicándo desde otro punto de vista (como en el de Vida artificial).&lt;/li&gt;&lt;li&gt;&lt;a href="http://rosavientos.es/modules.php?name=Downloads"&gt;La rosa de los vientos&lt;/a&gt;: como no, un programa de radio muy interesante (en mi caso por los pasajes de la historia), el enlace lleva a recopilatorios de gente sobre este programa.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Bueno, hasta ahora esto, he oido alguno que otro mas, pero suelto, como de LinuxHispano o SpringHispano, pero vamos que los que mas oigo son esos.  Iré editando el post para poner mas que vaya encontrando.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-1386299885306713629?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HAD8-SVCxG_mSzZ6Je1C_0PSClY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HAD8-SVCxG_mSzZ6Je1C_0PSClY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HAD8-SVCxG_mSzZ6Je1C_0PSClY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HAD8-SVCxG_mSzZ6Je1C_0PSClY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/ZjbctxXgT0Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/1386299885306713629/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/07/pocasts-que-suelo-oir.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1386299885306713629?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1386299885306713629?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/ZjbctxXgT0Q/pocasts-que-suelo-oir.html" title="Pocasts que suelo oir" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/07/pocasts-que-suelo-oir.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUCQng9fSp7ImA9WxJRFUU.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-7003137675638433355</id><published>2009-05-17T20:00:00.000+02:00</published><updated>2009-05-17T20:01:03.665+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-17T20:01:03.665+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="frase desarrollo" /><title>Otra frase mas...</title><content type="html">&lt;div class="frase"&gt;Cualquier desarrollador puede escribir código que una máquina pueda entender, pero sólo los buenos desarrolladores saben escribir código que otro desarrollador sepa entender.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-7003137675638433355?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Ve1RDo0FhkxFiHsrHjjrZ8dCjbs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ve1RDo0FhkxFiHsrHjjrZ8dCjbs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Ve1RDo0FhkxFiHsrHjjrZ8dCjbs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Ve1RDo0FhkxFiHsrHjjrZ8dCjbs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/sQTXB5TyHp4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/7003137675638433355/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/05/otra-frase-mas.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/7003137675638433355?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/7003137675638433355?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/sQTXB5TyHp4/otra-frase-mas.html" title="Otra frase mas..." /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/05/otra-frase-mas.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMEQXo5fCp7ImA9WxJREUQ.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-5792743609142207607</id><published>2009-05-13T09:05:00.000+02:00</published><updated>2009-05-13T09:06:40.424+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-13T09:06:40.424+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="redes neuronales neural networks" /><title>Presentación sobre Redes Neuronales</title><content type="html">He subido a mi cuenta de slideshare una pequeña presentación que he hecho, hablando sobre las redes neuronales, para una asignatura de minería de datos.  En ella hablo, dando unas pinceladas de en qué se parecen las neuronas artificiales a las biológicas, qué es una red de neuronas artificiales y su topología, así como las aplicaciones en la vida real y las ventajas que aportan.&lt;br /&gt;Como último punto he puesto los resultados de una práctica que realicé con un compañero, era sobre clasificar manos de poker, es decir, cinco cartas con su número y palo (variables contínuas y discretas) y un número que las clasificaba como posibles manos de poker (dobles parejas, trío, escalera...).&lt;br /&gt;&lt;br /&gt;&lt;div style="width: 425px; text-align: left;" id="__ss_1426985"&gt;&lt;a style="margin: 12px 0pt 3px; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; display: block; text-decoration: underline;" href="http://www.slideshare.net/iquark/redes-neuronales-1426985?type=presentation" title="Redes Neuronales"&gt;Redes Neuronales&lt;/a&gt;&lt;object style="margin: 0px;" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=trabajoredesneuronales-090513012539-phpapp01&amp;amp;stripped_title=redes-neuronales-1426985"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=trabajoredesneuronales-090513012539-phpapp01&amp;amp;stripped_title=redes-neuronales-1426985" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;"&gt;View more &lt;a style="text-decoration: underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline;" href="http://www.blogger.com/htt%20p://www.slideshare.net/iquark"&gt;iquark&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-5792743609142207607?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qBG5-8WCXj0WkVRBbidY6eq_bdw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qBG5-8WCXj0WkVRBbidY6eq_bdw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qBG5-8WCXj0WkVRBbidY6eq_bdw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qBG5-8WCXj0WkVRBbidY6eq_bdw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/zx36uaJSjDc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/5792743609142207607/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/05/presentacion-sobre-redes-neuronales.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/5792743609142207607?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/5792743609142207607?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/zx36uaJSjDc/presentacion-sobre-redes-neuronales.html" title="Presentación sobre Redes Neuronales" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/05/presentacion-sobre-redes-neuronales.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QMRX4yfyp7ImA9WxJREUk.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-7557790950053186510</id><published>2009-05-12T17:11:00.000+02:00</published><updated>2009-05-12T17:16:24.097+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-12T17:16:24.097+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programación web consejos" /><title>Do's y don'ts de la programación web</title><content type="html">&lt;div style="text-align: justify;"&gt;He encontrado una web en la que se listan consejos sobre buenas (&lt;span style="font-weight: bold;"&gt;Do's&lt;/span&gt;) y malas (&lt;span style="font-weight: bold;"&gt;Don'ts&lt;/span&gt;) costumbres a la hora de programar páginas, la verdad es que siempre hay cosas en las que dudas si las estás haciendo bien o mal.  En esta web se aclaran con una pequeña explicación y un enlace a una página que te da una mas amplia explicación.&lt;br /&gt;Ah!... está en perfecto inglés (no tengo el nivel de saber si es perfecto o no, pero me lo huelo ¬¬).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://webdosanddonts.com"&gt;http://webdosanddonts.com&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Tiene categorías como nivel (principiante, intermedio y avanzado), mejor valoradas, etc.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-7557790950053186510?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BNp3nX0InZA0h6bnAeyfw6H79qk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BNp3nX0InZA0h6bnAeyfw6H79qk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BNp3nX0InZA0h6bnAeyfw6H79qk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BNp3nX0InZA0h6bnAeyfw6H79qk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/6EbPsFMgMTg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/7557790950053186510/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/05/dos-y-donts-de-la-programacion-web.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/7557790950053186510?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/7557790950053186510?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/6EbPsFMgMTg/dos-y-donts-de-la-programacion-web.html" title="Do's y don'ts de la programación web" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/05/dos-y-donts-de-la-programacion-web.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8DQn0ycCp7ImA9WxVWFE0.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-1951879480166110528</id><published>2009-02-23T16:56:00.000+01:00</published><updated>2009-02-23T17:01:13.398+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-23T17:01:13.398+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="codificación utf-8" /><title>¡UTF-8 Vale la pena!</title><content type="html">&lt;div style="text-align: justify;"&gt;Llevaba un tiempo buscando en qué codificación basar mis proyectos web, estaba entre iso-8859-1 o UTF-8.  Es un asunto muy delicado ya que una vez elegido una codificación, debes tener todo, tanto bases de datos como ficheros fuente en este formato o tendrás problemas a la hora de mostrar la información.&lt;br /&gt;Me he topado con esta web, que da una explicación que a mi me ha valido para decantarme por UTF-8:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.minid.net/2005/05/24/utf-8-vale-la-pena/"&gt;UTF-8 Vale la pena&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-1951879480166110528?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/SdjFdwKAiU3zd8LVW2m-EyJls8E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SdjFdwKAiU3zd8LVW2m-EyJls8E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/SdjFdwKAiU3zd8LVW2m-EyJls8E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/SdjFdwKAiU3zd8LVW2m-EyJls8E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/rR-kiXN-EGU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/1951879480166110528/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/02/utf-8-vale-la-pena.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1951879480166110528?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1951879480166110528?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/rR-kiXN-EGU/utf-8-vale-la-pena.html" title="¡UTF-8 Vale la pena!" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/02/utf-8-vale-la-pena.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQFRXYzeCp7ImA9WxNXE0U.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-1716919855604450725</id><published>2009-02-09T17:29:00.001+01:00</published><updated>2009-10-01T09:48:34.880+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-01T09:48:34.880+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="inteligencia empresarial" /><category scheme="http://www.blogger.com/atom/ns#" term="inteligencia" /><category scheme="http://www.blogger.com/atom/ns#" term="empresa" /><category scheme="http://www.blogger.com/atom/ns#" term="business intelligence" /><title>Business Intelligence</title><content type="html">Este es un &lt;a href="http://www.eltallerdigital.com/informacion.jsp?idArticulo=63"&gt;artículo que escribí&lt;/a&gt; en la &lt;a href="http://www.eltallerdigital.com/masinformacion.jsp"&gt;sección de artículos de opinión&lt;/a&gt; en la web de &lt;a href="http://www.eltallerdigital.com/"&gt;El Taller Digital de la Universidad de Alicante&lt;/a&gt;, lugar donde trabajo:&lt;br /&gt;Desde las tarjetas perforadas, allá por los años cincuenta, utilizadas para el almacenamiento de información y la creación de programas, hasta los grandes sistemas de almacenamiento y ayuda a la toma de decisiones de nuestros días, parece que haya pasado un abismo de tiempo...&lt;br /&gt;Hoy en día es normal encontrarse con sistemas que buscan patrones en enormes amasijos de datos, recabados día a día por las empresas.  Patrones que, bien combinados, generan conocimiento que aporta gran ayuda a predecir, con un cierto porcentaje de certeza, lo que un individuo puede llegar a &lt;i&gt;necesitar&lt;/i&gt;.&lt;br /&gt;Por ejemplo, el hecho que te encuentres con golosinas cuando llegas a la caja del supermercado, no es un simple capricho del gerente, es algo que está estudiado, se ha demostrado que cuando alguien hace una gran compra... necesita &lt;i&gt;endulzar&lt;/i&gt; un poco todo lo que va a pagar, curioso, pero cierto.&lt;br /&gt;Y no solo estamos hablando de &lt;i&gt;individuos&lt;/i&gt;, sino también entra en juego la idea de la segmentación de éstos.  Por ejemplo, no es lo mismo enviar un plan vivienda a unas personas con entre cuarenta y sesenta años, que a una persona de entre veinte y treinta, o un plan de jubilación para el caso contrario.&lt;br /&gt;Toda empresa mediana que se precie, por lo general tiene un ERP, que no es otra cosa que un sistema que guarda todo tipo de datos de la &lt;i&gt;trastienda&lt;/i&gt; o también llamado &lt;i&gt;back-office&lt;/i&gt;, es decir, qué trabador hizo qué cosa, control de stock, nóminas, contabilidad... y un CRM, que sería lo que hay de cara al cliente, o &lt;i&gt;front-office&lt;/i&gt;, éste se encarga de gestionar las relaciones con el cliente, tomando información sobre él, de modo que se tenga una ayuda para mejorar la oferta de nuestro producto respecto a sus gustos o necesidades.  De todo esto únicamente obtenemos informes de datos que no hacen nada más que dar datos, dando la responsabilidad de hacerse una idea de cómo irá la empresa al mismo empresario.&lt;br /&gt;Con la inclusión de los sistemas decisionales, los sistemas ofrecen algo más que mera información, aportan una ayuda a descartar datos que realmente son de relleno, o a tomar en cuenta datos que podrían ser de interés para el funcionamiento de la empresa.  Un ejemplo lo tenemos cuando se realizan búsquedas en Google y dice que tiene mas de diez millones de documentos &lt;i&gt;relevantes&lt;/i&gt; a lo que buscas, realmente si hay uno puedes dar gracias.&lt;br /&gt;El cerebro que maneja todo esto, son unos almacenes de datos, llamados &lt;b&gt;Data Warehouse&lt;/b&gt;, que son alimentados con los datos de las aplicaciones anteriormente nombradas, de una forma ordenada, enfocada a lo que se busca siguiendo unas técnicas concretas de extracción de información.  En estos almacenes, mediante técnicas de inteligencia artificial para la búsqueda de patrones, es donde se obtiene, combina y divide la información, presentando finalmente unos informes que aportan algo más que mera información.&lt;br /&gt;Sobre todo esto se sustentan los sistemas expertos, que emulan a un experto en una&lt;br /&gt;materia concreta. Estos sistemas toman el conocimiento anteriormente obtenido, para&lt;br /&gt;aportar mayor rapidez y calidad en las respuestas, dando así lugar a una mejora de la&lt;br /&gt;productividad del humano experto que utiliza este sistema como apoyo, también por ellos&lt;br /&gt;mismos llegan a generar más conocimiento.&lt;br /&gt;Pero bueno, hay que tener en cuenta que todo esto no es un fin en sí mismo, la última&lt;br /&gt;palabra siempre depende del empresario...&lt;br /&gt;&lt;div class="cita"&gt;Luis Sánchez Castellanos&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-1716919855604450725?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/M3hKjwIHXjyRaXjO9TMGnBT_5vM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M3hKjwIHXjyRaXjO9TMGnBT_5vM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/M3hKjwIHXjyRaXjO9TMGnBT_5vM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M3hKjwIHXjyRaXjO9TMGnBT_5vM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/arWRozHJJcI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/1716919855604450725/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/02/business-intelligence.html#comment-form" title="1 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1716919855604450725?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1716919855604450725?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/arWRozHJJcI/business-intelligence.html" title="Business Intelligence" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/02/business-intelligence.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MDRHYycCp7ImA9WxVQF0s.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-1649876511731724322</id><published>2009-02-04T18:42:00.000+01:00</published><updated>2009-02-04T18:44:35.898+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-04T18:44:35.898+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="historia" /><category scheme="http://www.blogger.com/atom/ns#" term="mejor" /><category scheme="http://www.blogger.com/atom/ns#" term="mundo" /><category scheme="http://www.blogger.com/atom/ns#" term="anuncio" /><category scheme="http://www.blogger.com/atom/ns#" term="offblog" /><title>[Off-Blog] El mejor anuncio de la historia</title><content type="html">Tenía que ponerlo.. ¡que fuerte que tenga que ser de lavadoras! me habría gustado haber visto al tío del casting "tu sí.. tu sí.. tu también..."&lt;br /&gt;&lt;div align="center"&gt;&lt;object type="application/x-shockwave-flash" data="http://zappinternet.com/v/JuJmZarHit" height="350" width="425"&gt;&lt;param name="FlashVars" value="allowFullScreen=true"&gt;&lt;param name="movie" value="http://zappinternet.com/v/JuJmZarHit"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-1649876511731724322?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TquTl8dDCXqKysbVUkGXvTz_kW4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TquTl8dDCXqKysbVUkGXvTz_kW4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TquTl8dDCXqKysbVUkGXvTz_kW4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TquTl8dDCXqKysbVUkGXvTz_kW4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/60qTEjmi42U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/1649876511731724322/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/02/off-blog-el-mejor-anuncio-de-la.html#comment-form" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1649876511731724322?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1649876511731724322?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/60qTEjmi42U/off-blog-el-mejor-anuncio-de-la.html" title="[Off-Blog] El mejor anuncio de la historia" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/02/off-blog-el-mejor-anuncio-de-la.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQCSH8-fip7ImA9WxVQFkg.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-6542189063326054620</id><published>2009-02-03T09:37:00.000+01:00</published><updated>2009-02-03T09:39:29.156+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-03T09:39:29.156+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="angel arens" /><category scheme="http://www.blogger.com/atom/ns#" term="fase" /><title>Otra frase..</title><content type="html">&lt;div class="frase"&gt;Internet es el sistema nervioso del mundo y nosotros debemos ser neuronas que aporten pequeños pulsos electricos para que el gran cerebro funcione bien. &lt;/div&gt;&lt;div class="cita"&gt; Angel Arens  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-6542189063326054620?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ywkFuyCdpKeNOa4c_UW17nbb900/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ywkFuyCdpKeNOa4c_UW17nbb900/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ywkFuyCdpKeNOa4c_UW17nbb900/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ywkFuyCdpKeNOa4c_UW17nbb900/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/w92a7hUsmWU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/6542189063326054620/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/02/otra-frase.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/6542189063326054620?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/6542189063326054620?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/w92a7hUsmWU/otra-frase.html" title="Otra frase.." /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/02/otra-frase.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkMMQHkycSp7ImA9WxVQFU4.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-4559744108819995526</id><published>2009-01-31T11:27:00.000+01:00</published><updated>2009-02-02T00:21:21.799+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-02T00:21:21.799+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dwr" /><category scheme="http://www.blogger.com/atom/ns#" term="jsp" /><category scheme="http://www.blogger.com/atom/ns#" term="raytracing" /><category scheme="http://www.blogger.com/atom/ns#" term="numeros primos" /><category scheme="http://www.blogger.com/atom/ns#" term="ajax" /><category scheme="http://www.blogger.com/atom/ns#" term="paralelismo" /><title>Paralelismo con AJAX</title><content type="html">La idea de probar con un tema así, me vino a principios de curso, por un miniproyecto libre que nos pidió un profesor relacionado con el paralelismo, había probado PVM, MPI (a nivel de librería) en C  y me animé a probar hacerlo con &lt;span style="font-weight: bold;"&gt;AJAX &lt;/span&gt;a ver que pasaba.&lt;br /&gt;Lo malo de AJAX es la plataforma sobre la que se mueve, hay que pensar que los clientes (los usuarios) tendrán como ésta su navegador, por lo que no puedes esperar la velocidad de C.&lt;br /&gt;Lo bueno es, aparte de la multiplataformidad (hasta las &lt;a href="http://www.microsiervos.com/archivo/gadgets/nevera-definitiva.html"&gt;neveras&lt;/a&gt; tienen navegador de Internet), la cantidad de &lt;span style="font-style: italic;"&gt;aplicaciones&lt;/span&gt; cliente que pueden entrar.  Con los navegadores de Internet pasa un poco como con los zombies: Son &lt;em&gt;lentos&lt;/em&gt;. Son débiles. Son &lt;em&gt;tontos&lt;/em&gt;. Pero ante todo, son &lt;em&gt;MUCHOS&lt;/em&gt;.&lt;br /&gt;Hice dos aplicaciones, una para calcular números primos a base de fuerza bruta, y luego otra que consistía en adaptar un &lt;a href="http://labs.flog.co.nz/raytracer/"&gt;algoritmo de RayTracing en javascript&lt;/a&gt; a una versión paralela, para la comunicación utilicé la librería &lt;a href="http://directwebremoting.org/"&gt;&lt;span style="font-weight: bold;"&gt;DWR&lt;/span&gt;&lt;/a&gt; para poder utilizar &lt;a href="http://java.sun.com/"&gt;&lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt;&lt;/a&gt; y las páginas en &lt;span style="font-weight: bold;"&gt;JSP.&lt;/span&gt;&lt;br /&gt;He subido ambos miniproyectos a mi cuenta en &lt;a href="http://www.box.net/"&gt;Box.net&lt;/a&gt; (debajo del post lo tenéis) para que podáis probarlos si queréis, tienen la documentación tal cual se la envié al profesor con las pruebas.  De todos modos os pongo una pequeña explicación:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Números primos&lt;/span&gt;&lt;br /&gt;Por la parte del servidor hay una base de datos en MySQL y sus funciones son las de etiquetar a los que entran (algo así como un ID para saber quien hace qué), bajo petición decirles qué valor deben mirar y recibir resultados... simple.  Claramente ante la preguntas &lt;span style="font-style: italic;"&gt;¿ya pero si entran dos a la vez? &lt;/span&gt;o &lt;span style="font-style: italic;"&gt;¿cuando hay tanta distancia entre dos primos que no recibe datos y siempre va a pedir empezar desde el mismo valor a todos los que entren? &lt;/span&gt;o&lt;span style="font-style: italic;"&gt; ¿no sería preferible enviar varios valores a mirar a enviar valor por valor de forma individual?&lt;/span&gt; hay una fácil respuesta: esto es para probar hacer paralelismo con AJAX, no para calcular todos los números primos del mundo, obviamente &lt;span style="font-weight: bold;"&gt;fuerza bruta&lt;/span&gt; no es la mejor forma de hacer las cosas, pero sí experimentar con tecnologías que permiten la creación de grids sin necesidad de descargar software de terceros, con los riesgos que ello suele conllevar.&lt;br /&gt;El cliente por otra parte, lo que hace es entrar, recibir el id y pedir números para empezar a calcular como loco, por cada resultado que reciba lo manda junto con su id al servidor, y punto.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;RayTracing&lt;/span&gt;&lt;br /&gt;El algoritmo de raytracing va pixel por pixel, calculando el recorrido que hace un rayo de luz desde ese punto hasta un cierto número de niveles que se especifica en el código.&lt;br /&gt;Me explico, desde un punto, se lanza un rayo hacia delante, si se topa con un objeto (por ejemplo una esfera) calcula la dirección que tomaría el rayo dependiendo del material de dicho objeto, si por ejemplo es transparente o semitransparente, habría reflexión y refracción, este rayo se prolongaría rebotando entre el número de objetos que desees (niveles) y así pixel por pixel, al final de tanto rebote obtendrías una información de color en tres valores (rojo, verde y azul).&lt;br /&gt;Pues la idea era que los clientes hicieran la fila que el servidor les dijese y devolviesen la información de todos esos colores en un array de X elementos, donde X se corresponde con la anchura de la imagen.&lt;br /&gt;Tal y como se programó, básicamente el maestro ante de hacer una fila pregunta al servidor &lt;span style="font-style: italic;"&gt;¿esta fila está hecha?&lt;/span&gt;, si es que sí, recibe la información de los colores, si no los calcula él.  Los clientes calculan partiendo desde la parte inferior de la imagen y el master desde la parte superior, hice esto, mas que nada para ver hasta que fila se llega con los clientes, es una forma de medir cuanta mejora hay añadiendo clientes al sistema.&lt;br /&gt;Recuerdo pensar que habría ido mejor si hubiese granulado más las filas de la imagen, por ahora se pide a cada cliente que vaya dibujando una fila de pixels, una fila entera, pero cuando la imagen es muy ancha, tiene que calcular un array de X elementos, que a su vez tiene tres elementos más en coma flotante (los tres colores).  Total, que al final tienes X*3 elementos para enviar por Internet, por lo que no salía rentable, ya que el ordenador maestro también va calculando y en casos de tardar mucho en llegar la información, sale mejor que haga todos los cálculos éste.  La idea era dividir bajo algún concepto esa fila, de modo que realmente se pediría un rango de pixels al cliente.&lt;br /&gt;Buff, madre mía que mareo de palabras, el caso era símplemente que hay mucho potencial en Internet respecto al tema del paralelismo y más aún con herramientas como puede ser AJAX o Comet, lo único es echarle imaginación.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;embed src="http://www.box.net/static/flash/box_explorer.swf?widgetHash=4x0g28piur&amp;amp;cl=0" wmode="transparent" type="application/x-shockwave-flash" width="300" height="230"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-4559744108819995526?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6BEzycpLigt5YlsVQdxKaPFiMtQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6BEzycpLigt5YlsVQdxKaPFiMtQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6BEzycpLigt5YlsVQdxKaPFiMtQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6BEzycpLigt5YlsVQdxKaPFiMtQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/qAgVGxP86Fc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/4559744108819995526/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/01/paralelismo-con-ajax.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/4559744108819995526?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/4559744108819995526?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/qAgVGxP86Fc/paralelismo-con-ajax.html" title="Paralelismo con AJAX" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/01/paralelismo-con-ajax.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QBQ3w5eip7ImA9WxVQE00.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-5276827659722288846</id><published>2009-01-29T22:48:00.000+01:00</published><updated>2009-01-30T09:49:12.222+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-30T09:49:12.222+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="síndrome" /><category scheme="http://www.blogger.com/atom/ns#" term="ciberéntico" /><category scheme="http://www.blogger.com/atom/ns#" term="artículo" /><category scheme="http://www.blogger.com/atom/ns#" term="diógenes" /><title>Síndrome de Diógenes cibernético</title><content type="html">&lt;p style="text-align: justify;"&gt;Tras el paso por alguna que otra party (o lan-party como también les llaman), siempre me he dado cuenta de detalles que me han llamado la atención.  No me refiero a la capacidad del ser humano de dormir sobre su propio ordenador (hecho que me ha demostrado la capacidad de aguantar peso de los teclados), o a la de los amiguetes que juegan a poner cosas sobre el que duerme y el que lo despierta pierde, o a la capacidad de correr muerto de sueño detrás de los amiguetes que te han puesto esas cosas mientras dormías, o que te toque aguantar despierto los tres días, solo por el hecho de no querer darle la oportunidad a un amigo cabroncete, que se dedica a tirarte fotos mientras duermes, para luego mostrar al mundo una de tus facetas mas tiernas (siempre y cuando sean fotos y no se dedique a grabar tus ronquidos).&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Lo que me ha sorprendido siempre, y me incluyo en el conjunto de seres humanos que lo realizan, ha sido la capacidad de acumular el montón de información (resumamos el amasijo de fotografías, vídeos, películas, series, imágenes chocantes, porno, música y software en la simple y llana palabra &lt;strong&gt;información&lt;/strong&gt;).  Al final resulta enfermizo, entrar en todas esas carpetas compartidas o las listas personales del &lt;abbr title="Direct Connect"&gt;DC++&lt;/abbr&gt; (o programas similares) de los amigos, ves basura a raudales.  Te pones a ver todo lo que comparten y preguntas al poseedor &lt;strong&gt;&lt;em&gt;¿pero todo esto lo has visto o vas a verlo alguna vez?&lt;/em&gt;&lt;/strong&gt;  la respuesta suele ser típicamente que &lt;strong&gt;&lt;em&gt;no&lt;/em&gt;&lt;/strong&gt; a ambos tiempos verbales (o &lt;strong&gt;no&lt;/strong&gt; y &lt;strong&gt;no sé&lt;/strong&gt;), el caso es que acabas descargándolo todo &lt;em&gt;por si acaso&lt;/em&gt;.  A veces no sé, parece que se quiera guardar por si viene una glaciación y nos toca quedarnos atrapados en casa, me imagino la escena:&lt;/p&gt;&lt;p style="text-align: justify;"&gt;- ¡¡Oh!! ¡vamos a estar semanas sepultados en la nieve!&lt;br /&gt;- ¡Tranquilos, tengo las cuatro temporadas de House!&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Claro, ya nada puede pasar, si viene un oso polar a comernos, pues nada se le invita a ver House y quien sabe... quizá traiga algún hallazgo... o quizá sea el oso que sale en Lost, por lo que habrá que usar palanca y un poco de paciencia para poder meter al oso polar en tu disco duro, pero vamos, nunca se sabe, el mundo es un lugar misterioso.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;El caso es que te das cuenta que la gente descarga por el simple hecho de coleccionar, también por el mero hecho de tener disco duro suficiente, quizá también porque vas a una party y te mola decir, así como el que habla de golondrinas, &lt;strong&gt;Na... pues pasaba por aquí y me he dicho, "pues mira voy a compartir estos cinco teras de hallazgos con los plebeyos estos"&lt;/strong&gt; y quedas como Dios.  &lt;/p&gt;&lt;p style="text-align: justify;"&gt;También, porque la gente que comparte estas aficiones se pica a comentar hallazgos que... como no, necesitas tener en tu frágil soporte de información, para algún día poder disfrutarlo... tengo mi móvil repleto de nombres de películas y series raras para.. ejem, comprarlas.  Pero conforme vas recibiendo información sobre nuevos hallazgos, empiezas a cambiar de soporte esos que te metiste anteriormente, que te prometiste ver algún día y aún no lo has hecho, por otros que te prometes ver antes de volver a hacer un trasiego de datos de ese tipo y que por cierto, te adelanto que no verás.  Vamos... acumular basura &lt;em&gt;por si algún día me pasa algo y me quedo en casa atrapado&lt;/em&gt;.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Mi conclusión tras todos estos años de ver la evolución de buscar servidores ftp en &lt;a href="http://www.yahoo.es/"&gt;Yahoo&lt;/a&gt;, o usar el protocolo &lt;a href="http://es.wikipedia.org/wiki/Archie"&gt;Archie&lt;/a&gt;, la aparición de &lt;a href="http://es.wikipedia.org/wiki/Napster"&gt;Napster&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Gnutella"&gt;gnutella&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Limewire"&gt;limewire&lt;/a&gt;, el &lt;a href="http://es.wikipedia.org/wiki/EDonkey2000"&gt;eDonkey2000&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Morpheus"&gt;Morpheus&lt;/a&gt;, &lt;a href="http://emule-project.net/"&gt;eMule&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Protocolo_BitTorrent"&gt;Bittorrent&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Pando_%28programa%29"&gt;Pando&lt;/a&gt;... buff.. la solución es que da igual, borra, no pasa nada, siempre podrás volver a bajar o pedirlo a un amigo... (eso sí, siempre que sus derechos no hayan sido comprados en tu país).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-5276827659722288846?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KCSxcTS-YXpTaNAjR5FhpJZjFR4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KCSxcTS-YXpTaNAjR5FhpJZjFR4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KCSxcTS-YXpTaNAjR5FhpJZjFR4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KCSxcTS-YXpTaNAjR5FhpJZjFR4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/A1rTIGa5XP0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/5276827659722288846/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/01/sindrome-de-diogenes-cibernetico.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/5276827659722288846?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/5276827659722288846?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/A1rTIGa5XP0/sindrome-de-diogenes-cibernetico.html" title="Síndrome de Diógenes cibernético" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/01/sindrome-de-diogenes-cibernetico.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEMRX87eCp7ImA9WxVQEkw.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-3634511579035253041</id><published>2009-01-28T23:40:00.000+01:00</published><updated>2009-01-29T08:04:44.100+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T08:04:44.100+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="comet" /><category scheme="http://www.blogger.com/atom/ns#" term="ajax" /><category scheme="http://www.blogger.com/atom/ns#" term="dojo" /><category scheme="http://www.blogger.com/atom/ns#" term="web" /><title>Comet o Reverse AJAX, o como más os guste llamarlo...</title><content type="html">Muy buenas :), una vez mas vuelvo a escribir para hablar de algún tema que ha suscitado mi interés (la verdad es que tengo varios para escribir y demasiado poco tiempo :P).&lt;br /&gt;El caso es que una vez un amigo mío me comentó que había salido algo que era como AJAX pero en versión push, antes una aclaración, una conexión &lt;span style="font-weight: bold;"&gt;pull &lt;/span&gt;es que tu &lt;span style="font-style: italic;"&gt;tiras&lt;/span&gt; de los datos hacia tí de algún modo (en el caso de AJAX tu naveador hace una petición y el servidor en base a eso da una respuesta), y con una &lt;span style="font-weight: bold;"&gt;push &lt;/span&gt;es que el servidor te manda información (la &lt;span style="font-style: italic;"&gt;empuja&lt;/span&gt;) cuando ocurra algún evento interno suyo o necesite dar algún tipo de información.&lt;br /&gt;Pues he estado buscando y resulta que el inventillo, obviamente, existe y se llama &lt;span style="font-weight: bold;"&gt;Comet &lt;/span&gt;y como no, lleva ya un tiempo existiendo...&lt;br /&gt;Básicamente Comet se basa en la idea de que, a diferencia de AJAX para el que cada vez que quieres recibir datos, debes hacer una petición.  Con Comet la cosa cambia, funciona de modo que haces una petición de tipo &lt;span style="font-style: italic;"&gt;multipart&lt;/span&gt;, que lo que significa es que se va a abrir un canal de comunicación que va a ir recibiendo el dato en varias partes, por lo que no se cierra y para lo cual el servidor tiene la posibilidad de ir enviando datos a cascoporro.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://alex.dojotoolkit.org/wp-content/Comet.png" target="_blank"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 175px; height: 258px;" src="http://alex.dojotoolkit.org/wp-content/Comet.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Esta técnica de programación tiene cabida en muchas salidas en el mundo de la comunicación por Internet, desde programas de chat, como el &lt;a href="http://talk.google.com/"&gt;Google Talk&lt;/a&gt; para el que ya no tienes que ir mandando peticiones para ver si alguien ha escrito algo, también para servidores de correo en los que pasa parecido a los programas de chat, sistemas de estadísticas en tiempo real, sistemas para ver el estado de los servidores... y un sinfín de utilidades.&lt;br /&gt;He encontrado un esquema de comunicación comparando AJAX y Comet, se nota la disminución de peticiones y, por lo tanto, de ancho de banda así como de sobrecarga del navegador por la eliminación de timers, podéis hacer click en él para verlo en grande.&lt;br /&gt;Si queréis probarlo (yo aún no lo he hecho, escribiré un post con las pruebas que haga), el &lt;a href="http://cometdproject.dojotoolkit.org/"&gt;Toolkit de Dojo&lt;/a&gt; lo implementa.&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-3634511579035253041?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/s2i76csN6NLnl_4LdpxrBPQPqsE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s2i76csN6NLnl_4LdpxrBPQPqsE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/s2i76csN6NLnl_4LdpxrBPQPqsE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s2i76csN6NLnl_4LdpxrBPQPqsE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/mhdxqbbR85o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/3634511579035253041/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/01/comet-o-reverse-ajax-o-como-mas-os.html#comment-form" title="2 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/3634511579035253041?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/3634511579035253041?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/mhdxqbbR85o/comet-o-reverse-ajax-o-como-mas-os.html" title="Comet o Reverse AJAX, o como más os guste llamarlo..." /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/01/comet-o-reverse-ajax-o-como-mas-os.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4MR3w8eSp7ImA9WxVQEUg.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-1651889061922089742</id><published>2009-01-28T08:23:00.000+01:00</published><updated>2009-01-28T17:09:46.271+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-28T17:09:46.271+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="frase wozniak" /><title>Una frase..</title><content type="html">&lt;h1 class="frase"&gt;Al principio no había ordenadores en las casas, tuvimos que hacer que la palabra ordenador fuera compatible con las casas.&lt;/h1&gt;&lt;span class="cita"&gt;Steve Wozniak&lt;/cita&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-1651889061922089742?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EvSJVMpqCgsqZUX7RNu_cp4_Twc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EvSJVMpqCgsqZUX7RNu_cp4_Twc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EvSJVMpqCgsqZUX7RNu_cp4_Twc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EvSJVMpqCgsqZUX7RNu_cp4_Twc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/6dkaqXCvCXg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/1651889061922089742/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/01/una-frase.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1651889061922089742?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/1651889061922089742?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/6dkaqXCvCXg/una-frase.html" title="Una frase.." /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/01/una-frase.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4FQHcycSp7ImA9WxVQEEk.&quot;"><id>tag:blogger.com,1999:blog-2097336122438530497.post-7248451909698670908</id><published>2009-01-26T18:16:00.000+01:00</published><updated>2009-01-27T08:21:51.999+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-27T08:21:51.999+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="programacion" /><category scheme="http://www.blogger.com/atom/ns#" term="json" /><title>clases javascript para json</title><content type="html">&lt;div style="text-align: justify;"&gt;En el trabajo, decidí utilizar &lt;a href="http://json.org/" title="JavaScript Object Notation"&gt;JSON&lt;/a&gt; para el trasiego de datos, que la verdad, es bastante grande y por lo tanto lo mejor es organizarse, buscar alternativas a ir creando parámetros de forma dinámica para enviar por POST y sobre todo, ligeras (XML acaba metiendo muchos caracteres).&lt;br /&gt;Por si alguno aún no sabe lo que es &lt;abbr title="JavaScript Object Notation"&gt;JSON&lt;/abbr&gt;, nada más que decir que es un formato de intercambio de datos ligero y fácilmente entendible para el ser humano (a menos que el chorizo sea muy grande claro :P).  Un ejemplo de dato es:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div class="codigo"&gt;["nombre":"Manolo","apellido":"Kabezabolo"]&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Y un ejemplo de array y luego los mezclo:&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div class="codigo"&gt;["hola",4,"foo","bar","etc]&lt;br /&gt;["nombre":"Manolo","array1":["hola",4,"foo","bar","etc],"objetoJSON":{"obj":"valor"}]&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Como habéis visto, se puede encadenar entre objetos también, bueno, símplemente se manda como una cadena por un único parámetro y luego accedes como el objeto JSON que es, podéis utilizar la librería oficial o alguna librería que haga alguien, yo para javascript me he  un par de clases simples para la crearme objetos y arrays:&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;function JSONObject(){&lt;br /&gt;   this.key = new Array();&lt;br /&gt;   this.value = new Array();&lt;br /&gt;   this.addObject = function(key, value){&lt;br /&gt;       if(key==null)&lt;br /&gt;           key = "";&lt;br /&gt;       if(value==null) value = "";&lt;br /&gt;     &lt;br /&gt;       this.key.push(key);&lt;br /&gt;       this.value.push(value);&lt;br /&gt;   };&lt;br /&gt;// función que pasa a string&lt;br /&gt;   this.toString = function(){&lt;br /&gt;       var string = "";&lt;br /&gt;       for(var i=0; i&amp;lt;this.key.length; i++){&lt;br /&gt;           if(i!=0) string+=",";&lt;br /&gt;           string+='"'+this.key[i]+'":';&lt;br /&gt;           // si es un string, se pone entre comillas&lt;br /&gt;           if((typeof this.value[i]) == "string")&lt;br /&gt;               string+='"'+this.value[i]+'"';&lt;br /&gt;           else&lt;br /&gt;               string+=this.value[i];&lt;br /&gt;       }&lt;br /&gt;       return "{"+string+"}";&lt;br /&gt;   };&lt;br /&gt;// función para obtener un objeto de una posición concreta&lt;br /&gt;   this.getObject = function(index){&lt;br /&gt;       var ret = null;&lt;br /&gt;       if(0&amp;lt;=index &amp;amp;&amp;amp; index&amp;lt;this.key.length)&lt;br /&gt;           ret = "{"+this.key[index]+":"+this.value[index]+"}";&lt;br /&gt;       return ret;&lt;br /&gt;   };&lt;br /&gt;// Función para devolver una clave de una posición&lt;br /&gt;   this.getKey = function(index){&lt;br /&gt;       var ret=null;&lt;br /&gt;       if(0&amp;lt;=index &amp;amp;&amp;amp; index&amp;lt;this.key.length)&lt;br /&gt;           ret=this.key[index];&lt;br /&gt;       return ret;&lt;br /&gt;   };&lt;br /&gt;// Función para cambiar una clave que está en una posición concreta&lt;br /&gt;   this.setKey = function(index,key){&lt;br /&gt;       if(key==null) key = "";&lt;br /&gt;       if(0&amp;lt;=index &amp;amp;&amp;amp; index&amp;lt;this.key.length)&lt;br /&gt;           this.key[index]=key;&lt;br /&gt;   };&lt;br /&gt;// Función que cambia una clave a partir de otra (cambia la primera que ve)&lt;br /&gt;   this.setKeyByName = function(old_key,new_key){&lt;br /&gt;       if(new_key==null) new_key = "";&lt;br /&gt;       for(var i=0; i&amp;lt;this.key.length; i++)&lt;br /&gt;           if(this.key[i]==old_key){&lt;br /&gt;               this.key[i]=new_key;&lt;br /&gt;               // salgo porque solo modifica&lt;br /&gt;               // el primero que encuentra&lt;br /&gt;               break;&lt;br /&gt;           }&lt;br /&gt;   };&lt;br /&gt;// obtiene el valor de una posición&lt;br /&gt;   this.getValue = function(index){&lt;br /&gt;       var ret=null;&lt;br /&gt;       if(0&amp;lt;=index &amp;amp;&amp;amp; index&amp;lt;this.value.length)&lt;br /&gt;           ret=this.value[index];&lt;br /&gt;       return ret;&lt;br /&gt;   };&lt;br /&gt;// Modifica el valor de una posición&lt;br /&gt;   this.setValue = function(index,value){&lt;br /&gt;       if(value==null) value = "";&lt;br /&gt;       if(0&amp;lt;=index &amp;amp;&amp;amp; index&amp;lt;this.value.length)&lt;br /&gt;           this.value[index]=value;&lt;br /&gt;   };&lt;br /&gt;// Modifica el valor de un objeto con un valor concreto (el primero que se encuentre)&lt;br /&gt;   this.setValueByName = function(old_value,new_value){&lt;br /&gt;       if(new_value==null) new_value = "";&lt;br /&gt;       for(var i=0; i&amp;lt;this.value.length; i++)&lt;br /&gt;           if(this.value[i]==old_value){&lt;br /&gt;               this.value[i]=new_value;&lt;br /&gt;               // salgo porque solo modifica&lt;br /&gt;               // el primero que encuentra&lt;br /&gt;               break;&lt;br /&gt;           }&lt;br /&gt;   }&lt;br /&gt;// para ver el tipo de objeto que es&lt;br /&gt;   this.getType="JSONObject";&lt;br /&gt;}  &lt;br /&gt; &lt;br /&gt;function JSONArray(){&lt;br /&gt;   this.elements = new Array();&lt;br /&gt;// añade un item al array&lt;br /&gt;   this.addItem = function(value){&lt;br /&gt;   // si es un string lo entrecomilla&lt;br /&gt;       if((typeof value) == "string")&lt;br /&gt;           value = '"'+value+'"';&lt;br /&gt;       this.elements.push(value);&lt;br /&gt;   };&lt;br /&gt;// pasa a string el array&lt;br /&gt;   this.toString = function(){&lt;br /&gt;      return "["+this.elements.join(",")+"]";&lt;br /&gt;   };&lt;br /&gt;// devuelve un item&lt;br /&gt;   this.getItem = function(index){&lt;br /&gt;       var ret = null;&lt;br /&gt;       if(0&amp;lt;=index &amp;amp;&amp;amp; index&amp;lt;this.elements.length)&lt;br /&gt;           ret = this.elements[index];&lt;br /&gt;       return ret;&lt;br /&gt;   };&lt;br /&gt;// cambia el valor de un item&lt;br /&gt;   this.setItem = function(index,item){&lt;br /&gt;       if(item==null) item="";&lt;br /&gt;       if(0&amp;lt;=index &amp;amp;&amp;amp; index&amp;lt;this.elements.length)&lt;br /&gt;           this.elements[index] = item;&lt;br /&gt;   };&lt;br /&gt;// obtiene unos valores en un rango pedido: array.getRange(2,4)&lt;br /&gt;   this.getRange = function(from,to){&lt;br /&gt;       var ret = null;&lt;br /&gt;       if(from&amp;lt;=to &amp;amp;&amp;amp; 0&amp;lt;=from &amp;amp;&amp;amp; to&amp;lt;this.elements.length)&lt;br /&gt;       // a slice hay que decirle en el "to" que uno mas, porque es a partir&lt;br /&gt;       // de donde corta&lt;br /&gt;           ret = this.elements.slice(from,to+1);&lt;br /&gt;       return ret;&lt;br /&gt;   }&lt;br /&gt;// para ver el tipo de objeto que es&lt;br /&gt;   this.getType="JSONArray";&lt;br /&gt;}  &lt;br /&gt;// Ahora probamos ambas clases&lt;br /&gt;// creamos el objeto: '{"obj1":"valor1","obj2":"valor2","obj3":"valor3"}';&lt;br /&gt;// creamos el array: '["item1","item2","item3","item4"]';&lt;br /&gt;var object = new JSONObject();&lt;br /&gt;object.addObject("key1","value1");&lt;br /&gt;object.addObject("key2","value2");&lt;br /&gt;object.addObject("key3","value3");&lt;br /&gt;object.addObject("key4","value4");&lt;br /&gt;var array = new JSONArray();&lt;br /&gt;array.addItem(2);&lt;br /&gt;array.addItem("item1");&lt;br /&gt;array.addItem(4);&lt;br /&gt;array.addItem("item2");&lt;br /&gt;document.write(object.toString()+"&lt;br /&gt;");&lt;br /&gt;document.write(array.toString()+"&lt;br /&gt;");&lt;br /&gt;object.addObject("array!",array);&lt;br /&gt;document.write(object.toString()+"&lt;br /&gt;");&lt;br /&gt;object.setKeyByName("key3","3yek");&lt;br /&gt;document.write(object.toString()+"&lt;br /&gt;");&lt;/div&gt;&lt;br /&gt;Las salidas que se obtienen son las siguientes:&lt;br /&gt;&lt;div class="codigo"&gt;&lt;br /&gt;{"key1":"value1","key2":"value2","key3":"value3","key4":"value4"}&lt;br /&gt;[2,"item1",4,"item2"]&lt;br /&gt;{"key1":"value1","key2":"value2","key3":"value3","key4":"value4","array!":[2,"item1",4,"item2"]}&lt;br /&gt;{"key1":"value1","key2":"value2","3yek":"value3","key4":"value4","array!":[2,"item1",4,"item2"]}&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;No solo para enviar datos entre cualquier plataforma y lenguajes sirve JSON, usando esto con AJAX, tenemos lo que llaman JSON-RPC, sí las llamadas a procedimientos remotos utilizando como plataforma de intercambio de datos a JSON.  De modo que, por ejemplo con el mundo Java, tenemos JSON-RPC-Java que es una tecnología que permite realizar comunicaciones Ajax entre el cliente y el servidor J2EE, hacer llamadas a funciones de clases Java desde JavaScript, con capacidad para serializar objetos Java y convertirlos en objetos JavaScript y todo ello, de forma transparente al programador.  He encontrado un ejemplo bastante exhaustivo sobre este tema, con el cual veo una tontería escribir nada aquí, de modo que os pongo el enlace y si tenéis curiosidad pues le pegáis un vistacillo :D:&lt;br /&gt;&lt;a href="http://www.ateneatech.com/blog/json-rpc-java-comunicaciones-ajax-transparentes-tutorial-completo-y-ejemplos"&gt;http://www.ateneatech.com/blog/json-rpc-java-comunicaciones-ajax-transparentes-tutorial-completo-y-ejemplos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;script type="text/javascript"&gt;&lt;!--
google_ad_client = "pub-8303266431553100";
/*  */
google_ad_slot = "9506582918";
google_ad_width = 728;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"&gt;
&lt;/script&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2097336122438530497-7248451909698670908?l=haprobadoconreiniciar.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/uoEsY2WwssKwIw28ll0Zh2scZ0E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uoEsY2WwssKwIw28ll0Zh2scZ0E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/uoEsY2WwssKwIw28ll0Zh2scZ0E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/uoEsY2WwssKwIw28ll0Zh2scZ0E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/haProbadoConReiniciar/~4/4SSuMSKaH5I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://haprobadoconreiniciar.blogspot.com/feeds/7248451909698670908/comments/default" title="Enviar comentarios" /><link rel="replies" type="text/html" href="http://haprobadoconreiniciar.blogspot.com/2009/01/clases-javascript-para-json.html#comment-form" title="0 comentarios" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/7248451909698670908?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2097336122438530497/posts/default/7248451909698670908?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/haProbadoConReiniciar/~3/4SSuMSKaH5I/clases-javascript-para-json.html" title="clases javascript para json" /><author><name>QuarK::Luis Sánchez Castellanos</name><uri>http://www.blogger.com/profile/13341811432105273927</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>0</thr:total><feedburner:origLink>http://haprobadoconreiniciar.blogspot.com/2009/01/clases-javascript-para-json.html</feedburner:origLink></entry></feed>

