<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Alex Sancho</title>
<link>http://alexsancho.name/</link>
<description></description>
<dc:language>en-us</dc:language>
<dc:creator>alex@alexsancho.name</dc:creator>
<dc:rights>Copyright 2010</dc:rights>
<dc:date>2007-01-26T21:11:02+01:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.movabletype.org/?v=3.35" />
<admin:errorReportsTo rdf:resource="mailto:alex@alexsancho.name"/>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2000-01-01T12:00+00:00</sy:updateBase>
<item>
<title>Formularios 101: Estructura</title>
<link>http://alexsancho.name/archives/2007/01/formularios-101-estructura/</link>
<description>Estructura de un formulario de contacto</description>
<guid isPermaLink="false">1787@http://alexsancho.name/</guid>
<content:encoded><![CDATA[Haciendo un repaso de lo que he escrito en el weblog, me viene a la memoria una de las primeras entradas que publique, un formulario de contacto, la verdad es que mirándolo hoy veo los errores que cometí y la cantidad de cosas que se pueden mejorar.

Es por eso que me he decidido a escribir una serie de artículos en los que tratare de desglosar el proceso de creación de un formulario de contacto que se pueda utilizar en cualquier pagina web.

En este primer articulo quisiera tratar la estructura y presentación del formulario, para la maquetacion utilizaremos xhtml estricto y para la presentación css y algo de javascript ayudados por la libreria jquery.

[code html]
    <form action="" method="" id="" class="">
        <input type="text" id="" class="" name="" value="" />
        <input type="text" id="" class="" name="" value="" />
        <textarea id="" class="" name=""></textarea>
        <input type="submit" id="" class="" value="" />
    </form>
[/code]

Esta estructura básica nos servirá para definir los campos a utilizar en el formulario, aunque estamos utilizando etiquetas xhtml por definición, este código aun no cumple con los estándares del w3c que indican que los campos han de estar dentro de un elemento de bloque.

Para este ejercicio utilizaremos listas ordenadas dentro de un <code>fieldset</code>, con lo que la estructura final quedaria asi:

[code html]
        <form action="" method="" id="cform" class="cmxform">
	    <input type="hidden" id="cvalid" name="cvalid" value="true" />
    	    <fieldset id="contact-data">
        	<legend>Datos de contacto</legend>
    	        <ol>
    		    <li>
            	      <label for="cname">Nombre <em>*</em></label> <input type="text" id="cname" class="txt" name="cname" value="Tu Nombre" />
    	            </li>
    	            <li>
        	      <label for="cmail">Correo <em>*</em></label> <input type="text" id="cmail" class="txt" name="cmail" value="Tu Email" />
            	    </li>
        	</ol>
	    </fieldset>
	    <fieldset id="contact-text">
    	        <legend>Cuerpo del mensaje</legend>
    	        <ol>
        	    <li>
            	      <label for="ctext">Mensaje <em>*</em></label> <textarea id="ctext" class="txt" name="ctext"></textarea>
            	    </li>
        	</ol>
	    </fieldset>
	    <p>
    	       <input type="submit" id="cbutton" class="btn" value="Enviar" />
    	    </p>
	</form>
[/code]

Con esto ya tenemos definida la estructura ahora vamos a por la presentación, me basare en una técnica publicada en [A List Apart][1], podéis aprender mas sobre ella en [Prettier Accessible Forms][2].

En [este enlace podeis ver el ejemplo completo][3],

[1]: http://www.alistapart.com/
[2]: http://www.alistapart.com/articles/prettyaccessibleforms
[3]: http://alexsancho.name/archives/examples/forms/101/markup/<p style="font-family:Verdana, Arial, sans-serif; font-size:11px; color: #333333; background-color: #f5f5f5; border: 1px solid #c0c0c0; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 4px; display: block;"><a href="http://alexsancho.name/archives/2007/01/formularios-101-estructura/#comments" title="Comentarios en: Formularios 101: Estructura">Comentarios (0)</a></p>]]></content:encoded>
<dc:subject>XHTML</dc:subject>
<dc:date>2007-01-26T21:11:02+01:00</dc:date>
</item>
<item>
<title>Generar xhtml con perl</title>
<link>http://alexsancho.name/archives/2006/06/generar-xhtml-con-perl/</link>
<description>Metodos para generar marcado xhtml con el modulo CGI</description>
<guid isPermaLink="false">1477@http://alexsancho.name/</guid>
<content:encoded><![CDATA[Un script escrito en perl puede devolver c&oacute;digo html correctamente formateado, tan solo tenemos que incluir una llamada al modulo **CGI** que por defecto viene en cualquier instalaci&oacute;n de perl.

Si no estamos seguros de tener el modulo, podemos instalarlo desde cpan,

[code bash]
    perl -MCPAN -e shell
    ...
    install CGI
[/code]

Ahora ya estamos seguros de cumplir los requisitos, comencemos con el script, lo primero es incluir el modulo e inicializarlo declarando una variable.

[code perl]
    use CGI;
    
    my $q = new CGI;
[/code]

Para generar el marcado html tenemos varias opciones, podemos llamar directamente a la etiqueta pasando los par&aacute;metros mediante un array de variables, 

[code perl]
    $q->p({-style=>'font-size:12px;'}, 'mi parrafo');
[/code]

o abriendo y cerrando la etiqueta para poder generar un marcado mas complejo.

[code perl]
    $q->open_div();
    $q->p({-style=>'font-size:12px;'}, 'mi p&aacute;rrafo');
    $q->close_div();
[/code]

Este seria el script una vez unimos todas las piezas, pod&eacute;is comprobar que el c&oacute;digo valida totalmente como xhtml 1.0 transicional.

[code perl]
    use CGI; 
    my $q = new CGI;
    print $q->header(-type => 'text/html', -status => '200 OK');
    print $q->start_html(-title => "Generar XHTML con perl");
    print $q->start_div({-style => 'font:1em/1em Verdana, Arial, Helvetica, sans-serif;color:#000;'});
    print $q->h1('mi titulo');
    print $q->p('este es mi p&aacute;rrafo');
    print $q->end_div();
    print $q->end_html();
[/code]

<a href="http://alexsancho.name/cgi-bin/examples/xhtml.cgi" title="ver ejemplo">Ver el ejemplo</a>

No es que sea un m&eacute;todo ideal para generar paginas complejas, pero es una forma interesante de crear scripts utilizando un marcado valido sin tener que escribir muchas lineas de c&oacute;digo.
<p style="font-family:Verdana, Arial, sans-serif; font-size:11px; color: #333333; background-color: #f5f5f5; border: 1px solid #c0c0c0; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 4px; display: block;"><a href="http://alexsancho.name/archives/2006/06/generar-xhtml-con-perl/#comments" title="Comentarios en: Generar xhtml con perl">Comentarios (3)</a></p>]]></content:encoded>
<dc:subject>XHTML</dc:subject>
<dc:date>2006-06-28T23:46:22+01:00</dc:date>
</item>
<item>
<title>Javascript no intrusivo: moo.ajax</title>
<link>http://alexsancho.name/archives/2006/02/javascript-no-intrusivo-mooajax/</link>
<description>Experimentando con el DOM y ajax</description>
<guid isPermaLink="false">1045@http://alexsancho.name/</guid>
<content:encoded><![CDATA[Hace unos d&iacute;as comente algo sobre los beneficios de utilizar JavaScript de forma no intrusiva, hoy me gustar&iacute;a mostrar un ejemplo de lo sencillo que resulta implementar estas t&eacute;cnicas, y los sorprendentes resultados que se pueden conseguir.

Antes de comenzar, un par de detalles, la idea general del script es realizar una b&uacute;squeda en mi weblog sin tener que recargar la pagina, esta se realiza en tiempo real mediante una llamada a la [API de Yahoo! Search][1].

Para el ejemplo echare mano de dos bibliotecas, moo.ajax y prototype.lite, ambas de muy reducido tama&ntilde;o y que incluyen una serie de funciones de gran utilidad.

Comenzando por el c&oacute;digo html, todo el funcionamiento de nuestro script se basara en el formulario de b&uacute;squeda, crearemos una serie de elementos en el DOM que se a&ntilde;adir&aacute;n a diferentes partes del formulario. Para esto tendremos que definir algunas identidades en &eacute;l como veis aqu&iacute; abajo

[code html]
    <form action="search.php" method="post" id="sform">
    <fieldset><legend>Introduce el termino a buscar &raquo;</legend>
    <div><label for="p">Search Terms<input name="p" type="text" /></label></div>
    <p><input type="submit" value="search" id="sbtn" /></p>
    </fieldset>
    </form>
[/code]

esto es casi todo lo que necesitamos del html. Pasemos a nuestro script

[1]: http://developer.yahoo.net/<p><a href="http://alexsancho.name/archives/2006/02/javascript-no-intrusivo-mooajax/" title="Continuar Leyendo: Javascript no intrusivo: moo.ajax">Continuar leyendo Javascript no intrusivo: moo.ajax...</a></p><p style="font-family:Verdana, Arial, sans-serif; font-size:11px; color: #333333; background-color: #f5f5f5; border: 1px solid #c0c0c0; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 4px; display: block;"><a href="http://alexsancho.name/archives/2006/02/javascript-no-intrusivo-mooajax/#comments" title="Comentarios en: Javascript no intrusivo: moo.ajax">Comentarios (3)</a></p>]]></content:encoded>
<dc:subject>Javascript</dc:subject>
<dc:date>2006-02-06T20:42:43+01:00</dc:date>
</item>
<item>
<title>Microformatos: hCard</title>
<link>http://alexsancho.name/archives/2005/10/microformatos-hcard/</link>
<description>Los microformatos nos permiten representar por medio de codigo XHTML ciertos estandares utilizados por aplicaciones de uso comun.</description>
<guid isPermaLink="false">824@http://alexsancho.name/</guid>
<content:encoded><![CDATA[<img alt="Microformatos" src="/archives/images/2005-10-28/mf-lg-ora.gif" width="64" height="63" class="thumb" />

La idea del microformato surge de la necesidad de adoptar un estandard de maquetado xhtml para definir semanticamente ciertas partes del contenido que por norma siempre se&ntilde;alaremos de la misma manera, por ejemplo los datos personales de un individuo.

La razon principal para implementar este tipo de maquetado, es la de permitir que estos datos sean facilmente reconocidos y facilitar su disponibilidad a la hora de incluirlos en alguna aplicacion.

Como la explicaci&oacute;n del concepto, al menos a m&iacute;, parece un poco espesa, pongamos un ejemplo practico.

Existe un estandar reconocido y adoptado por infinidad de aplicaciones que permite agrupar/organizar los datos personales de un individuo, se trata del vCard ([RFC2426][1]), casi la totalidad de los programas de correo son capaces de importar y exportar datos en este formato.

Ahora supongamos que incluyo mis datos personales en el weblog, y que ademas quiero ponerselo facil al lector y  coloco a su disposicion un fichero vCard para que pueda importarlo a su libreta de contactos.

Utilizando el microformato hCard puedo tener disponible ambas cosas simplemente marcado el codigo HTML con una serie de clases previamente definidas como microformato, que permitiran reconocer y extraer estos datos del propio codigo.

Evidentemente para extrar estos datos hace falta algun tipo de software programado para ello, como puede ser el favelet publicado por Brian Suda ([X2V][2]).

Si quieres ampliar informacion sobre microformatos y sus diferentes aplicaciones, puedes visitar [microformats.org][3] en ingles, o si no se te da la lengua de Shakespeare, tienes el articulo escrito por Manuel G noriega, [Microformatos: la web semantica en minusculas][4]

[1]: http://www.ietf.org/rfc/rfc2426.txt
[2]: http://suda.co.uk/projects/X2V/
[3]: http://microformats.org/
[4]: http://www.alzado.org/articulo.php?id_art=416<p style="font-family:Verdana, Arial, sans-serif; font-size:11px; color: #333333; background-color: #f5f5f5; border: 1px solid #c0c0c0; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 4px; display: block;"><a href="http://alexsancho.name/archives/2005/10/microformatos-hcard/#comments" title="Comentarios en: Microformatos: hCard">Comentarios (0)</a></p>]]></content:encoded>
<dc:subject>XHTML</dc:subject>
<dc:date>2005-10-28T19:13:25+01:00</dc:date>
</item>
<item>
<title>Listas en XHTML</title>
<link>http://alexsancho.name/archives/2005/10/listas-en-xhtml/</link>
<description>Definiciones de elementos de listas en xhtml</description>
<guid isPermaLink="false">799@http://alexsancho.name/</guid>
<content:encoded><![CDATA[Dentro de las etiquetas XHTML tenemos varias que nos permiten definir elementos de listas, basicamente son tres los tipos de listados que pueden ser representados mediante etiquetas:

## Listas de Definiciones

Como se puede deducir este tipo de etiquetas se utilizan para crear listados de definiciones, la estructura a seguir para el maquetado seria la siguiente:

[code html]
    <dl>
      <dt>El titulo</dt>
      <dd>La Definicion</dd>
     </dl>
[/code]

Donde utlizamos la etiqueta <code>&lt;dl&gt;&lt;/dl&gt;</code> como contenedora del bloque y en la que solo se pueden incluir elementos de lista (dt, dd), la etiqueta <code>&lt;dt&gt;&lt;/dt&gt;</code> como titulo de la definicion y la etiqueta <code>&lt;dd&gt;&lt;/dd&gt;</code> como definicion.

Estas dos ultimas etiquetas normalmente contendran texto plano, pero podemos incluir casi cualquier etiqueta de maquetado (a, acronym, address, applet, b, basefont, bdo, big, blockquote, br, button, center, cite, code, dfn, dir, div, dl, em, fieldset, font, h1, h2, h3, h4, h5, h6, hr, i, iframe, img, input, isindex, kbd, label, map, menu, noframes, noscript, object, ol, p, pre, q, s, samp, script, select, small, span, strike, strong, sub, sup, table, textarea, tt, u, ul, var)

Apple
 :   Pomaceous fruit of plants of the genus Malus in  the family Rosaceae.

Orange
 :   The fruit of an evergreen tree of the genus Citrus.

<p><a href="http://alexsancho.name/archives/2005/10/listas-en-xhtml/" title="Continuar Leyendo: Listas en XHTML">Continuar leyendo Listas en XHTML...</a></p><p style="font-family:Verdana, Arial, sans-serif; font-size:11px; color: #333333; background-color: #f5f5f5; border: 1px solid #c0c0c0; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 4px; display: block;"><a href="http://alexsancho.name/archives/2005/10/listas-en-xhtml/#comments" title="Comentarios en: Listas en XHTML">Comentarios (3)</a></p>]]></content:encoded>
<dc:subject>XHTML</dc:subject>
<dc:date>2005-10-16T09:22:16+01:00</dc:date>
</item>
<item>
<title>Buscando los estandares</title>
<link>http://alexsancho.name/archives/2005/09/buscando-los-estandares/</link>
<description>Interesante comparativa que pone en evidencia la falta de interes de los grandes de la red por implementar soluciones basadas en estandares.</description>
<guid isPermaLink="false">712@http://alexsancho.name/</guid>
<content:encoded><![CDATA[Hoy en [molly.com][1] , se puede leer una curiosa [comparativa][2] donde se pone en evidencia el poco interes que demuestran los grandes buscadores por adoptar maquetados que cumplan con los estandares web.

Curiosamente, el &uacute;nico de los motores examinados en esta comparativa que cumple al 100% con estas reglas es el buscador de MSN, que presenta un maquetado basado en XHTML Strict totalmente valido.

Paradojicamente nuestro bienamado Google, parece estar poco o m&aacute;s bien nada interesado en seguir los estandares, aun con el ahorro de ancho de banda que esto les supondria.

La verdad es que todo esto hace pensar un poco en si realmente el enfoque que se le ha dado a los estandares web realmente tiene algun futuro, aunque si que es cierto que cada dia se ven m&aacute;s portales y webs corporativas que adoptan este tipo de maquetado, el camino para una implementaci&oacute;n total aun tiene lejos su final.

[1]: http://www.molly.com/
[2]: http://www.molly.com/2005/09/08/searching-for-standards/<p style="font-family:Verdana, Arial, sans-serif; font-size:11px; color: #333333; background-color: #f5f5f5; border: 1px solid #c0c0c0; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 4px; display: block;"><a href="http://alexsancho.name/archives/2005/09/buscando-los-estandares/#comments" title="Comentarios en: Buscando los estandares">Comentarios (3)</a></p>]]></content:encoded>
<dc:subject>XHTML</dc:subject>
<dc:date>2005-09-08T15:21:34+01:00</dc:date>
</item>
<item>
<title>Empezando por la a</title>
<link>http://alexsancho.name/archives/2005/05/empezando-por-la-a/</link>
<description>Este pretende ser el primero de una serie de articulos/apuntes sobre lenguaje XHTML y sus diferentes usos y aplicaciones.</description>
<guid isPermaLink="false">381@http://alexsancho.name/</guid>
<content:encoded><![CDATA[## La etiqueta a

<img alt="atag" src="http://alexsancho.name/archives/images/atag" width="120" height="80" style="float:left;margin:3px;" />

Este pretende ser el primero de una serie de articulos/apuntes sobre lenguaje XHTML y sus diferentes usos y aplicaciones.

Como indico con el titulo, empezare por la `<a>`, segun la definicion del W3C,

> The  `<a>` tag defines an anchor element. An anchor can be used in two ways:
>
>* To create a link to another document by using the href attribute
>* To create a bookmark inside a document, by using the name or id attribute

Que en castellano, viene a decir que el encargado de crear enlaces, ya sean a p&aacute;ginas externas, como a las diferentes partes de un documento.

Indudablemente es uno de las etiquetas html/xhtml m&aacute;s utilizadas y con menos diferencias en cuanto atributos se refiere.
<p><a href="http://alexsancho.name/archives/2005/05/empezando-por-la-a/" title="Continuar Leyendo: Empezando por la a">Continuar leyendo Empezando por la a...</a></p><p style="font-family:Verdana, Arial, sans-serif; font-size:11px; color: #333333; background-color: #f5f5f5; border: 1px solid #c0c0c0; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 4px; display: block;"><a href="http://alexsancho.name/archives/2005/05/empezando-por-la-a/#comments" title="Comentarios en: Empezando por la a">Comentarios (2)</a></p>]]></content:encoded>
<dc:subject>XHTML</dc:subject>
<dc:date>2005-05-06T21:53:33+01:00</dc:date>
</item>
<item>
<title>Meta Contenidos</title>
<link>http://alexsancho.name/archives/2005/03/meta-contenidos/</link>
<description>metacontenidos en la web, elementos indispensables en el lenguaje xhtml</description>
<guid isPermaLink="false">125@http://alexsancho.name/</guid>
<content:encoded><![CDATA[## Meta Informaci&oacute;n

En todo documento que se quiera usar en la web, hay que diferenciar dos tipos de informaci&oacute;n, el contenido y el meta-contenido. Por contenido entendemos la informaci&oacute;n que compone el documento. La meta-informaci&oacute;n nos describe el documento en si, nos facilita su comprensi&oacute;n.

Podemos definir los tipos de meta-informaci&oacute;n de la siguiente manera:

* Los contenidos y objetivos del documento.
* La relaci&oacute;n entre el documento y otros.
* El tipo de documento, imagenes, texto...
* Informaci&oacute;n que facilite la navegaci&oacute;n del usuario por los contenidos.
* Informaci&oacute;n que ayude a los programas a procesar el documento .
<p><a href="http://alexsancho.name/archives/2005/03/meta-contenidos/" title="Continuar Leyendo: Meta Contenidos">Continuar leyendo Meta Contenidos...</a></p><p style="font-family:Verdana, Arial, sans-serif; font-size:11px; color: #333333; background-color: #f5f5f5; border: 1px solid #c0c0c0; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 4px; display: block;"><a href="http://alexsancho.name/archives/2005/03/meta-contenidos/#comments" title="Comentarios en: Meta Contenidos">Comentarios (3)</a></p>]]></content:encoded>
<dc:subject>XHTML</dc:subject>
<dc:date>2005-03-25T09:53:27+01:00</dc:date>
</item>

</channel>
</rss>