<?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/"
	>

<channel>
	<title>^[:Il &#124; Messaggero := non: 'è importante'] &#187; Smalltalk</title>
	<atom:link href="http://www.lordzealon.com/category/programacion/smalltalk-programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lordzealon.com</link>
	<description>Un blog de Giuseppe Luigi Punzi, sobre programación, sistemas, idas de cabeza, y mis cosas en general, porque un sitio debía tener...</description>
	<pubDate>Tue, 23 Jun 2009 08:49:09 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Squeak 3.10.2 + Polymorph + UIThemeXP + NiceFonts</title>
		<link>http://www.lordzealon.com/2009/05/25/squeak-3102-polymorph-uithemexp-nicefonts/</link>
		<comments>http://www.lordzealon.com/2009/05/25/squeak-3102-polymorph-uithemexp-nicefonts/#comments</comments>
		<pubDate>Mon, 25 May 2009 16:02:57 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=179</guid>
		<description><![CDATA[Well, this looks promising to deploy apps for business $user

EDITED:
I forgot to mention, thath, I&#8217;m not the creator of UIThemeXP. The creators name is Steve Wirts, and the announcement of this package can be found on Pharo Maillist
]]></description>
			<content:encoded><![CDATA[<p>Well, this looks promising to deploy apps for business $user</p>
<p><a href="http://img253.imageshack.us/my.php?image=uithemexp.jpg" target="_blank"><img src="http://img253.imageshack.us/img253/2338/uithemexp.th.jpg" border="0"/></a></p>
<p>EDITED:<br />
I forgot to mention, thath, I&#8217;m not the creator of UIThemeXP. The creators name is Steve Wirts, and the announcement of this package can be found on <a href=http://lists.gforge.inria.fr/pipermail/pharo-project/2009-May/008373.html>Pharo Maillist</a></p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="Squeak 3.10.2 + Polymorph + UIThemeXP + NiceFonts" url="http://www.lordzealon.com/?p=179"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2009/05/25/squeak-3102-polymorph-uithemexp-nicefonts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>El/Mi defecto de Squeak</title>
		<link>http://www.lordzealon.com/2009/05/22/elmi-defecto-de-squeak/</link>
		<comments>http://www.lordzealon.com/2009/05/22/elmi-defecto-de-squeak/#comments</comments>
		<pubDate>Fri, 22 May 2009 18:34:05 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=176</guid>
		<description><![CDATA[La verdad, es que algunas veces critico Squeak, pero, creo, nunca he especificado por qué. Realmente, no hay muchos puntos que &#8220;odie&#8221; de Squeak, pero los pocos que hay, son cosillas que me crispan un poco los nervios, y muchos otros, son simples manías mías. Todo lo aquí escrito son opiniones personales nada más.
Para entenderme [...]]]></description>
			<content:encoded><![CDATA[<p>La verdad, es que algunas veces critico Squeak, pero, creo, nunca he especificado por qué. Realmente, no hay muchos puntos que &#8220;odie&#8221; de Squeak, pero los pocos que hay, son cosillas que me crispan un poco los nervios, y muchos otros, son simples manías mías. Todo lo aquí escrito son opiniones personales nada más.</p>
<p>Para entenderme mejor, quizás, habría que aclarar, que toda mi vida he desarrollado aplicaciones en Delphi, y todas ellas eran aplicaciones de Gestión, Control de presencia, etc&#8230;. Como bien dice mi querido colega, y siempre referenciado amigo Notxor, por las facilidades que Delphi ofrece, puede hacer que cojas malos hábitos, como el no separar la capa de la Vista con la del modelo. De hecho, una frase (citada a mi manera) que me gustó que dijo fué: &#8220;Qué hace Delphi en cuanto creas un nuevo proyecto? Plantarte un formulario delante del morro&#8221;.</p>
<p>Siempre que he querido estudiar/ojear un nuevo lenguaje, qué es de lo primero que he hecho? buscar un GUI builder. Y es que, estoy obsesionado con el <acronym xml:lang="es" title="Graphical User Interface">GUI</acronym>, y aquí, podríamos encontrar mi primer problema con Squeak. La interfaz de Squeak, es perfecta para etoys y aplicaciones educativas, e incluso para entornos en desarrollo, pero, como decía en otra entrada, si a un cliente le presento una aplicación de control de producción, que parece desarrollada con <em>Playdo</em>, me tira el proyecto a la cabeza, y no vale, digamos, la escusa de la mejora en la productividad, o la robustez de la plataforma. Porque para el cliente, sigue siendo plastilina, y él, es quien paga.<br />
<img src=http://www.celsys.co.jp/community/claytown/letsclay/02/img/playdo_l.jpg></p>
<p>Y no, la solución no es usar Seaside, o Aida o SWT para dotar a la aplicación de una interfaz web. Web es para Web, escritorio, es para escritorio. La masificación de Internet nos ha dado muy malos hábitos. Ahora parece que todo debe funcionar a través de internet. Existe la alternativa de wxSqueak, que son bindings para wxWidgets, pero es un proyecto en fase Beta, que creo no avanza demasiado rápido. Está Polymorph, pero sólo son unos pequeños decorados, que si bien lo arreglan, tampoco del todo. También existe la alternativa, que andaba ojeando hace no mucho, que era usar una interfaz xul, pero el framework existente está ligado totalmente a Seaside.</p>
<p>Qué quiero decir con ésto? Nada. Simplemente quería desahogarme. Me encanta Squeak. Un &#8220;entorno&#8221; que funciona en Windows, Linux, MacOS, Windows Mobile, y unas cuantas plataformas más. Me proporciona portabilidad (abro la imágen con la VM de otro sistema operativo, y todo continúa donde estaba, magia? no, las cosas bien hechas), una comunidad con bastante movimiento, persistencia intrínseca en la imágen o bases de datos orientadas a objetos integradas, un lenguaje (Smalltalk) totalmente de objetos con un &#8220;IDE&#8221; muy poderoso y con acceso a poder modificar cualquier parte del sistema a placer (pero no tengo conocimientos para hacer los cambios que quiero en el GUI), y cuál es el problema, no me gusta el GUI. Comprenden mi frustración?</p>
<p>Puede que dentro de poco Squeak cambie, o puede que no cambie nunca, o puede que avancen los bindings para widgets nativos, o algún framework para enlazar con XUL o algo similar, pero mientras, sólo puedo &#8220;aguantarme, y joderme&#8221;</p>
<p>P.D.: Aunque luego aparezcan widgets nativos, seguiré quejándome porque fijo, habrá que crear toda la interfaz a base de picar código :D</p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="El/Mi defecto de Squeak" url="http://www.lordzealon.com/?p=176"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2009/05/22/elmi-defecto-de-squeak/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Lenguajes de Programación (Parte II)</title>
		<link>http://www.lordzealon.com/2009/05/18/lenguajes-de-programacion-parte-ii/</link>
		<comments>http://www.lordzealon.com/2009/05/18/lenguajes-de-programacion-parte-ii/#comments</comments>
		<pubDate>Mon, 18 May 2009 16:45:22 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Lazarus/FPC]]></category>

		<category><![CDATA[Programación]]></category>

		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=174</guid>
		<description><![CDATA[En mi anterior entrada, comentaba distintas opciones de desarrollo que me planteo usar, y unos pros y contras escritos así a ojo que veo a cada uno. En ésta, intentaré explayarme un poco más, sobre todo, el qué me hace plantearme no usar lo que quiero usar.
Principalmente, me dedico al desarrollo de software de gestión. [...]]]></description>
			<content:encoded><![CDATA[<p>En mi <a href="http://www.lordzealon.com/2009/05/14/lenguajes-de-programacion-parte-i/">anterior entrada</a>, comentaba distintas opciones de desarrollo que me planteo usar, y unos pros y contras escritos así a ojo que veo a cada uno. En ésta, intentaré explayarme un poco más, sobre todo, el qué me hace plantearme no usar lo que quiero usar.</p>
<p>Principalmente, me dedico al desarrollo de software de gestión. Para este tipo de proyectos, C, lo veo matar moscas a cañonazos. C podrá ser rápido, con ejecutables pequeños, y un sin fin de bondados que los puristas querrán venderme etc..etc&#8230; pero, siendo realistas, para software de gestión, CRUD, ABM, o como quieras llamarlo, es una soberana tontería hacerlo en un lenguaje como C/C++, (a no ser, que sepas bastante C, lo hagas por aprender, o simplemente, es que no conoces otra cosa) existiendo alternativas de alto nivel que te ahorran muchos quebraderos de cabeza.</p>
<p>Como bien decía en uno de los comentarios mi amigo Notxor, no nombré a Java. Java, cumple bastantes por no decir casi todos de los requisitos anteriormente mencionados. Es un lenguaje con el que tengo una relación Amor/Odio. Básicamente, siempre he querido ponerme a hacer cositas en él, pero, por A o por B, siempre he acabado apartándolo de mi vista. Me compré un libro de Java2 hará unos años, que apenas he comenzado a leerlo. Además, al igual que Notxor, siempre me gusta ser el &#8220;rarito&#8221; que usa ese lenguaje que la gente apenas conoce :)</p>
<p>Muchas veces, me he preguntado - ¿Si no fuese tan cabezón, y usase lenguajes más conocidos, no me ahorraría problemas? -. Por eso, últimamente andaba haciéndole ojitos a Mono. La verdad es que no me desagrada demasiado la idea de ponerme a programar (de nuevo) en <em>&#8220;.NET&#8221;</em> (con todas esas ventajas que muchos creen han llegado del cielo de la mano de Dios, y llevan existiendo en Delphi eónes, pero eso es otra historia), pero, siempre que pienso en Mono, y comienzo a descargar la plataforma, IDEs etc.. me viene a la cabeza Lazarus/FreePascal, y a la par, no me quito de la cabeza Smalltalk.</p>
<p>Parte de la culpa la tiene Squeak. La verdad es que me gusta mucho la filosofía Smalltalk, su sintaxis, pero, en cambio, odio que todo vaya integrado en una ventana, y por mucho que la gente intente hacer pensar lo contrario,su Look&#038;Feel, lo hacen parecer un juguete.</p>
<p>Que no se me malinterprete, soy un enamorado de Smalltalk, y precisamente, no duro más de 2 días en un lenguaje distinto por eso mismo, pero, a un cliente, no le puedo presentar una aplicación, donde las ventanas parecen hechas de plastilina, y aunque <em>PolyMorph</em> arregla algo, no es una solución final factible. </p>
<p>Sólo hay un lenguaje que me tuvo un pelín más enganchado, (y que seguramente intente retomar para ver la velocidad de la nueva VM), y es <a href="http://www.ruby-lang.org/es/">Ruby</a>. Quizás por la fuerte influencia de Smalltalk en él. En su momento, lo aparté debido a problemas que tenía para cargar la librería Fox para el GUI, en mi MAC no había narices que funcionase, puede que le eche un vistazo de nuevo.</p>
<p>Volviendo a Smalltalk, es verdad que existen alternativas con widgets nativos para la interfaz. Pero&#8230;<br />
cuál de ellas funciona en Win, Mac y OSX? VisualWorks y Squeak.<br />
Apliquemos otro filtro, cuál de ellos me puedo permitir? Squeak</p>
<p>Resumiendo, da igual si Mono, Java, Lazarus/FreePascal, Ruby o lo que exista o lo nuevo que venga&#8230;..al final, seguro que acabo programando en smalltalk/Squeak, que es lo único, que sin hacer nada, me funciona en todos los sistemas operativos sin quejas :P</p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="Lenguajes de Programación (Parte II)" url="http://www.lordzealon.com/?p=174"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2009/05/18/lenguajes-de-programacion-parte-ii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Actualizar por actualizar</title>
		<link>http://www.lordzealon.com/2009/04/27/actualizar-por-actualizar/</link>
		<comments>http://www.lordzealon.com/2009/04/27/actualizar-por-actualizar/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 21:26:15 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/2009/04/27/actualizar-por-actualizar/</guid>
		<description><![CDATA[Hace tiempo que no actualizo.
El trabajo me tiene desbordado, y el poco (casi ninguno) tiempo que he tenido, lo he dedicado a los míos y al poker.
Ahora mismo ando ojeando Seaside para poder tener un punto de vista a lo que había estado &#8220;estudiando&#8221; hasta ahora, Aida/Web, y la verdad es que no me desagrada, [...]]]></description>
			<content:encoded><![CDATA[<p>Hace tiempo que no actualizo.</p>
<p>El trabajo me tiene desbordado, y el poco (casi ninguno) tiempo que he tenido, lo he dedicado a los míos y al <a href="http://ohmybluff.lordzealon.com">poker</a>.</p>
<p>Ahora mismo ando ojeando <a href="http://www.seaside.st">Seaside</a> para poder tener un punto de vista a lo que había estado &#8220;estudiando&#8221; hasta ahora, <a href="http://www.aidaweb.si">Aida/Web</a>, y la verdad es que no me desagrada, pero, por lo poco que he podido ver hasta ahora, sigo opinando que Aida, a simple vista al menos, es más sencillo. Puesto he usado poco estos dos frameworks, no puedo dar una opinón más profunda, por lo que, esperaré a poder ojear más a fondo los dos.</p>
<p>Uno de los tantos proyectos que me gustaría probar, es, ver cuál de los dos es más fácil de conectar con interfaces <a href="http://es.wikipedia.org/wiki/XUL">XUL</a>, así como probar también algo que me tiene desde hace tiempo con la mosca tras la oreja, <a href="http://openlaszlo.org/">OpenLaszlo</a>.</p>
<p>Me gustaría encontrar algo, web, que no sea web. ¿Por qué? sencillo. No me gusta la web, pero, a día de hoy, no sólo es lo que se lleva, si no que además, <a href="http://www.squeak.org">Squeak</a>, tiene un Look&#038;Feel y unas carencias a nivel de usuario que no me convencen para usarlas en producción, por lo que, ando buscando alternativas a nivel Web&#8230;&#8230;..que no sean web.</p>
<p>Ya iré comentando como van todos estos temas.</p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="Actualizar por actualizar" url="http://www.lordzealon.com/2009/04/27/actualizar-por-actualizar/"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2009/04/27/actualizar-por-actualizar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Smalltalk y persistencia</title>
		<link>http://www.lordzealon.com/2009/02/09/smalltalk-y-persistencia/</link>
		<comments>http://www.lordzealon.com/2009/02/09/smalltalk-y-persistencia/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 14:11:56 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<category><![CDATA[persistencia]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=128</guid>
		<description><![CDATA[Ya he hablado varias veces de las bondades de Smalltalk, pero no sobre la persistencia de los objetos.
Actualmente, voy a afrontar, quizás, mi proyecto más importante (del que ya hablaré en otro momento) hasta la fecha, y he tomado la decisión de afrontarlo con el lenguaje (si me oyesen los puristas) que me tiene enamorado [...]]]></description>
			<content:encoded><![CDATA[<p>Ya he hablado varias veces de las bondades de Smalltalk, pero no sobre la <a href="http://es.wikipedia.org/wiki/Persistencia_de_objetos">persistencia</a> de los objetos.</p>
<p>Actualmente, voy a afrontar, quizás, mi proyecto más importante (del que ya hablaré en otro momento) hasta la fecha, y he tomado la decisión de afrontarlo con el lenguaje (si me oyesen los puristas) que me tiene enamorado en los últimos años. Por ello, he tenido que embarcarme (aunque quizás pronto), en la búsqueda de la persistencia. Por ello, por si a alguien le parece interesante, y quiere ahorrarse trabajo, procuraré explicar por aquí algo sober mis lecturas y pruebas.<br />
<span id="more-128"></span><br />
Desde Squeak, podemos persistir los datos de muchas maneras distintas, una de ellas (y la más básica de todas), es grabar la imágen. De manera totalmente nativa,  y aprovechando el concepto de &#8220;imágen&#8221; de los sistemas smalltalk, tenemos una forma de poder grabar datos. Evaluando algo tan sencillo como:</p>
<p>Smalltalk snapshot: true andQuit: false.</p>
<p>Y se acabó, ya tenemos todos los objetos grabados, sin el uso de XML, librerías externas, frameworks, ni nada de nada. Pero, obviamente, este sistema, tiene muchas desventajas. Una de ellas, y de las más importantes, no es <a href="http://es.wikipedia.org/wiki/ACID">ACID</a>. Si bien es cierto, que muchas veces, nosotros mismos nos calentamos demasiado la cabeza, en un sistema en producción no podemos permitirnos el lujo de tener errores.</p>
<p>Por ello, lo ideal es recurrir a bases de datos. Digamos que en BBDD podemos distinguir de manera muy superficial, entre Bases de Datos Relacionales (RDBMS), o Bases de Datos Orientadas a Objetos (OODB).</p>
<p>Las RDBMS (Bases de Datos Relacionales), como MySql, PostgreSQL etc.. son las BBDD <em>que todo el mundo conoce</em> con sus tablas, su filas, sus campos, etc&#8230; mientras que las bases de datos orientadas a objetos digamos que guardan los objetos en sí. Obviamente, como programadores Smalltalk que somos, y citando a &#8220;Programadores matando un dragón&#8221;&#8230;</p>
<blockquote><p><strong>Smalltalk</strong> - Llega, analiza al dragón y a la princesa, se da la vuelta y se vá: ellos son muy inferiores</p></blockquote>
<p>&#8230; no vamos a rebajarnos a usar <a href="http://es.wikipedia.org/wiki/SQL">SQL</a> ( :P ), si no lo que queremos, es trabajar directamente con nuestros objetos, por lo que necesitamos un framework de <a href="http://es.wikipedia.org/wiki/Mapeo_objeto-relacional">mapeo objeto relacional</a> (ORM).</p>
<p>Por ello, aquí, os muestro una lista de distintas opciones que he ido recolectando y que quiero ojear. Poco a poco detallaré. Algunos paquetes, son <em>multidialecto</em> (como el caso de GLORP), pero sólo me centraré en los casos de Squeak, así, como no comentaré el acceso directo a las BBDD sin pasar por ORM.</p>
<ul>
<li>GOODS: OODB desarrollada en C.</li>
<li>Omnibase: OODB desarrollada en Smalltalk</li>
<li>Magma: OODB desarrollada en Squeak</li>
<li>GLORP+SqueakDBX</li>
<li>GLORP+PostgreSQL</li>
<li>Gemstone: (Siempre y cuando funcione en arquitectura 32bits)</li>
<li>Cassandra?</li>
</ul>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="Smalltalk y persistencia" url="http://www.lordzealon.com/?p=128"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2009/02/09/smalltalk-y-persistencia/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Squeak 4 se construirá sobre Spoon</title>
		<link>http://www.lordzealon.com/2008/07/02/squeak-4-se-construira-sobre-spoon/</link>
		<comments>http://www.lordzealon.com/2008/07/02/squeak-4-se-construira-sobre-spoon/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 09:59:15 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=102</guid>
		<description><![CDATA[Según puedo leer en los últimos mails de Squeak-Dev, al parecer, el Squeak Board, ha decidido que Squeak 4 estará basado en Spoon, para conseguir un entorno totalmente modular.
Spoon, según la definición que dá Craig Latta en su web (ya que no he encontrado nada en el Swiki oficial), 
&#8220;Spoon, es un sistema de programación [...]]]></description>
			<content:encoded><![CDATA[<p>Según puedo leer en los últimos mails de <a href="http://lists.squeakfoundation.org/mailman/listinfo/squeak-dev">Squeak-Dev</a>, al parecer, el Squeak Board, ha decidido que Squeak 4 estará basado en <a href="http://netjam.org/spoon/">Spoon</a>, para conseguir un entorno totalmente modular.</p>
<p>Spoon, según la definición que dá <a href="http://netjam.org/">Craig Latta</a> en su web (ya que no he encontrado nada en el <a href="http://wiki.squeak.org/squeak">Swiki oficial</a>), </p>
<blockquote><p>&#8220;Spoon, es un sistema de programación mínimo de Objetos, con nuevos enfoques a la organización, colaboración y despliegue&#8221;.</p></blockquote>
<p>Supongo, pues todavía no han dado muchas más noticias, éste sistema, junto a los <a href="http://wiki.squeak.org/squeak/6001">DeltaStreams</a>, o <a href="http://wiki.squeak.org/squeak/674">ChangeSets</a>, o <a href="http://installer.pbwiki.com/">Installer scripts</a>, o/y mezcla de todos y demás parafernalias, nos montaríamos, partiendo de una imágen mínima, nuestro entorno.</p>
<p>A ver que se va cociendo en los próximos días.</p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="Squeak 4 se construirá sobre Spoon" url="http://www.lordzealon.com/?p=102"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/07/02/squeak-4-se-construira-sobre-spoon/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Regreso al futuro de Smalltalk</title>
		<link>http://www.lordzealon.com/2008/06/26/regreso-al-futuro-de-smalltalk/</link>
		<comments>http://www.lordzealon.com/2008/06/26/regreso-al-futuro-de-smalltalk/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 13:20:23 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=101</guid>
		<description><![CDATA[A través de PlanetSmalltalk, leo un post de Rob Vens, donde habla un poco de los inicios de la concepción de Smalltalk.
Es una pequeña entrada interesante de leer, donde como conclusión, y de acuerdo con él, podríamos decir que éste, es el año de Smalltalk, el año de reinventar el futuro.
No dejéis de echarle una [...]]]></description>
			<content:encoded><![CDATA[<p>A través de <a href="http://planet.smalltalk.org/">PlanetSmalltalk</a>, leo <a href="http://www.robvens.nl/lang-en/blog/blog-overzicht/1-blog/88-back-to-the-future-for-smalltalk">un post de Rob Vens</a>, donde habla un poco de los inicios de la concepción de Smalltalk.</p>
<p>Es una pequeña entrada interesante de leer, donde como conclusión, y de acuerdo con él, podríamos decir que éste, es el año de Smalltalk, el año de reinventar el futuro.</p>
<p>No dejéis de echarle una ojeada.</p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="Regreso al futuro de Smalltalk" url="http://www.lordzealon.com/?p=101"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/06/26/regreso-al-futuro-de-smalltalk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pegando código desde Squeak al blog</title>
		<link>http://www.lordzealon.com/2008/06/23/pegando-codigo-desde-squeak-al-blog/</link>
		<comments>http://www.lordzealon.com/2008/06/23/pegando-codigo-desde-squeak-al-blog/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 11:03:58 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=100</guid>
		<description><![CDATA[La verdad, llevo varias semanas dándole vueltas buscando un plugin para poder pegar código smalltalk.
Vueltas y más vueltas, cuando la solución, la tenía ahí delante, Squeak mismo me la proporciona.

Para poner en antecedentes a aquellos que se incorporen recientemente al blog, desde hace bastante tiempo, llevo buscando un plugin que me permitiese mostrar código coloreado [...]]]></description>
			<content:encoded><![CDATA[<p>La verdad, llevo varias semanas dándole vueltas buscando un plugin para poder pegar código smalltalk.</p>
<p>Vueltas y más vueltas, cuando la solución, la tenía ahí delante, Squeak mismo me la proporciona.<br />
<span id="more-100"></span><br />
Para poner en antecedentes a aquellos que se incorporen recientemente al blog, desde hace bastante tiempo, llevo buscando un plugin que me permitiese mostrar código coloreado en el blog, y por supuesto, indentado. Probé distintos plugins, como WP-CodeBox, CodeColorer, y demás, pero, o no me hacían el retorno de carro, o mostraban bloques sin sentido donde se veía de todo menos el código.</p>
<p>Hoy, retomando InciGest para ver por donde lo dejé (ya que tuve un pequeño problema estúpido y no me dejaba grabar el paquete con monticello, y he preferido no seguir modificando), me he dado cuenta de una opción que nos ofrece el menú contextual de Squeak. Se llama Copy HTML.</p>
<p>Es decir, que los trozos de código que veo, los puedo copiar directamente como HTML, y pegarlos aquí al tuntun, y me hace un pegado perfecto (además del coloreado).</p>
<p>Por ejemplo, el método que muestra las compañías en InciGest:<br />
IncigestApp>>viewMain<br />
<b>viewMain</b><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#7F7F7F">|</font><font color="#000000"> </font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#7F7F7F">|</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><b>:=</b><font color="#000000"> </font><font color="#000000"><b>WebElement</font></b><font color="#000000"> </font><font color="#00007F">new</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">addTextH1:</font><font color="#000000"> </font><font color="#7F007F">&#8216;Company data &#8216;</font><font color="#000000"> </font><font color="#00007F">,</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">observee</font><font color="#000000"> </font><font color="#00007F">companyName</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">add:</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">hierarchyLinks</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">addBreak</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">addBreak</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">table</font><font color="#000000"> </font><font color="#00007F">class:</font><font color="#000000"> </font><font color="#00007F"><b>#webGrid</font></b><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">cell</font><font color="#000000"> </font><font color="#00007F">addText:</font><font color="#000000"> </font><font color="#7F007F">&#8216;C.I.F.: &#8216;</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newCell</font><font color="#000000"> </font><font color="#00007F">addTextBold:</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">observee</font><font color="#000000"> </font><font color="#00007F">cif</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newRow</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">cell</font><font color="#000000"> </font><font color="#00007F">addText:</font><font color="#000000"> </font><font color="#7F007F">&#8216;Address: &#8216;</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newCell</font><font color="#000000"> </font><font color="#00007F">addTextBold:</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">observee</font><font color="#000000"> </font><font color="#00007F">address</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newRow</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">cell</font><font color="#000000"> </font><font color="#00007F">addText:</font><font color="#000000"> </font><font color="#7F007F">&#8216;City: &#8216;</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#6B6B6B"><i>e</font></i><font color="#000000"> </font><font color="#00007F">newCell</font><font color="#000000"> </font><font color="#00007F">addTextBold:</font><font color="#000000"> </font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">observee</font><font color="#000000"> </font><font color="#00007F">city</font><font color="#000000">.</font><font color="#000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#7F0000"><b>self</font></b><font color="#000000"> </font><font color="#00007F">add:</font><font color="#000000"> </font><font color="#6B6B6B"><i>e</font></i></p>
<p>Si bien no es la manera más elegante, funciona! y a la perfección.</p>
<p>Ahora sólo queda tomar aire, y re-pegar todo el código (al menos el del tutorial de Aida), con este nuevo sistema.</p>
<p>Madre mía, anda que no le he dado vueltas&#8230;.y lo tenía ahí delante&#8230;..</p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="Pegando código desde Squeak al blog" url="http://www.lordzealon.com/?p=100"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/06/23/pegando-codigo-desde-squeak-al-blog/feed/</wfw:commentRss>
		</item>
		<item>
		<title>InciGest: Software de Gestión de Incidencias</title>
		<link>http://www.lordzealon.com/2008/06/05/incigest-software-de-gestion-de-incidencias/</link>
		<comments>http://www.lordzealon.com/2008/06/05/incigest-software-de-gestion-de-incidencias/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 21:21:08 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<category><![CDATA[Squeak]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=94</guid>
		<description><![CDATA[Actualmente, estoy desarrollando una pequeña aplicación para controlar las incidencias que realizamos a nuestros clientes.
Es una pequeña web, sencilla, y con 4 cosillas de momento, pero gracias a las facilidades que nos ofrece Smalltalk, podríamos ampliarlo fácilmente.
De momento, para los curiosos, quiero compartir como está diseñada. No entraremos en sí el modelo es bueno o [...]]]></description>
			<content:encoded><![CDATA[<p>Actualmente, estoy desarrollando una pequeña aplicación para controlar las incidencias que realizamos a nuestros clientes.</p>
<p>Es una pequeña web, sencilla, y con 4 cosillas de momento, pero gracias a las facilidades que nos ofrece Smalltalk, podríamos ampliarlo fácilmente.</p>
<p>De momento, para los curiosos, quiero compartir como está diseñada. No entraremos en sí el modelo es bueno o malo, es algo que estoy haciendo para aprender el framework <a href="http://www.aidaweb.si">Aida/Web</a> a la par de Smalltalk, y me estoy basando sobre todo en el tutorial que ya traduje, y que que podéis mirar <a href="http://www.lordzealon.com/aidaweb-tutorial/">aquí</a>. <span id="more-94"></span></p>
<p><strong>Poniendo en antecedentes</strong><br />
La función de la aplicación, es, que los técnicos registren las incidencias que se realizan a los clientes de la empresa. Actualmente, el modelo está pensado con idea que distintas empresas compartan la misma aplicación, pero no olvidar, que es una simple web que se ha hecho con métodos didácticos.</p>
<p><strong>Comenzando</strong><br />
El proyecto lo he dividido en 3 categorías.<br />
<strong>InciGest-Aida:</strong> Contiene los objetos &#8220;Aida&#8221; para su representación web.<br />
<strong>InciGest-Core:</strong> Contiene el modelo principal del sistema.<br />
<strong>InciGest-Test:</strong> Contiene los test de los objetos.</p>
<p>:InciGest-Core:<br />
IGObjeto: Ésta, es una clase abstracta, hereda directamente de Object, y su función, es servir como capa entre Object y todos los objetos de la aplicación, por si se necesitase añadir algo común a todos.</p>
<p>InciGest: Es el manejador de la aplicación. Es un singleton, y es el encargado de realizar las tareas principales del sistema.</p>
<p>IGEmpresa: Las instancias de esta clase, representan cada una de las empresas dadas de alta en  sistema.</p>
<p>De momento existen más objetos, pero iré diciéndolos según avancemos en el proyecto, y vayamos usándolos. Mañana, como funcionan los objetos internamente y como vincularlos con el framework web Aida.</p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="InciGest: Software de Gestión de Incidencias" url="http://www.lordzealon.com/?p=94"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/06/05/incigest-software-de-gestion-de-incidencias/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GNU Smalltalk II</title>
		<link>http://www.lordzealon.com/2008/06/02/gnu-smalltalk-ii/</link>
		<comments>http://www.lordzealon.com/2008/06/02/gnu-smalltalk-ii/#comments</comments>
		<pubDate>Mon, 02 Jun 2008 09:25:22 +0000</pubDate>
		<dc:creator>glpunzi</dc:creator>
		
		<category><![CDATA[Smalltalk]]></category>

		<guid isPermaLink="false">http://www.lordzealon.com/?p=93</guid>
		<description><![CDATA[A raíz de mi anterior entrada, un tal Pablo se puso en contacto conmigo, interesado en obtener más información sobre GST.
Intentaré explicar un poco mejor lo que ya dije.
GNU Smalltalk, es una implementación de Smalltalk concebida para funcionar en modo scripting.
Cuando ejecutamos &#8216;gst&#8217;, carga en memoria una imágen base sobre la que trabajar con los [...]]]></description>
			<content:encoded><![CDATA[<p>A raíz de mi anterior <a href="http://www.lordzealon.com/2008/05/31/gnu-smalltalk/">entrada</a>, un tal Pablo se puso en contacto conmigo, interesado en obtener más información sobre <acronym title="GNU Smalltalk">GST</acronym>.</p>
<p>Intentaré explicar un poco mejor lo que ya dije.<span id="more-93"></span></p>
<p>GNU Smalltalk, es una implementación de Smalltalk concebida para funcionar en modo scripting.</p>
<p>Cuando ejecutamos &#8216;gst&#8217;, carga en memoria una imágen base sobre la que trabajar con los Objetos básicos para poder comenzar a hacer algo, y nos ofrece una shell interactiva, como la que puede ofrecernos <a href="http://www.python.org">Python</a>, o <a href="http://www.ruby-lang.org/es/">Ruby</a>, etc&#8230;.</p>
<p>A partir de aquí, podemos, desde esta shell, crear nuevas clases, instanciarlas etc.. Digamos, que sería un workspace en linea de comandos y sin nada más.</p>
<p>Ahora, que esté concebido como scripting, no implica que sólo funcione así. Este concepto se escapa un poco de la filosofía Smalltalk, ya que éste es más que sólo un lenguaje de programación. Una de las cosas más importantes de Smalltalk, es su <em>entorno</em>. En el mundo smalltalk, entendemos como <em>entorno</em>, un &#8220;mundo&#8221; donde los objetos conviven y se envían mensajes los unos a los otros. Este &#8220;mundo&#8221;, también es un objeto, como todo en Smalltalk.</p>
<p>En el caso de <a href="http://www.squeak.org">Squeak</a>, cuando lo iniciamos, éste, levanta todo el sistema de Objetos, incluido su sistema <em>visual</em>. Desde ese entorno, es desde donde accedemos a las poderosas herramientas que Smalltalk nos provee, como los distintos <em>Browsers </em> para poder navegar por los objetos del sistema,  los inspectores, el catálogo online de paquetes Squeakmap o Universes, el poderoso depurador integrado, la interfaz para SUnit, y un largo etcétera que hace el desarrollo de Smalltalk, distinto a todo lo demás.</p>
<p><strong>¿Pero entonces, en qué se distingue GST de Squeak?</strong><br />
Como ya he dicho, la concepción de GST, fué proveer de un smalltalk de scripting. Un smalltalk al que le pasamos código incrustado en un archivo, y éste lo evalúa como pueda hacer Python, pero realmente, no hace las cosas muy distintas a como las hace Squeak.</p>
<p>En Squeak, cuando abrimos la imágen, en ésta, ya está por defecto todas las herramientas &#8220;visuales&#8221; a nuestro alcance, puesto como ya he dicho, sin ellas, Smalltalk no es más que un simple lenguaje de programación y no tiene <em>nada especial</em>. En GST, la imágen base, sólo levanta los objetos básicos y el sistema que permite que puedan enviarse mensajes los unos a los otros, y no levanta por defecto ningún subsistema visual, ya que éste, es un paquete aparte. En cambio, con un script, podríamos cargar Blox (la parte <em>visual</em> de GST), Swazzo, Seaside y dependencias, y grabar ese estado de la memoria en un archivo de <em>imágen</em>, para que al volver a ejecutar, todo estuviese cargado de igual manera que hace Squeak.</p>
<p>De hecho, el script Browser.st, lo único que hace es lo siguiente.</p>
<blockquote><p>Siento que el código no esté indentado ni coloreado, pero estoy teniendo problemas con el plugin de wordpress que hace ésto</p></blockquote>
<p>(Smalltalk includesKey: #BLOX) ifFalse: [<br />
    PackageLoader fileInPackage: 'Browser'.<br />
    ObjectMemory snapshot<br />
]!</p>
<p>(Smalltalk includesKey: #BLOX)<br />
    ifFalse: [<br />
        stdout nextPutAll: 'BLOX not loaded, is Tcl/Tk installed?'; nl<br />
    ]<br />
    ifTrue: [<br />
        stdout nextPutAll: 'Starting window environment...'; nl.<br />
        BLOX.BLOXBrowser.BrowserMain new initialize<br />
    ]!</p>
<p>ObjectMemory quit!</p>
<p>Si miráis las primeras líneas, comprueba si Blox ya está cargado, y si no, carga el paquete Browser para que levante el sistema, y lo graba como imágen. Si ya existe, entonces carga el Browser principal. Es decir, la parte visual de GST existe, y si ésto lo grabásemos no habría diferencia con Squeak (menuda herejía acabo de soltar), salvo la más importante de todas.</p>
<p>Repidiéndome hasta la saciedad, lo más importante de un sistema Smalltalk es su <em>entorno</em>. Y el problema de GST, es que su <em>entorno</em> está muy muy verde. Apenas contiene un par de Browsers, éstos no funcionan al 100% como deberían, y encima en TCL/TK. Faltan muchas herramientas como interfaz para SUnit, o más importante aún, como dice mi querido amigo Notxor, mejorar el <em>debugger</em>, que es una de las herramientas más importantes en Smalltalk. Ésto obliga a que practicamente, tengas que desarrollar apoyado en un simple editor de texto (y los que conozcan smalltalk, por muy potente que sea un editor, saben porqué digo &#8220;simple&#8221;), y trabajar &#8220;a pelo&#8221;, y de ésta manera, pierdes toda la potencia que Smalltalk puede ofrecer, pero Roma, no se construyó en un día.</p>
<p>Si es cierto que como dije, existen muchos paquetes de acceso a Datos, para trabajar a través de la red, está portado el servidor web Swazzo y el framework web Seaside, pero repito, volviendo a lo dicho, sin las herramientas básicas <em>&#8220;smalltalkrianas&#8221;</em>, todo ésto, en mi humilde opinión, no sirve para nada.</p>
<p>No quiero decir con ésto que GST no sirva para nada, todo lo contrario. De los pocos días que llevo mirando GST, basta que se terminase y mejorase un poco el Browser, para que ya se pudiese trabajar directamente sobre él sin depender de un editor, y a partir de ahí, hacer y mejorar todo lo demás, sería &#8220;coser y cantar&#8221;. Pero se necesita ayuda (ya dije ésto antes no? :D )</p>
<p>Paolo, además, comentó que se podría portar Morphic sobre SDL para usarlo como base en la parte <em>visual</em> de GST, pero como ya comenté en mi anterior entrada, para esto, hace falta gente que colabore en el proyecto (esto también lo dije no? :D )</p>
<script type="text/javascript" class="owbutton" src="http://www.onlywire.com/button" title="GNU Smalltalk II" url="http://www.lordzealon.com/?p=93"></script>]]></content:encoded>
			<wfw:commentRss>http://www.lordzealon.com/2008/06/02/gnu-smalltalk-ii/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
