<?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>weboomania.com &#187; Miguel Katrib</title>
	<atom:link href="http://www.weboomania.com/index.php/author/mkm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.weboomania.com</link>
	<description>donde las novedades tecnológicas son una manía</description>
	<lastBuildDate>Wed, 28 Dec 2011 16:53:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>&#191;Silverlight vs HTML5? &#191;Son buenos los est&#225;ndares?</title>
		<link>http://www.weboomania.com/2010/11/23/silverlight-vs-html5-son-buenos-los-estndares/</link>
		<comments>http://www.weboomania.com/2010/11/23/silverlight-vs-html5-son-buenos-los-estndares/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 20:02:37 +0000</pubDate>
		<dc:creator>Miguel Katrib</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.weboomania.com/index.php/2010/11/23/silverlight-vs-html5-son-buenos-los-estndares/</guid>
		<description><![CDATA[Cuando empezó a consolidarse Internet me preguntaba si no podía haberse logrado un lenguaje común más simple y expresivo que el cargado y verboso HTML (el cual podía apreciarse que no había sido concebido por desarrolladores de software). Pero todos, ávidos de tener algo común para entenderse en la web, ayudaron a que HTML se convirtiese en estándar, y para bien o para mal los desarrolladores internautas fueron creciendo con él. Luego cuando empezó el boom de Java también me pregunté cuál había sido el secreto por el que la mayoría de los navegadores aceptaran, sin chistar, entenderse con la máquina virtual de Java y sin que ningún purista le diese por acusar a SUN de prácticas monopolistas cuando las aplicaciones pedían descargarse la JVM. El único factor común que encontré para explicarme este fenómeno, confirmado en un evento Java World en Ciudad de México, fue el ver a las empresas que se aliaban para tener algo con lo que irle a la contra a Microsoft (MS). Confieso que siempre me ha parecido que desarrollar una filosofía sobre la base de ir a la contra no es algo muy constructivo que digamos. Después apareció Flash, para dar lo que HTML [...]]]></description>
		<wfw:commentRss>http://www.weboomania.com/2010/11/23/silverlight-vs-html5-son-buenos-los-estndares/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CodeContracts para poner contratos a LINQ</title>
		<link>http://www.weboomania.com/2009/10/12/codecontracts-para-poner-contratos-a-linq/</link>
		<comments>http://www.weboomania.com/2009/10/12/codecontracts-para-poner-contratos-a-linq/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 22:08:10 +0000</pubDate>
		<dc:creator>Miguel Katrib</dc:creator>
				<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Contract]]></category>

		<guid isPermaLink="false">http://www.weboomania.com/?p=77</guid>
		<description><![CDATA[Miguel Katrib En Code Contracts hay la posibilidad de usar, dentro de los contratos, el cuantificador universal Contract.ForAll y el cuantificador existencial Contract.Exists. Contract.ForAll tiene dos argumentos, el primero es una colección expresada por el tipo genérico IEnumerable&#60;T&#62; y el segundo es un predicado expresado por el tipo Predicate&#60;T&#62;, donde un predicado es un método de un argumento que retorna un bool. Retorna true si todos los elementos de la colección evalúan true en dicho predicado y retorna false en caso contrario. Contract.Exists tiene los mismos parámetros que el Contract.ForAll. En este caso el predicado se aplica a cada elemento de la colección, si en uno de ellos evalúa true el resultado será true y si todos evalúan false el resultado será false. Note, por ejemplo que el resultado de Contract.Ensures(Contrat.ForAll(colección, predicado); es el mismo que el de Contract.Ensures(colección.All(predicado)); Del mismo modo las dos construcciones siguientes dan igual resultado Contract.Ensures(Contrat.Exists(colección, predicado); Contract.Ensures(colección.Any(predicado)); static class ContractedLINQMethods { public static IEnumerable&#60;IGrouping&#60;K, T&#62;&#62; GroupBy&#60;T, K&#62;(this IEnumerable&#60;T&#62; source, Func&#60;T, K&#62; selector) { Contract.Ensures(Contract.ForAll( Contract.Result&#60;IEnumerable&#60;IGrouping&#60;K, T&#62;&#62;&#62;(), x =&#62; x.All(y =&#62; selector(y).Equals(x.Key) &#38;&#38; source.Contains(y))), "Todos los elementos de un grupo tienen la misma llave del grupo y" + "están en la colección original"); Contract.Ensures(Contract.Result&#60;IEnumerable&#60;IGrouping&#60;K, T&#62;&#62;&#62;(). Select(x [...]]]></description>
		<wfw:commentRss>http://www.weboomania.com/2009/10/12/codecontracts-para-poner-contratos-a-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Covarianza y Contravarianza en C#4.0</title>
		<link>http://www.weboomania.com/2009/09/11/covarianza-y-contravarianza-en-c4-0/</link>
		<comments>http://www.weboomania.com/2009/09/11/covarianza-y-contravarianza-en-c4-0/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 15:29:17 +0000</pubDate>
		<dc:creator>Miguel Katrib</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[contravarianza]]></category>
		<category><![CDATA[covarianza]]></category>
		<category><![CDATA[dotnetmania]]></category>

		<guid isPermaLink="false">http://www.weboomania.com/?p=69</guid>
		<description><![CDATA[La feliz inclusión de la genericidad en el .NET Framework 2.0 y en el lenguaje C#2.0 significó un gran avance en flexibilidad y expresividad para desarrollar software a la vez que se mantenía la robustez del control estático de tipos. Estas capacidades en el sistema de tipos, sin renunciar al control estático, fueron enriquecidas en el .NET Framework 3.5 y C#3.0 con la inferencia de tipos, la creación de tipos anónimos y las expresiones lambda, aportes que dieron soporte a LINQ y que hoy forman parte del instrumental de los desarrolladores .NET. La inclusión de recursos para expresar covarianza y contravarianza que se incorporarán en el próximo .NET Framework 4.0 y C#4.0 complementan la genericidad y suponen un paso más en la expresividad y flexibilidad de programación conciliadas en el contexto seguro que nos aporta el control estático de tipos. Miguel Katrib y Mario del Valle, miembros del grupo Weboo, han publicado este mes en la revista dotNetManía (www.dotnetmania.com) un interesante trabajo sobre estas nuevas posibilidades de varianza y contravarianza que vendrán con C#4.0 Por Miguel Katrib]]></description>
		<wfw:commentRss>http://www.weboomania.com/2009/09/11/covarianza-y-contravarianza-en-c4-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

