Administración del Conocimiento – UML Simulation

Dolphin Smalltalk 7 is open source incluyendo la Máquina Virtual

Posted in Aplicaciones, POO by smalltalkuy on febrero 19, 2016
Dolphin Smalltalk

Dolphin Smalltalk

Excelente NOTICIA, Dolphin Smalltalk es open source (http://www.object-arts.com/) incluyendo el código de la Máquina Virtual.

El código esta en:

https://github.com/dolphinsmalltalk

Se pueden bajar Dolphin Smalltalk 7 con los fuentes o simplemente bajarse el instalador.

https://github.com/dolphinsmalltalk/Dolphin

El código de la Máquina Virtual esta en (para compilar la VM se necesita Visual Studio 2015 -community-):

https://github.com/dolphinsmalltalk/DolphinVM

Si simplemente quieren usar o probar Dolphin Smalltalk no hay necesidad de bajarse la VM el instalador trae todo empaquetado para instalar y comenzar a usar. El código de la VM es para quienes constribuimos a mejorar esta excelente herramienta.

Por cualquier duda pueden preguntar en el news groups en:

https://groups.google.com/forum/#!forum/comp.lang.smalltalk.dolphin

 

Anuncios

AST para detectar código malicioso

Posted in OODBMS - Base de Objetos, POO by smalltalkuy on mayo 21, 2015

Problema: en la importación de archivos XPDL generados por Bizagi se importan también reglas de negocio generalmente asociadas a gateways:

bifurCondiciones de bifuracación pueden ser:

– monto > 10000

– edad > 18 y monto > 10000

– En un bloque de Smalltak es:  [:form | form edad > 18 and:[form amount > 10000]]

La implementación y ejecución de estas reglas es bastante sencilla, se crea un BlockClosure y se evalua:

block := self evaluate: ‘[:form | form edad > 18 and:[form amount > 1000]]’.

Aquí se crea un bloque de código que se puede evaluar N veces, en este caso el bloque tiene solamente un argumento “form“. Para evaluar el bloque:

block value: aFormObject.

“en este caso ejecuta –> aFormObject edad > 18 and:[aFormObject amount > 1000]”

PROBLEMA

El Problema es la injección de código malicioso dentro de Bizagi. Si en lugar de la regla previamente presentada se pone la siguiente condición:

‘[:form | MySystem removeAllProcesses]’

En este caso cuando se evalue la condición –> se eliminarán todas las instancias de procesos (un desastre !!!).

SOLUCION

La solución es usar un AST (abstract syntax tree) para evitar este tipo de situaciones.

Si bien en GemStone/S se puede usar otras opciones como la clase GsObjectSecurityPolicy voy a analizar solamente el uso de un AST. Dentro del AST usaremos solamente los mensajes más basicos y no usaremos el RBParseTreeSearcher, que es para hacer búsquedas mucho más complejas (ver Secrets of the Rewriter Tool).

parser := RBParser parseExpression: ‘[:form | MySystem removeAllProcesses].

atomicMessages := parser allChildren select: [:each | each isMessage and: [each receiver isVariable]].

argumentName := parser arguments last name.

(atomicMessages select: [:each | each receiver name ~= argumentName])
do: [:each | self addBlockWarning: ‘Message is sent to object [‘, each receiver name, ‘] that is NOT the argument of the Block.’ ].

Estas simples lineas de código evitan que dentro del bloque se envie mensajes a cualquier objeto o clase.

select: [:each | each isMessage and: [each receiver isVariable]].

De todos los nodos del código selecciona los nodos que son mensajes (isMessage) y además el receptor del mensaje (receiver) es del tipo variable (isVariable). Así obtenemos los objetos a los que se le envián mensajes.

(atomicMessages select: [:each | each receiver name ~= argumentName])

Aquí comparamos los objetos obtenidos anteriormente con el nombre del argumento del bloque (form). Si algún receptor de mensaje difiere del argumento del bloque –> estamos en problemas.

Para el caso:

‘[:form | MySystem removeAllProcesses]

Uno de los receptores de mensaje es ‘MySystem‘ y como difiere de form –> salta el error/advertencia.

Hay otros controles que se hacen pero el post sería muy largo…

Usando JADE en Producción

Posted in Aplicaciones, OODBMS - Base de Objetos, POO by smalltalkuy on marzo 18, 2014

La siguiente figura muestra de forma simplificada como queda la instalación de un sistema con GemStone/S 64 bits: 

(http://gemtalksystems.com/(http://seaside.gemtalksystems.com/).

Los clientes Web se contectan al servidor GemStone/S por internet, de esta forma dan usa a la aplicación web.

Al mismo tiempo que los usuarios usan el sistema, existe la posibilidad que desarrolladores se conecten on-line al sistema para hacer modificaciones (paso 1) que una vez “comiteadas” (luego del #commit) quedan disponibles a los usuarios finales (paso 2).

No hay limitaciones en los tipos de cambio a realizar: cambios en la estructura de objetos (o clases), migraciones de objetos (datos), cambios de comportamiento de la aplicación, cualquier cambio es posible.

Alternative development environment

Alternative development environment

 

Importacion de Maquinas de Estado en U-Fabrik

Posted in Executable UML, GUI, POO, UML, Web by smalltalkuy on agosto 17, 2013

El U-Fabrik ahora soporta la importación de Máquinas de Estado UML. Básicamente una máquina de estados consta de 3 partes que serán representadas por 3 clases diferentes dentro de U-Fabrik. Estas 3 partes son: el estado, la transición (estado inicial y estado final) y la máquina misma. En la siguiente imagen, la máquina de estado es representada por toda la imagen, los estados son: Creada, Enviada, Recibida, EnEstudio, EnProceso, Rechazada, Respondida. Las transiciones son: crear, enviarCreada, recibirEnviada, estudiarRecibida, aceptarRecibida, aceptarEstudiada, rechazarEstudiada, responderProceso, finalizarRechazada y finalizarRespondida.

Image

Cuando importamos la máquina de esatdo deberemos indicar que clase UML representa cada parte del estado. En nuestro caso como muestra la figura correspondiente son: Estado, DefinicionTransicion, y DefinicionProceso.

DefinicionProceso es una colección de DefinicionTransicion y cada DefinicionTransicion tiene un estado actual y estado siguiente.

Image

Cuando U-Fabrik importa el diagrama de estado relaciona la máquina de estados con estas clases. Y crea una instancia de DefiniciónProceso por cada diagrama en el archivo XML. Cada instancia de DefiniciónProceso a su vez tiene una colección de instancias de DefinicionTransicion que representan las transiciones. Y cada DefinicionTransicion tiene dos variables del tipo Estado (actual y siguiente). Mientras las clases UML tengan esta estructura cualquiera puede representar los elementos de la máquina de estados.

Este framework de tres clases puede ser asociado a otras clases del modelo para dar sentido a la máquina de estados como muestra la siguiente figura:

Image

Como se ve en la figura anterior las clases que representan TODAS las máquinas de estado están integradas al modelo clases. La clase Rol asociada a DefinicionTransicion indica que roles pueden accionar esa transición. La clase Transicion representa un DefinicionTransicion en el tiempo. Y la clase Proceso son todos los procesos del sistema y cada Proceso sigue una ruta determinada por DefinicionProceso. A su vez, cada Proceso esta compuesto por una colección de Transiciones. Y cada Proceso es el proceso de una Solicitud que ha ingresado al sistema.

De esta forma U-Fabrik integra los diagramas de estado UML con los diagramas de clases UML.

Proceso

Image

Transiciones del Proceso

Image

Una Transición del Proceso

Image

Mapeo de usuarios Web con usuarios UML

Posted in Aplicaciones, Executable UML, GUI, POO, UML, UML Ejecutable by smalltalkuy on febrero 19, 2013

Para poder mapear los usuarios del UML Almighty Web Server con los usuarios UML debemos seguir los siguientes pasos:

1. Crear los usuarios de mi aplicación UML application. Será algo como:security wokspace 01

Recordar que la clase User debe ser la Login Manager Class.

2. Ahora tenemos que mapear (o replicar) el User “John” en el UML Almighty Web Server.
2.1. Logerse con User: admin password: password.
2.2. Ir a  Security Settings
security 01

3. En los Security Settings agregar un nuevo usuario New User (John), llenar datos y presionar Save
security 02

security 03
5. Ir a los Access Rights del usuario John User
security 04
6. Ahora hay que seleccionar la aplicación UMLInstanceApp que es el Servidor Web para el UML Almighty
security 05
7. Ahora estamos en la aplicación UMLInstanceApp que maneja los permisos de John
security 06
8. El último paso es hacer Click en “Yes” para habilitar todos los permisos de John. El usuario creado en el paso step 1.
security 07

Principio de “Conexión Inmediata” en la Programación

Posted in Aplicaciones, GUI, POO by smalltalkuy on marzo 24, 2012

“Conexión Inmediata” en la Programación

http://instanceof.me/post/18455380137/inventing-on-principle-by-bret-victor

El principio de Conexion Inmediata es una redefinición de una principio que data de los ’60, el Principio Reactivo.

Principio Reactivo: Cada componente accesible al usuario debería ser capaz de presentarse de una manera entendible para ser observado y manipulado.

Esto es poder acceder al componente e interactuar con el en tiempo real, recibiendo respuestas en tiempo real.

Este principio reactivo o conexión inmediata es soportado por el Smalltalk y también por UML Almighty .

Sin una demostración cara a cara es difícil mostrar las ventajas de estos principios  principio reactivo/conexión inmediata, y casi imposible plasmar esto en un blog, pero por suerte Bret Victor ha realizado una excelente demostración de su conexión inmediata.

La charla esta en ingles (lamentablemente) y dura 55 minutos, pero todo PROGRAMADOR debe ver esta charla, es excelente !

Muestra claramente como la conexión inmediata (o principio reactivo) afecta la capacidad de CREACIÓN de un programador.

http://instanceof.me/post/18455380137/inventing-on-principle-by-bret-victor

Ventajas de la Reflexión en Programación – Meta-programación Simple

Posted in POO by smalltalkuy on enero 26, 2012

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 200 métodos hay que crear otro método derivado que replique un mismo patrón, por lo hay que crear 200 nuevos métodos. Es un trabajo que tedioso que lleva tiempo y es propenso a errores.  Aquí es donde nos “salva” la REFLEXIÓN y la META PROGRAMACIÓN, en este caso es bastante sencilla.

Como quedaría el método luego de aplicar el patrón a mano:

Habría que aplicar el mismo patrón para otros 199 metodos y así sucesivamente. Con este nuevo método #changeRequestsNew tendría una instancia con la descripción que devuelve el método original (#changeRequests) que es solamente texto, que es justamente lo que quiero para este método y el resto.

Patrón

1. nombreNuevoMetodo := Nombre del método actual  + ‘New’. En este caso: changeRequests‘New’ = changeRequestsNew

2. El argumento que se pasa al mensaje #name:  debe ser el nombre del método actual, pero separado por un espacio y cada palabra en mayúsculas.  En este caso es:

name: ‘Change Requests’ – recordar el nombre del método actual (self) es #changeRequests

3. El argumento que se pasa al mensaje #description:  debe  ser una llamada al método actual que devuelve un String. En este caso es:

description: self changeRequests. – la descripción queda con el String del método original.

Este patrón debe aplicarse a 199 métodos más…

Solución

La solución me tomo unos 5 minutos ! y consiste en implementar un método en la clase CompiledMethod. En Smalltalk cada vez que creo un método se crea una instancia de esta clase CompiledMethod, y esta clase es editable y modificable como cualquier otra.

La variable [selector] del método actual (#changeRequests) se concatena con ‘New‘ para formar el selector (nombre) del nuevo método a ser creado.  Este nombre se almacena en la variable temporal [newSelector] como un símbolo #asSymbol (es una clase especial de String).

Ahora en la variable temporal [pmpName] formo el nombre según las reglas. La primera letra la paso a mayúscula (first asUppercase asString) y luego proceso el resto.

Ahora proceso todo menos la primera letra (c) [hangeRequests]. 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 temporal [pmpName].

Ahora creo un template para compilar el método en la variable [newMethod]. Uso el nombre del nuevo método y uso el selector actual (nombre actual) para crear la llamada (description: self’, selector,). Y por último compilo el template [newMethod] en la clase del método actual (methodClass compile: newMethod).

Ahora solamente cada vez que quiero crear uno de estos 200 métodos simplemente le envio el mensaje #compileMethodStringForPMPNewDocument y me crea el derivado.

En un principio pensé hacer esto con el Code Rewriter pero después opte por implementar un método en CompiledMethod.

El Code Rewriter es una herramienta muy poderosa que sirve para hacer transformaciones masivas de código de forma segura, basicamente suplante un AST por otro AST equivalente (mismo comportamiento) pero más óptimo.

UML Almighty Ciclo: Editar – Debug – Editar – Debug SIN detener el Sistema

Posted in Executable UML, POO, UML, UML Ejecutable by smalltalkuy on diciembre 1, 2011

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 original):

… También Gilad Bracha (creador del lenguaje de Google Dart) está prometiendo ciclos de edición-depuración-edición-depuración al estilo Smalltalk (sin detener el programa). Si has trabajado alguna vez con Visual Works Smalltalk u otro ambiente Smalltalk que soporte esta funcionalidad, tendrás que estar de acuerdo en que otro ambiente de desarrollo incluyendo los de la corriente principal –mainstream– (C, C++, Java, C#, etc) se siente como de la edad de piedra.

Poder crear un sistema agregando/modificando/moviendo comportamiento y sin detener el sistema es una ventaja enorme que puede ser comprendida mediante la experimentación con cualquiera de estos sistemas.

En el UML Almighty toda la configuración del comportamiento de la simulación asi como el interfase (GUI) del prototipo se puede hacer on the fly, es decir, con el sistema andando, el sistema nunca se detiene, esta forma de trabajo se asemeja a trabajar con un sistema biológico, que siempre esta en marcha.

Conferencia Smalltalk 2011 en Argentina – Update

Posted in OODBMS - Base de Objetos, POO, Traits by smalltalkuy on octubre 22, 2011

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? (http://www.fast.org.ar/smalltalks2011)
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 5 minutos, lee este mail, te puedo asegurar que no te vas a arrepentir y seguramente querrás venir al congreso 🙂

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 Gilad Bracha. ¿Quién es Gilad Bracha?, por ahí te suena el nombre… bueno, te suena porque es uno de los que está detrás de desarrollo de Dart, el nuevo lenguaje de Google (http://www.dartlang.org/) ¿Y qué tiene que ver Smalltalk? Justamente Gilad Bracha fue uno de los desarrolladores de Strongtalk (http://www.strongtalk.org/), el Smalltalk más rápido en su época, que utiliza compilación adaptiva, Polimorphic Inline Caching (PIC), tipado de variables opcional, etc. Todas soluciones que ahora se están implementando en Dart. Este año nos visita uno de sus más íntimos colaboradores, Vassili Bykov, implementador del UI de Newspeak, el último lenguaje en el que estaba trabajando.

Pero no solo Smalltalk tiene algo que ver en lo que está sucediendo con Dart, sino también en Ruby… ¿escuchaste hablar de MagLev? (http://ruby.gemstone.com/) Es el servidor de objetos transaccionales y automáticamente persistibles para Ruby, ¿adiviná de dónde viene? MagLev es la implementación de Ruby corriendo sobre GemStone/S, un servidor de objetos transaccionales y persistibles para Smalltalk que tiene más de 25 años y que ahora VMWare compró por su gran potencial y solución como administrador de memoria transaccional para Java, si no lo sabías mirá http://www.springsource.com/products/data-management/gemfire65  ¿Qué tiene que ver con el congreso? que justamente viene al mismo Martin McClure, responsable de MagLev y Norman Green, arquitecto de GemStone! o sea, el que tiene la papa!! ¿Tenés dudas sobre las bases de objetos? ya sabés donde podés obtener las respuestas.

Pero por ahí a vos no te interesa nada de esto… 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. ¿Escuchaste hablar de GLASS? (http://seaside.gemstone.com/) Es la implementación de Seaside, un framework dinámico basado en continuations para aplicaciones web usando GemStone! (http://www.seaside.st/). O sea, desarrollas una aplicación web como si fuese una aplicación desktop y tenés gratis la transaccionabilidad y persistencia a nivel objetos… y lo que es mejor, sin base de datos relacionales!!! Si!!!!, no más hybernate, no más SQL, no más tablas, solo objetos!…. Por ahí te parece una locura, por ahí te parece que no tiene sentido… te aconsejo que no saques ninguna conclusión y no dejes de venir a escuchar a Dale Henrichs, el encargado de este producto quien nos contará todos los detalles del mismo y cómo influye en los desarrollos web.

¿Aún no te convencí? ok… dejame intentar un poquito más… ¿Conoces a Alan Kay? ¿Turing award, “padre de la computadora personal”, creador de Smalltalk? (http://en.wikipedia.org/wiki/Alan_Kay) No, no, no viene él, todavía :-),  pero vienen Ian Piumarta y Kim Rose, dos de los más íntimos colaboradores de Alan Kay en los proyectos que están llevando adelante en su fundación sobre lenguajes de programación mínimos como OMeta y ambientes de enseñanza como SqueakLand. (http://www.vpri.org/index.html). ¿Te interesa saber cómo usar la computadora para enseñar? Le vas a poder preguntar a Kim. Te interesa saber cómo implementar una buena VM, lo vas a tener a Ian cerquita para conversar.

Si aún estás leyendo y no fuiste al final de la página significa que aún no te convencí… hmmm, a ver qué te parece esto: MOOSE (http://www.moosetechnology.org), una plataforma para hacer análisis de tus programas, no importa si están escritos en Java, C++, C# o Smalltalk, te permite ver visualmente el diseño de tu sistema no usando esos diagramitas simples de UML sino por medio de gráficos especialmente preparados para reconocer rápidamente algunos errorcitos que por ahí tiene tu sistema :-). Tudor Girba, 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!

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á… si te interesa saber sobre los principales ambientes de desarrollo en Smalltalk tanto opensource como comerciales, tendrás la oportunidad de conversar con Markus Denker de Pharo (http://www.pharo-project.org/home)  y John O’Keefe, arquitecto de VASmalltalk (http://www.instantiations.com/)

¿Muchos temas relacionados con la industria no? ¿y qué hay acerca de investigación, aún se investiga algo en con Smalltalk? 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 Smalltalks es uno de ellos. Y no me quiero olvidar de la docencia universitaria… Smalltalk 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.

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 Smalltalk, una de las principales comunidades en el mundo de esta tecnología. Es esta comunidad que hace 5 años está organizando este congreso a todo pulmón y hace 3 años viene ganando de manera consecutiva el primer y tercer puesto del “Esug Technology Award”, premio a los mejores desarrollos hechos en Smalltalk a nivel mundial! y lo más interesante es que los ganadores son de distintas universidad de nuestro país como la UBA, la UAI y la UTN!
Y la comunidad no se limita a eso… ¿sabés que hay un Smalltalk argentino? ¿un Smalltalk desarrollado por un argentino y utilizado a nivel mundial? se llama Cuis y su desarrollador Juan Vuletich (http://www.jvuletich.org/Cuis/Index.html), quien además está llevando adelante el desarrollo de Morphic 3.0 y trabajó junto a Alan Kay desarrollando Squeak. ¿O sabías que el layer open source para comunicarse con base de datos relacionales desde Pharo o Squeak más usado también fue desarrollado por argentinos? o que el framework de serialización de objetos opensource Fuel también fue desarrollado por un argentino? Te suenan Mariano Martinez Peck, Guillermo Polito, Martín Dias, Esteban Lorenzano 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 VM de Smalltalk más rápida que hay, la de VisualWorks (http://www.cincomsmalltalk.com/main/products/visualworks/) y le podés preguntar cómo hizo para acelerar hasta cerca de un 70% el GC en el último año, y vas a poder escuchar una charla de un argentino que es smalltalkero hace más de 20 años… ¿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?… Esta gente es parte de esta gran comunidad y también participarán de este maravilloso evento…. este congreso no es solo importante por la gente que viene sino por la gente que ya está!

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á: http://www.fast.org.ar/smalltalks2011 Es gratis y te puedo asegurar que no te vas a arrepentir. Podes ver las charlas que se darán en:  http://www.fast.org.ar/smalltalks2011/talks

Este año se hace del 3 al 5 de Noviembre, en la Universidad de Quilmes. Y no está cerrada sólo al mundo de los objetos, este año Fidel (Pablo E. Martínez López), uno de los referentes argentinos de Programación Funcional, una comunidad que comparte que en definitiva somos todos desarrolladores, dará una charla sobre objetos! Mirá las reacciones que ya está provocando: http://vimeo.com/30529851

 

 

 

Conferencia 2011 de Smalltalk en Argentina

Posted in OODBMS - Base de Objetos, POO, Traits by smalltalkuy on octubre 20, 2011

Conferencia Smalltalk en Argentina

byte_smalltalk1

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’Keefe (IBM VisualAge), Marcus Denker (INRIA Lille-Nord Europe), Martin McClure (GemStone Systems), Dale Henrichs (GemStone Systems), James Foster (GemStone Systems), Norman Green (GemStone Systems).

Las Charlas

Análisis de un Diseño Basado en Traits sin Subclasificación – Diego Campodonico, por más info sobre TRAITS click aqui 

Customizando Pharo Smalltalk – Nicolas Paez

DBXTalk: actualización – Guillermo Polito, DBXTalk es un framework de mapeo Objetos-Base Relacional

Validación de Código Estático para Traits – Juan Sebastian Aizcorbe, por más info sobre TRAITS click aqui 

Mark and Compact Scavenger Garbage Collectior in Smalltalk – Javier Burroni

GemStone actualización y Hoja de Ruta – Norm Green

VA Smalltalk actualización del producto – John O’Keefe

GemStone/S para principiantes – Martin McClure,  más info sobre GemStone/S click aquí y aquí.

Fuel: Cluster de objetos serializados – Martin Dias

Simulated Annealing – Guillermo Amaral

Otro Traductor de Smalltalk a C/C++  – Ricardo Moran

Herramientas Web para GemStone/S (64 bits) – James Foster

Los 10 Mandamientos de TDD (test driven development) – Hernan Wilkinson

CUE es esto –  Dan Rozenfarb

Hablemos tODE – Dale Henrichs, tODE (the Object Development Environment)

Para atrapar a un ratón mejor – Ian Piumarta

Monstruos de la IT: ¿Qué ha hecho para la educación? – Kim Rose

Humane assessment with Moose – Tudor Girba

Construyendo Browsers con Glamour – Tudor Girba

Trayendo ideas BDD a Pharo Smalltalk – Nahuel Garbezza, BDD (Behaviour-driven development)

Pharo Smalltalk un año después – Marcus Denker

Investigación en RMOD – Marcus Denker

Smalltalk, C# y JavaScript – Angel J Lopez

IronSmalltalk – Todor Todorov

Construyendo tus propias imágenes (Smalltalk) con Pharo Smalltalk usando Metacello – Mariano Martinez Peck

Que aprendi enseñando Smalltalk y por que estoy tan contento con Smalltalk – Hernan Wilkinson

10 años de Diversión en Caesar System – Leandro Caniglia

GRID – Grid Reports Interactivly Designed – Carla Florencia Griggio

Visualizar la ejecución de Software para identificar anomalías – Juan Pablo Sandoval Alcocer