<?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>Indalcasa</title>
	<atom:link href="http://www.indalcasa.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.indalcasa.com</link>
	<description>Un blog de tecnologia</description>
	<lastBuildDate>Wed, 16 May 2012 21:55:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Microsoft prefiere GIT, codeplex y la influencia de github</title>
		<link>http://www.indalcasa.com/programacion/dotnet-csharp/microsoft-prefiere-git-codeplex-y-la-influencia-de-github/</link>
		<comments>http://www.indalcasa.com/programacion/dotnet-csharp/microsoft-prefiere-git-codeplex-y-la-influencia-de-github/#comments</comments>
		<pubDate>Wed, 16 May 2012 21:52:03 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[.Net (C#)]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[codeplex]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=815</guid>
		<description><![CDATA[Codeplex, la famosa web de forge de Microsoft me sorprende cada día mas. Aunque Codeplex no me gusta tanto como Github, es cierto que da muy buena salida a los proyectos realizados en .Net, por lo que aunque en mis proyectos open source utilizo Github, tengo los repositorios clonados en Codeplex. Microsoft cada día me [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.indalcasa.com/wp-content/uploads/2012/05/codeplex-logo.jpg"><img class="alignleft size-full wp-image-819" title="codeplex-logo" src="http://www.indalcasa.com/wp-content/uploads/2012/05/codeplex-logo.jpg" alt="Codeplex" width="231" height="87" /></a><strong>Codeplex</strong>, la famosa web de <strong>forge de Microsoft</strong> me sorprende cada día mas. Aunque <strong>Codeplex</strong> no me gusta tanto como <strong>Github</strong>, es cierto que da muy buena salida a los proyectos realizados en <strong>.Net</strong>, por lo que aunque en mis proyectos open source utilizo <strong>Github</strong>, tengo los repositorios clonados en <strong>Codeplex</strong>. <strong>Microsoft</strong> cada día me sorprende mas, si ya me sonreía al entrar en la pagina de <strong>asp.net</strong> y encontrar que muchos proyectos que <strong>Microsoft</strong> recomienda, muchos de ellos eran en <strong>PHP</strong>. Ahora <strong>Microsoft</strong> vuelve a sorprender, esta vez con <strong>Codeplex</strong>, donde originalmente se ofrecían servicios de <strong>control de código fuente</strong> por <strong>Team Foundation</strong>, poco a poco han ido ampliando la variedad de servicios, añadiendo <strong>SVN</strong>, <strong>Mercurial</strong> y poco después <strong>GIT</strong>.</p>
<p>Si navegamos entre los diferentes repositorios de <strong>Codeplex</strong>, podremos encontrar el de <strong>ASP.Net MVC</strong>, que curiosamente, no está en <strong>Team Foundation</strong>, ni <strong>SVN</strong>, no no, esta en <strong>GIT</strong> y solo <strong>GIT</strong>. Curioso ver esta jugada de <strong>Microsoft</strong>, ¿Será que los propios ingenieros prefieren usar la potencia de <strong>GIT</strong> en lugar de sus propias herramientas? Para el interesado que quiera verlo, puede entrar en la web del proyecto de <strong><a href="http://aspnetwebstack.codeplex.com/">ASP.Net MVC en Codeplex</a></strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/dotnet-csharp/microsoft-prefiere-git-codeplex-y-la-influencia-de-github/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Altair Studios desarrollando el futuro de la web</title>
		<link>http://www.indalcasa.com/altair-studios-desarrollo-web/altair-studios-desarrollando-el-futuro-de-la-web/</link>
		<comments>http://www.indalcasa.com/altair-studios-desarrollo-web/altair-studios-desarrollando-el-futuro-de-la-web/#comments</comments>
		<pubDate>Wed, 11 Apr 2012 19:14:29 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Altair Studios]]></category>
		<category><![CDATA[altair studios]]></category>
		<category><![CDATA[empresa]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=809</guid>
		<description><![CDATA[Hoy no vengo a hablar acerca de una aplicación, una web o de tecnología en general. Hoy voy a hablar de un sueño que he perseguido, aunque también temido durante mucho tiempo. Febrero de 2012 para mi siempre será recordado con cierto cariño, pues, a pesar de llevar años realizando trabajos como freelance, fue el [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Altair Studios - Desarrollo web" href="http://www.altairstudios.es"><img class="alignleft size-full wp-image-811" title="Altair Studios" src="http://www.indalcasa.com/wp-content/uploads/2012/04/logo-simple.png" alt="Altair Studios" width="130" height="60" /></a>Hoy no vengo a hablar acerca de una aplicación, una web o de tecnología en general. Hoy voy a hablar de un sueño que he perseguido, aunque también temido durante mucho tiempo. Febrero de 2012 para mi siempre será recordado con cierto cariño, pues, a pesar de llevar años realizando <strong>trabajos como freelance</strong>, fue el día 1 de Febrero de 2012 cuando normalice mi situación y <strong>cree mi propia empresa</strong>.</p>
<p><strong><a title="Altair Studios - desarrollo web" href="http://www.altairstudios.es">Altair Studios</a></strong> nace con la idea de ser no solo una <strong><a href="http://www.altairstudios.es">empresa de desarrollo web</a></strong>, sino también  que <strong><a href="http://www.altairstudios.es">Altair Studios sea una empresa de desarrollo de nuevas tecnologías</a></strong>. Claro ejemplo de ello son proyectos como <strong>AltairStudios.Core</strong> o <strong>UserAgent Theme Switcher</strong>, ambos <strong>grandes proyectos</strong> en el marco de nuevos desarrollos, aplicando las nuevas tecnologías que var surgiendo para dar un resultado como y fácil de utilizar al usuario final.</p>
<p>Ya por el año 2005, el sueño de crear mi propia empresa con Murgi Soft, quedo en la cuneta cuando todo esta casi preparado. Hoy, 7 años después, que no solo son 7 años pasados, sino 7 años de experiencia, aprendiendo lenguajes, metodologías de trabajo, aplicando las mejores herramientas posibles, para que los clientes de <strong><a title="Altair Studios - desarrollo web" href="http://www.altairstudios.es">Altair Studios</a></strong> tengan el resultado mas satisfactorio posible al mejor precio del mercado, ya que tasamos el precio de nuestro tiempo al precio real y consciente de los tiempos que corren.</p>
<p>En los 3 meses de vida que tiene <strong><a title="Altair Studios - desarrollo web" href="http://www.altairstudios.es">Altair Studios</a></strong>, al menos puedo decir, que dados los tiempos de crisis en los que nos encontramos, al menos puedo presumir de tener beneficios y espero que siga siendo así por muchos años.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/altair-studios-desarrollo-web/altair-studios-desarrollando-el-futuro-de-la-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lenguajes de programación semánticos (python) contra matemáticos (c#)</title>
		<link>http://www.indalcasa.com/programacion/lenguajes-de-programacion-semanticos-python-contra-matematicos-c/</link>
		<comments>http://www.indalcasa.com/programacion/lenguajes-de-programacion-semanticos-python-contra-matematicos-c/#comments</comments>
		<pubDate>Mon, 09 Apr 2012 15:27:33 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[pylons]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[visual basic]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=799</guid>
		<description><![CDATA[Hace tiempo escribí un artículo en el que hablaba de frameworks web para programar y fui criticado por criticar django. Bueno como aclaratoria, escribo este artículo, en el que detallo las diferencias de los programadores, una gran batalla entre lenguajes semánticos vs matematicos; en este caso python vs c#. Veamos primero que es cada uno, [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo escribí un artículo en el que hablaba de<strong> frameworks web para programar</strong> y fui criticado por <strong>criticar django</strong>. Bueno como aclaratoria, escribo este artículo, en el que detallo las <strong>diferencias de los programadores</strong>, una gran batalla entre <strong>lenguajes semánticos vs matematicos</strong>; en este caso <strong>python vs c#</strong>.</p>
<p>Veamos primero que es cada uno, un <strong>lenguaje semántico</strong> es un <strong>lenguaje de programación</strong> que pretende ser similar a un <strong>lenguaje real</strong>, como el español, inglés, etc. mientras que un <strong>lenguaje matemático</strong> es mas parecido a <strong>ecuaciones con llaves, corchetes, paréntesis</strong>, etc. Pero veamos mas diferencias, un <strong>lenguaje semántico</strong>, sea cual sea, persigue el "de un vistazo", generalmente esta <strong>ausente de llaves</strong> y basa su <strong>estructuración en identación y estructuras muy semánticas como delimitadores de texto</strong>. Para este caso tenemos como ejemplo a <strong>VB</strong>, en el que terminamos un <strong>if</strong> con un <strong>End If</strong>, un <strong>for</strong> con un <strong>Next</strong>, etc. la <strong>identación automática</strong> que propone el propio <strong>ide de programación</strong> o como en el caso de <strong>Python</strong>, la identación es necesaria para que el interprete de <strong>Python</strong> entienda el código.</p>
<p>Un <strong>lenguaje matemático</strong> es en contra de un <strong>lenguaje semántico</strong>, un <strong>lenguaje de formulas y ecuaciones</strong>, que sin tener unas nociones de matemáticas y que estas nos gusten se nos pueden atragantar bastante. A diferencia de lo que ocurre en los <strong>lenguajes semánticos</strong>, este tipo de <strong>lenguajes</strong> a pesar de que la identación suele ser importante para la claridad y el entendimiento, también nos permite escribir todo nuestro código en una sola línea. Las funciones suelen estar <strong>delimitadas por llaves</strong> {} así como las <strong>clases</strong> y <strong>namespaces</strong>. Las lineas de un <strong>lenguaje matemático</strong> suelen estar delimitadas por puntos y coma ";", y como mencione antes, al tener <strong>delimitadores de linea todo el código</strong> puede estar en una única linea, como ocurre en el caso de los <strong>frameworks de javascript</strong> que comprimen su código hasta que ocupe una única linea.</p>
<p>¿Pero qué es mejor? Pues depende de la persona, igual que hay zapatillas para los corredores según su tipo de pisada, hay <strong>lenguajes</strong> según como programes. Hay <strong>programadores</strong> que son mas de letras, les gusta ver su <strong>código</strong> y creer que están leyendo un libro. Para ellos, un <strong>lenguaje semántico</strong> es ideal, un <strong>python</strong> o un <strong>visual basic</strong>. Para aquellos programadores que como me ocurre a mi, nos gusta ver una cierta simetría en nuestro <strong>código</strong> y que al ver el <strong>código</strong> parezca una libreta de un matemático, lleno de <strong>formulas</strong>, <strong>lenguajes</strong> como <strong>c# o java</strong>, son para mi.</p>
<p>¿Y cual es mejor? Pues ninguno. Lo mas importante es sentirse a gusto con el entorno con el que se trabaja. Si por ejemplo, eres un matemático puro, <strong>python</strong> es horrible, pero no quiere decir que no lo puedas utilizar. Por contra, si eres muy <strong>semántico</strong>,<strong> c#</strong> sería incomprensible. A la hora de trabajar, hay que tener en cuenta 3 factores básicos. En primer lugar en que <strong>lenguaje</strong> nos sentimos mas cómodos. Evidentemente no vamos a <strong>programar</strong> como no nos gusta (salvo que nuestro jefe nos lo diga). En segundo lugar hay que saber elegir bien el lenguaje con sus herramientas. En <strong>Lenguajes</strong> como <strong>PHP</strong> tenemos <strong>multitud de librerías y aplicaciones</strong> ya desarrolladas, en <strong>python django</strong> tenemos muchos <strong>módulos</strong>, etc. en c# el <strong>deploy</strong> es muy sencillo, pero no se nos ocurriría hacer una <strong>web en shell script</strong> por ejemplo, ya que no tenemos el mismo <strong>potencial de librerías</strong>. Por último hay que elegir sabiamente según lo que vayamos a hacer. Si por ejemplo vamos a desarrollar una pequeña aplicación, con un <strong>PHP</strong> vamos sobrados, si queremos generar una página sencilla, podemos utilizar <strong>django</strong>, pero si queremos hacer una<strong> aplicación grande y escalable</strong>, quizás<strong> c#</strong> nos convenga mas. Hay que saber equilibrar todo estos puntos para elegir siempre la mejor opción según lo que vayamos a desarrollar.</p>
<p>Yo programo las<strong> aplicaciones prefabricadas (wordpress, prestashop, etc)</strong> o páginas muy muy <strong>sencillas en PHP</strong>, otros proyectos a medida de mayor envergadura pero<strong> pequeños en python con django o pylons</strong> y los <strong>grandes proyectos en c# con mono aspnet mvc y AltairStudios.Core</strong>. Y tu, ¿En qué programas?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/lenguajes-de-programacion-semanticos-python-contra-matematicos-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>La muerte de symbian</title>
		<link>http://www.indalcasa.com/telefonia/la-muerte-de-symbian/</link>
		<comments>http://www.indalcasa.com/telefonia/la-muerte-de-symbian/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 15:14:37 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Telefonía]]></category>
		<category><![CDATA[andorid]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[movil]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[Symbian]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=796</guid>
		<description><![CDATA[En el año 2010, escribí un artículo que dio un tanto de que hablar, el artículo en concreto fue Los sistemas operativos móviles para smartphones: Android vs iOS vs Symbian vs Windows Phones. Es curioso ver como si se leen los comentarios, la gente va pasando de defensores de Symbian frente al resto de sistemas a [...]]]></description>
			<content:encoded><![CDATA[<p>En el año 2010, escribí un artículo que dio un tanto de que hablar, el artículo en concreto fue<strong> <a title="Los sistemas operativos móviles para smartphones: Android vs iOS vs Symbian vs Windows Phone" href="http://www.indalcasa.com/dispositivos-moviles/los-sistemas-operativos-moviles-para-smartphones-android-vs-ios-vs-symbian-vs-windows-phone/">Los sistemas operativos móviles para smartphones: Android vs iOS vs Symbian vs Windows Phones</a></strong>. Es curioso ver como si se leen los comentarios, la gente va pasando de defensores de <strong>Symbian</strong> frente al resto de sistemas a poco a poco, ir queriendo actualizar a <strong>iOS</strong> o a <strong>Android</strong>. Bueno, escribo esto como aclaratoria, <strong>Symbian finalmente murió</strong>, y <strong>Symbian ha muerto</strong> no por que lo diga yo, sino por los hechos. <strong>Nokia compro el 100% de Symbian</strong>, por lo que el resto de marcas se interesaron por otros sistemas mas estables para los <strong>teléfonos de última generación</strong> (de todos es sabido los problemas de <strong>Symbian</strong> y los <strong>telefonos táctiles</strong>). La propia <strong>Nokia</strong>, por si aun queda algún defensor de este <strong>sistema operativo para móvil</strong>, abandono <strong>Symbian</strong> para utilizar <strong>Windows Phone</strong>, increíble pero cierto. Los planes de futuro de <strong>Symbian</strong>, en teoría mantenido con respiración asistida hasta 2016, son para <strong>teléfonos de baja gama de Nokia</strong>, el típico <strong>teléfono</strong> que tu madre se compraría.</p>
<p>Tengo que decir que es una lastima, ya que todos hemos <strong>crecido con Symbian</strong>, pero en la vida hay que ser fuerte y reconocer una <strong>derrota</strong>, solo nos queda mirar a los <strong>nuevos sistemas como Windows Phone, Android, iOS</strong>, etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/telefonia/la-muerte-de-symbian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Deploy de ASP.Net MVC en Apache con mod_mono</title>
		<link>http://www.indalcasa.com/programacion/deploy-de-asp-net-mvc-en-apache-con-mod_mono/</link>
		<comments>http://www.indalcasa.com/programacion/deploy-de-asp-net-mvc-en-apache-con-mod_mono/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 12:34:10 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[.Net (C#)]]></category>
		<category><![CDATA[Mono (C#)]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Visual Basic .Net]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[visual basic]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=792</guid>
		<description><![CDATA[Lo que voy a escribir aquí no es una guía de como instalar Mono ASP.Net con MVC sobre apache con mod_mono, aunque la escribiré, sino como hacer el deploy de una aplicación. Cuando montamos un sistema Mono ASP.Net con MVC sobre apache con mod_mono, hay que tener 3 cosas en cuenta para su correcto funcionamiento, son [...]]]></description>
			<content:encoded><![CDATA[<p>Lo que voy a escribir aquí no es una <strong>guía de como instalar Mono ASP.Net con MVC sobre apache con mod_mono</strong>, aunque la escribiré, sino como hacer el <strong>deploy de una aplicación</strong>. Cuando montamos un <strong>sistema Mono ASP.Net con MVC sobre apache con mod_mono</strong>, hay que tener 3 cosas en cuenta para su correcto funcionamiento, son pequeños detalles pero que te pueden dar algún que otro quebradero de cabeza. Las 3 cosas a tener en cuenta son:</p>
<ul>
<li><strong>Apache no entiende que tu app es MVC</strong>, por lo que hay que decirselo.</li>
<li><strong>Apache ni mod_mono son capaces de dictaminar tu index</strong></li>
<li>Siempre hay que tener algo para <strong>recompilar el backend en caso de cacheo o fallo</strong> (generalmente cuando desarrollamos).</li>
</ul>
<p>Bueno, expliquemos cada una, en primer lugar apache no sabe que tu <strong>app es un MVC de ASP.Net</strong>, por lo que cuando hagamos un <strong>deploy</strong> o creemos un proyecto nuevo de <strong>Mono ASP.Net con MVC</strong>, lo primero a crear es un <strong>.htaccess</strong> forzando a que es un <strong>MVC</strong>. El <strong>código del htaccess</strong> es:</p>
<pre class="brush: text; gutter: true">ForceType application/x-asp-net</pre>
<p>Con esto ya  podemos poner a funcionar nuestra <strong>aplicación web</strong>. El siguiente paso para hacer las cosas bien, sería <strong>crear un index</strong>, ¿Por qué? ¿Acaso no saben cual es mi <strong>index</strong>? Pues no, todas las pruebas, tanto en <strong>Linux</strong> como en <strong>Mac OS X</strong>, es que <strong>mod_mono</strong> no es capaz de entender cual es el <strong>index</strong> que definimos en el <strong>global.asax</strong>, por lo que lo mejor es crear un <strong>index.aspx</strong> que cargue nuestro <strong>HomeController</strong>, o el que queramos. El <strong>index</strong> estaría en el raiz del proyecto y su código sería:</p>
<pre class="brush: csharp; gutter: true">&lt;%@ Page Language=&quot;C#&quot; Inherits=&quot;System.Web.Mvc.ViewPage&quot; %&gt;
&lt;%
   this.Context.RewritePath(&quot;Home&quot;, false);

   IHttpHandler httpHandler = new MvcHttpHandler();
   httpHandler.ProcessRequest(this.Context);
%&gt;</pre>
<p>Lo que hacemos con este <strong>index.aspx</strong> es decirle que cuando cargue la <strong>home</strong> (el <strong>index</strong>) cargue automáticamente el <strong>HomeController</strong>. Ahora solo nos falta crear un sistema de <strong>reseteo de backend</strong> por si se queda en <strong>cache</strong> y queremos cambiar algo. Para ello creamos una carpeta, por ejemplo, <strong>reset-mono-backend</strong> y creamos un <strong>.htaccess</strong> dentro de esa carpeta. Cabe decir que al htaccess lo podemos otorgar de un sistema de <strong>autentificación</strong> y cosas por el estilo para acceder, pero como esto es un ejemplo, será lo más básico. El <strong>contenido del .htaccess</strong> será:</p>
<pre class="brush: text; gutter: true">ForceType None
SetHandler mono-ctrl</pre>
<p>Al entrar en /nuestroproyecto/reset-mono-backend, nos aparecerá una <strong>interfaz</strong> que nos permitirá entre otras cosas, <strong>resetear el backend</strong>. Otro día explicaré como se instala el sistema en si.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/deploy-de-asp-net-mvc-en-apache-con-mod_mono/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Buscar por tag, clase e id en jquery</title>
		<link>http://www.indalcasa.com/programacion/javascript/buscar-por-tag-clase-e-id-en-jquery/</link>
		<comments>http://www.indalcasa.com/programacion/javascript/buscar-por-tag-clase-e-id-en-jquery/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 11:32:16 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=780</guid>
		<description><![CDATA[Hace tiempo escribí un artículo hablando de rendimiento de jQuery y el uso de selectores dobles con jQuery, pero lo que no he hecho es explicar como funciona un selector de jQuery. La idea es que esto no sea "la guía definitiva de jQuery", ni nada por el estilo, sino un breve apunte para los [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo escribí un artículo hablando de <strong><a title="Guía de buenas prácticas para aumentar el rendimiento de jQuery" href="http://www.indalcasa.com/programacion/javascript/guia-de-buenas-practicas-para-aumentar-el-rendimiento-de-jquery/">rendimiento de jQuery</a></strong> y el <strong><a title="Selectores dobles con JQuery, aumentando el rendimiento de JQuery" href="http://www.indalcasa.com/programacion/javascript/selectores-dobles-con-jquery-aumentando-el-rendimiento-de-jquery/">uso de selectores dobles con jQuery</a></strong>, pero lo que no he hecho es explicar <strong>como funciona un selector de jQuery</strong>. La idea es que esto no sea <em><strong>"la guía definitiva de jQuery"</strong></em>, ni nada por el estilo, sino un breve apunte para los lectores, la <strong>visión mas básica del uso de jQuery</strong>.</p>
<p>En este artículo voy a exponer como <strong>seleccionar</strong> de forma mas que simple utilizando un <strong>tag</strong> (<strong>etiqueta de html</strong>), una <strong>clase de css</strong> y un <strong>id</strong>. <strong>jQuery</strong> es un ente muy inteligente y por tanto, sabrá si lo que le estamos pidiendo es que <strong>convierta una etiqueta a jQuery</strong> o que la busque.</p>
<ul>
<li><strong>Buscar por tag con jQuery</strong>: este junto con el de <strong>clase</strong>, son métodos de <strong>búsqueda de poco rendimiento</strong> y que pueden dar como resultado varios objetos (ya que un tag se puede repetir), se indicaría a <strong>jQuery el nombre del tag</strong>.</li>
<li><strong>Buscar por clase con jQuery</strong>: al igual que el anterior, es de <strong>bajo rendimiento</strong> y dará como resultado un <strong>array de objetos</strong>, ya que una <strong>clase</strong> se puede repetir.</li>
<li><strong>Buscar por id con jQuery</strong>: es el mas <strong>optimo</strong> y el que se ha de usar siempre que sea posible. Devolverá un <strong>único objeto</strong> ya que los <strong>id's</strong> en teoría no se repiten.</li>
</ul>
<p>Ahora vista un poco la teoría viene la practica. Lo primero es entender como se hace la <strong>llamada a jQuery</strong>, que tiene 2 formas, la original que es usando la función <strong>jQuery</strong> o la corta que es usando su alias a la <strong>función $</strong>. Veamos un ejemplo genérico de esto y luego uno por cada <strong>selector</strong>.</p>
<pre class="brush: javascript; gutter: true">var selectorjQuery = jQuery(&quot;#mi_id_a_seleccionar&quot;);
var selectorAlias = $(&quot;#mi_id_a_seleccionar&quot;);</pre>
<p>En el ejemplo anterior, el resultado sería el mismo, ya que es similar utilizar la <strong>función jQuery</strong> que la <strong>función $</strong>. Ahora veamos un <strong>ejemplo con los selectores</strong>, con un <strong>código en html</strong> y otro de <strong>código javascript</strong>.</p>
<pre class="brush: xhtml; gutter: true">&lt;p&gt;
   &lt;a href=&quot;#&quot;&gt;Mi link 1&lt;/a&gt;
   &lt;a href=&quot;#&quot; class=&quot;enlace&quot;&gt;Mi link 2&lt;/a&gt;
   &lt;a href=&quot;#&quot; class=&quot;enlace&quot; id=&quot;myLink&quot;&gt;Mi link 3&lt;/a&gt;
&lt;/p&gt;</pre>
<p>Ahora vamos a hacer lo siguiente, con estos enlaces, vamos a poner el color del enlace en negro para todos los enlaces, rojo para los enlaces que tienen una clase enlace y azul para el id myLink</p>
<pre class="brush: javascript; gutter: true">//ponemos todos los enlaces a negro
$(&quot;a&quot;).css(&quot;color&quot;, &quot;#000&quot;);
//los enlaces con la clase .enlace los dejamos en rojo
$(&quot;.enlace&quot;).css(&quot;color&quot;, &quot;#ff0000&quot;);
//el enlace con el id myLink lo ponemos azulado
$(&quot;#myLink&quot;).css(&quot;color&quot;, &quot;#336699&quot;);</pre>
<p>Como podemos observar, las etiquetas se indican con su nombre, las <strong>clases</strong> como si de <strong>css</strong> se tratase, con un punto delante, al igual que los <strong>ids</strong>, que al igual que <strong>css</strong> utilizan una <strong>almohadilla</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/javascript/buscar-por-tag-clase-e-id-en-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Por que no usar django. Breve comparativa entre django, ruby y Mono ASP.Net con MVC</title>
		<link>http://www.indalcasa.com/web-2/por-que-no-usar-django-breve-comparativa-entre-django-ruby-y-mono-asp-net-con-mvc/</link>
		<comments>http://www.indalcasa.com/web-2/por-que-no-usar-django-breve-comparativa-entre-django-ruby-y-mono-asp-net-con-mvc/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 12:26:08 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=778</guid>
		<description><![CDATA[Hace un tiempo empecé a oír hablar de django y empecé a interesarme por el. La verdad que al principio me llamaba mucho la atención porque la gente no hacia mas que alabar las virtudes de django. Investigando encontraba mas y mas alabanzas, incluso expertos que comparaban django con otros entornos como Mono ASP.Net con [...]]]></description>
			<content:encoded><![CDATA[<p>Hace un tiempo empecé a oír hablar de <strong>django</strong> y empecé a interesarme por el. La verdad que al principio me llamaba mucho la atención porque la gente no hacia mas que alabar las virtudes de <strong>django</strong>. Investigando encontraba mas y mas alabanzas, incluso expertos que comparaban <strong>django</strong> con otros entornos como <strong>Mono ASP.Net con MVC</strong> o <strong>ruby</strong>.</p>
<p>A veces las comparaciones son odiosas y esto es que lo les pasa a los demás entornos cuando los comparamos con <strong>django</strong>. Al comparar <strong>django</strong> con <strong>Mono ASP.Net con MVC</strong>, comentaban como un mismo proyecto realizado por programadores expertos en <strong>django</strong>, realizaban muchas mas tareas que los expertos en <strong>ASP.Net</strong> en el mismo tiempo y que el resultado final del proyecto es que era mas rápido y consistente el desarrollo en <strong>django</strong> que en <strong>ASP.Net</strong>. Yo no digo que <strong>django</strong> sea un mal entorno, ni que los programadores de <strong>ASP.Net</strong> sean malos, pero la calidad de un programador de <strong>.Net</strong> realizando una web deja un poco que desear en la mayoría de los casos, no asi un programador friki de <strong>python</strong> que ha decidido hacer webs y que seguramente sea mucho mas versátil que uno de asp.net aunque hiciera la web en <strong>php</strong> y para mi esto no es comparable. Por otro lado comparaban <strong>django</strong> con <strong>ruby</strong> y no me gusto nada la comparación, ya que al comparar, decían que <strong>ruby on rails</strong> era para “nenas” y <strong>django</strong> para “hombre de pelo en pecho”. La verdad que esta comparación, es un poco ridícula, hasta llego a hacerme gracia a pesar de no gustarme.</p>
<p>Ahora vayamos a mi experiencia personal. Decidí instalarme <strong>django</strong>, <strong>ruby</strong> y <strong>Mono ASP.Net con MVC</strong>. Al buscar información, tutoriales o algo de guía para instalar e iniciar <strong>django</strong>, me encuentro con poca información y además centrada para <strong>linux</strong>, seguía las guías para <strong>mac</strong> y me costo sudor y lágrimas hacerlo correr (mi amigo @saikus no fue capaz). Cuando ya conseguí, intente hacer una prueba pero fui incapaz, bastante complicado para empezar sin un libro o sin que alguien te enseñe. Aun así, vi que utiliza una especie de servidor propio, por lo que para por ejemplo hacerlo correr en apache, hay que arrancarlo desde <strong>ssh</strong> y enlazarlo por un fastcgi o similar con <strong>apache</strong>, pero la cuestión es, cuanta comunidad puede generar algo que es muy muy muy dificil que sin ser pro y sin gastar un dineral en hosting, puedan hacer pruebas (yo en mi hosting no puedo instalarlo de momento).</p>
<p>Por ejemplo, mi experiencia con <strong>ruby</strong> o <strong>asp.net</strong> es muy mas satisfactoria, puesto que ruby es tan fácil como instalarlo desde algún <strong>apt-get</strong>, <strong>ports</strong>, descargable, etc y luego instalar las mil y una gemas necesarias. De una forma rápida y fácil puedes hacer funcionar un ejemplo o programar algo no solo en <strong>linux</strong>, sino en <strong>MacOSX</strong>, que es importante, ya que cada vez hay mas gente que usa este sistema. Por otro lado <strong>Mono ASP.Net con MVC</strong> es también muy fácil, quizás algo mas complejo que <strong>ruby</strong>, pero tan fácil como bajarse el instalable o en el peor de los casos las fuentes de la web de <strong>mono</strong> y compilar. <strong>Mono</strong> ya tiene <strong>XSP</strong> que es su propio <strong>server</strong> como ocurre con <strong>django</strong> y <strong>rails</strong>, y con <strong>mod_mono</strong> lo compilamos e instalamos en un periquete en <strong>apache</strong>.</p>
<p>Por que me gusta mas usar <strong>Mono ASP.Net con MVC</strong> que usar <strong>ruby</strong> o <strong>django</strong>. <strong>Django</strong> lo descarto por el costo de su instalación, porque no tengo un buen <strong>IDE</strong> donde poder programarlo y si quisiera pagar aunque fuera poco por los <strong>IDES</strong>, ¿Por qué no volverme a <strong>Windows</strong> y usar <strong>Visual Studio</strong>? <strong>Ruby</strong> es un poco parecido, es mas fácil de instalar y trabajar, pero falta un buen <strong>IDE</strong>, <strong>Netbeans</strong> tiene soporte, al igual que <strong>Eclipse</strong> para <strong>django</strong>, pero son plugins para mi gusto no estan muy muy depurados. Por el lado de <strong>Mono ASP.Net con MVC</strong> tenemos la opción de <strong>monodevelop</strong>, que si bien es cierto que sus primeras versiones eran como los plugins antes mencionados, las ultimas han mejorado sustancialmente y no hay que olvidar que en lugar de ser un <strong>IDE</strong> de java con plugins para <strong>python</strong> o <strong>ruby</strong>, es un <strong>IDE de .Net (dotnet)</strong>, por lo que <strong>mvc</strong> esta soportado nativamente.</p>
<p>En conclusión, a <strong>django</strong> le veo demasiadas pegas que ensombrecen las virtudes que tiene. <strong>Ruby</strong> es quizás el mas equilibrado en cuanto a potencia y tiempo de desarrollo y <strong>Mono ASP.Net con MVC</strong> es mas lento en cuanto a desarrollo pero muy potente, además de no ser un framework añadido a un lenguaje (<strong>mvc</strong> si, pero no <strong>asp</strong>) sino todo un entorno preparado para la web, donde con un par de clicks es muy fácil generar <strong>clientes de servicios web</strong>, o <strong>crear un servicio web xml</strong>, una pagina web o mil cosas mas. Es por esto que yo personalmente me quedo con <strong>Mono ASP.Net con MVC</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/web-2/por-que-no-usar-django-breve-comparativa-entre-django-ruby-y-mono-asp-net-con-mvc/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Nace una nueva empresa, ventanilla única</title>
		<link>http://www.indalcasa.com/la-empresa/nace-una-nueva-empresa-ventanilla-unica/</link>
		<comments>http://www.indalcasa.com/la-empresa/nace-una-nueva-empresa-ventanilla-unica/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 11:22:16 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[La empresa]]></category>
		<category><![CDATA[altair studios]]></category>
		<category><![CDATA[empresa]]></category>
		<category><![CDATA[legal]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=775</guid>
		<description><![CDATA[Llevo demasiado tiempo sin escribir nada. Esto es debido a que tengo tantísimo trabajo que no paro. Tengo tanto trabajo a nivel personal aparte del trabajo ordinario que he decidido crear mi propia empresa de forma oficial. Es por eso que ando tan liado, porque hay que hacer muchas cuentas, prepararlo todo, pagos que hay [...]]]></description>
			<content:encoded><![CDATA[<p>Llevo demasiado tiempo sin escribir nada. Esto es debido a que tengo tantísimo <strong>trabajo</strong> que no paro. Tengo tanto <strong>trabajo</strong> a nivel personal aparte del <strong>trabajo</strong> ordinario que he decidido <strong>crear mi propia empresa de forma oficial</strong>. Es por eso que ando tan liado, porque hay que hacer muchas <strong>cuentas</strong>, prepararlo todo, <strong>pagos</strong> que hay que hacer, <strong>papeles</strong> a rellenar, es una locura. Es por eso que escribo este post, para aquel que le sirva un poco de <strong>guía</strong> y se encuentre en una situación similar a la mía.</p>
<p>En mi caso, no es una <strong>empresa</strong> como tal, sino <strong>darme de alta como autónomo</strong>. El proceso es simple, lo primero que hay que ver antes de <strong>darse de alta como autónomo</strong>, es si te merece o no la pena. En mi caso, en teoría voy a <strong>facturar</strong> bastante, asi que me sale a cuentas, aunque como <strong>autónomo</strong>, siempre esta la opción de <strong>darse de baja el mes que no facturemos</strong>, ahorrándonos la <strong>seguridad social</strong>. Esta práctica no es muy limpia, pero es <strong>legal</strong>. Si en lugar de <strong>autónomo</strong>, se hiciera con una <strong>empresa</strong>, no puedes disolverla tan fácilmente.</p>
<p>Una vez tenemos decidido que vamos a ser <strong>autónomos</strong>, el siguiente paso es acercarnos a la <strong>ventanilla única</strong>, pero ¿Qué es la <strong>ventanilla única</strong>? La <strong><a title="ventanilla única" href="http://www.ventanillaunica.org" target="_blank">ventanilla única</a></strong> es un servicio que ha puesto el <strong>gobierno</strong> para poder realizar <strong>todos los tramites necesarios</strong> en un <strong>único lugar</strong>. Llevando <strong>original</strong> y <strong>fotocopia</strong> (siempre, aunque no se diga, que luego pasa lo que pasa) del <strong>DNI</strong>, <strong>Número de la Seguridad Social</strong> y <strong>número de cuenta bancaria</strong>. Con todo esto en un tris te dan de <strong>alta en la seguridad social como trabajador autónomo</strong>, igual en <strong>hacienda</strong> y con tu <strong>número de cuenta</strong> te lo dejan preparado para <strong>cobrarte</strong> sin molestias.</p>
<p>Una vez hecho esto, solo nos faltará un pequeño detalle y es preparar nuestra <strong>oficina</strong>. Como en mi caso la <strong>empresa</strong> sería una <strong>oficina en casa</strong>, no hace falta que vaya a pedir <strong>permiso al ayuntamiento</strong>, pero si necesito un <strong>libro de visitas</strong>, que habrá que <strong>comprar y sellar</strong> para cuando empiecen a llegar <strong>inspecciones</strong>, te sellen las mismas.</p>
<p>Así empieza un futuro, con mucho trabajo y muchos mas papeles, persiguiendo un sueño que espero que algún día llegue.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/la-empresa/nace-una-nueva-empresa-ventanilla-unica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Habilitar sesiones en un handler.ashx con IRequiresSessionState e IReadOnlySessionState</title>
		<link>http://www.indalcasa.com/programacion/dotnet-csharp/habilitar-sesiones-en-un-handler-ashx-con-irequiressessionstate-e-ireadonlysessionstate/</link>
		<comments>http://www.indalcasa.com/programacion/dotnet-csharp/habilitar-sesiones-en-un-handler-ashx-con-irequiressessionstate-e-ireadonlysessionstate/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 08:04:59 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[.Net (C#)]]></category>
		<category><![CDATA[Mono (C#)]]></category>
		<category><![CDATA[Visual Basic .Net]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[Handler]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vb.net]]></category>
		<category><![CDATA[visual basic]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=766</guid>
		<description><![CDATA[En .Net, bien sea en C# o en VB.Net, hay un tipo de clases llamadas controladores genéricos que nos proveen de un nivel muy básico de controlador web. En ASP.Net, los handlers o  HttpHandler son un tipo de clases tan básicas, que no implementan entre otras cosas, las sesiones, por lo que tendremos que indicar [...]]]></description>
			<content:encoded><![CDATA[<p>En <strong>.Net</strong>, bien sea en <strong>C#</strong> o en <strong>VB.Net</strong>, hay un tipo de clases llamadas <strong>controladores genéricos</strong> que nos proveen de un <strong>nivel muy básico de controlador web</strong>. En <strong>ASP.Net</strong>, los <strong>handlers</strong> o  <strong>HttpHandler</strong> son un tipo de clases tan básicas, que no implementan entre otras cosas, las <strong>sesiones</strong>, por lo que tendremos que indicar explícitamente en la clase que tipo de <strong>sesión vamos a implementar</strong>.</p>
<p>Me voy a centrar en explicar 3 casos que son los más comunes, a la hora de <strong>implementar un handler</strong>:</p>
<ul>
<li><strong>Sin sesión</strong>: para esto no hay que hacer nada, con la declaración por defecto nos es suficiente. <strong>No tendremos acceso a la sesión</strong>, que sera nula si hacemos un <strong>context.Session</strong></li>
<li><strong>Sesión de solo lectura</strong>: para esto debemos <strong>implementar la interfaz IReadOnlySessionState</strong>, de tal modo que al hacer <strong>context.Session</strong>, tenga los <strong>valores de la sesión</strong>, pero no podremos añadir o actualizar datos sobre la <strong>sesión</strong>.</li>
<li><strong>Sesión de lectura y escritura</strong>: para esto debemos <strong>implementar la interfaz IRequiresSessionState</strong>, que nos permitirá acceder a los <strong>datos de la sesión</strong>, así como añadir y actualizar los datos.</li>
</ul>
<div>A continuación dejo unos ejemplos en C# y en VB.Net para que os hagais una idea.</div>
<pre class="brush: csharp; title: Ejemplo de implementación de handlers en C#; notranslate">
//Este ejemplo devolverá un error ya que context.Session es Nothing
public class IndalcasaSessionHandler : System.Web.IHttpHandler {
    public void ProcessRequest(HttpContext context) {
        Object value;

		context.Session.Add(&quot;value&quot;, &quot;un valor&quot;);
		value = context.Session.Item(&quot;value&quot;);

		context.Response.Write(value);
    }
}

//Este ejemplo no devolverá un error ya que context.Session no es Nothing
//pero value tendrá el valor original que tuviera y no el valor &quot;nuevo valor&quot;
//ya que no se puede escribir en la sesión
public class IndalcasaSessionHandler : System.Web.IHttpHandler, System.Web.SessionState.IReadOnlySessionState {
    public void ProcessRequest(HttpContext context) {
        Object value;

		context.Session.Add(&quot;value&quot;, &quot;un valor&quot;);
		value = context.Session.Item(&quot;value&quot;);

		context.Response.Write(value);
    }
}

//Este ejemplo no devolverá un error ya que context.Session no es Nothing
//y actualizará el valor de la sesión correctamente
public class IndalcasaSessionHandler : System.Web.IHttpHandler, System.Web.SessionState.IRequiresSessionState {
    public void ProcessRequest(HttpContext context) {
        Object value;

		context.Session.Add(&quot;value&quot;, &quot;un valor&quot;);
		value = context.Session.Item(&quot;value&quot;);

		context.Response.Write(value);
    }
}
</pre>
<pre class="brush: vb; title: Ejemplo de implementación de handlers en VB.Net; notranslate">
'Este ejemplo devolverá un error ya que context.Session es Nothing
Public Class IndalcasaSessionHandler
    Implements System.Web.IHttpHandler

    Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        Dim value As Object

		context.Session.Add(&quot;value&quot;, &quot;un valor&quot;)
		value = context.Session.Item(&quot;value&quot;)

		context.Response.Write(value)
    End Sub
End Class

'Este ejemplo no devolverá un error ya que context.Session no es Nothing
'pero value tendrá el valor original que tuviera y no el valor &quot;nuevo valor&quot;
'ya que no se puede escribir en la sesión
Public Class IndalcasaSessionHandler
    Implements System.Web.IHttpHandler, System.Web.SessionState.IReadOnlySessionState

    Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        Dim value As Object

		context.Session.Add(&quot;value&quot;, &quot;nuevo valor&quot;)
		value = context.Session.Item(&quot;value&quot;)

		context.Response.Write(value)
    End Sub
End Class

'Este ejemplo no devolverá un error ya que context.Session no es Nothing
'y actualizará el valor de la sesión correctamente
Public Class IndalcasaSessionHandler
    Implements System.Web.IHttpHandler, System.Web.SessionState.IRequiresSessionState

    Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        Dim value As Object

		context.Session.Add(&quot;value&quot;, &quot;nuevo valor&quot;)
		value = context.Session.Item(&quot;value&quot;)

		context.Response.Write(value)
    End Sub
End Class
</pre>
<p>Espero que os saque de un apuro en el que alguna vez me he visto metido por no recordar las <strong>interfaces que hay que implementar para poder leer y/o escribir en la sesión en un controlador genérico de ASP.Net</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/dotnet-csharp/habilitar-sesiones-en-un-handler-ashx-con-irequiressessionstate-e-ireadonlysessionstate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Double.Parse y Decimal.Parse con símbolos de putuación</title>
		<link>http://www.indalcasa.com/programacion/dotnet-csharp/double-parse-y-decimal-parse-con-simbolos-de-putuacion/</link>
		<comments>http://www.indalcasa.com/programacion/dotnet-csharp/double-parse-y-decimal-parse-con-simbolos-de-putuacion/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 09:02:18 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[.Net (C#)]]></category>
		<category><![CDATA[Mono (C#)]]></category>
		<category><![CDATA[Visual Basic .Net]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[dotnet]]></category>
		<category><![CDATA[vb]]></category>
		<category><![CDATA[vb.net]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=758</guid>
		<description><![CDATA[Un problema que me encuentro a menudo en .Net por igual en Visual Basic o en C#, es cuando tengo que parsear un decimal o un double desde un string. Muchas veces, cuando parseas un double o un decimal, encontramos un error ya que en operaciones matemáticas, el símbolo de puntuación para la parte decimal [...]]]></description>
			<content:encoded><![CDATA[<p>Un problema que me encuentro a menudo en <strong>.Net</strong> por igual en <strong>Visual Basic</strong> o en <strong>C#</strong>, es cuando tengo que <strong>parsear un decimal o un double desde un string</strong>. Muchas veces, cuando <strong>parseas un double o un decimal</strong>, encontramos un error ya que en <strong>operaciones matemáticas</strong>, el <strong>símbolo de puntuación para la parte decimal es el punto</strong>, por lo que al hacer un <strong>Double.Parse(number)</strong> o un <strong>Decimal.Parse(number)</strong>, lo que hace es ignorar el punto y por tanto tomar la <strong>parte decimal</strong> como si fuera <strong>parte entera</strong>. Para que esto no nos pase, tenemos que indicar que el <strong>sistema numérico utilizado es el matemático</strong>, aquel que no varia con la <strong>cultura</strong>. Con un ejemplo se verá mas claro.</p>
<p>Un ejemplo en <strong>C#</strong>:</p>
<pre class="brush: csharp; title: Ejemplo en C#; notranslate">
string number = &quot;15.3&quot;;
double doNumber;
decimal deNumber;

doNumber = double.Parse(number);
deNumber = decimal.Parse(number);

/*
Los valores son:
doNumber = 153
deNumber = 153
*/

doNumber = double.Parse(number, CultureInfo.InvariantCulture);
deNumber = decimal.Parse(number, CultureInfo.InvariantCulture);

/*
Los valores son:
doNumber = 15.3
deNumber = 15.3
*/
</pre>
<p>Un ejemplo en <strong>VB.Net</strong></p>
<pre class="brush: vb; title: Ejemplo en VB.Net; notranslate">
Dim number As String = &quot;15.3&quot;;
Dim doNumber As Double;
Dim deNumber As Decimal;

doNumber = double.Parse(number);
deNumber = decimal.Parse(number);

'Los valores son:
'doNumber = 153
'deNumber = 153

doNumber = double.Parse(number, CultureInfo.InvariantCulture);
deNumber = decimal.Parse(number, CultureInfo.InvariantCulture);

'Los valores son:
'doNumber = 15.3
'deNumber = 15.3
</pre>
<p><strong>CultureInfo</strong> es una clase que provee de información de las culturas y en concreto, la propiedad <strong>InvariantCulture</strong> o <strong>CultureInfo.InvariantCulture</strong>, es quien provee la información de la cultura que no varia por localizaciones, vease el <strong>simbolo de puntuación matemático</strong>. La clase <strong>CultureInfo</strong> se encuentra en el namespace <strong>System.Globalization</strong>, quedado la ruta así: <strong>System.Globalization.CultureInfo.InvariantCulture</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/dotnet-csharp/double-parse-y-decimal-parse-con-simbolos-de-putuacion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

