<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Administración del Conocimiento - UML Simulation</title>
	<atom:link href="http://smalltalkuy.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://smalltalkuy.wordpress.com</link>
	<description>La informática mirada desde el &#34;globo aerostático&#34; de Smalltalk</description>
	<lastBuildDate>Thu, 26 Jan 2012 20:54:24 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='smalltalkuy.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/7676c87a9f22d1e34c1c389402ad9e4a?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Administración del Conocimiento - UML Simulation</title>
		<link>http://smalltalkuy.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://smalltalkuy.wordpress.com/osd.xml" title="Administración del Conocimiento - UML Simulation" />
	<atom:link rel='hub' href='http://smalltalkuy.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Ventajas de la Reflexión en Programación &#8211; Meta-programación Simple</title>
		<link>http://smalltalkuy.wordpress.com/2012/01/26/ventajas-de-la-reflexion-en-programacion-meta-programacion-simple/</link>
		<comments>http://smalltalkuy.wordpress.com/2012/01/26/ventajas-de-la-reflexion-en-programacion-meta-programacion-simple/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 14:14:11 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[POO]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=434</guid>
		<description><![CDATA[Sistema Se está construyendo un sistema el cual debido a su naturaleza fuera de lo común tiene cerca de 200 métodos que devuelven un String simplemente. En la siguiente imagen se muestra 1 de estos métodos, como el sistema está relacionado con el PMI, el texto que se muestra es copyright  © de PMI.org. Problema Por cada uno de estos [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=434&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Sistema</h2>
<p>Se está construyendo un sistema el cual debido a su naturaleza fuera de lo común tiene cerca de <strong>200 métodos </strong>que devuelven un <strong>String</strong> simplemente.</p>
<p>En la siguiente imagen se muestra <strong>1</strong> de estos <strong>métodos</strong>, como el sistema está relacionado con el <strong>PMI</strong>, el texto que se muestra es <strong>copyright  © de PMI.org</strong>.</p>
<p style="text-align:center;"><a href="http://smalltalkuy.files.wordpress.com/2012/01/string-method.jpg"><img class="size-full wp-image-435 aligncenter" title="String Method" src="http://smalltalkuy.files.wordpress.com/2012/01/string-method.jpg?w=720" alt=""   /></a></p>
<h2>Problema</h2>
<p>Por cada uno de estos <strong>200 métodos hay</strong> que crear <strong>otro método</strong> <strong>derivado</strong> que replique un mismo patrón, por lo hay que crear <strong>200 nuevos métodos</strong>. Es un trabajo que <span style="text-decoration:underline;"><strong>tedioso</strong></span> que <strong>lleva tiempo</strong> y es <strong>propenso a errores</strong>.  Aquí es donde nos &#8220;<strong>salva</strong>&#8221; la <strong>REFLEXIÓN </strong>y la<strong> META PROGRAMACIÓN</strong>, en este caso es bastante sencilla.</p>
<p>Como quedaría el método luego de aplicar el <strong>patrón a mano</strong>:</p>
<p style="text-align:center;"><a href="http://smalltalkuy.files.wordpress.com/2012/01/instanciable-pmi-doc.jpg"><img class="size-full wp-image-436 aligncenter" title="Instanciable PMI Doc" src="http://smalltalkuy.files.wordpress.com/2012/01/instanciable-pmi-doc.jpg?w=720" alt=""   /></a></p>
<p>Habría que aplicar el mismo patrón para otros <strong>199 metodos</strong> y así sucesivamente. Con este nuevo método <span style="color:#0000ff;">#changeRequestsNew</span> tendría una instancia con la descripción que devuelve el método original (<span style="color:#0000ff;">#changeRequests</span>) que es solamente texto, que es <strong>justamente</strong> lo que quiero para este método y el resto.</p>
<p><strong>Patrón</strong></p>
<p>1. nombreNuevoMetodo := Nombre del <strong>método actual</strong>  + <span style="color:#993366;">&#8216;New&#8217;</span>. En este caso: <span style="color:#0000ff;">changeRequests</span> + <span style="color:#993366;">&#8216;New&#8217;</span> = <span style="color:#0000ff;">changeRequestsNew</span></p>
<p>2. El argumento que se pasa al mensaje <span style="color:#0000ff;">#</span><span style="color:#0000ff;">name</span><span style="color:#0000ff;">:  </span>debe ser <strong>el nombre del método actual</strong>, pero <span style="text-decoration:underline;">separado por un espacio y cada palabra en <strong>mayúsculas</strong></span>.  En este caso es:</p>
<p><span style="color:#0000ff;">name:</span> <span style="color:#993366;">&#8216;Change Requests&#8217; </span>- recordar el nombre del<strong> método actual </strong><span style="color:#0000ff;">(self)</span> es <span style="color:#0000ff;">#changeRequests</span></p>
<p>3. El argumento que se pasa al mensaje <span style="color:#0000ff;">#</span><span style="color:#0000ff;">description</span><span style="color:#0000ff;">:  </span>debe  ser una llamada al <strong>método actual</strong> que devuelve un <strong>String</strong>. En este caso es:</p>
<p><span style="color:#0000ff;">description:</span> self <span style="color:#0000ff;">changeRequests</span>. &#8211; la descripción queda con el <strong>String</strong> del método original.</p>
<p><span style="text-decoration:underline;">Este patrón debe aplicarse a <strong>199 </strong>métodos más&#8230;</span></p>
<h2>Solución</h2>
<p>La solución me tomo unos<strong> 5 minutos</strong> ! y consiste en implementar un <strong>método </strong>en la clase <strong>CompiledMethod</strong>. En <strong>Smalltalk</strong> cada vez que creo un <strong>método </strong>se crea una instancia de esta clase <strong>CompiledMethod, </strong>y esta clase es <em><strong>editable</strong></em> y <strong><em>modificable</em></strong> como cualquier otra.</p>
<p style="text-align:center;"><a href="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod1.jpg"><img class="size-full wp-image-438 aligncenter" title="compiledPMPMethod" src="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod1.jpg?w=720&#038;h=320" alt="" width="720" height="320" /></a></p>
<p style="text-align:center;"><a href="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod01.jpg"><img class="size-full wp-image-447 aligncenter" title="compiledPMPMethod01" src="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod01.jpg?w=720" alt=""   /></a></p>
<p style="text-align:center;">La <span style="text-decoration:underline;"><em>variable</em></span> [selector] del método actual (<span style="color:#0000ff;">#changeRequests</span>) se concatena con <span style="color:#993366;">&#8216;New</span>&#8216; para formar el selector (nombre) del<strong> nuevo método</strong> a ser creado.  Este nombre se almacena en la <span style="text-decoration:underline;"><em>variable temporal</em></span> [newSelector] como un símbolo <span style="color:#0000ff;">#asSymbol</span> (es una clase especial de <strong>String</strong>).</p>
<p style="text-align:center;"><a href="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod02.jpg"><img class="size-full wp-image-448 aligncenter" title="compiledPMPMethod02" src="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod02.jpg?w=720" alt=""   /></a></p>
<p style="text-align:center;">Ahora en la <span style="text-decoration:underline;"><em>variable temporal</em></span> [pmpName] formo el nombre según las reglas. La primera letra la paso a mayúscula (<span style="color:#0000ff;">first asUppercase asString</span>) y luego proceso el resto.</p>
<p style="text-align:center;"><a href="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod03.jpg"><img class="size-full wp-image-449 aligncenter" title="compiledPMPMethod03" src="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod03.jpg?w=720&#038;h=47" alt="" width="720" height="47" /></a></p>
<p style="text-align:center;">Ahora proceso todo menos la primera letra (c) [<span style="color:#993366;">hangeRequests</span>]. Si esta en minúscula copio y si esta en mayúscula agrego un espacio en blanco y copio. Guardo el resultado de la iteración en la <em><span style="text-decoration:underline;">temporal</span></em> [pmpName].</p>
<p style="text-align:center;"><a href="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod04.jpg"><img class="aligncenter size-full wp-image-450" title="compiledPMPMethod04" src="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod04.jpg?w=720" alt=""   /></a></p>
<p style="text-align:center;">Ahora creo un template para <strong>compilar</strong> el método en la <strong><span style="text-decoration:underline;">variable</span></strong> [newMethod]. Uso el nombre del nuevo método y uso el <strong>selector actua</strong>l (nombre actual) para crear la llamada (<span style="color:#993366;">description: self&#8217;</span>, selector,<span style="color:#993366;">&#8216;</span>). Y por último compilo el template [newMethod] en la <strong>clase del método actua</strong>l (methodClass <span style="color:#0000ff;">compile:</span> newMethod).</p>
<p>Ahora solamente cada vez que quiero crear uno de estos <strong>200 métodos</strong> simplemente le envio el mensaje <span style="color:#0000ff;">#compileMethodStringForPMPNewDocument</span> y me crea el derivado.</p>
<p>En un principio pensé hacer esto con el <strong>Code Rewriter</strong> pero después opte por implementar un método en <strong>CompiledMethod. </strong></p>
<p><strong></strong>El <strong>Code Rewriter </strong>es una herramienta muy poderosa que sirve para hacer<strong> transformaciones masivas de código de forma segura,</strong> basicamente suplante un <strong>AST</strong> por otro <strong>AST</strong> equivalente (mismo comportamiento) pero más óptimo.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/434/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/434/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/434/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=434&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2012/01/26/ventajas-de-la-reflexion-en-programacion-meta-programacion-simple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2012/01/string-method.jpg" medium="image">
			<media:title type="html">String Method</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2012/01/instanciable-pmi-doc.jpg" medium="image">
			<media:title type="html">Instanciable PMI Doc</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod1.jpg" medium="image">
			<media:title type="html">compiledPMPMethod</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod01.jpg" medium="image">
			<media:title type="html">compiledPMPMethod01</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod02.jpg" medium="image">
			<media:title type="html">compiledPMPMethod02</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod03.jpg" medium="image">
			<media:title type="html">compiledPMPMethod03</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2012/01/compiledpmpmethod04.jpg" medium="image">
			<media:title type="html">compiledPMPMethod04</media:title>
		</media:content>
	</item>
		<item>
		<title>UML Almighty Ciclo: Editar &#8211; Debug &#8211; Editar &#8211; Debug SIN detener el Sistema</title>
		<link>http://smalltalkuy.wordpress.com/2011/12/01/uml-almighty-ciclo-editar-debug-editar-debug-sin-detener-el-sistema/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/12/01/uml-almighty-ciclo-editar-debug-editar-debug-sin-detener-el-sistema/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 13:28:43 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[Executable UML]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[UML Ejecutable]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=426</guid>
		<description><![CDATA[UML Almighty tiene la capacidad de agregar/modificar clases y comportamiento sin necesidad de detener la aplicación. Esta funcionalidad fue cuidadosamente pensada y diseñada para maximizar la experiencia del usuario en la simulación UML. Obviamente que la funcionalidad esta inspirada en la misma solución implementada en los diferentes Smalltalk. En palabras de Malte Ubl de Google (link a post [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=426&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://smalltalkuy.files.wordpress.com/2011/12/debug.jpg"><img class="aligncenter size-full wp-image-427" title="debug" src="http://smalltalkuy.files.wordpress.com/2011/12/debug.jpg?w=720" alt=""   /></a></p>
<p><strong>UML Almighty</strong> tiene la capacidad de <strong>agregar/modificar</strong> clases y comportamiento <span style="text-decoration:underline;"><strong>sin</strong></span> necesidad de <span style="text-decoration:underline;"><strong>detener la aplicación</strong></span>.</p>
<p>Esta funcionalidad fue cuidadosamente pensada y diseñada para <strong>maximizar la experiencia</strong> del usuario en la <strong>simulación UML</strong>.</p>
<p>Obviamente que la funcionalidad esta <strong><em>inspirada</em></strong> en la misma solución implementada en los diferentes <strong>Smalltalk</strong>.</p>
<p>En palabras de<strong> <a href="https://plus.google.com/116910304844117268718">Malte Ubl</a> </strong>de <strong>Google</strong> (<a href="https://plus.google.com/116910304844117268718/posts/iYFGgdDvDkw">link a post original</a>):</p>
<p><strong>&#8220;</strong>&#8230; También <strong>Gilad Bracha</strong> (creador del lenguaje de <strong>Google</strong> <strong>Dart</strong>) está prometiendo ciclos de <em>edición-depuración-edición-depuración</em> al estilo <strong>Smalltalk</strong> (<span style="text-decoration:underline;"><strong>sin</strong></span> detener el programa). Si has trabajado alguna vez con <strong>Visual</strong> <strong>Works</strong> <strong>Smalltalk</strong> u otro <strong>ambiente</strong> <strong>Smalltalk</strong> que soporte esta funcionalidad, tendrás que estar de acuerdo en que otro ambiente de desarrollo incluyendo los de la corriente principal -<em>mainstream</em>- (C, C++, Java, C#, etc) se siente como de la <strong>edad de piedra</strong>. <strong>&#8220;</strong></p>
<p>Poder crear un sistema agregando/modificando/moviendo comportamiento y <strong>sin</strong> <strong>detener</strong> el <strong>sistema</strong> es una ventaja enorme que puede ser comprendida mediante la experimentación con cualquiera de estos sistemas.</p>
<p>En el <strong>UML Almighty</strong> toda la configuración del <strong>comportamiento</strong> de la <strong>simulación</strong> asi como el <strong>interfase</strong> (<strong>GUI</strong>) del <strong>prototipo</strong> se puede hacer <span style="text-decoration:underline;"><strong><em>on the fly</em></strong></span>, es decir, con el sistema andando, el sistema nunca se detiene, esta forma de trabajo se asemeja a trabajar con un<strong> sistema biológico</strong>, que siempre esta en marcha.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/426/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=426&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/12/01/uml-almighty-ciclo-editar-debug-editar-debug-sin-detener-el-sistema/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2011/12/debug.jpg" medium="image">
			<media:title type="html">debug</media:title>
		</media:content>
	</item>
		<item>
		<title>Conferencia Smalltalk 2011 en Argentina &#8211; Update</title>
		<link>http://smalltalkuy.wordpress.com/2011/10/22/conferencia-smalltalk-2011-en-argentina-update/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/10/22/conferencia-smalltalk-2011-en-argentina-update/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 13:52:16 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[OODBMS - Base de Objetos]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Traits]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=423</guid>
		<description><![CDATA[Imposible no contagiarse  con el entusiasmo que ponen los organizadores de la Conferencia Smalltalk en Argentina, les transcribo un mail con detalles de la conferencia escrito por Hernan Wilkinson (Smalltalker de larga data)  que es un excelente ejemplo de amor al arte: Mail de Hernan ¿Te enteraste que este año se hace nuevamente el congreso Smalltalks? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=423&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Imposible <strong>no </strong>contagiarse  con el entusiasmo que ponen los organizadores de la <strong>Conferencia Smalltalk en Argentina</strong>, les transcribo un mail con detalles de la conferencia escrito por <strong>Hernan Wilkinson </strong>(<strong>Smalltalker</strong> de larga data)  que es un excelente ejemplo de <strong><em>amor al arte</em></strong>:</p>
<h2><span style="text-decoration:underline;">Mail de Hernan</span></h2>
<p>¿Te enteraste que este año se hace nuevamente el congreso <strong>Smalltalks</strong>? (<a href="http://www.fast.org.ar/smalltalks2011" target="_blank">http://www.fast.org.ar/smalltalks2011</a>)<br />
Por ahí te estás preguntando qué puede tener de interesante un congreso sobre un lenguaje que seguro no usas para trabajar y que por ahí no conoces, pero si tenés<strong> 5 minutos</strong>, <strong>lee este mail</strong>, te puedo asegurar que no te vas a arrepentir y seguramente querrás venir al congreso <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Para empezar, este congreso no es únicamente sobre un lenguaje de programación sino sobre una tecnología y cultura de desarrollo que aún sigue influenciando fuertemente nuestra profesión. Por ejemplo, el año pasado vino a esta conferencia <strong>Gilad Bracha</strong>. ¿Quién es <strong>Gilad Bracha</strong>?, por ahí te suena el nombre&#8230; bueno, te suena porque es uno de los que está detrás de desarrollo de <strong>Dart</strong>, el nuevo lenguaje de <strong>Google</strong> (<a href="http://www.dartlang.org/" target="_blank">http://www.dartlang.org/</a>) ¿Y qué tiene que ver <strong>Smalltalk</strong>? Justamente <strong>Gilad Bracha</strong> fue uno de los desarrolladores de <strong>Strongtalk</strong> (<a href="http://www.strongtalk.org/" target="_blank">http://www.strongtalk.org/</a>), el <strong>Smalltalk</strong> más rápido en su época, que utiliza compilación adaptiva,<strong> Polimorphic Inline Caching</strong> (<strong>PIC</strong>), tipado de variables opcional, etc. Todas soluciones que ahora se están implementando en <strong>Dart</strong>. Este año nos visita uno de sus más íntimos colaboradores, <strong>Vassili Bykov</strong>, implementador del<strong> UI de Newspeak</strong>, el último lenguaje en el que estaba trabajando.</p>
<p>Pero <strong>no</strong> solo <strong>Smalltalk</strong> tiene algo que ver en lo que está sucediendo con <strong>Dart</strong>, sino también en <strong>Ruby</strong>&#8230; ¿escuchaste hablar de <strong>MagLev</strong>? (<a href="http://ruby.gemstone.com/" target="_blank">http://ruby.gemstone.com/</a>) Es el <strong>servidor de objetos transaccionales</strong> y<strong> automáticamente persistibles</strong> para <strong>Ruby</strong>, ¿adiviná de dónde viene? <strong>MagLev</strong> es la implementación de <strong>Ruby</strong> corriendo sobre <strong>GemStone/S</strong>, un<strong> servidor de objetos transaccionales</strong> y <strong>persistibles</strong> para <strong>Smalltalk</strong> que tiene más de<strong> 25 años</strong> y que ahora <strong>VMWare</strong> compró por su gran potencial y solución como administrador de memoria transaccional para <strong>Java</strong>, si no lo sabías mirá <a href="http://www.springsource.com/products/data-management/gemfire65" target="_blank">http://www.springsource.com/products/data-management/gemfire65</a>  ¿Qué tiene que ver con el congreso? que justamente viene al mismo<strong> Martin McClure</strong>, responsable de <strong>MagLev</strong> y <strong>Norman Green</strong>, arquitecto de <strong>GemStone</strong>! o sea, el que tiene la papa!! ¿Tenés dudas sobre las bases de objetos? ya sabés donde podés obtener las respuestas.</p>
<p>Pero por ahí a vos <strong>no</strong> te interesa nada de esto&#8230; por ahí cómo funcionan los lenguajes de programación o cómo están implementados no es lo tuyo, vos haces aplicaciones web y solo necesitás que la infraestructura escale, persista información rápido, etc. Si ese es tu interés, tenemos un lugarcito para vos también. <strong>¿Escuchaste hablar de GLASS?</strong> (<a href="http://seaside.gemstone.com/" target="_blank">http://seaside.gemstone.com/</a>) Es la implementación de <strong>Seaside</strong>, un <strong>framework</strong> <strong>dinámico basado en continuations</strong> para aplicaciones <strong>web</strong> usando <strong>GemStone</strong>! (<a href="http://www.seaside.st/" target="_blank">http://www.seaside.st/</a>). O sea, desarrollas una<strong> aplicación web</strong> como si fuese una<strong> aplicación desktop</strong> y tenés <strong>gratis</strong> la<strong> transaccionabilidad y persistencia</strong> a nivel objetos&#8230; y lo que es mejor, sin base de datos relacionales!!! Si!!!!, <strong>no</strong> más <strong>hybernate</strong>, <strong>no más SQL</strong>, <strong>no más tablas</strong>, <strong>solo objetos</strong>!&#8230;. Por ahí te parece una locura, por ahí te parece que no tiene sentido&#8230; te aconsejo que no saques ninguna conclusión y no dejes de venir a escuchar a<strong> Dale Henrichs</strong>, el encargado de este producto quien nos contará todos los detalles del mismo y cómo influye en los desarrollos web.</p>
<p>¿Aún no te convencí? ok&#8230; dejame intentar un poquito más&#8230; <strong>¿Conoces a Alan Kay? ¿Turing award, &#8220;padre de la computadora personal&#8221;, creador de Smalltalk?</strong> (<a href="http://en.wikipedia.org/wiki/Alan_Kay" target="_blank">http://en.wikipedia.org/wiki/Alan_Kay</a>) No, no, no viene él, todavía <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ,  pero vienen<strong> Ian Piumarta</strong> y<strong> Kim Rose</strong>, dos de los más íntimos colaboradores de <strong>Alan Kay</strong> en los proyectos que están llevando adelante en su fundación sobre lenguajes de programación mínimos como <strong>OMeta</strong> y ambientes de enseñanza como <strong>SqueakLand</strong>. (<a href="http://www.vpri.org/index.html" target="_blank">http://www.vpri.org/index.html</a>). ¿Te interesa saber cómo usar la computadora para enseñar? Le vas a poder preguntar a <strong>Kim</strong>. Te interesa saber cómo implementar una buena <strong>VM</strong>, lo vas a tener a Ian cerquita para conversar.</p>
<p>Si aún estás leyendo y no fuiste al final de la página significa que aún no te convencí&#8230; hmmm, a ver qué te parece esto: <strong>MOOSE</strong> (<a href="http://www.moosetechnology.org/" target="_blank">http://www.moosetechnology.org</a>), una plataforma para hacer análisis de tus programas, no importa si están escritos en <strong>Java</strong>, <strong>C++</strong>,<strong> C#</strong> o <strong>Smalltalk</strong>, te permite ver visualmente el diseño de tu sistema no usando esos diagramitas simples de <strong>UML</strong> sino por medio de gráficos especialmente preparados para reconocer rápidamente algunos errorcitos que por ahí tiene tu sistema <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . <strong>Tudor Girba</strong>, desarrollador de esta plataforma vendrá a comentarnos cómo funciona, cómo está desarrollada y qué podés hacer con ella puesto que además es gratis!</p>
<p>Por ahí ya estás aburrido de leer tanto, no te culpo y tampoco me culpes a mi! es un congreso excelente! no te lo podés perder!, puesto que la cosa no termina acá&#8230; si te interesa saber sobre los principales ambientes de desarrollo en <strong>Smalltalk</strong> tanto opensource como comerciales, tendrás la oportunidad de conversar con<strong> Markus Denker</strong> de <strong>Pharo</strong> (<a href="http://www.pharo-project.org/home" target="_blank">http://www.pharo-project.org/home</a>)  y <strong>John O&#8217;Keefe</strong>, arquitecto de <strong>VASmalltalk</strong> (<a href="http://www.instantiations.com/" target="_blank">http://www.instantiations.com/</a>)</p>
<p><strong>¿Muchos temas relacionados con la industria no?</strong> ¿y qué hay acerca de investigación, aún se investiga algo en con <strong>Smalltalk</strong>? Te comento que este es el segundo año consecutivo que el congreso tiene una sección completamente dedicada a la investigación, con un comité evaluador envidiable y con publicaciones en journals. Por lo tanto, si te interesa hacer investigación con objetos y necesitas que tus publicaciones sean en congresos reconocidos, te comento que <strong>Smalltalks</strong> es uno de ellos. Y no me quiero olvidar de la docencia universitaria&#8230; <strong>Smalltalk</strong> sigue siendo el lenguaje utilizado para enseñar objetos en casi todas las universidades y no para enseñar meramente un lenguaje de programación comercial.</p>
<p>Y a pesar de todo esto, de toda esta gente que nos va a visitar y con quienes podremos compartir su experiencia y la nuestra, falta lo más importante: La comunidad argentina de <strong>Smalltalk</strong>, una de las principales comunidades en el mundo de esta tecnología. Es esta comunidad que hace<strong> 5 años está organizando este congreso a todo pulmón</strong> y hace 3 años viene ganando de manera consecutiva el primer y tercer puesto del<strong> &#8220;Esug Technology Award&#8221;</strong>, premio a los mejores desarrollos hechos en <strong>Smalltalk a nivel mundial!</strong> y lo más interesante es que los ganadores son de distintas universidad de nuestro país como la <strong>UBA</strong>, la <strong>UAI</strong> y la <strong>UTN</strong>!<br />
Y la comunidad no se limita a eso&#8230; <strong>¿sabés que hay un Smalltalk argentino?</strong> ¿un <strong>Smalltalk</strong> desarrollado por un argentino y utilizado a nivel mundial? se llama <strong>Cuis</strong> y su desarrollador<strong> Juan Vuletich</strong> (<a href="http://www.jvuletich.org/Cuis/Index.html" target="_blank">http://www.jvuletich.org/Cuis/Index.html</a>), quien además está llevando adelante el desarrollo de <strong>Morphic 3.0</strong> y trabajó junto a <strong>Alan Kay</strong> desarrollando <strong>Squeak</strong>. ¿O sabías que el layer open source para comunicarse con base de datos relacionales desde <strong>Pharo</strong> o <strong>Squeak</strong> más usado también fue desarrollado por argentinos? o que el framework de serialización de objetos opensource <strong>Fuel</strong> también fue desarrollado por un argentino? Te suenan <strong>Mariano Martinez Peck</strong>, <strong>Guillermo Polito, Martín Dias, Esteban Lorenzano</strong> entre otros?, ellos son parte de nuestra comunidad y nos recuerdan constantemente la muy buena capacidad técnica que tenemos en nuestro país. También es argentino el arquitecto de la <strong>VM</strong> de <strong>Smalltalk</strong> más rápida que hay, la de <strong>VisualWorks</strong> (<a href="http://www.cincomsmalltalk.com/main/products/visualworks/" target="_blank">http://www.cincomsmalltalk.com/main/products/visualworks/</a>) y le podés preguntar cómo hizo para acelerar hasta cerca de un <strong>70% el GC</strong> en el último año, y vas a poder escuchar una charla de un argentino que es <strong>smalltalkero</strong> hace más de 20 años&#8230; ¿te imaginás cómo sería tu productividad si estuvieras trabajando hace más de 20 años en el mismo lenguaje? ¿un lenguaje que además sigue dando mucho a nuestra profesión?&#8230; Esta gente es parte de esta gran comunidad y también participarán de este maravilloso evento&#8230;. este congreso no es solo importante por la gente que viene sino por la gente que ya está!</p>
<p>Espero haberte convencido, espero que te hayas dado cuenta que este congreso no es acerca de un lenguaje de programación sino de una comunidad de desarrolladores que quiere compartir con vos lo que conoce y también aprender de vos. Si querés ayudar a que esta comunidad siga creciendo, si querés ayudar a que este congreso siga siendo un congreso de desarrolladores y para desarrolladores, anotate acá: <a href="http://www.fast.org.ar/smalltalks2011" target="_blank">http://www.fast.org.ar/smalltalks2011</a> Es gratis y te puedo asegurar que no te vas a arrepentir. Podes ver las charlas que se darán en:  <a href="http://www.fast.org.ar/smalltalks2011/talks?_s=GJ-ljWmMXmHbCMAo&amp;_k=sxEAe9mxIYsU-4r_">http://www.fast.org.ar/smalltalks2011/talks</a></p>
<p>Este año se hace del <strong>3 al 5 de Noviembre</strong>, en la <strong>Universidad de Quilmes</strong>. Y no está cerrada sólo al mundo de los objetos, este año <strong>Fidel</strong> (<strong>Pablo E. Martínez López</strong>), uno de los <strong>referentes argentinos</strong> de <strong>Programación Funcional</strong>, una comunidad que comparte que en definitiva somos todos desarrolladores, dará una <strong>charla</strong> <strong>sobre</strong> <strong>objetos</strong>! Mirá las reacciones que ya está provocando: <a href="http://vimeo.com/30529851" target="_blank">http://vimeo.com/30529851</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/423/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/423/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/423/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=423&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/10/22/conferencia-smalltalk-2011-en-argentina-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>
	</item>
		<item>
		<title>Conferencia 2011 de Smalltalk en Argentina</title>
		<link>http://smalltalkuy.wordpress.com/2011/10/20/conferencia-2011-de-smalltalk-en-argentina/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/10/20/conferencia-2011-de-smalltalk-en-argentina/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 21:44:30 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[OODBMS - Base de Objetos]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Traits]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=416</guid>
		<description><![CDATA[Conferencia Smalltalk en Argentina Este año se realiza una vez más la conferencia Smalltalk en Argentina, como siempre vienen expertos de todo el mundo. El link a la conferencia es: http://www.fast.org.ar/smalltalks2011 Entre los oradores destacados se encuentran: Ian Piumarta (Viewpoints Research Institute), Kim Rose (Viewpoints Research Institute), Tudor Girba (Moose Technology), Vassili Bykov (Newspeek), John O&#8217;Keefe (IBM VisualAge), Marcus Denker (INRIA Lille-Nord [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=416&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1 style="text-align:center;">Conferencia Smalltalk en Argentina</h1>
<p style="text-align:center;"><img class="aligncenter" src="http://raulespinola.files.wordpress.com/2009/03/byte_smalltalk1.jpg?w=84&#038;h=124&#038;h=123" alt="byte_smalltalk1" width="84" height="123" /></p>
<p>Este año se realiza una vez más la <strong>conferencia Smalltalk</strong> en <strong>Argentina</strong>, como siempre vienen <strong>expertos</strong> de<strong> todo el mundo</strong>.</p>
<p>El link a la conferencia es: <a href="http://www.fast.org.ar/smalltalks2011">http://www.fast.org.ar/smalltalks2011</a></p>
<p>Entre los oradores destacados se encuentran: <strong>Ian Piumarta</strong> (<span style="color:#0000ff;">Viewpoints Research Institute</span>), <strong>Kim Rose</strong> (<span style="color:#0000ff;">Viewpoints Research Institute</span>),<strong> Tudor Girba</strong> (<span style="color:#0000ff;">Moose Technology</span>),<strong> Vassili Bykov</strong> (<span style="color:#0000ff;">Newspeek</span>), <strong>John O&#8217;Keefe</strong> (<span style="color:#0000ff;">IBM VisualAge</span>), <strong>Marcus Denker</strong> (<span style="color:#0000ff;">INRIA Lille-Nord Europe</span>),<strong> Martin McClure</strong> (<span style="color:#0000ff;">GemStone Systems</span>), <strong>Dale Henrichs</strong> (<span style="color:#0000ff;">GemStone Systems</span>), <strong>James Foster</strong> (<span style="color:#0000ff;">GemStone Systems</span>),<strong> Norman Green</strong> (<span style="color:#0000ff;">GemStone Systems</span>).</p>
<h2><span style="text-decoration:underline;"><strong>Las Charlas</strong></span></h2>
<p><strong>Análisis</strong><strong> de un Diseño Basado en Traits sin Subclasificación</strong> - Diego Campodonico, por más info sobre<a href="http://smalltalkuy.wordpress.com/2010/02/04/traits-composable-units-of-behaviour/"> TRAITS click aqui </a></p>
<p><strong>Customizando Pharo Smalltalk</strong> - Nicolas Paez</p>
<p><strong>DBXTalk: actualización</strong> - Guillermo Polito, DBXTalk es un framework de mapeo Objetos-Base Relacional</p>
<p><strong>Validación de Código Estático para Traits</strong> - Juan Sebastian Aizcorbe, por más info sobre<a href="http://smalltalkuy.wordpress.com/2010/02/04/traits-composable-units-of-behaviour/"> TRAITS click aqui </a></p>
<p><strong>Mark and Compact Scavenger Garbage Collectior in Smalltalk</strong> - Javier Burroni</p>
<p><strong>GemStone actualización y Hoja de Ruta</strong> - Norm Green</p>
<p><strong>VA Smalltalk actualización del producto</strong> - John O&#8217;Keefe</p>
<p><strong>GemStone/S para principiantes</strong> - Martin McClure,  más info sobre GemStone/S <a href="http://smalltalkuy.wordpress.com/2009/10/19/gemstones-el-oracle-de-las-oodbms/">click aquí</a> y <a href="http://smalltalkuy.wordpress.com/2011/01/26/arquitectura-glass-comparada-con-ruby-on-rails/">aquí</a>.</p>
<p><strong>Fuel: Cluster de objetos serializados</strong> - Martin Dias</p>
<p><strong>Simulated Annealing</strong> - Guillermo Amaral</p>
<p><strong>Otro Traductor de Smalltalk a C/C++</strong>  - Ricardo Moran</p>
<p><strong>Herramientas Web para GemStone/S (64 bits)</strong> - James Foster</p>
<p><strong>Los 10 Mandamientos de TDD (test driven development)</strong> - Hernan Wilkinson</p>
<p><strong>CUE es esto</strong> -  Dan Rozenfarb</p>
<p><strong>Hablemos tODE</strong> - Dale Henrichs, <strong>tODE</strong> (the Object Development Environment)</p>
<p><strong>Para atrapar a un ratón mejor</strong> - Ian Piumarta</p>
<p><strong>Monstruos de la IT: ¿Qué ha hecho para la educación?</strong> - Kim Rose</p>
<p><strong>Humane assessment with Moose</strong> - Tudor Girba</p>
<p><strong>Construyendo Browsers con Glamour</strong> - Tudor Girba</p>
<p><strong>Trayendo ideas BDD a Pharo Smalltalk</strong> - Nahuel Garbezza, BDD (Behaviour-driven development)</p>
<p><strong>Pharo Smalltalk un año después </strong>- Marcus Denker</p>
<p><strong>Investigación en RMOD</strong> - Marcus Denker</p>
<p><strong>Smalltalk, C# y JavaScript</strong> - Angel J Lopez</p>
<p><strong>IronSmalltalk</strong> - Todor Todorov</p>
<p><strong>Construyendo tus propias imágenes (Smalltalk) con Pharo Smalltalk usando Metacello</strong> - Mariano Martinez Peck</p>
<p><strong>Que aprendi enseñando Smalltalk y por que estoy tan contento con Smalltalk</strong> - Hernan Wilkinson</p>
<p><strong>10 años de Diversión en Caesar System</strong> - Leandro Caniglia</p>
<p><strong>GRID &#8211; Grid Reports Interactivly Designed</strong> - Carla Florencia Griggio</p>
<p><strong>Visualizar la ejecución de Software para identificar anomalías</strong> - Juan Pablo Sandoval Alcocer</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/416/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/416/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/416/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=416&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/10/20/conferencia-2011-de-smalltalk-en-argentina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>

		<media:content url="http://raulespinola.files.wordpress.com/2009/03/byte_smalltalk1.jpg?w=84&#38;h=124" medium="image">
			<media:title type="html">byte_smalltalk1</media:title>
		</media:content>
	</item>
		<item>
		<title>Métodos Espías &#8211; Method Spies</title>
		<link>http://smalltalkuy.wordpress.com/2011/09/09/metodos-espias-method-spies/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/09/09/metodos-espias-method-spies/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 19:16:54 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[POO]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=402</guid>
		<description><![CDATA[Los method spies o (métodos espías) son una herramienta muy útil a la hora de programar y/o analizar un sistema (son otra &#8220;joyita&#8220; de Smalltalk). Los métodos espías son secciones adicionales de código que se insertan de forma invisible dentro los métodos existentes. El código de los métodos espías tiene acceso total a todas las variables del [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=402&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://smalltalkuy.files.wordpress.com/2011/09/spy1.jpg"><img class="size-full wp-image-414 alignleft" title="spy" src="http://smalltalkuy.files.wordpress.com/2011/09/spy1.jpg?w=720" alt=""   /></a></p>
<p>Los <em><strong>method spies</strong></em> o (<strong><em>métodos espías</em></strong>) son una herramienta muy útil a la hora de programar y/o analizar un sistema (son otra &#8220;<em><strong>joyita</strong>&#8220;</em> de <strong>Smalltalk</strong>).</p>
<p>Los <strong><em>métodos espías</em></strong> son<strong> secciones adicionales de código</strong> que se insertan de forma <strong>invisible</strong> dentro los <strong>métodos existentes</strong>. El código de los <strong><em>métodos espías</em></strong> tiene acceso total a todas las variables del método en el cual fue insertado &#8211; <span style="color:#000080;">self, parameters, temporaries, instance variables, class variables</span>, etc.</p>
<p>Un <strong><em>método espía</em></strong> puede ejecutar cualquier tipo de código válido desde un simple &#8220;<span style="color:#000080;">self halt</span>&#8221; hasta hacer un <strong>diagnostico complejo</strong> del código que se esta ejecutando (por ejemplo generar un reporte con determinadas características y grabarlo en disco, si estoy estudiando la performance u otro asunto).</p>
<p>Dentro de los <strong><em>métodos espías </em></strong>existe la pseudo variable &#8220;<strong><span style="color:#000080;">thisSpy</span></strong>&#8221; que hace referencia al <strong><em>método espía</em></strong> en si mismo, además existe otras dos pseudo variables: <strong>context</strong> y <strong>activationContext</strong>. Una es para tener acceso a todas las activaciones del <strong>spy</strong> (en ese métdo) y la otra para tener acceso a la activación en ejecución.</p>
<p>Los <strong><em>métodos espías </em></strong>se usando durante el <strong>proceso de desarrollo</strong> y son eliminados cuando se hace el <strong>deployment o implantación</strong>.</p>
<p>Algunas de las ventajas de tener <strong><em>métodos espías </em></strong>son:</p>
<p><strong>* Inserción y eliminación transparente</strong>: insertar un <strong>spy</strong> en <strong>no</strong> <strong>afecta</strong> el código original del método. Puedo estudiar el método sin tener que modificarlo.</p>
<p><strong>* Rápido</strong>: insertar un <strong>spy</strong> es un proceso sumamente rápido y sencillo.</p>
<p><strong>* Controlable:</strong> los <strong>spies</strong> puede ser habilitados o deshabilitados de forma individual o en masa.</p>
<p><strong>* Fácil de realizar Seguimiento:</strong>  simplemente con la opción <strong>Browse Method Spies</strong> obtengo todos los <strong>spies</strong> del sistema.</p>
<p><strong>* Flexible:</strong> usando las pseudo variables<span style="color:#000080;"> thisSpy, context y activationContext</span>, un <strong>spy</strong> tiene control sofisticado sobre su propia ejecución. Por ejemplo, podemos hacer que un <strong>spy</strong> se ejecute un vez sola, o X veces dependiendo del tipo de argumentos y variables de la ejecución.</p>
<p><span style="text-decoration:underline;"><strong>Ejemplo</strong></span></p>
<p>En la siguiente imagen se muestra el método #<span style="color:#000080;">agregarTareaAntecesora</span> de la clase <span style="color:#000080;">TareaDiariaComposite</span>, el cual tiene 2 <strong><em>métodos espías</em></strong> (uno simple y otro complejo)<strong><em>.</em></strong></p>
<p>Los <strong><em>métodos espías </em></strong>se insertan usando el mouse y el menu contextual, y dónde se insertó el <strong>Spy</strong> el fondo queda en color <span style="color:#ff0000;">rojo</span>.</p>
<p>El primer <strong>Spy</strong> es simplemente un #<span style="color:#000080;">halt</span>. En el segundo caso se hacen algunas operaciones más complejas.</p>
<p>Como se ve en el ejemplo el <strong>Spy <span style="text-decoration:underline;">no</span></strong> modifica el código/método original y además tiene acceso a elementos de la ejecución.</p>
<p><a href="http://smalltalkuy.files.wordpress.com/2011/09/method-spy.jpg"><img class="aligncenter size-full wp-image-403" title="Method Spy" src="http://smalltalkuy.files.wordpress.com/2011/09/method-spy.jpg?w=720&#038;h=325" alt="" width="720" height="325" /></a></p>
<p><strong><span style="text-decoration:underline;">Conclusiones</span></strong></p>
<p>* No uso más el famoso (self <span style="color:#000080;">halt</span>) para investigar métodos, ahora inserto un <strong>Spy</strong>.</p>
<p>* Cambia totalmente la forma en la que se realiza la depuración (debug) de los sistemas, brindando un poderosa herramienta de análisis.</p>
<p>* No esta limitado a un <strong>Spy</strong> por método (como en caso de los <strong>methods wrappers, </strong>notar que son cosas diferentes).</p>
<p>* Se hace todo dentro del entorno gráfico de <strong>Smalltalk</strong> (en este caso <strong>Dolphin Smalltalk</strong>)</p>
<p><span style="text-decoration:underline;"><strong>Aclaración</strong></span></p>
<p>Los  <strong><em>métodos espías </em></strong>son parecidos a los <span style="text-decoration:underline;"><strong>methods wrappers</strong></span> pero son totalmente diferentes, ya que estos últimos son para ejecutar <strong>pre</strong> y <strong>post</strong> condiciones. Si bien se parecen <strong>no</strong> son lo mismo.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/402/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/402/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/402/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=402&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/09/09/metodos-espias-method-spies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2011/09/spy1.jpg" medium="image">
			<media:title type="html">spy</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2011/09/method-spy.jpg" medium="image">
			<media:title type="html">Method Spy</media:title>
		</media:content>
	</item>
		<item>
		<title>Código fuente del UML Almighty listo para bajar</title>
		<link>http://smalltalkuy.wordpress.com/2011/02/26/codigo-fuente-del-uml-almighty-listo-para-bajar/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/02/26/codigo-fuente-del-uml-almighty-listo-para-bajar/#comments</comments>
		<pubDate>Sat, 26 Feb 2011 22:42:24 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=389</guid>
		<description><![CDATA[http://www.uml-almighty.com/uml_executable_downloads.html Hemos publicado el código fuente del UML Almighty para la versión Dolphin Professional. Se puede bajar aqui: http://twit.io/2Jn. Cuando se libere la versión Dolphin Community 6.2 (próximo upgrade) publicaremos los fuentes para esta versión. El instalador con la Aplicación de Escritorio (incluye el Web Server)  ya esta lista para bajar: http://twit.io/2Jt. Esta es la versión [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=389&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a rel="nofollow" href="http://www.google.com/url?sa=D&amp;q=http://www.uml-almighty.com/uml_executable_downloads.html" target="_blank">http://www.uml-almighty.com/uml_executable_downloads.html</a></p>
<p>Hemos publicado el<strong> código fuente</strong> del <strong>UML Almighty</strong> para la versión <strong>Dolphin Professional</strong>.</p>
<p>Se puede bajar aqui: <a rel="nofollow" href="http://www.google.com/url?sa=D&amp;q=http://twit.io/2Jn" target="_blank">http://twit.io/2Jn</a>.</p>
<p>Cuando se libere la versión <strong>Dolphin Community 6.2</strong> (próximo upgrade) <strong>publicaremos </strong>los <strong>fuentes </strong>para esta versión.</p>
<p>El instalador con la <strong>Aplicación de Escritorio</strong> (incluye el <strong>Web Server</strong>)  ya esta lista para bajar:<br />
<a rel="nofollow" href="http://www.google.com/url?sa=D&amp;q=http://twit.io/2Jt" target="_blank">http://twit.io/2Jt</a>.<br />
Esta es la versión  <strong>Full </strong>de<strong> UML Almighty</strong> sin restricción alguna.</p>
<p>Para acceder a la Simulación Web:<br />
user: <strong>admin </strong><br />
password: <strong>password</strong></p>
<p>Hay dos modelos instalados en la <strong>Máquina Virtual UML</strong>, ambos puede ser removidos.</p>
<p>Estos modelos son ejemplos de como <strong>Simular Aplicaciones UML</strong>.</p>
<p>&nbsp;</p>
<p>UML Almighty Open Source UML Simulation</p>
<p>Executable UML</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/389/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/389/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/389/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=389&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/02/26/codigo-fuente-del-uml-almighty-listo-para-bajar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>
	</item>
		<item>
		<title>Licencia Open Source: The PostgreSQL Licence (TPL)</title>
		<link>http://smalltalkuy.wordpress.com/2011/02/09/licencia-open-source-the-postgresql-licence-tpl/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/02/09/licencia-open-source-the-postgresql-licence-tpl/#comments</comments>
		<pubDate>Wed, 09 Feb 2011 22:53:55 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[Executable UML]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[UML Ejecutable]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=380</guid>
		<description><![CDATA[Finalmente optamos por la licencia The PostgreSQL Licence (TPL) para el UML Almighty. The PostgreSQL Licence (TPL) This is a template license. The body of the license starts at the end of this paragraph. To use it, say that it is The PostgreSQL License, and then substitute the copyright year and name of the copyright holder [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=380&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finalmente optamos por la licencia <strong><a title="licenses/postgresql" href="http://opensource.org/licenses/postgresql">The PostgreSQL Licence (TPL)</a> </strong>para el <strong>UML Almighty<strong>.</strong></strong></p>
<h2>The PostgreSQL Licence (TPL)</h2>
<div>
<div id="node-507">
<div><img src="http://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png" alt="[OSI Approved License]" width="100" height="137" />This is a template license. The body of the license starts at the end of this paragraph. To use it, say that it is The PostgreSQL License, and then substitute the copyright year and name of the copyright holder into the body of the licnese. Then put the license into a file called &#8220;LICENSE&#8221; in your software distribution.&nbsp;</p>
<p>Copyright (c) $YEAR, $ORGANIZATION</p>
<p>Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.</p>
<p>IN NO EVENT SHALL $ORGANISATION BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF $ORGANISATION HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
<p>$ORGANISATION SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN &#8220;AS IS&#8221; BASIS, AND $ORGANISATION HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.</p>
</div>
</div>
</div>
<h2>Actualización del Sitio Web</h2>
<p>En los próximos días estaremos actualizando la página y poniendo el nuevo <strong>instalador </strong>y el <strong>código fuente</strong> para bajar. El <strong>código fuente</strong> demorará un días más ya que debemos remover el <em>framework </em>de seguridad de licencias que esta en la aplicación actual.</p>
<p>Para poder editar el <strong>código fuente</strong> se necesita el <span style="color:#0000ff;">ambiente de programación</span> <strong>Dolphin </strong>(<a title="Dolphin" href="http://www.object-arts.com/">www.object-arts.com</a>), la versión <strong>Community </strong>de <strong>Dolphin </strong>es <strong>gratis </strong>y viene con todo el <strong>código fuente </strong>del <strong>ambiente de programación. </strong></p>
<p><span style="font-size:20px;font-weight:bold;">Que hace UML Almighty</span></p>
<p>* Genera una aplicación <strong>Web</strong>/<strong>Desktop </strong>customizable a partir de un <strong>Diagrama de Clases </strong>(utilizando un arvhivo <strong>XMI</strong>).</p>
<p>* Se puede programar comportamiento, los <strong>Diagramas de Sequencia </strong>pueden ser ejecutados.</p>
<p>* La aplicación generada es una <strong>Simulación </strong>(con prototipo customizable) y <strong>Ejecución </strong>del diseño <strong>UML (UML ejecutable &#8211; Executable UML)</strong>.</p>
<p>* Asegura en un 100% que el diseño ejecuta y puede ser programado sin contratiempo para los proagramdores.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/380/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/380/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/380/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=380&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/02/09/licencia-open-source-the-postgresql-licence-tpl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>

		<media:content url="http://opensource.org/trademarks/opensource/OSI-Approved-License-100x137.png" medium="image">
			<media:title type="html">[OSI Approved License]</media:title>
		</media:content>
	</item>
		<item>
		<title>Licencias Open Source</title>
		<link>http://smalltalkuy.wordpress.com/2011/02/06/licencias-open-source/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/02/06/licencias-open-source/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 17:38:57 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[Executable UML]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[POO]]></category>
		<category><![CDATA[Traits]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[UML Ejecutable]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=377</guid>
		<description><![CDATA[Estamos viendo que licencia Open Source es la mejor para el UML Almighty, pero la cantidad de posibilidades es bastante grande y algunas licencias son extensas y en ocasiones no muy claras. Hasta ahora la licencia más cerca de lo que queremos es The PostgreSQL Licence (TPL). Los objetivos a buscar * Código fuente libre (para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=377&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://smalltalkuy.files.wordpress.com/2011/02/garland_logo.png"><img class="size-full wp-image-378 aligncenter" title="garland_logo" src="http://smalltalkuy.files.wordpress.com/2011/02/garland_logo.png?w=720" alt=""   /></a></p>
<p>Estamos viendo que licencia <span style="color:#008000;"><strong>Open Source </strong></span>es la mejor para el <strong>UML Almighty</strong>, pero la cantidad de posibilidades es bastante grande y algunas licencias son extensas y en ocasiones no muy claras. Hasta ahora la licencia más cerca de lo que queremos es <strong><a title="licenses/postgresql" href="http://opensource.org/licenses/postgresql">The PostgreSQL Licence (TPL)</a></strong>.</p>
<p><span style="font-size:20px;font-weight:bold;">Los objetivos a buscar</span></p>
<h4>* Código fuente libre (para futuras versiones o aplicaciones derivadas).</h4>
<h4>* Aplicaciones o Distribuciones Derivadas que mantengan la misma licencia.</h4>
<h4>* Que <span style="text-decoration:underline;"><strong>no</strong></span> se pueda cobrar por el software en si o por extensiones.</h4>
<h4>* Que si se puedan vender servicios (SaaS &#8211; software as a service).</h4>
<h2>Público Objetivo</h2>
<p>* Programadores, Analistas, Ingenieros de sistemas en proyectos utilizando <strong>UML</strong>.</p>
<p>* Empresas que utilizan <strong>UML </strong>en sus proyectos.</p>
<p>* Instituciones Educativas (con orientación informática) cuyos planes de estudio incluyan <strong>UML</strong>.</p>
<p>* Investigadores de <strong>Máquinas Virtuales</strong> y <strong>Meta Programación</strong>, etc.</p>
<h2>Que hace</h2>
<p>* Genera una aplicación <strong>Web</strong>/<strong>Desktop </strong>customizable a partir de un <strong>Diagrama de Clases</strong>.</p>
<p>* Se puede programar comportamiento por lo que los <strong>Diagramas de Sequencia </strong>pueden ser programados y ejecutados.</p>
<p>* La aplicación generada es una <strong>Simulación </strong>(con prototipo customizable) y <strong>Ejecución </strong>del diseño <strong>UML</strong>.</p>
<p>* Asegura en un 100% que el diseño ejecuta y puede ser programado sin contratiempo para los proagramdores.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/377/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=377&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/02/06/licencias-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2011/02/garland_logo.png" medium="image">
			<media:title type="html">garland_logo</media:title>
		</media:content>
	</item>
		<item>
		<title>En las próximas semanas UML Almighty va a ser open source</title>
		<link>http://smalltalkuy.wordpress.com/2011/02/03/en-las-proximas-semanas-uml-almighty-va-a-ser-open-source/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/02/03/en-las-proximas-semanas-uml-almighty-va-a-ser-open-source/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 21:12:59 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=373</guid>
		<description><![CDATA[Gran Noticia En las próximas semanas UML Almighty va a ser open source. Estamos en el proceso de hacer open source el UML Almighty. Va a poder ser usado sin ninguna restricción en cualquier tipo de proyecto. El proyecto (UML Almighty) será mantenido con donaciones y publicidad. El anuncio oficial se hará aquí y en [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=373&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><span style="font-size:12.5px;">Gran Noticia</span></h3>
<div>
<h3>En las próximas semanas <span style="color:#000080;">UML Almighty</span> va a ser <span style="color:#008000;">open source</span>.</h3>
<h3>Estamos en el proceso de hacer <span style="color:#008000;">open source</span> el <span style="color:#000080;">UML Almighty</span>.</h3>
<h3>Va a poder ser usado sin ninguna <span style="color:#ff0000;">restricción </span>en cualquier tipo de proyecto.</h3>
<h3>El proyecto (<span style="color:#000080;">UML Almighty</span>) será mantenido con <span style="color:#993300;">donaciones </span>y <span style="color:#666699;">publicidad</span>.</h3>
<h3>El anuncio oficial se hará aquí y en la página de <span style="color:#000080;">UML Almighty</span> <a title="UML Almighty" href="http://www.uml-almighty.com/">Site</a></h3>
<h3><strong>Saludos, </strong><br />
<strong>Bruno</strong></h3>
</div>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/373/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=373&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/02/03/en-las-proximas-semanas-uml-almighty-va-a-ser-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>
	</item>
		<item>
		<title>Arquitectura GLASS comparada con Ruby on Rails</title>
		<link>http://smalltalkuy.wordpress.com/2011/01/26/arquitectura-glass-comparada-con-ruby-on-rails/</link>
		<comments>http://smalltalkuy.wordpress.com/2011/01/26/arquitectura-glass-comparada-con-ruby-on-rails/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 17:41:37 +0000</pubDate>
		<dc:creator>smalltalkuy</dc:creator>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[OODBMS - Base de Objetos]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://smalltalkuy.wordpress.com/?p=363</guid>
		<description><![CDATA[Descripción En esta ocasión voy a describir la arquitectura del framework GLASS (gemstone/s &#8211; linux &#8211; apache &#8211; seaside &#8211; smalltalk) con más detalle, y luego voy hacer una comparación sencilla con Ruby on Rails. También ver el blog de Avi Bryant (Twitter) sobre GemStone/S y Ruby on Rails: http://www.avibryant.com/2008/03/ive-had-a-numbe.html En la comparación solamente se mostrarán las diferencias, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=363&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1>Descripción</h1>
<p>En esta ocasión voy a describir la arquitectura del <em>framework </em><strong>GLASS </strong>(gemstone/s &#8211; linux &#8211; apache &#8211; seaside &#8211; smalltalk) con más detalle, y luego voy hacer una comparación sencilla con <strong>Ruby on Rails</strong>.</p>
<p>También ver el blog de<strong> Avi Bryant</strong> (Twitter) sobre <strong>GemStone/S</strong> y <strong>Ruby on Rails</strong>: <a href="http://www.avibryant.com/2008/03/ive-had-a-numbe.html">http://www.avibryant.com/2008/03/ive-had-a-numbe.html</a></p>
<p>En la comparación solamente se mostrarán las diferencias, cada uno puede sacar sus conclusiones según su conocimiento.</p>
<p>La siguiente imagen denota de forma detallada (pero <span style="text-decoration:underline;">no</span> completa) la arquitectura de <strong>GLASS</strong>:</p>
<p><a href="http://smalltalkuy.files.wordpress.com/2011/01/gemstone.jpg"><img class="aligncenter size-full wp-image-364" title="gemstone" src="http://smalltalkuy.files.wordpress.com/2011/01/gemstone.jpg?w=720&#038;h=540" alt="" width="720" height="540" /></a></p>
<p><span style="text-decoration:underline;"><strong>Network</strong></span>: representa la <strong>web </strong>y los diferentes clientes <strong>web </strong>que se conectan con <strong>GLASS</strong>.</p>
<p><span style="text-decoration:underline;"><strong>Database host</strong></span>: es el repositorio alojado físicamente en un servidor. El repositorio se puede dividir en <strong>N</strong> <em>extent</em>, cada <em>extent </em>es un archivo en disco.</p>
<p><strong><span style="text-decoration:underline;">Transaction logs host</span></strong>: es el <strong>LOG </strong>de transacciones de <strong>GemStone/S</strong> que puede estar ubicado en otro servidor diferente del  repositorio (como en este caso).</p>
<p><strong><span style="text-decoration:underline;">Stoned Process</span></strong>: el proceso <strong>Stoned</strong> es el <strong>coordinador </strong>del repositorio y de los procesos <strong>Gem</strong>. Este proceso se encarga de guardar y recuperar objetos del repositorio en disco, asi como asegurar la concurrencia de los procesos <strong>Gem</strong> y la consistencia del repositorio. El proceso <strong>Stoned</strong> puede correr en el mismo <strong>host </strong>que los <strong>Gem</strong> o no (esto es configurable).  Los conflictos de actualización son resueltos por el proceso <strong>Stoned</strong>. Hay un <strong>Stoned</strong> por repositorio.</p>
<p><span style="text-decoration:underline;"><strong>Gem Process</strong></span>: son (procesos) <strong>máquinas virtuales</strong> que le <strong><em>dan vida</em></strong> a los objetos del <strong>repositorio, </strong>ejecutan métodos de las clases, alteran objetos y crean nuevos, etc. Cada <strong>Gem </strong>actual como un <em>repositorio único</em> para los clientes. Los procesos <strong>Gem </strong>también pueden actualizar el repositorio si esa actualización <strong>no </strong>entra en conflicto con algún otro proceso <strong>Gem</strong>.</p>
<p><span style="text-decoration:underline;"><strong>Shared Page Cache</strong></span>: son segmentos de <strong>memoria virtual </strong>del <strong>SO</strong>. Cuando los objetos son accedidos a disco entonces se van cargando en el<strong> Shared Page Cache</strong>. Si un objeto todavía no ha sido accedido entonces cuando se lee por primera vez se carga en el <strong>Shared Page Cache</strong>, luego el próximo <strong>Gem </strong>que requiera ese objeto no tiene que acceder a disco. Como se ve en la figura puede haber más de un <strong>Shared Page Cache</strong>, estos se llaman <strong>Remote Shared Page Cache. </strong>Las sincronización entre los diferentes <strong>Shared Page Cache </strong>se haceautomáticamente  y es <strong>transparente </strong>para el desarrollador. Hay procesos (que son invisibles cuando estamos desarrollando) que se encargan de copiar y mantener actualizados los diferentes <strong>Shared Page Cache</strong>.</p>
<p><strong><span style="text-decoration:underline;">Continuations</span></strong></p>
<p>Esta plataforma de desarrollo soporta <strong>Continuations</strong>. <strong>Continuations</strong> da la capacidad de <strong><em>persistir </em></strong>la <strong>pila de ejecución</strong> de un proceso <strong>Gem </strong>(recordar un <strong>Gem</strong> es una<strong><em> máquina virtual</em></strong>) y guardarla en el repositorio. Luego otro proceso <strong>Gem </strong>puede acceder a esa <strong>pila de ejecución</strong> en el repositorio, cargarla en memoria y continuar con su normal . Por lo que no hay que preocuparse en identificar que proceso <strong>Gem</strong> se hizo cargo de que petición.</p>
<p><strong><span style="text-decoration:underline;">Debug</span></strong></p>
<p>Si ocurre un error en nuestra aplicación web somos capaces de guardar la <strong>pila de ejecución</strong> en el repositorio, y luego acceder al servidor y como <strong>DBAs </strong>levantar la <strong>pila de ejecución</strong> y analizar el error.</p>
<p><strong>Si !!! </strong>todo el contexto del error se guarda en el repositorio y vamos a poder explorar todo los objetos involucrados en ese error, y ejecutar paso a paso lo que hizo el usuario para que surgiera ese error.</p>
<p><span style="text-decoration:underline;"><strong>Escalabilidad</strong></span></p>
<p><strong>GLASS</strong> soporta e<strong>scalabilidad horizontal</strong>, es decir, que a cualquier problema de performance se puede agregar más servidores para albergar más procesos <strong>Gem</strong>. Como los procesos <strong>Gem </strong>son las <strong>máquinas virtuales</strong> entonces tengo más recursos para responder a las diferentes peticiones.</p>
<p><span style="text-decoration:underline;"><strong>Sistemas Reales</strong></span></p>
<p>Toda esta <strong>arquitectura </strong>puede correr sobre el mismo <strong>servidor </strong>o <strong>distribuido </strong>en <strong>N servidores</strong>.</p>
<p><strong>JP Morgan</strong></p>
<p>Hay sistemas en producción dónde <strong>cientos </strong>de máquinas (de los mismo usuarios de la intranet) <strong>albergan cientos</strong> de <strong>procesos Gem</strong>. En este caso al escalabilidad es horizontal.</p>
<p><strong>London Petroleum Exchange</strong></p>
<p>Un solo servidor alberga toda la aplicación, este servidor es un <strong>AIX Power 6</strong> con <strong>512 Gb</strong> de memoria.</p>
<h1>Comparación con Ruby on Rails</h1>
<p>No soy experto en <strong>Ruby on Rails</strong> solamente conozco parte de la arquitectura.</p>
<p>Una aplicación <strong>Ruby on Rails</strong> típica consta de: un <strong>cluster de servidores</strong> para soportar la <strong>base de datos</strong>, varios <strong>caches en memoria</strong>, varios <strong>procesos </strong>que se encargan del funcionamiento de los objetos y la renderización de páginas web.</p>
<p>Normalmente la base de datos es <strong>MySQL </strong>y se ubica en unos o más servidores, luego hay varios servidores que albergan los <strong>caches en memoria</strong> (<strong><em>memcached</em></strong>) (el número de servidores para <strong>MySQL </strong>es el mismo que para los <strong><em>memcached</em></strong>), y se activan entre 8 y 12 <strong><em>worker processes</em></strong> para realizar el procesamiento, llamados <strong><em>mongrels </em></strong><em>(incluyen el interprete Ruby y el Web Server Mongrel)</em>.</p>
<p>Los <strong>mongrels </strong>aceptan las peticiones web y ejecutan el código de la aplicación. Los objetos dentro de los <strong><em>worker processes</em> <span style="text-decoration:underline;">están vivos</span>, </strong>envían y reciben mensajes, ejecutan métodos, cambian los estados de los objetos <strong>Ruby</strong>, etc. Los objetos solamente existen en la memoria de un <strong>mongrel</strong> en particular.</p>
<p>Estos objetos se persisten en la base de datos usando los <strong>Active Records</strong> de <strong>Ruby</strong>. Cuando un <strong>mongrel </strong>modifica un objeto, y la transacción hace <strong>commit</strong> entonces objeto se actualiza en <strong>MySQL</strong>, y cuando algún otro proceso lo lea obtendrá la versión actualizada del objeto.  Los objetos dentro de <strong>MySQL <span style="text-decoration:underline;">están muertos</span></strong>, no hacen nada hasta que son puestos dentro del algún proceso <strong>mongrel</strong>.</p>
<p><strong>Ruby on Rails y GLASS</strong> (gemstone/s linux smalltalk seaside)</p>
<p><a href="http://smalltalkuy.files.wordpress.com/2011/01/gs-ruby.jpg"><img class="aligncenter size-full wp-image-365" title="gs-ruby" src="http://smalltalkuy.files.wordpress.com/2011/01/gs-ruby.jpg?w=720&#038;h=81" alt="" width="720" height="81" /></a></p>
<p><strong><a title="MagLev - Ruby that scales" href="http://ruby.gemstone.com/">MAGLEV</a></strong> hace posible el desarrollo de aplicaciones <strong>Ruby </strong>sobre <strong>GemStone/S</strong>, con una la arquitectura idéntica a la de <strong>Smalltalk</strong>.</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/smalltalkuy.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/smalltalkuy.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/smalltalkuy.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/smalltalkuy.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/smalltalkuy.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/smalltalkuy.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/smalltalkuy.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/smalltalkuy.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/smalltalkuy.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/smalltalkuy.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/smalltalkuy.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/smalltalkuy.wordpress.com/363/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/smalltalkuy.wordpress.com/363/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/smalltalkuy.wordpress.com/363/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=smalltalkuy.wordpress.com&amp;blog=10013550&amp;post=363&amp;subd=smalltalkuy&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://smalltalkuy.wordpress.com/2011/01/26/arquitectura-glass-comparada-con-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/100dffe55896a26afd1d02561fbc9a25?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">smalltalkuy</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2011/01/gemstone.jpg" medium="image">
			<media:title type="html">gemstone</media:title>
		</media:content>

		<media:content url="http://smalltalkuy.files.wordpress.com/2011/01/gs-ruby.jpg" medium="image">
			<media:title type="html">gs-ruby</media:title>
		</media:content>
	</item>
	</channel>
</rss>
