Si uno agarra un Cuis con los últimos updates (#1308) y evalúa Smalltalk
reduceCuis, queda una imagencita de 2713 KB!! Notable! |
> Si uno agarra un Cuis con los últimos updates (#1308) y evalúa Smalltalk > reduceCuis, queda una imagencita de 2713 KB!! > > Notable! Si tenes esa imagen, subila a algun lado. No dudo que habra mejorado desde lo ultimo que tome yo de mas de un año atras. Edgar |
Ah! Perdon por ocupar este hilo, pero agrego un comentario, del experimento
que estoy encarando: - Tener en memoria, DOS VM (cada una con sus clases, metaclases, metodos). Luego, en vez de DOS, pueden ser N. Eso ya lo estoy haciendo en mi proyecto de VM de codigo abierto. - Hacer que la VM A sea la que alberga a la VM B. Que es eso? Que el #doesNotUnderstand de la VM B, se de cuenta que hay otra VM, el host, y que resuelva los metodos que faltan, buscando en la clase/metaclase de la VM A, si no encuentra algo en una clase/metaclase de la VM B. Entonces, la VM B puede ir naciendo chica, y usar los metodos compilados de la VM A. Como ya comente en algun otro email, es un camino que me parece debe ser explorado. Por ejemplo, el mensaje #compile: o los #subclass:etc, no necesitan estar NI SIQUIERA EN EL PRINCIPIO de la vida de VM B. Ese es el camino (no con tanto detalle) que quiero emprender desde fines de los noventa, cuando se comento en Sugar lo de las "imagenes chicas", inspirado por lo que habia leido del Little Smalltalk de Timothy Budd (es decir, que puede haber tranquilamente una VM que no tenga el entorno de desarrollo). Nos leemos! Angel "Java" Lopez @ajlopez 2012/11/29 Edgar J. De Cleene <[hidden email]> > ** > > > > > > Si uno agarra un Cuis con los últimos updates (#1308) y evalúa Smalltalk > > reduceCuis, queda una imagencita de 2713 KB!! > > > > Notable! > > Si tenes esa imagen, subila a algun lado. > No dudo que habra mejorado desde lo ultimo que tome yo de mas de un año > atras. > > Edgar > > > |
> Ah! Perdon por ocupar este hilo, pero agrego un comentario, del experimento
> que estoy encarando: > > > - Tener en memoria, DOS VM (cada una con sus clases, metaclases, metodos). > Luego, en vez de DOS, pueden ser N. Eso ya lo estoy haciendo en mi proyecto de > VM de codigo abierto. > > - Hacer que la VM A sea la que alberga a la VM B. Que es eso? Que el > #doesNotUnderstand de la VM B, se de cuenta que hay otra VM, el host, y que > resuelva los metodos que faltan, buscando en la clase/metaclase de la VM A, si > no encuentra algo en una clase/metaclase de la VM B. > > Entonces, la VM B puede ir naciendo chica, y usar los metodos compilados de la > VM A. Como ya comente en algun otro email, es un camino que me parece debe ser > explorado. Por ejemplo, el mensaje #compile: o los #subclass:etc, no necesitan > estar NI SIQUIERA EN EL PRINCIPIO de la vida de VM B. > > Ese es el camino (no con tanto detalle) que quiero emprender desde fines de > los noventa, cuando se comento en Sugar lo de las "imagenes chicas", inspirado > por lo que habia leido del Little Smalltalk de Timothy Budd (es decir, que > puede haber tranquilamente una VM que no tenga el entorno de desarrollo). > > Nos leemos! Lo que planteas, para dos imagenes es lo que ya comente y tengo apenas implementado, Yo lo denomino estrategia "Madre/Hija" La madre tendria todo, seria una imagen con lo que se te ocurra cargar y la hija consultaria via DNU los métodos clases. Eso mismo , con una sola imagen, es el Fenix, ya que con Enviroments podes "aislar" tu micro imagen. Otra alternativa, es tener un base de datos de clases donde la imagen pequeña toma via dnu los métodos/clases Edgar |
In reply to this post by Edgar De Cleene
https://github.com/jvuletich/Cuis/tree/master/Cuis4WithLatestUpdates (Ahí
está siempre la última imagen con todos los cambios aplicados). El 29 de noviembre de 2012 08:16, Edgar J. De Cleene <[hidden email] > escribió: > ** > > > > > > Si uno agarra un Cuis con los últimos updates (#1308) y evalúa Smalltalk > > reduceCuis, queda una imagencita de 2713 KB!! > > > > Notable! > > Si tenes esa imagen, subila a algun lado. > No dudo que habra mejorado desde lo ultimo que tome yo de mas de un año > atras. > > Edgar > > > |
> https://github.com/jvuletich/Cuis/tree/master/Cuis4WithLatestUpdates
> > Si , ya la encontre. > > Estoy intentando aplicar la receta a mi imagen Mendieta > > Edgar |
In reply to this post by Edgar De Cleene
Ah! Que bueno, entonces voy por buen camino, no habia entendido que tu idea
era DOS imagenes, pense (influido por otros intentos que vi) que era una imagen sola. Como voy a escribir post (posiblemente el daily post de hoy, de maniana o del sabado), quisiera mencionarte, no problema en eso? Mira que vas a empezar a aparecer en las resenias de mis biografos... ;-). El camino de UNA imagen me parece "convoluted", por eso me convence esto de tener varias imagenes, es un camino mas claro y separado. Veremos los resultados. Tambien puedo controlar que un objeto de la imagen "hija" no apunte a algo de la "madre". Por eficiencia, lo puedo controlar no en los setters de las variables de instancia o indexadas, sino en el grabado de la imagen, o con un metodo "revisame esta VM que no se este haciendo la loca apuntando a cualquier lado" ;-) 2012/11/29 Edgar J. De Cleene <[hidden email]> > ** > > > > Ah! Perdon por ocupar este hilo, pero agrego un comentario, del > experimento > > que estoy encarando: > > > > > > - Tener en memoria, DOS VM (cada una con sus clases, metaclases, > metodos). > > Luego, en vez de DOS, pueden ser N. Eso ya lo estoy haciendo en mi > proyecto de > > VM de codigo abierto. > > > > - Hacer que la VM A sea la que alberga a la VM B. Que es eso? Que el > > #doesNotUnderstand de la VM B, se de cuenta que hay otra VM, el host, y > que > > resuelva los metodos que faltan, buscando en la clase/metaclase de la VM > A, si > > no encuentra algo en una clase/metaclase de la VM B. > > > > Entonces, la VM B puede ir naciendo chica, y usar los metodos compilados > de la > > VM A. Como ya comente en algun otro email, es un camino que me parece > debe ser > > explorado. Por ejemplo, el mensaje #compile: o los #subclass:etc, no > necesitan > > estar NI SIQUIERA EN EL PRINCIPIO de la vida de VM B. > > > > Ese es el camino (no con tanto detalle) que quiero emprender desde fines > de > > los noventa, cuando se comento en Sugar lo de las "imagenes chicas", > inspirado > > por lo que habia leido del Little Smalltalk de Timothy Budd (es decir, > que > > puede haber tranquilamente una VM que no tenga el entorno de desarrollo). > > > > Nos leemos! > > Lo que planteas, para dos imagenes es lo que ya comente y tengo apenas > implementado, > Yo lo denomino estrategia "Madre/Hija" > La madre tendria todo, seria una imagen con lo que se te ocurra cargar y la > hija consultaria via DNU los métodos clases. > > Eso mismo , con una sola imagen, es el Fenix, ya que con Enviroments podes > "aislar" tu micro imagen. > > Otra alternativa, es tener un base de datos de clases donde la imagen > pequeña toma via dnu los métodos/clases > > Edgar > > > |
> Ah! Que bueno, entonces voy por buen camino, no habia entendido que tu idea
> era DOS imagenes, pense (influido por otros intentos que vi) que era una > imagen sola. > > > Como voy a escribir post (posiblemente el daily post de hoy, de maniana o del > sabado), quisiera mencionarte, no problema en eso? Mira que vas a empezar a > aparecer en las resenias de mis biografos... ;-). > > El camino de UNA imagen me parece "convoluted", por eso me convence esto de > tener varias imagenes, es un camino mas claro y separado. Veremos los > resultados. > > Tambien puedo controlar que un objeto de la imagen "hija" no apunte a algo de > la "madre". Por eficiencia, lo puedo controlar no en los setters de las > variables de instancia o indexadas, sino en el grabado de la imagen, o con un > metodo "revisame esta VM que no se este haciendo la loca apuntando a cualquier > lado" ;-) Hay dos tecnicas. Una es la de Ale y tambien de Pavel, con una sola imagen de la que se crea otra La otra, que tal vez como decis sea mejor, con dos imagenes mandandose mensajes via TCP. En cuanto a muchas imagenes, yo me declaro fan del gran Eratostenes, en cuya geometria la linea recta es la distancia mas corta entre dos puntos. Eso no sucede en las otras geometrias. Siguiendome a mi vamos a terminar los dos quien sabe donde :=) Acordate de ver lo que hizo Guille Polito con Hazelnut. Edgar |
Hola gente!
WARNING! WARNING MR.ROBINSON! (#soytanviejo ;-) THIS MESSAGE CONTAINS LINKS TO NON-SMALLTALK CODE ;-) ;-) Edgar, ya tengo andando algo, just committed: https://github.com/ajlopez/AjTalk/commit/e8fdae21e55bc0f855a92cfa984161136647a434 Maquina host, y maquina hosted, pipi cucu por ahora, armado con TDD para que no "se chive" @hernanwilkinson ;-) Bueno, hoy me entusiasme, asi que algun test quedo algo grande, pero funciono! Ah! Yo hablaba de 2 o n imagenes, cargadas en memoria, en EL MISMO proceso. Si, vi por ahi que hay gente que comunica dos imagenes via TCP, pero lo mio, es "baby step", primero que ande mas simple, puedo cargar varias maquinas en el mismo proceso AjTalk, y cada una tiene sus clases, objetos, etc.. hosted machine con Rectangle pelado: https://github.com/ajlopez/AjTalk/blob/982250ff75a9ca00a85b4a62a99b2ac826e3aa5f/Src/AjTalk.Tests/CodeFiles/HostedMachine.st host machine con Rectangle con metodos: https://github.com/ajlopez/AjTalk/blob/982250ff75a9ca00a85b4a62a99b2ac826e3aa5f/Src/AjTalk.Tests/CodeFiles/HostMachine.st El test que me da esperanzas de que esto anda ;-) https://github.com/ajlopez/AjTalk/blob/982250ff75a9ca00a85b4a62a99b2ac826e3aa5f/Src/AjTalk.Tests/HostMachineTests.cs#L180-L208 No vi Hazelnut aun, solo lo que salio publicado del premio, que bueno! trato de explorar primero un tema, apenas leyendo algun blog, sin ver codigo, a ver que sale. Me diviegto como loco ;-) Bueno, escribo por aca, porque seguro alguien de Uds. va a salir de testigo (en mi defensa espero) cuando vengan con las camisas de mangas largas a buscarme ;-) Nos leemos! Angel "Java" Lopez @ajlopez 2012/11/29 Edgar J. De Cleene <[hidden email]> > ** > > > > Ah! Que bueno, entonces voy por buen camino, no habia entendido que tu > idea > > era DOS imagenes, pense (influido por otros intentos que vi) que era una > > imagen sola. > > > > > > Como voy a escribir post (posiblemente el daily post de hoy, de maniana > o del > > sabado), quisiera mencionarte, no problema en eso? Mira que vas a > empezar a > > aparecer en las resenias de mis biografos... ;-). > > > > El camino de UNA imagen me parece "convoluted", por eso me convence esto > de > > tener varias imagenes, es un camino mas claro y separado. Veremos los > > resultados. > > > > Tambien puedo controlar que un objeto de la imagen "hija" no apunte a > algo de > > la "madre". Por eficiencia, lo puedo controlar no en los setters de las > > variables de instancia o indexadas, sino en el grabado de la imagen, o > con un > > metodo "revisame esta VM que no se este haciendo la loca apuntando a > cualquier > > lado" ;-) > > Hay dos tecnicas. > > Una es la de Ale y tambien de Pavel, con una sola imagen de la que se crea > otra > > La otra, que tal vez como decis sea mejor, con dos imagenes mandandose > mensajes via TCP. > > En cuanto a muchas imagenes, yo me declaro fan del gran Eratostenes, en > cuya > geometria la linea recta es la distancia mas corta entre dos puntos. > > Eso no sucede en las otras geometrias. > > Siguiendome a mi vamos a terminar los dos quien sabe donde :=) > > Acordate de ver lo que hizo Guille Polito con Hazelnut. > > Edgar > > > |
> Hola gente!
> > > WARNING! WARNING MR.ROBINSON! (#soytanviejo ;-) > THIS MESSAGE CONTAINS LINKS TO NON-SMALLTALK CODE ;-) ;-) > > Edgar, ya tengo andando algo, just committed: > https://github.com/ajlopez/AjTalk/commit/e8fdae21e55bc0f855a92cfa984161136647a > 434 > Maquina host, y maquina hosted, pipi cucu por ahora, armado con TDD para que > no "se chive" @hernanwilkinson ;-) Bueno, hoy me entusiasme, asi que algun > test quedo algo grande, pero funciono! > > Ah! Yo hablaba de 2 o n imagenes, cargadas en memoria, en EL MISMO proceso. > Si, vi por ahi que hay gente que comunica dos imagenes via TCP, pero lo mio, > es "baby step", primero que ande mas simple, puedo cargar varias maquinas en > el mismo proceso AjTalk, y cada una tiene sus clases, objetos, etc.. > > hosted machine con Rectangle pelado: > https://github.com/ajlopez/AjTalk/blob/982250ff75a9ca00a85b4a62a99b2ac826e3aa5 > f/Src/AjTalk.Tests/CodeFiles/HostedMachine.st > > host machine con Rectangle con metodos: > https://github.com/ajlopez/AjTalk/blob/982250ff75a9ca00a85b4a62a99b2ac826e3aa5 > f/Src/AjTalk.Tests/CodeFiles/HostMachine.st > > El test que me da esperanzas de que esto anda ;-) > https://github.com/ajlopez/AjTalk/blob/982250ff75a9ca00a85b4a62a99b2ac826e3aa5 > f/Src/AjTalk.Tests/HostMachineTests.cs#L180-L208 > > No vi Hazelnut aun, solo lo que salio publicado del premio, que bueno! trato > de explorar primero un tema, apenas leyendo algun blog, sin ver codigo, a ver > que sale. Me diviegto como loco ;-) > > Bueno, escribo por aca, porque seguro alguien de Uds. va a salir de testigo > (en mi defensa espero) cuando vengan con las camisas de mangas largas a > buscarme ;-) > > Nos leemos! > > Angel "Java" Lopez > @ajlopez Buenisimo y me han motivado a ponerme las pilas y tratar de hacer algo. Me sigo sacando el sombrero ante el talento de Juan, gran receta la del reduceCuis. Me recuerda a algo que existia en epocas muy primigenias. Ya que andamos varios en lo mismo, podriamos discutir un poco. Cual seria realmente una imagen mínima ? Es esa lista de clases que figura en el blog de Craig , materializada en su history.image ? Espero en el curso del fin de semana crear una nueva pagina para SqueakRos. Como ejemplo, le voy a robar un poco a Chris y al Twitter Boostrap. Por el momento, OldWarrior anda y corre 4 imagenes en 4 VM Squeak 4.2.5beta1U Usar la "vuelta larga" www.squeakros.org que por el momento engancha Aida en el 9999 En el 8086 , el CuisWiki cuenta sus desventuras. En el 8888 hay un viejo swiki , una vieeeeeeja imagen SqueakLight.17 que ni la mires ni la toques lo hace andar. Apicando recetas de otro genio, Pavel, me di cuenta que mi Mendieta tiene vicios de construccion. Pregunta a los que saben. Como elimino una instancia de una clase ? Quiero eliminar un Scheduler que queda funcionando. Pero instancia := self becomeForward: nil no parece matarla.... |
Hola a todos:
Excelente lo tuyo Angel. el día que tenga tiempo, voy a mirar en detalle. El 30 de noviembre de 2012 10:56, Edgar J. De Cleene <edgardec2005@g<[hidden email]> > > Buenisimo y me han motivado a ponerme las pilas y tratar de hacer algo. > Me sigo sacando el sombrero ante el talento de Juan, gran receta la del > reduceCuis. > Me recuerda a algo que existia en epocas muy primigenias. > Con 3.8 el shrink andaba bien, yo recuerdo incluso haberlo adaptado a necesidades particulares. > Ya que andamos varios en lo mismo, podriamos discutir un poco. > > Cual seria realmente una imagen mínima ? > Para mi la imagen mínima es aquella en su mínima expresión capaz de albergar mi sistema funcionando (el sistema que sea en cada caso). > > Es esa lista de clases que figura en el blog de Craig , materializada en su > history.image ? > > Espero en el curso del fin de semana crear una nueva pagina para SqueakRos. > Como ejemplo, le voy a robar un poco a Chris y al Twitter Boostrap. > > Por el momento, OldWarrior anda y corre 4 imagenes en 4 VM Squeak > 4.2.5beta1U > > Usar la "vuelta larga" www.squeakros.org que por el momento engancha Aida > en > el 9999 > En el 8086 , el CuisWiki cuenta sus desventuras. > En el 8888 hay un viejo swiki , una vieeeeeeja imagen SqueakLight.17 que ni > la mires ni la toques lo hace andar. > > Apicando recetas de otro genio, Pavel, me di cuenta que mi Mendieta tiene > vicios de construccion. > > Pregunta a los que saben. > Como elimino una instancia de una clase ? > Quiero eliminar un Scheduler que queda funcionando. > > Pero instancia := self becomeForward: nil no parece matarla.... > > tiene quien la referencia el garbage collector la limpia. Saludos. |
> Para mi la imagen mínima es aquella en su mínima expresión capaz de albergar
> mi sistema funcionando (el sistema que sea en cada caso). Mmmm. Supongamos que queres hacer web con Aida (como ejemplo) Tu sistema tendria cargado Aida o seria la imagen que te permitiera cargar Aida ? > mm, no me califico como los que saben, pero cuando una instancia ya no tiene > quien la referencia > el garbage collector la limpia. Si, claro, puedo probar eso. Estoy de vuelta de la facultad y sigo probando de actualizar el SqueakCore que alguna vez hice. Estoy encontrando hermosas explosiones de imagen y me doy cada vez mas cuenta que el dia en que Squeak / Pharo / Cuis / tenga un sistema equivalente a un kernel de Linux y algo parecido al Synaptic sigue estando Un puente demasiado lejos (gran pelicula que recomiendo). Edgar |
In reply to this post by garduino
Hola gente!
Gracias, maeses @garduino, @morplenauta, me motivan a seguir haciendo cosas. Bien, con respecto a: Cual seria realmente una imagen mínima ? Para mi la imagen mínima es aquella en su mínima expresión capaz de albergar mi sistema funcionando (el sistema que sea en cada caso). Si, es algo que pregunte hace un tiempo por aca. Para mi, la imagen minima coincide con lo de arriba, de maese @garduino. Por eso, un "Hello, world" tiene una imagen minima, si es que es todo lo que tiene que hacer. Historicamente, Smalltalk siempre puso en la imagen todo el tooling de desarrollo. Y veo que aca se discute muchas veces, una "imagen minima" que SIGA TENIENDO el tooling de desarrollo. Y de vez en cuando, correr algun proceso que la minimice. Puede ser un camino, pero mi "concern" es que: no estoy muy seguro que sea el mejor camino, es como que la imagen "nace grande" y hay que trabajar para reducirla, o para "recortar" los lazos con el resto del sistema. El approach que propongo, por lo que estoy teniendo dos VM en memoria: una operando sobre la otra. La "otra" puede nacer todo lo chica que uno quiere, e ir agregando lo que uno quiera, sin pasar por periodos de ser "fat image" por tener todo el desarollo. No digo que sea lo mejor, sino un camino a explorar, que historicamente, no parece haber sido explorado por la comunidad Smalltalk (no se, no estoy muy al tanto de toda la historia). super influida por el approach original: todo en una imagen. Si tuviera que hacer un sistema web con Aida, la imagen minima que me imagino, ya tendria Aida, para no tener que depender de que este disponible para cargar. Pero hay "onda" asi, por ejemplo, en deploys de Node.js, Ruby, y aun PHP: declarar que cosas necesita mi aplicacion, la subo a Heroku, y ahi se "completa", con todo lo que le falta (librerias que se usan) sin tener que subir esas librerias en el deployment. Nos leemos! Angel "Java" Lopez @ajlopez gh:ajlopez 2012/11/30 Germán Arduino <[hidden email]> > ** > > > Hola a todos: > > Excelente lo tuyo Angel. el día que tenga tiempo, voy a mirar en detalle. > > El 30 de noviembre de 2012 10:56, Edgar J. De Cleene <edgardec2005@g<[hidden email]> > >> Buenisimo y me han motivado a ponerme las pilas y tratar de hacer algo. >> Me sigo sacando el sombrero ante el talento de Juan, gran receta la del >> reduceCuis. >> Me recuerda a algo que existia en epocas muy primigenias. >> > > Con 3.8 el shrink andaba bien, yo recuerdo incluso haberlo adaptado a > necesidades particulares. > > >> Ya que andamos varios en lo mismo, podriamos discutir un poco. >> >> Cual seria realmente una imagen mínima ? >> > > > Para mi la imagen mínima es aquella en su mínima expresión capaz de > albergar mi sistema funcionando (el sistema que sea en cada caso). > > >> >> Es esa lista de clases que figura en el blog de Craig , materializada en >> su >> history.image ? >> >> Espero en el curso del fin de semana crear una nueva pagina para >> SqueakRos. >> Como ejemplo, le voy a robar un poco a Chris y al Twitter Boostrap. >> >> Por el momento, OldWarrior anda y corre 4 imagenes en 4 VM Squeak >> 4.2.5beta1U >> >> Usar la "vuelta larga" www.squeakros.org que por el momento engancha >> Aida en >> el 9999 >> En el 8086 , el CuisWiki cuenta sus desventuras. >> En el 8888 hay un viejo swiki , una vieeeeeeja imagen SqueakLight.17 que >> ni >> la mires ni la toques lo hace andar. >> >> Apicando recetas de otro genio, Pavel, me di cuenta que mi Mendieta tiene >> vicios de construccion. >> >> Pregunta a los que saben. >> Como elimino una instancia de una clase ? >> Quiero eliminar un Scheduler que queda funcionando. >> >> Pero instancia := self becomeForward: nil no parece matarla.... >> >> > mm, no me califico como los que saben, pero cuando una instancia ya no > tiene quien la referencia > el garbage collector la limpia. > > Saludos. > > > > |
In reply to this post by Edgar De Cleene
El 30 de noviembre de 2012 17:07, Edgar J. De Cleene <[hidden email]
> escribió: > ** > > > > Para mi la imagen mínima es aquella en su mínima expresión capaz de > albergar > > mi sistema funcionando (el sistema que sea en cada caso). > > Mmmm. Supongamos que queres hacer web con Aida (como ejemplo) > Tu sistema tendria cargado Aida o seria la imagen que te permitiera cargar > Aida ? > > imagen que uso para desarrollar, y cuando tengo todo listo andando en la misma, le saco todo lo que no uso (No es fácil ir al detalle pero tampoco me importa, la verdad unos mb mas o menos no me importan nada, si me importa tener una imagen reducida a un valor que sea de razonable consumo de recursos). > > > mm, no me califico como los que saben, pero cuando una instancia ya no > tiene > > quien la referencia > > el garbage collector la limpia. > > Si, claro, puedo probar eso. > > Seguro, en Cuis por lo menos: creas varias instancias de una clase en un workspace y luego cerras el workspace y lo volvés a abrir y ya no están (en otros Smalltalks a veces hay que forzar el garbage o es más lento, pero en Cuis es una maravilla también). Saludos. |
Free forum by Nabble | Edit this page |