<?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>Spartan Code - Blog &#187; Uncategorized</title>
	<atom:link href="http://www.spartan-code.com/blog/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.spartan-code.com/blog</link>
	<description>web development</description>
	<lastBuildDate>Thu, 29 Apr 2010 18:04:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>¿px, em, %, pt, o palabras clave?¿Como definimos tamaños de fuentes?</title>
		<link>http://www.spartan-code.com/blog/2009/04/21/%c2%bfpx-em-pt-o-palabras-clave%c2%bfcomo-definimos-tamanos-de-fuentes/</link>
		<comments>http://www.spartan-code.com/blog/2009/04/21/%c2%bfpx-em-pt-o-palabras-clave%c2%bfcomo-definimos-tamanos-de-fuentes/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 22:14:34 +0000</pubDate>
		<dc:creator>Pirata21</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.spartan-code.com/blog/index.php/%c2%bfpx-em-pt-o-palabras-clave%c2%bfcomo-definimos-tamanos-de-fuentes/</guid>
		<description><![CDATA[CSS-Trick, nos muestra un interesante artículo sobre las cualidades de los diferentes sistemas que tenemos para indicar el tamaño de las fuentes de nuestras aplicaciones.

px: Ofrece el máximo de precisión a la hora de indicar un tamaño. Aunque se olvidan del usuario, no hacen caso a la configuración del visitante.
em: Los más difíciles de cuadrar [...]]]></description>
			<content:encoded><![CDATA[<p><strong>CSS-Trick</strong>, nos muestra un interesante artículo sobre las cualidades de<a href="http://css-tricks.com/css-font-size/" target="_blank"> los diferentes sistemas que tenemos para indicar el tamaño de las fuentes</a> de nuestras aplicaciones.</p>
<ul>
<li><strong>px</strong>: Ofrece el máximo de precisión a la hora de indicar un tamaño. Aunque se olvidan del usuario, no hacen caso a la configuración del visitante.</li>
<li><strong>em</strong>: Los más difíciles de cuadrar debido al concepto tan abstracto que los envuelve, pero ofrece una forma de ofrecer al usuario mayor control sobre el texto.</li>
<li><strong>%</strong>: Sin duda la opción más limpia y clara de enteder.</li>
<li><strong>pt</strong>: Los pensados para ser usados únicamente para impresión. Están basados en puntos reales de tinta en un papel.</li>
<li><strong>palabras clave</strong>: Sorprendentemente se trata de una de las técnicas más consistente en todos los navegadores.</li>
</ul>
<p>Conociendo las técnicas y las peculiaridades de cada uno podremos ajustar más nuestro CSS a nuestras necesidades.</p>
<h3>Actualización</h3>
<p>Las palabras clave o keywords son los que conocemos como <code>xx-small</code>, <code>x-small</code>, <code>small</code>, <code>medium</code>, <code>large</code>, <code>x-large</code>, <code>xx-large</code>. Dependen completamente de la configuración del cliente, que al igual que <code>%</code> y <code>em</code>, permiten que sea la configuración del visitante defina el tamaño ideal.</p>
<h3>Ejemplos</h3>
<p style="font-size: large">Esto es una fuente a tamaño large</p>
<p style="font-size: 125%">Esto es una fuente a 125% del tamaño. (Usa el tamaño del elemento padre como referencia)</p>
<p style="font-size: 1.3em">Esto es una fuente a 1.3em.</p>
<p style="font-size: 24px">Esto es una fuente a 24px.</p>
<p style="font-size: 24pt">Esto es una fuente a 24pt.</p>
<p><a href="http://www.anieto2k.com/2009/04/16/¿px-em-pt-o-palabras-clave¿como-definimos-tamanos-de-fuentes/">Fuente anieto2k</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spartan-code.com/blog/2009/04/21/%c2%bfpx-em-pt-o-palabras-clave%c2%bfcomo-definimos-tamanos-de-fuentes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Style Switcher con jQuery</title>
		<link>http://www.spartan-code.com/blog/2009/03/07/style-switcher-con-jquery/</link>
		<comments>http://www.spartan-code.com/blog/2009/03/07/style-switcher-con-jquery/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 16:08:01 +0000</pubDate>
		<dc:creator>Pirata21</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[jqurey]]></category>

		<guid isPermaLink="false">http://www.spartan-code.com/blog/index.php/style-switcher-con-jquery/</guid>
		<description><![CDATA[En Kelvinluck.com me he encontrado con una muy sencilla forma de hacer un style swither (o intercambiador de estilos) aprovechando la potencia de selección de jQuery. El ejemplo también utiliza cookies con lo que el estilo elegido por el visitante es almacenado para mostrarselo por defecto la próxima vez que visita la página.La aplicación del [...]]]></description>
			<content:encoded><![CDATA[<p>En <a href="http://www.kelvinluck.com/2006/05/switch-stylesheets-with-jquery/" target="_blank">Kelvinluck.com</a> me he encontrado con una muy sencilla forma de hacer un style swither (o intercambiador de estilos) aprovechando la potencia de selección de jQuery. El ejemplo también utiliza cookies con lo que el estilo elegido por el visitante es almacenado para mostrarselo por defecto la próxima vez que visita la página.La aplicación del ejemplo es muy sencilla. Primero incluimos el fichero de jQuery.</p>
<pre>&lt;script type="text/javascript" src="jquery-1.2.6.js"&gt;&lt;/script&gt;</pre>
<p>Incluimos tanto el estilo que se mostrará la primera vez que el visitante acceda a la página como los estilos alternativos que deseemos.</p>
<pre>&lt;link rel="stylesheet" type="text/css" href="Estilos.css" title="Normal" media="screen" /&gt;

&lt;link rel="alternate stylesheet" type="text/css" href="EstiloRojo.css" title="Rojo" media="screen" /&gt;

&lt;link rel="alternate stylesheet" type="text/css" href="EstiloNegro.css" title="Negro" media="screen" /&gt;</pre>
<p>Lo importante es asignarle un atributo &#8220;title&#8221; con un nombre que posteriormente utilizaremos para identificarlo.</p>
<p>Lo siguiente es crear los enlaces, que deben tener la clase &#8220;styleswitch&#8221; y el atributo &#8220;rel&#8221; con el nombre que aparece en el &#8220;title&#8221; del estilo al que vamos a pasar.</p>
<pre>&lt;ul&gt;

&lt;li&gt;&lt;a href="Ejemplo.html" rel="Normal" class="styleswitch"&gt;Estilo 1&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="Ejemplo.html" rel="Rojo" class="styleswitch"&gt;Estilo 2&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="Ejemplo.html" rel="Negro" class="styleswitch"&gt;Estilo 3&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;</pre>
<p>Ahora tan sólo queda incluir el script de Kelvinluck.com, que se ayuda de un par de funciones de <a href="http://www.quirksmode.org/js/cookies.html" target="_blank">Quirksmode</a>.</p>
<pre>&lt;script language="javascript"&gt;

/**

* Styleswitch stylesheet switcher built on jQuery

* Under an Attribution, Share Alike License

* By Kelvin Luck ( http://www.kelvinluck.com/ )

**/

(function($){

$(document).ready(function() {

 $('.styleswitch').click(function()

 {

 	switchStylestyle(this.getAttribute("rel"));

 	return false;

 });

 var c = readCookie('style');

 if (c) switchStylestyle(c);

});

function switchStylestyle(styleName) {

 $('link[@rel*=style][title]').each(function(i)

 {

 	this.disabled = true;

 	if (this.getAttribute('title') == styleName) this.disabled = false;

 });

 createCookie('style', styleName, 365);

}

})(jQuery);

// cookie functions http://www.quirksmode.org/js/cookies.html

function createCookie(name,value,days){

 if (days)	{

 	var date = new Date();

 	date.setTime(date.getTime()+(days*24*60*60*1000));

 	var expires = "; expires="+date.toGMTString();

 }

 else var expires = "";

 document.cookie = name+"="+value+expires+"; path=/";

}

function readCookie(name){

 var nameEQ = name + "=";

 var ca = document.cookie.split(';');

 for(var i=0;i &lt; ca.length;i++)

 {

 	var c = ca[i];

 	while (c.charAt(0)==' ') c = c.substring(1,c.length);

 	if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

 }

 return null;

}

function eraseCookie(name){

 createCookie(name,"",-1);

}

// /cookie functions

&lt;/script&gt;</pre>
<p>Ya tenemos realizado un intercambiador de estilos que recordará nuestra elección cada vez que carguemos la página.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spartan-code.com/blog/2009/03/07/style-switcher-con-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Divide formularios en pasos con jQuery</title>
		<link>http://www.spartan-code.com/blog/2009/02/10/divide-formularios-en-pasos-con-jquery/</link>
		<comments>http://www.spartan-code.com/blog/2009/02/10/divide-formularios-en-pasos-con-jquery/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 20:07:50 +0000</pubDate>
		<dc:creator>Pirata21</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.spartan-code.com/blog/?p=24</guid>
		<description><![CDATA[En aNieto2k me he encontrado un tutorial muy interesante, tomando como punto de partida un plugin para jQuery denominado babySteps, sobre como dividir formularios en pasos. Esta técnica de dividir los formularios en partes o pasos suele ser bastante habitual en formularios largos.
Revisando los posts del foro, en un rato que he tenido, me he [...]]]></description>
			<content:encoded><![CDATA[<p>En <strong>aNieto2k</strong> me he encontrado un tutorial muy interesante, tomando como punto de partida un plugin para jQuery denominado babySteps, sobre como dividir formularios en pasos. Esta técnica de dividir los formularios en partes o pasos suele ser bastante habitual en formularios largos.</p>
<p>Revisando <a href="http://www.anieto2k.com/foro/">los posts del foro</a>, en un rato que he tenido, me he encontrado <a href="http://blog.vokle.com/index.php/2008/08/22/babysteps/">babySteps</a>, un plugin que <a href="http://www.anieto2k.com/foro/topic/jquery-plugin-babysteps?q=jquery-plugin-babysteps">hans me muestra</a> y que se encarga de dividir formularios en partes. Un componente ideal para formularios rápidos y complicados.</p>
<p>Revisando el plugin he visto que tu defines los puntos de corte y eso no me acaba de gustar, el tener que poner elementos que no tendrían ningún sentido si no fuera por el plugin no me ha gustado mucho. Así que me montado un pequeño script, que usando <code>jQuery</code>, nos permite obtener lo mismo siguiendo un poco más la semántica del HTML.</p>
<h3>stepForm()</h3>
<p>Simplemente es una función que se encarga de convertir todos los formularios cuyo atributo <code>class </code>sea <code>stepMe</code>. Únicamente se encarga de cortar el formulario por elementos <code>&amp;lt;fieldset /&amp;gt;</code> haciendo que un formulario largo aparente ser varios de menor tamaño.</p>
<p>Veamos un <a href="http://www.anieto2k.com/demo/stepForm/">ejemplo que he montado</a>.</p>
<pre><code>&amp;lt;form action="" method="post" class="stepMe"&amp;gt;
	&amp;lt;fieldset&amp;gt;
		&amp;lt;label for="name"&amp;gt;Nombre:&amp;lt;/label&amp;gt;
		&amp;lt;input name="nombre" id="name" value="" /&amp;gt;
		&amp;lt;label for="surname"&amp;gt;Apellidos:&amp;lt;/label&amp;gt;
		&amp;lt;input name="apellidos" id="surname" value="" /&amp;gt;
		&amp;lt;label for="birthday"&amp;gt;Fecha de Nacimiento:&amp;lt;/label&amp;gt;
		&amp;lt;input name="fnac" id="birthday" value="" /&amp;gt;
	&amp;lt;/fieldset&amp;gt;
	&amp;lt;fieldset&amp;gt;
		&amp;lt;label for="text1"&amp;gt;Text1:&amp;lt;/label&amp;gt;
		&amp;lt;select id="text1"&amp;gt;
			&amp;lt;option&amp;gt;1&amp;lt;/option&amp;gt;
			&amp;lt;option&amp;gt;1&amp;lt;/option&amp;gt;
			&amp;lt;option&amp;gt;1&amp;lt;/option&amp;gt;
			&amp;lt;option&amp;gt;1&amp;lt;/option&amp;gt;
			&amp;lt;option&amp;gt;1&amp;lt;/option&amp;gt;
		&amp;lt;/select&amp;gt;
		&amp;lt;label for="text2"&amp;gt;Text2: &amp;lt;/label&amp;gt;
			&amp;lt;input type="radio" id="text2" /&amp;gt;
	&amp;lt;/fieldset&amp;gt;
	&amp;lt;fieldset&amp;gt;
		&amp;lt;label for="submit"&amp;gt;Submitar datos &amp;lt;/label&amp;gt;
		&amp;lt;input type="submit" id="submit" value="Enviar" /&amp;gt;
	&amp;lt;/fieldset&amp;gt;
&amp;lt;/form&amp;gt;</code></pre>
<p>Este ejemplo nos divide la página en 3 pasos. Para permitir al usuario moverse entre los pasos he añadido un enlace “<em>Volver</em>” y otro “<em>Seguir</em>“, pero no descarto añadir una pequeña paginación esta noche <img src="http://www.anieto2k.com/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /></p>
<h3>Personalización</h3>
<p>Podemos definir nuestro propio estilo para los enlaces que se añaden mediante el uso CSS de las clases <code>.nextStep</code> y <code>.backStep</code>.</p>
<p>Además, podemos definir el texto que queremos mostrar en ambos enlaces pasándolo como parámetro. Disponemos de 3 parámetros:</p>
<ol>
<li>Texto Back. (por defecto Volver)</li>
<li>Texto Next. (por defecto Seguir)</li>
<li>Contenedor. (por defecto fieldset)</li>
</ol>
<pre><code>$.stepForm();
<strong>// Volver / Seguir [fieldset] </strong>

$.stepForm('Back','Next');
<strong>// Back / Next [fieldset]</strong>

$.stepForm('&amp;lt;-','-&amp;gt;', 'p');
<strong>// Volver / Seguir [p]</strong></code></pre>
<p>Si somos reacios a usar <code>&amp;lt;fieldset /&amp;gt;</code> podemos pasar como 3er parámetro el tag que vamos a usar como contenedor.</p>
<h3>Código</h3>
<pre><code>jQuery.extend({
    stepForm: function(txtBack, txtNext, token){
    	var fieldsets = $((token || 'fieldset'), $("form.stepMe"));
        var total = $(fieldsets).length;
	$(fieldsets).each(function(x,el){
			    if (x &amp;gt; 0) {
			      $(el).hide();
			      $(el).append('&amp;lt;a class="backStep" href="#x_' + (x-1) + '"&amp;gt;'+ (txtBack || 'Volver') +'&amp;lt;/a&amp;gt;');
			      $(".backStep", $(el)).bind("click", function(){
			                $("#x_" + (x - 1)).show();
			                $(el).hide();
			       });
			    }

			    if ((x+1)&amp;lt; total) {
			        $(el).append('&amp;lt;a class="nextStep" href="#_' + (x+1) + '"&amp;gt;'+(txtNext || 'Seguir')+'&amp;lt;/a&amp;gt;');
			        $(".nextStep", $(el)).bind("click", function(){
			                $("#x_" + (x + 1)).show();
			                $(el).hide();
			        });
			    }
			    $(el).attr("id", "x_" + x);
	});
    }
});</code></pre>
<p>Actualización</p>
<p><a href="http://p0l0.binware.org/">Marco Neumann</a>  ha portado<a href="http://p0l0.binware.org/index.php/2009/01/29/moostepform/"> el script a MooTools para los usuarios de este framework</a>. La verdad es que la claridad del código no tiene comparación.</p>
<p><a href="http://www.anieto2k.com/2009/01/28/divide-formularios-en-pasos-con-jquery/" target="_blank">Divide formularios en pasos con jQuery » » </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spartan-code.com/blog/2009/02/10/divide-formularios-en-pasos-con-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preloaders</title>
		<link>http://www.spartan-code.com/blog/2009/02/10/preloaders/</link>
		<comments>http://www.spartan-code.com/blog/2009/02/10/preloaders/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 20:01:45 +0000</pubDate>
		<dc:creator>Pirata21</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[utils]]></category>

		<guid isPermaLink="false">http://www.spartan-code.com/blog/?p=23</guid>
		<description><![CDATA[Preloaders es otra web en la que a través de la personalización de unos cuantos parámetros podemos generar un precargador para cuando el sistema se encuentre ocupado realizando, por ejemplo, transacciones Ajax. El generador, además de bien realizado y con múltiples opciones de personalización, posee la novedad de incorporar gráficos en 3D.
Preloaders.net  » » [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Preloaders</strong> es otra web en la que a través de la personalización de unos cuantos parámetros podemos generar un precargador para cuando el sistema se encuentre ocupado realizando, por ejemplo, transacciones Ajax. El generador, además de bien realizado y con múltiples opciones de personalización, posee la novedad de incorporar gráficos en 3D.</p>
<p><a href="http://preloaders.net/" target="_blank" rel="nofollow" title="Preloaders">Preloaders.net  » » </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spartan-code.com/blog/2009/02/10/preloaders/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE6 en la recta final</title>
		<link>http://www.spartan-code.com/blog/2009/01/11/ie6-en-la-recta-final/</link>
		<comments>http://www.spartan-code.com/blog/2009/01/11/ie6-en-la-recta-final/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 17:28:38 +0000</pubDate>
		<dc:creator>Pirata21</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.spartan-code.com/blog/?p=17</guid>
		<description><![CDATA[Miles de desarrolladores Web pronto podran respirar un suspiro de alivio. A Microsoft IE 6 es realmente poco lo que parece quedarle. Eso es lo que se ve de algunas de las cifras, IE 6 ha ido perdiendo alrededor de 20 puntos por año. Echenle un vistazo a esa grafica que lo  representa y, a [...]]]></description>
			<content:encoded><![CDATA[<p><font size="3"><font color="#000000">Miles de desarrolladores Web pronto podran respirar un suspiro de alivio. A Microsoft IE 6 es realmente poco lo que parece quedarle. Eso es lo que se ve de algunas de las cifras, IE 6 ha ido perdiendo alrededor de 20 puntos por año. Echenle un vistazo a esa grafica que lo  representa y, a continuación preguntense, &#8220;¿qué puedo hacer para acabar con el IE 6? <img src='http://www.spartan-code.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
</font></font></p>
<p><img src="http://farm4.static.flickr.com/3266/3159496996_e995d120a0_o.png" align="middle" width="557" height="676" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spartan-code.com/blog/2009/01/11/ie6-en-la-recta-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frases célebres sobre programación que no debemos olvidar</title>
		<link>http://www.spartan-code.com/blog/2009/01/03/frases-celebres-sobre-programacion-que-no-debemos-olvidar/</link>
		<comments>http://www.spartan-code.com/blog/2009/01/03/frases-celebres-sobre-programacion-que-no-debemos-olvidar/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 00:43:43 +0000</pubDate>
		<dc:creator>Pirata21</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.spartan-code.com/blog/?p=15</guid>
		<description><![CDATA[
Estas son algunas frases importantes a tener en cuenta cuando programamos nuestras aplicaciones.
&#8220;Depurar codigo es dos veces mas dificil que escribir codigo, por lo tanto si escribes el codigo tan inteligentemente como te sea posible, por definicion no seras lo suficientemente inteligente como para depurarlo&#8221; 


 &#8220;Hay solo dos tipos de lenguajes: de los que [...]]]></description>
			<content:encoded><![CDATA[<p class="entry-body">
<p class="item-body">Estas son algunas frases importantes a tener en cuenta cuando programamos nuestras aplicaciones.</p>
<blockquote><p><span><span>&#8220;Depurar codigo es dos veces mas dificil que escribir codigo, por lo tanto si escribes el codigo tan inteligentemente como te sea posible, por definicion no seras lo suficientemente inteligente como para depurarlo&#8221; </span></span></p></blockquote>
<p><span><span><br />
</span></span></p>
<blockquote><p><span><span> &#8220;Hay solo dos tipos de lenguajes: de los que la gente se queja y los que nadie usa&#8221; </span></span></p></blockquote>
<p><span><span><br />
</span></span></p>
<blockquote><p><span><span>&#8220;Cualquier idiota puede escribir codigo que un ordenador entienda, los buenos programadores escriben codigo que los humanos pueden entender&#8221; </span></span></p></blockquote>
<blockquote><p><span><span> &#8220;Medir el progreso de programacion en lineas de codigo es como medir el progreso de construccion de un avion en peso&#8221; </span></span></p></blockquote>
<p><span><span><br />
</span></span></p>
<blockquote><p><span><span>&#8220;La mayoria del soft actual es parecido a una piramide egipcia, con millones de ladrillos apilados uno encima del otro, sin integridad estructural, hecho con fuerza bruta y miles de esclavos&#8221; </span></span></p></blockquote>
<p><span><span><br />
</span></span></p>
<blockquote><p><span><span>&#8220;Los programas deben ser escritos para que la gente los lea (entienda) y solo incidentalmente para que los ejecuten las maquinas&#8221;  </span></span></p></blockquote>
<blockquote><p><span><span>&#8220;Si quieres ponerte a desarrollar el próximo bombazo, no necesitas millones de dólares en capital. Necesitas embutir la nevera con pizzas y cola light, un PC baratero en el que trabajar, y la dedicación para llevarlo hasta el final&#8221; </span></span></p></blockquote>
<p>Traducción de los comentarios de <a href="http://meneame.net/story/frases-celebres-sobre-programacion-no-deberiamos-olvidar" target="_blank">Meneame</a>. <a href="http://www.hackification.com/2008/12/23/a-double-handful-of-programming-quotes/" target="_blank">Fuente original </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.spartan-code.com/blog/2009/01/03/frases-celebres-sobre-programacion-que-no-debemos-olvidar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ</title>
		<link>http://www.spartan-code.com/blog/2008/03/04/linq/</link>
		<comments>http://www.spartan-code.com/blog/2008/03/04/linq/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 11:56:58 +0000</pubDate>
		<dc:creator>Pirata21</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://www.spartan-code.com/blog/?p=6</guid>
		<description><![CDATA[LINQ que significa (Language Integrated Query), podemos encontrar muchas definiciones de este tema, y realmente a veces nos confunde la idea de que algunos bloggers lo mencionan de tal forma que no cumple con las verdaderas características de este potente lenguaje.
Definiciones como:

LINQ es un modelo uniforme de programación para todo tipo de información. LINQ permite [...]]]></description>
			<content:encoded><![CDATA[<p>LINQ que significa (Language Integrated Query), podemos encontrar muchas definiciones de este tema, y realmente a veces nos confunde la idea de que algunos bloggers lo mencionan de tal forma que no cumple con las verdaderas características de este potente lenguaje.</p>
<p>Definiciones como:</p>
<ul>
<li>LINQ es un modelo uniforme de programación para todo tipo de información. LINQ permite ejecutar consultas y manipular información con un modelo consistente que es independiente de los recursos de datos.</li>
<li>LINQ es otra herramienta para consultas SQL embebidas en código</li>
<li>LINQ es todavía una capa de abstracción de datos.</li>
</ul>
<p>Todas estas descripciones son correctas, pero hay que tomar en cuenta algo importante:</p>
<p>LINQ puede hacer más de simples consultas SQL embebidas, es mas simple y fácil que un modelo de programación uniforme, y es más aya de una capa de modelado de información.</p>
<p><strong>LINQ es una metodología que simplifica y unifica la implementación de cualquier tipo de acceso a datos</strong>. LINQ no te obliga a utilizar una arquitectura específica, si no que te facilita la implementación de arquitecturas ya existentes para el acceso a datos.</p>
<p>Actualmente la información que se maneja por un programa puede pertenecer a diferentes dominios de datos, un array, un objeto, un documento XML, una base de datos, un archivo de texto, una clave de registro, un mensaje de correo electrónico, un mensaje de SOAP, un archivo de excel de office, en fin muchos recursos de datos.</p>
<p>Cada dominio de datos tiene un modelo de acceso específico, me refiero que por ejemplo si queremos hacer una consulta a base de datos ocupamos SQL, si queremos navegar en un XML usamos DOM o XQuery, si queremos sacar información de un array, mediante una iteración, si deseamos ver un documento de texto podemos ocupar Office, etc.</p>
<p>Realmente el problema es poder unificar todo este tipo de estructuras de acceso, que es lo que se ha venido intentando anteriormente. LINQ viene a resolver este tipo de problemas, brindándonos una manera uniforme de acceso y manipulación de información.</p>
<p>LINQ es un modelo de programación que introduce consultas como primer concepto de clase en cualquier lenguaje de .NET.</p>
<p>Por ejemplo:</p>
<p><strong>var query=  from c in Customers where c.Country==”Italy” select c.CompanyName;</strong></p>
<p>Ahora Visual Studio 2008 nos da la gran característica de tener un tipo de datos llamado var, por ejemplo si tenemos en este caso una variable var, y le asignamos una cadena como valor, identificara que el tipo de datos que se manejara sera string, de lo contrario si colocamos valores numéricos, identificará  que sean entero, flotante, decimales, etc.</p>
<p>Entonces decimos que en nuestra variable query va a contener nuestra consulta y la mostraremos de esta forma:</p>
<p><strong>foreach (string name in query) {</strong></p>
<p><strong>Console.WriteLine (name);       }</strong></p>
<p>Esta consulta también podemos aplicarla a SQL embebido, o a un dataset, o un array de objetos en memoria, o a muchos  tipos de información, por ejemplo Customers puede ser una colección de objetos.</p>
<p><strong>Customer[] Customers;</strong></p>
<p>Customers puede ser un DataTable en un DataSet:</p>
<p><strong>DataSet ds= GetDataSet();</strong></p>
<p><strong>DataTable Customers = ds.Tables[”Customers”];</strong></p>
<p>Customers puede ser una entidad de clase que describe una tabla fisicamente en una relacion en base de datos:</p>
<p><strong>DataContext db=new DataContext (ConnectionString);</strong></p>
<p><strong>Table&lt;Customer&gt; Customers =db.GetTable&lt;Customer&gt;();</strong></p>
<p>O bien Customers puede ser una entidad de clase que describe un modelo conceptual y que es indicado en una relación de base de datos.</p>
<p><strong>NorthwindModel dataModel =new NorthwindModel();</strong></p>
<p><strong>ObjectQuery&lt;Customer&gt; Customers =dataModel.Customers;</strong></p>
<p>Como podemos ver, es similar a sintaxis SQL a lo cual en LINQ se le conoce como expressiones de consulta. Los lenguajes que implementan SQL embebido definen solo una simple sintaxis para colocar sentencias SQL en diferentes lenguaje, pero digamos que estas sentencias no estan integradas en la sintaxis del lenguaje nativo y el tipo de sistema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.spartan-code.com/blog/2008/03/04/linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This is Sparta</title>
		<link>http://www.spartan-code.com/blog/2008/01/14/hello-world-2/</link>
		<comments>http://www.spartan-code.com/blog/2008/01/14/hello-world-2/#comments</comments>
		<pubDate>Mon, 14 Jan 2008 20:40:25 +0000</pubDate>
		<dc:creator>Pirata21</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.spartan-code.com/blog/?p=1</guid>
		<description><![CDATA[El Primer Post no podia ser para un frio y seco &#8220;Hello World&#8221;, el primer post tiene nombre y apellido, y va dedicado a quien ayudo a instalar la BD y configuro el WP, gracias por tu paciencia Federico  
]]></description>
			<content:encoded><![CDATA[<p>El Primer Post no podia ser para un frio y seco &#8220;Hello World&#8221;, el primer post tiene nombre y apellido, y va dedicado a quien ayudo a instalar la BD y configuro el WP, gracias por tu paciencia Federico <img src='http://www.spartan-code.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.spartan-code.com/blog/2008/01/14/hello-world-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
