<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!--  generator="meddle/3.0" -->
<rss version="2.0">
	<channel>
		<title>meddle weblog v.3</title>
		<link>http://meddle.dzygn.com</link>
		<description>Weblog sobre dhtml y tecnologías asociadas, así como pensamientos personales y fotografía.</description>
		<language>español</language>
		<copyright>Copyright 2001-2004 Sergi Meseguer</copyright>
		<lastBuildDate>Fri, 21 Nov 2008 17:02:59 -0500</lastBuildDate>
		<docs>http://backend.userland.com/rss</docs> 
		<generator>meddle mysql2php2rss tool v3</generator>
		<managingEditor>meddle@dzygn.com (Sergi Meseguer)</managingEditor> 
		<webMaster>meddle@dzygn.com (Sergi Meseguer)</webMaster>
		<image>
			<url>http://meddle.dzygn.com/avatarv3.jpg</url>
			<title>meddle weblog v3</title>
			<link>http://meddle.dzygn.com/esp/weblog/</link>
		</image>
		<item>
			<title>DHTML está de moda</title>
			<link>http://meddle.dzygn.com/esp/weblog/moda.dhtml/</link>
			<description><p>Año nuevo, vida nueva. Año nuevo, moda nueva. Así que estamos muy contentos de recibir 2005 con noticias de este tipo. Parece que por fin hay gente que apuesta en serio por DHTML para solucionar problemas de navegación o usabilidad, o simplemente creando aplicaciones dinámicas que usan esta tecnología en lugar del omnipresente Flash. Vamos a ver unos cuantos ejemplos.</p>
<ul>
<li>esta impresionante aplicación para visualizar <a href="http://map.search.ch/">mapas de Suiza</a>, incluye efectos de zoom. No, en serio, no es Flash.</li>
<li>Google ha desarrollado recientemente dos proyectos interesantes. En el caso de <a href="http://gmail.google.com/gmail/help/about.html">Gmail</a>,  nos permite chequear el número de emails recibidos sin recargar toda la página (entre otras muchas cosas), mientras que en <a href="http://www.google.com/webhp?complete=1">Google Suggest</a> al ir escribiendo la búsqueda aparecen sugerencias de los términos más parecidos y su número de documentos, adelantándose a tu intención. Estos dos ejemplos usan el objeto <a href="http://developer.apple.com/internet/webcontent/xmlhttpreq.html">XMLHttpRequest</a>, que nos permite realizar peticiones al servidor sin recargar la página. Aquí podeis ver exactamente <a href="http://blog.outer-court.com/archive/2004_12_11_index.html#110276834555565307">cómo funciona el suggest</a>. Podemos esperar más cosas brillantes por parte de Google próximamente, sabiendo que Mr. Boodman <a href="http://youngpup.net/2004/1108055444">se ha pasado a su bando</a>, de momento para mejorar Blogger.</li>
<li>No es que el uso de scripts remotos en tiempo real sea algo nuevo, hasta ahora se usaban varios métodos como el <a href="http://developer.apple.com/internet/webcontent/iframe.html">iframe actuando de buffer</a>, recibiendo datos de una página y escribiendo en una capa, o bien el truco de usar una imagen para añadir scripts, o el menos conocido a la par que elegante método de Dan Pupius (que debo tener por ahí), que representaba una mejora sustancial respecto al <a href="http://www.dotvoid.com/view.php?id=13">pionero</a>. Incluso el ahora de moda XMLHttpRequest es algo viejo, solo que ahora está muy bien implementado en nuevos navegadores. Ya existian los scripts de <a href="http://webfx.eae.net/dhtml/xmlextras/xmlextras.html">WebFX</a> y la <a href="http://sarissa.sourceforge.net/doc/overview-summary.html#overview">Sarissa API</a>. Para no seguir aburriendo con tecnicismos y palabrería, ahí va un pequeño resumen con definiciones y ejemplos de uso en este <a href="http://jpspan.sourceforge.net/wiki/doku.php?id=javascript:xmlhttprequest">wiki de sourceforge</a>.</li>
<li>también interesante resulta el <a href="http://www.squarefree.com/shell/">Javascript Shell</a>, que nos permite hacer pruebas con el DOM usando una interface tipo linea de comandos. </li>
<li>también se pondrá de moda el concepto de <a href="http://www.disenorama.com/articulos/dhtml/dhtml_no_intrusivo.htm">DHTML no intrusivo</a>, por el cual el script es una mejora en usabilidad y nunca un requisito ni el mecanismo para escribir contenido. Ejemplos hay cada vez más, como el excelente <a href="http://slayeroffice.com/code/fancy_menu/">fancy menu</a>, un menú tipo flash basado en listas html, igual que último apaño de un script de Aaron (en este caso el Accelimation) que he hecho para el menú de <a href="http://pixilate.com/">pixilate</a>, o bien <a href="http://phrogz.net/JS/ul2menu/index.html">cualquier</a> <a href="http://www.gazingus.org/html/Using_Lists_for_DHTML_Menus.html">otro</a> <a href="http://www.kryogenix.org/code/browser/aqlists/">script</a> <a href="http://www.kryogenix.org/code/browser/sorttable/">no intrusivo</a></li>
</ul>
<p>Ah, y antes de irme, solamente decir que este año sí que van a fructificar proyectos relacionados con DHTML a nivel local (algo se cuece desde hace un tiempo con <a href="http://kusor.net">Pedro</a> y otros bloggers cercanos) e internacional (<a href="http://13thparallel.com/">13thparallel cambia de formato</a>, el <a href="http://dojotoolkit.org/">Dojo Toolkit</a>, etc). Otro día seguimos.</p></description>
			<pubDate>2005-01-17 19:30:58</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/moda.dhtml/</guid>
		</item>
		<item>
			<title>Programas gratuitos de uso diario</title>
			<link>http://meddle.dzygn.com/esp/weblog/soft.gratuito/</link>
			<description><p>Últimamente se ha hablado mucho del lanzamiento definitivo de la primera versión terminada de <a href="http://www.mozilla.org/products/firefox/">Mozilla Firefox</a>. Sin duda es un buen programa y sobretodo una excelente alternativa a Internet Explorer. Además de la seguridad que ofrece, su navegación por pestañas y su rapidez, lo que a mi entender lo hace tan atractivo (más que <a href="http://www.opera.com/">Opera</a>, la otra gran alternativa) es la gran cantidad de extensiones que tenemos a nuestra disposición, que nos permiten configurar no solo la apariencia sino también las funciones de nuestro navegador. Yo por ejemplo uso las siguientes:</p>
<ul>
<li><a href="https://addons.update.mozilla.org/extensions/moreinfo.php?application=firefox&amp;id=158&amp;vid=1345">Tabbrowser Preferences 1.1.1</a> para mejorar la navegación por pestañas</li>
<li><a href="https://addons.update.mozilla.org/extensions/moreinfo.php?application=firefox&amp;id=60&amp;vid=645">Web Developer 0.8</a> (basado en el anterior <a href="http://placenamehere.com/pnhtoolbar/">PNH Toolbar</a>, al cual mejora bastante) para todo lo relacionado con el desarrollo web, como deshabilitar estilos, visualizar bordes de tablas, editar las CSS de una página al vuelo, etc. </li>
<li><a href="http://greasemonkey.mozdev.org/">greasemonkey</a> permite añadir scripts propios a páginas ajenas, para cambiar su comportamiento. Por ejemplo para hacer que todos las url de una página sean <a href="http://downloads.mozdev.org/greasemonkey/linkify.user.js">enlaces</a>, o <a href="/v3/js/killblank.user.js">destruir</a> los famosos target _blank</li>
<li><a href="https://addons.update.mozilla.org/extensions/moreinfo.php?application=firefox&amp;id=10&amp;vid=664">Adblock</a> permite bloquear elementos no deseables (por ejemplo banners) usando expresiones regulares (para bloquear sitios específicos, carpetas, etc.)</li>
<li><a href="http://pagerankstatus.mozdev.org/">Page Rank Status</a> añade un pequeño icono en la barra de estado para mostrar el page rank de esa página visitada</li>
<li><a href="http://ieview.mozdev.org/">ieview</a> permite mediante el uso del menú contextual abrir esa misma página en Internet Explorer (así no tenemos ni siqueira que copiar y pegar)</li>
<li><a href="https://addons.update.mozilla.org/extensions/moreinfo.php?id=173&amp;vid=331&amp;category=&amp;page=releases">Gmail Notifier</a> para estar al tanto de nuestro buzón de correo en Gmail</li>
<li><a href="http://www.bloglines.com/help/firefox">Bloglines Toolkit</a> permite estar informado de las actualizaciones en nuestra lista de subscripciones a noticias</li>
<li><a href="http://forecastfox.mozdev.org/">ForecastFox</a> nos indica el tiempo que hace fuera y nos da una previsión para los próximos días</li>
</ul>
<p>Asimismo, otra gran noticia ha sido el lanzamiento de la primera versión terminada de <a href="http://www.mozilla.org/projects/thunderbird/">Mozilla Thunderbird</a>, un excelente gestor de correo electrónico. También dispone de numerosas <a href="http://texturizer.net/thunderbird/extensions/">extensiones</a>, pero en este caso yo lo uso tal cual viene de fábrica.</p>
<p>Para finalizar, recomendar de nuevo el uso de un buen programa antivirus como es el <a href="http://www.grisoft.com/">AVG de Grisoft</a>, que además es gratuito. En esta nueva versión (AVG 7.0 Free) hay una utilidad para asociar el antivirus al gestor de correos, con la novedad de que funciona incluso si usamos el Thunderbird. Pefecto.</p></description>
			<pubDate>2004-12-22 08:26:52</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/soft.gratuito/</guid>
		</item>
		<item>
			<title>Actualización de FLACCESS</title>
			<link>http://meddle.dzygn.com/esp/weblog/flash.accesible.v1.3/</link>
			<description><p>Acabo de lanzar la versión 1.3, que incluye algunos cambios respecto a la explicación original de <a href="/esp/weblog/flash.accesible/">cómo usar el script</a>, parámetros, etc (ya han sido actualizados también ahí):</p>
<ul>
<li>Hay una version "ligera", que funciona solamente en navegadores actuales e inserta el flash al vuelo (no tiene la opción de retrasar la carga). </li>
<li>El id del objeto flash debe pasarse junto al argumento ruta (ej.: "fl1,in,out"). Como la versión ligera solamente funciona en navegadores actuales tansolo requiere el id del flash y de su ancestro (no la ruta completa que necesitábamos para ns4).</li>
<li>El id se añade al objeto y al embed. Para evitar duplicar id's embed usará el id en el name y "name"+id en el id. </li>
<li>La cadena ruta también se enviará como flashvar, para que podamos acceder a ella desde javascript. </li>
<li>El elemento ancestro adquiere el mismo tamaño que el objeto flash (para ajustar el flujo de la página). </li>
</ul>
<p>Bájate el último <a href="/v3/js/flaccess.v1.3.rar">archivo comprimido</a> con ejemplos para verlo funcionando.</p></description>
			<pubDate>2004-12-09 10:15:38</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/flash.accesible.v1.3/</guid>
		</item>
		<item>
			<title>¡Quiero mi ventana, joder! (o como destruir los target _blank)</title>
			<link>http://meddle.dzygn.com/esp/weblog/destruir.target/</link>
			<description><p>Siempre he pensado que el usuario debe poder elegir dónde quiere cargar un nuevo documento desde un enlace. Yo defiendo que como desarrollador puedes usar una cookie y ofrecer esa posibilidad si el usuario quiere, pero solamente si quiere (podeis ver el formulario de preferencias al fondo de la página). Mucha otra gente opina que lo mejor es no dejarles pensar y abrirlo todo en una ventana nueva. Odio esos casos. ¿Qué pasa si a mi no me da la gana irme de mi ventana? Oye, que si me gusta tu web ya volveré, tranquilo... Pues no, se empeñan en usar el target _blank. Bueno, pues todo esto se ha terminado. Adiós a los malditos target _blank. Si quereis saber cómo, seguid leyendo...</p></description>
			<pubDate>2004-12-09 04:38:02</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/destruir.target/</guid>
		</item>
		<item>
			<title>Artículo sobre DHTML no intrusivo</title>
			<link>http://meddle.dzygn.com/esp/weblog/articulo.disenorama/</link>
			<description><p>Acaba de salir del horno un interesante artículo en <a href="http://www.disenorama.com/" title="excelente web de recursos">diseñorama</a> sobre DHTML y cómo programar páginas web manteniendo la accesibilidad, lo que últimamente se denomina <a href="http://www.disenorama.com/articulos/dhtml/dhtml_no_intrusivo.htm">DHTML no intrusivo</a>. Ah, si, se me olvidaba, escrito por el menda, si tienen algún comentario se agradecerá la crítica constructiva, tanto si quieren dejarlo allí como aquí.Poco a poco iré añadiendo más ejemplos por aquí, si el tiempo lo permite.</p></description>
			<pubDate>2004-12-01 17:43:40</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/articulo.disenorama/</guid>
		</item>
		<item>
			<title>Cómo añadir números de linea a los bloques de código</title>
			<link>http://meddle.dzygn.com/esp/weblog/numeros.linea/</link>
			<description><p>Acabo de descubrir cómo añadir números de linea a los bloques de código que están dentro de texto <code>pre</code>formateado. Se trata de usar una función javascript que recoge todos los elementos <code>pre</code>, y llama a una expresión regular que devuelve el número de lineas en ese bloque. Entonces, usando innerHTML simplemente añadimos una capa <code>div</code> que contiene los números de linea y se le da estilo usando CSS. El javascript, que forma parte de un espacio propio (un objeto literal para encapsular sus funciones) sería algo del estilo:</p>
<pre><code>
// adds line numbers to code sections:
numberCodeTags : function(){
	var PRE = document.getElementsByTagName('pre'); 
	var nl = /\n+/mg;
	for (var i = 0; i &lt; PRE.length; i++) {
		var t = PRE[i].innerHTML;
//mozilla/ff cannot select all lines of a code element 
//that is inside a pre element:
		if(document.addEventListener && !window.opera) {
			Extras.getCodeText(PRE[i]);
		}
			
//will only work in mozilla+op (IE replaces \n by a space so its useless):
		var NL = Extras.getMatchArray(t,nl);
		if(NL) {
		var numeros = "";
		for (var lineas = 1; lineas &lt; NL; lineas++) 
		numeros += lineas +"\n";
		PRE[i].innerHTML += "&lt;div class='lines'&gt;"+numeros+"&lt;/div&gt;";
		}
	}
},
	
// matches a regexp to a string, returns array
getMatchArray : function(myString,myRegExp){
	return myString.match(myRegExp).length;
},

// FF  hack to make easier select all lines of a 
//code element that is inside a pre element:
getCodeText : function(obj){
	var color = CSS.getStyle(obj.firstChild,"color");
	var bgcolor = CSS.getStyle(obj.firstChild,"backgroundColor");
	if(bgcolor=="transparent") bgcolor="white";
	obj.onmouseover = function(){
		obj.firstChild.style.color = bgcolor;
		obj.firstChild.style.backgroundColor = color;
	}
	obj.onmouseout = function(){
		obj.firstChild.style.color = color;
		obj.firstChild.style.backgroundColor = bgcolor;
	}
},
</code></pre>
<p>El CSS podría ser algo parecido a estas lineas:</p>
<pre><code>
pre	{
	position:		relative;
	color: 			#913117;
	padding: 		0px 1em 0px 1em;
	margin: 		0px;
	font-family:		Courier, monospace; 
	font-size:		1em;
	}
code	{
	font-variant: 		normal;
	color: #913117;
	}
pre code	{
	position:		relative;
	top:			0px;
	left:			1.2em;
	font-variant: 		normal;
	color: 			#913117;
	padding: 		0px;
	margin: 		0px;
		}
pre .lines	{
	position:		absolute;
	top:			1em;
	left:			0px;
	width:			1.2em;
	padding: 		0px;
	margin: 		0px 1.2em 0px 0px;
  	background: 		#913117;
	color: 			white;
	}
</code></pre>
<p>La técnica parece funcionar solamente en Mozilla y Opera. IE reemplazaba los saltos de linea por espacios así que lo he ignorado. Los demás navegadores degradan tranquilamente.</p>
<p>Como ya han comentado, en Mozilla hay un fallo que no permite la selección de bloques de código que están dentro de bloques de texto preformateado. He intentado añadir un fondo de color (solamente para Mozilla) al pasar el ratón por encima, porque así parece un poco más fácil de ver cómo poder seleccionar. Aparentemente, si empezamos la selección en el espacio que hay entre el texto preformateado y el bloque de código (el espacio en blanco entre los números y el código), se deja seleccionar. </p></description>
			<pubDate>2004-11-29 19:56:46</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/numeros.linea/</guid>
		</item>
		<item>
			<title>Algunas etiquetas permitidas en los comentarios</title>
			<link>http://meddle.dzygn.com/esp/weblog/permite.codigo/</link>
			<description><p>Ayer por la noche pude acabar una modificación en el sistema de gestión de contenidos de este weblog, con la inestimable ayuda de <a href="http://www.pupius.co.uk/" title="este tio es la bomba">Dan</a> para solucionar una expresión regular. Gracias a eso, ahora los comentarios admiten las siguientes etiquetas: <code>p</code>, <code>a</code>, <code>em</code>, <code>strong</code>, <code>pre</code>, <code>code</code>. </p>

<p>Recomiendo que useis la etiqueta de párrafo para abrir y cerrar un bloque de párrafo, el texto quedará mejor. Si quereis añadir código en linea (dentro de un párrafo) simplemente usad la etiqueta <code>code</code>, el script se encargará de las entidades. Si por lo contrario quereis el código en un bloque aparte, que respete los saltos de línea, etc, podeis usar <code>&lt;pre&gt;&lt;code&gt;tu código&lt;/ code&gt;&lt;/pre&gt;</code> pero fuera de un párrafo (<code>pre</code> actua como bloque). Cualquier otra código o etiqueta que no esté dentro de <code>code</code> será destruida. </p></description>
			<pubDate>2004-11-18 07:25:07</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/permite.codigo/</guid>
		</item>
		<item>
			<title>Bookmarklet para aumentar el tamaño de tus  ... textarea</title>
			<link>http://meddle.dzygn.com/esp/weblog/textarea.aumentar/</link>
			<description><p>Acabo de hacer un pequeño script que aumenta el tamaño de todos los textarea de una página (incluyendo las páginas interiores de un frame) hasta los 450px de ancho y 250px de alto. Podeis guardarlo como favoritos y usarlo en vuestros gestores de contenidos o en esa típica página que te deja solamente 100 píxeles de ancho para escribir un mensaje. Para ejecutarlo aquí mismo, seguid <a href="javascript:function grow(w){var areas=w.getElementsByTagName('textarea');for(var i=0;i<areas.length;i++){areas[i].style.width='450px';areas[i].style.height='250px';}}function callme(){if(frames.length>0){for(var x=0;x<frames.length;x++){grow(frames[x].document);}}else{grow(document);}}callme();">este enlace</a>. A mi me vendrá de perlas para escribir modificaciones en el phpMyAdmin. Como siempre, si te gusta el script, puedes encontrar más en la <a href="/esp/utilidades/">sección utilidades</a>.</p></description>
			<pubDate>2004-11-17 07:40:47</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/textarea.aumentar/</guid>
		</item>
		<item>
			<title>Presentación de FLACCESS: flash manteniendo la accesibilidad</title>
			<link>http://meddle.dzygn.com/esp/weblog/flash.accesible/</link>
			<description><h4>Detección de flash: métodos anteriores</h4>
<p>He intentado descubrir un método que detecte en el servidor la versión instalada del plugin en el navegador, pero a pesar de que a macromedia no le costaría nada añadir la versión a la variable devuelta por el HTTP_ACCEPT, se empeña en obligarnos a usar lenguajes de cliente para detectarlo. Si tuviesemos esa opción podríamos gestionar el contenido alternativo desde el mismo servidor o añadir el método del <a href="http://www.alistapart.com/articles/flashsatay/">flash satay</a> sin temor alguno. El problema principal de esa técnica es que nevegadores con plugins antiguos no cargan el flash ni dejan ver el texto alternativo, y en menor medida, que no hace streaming, aunque para eso podemos usar una película lanzadera, como en mi <a href="/esp/weblog/flash.lanzadera/">anterior artículo</a>. Además, algunos lectores me han comentado que el método de añadir flash con lanzadera no es suficientemente flexible (por ejemplo no permite pasar variables al flash) y casca en algunos navegadores (como mi Opera 7.23). Por esa razón he intentado un camino distinto.</p>				

<h4>Concepto</h4>
<p>La idea es básicamente similar al concepto del <a href="http://www.mikeindustries.com/blog/archive/2004/10/sifr-2.0-release-candidate" title="excelente script">sIFR</a>: tener el contenio alternativo en algún elemento html, luego tener un script que detecte la versión del plugin en el navegador y si es la necesaria entonces sustituir el contenido alternativo por el objeto flash. La ventaja de este método, es que a diferencia de el 99% de los métodos habituales, si el navegador no tiene javascript o no puede cargar el objeto flash, el contenido alternativo sigue estando en el html, por lo cual la accesibilidad es alta. En cambio, en los otros métodos, el javascript se encarga de escribir en el documento el objeto flash y el contenido alternativo, que evidentemente resulta inaccesible en caso de no tener javascript activado. Así pues manos a la obra...</p>	</description>
			<pubDate>2004-11-10 13:23:36</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/flash.accesible/</guid>
		</item>
		<item>
			<title>Añadiendo Flash de manera accesible</title>
			<link>http://meddle.dzygn.com/esp/weblog/flash.lanzadera/</link>
			<description><p>Método obsoleto en detrimento de <a href="/esp/weblog/flash.accesible/">este otro</a>. Lo dejo aquí para mantener un archivo de cómo ha ido el tema.</p>
<h4>El por qué</h4>
<p>Hace poco estaba haciendo una web que tenía que ser accesible, pero que a la vez tenía un menú en flash. 
Como yo el flash nunca lo he usado hasta ahora empecé a investigar un poco y descubrí que casi todo el mundo 
pasa de dar contenidos alternativos al flash y lo peor de todo, inserta sus películas dentro de etiquetas 
object usando javascript para detectar la versión del plugin. Eso representa un grave problema de accesibilidad, 
puesto que los usuarios que no tengan javascript activado no podrán insertar la película y además no podrán leer 
el contenido alternativo (si lo hay).</p></description>
			<pubDate>2004-10-25 12:00:00</pubDate>
			<guid isPermaLink="true">http://meddle.dzygn.com/esp/weblog/flash.lanzadera/</guid>
		</item>
	</channel>
</rss>