Hola gente!
Bien, durante esta maniana, implemente (usando TDD :-), algo que podria llamar Environment, es decir, para evitar colision de clases. Espero que se entienda el test https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/EnvironmentTests.st Comentarios? Dudas? Bienvenidos! Angel "Java" Lopez @ajlopez gh:ajlopez |
Hola gente!
Como lo mio es un apostolado ;-) ;-) termine la implementacion de Environments (no se como lo llaman en el ambiente smalltokero), para evitar colision de nombres en clases. https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/EnvironmentTests.st Esta algo inspirado en los import de Python y los require de Node.js Se puede manejar todo por codigo: - Crear un nuevo environment (namespace?) que sea hijo de Smalltalk - Crear un subenvironment de otro existente - Poner un environment existente como el actual - Desde cualquier environment, Smalltalk apunta siempre a lo mismo - Todo los subclass:... las definiciones de clases entonces quedan siempre en el environment actual (si no se hace nada, quedan como globales en Smalltalk) - Las variables 'globales' (no de clase, no de instancia) de los metodos de una clase, se resuelven en el environment que sea el actual en el momento de definir la clase - Hay syntax sugar, tipo Smalltalk.MyModule.MyClass es algo como (Smalltalk at: #MyModule) at: #MyClass - El environment actual es por Process (no hay Process en AjTalk, todavia, por abajo siguen siendo threads). Es decir, cambiar el environment actual en un Process (thread actual), no afecta a las definiciones de clases, resolucion de globales en otros Process (otros threads en ejecucion) Pendiente: - Lo que esta al final de ese test de arriba, como resolver un paquete a cargar (no se si es tiempo de implementarlo). - Serializar/Deserializar una imagen que tenga varios environments ademas del global Smalltalk - Manejar varios environments cuando hay Host y Hosted machine Nos leemos! Angel "Java" Lopez @ajlopez gh:ajlopez 2012/12/1 Angel Java Lopez <[hidden email]> > Hola gente! > > Bien, durante esta maniana, implemente (usando TDD :-), algo que podria > llamar Environment, es decir, para evitar colision de clases. > > Espero que se entienda el test > > > https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/EnvironmentTests.st > > Comentarios? Dudas? Bienvenidos! > > Angel "Java" Lopez > @ajlopez > gh:ajlopez > > |
> Hola gente!
> > > Como lo mio es un apostolado ;-) ;-) termine la implementacion de Environments > (no se como lo llaman en el ambiente smalltokero), para evitar colision de > nombres en clases. > > https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/Env > ironmentTests.st > > Esta algo inspirado en los import de Python y los require de Node.js > > Se puede manejar todo por codigo: > - Crear un nuevo environment (namespace?) que sea hijo de Smalltalk > - Crear un subenvironment de otro existente > - Poner un environment existente como el actual > - Desde cualquier environment, Smalltalk apunta siempre a lo mismo > - Todo los subclass:... las definiciones de clases entonces quedan siempre en > el environment actual (si no se hace nada, quedan como globales en Smalltalk) > - Las variables 'globales' (no de clase, no de instancia) de los metodos de > una clase, se resuelven en el environment que sea el actual en el momento de > definir la clase > - Hay syntax sugar, tipo Smalltalk.MyModule.MyClass es algo como (Smalltalk > at: #MyModule) at: #MyClass > - El environment actual es por Process (no hay Process en AjTalk, todavia, por > abajo siguen siendo threads). Es decir, cambiar el environment actual en un > Process (thread actual), no afecta a las definiciones de clases, resolucion de > globales en otros Process (otros threads en ejecucion) > > Pendiente: > > - Lo que esta al final de ese test de arriba, como resolver un paquete a > cargar (no se si es tiempo de implementarlo). > - Serializar/Deserializar una imagen que tenga varios environments ademas del > global Smalltalk > - Manejar varios environments cuando hay Host y Hosted machine > > Nos leemos! Hay un trabajo de German Leiva de un ESUG anterior. La implementacion que uso es la de Dan Ingalls de las imagenes viejas. Para serializar, uso los ReferenceStream, que dentro de las limitaciones logicas me sirven para exportar / importar archivos .obj entre Squeak/Pharo/Cuis. Hay un trabajo excelente de Mariano Martinez Peck y de un miembro de SqueakRos que no nombro porque no escribe. Busca Fuel en Pharo Estos chicos despreciaron mi sugerencia apoyada por Craig de nombrar Injector al cargador de estos objetos . Edgar |
Hola gente!
Edgar, gracias por la info. Si, lo de serializar lo tengo resuelto, solo tengo que ajustar una tuerca, cuando hay ahora mas de un Environment. Pero ya puedo serializar/deserializar objetos, desde el fin de semana pasado largo, aunque tengan bucles. Solo que asumi que habia un solo Environment. Escribo test, unas lineas mas de codigo, y sale con fritas ;-) Pero, le ven futuro a los Environments? Algo en contra? algun caso que lo dificulta? Supongo que hay varios Smalltalk que lo resolvieron de otras maneras. Hasta donde se, en Squeak y Pharo se prefiere que las clases de un paquete (se llama asi? como se llama a un Aida, Swazoo, Seaside? se lo llama un paquete?) tengan un prefijo de dos letras. Es asi? Y no tienen problemas igual? Como se hace un fileOut de todo lo que comienza con dos letras dadas, digamos WA, en Squeak/Pharo? (incluyendo supongo los metodos de otras clases, con categoria que comienza con "*WA" es asi?) Nos leemos! Angel "Java" Lopez @ajlopez gh:ajlopez 2012/12/1 Edgar J. De Cleene <[hidden email]> > ** > > > > Hola gente! > > > > > > Como lo mio es un apostolado ;-) ;-) termine la implementacion de > Environments > > (no se como lo llaman en el ambiente smalltokero), para evitar colision > de > > nombres en clases. > > > > > https://github.com/ajlopez/AjTalk/blob/master/Src/AjTalk.Tests/AssertTests/Env > > ironmentTests.st > > > > Esta algo inspirado en los import de Python y los require de Node.js > > > > Se puede manejar todo por codigo: > > - Crear un nuevo environment (namespace?) que sea hijo de Smalltalk > > - Crear un subenvironment de otro existente > > - Poner un environment existente como el actual > > - Desde cualquier environment, Smalltalk apunta siempre a lo mismo > > - Todo los subclass:... las definiciones de clases entonces quedan > siempre en > > el environment actual (si no se hace nada, quedan como globales en > Smalltalk) > > - Las variables 'globales' (no de clase, no de instancia) de los metodos > de > > una clase, se resuelven en el environment que sea el actual en el > momento de > > definir la clase > > - Hay syntax sugar, tipo Smalltalk.MyModule.MyClass es algo como > (Smalltalk > > at: #MyModule) at: #MyClass > > - El environment actual es por Process (no hay Process en AjTalk, > todavia, por > > abajo siguen siendo threads). Es decir, cambiar el environment actual en > un > > Process (thread actual), no afecta a las definiciones de clases, > resolucion de > > globales en otros Process (otros threads en ejecucion) > > > > Pendiente: > > > > - Lo que esta al final de ese test de arriba, como resolver un paquete a > > cargar (no se si es tiempo de implementarlo). > > - Serializar/Deserializar una imagen que tenga varios environments > ademas del > > global Smalltalk > > - Manejar varios environments cuando hay Host y Hosted machine > > > > Nos leemos! > > Hay un trabajo de German Leiva de un ESUG anterior. > La implementacion que uso es la de Dan Ingalls de las imagenes viejas. > Para serializar, uso los ReferenceStream, que dentro de las limitaciones > logicas me sirven para exportar / importar archivos .obj entre > Squeak/Pharo/Cuis. > Hay un trabajo excelente de Mariano Martinez Peck y de un miembro de > SqueakRos que no nombro porque no escribe. > Busca Fuel en Pharo > Estos chicos despreciaron mi sugerencia apoyada por Craig de nombrar > Injector al cargador de estos objetos . > > Edgar > > > |
> Pero, le ven futuro a los Environments? Algo en contra? algun caso que lo
> dificulta? Tener o no Enviroments promete ser una discusion similar a la de Traits en su momento. Solo que ahora es Napoleon el que ni quiere sentir hablar del tema > Supongo que hay varios Smalltalk que lo resolvieron de otras maneras. Justamente esto es lo que quiso dirigir James en el ESUG que te comento >> James Foster kindly sent me a link to a video German Leiva made at ESUG >> explaining how to use his GSOC project Environments. >> >> http://www.youtube.com/watch?v=n4I7fSVNX2A >> > > Hasta donde se, en Squeak y Pharo se prefiere que las clases de un paquete (se > llama asi? como se llama a un Aida, Swazoo, Seaside? se lo llama un paquete?) > tengan un prefijo de dos letras. Es asi? Y no tienen problemas igual? No tantos ..... > Como se hace un fileOut de todo lo que comienza con dos letras dadas, digamos > WA, en Squeak/Pharo? (incluyendo supongo los metodos de otras clases, con > categoria que comienza con "*WA" es asi?) Se agrupan las clases por categoria. Ejemplo HV *Extensions HV-Base HV-Builder HV-Canvas HV-Canvas-Tests HV-Examples HV-Extras-Swiki HV-Extras-TOCs HV-Tests HV-Web HV-XHTMLCanvas HV-XHTMLCanvas-Tests En *Extensions van todos los metodos de clases externas al paquete, prefijadas por * en las categorias de metodos Ej *HV-testing en HttpRequest *inst *HV-SBlog-RSS en TimeStamp *class Edgar |
Ah! Voy entendiendo... Interesante el video, hmmm, no recuerdo si hubo
alguna charla asi en alguna Smalltalks... bien. Edgar, me queda la duda, pero como hago un fileOut de todo lo que empieza, por ejemplo, con WA? Hasta ahora, a lo sumo pude dar "click derecho" fileout en alguna categoria desde el browser, pero nada mas. O sea, solo exporto una categoria, no todo lo que empieza con WA Hay forma de hacerlo en Squeak/Pharo? O es algo que cada uno implementa por su cuenta? (hmmm... Monticello hara algo de eso?) Jeje... ya puedo serializar imagenes con varios environments, using TDD, it was a piece of cake ;-) Angel "Java" Lopez @ajlopez gh:ajlopez 2012/12/1 Edgar J. De Cleene <[hidden email]> > ** > > > > Pero, le ven futuro a los Environments? Algo en contra? algun caso que lo > > dificulta? > > Tener o no Enviroments promete ser una discusion similar a la de Traits en > su momento. > > Solo que ahora es Napoleon el que ni quiere sentir hablar del tema > > > > Supongo que hay varios Smalltalk que lo resolvieron de otras maneras. > > Justamente esto es lo que quiso dirigir James en el ESUG que te comento > > >> James Foster kindly sent me a link to a video German Leiva made at ESUG > >> explaining how to use his GSOC project Environments. > >> > >> http://www.youtube.com/watch?v=n4I7fSVNX2A > > >> > > > > > Hasta donde se, en Squeak y Pharo se prefiere que las clases de un > paquete (se > > llama asi? como se llama a un Aida, Swazoo, Seaside? se lo llama un > paquete?) > > tengan un prefijo de dos letras. Es asi? Y no tienen problemas igual? > > No tantos ..... > > Como se hace un fileOut de todo lo que comienza con dos letras dadas, > digamos > > WA, en Squeak/Pharo? (incluyendo supongo los metodos de otras clases, con > > categoria que comienza con "*WA" es asi?) > > Se agrupan las clases por categoria. > Ejemplo HV > > *Extensions > HV-Base > HV-Builder > HV-Canvas > HV-Canvas-Tests > HV-Examples > HV-Extras-Swiki > HV-Extras-TOCs > HV-Tests > HV-Web > HV-XHTMLCanvas > HV-XHTMLCanvas-Tests > > En *Extensions van todos los metodos de clases externas al paquete, > prefijadas por * en las categorias de metodos > > Ej > *HV-testing en HttpRequest *inst > *HV-SBlog-RSS en TimeStamp *class > > Edgar > > > |
> Ah! Voy entendiendo... Interesante el video, hmmm, no recuerdo si hubo alguna
> charla asi en alguna Smalltalks... bien. > > > Edgar, me queda la duda, pero como hago un fileOut de todo lo que empieza, por > ejemplo, con WA? Hasta ahora, a lo sumo pude dar "click derecho" fileout en > alguna categoria desde el browser, pero nada mas. O sea, solo exporto una > categoria, no todo lo que empieza con WA > > Hay forma de hacerlo en Squeak/Pharo? > > O es algo que cada uno implementa por su cuenta? (hmmm... Monticello hara algo > de eso?) > > Jeje... ya puedo serializar imagenes con varios environments, using TDD, it > was a piece of cake ;-) Para los paquetes, existe Monticello, aunque seguramente se puede prescindir de el. Tengo que resucitar la exportacion de los paquetes desde el browser de paquetes PackagePaneBrowser openBrowser. En Monticello haces MCWorkingCopyBrowser open Ahi le das al boton +Package Y en la ventanita pones AngelEnviroment, De ahi , mandas a los repositorios que tengas Te adjunto mi script que agrega mi repositorio. Ya cree uno en Gemstone y cuando pueda me pongo a portar algo que tengo para tener un server que copie lo que hace squeaksource, que se cae a cada rato (la quieren matar) Edgar |
Free forum by Nabble | Edit this page |