<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>xhiena.net &#187; Programación</title>
	<atom:link href="http://xhiena.net/index/tag/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://xhiena.net/index</link>
	<description>Tecnologia, humor, actualidad y videos, muchos videos</description>
	<lastBuildDate>Tue, 03 Jan 2012 10:45:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>XSLT: Uso de Variables</title>
		<link>http://xhiena.net/index/xslt-uso-de-variables/</link>
		<comments>http://xhiena.net/index/xslt-uso-de-variables/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 20:29:07 +0000</pubDate>
		<dc:creator>xhiena</dc:creator>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[programación web]]></category>
		<category><![CDATA[variables]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xls]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://xhiena.net/index/?p=1150</guid>
		<description><![CDATA[Escribo este post porque fabricalDreams tenia una duda sobre XSLT y así no se me olvida la respuesta que he encontrado xD. Las variables en XLST se definen como: y luego se referencian como $NOMBRE Por ejemplo si queremos una variable para el tamaño del texto podemos hacer: y luego referenciarla por ejemplo: Lo bueno [...]]]></description>
			<content:encoded><![CDATA[<p>Escribo este post porque <a href="http://fabricaldreams.wordpress.com/">fabricalDreams</a> tenia una duda sobre XSLT y así no se me olvida la respuesta que he encontrado xD.</p>
<p>Las variables en XLST se definen como:</p>
<pre class="brush: xml; title: ; notranslate">&lt;xsl:variable name=&quot;NOMBRE&quot;&gt;VALOR&lt;/xsl:variable&gt;</pre>
<p>y luego se referencian como <span style="color: #0000ff;">$NOMBRE</span></p>
<p>Por ejemplo si queremos una variable para el tamaño del texto podemos hacer:</p>
<pre class="brush: xml; title: ; notranslate">&lt;xsl:variable name=&quot;bodyTextSize&quot;&gt;10pt&lt;/xsl:variable&gt;</pre>
<p>y luego referenciarla por ejemplo:</p>
<pre class="brush: xml; title: ; notranslate">&lt;font size=&quot;$bodyTextSize&quot;&gt;&lt;xsl:value-of select=&quot;@id&quot;/&gt;&lt;/font&gt;</pre>
<p>Lo bueno de esto es que nos deja realizar operaciones sobre la variable:</p>
<pre class="brush: xml; title: ; notranslate">&lt;xsl:variable name=&quot;bodyTextSize&quot;&gt;10&lt;/xsl:variable&gt;

&lt;font size=&quot;concat($bodyTextSize+2,'pt')&quot;&gt;&lt;xsl:value-of select=&quot;@id&quot;/&gt;&lt;/font&gt; //sacaria &lt;font size=&quot;12pt&quot;&gt;...

&lt;font size=&quot;concat($bodyTextSize*2,'pt')&quot;&gt;&lt;xsl:value-of select=&quot;@id&quot;/&gt;&lt;/font&gt; //sacaria &lt;font size=&quot;20pt&quot;&gt;... </pre>
<p>También podemos definir las variables de cosas que cogemos del xml:</p>
<pre class="brush: xml; title: ; notranslate">&lt;xsl:variable name=&quot;id&quot;&gt;&lt;xsl:value-of select=&quot;@id&quot;/&gt;&lt;/xsl:variable&gt;</pre>
<p>y usarlo donde mas nos convenga (el ejemplo real de fabricalDreams):</p>
<pre class="brush: xml; title: ; notranslate">&lt;xsl:for-each select=&quot;tournament/players/player&quot;&gt;
&lt;xsl:variable name=&quot;nombre&quot;&gt;&lt;xsl:value-of select=&quot;@name&quot;/&gt;&lt;/xsl:variable&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;xsl:value-of select=&quot;@name&quot;/&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;xsl:value-of select=&quot;count(/tournament/games/game[@player1='$nombre' or @player2='$nombre'])&quot;/&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;xsl:value-of select=&quot;count(/tournament/games/game[(@player1='$nombre' and @winner='1') or (@player2='$nombre' and @winner='2')])&quot;/&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/xsl:for-each&gt;</pre>
<img src="http://xhiena.net/index/?ak_action=api_record_view&id=1150&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xhiena.net/index/xslt-uso-de-variables/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Gran Morghost</title>
		<link>http://xhiena.net/index/gran-morghost/</link>
		<comments>http://xhiena.net/index/gran-morghost/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 19:04:41 +0000</pubDate>
		<dc:creator>xhiena</dc:creator>
				<category><![CDATA[post]]></category>
		<category><![CDATA[fantasmitas SL]]></category>
		<category><![CDATA[HOYGAN]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[morghost]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://xhiena.net/index/?p=831</guid>
		<description><![CDATA[HOYGAN HOYGAN EH ECHO UN POGRAMA EN JABA I ME DA HUN HERROR LA PANTAYA NEGRA ME DIZE QE: Syntax error on token &#8220;PUVLIC&#8221; QES ESE HERROR? GRACIA DE ANTEBRAZO HAMIJOS! (posible post en forocoches) Esta gran ida de peoza es gracias al último webcomic de Morghost: 169. Mi primer programa » Fantasmitas S.L.. (no [...]]]></description>
			<content:encoded><![CDATA[<p>HOYGAN HOYGAN</p>
<p>EH ECHO UN POGRAMA EN JABA I ME DA HUN HERROR</p>
<p>LA PANTAYA NEGRA ME DIZE QE:</p>
<p>Syntax error on token &#8220;PUVLIC&#8221;</p>
<p>QES ESE HERROR?</p>
<p>GRACIA DE ANTEBRAZO HAMIJOS!</p>
<p>(posible post en forocoches)</p>
<p>Esta gran ida de peoza es gracias al último webcomic de Morghost: <a href="http://www.fantasmitas.com/2010/03/04/169-mi-primer-programa/">169. Mi primer programa » Fantasmitas S.L.</a>.</p>
<p>(no se me ocurría otra forma de decirle lo buena que es la tira&#8230; GRACIAS HAMIJO!)</p>
<img src="http://xhiena.net/index/?ak_action=api_record_view&id=831&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xhiena.net/index/gran-morghost/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>[JS] Abrir enlace en ventana nueva cumpliendo los estándares Xhtml/Html estricto</title>
		<link>http://xhiena.net/index/abrir-enlace-en-ventana-nueva-cumpliendo-los-estandares-xhtmlhtml-estricto/</link>
		<comments>http://xhiena.net/index/abrir-enlace-en-ventana-nueva-cumpliendo-los-estandares-xhtmlhtml-estricto/#comments</comments>
		<pubDate>Sun, 03 May 2009 19:45:52 +0000</pubDate>
		<dc:creator>xhiena</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[anclas]]></category>
		<category><![CDATA[atributo rel]]></category>
		<category><![CDATA[enlaces]]></category>
		<category><![CDATA[frames]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://xhiena.wordpress.com/?p=397</guid>
		<description><![CDATA[Venga va, que hace mucho que no pongo nada de programación web :D. Cuando insertas un enlace en HTML su comportamiento por defecto es que se abra en la ventana actual, si queremos cambiar ese comportamiento, sólo hay que poner el atributo target=&#8221;_new&#8221; en el enlace y se nos abrirá en una ventana nueva: Lo [...]]]></description>
			<content:encoded><![CDATA[<p>Venga va, que hace mucho que no pongo nada de programación web :D.</p>
<p>Cuando insertas un enlace en HTML su comportamiento por defecto es que se abra en la ventana actual, si queremos cambiar ese comportamiento, sólo hay que poner el atributo target=&#8221;_new&#8221; en el enlace y se nos abrirá en una ventana nueva:</p>
<pre class="brush: xml; title: ; notranslate">&lt;a href=&quot;http://www.xhiena.net&quot; target=&quot;_new&quot;&gt;Xhiena.net&lt;/a&gt;</pre>
<p>Lo mismo si estamos trabajando con frames, si queremos que un enlace abra la pagina en un frame especifico, en vez de _new ponemos el nombre del frame.</p>
<p>Todo eso esta muy bien, pero sólo cumple los estándares transicionales. Si estamos montando una pagina en con estandar estricto (que, personalmente pienso, es como se deberían hacer todas las webs) no podemos usar ese atributo de la etiqueta <strong>a</strong>.</p>
<p>Si lo requerimos y no hay otra forma de solucionarlo (si estas trabajando con frames quítalos, ganarás mucho en accesibilidad y usabilidad) se puede usar javascript para simular el atributo target.</p>
<p>La forma de hacerlo consiste en:</p>
<ol>
<li>Cojer todos los enlaces.</li>
<li>Ver su atributo rel.</li>
<li>Cambiar su propiedad target.</li>
</ol>
<p><span id="more-397"></span><br />
<strong>1.- Cojer todos los enlaces</strong></p>
<p>Esto se hace con la funcion getElementsByTagName(&#8220;tag&#8221;) de javascript, que nos devuelve un array con todos los elementos del documento con ese tag</p>
<pre class="brush: jscript; title: ; notranslate">var enlaces = document.getElementsByTagName(&quot;a&quot;);</pre>
<p><strong>2.- Ver su atributo rel.</strong></p>
<p>para ver el atributo rel de un enlace se puede hacer con getAttribute(&#8220;atributo&#8221;)<br />
enlace.getAttribute(&#8220;rel&#8221;)<br />
<strong>3.- Cambiar su propiedad target.</strong><br />
eso se hace con<strong> .target</strong></p>
<pre class="brush: jscript; title: ; notranslate">enlace .target=&quot;&quot;;</pre>
<p>Una vez claras las cosas que hay que hacer y como se debe hacer, una función que cambiara todos los targets a lo rel podria ser:</p>
<pre class="brush: jscript; title: ; notranslate">function cambiarTargets(){
var enlaces= document.getElementsByTagName(&quot;a&quot;);
for (var i=0;i&lt;enlaces.length; i++){
enlaces[i].target= enlaces[i].getAttribute(&quot;rel&quot;);
}
}</pre>
<p>Se pueden hacer varias comprobaciones para que el javascript funcione perfectamente:</p>
<p>Que el cliente pueda usar la función:</p>
<pre class="brush: jscript; title: ; notranslate">if (!document.getElementsByTagName) return;</pre>
<p>Que el enlace sea un enlace y no un ancla:<br />
enlaces[i].getAttribute(&#8220;href&#8221;)!=&#8221;"<br />
Sólo poner target si tienen un rel especifico:</p>
<pre class="brush: jscript; title: ; notranslate">if(enlaces[i].getAttribute(&quot;rel&quot;) == &quot;contenido&quot;){
enlaces[i].target = &quot;contenido&quot;;
}</pre>
<p>Aquí os pongo una función que cambia el tag de los enlaces que tengan rel = new</p>
<pre class="brush: jscript; title: ; notranslate">function cambiarTargets() {
if (!document.getElementsByTagName) return;
var enlaces= document.getElementsByTagName(&quot;a&quot;);
for (var i=0;i&lt;enlaces.length; i++) {
var enlace = enlaces[i];
if (enlace.getAttribute(&quot;href&quot;) &amp;&amp; enlace.getAttribute(&quot;rel&quot;) == &quot;new&quot;){
enlace.target = &quot;_new&quot;;
}
}
}</pre>
<img src="http://xhiena.net/index/?ak_action=api_record_view&id=397&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xhiena.net/index/abrir-enlace-en-ventana-nueva-cumpliendo-los-estandares-xhtmlhtml-estricto/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Programador de verdad</title>
		<link>http://xhiena.net/index/programador-de-verdad/</link>
		<comments>http://xhiena.net/index/programador-de-verdad/#comments</comments>
		<pubDate>Sun, 18 May 2008 21:41:26 +0000</pubDate>
		<dc:creator>xhiena</dc:creator>
				<category><![CDATA[humor]]></category>
		<category><![CDATA[Informática]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[programador]]></category>

		<guid isPermaLink="false">http://xhiena.wordpress.com/?p=226</guid>
		<description><![CDATA[Navegando por los blogrolls de varios blogs he dado con un post que me ha echo soltar un par de risitas malévolas Los programadores de verdad no necesitan comentarios &#8212; el código es obvio. Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria. Los [...]]]></description>
			<content:encoded><![CDATA[<p>Navegando por los blogrolls de varios blogs he dado con un post que me ha echo soltar un par de risitas malévolas</p>
<blockquote><p>Los programadores de verdad no necesitan comentarios &#8212; el código es obvio.</p>
<p>Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.</p>
<p>Los programadores de verdad pueden escribir bucles de 5 páginas sin confundirse.</p>
<p>Los programadores de verdad escriben su código en <a title="Binario" href="http://es.wikipedia.org/wiki/Binario">binario</a>. O como mucho <a title="Ensamblador" href="http://es.wikipedia.org/wiki/Lenguaje_ensamblador">ensamblador</a>.</p>
<p>Los programadores de verdad escriben código automodificable, especialmente si con ello consiguen ahorrar 20 nanosegundos en un bucle.</p>
<p>Los programadores de verdad no tienen miedo a usar <a title="GOTO" href="http://es.wikipedia.org/wiki/GOTO">GOTO</a>s.</p>
<p>Los programadores de verdad procesan listas usando <a title="Fortran" href="http://es.wikipedia.org/wiki/Fortran">Fortran</a>.</p>
<p>Los programadores de verdad desarrollan programas de Inteligencia Artificial en Fortran (si no puedes hacerlo en Fortran, hazlo en ensamblador).</p>
<p>Los programadores de verdad trabajan para la Agencia de Seguridad Nacional, decodificando transmisiones rusas.</p>
<p>Los programadores de verdad no comentan su código. Si fue difícil escribirlo, debería ser difícil entenderlo, y más difícil de modificar.</p>
<p>Los programadores de verdad no programan en <a title="BASIC" href="http://es.wikipedia.org/wiki/BASIC">BASIC</a>. De hecho, ningún programador escribe en BASIC después de la pubertad.</p>
<p>Los programadores de verdad no programan en <a title="LISP" href="http://es.wikipedia.org/wiki/LISP">LISP</a>. Sólo los idiotas escriben programas con más paréntesis que código.</p>
<p>Los programadores de verdad no usan FORTRAN. FORTRAN es para ingenieros débiles que usan calcetines blancos.</p>
<p>Los programadores de verdad no escriben especificaciones. De hecho, los usuarios deberían dar gracias de obtener algo de nosotros. Tienen suerte de que decidamos entregarles el programa.</p>
<p>Los programadores de verdad no leen manuales. El uso de manuales de referencia es para los novatos y los cobardes.</p>
<p>Los programadores de verdad no dibujan diagramas de flujo. Un diagrama de flujo no es más que documentación para analfabetos. Los cavernícolas dibujaban diagramas de flujo; y mira dónde están ahora.</p>
<p>Los programadores de verdad piensan que la programación estructurada es un invento de los comunistas.</p>
<p>Los programadores de verdad no creen en los plazos. Los supervisores establecen los plazos. Los jefes los firman. Los programadores asustadizos se esfuerzan en cumplirlos. Los programadores de verdad ignoran los plazos.</p>
<p>A los programadores de verdad no les gusta el concepto de programación en equipo. A menos que les asignen el puesto de programador jefe, claro.</p>
<p>Los programadores de verdad usan 5 dígitos para las fechas, y están preparados para el problema del año 10.000.</p>
<p>Los programadores de verdad no prueban el código, los usuarios se inventaron para eso.</p></blockquote>
<p>Siento decir que no soy un programador de verdad xD</p>
<p>Visto en <a title="Mundogeek - los programadores de verdad" href="http://mundogeek.net/archivos/2008/05/14/los-programadores-de-verdad/">mundoGeek</a></p>
<img src="http://xhiena.net/index/?ak_action=api_record_view&id=226&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://xhiena.net/index/programador-de-verdad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

