Che, igual... no es por ser amargo, pero no te parece un poco mucho que una imagen de desarrolo ocupe 50mb?... por supuesto es mucho mas facil decirlo que hacerlo, pero me parece que estaria bueno ir al reves... o sea, empezar con una imagen chiquita y cargarle encima lo que uno quiere pero nada mas que eso.
A largo plazo, me parece que la estamos pifiando con esto (no solo Squeak/Pharo, que conste!). Como ilustracion, hace 15 años, la imagen base de VisualWorks ocupaba ~3mb. Impresionante como anda esa imagen en una maquina de hoy, todo rapidisimo, todo al toque, nada demora, todo vuela. Hoy, visual.im anda cerca de los 20mb. No sera 50mb, pero igual estaria bueno que un monton de lo que esta en esa imagen viniera en paquetes. Sacarle cosas a visual.im a mano no es tan facil como parece. Del mismo modo, hace mas o menos 9 años existia el Squeak World Tour, y llegamos a tener una imagen de desarrollo bastante normal de 2.2mb. Nos costo bastante limpiarla, empezamos con una imagen normal de Squeak. Todavia me acuerdo tener que andar haciendo cosas horribles como mandarle become: String new a ciertos objetos para poder borrarlos porque se resistian a irse (!!!). Use esa imagen durante un buen rato para hacer mis cosas de Minesweeper. Pero bueno, porque nos hace falta tanto chirimbolo para programar? A mi gusto, pagamos un precio alto porque el bodoque inicial (el "kernel") crece y se hace mas y mas dificil romperlo en pedazos chicos, porque despues no se pueden descargar las cosas una vez que las cargaste e integraste demasiado (un ejemplo que me viene a la mente: tratar de sacar una extension al browser mientras el browser funciona, en general no veo muchas ganas de programar una registracion de modulos para que descargar extensiones funcione de manera razonable), y porque en general tratar de borrar cosas una vez que estan cargadas siempre es mas dificil que nunca haberlas cargado desde el vamos. Insisto que no es trabajo facil y al final parece que no tuviera valor asi que no se hace, pero es super importante. Tendriamos que tener una imagen de 250kb o menos, generada mediante codigo en vez de hackeaduras de workspace. Esta imagen tendria que poder cargar codigo en paquetes. Uno de esos paquetes tendria que ser la interfaz grafica. De este modo, siempre se podria reproducir un estado de cosas predecible y versionable (podes poner el codigo que genera la imagen, los paquetes, y las especificaciones de imagenes de desarrollo o produccion o lo que fuera bajo un sistema de control de versiones). Ademas, asi te aseguras que ninguna de tus hackeaduras de workspace o algun bug corrompio tu imagen años atras. Por ejemplo, hace poco Nicolas Cellier se dio cuenta que bitXor: y bitAnd: no siempre daban los resultados correctos. Seguro, ese bug lo arreglas. Pero cuantas decadas tuvieron esos bugs para romper de manera sutil la imagen que desde ese tiempo venimos emparchando? Como sabes que la imagen esta bien si no la podes reproducir desde cero con una maquina virtual sin el bug, y cargando paquetes sin el bug desde el vamos? 2010/10/11 Mariano Martinez Peck <[email protected]>: > Otra cosa, tanto importa el tamaño de la imagen de desarrollo? > > Mirá que para hacer un deploy se suele hacer distinto. Tenes que usar un > PharoCore (no Pharo de desarrollo), cargarle todos los paquetes que quieras, > y al final evaluar "ScriptLoader new cleanUpForRelease.". Está imágen va a > ser mucho mas chica y limpia para app productivas. > > Saludos > > Mariano > > 2010/10/10 Mariano Martinez Peck <[email protected]> >> >> >> 2010/10/10 GallegO <[email protected]> >>> >>> Hola: >>> >>> > Hace lo que yo te dije, ScriptLoader new cleanUpFor release. Si te >>> > fijas, >>> > eso adentro hace además de un montón de cosas, lo que te dijo Esteban: >>> > >>> > MCFileBasedRepository flushAllCaches. >>> > MCMethodDefinition shutDown. >>> > MCDefinition clearInstances. >>> >>> Efectivo! 32.8 mega ahora. Si le descontamos los bitmaps, que seguro >>> no estaban, da mas o menos el tamaño inicial. >> >> :) >> >>> >>> >> Pregunta aparte. Vos estas manteniendo las ConfigurationOfXxxx para >>> >> pharo >>> >> no? >>> > >>> > Maso. No todo. Me encargo de actualizar (más que nada a la hora de >>> > hacer un >>> > nuevo release de Pharo) los Conf que yo use para Pharo y el >>> > ConfigurationOfPharo. Por? >>> > >>> ok, entiendo la diferencia. >>> Hay alguna tool para armar las Configuration? Veo que cada clase tiene >>> una estructura similar pero no identica. >>> En realidad, queria hacerme un script para bajar todo lo que necesito >>> para portar Seaside 3.0.rc desde SqueakSource. >> >> Primero, te recomiendo que hagas el tutorial de Metacello. No te lleva mas >> de una hora. En la imagen dev ya viene cargado incluse. Mira: >> http://code.google.com/p/metacello/wiki/Tutorial >> >> Lo de seaside es facil, evalua: >> >> Gofer new >> squeaksource: 'MetacelloRepository'; >> package: 'ConfigurationOfSeaside30'; >> load. >> >> ConfigurationOfSeaside30 project latestVersion load. >> >> If you want to load different groups, just ask: >> >> ConfigurationOfSeaside30 project latestVersion groups. Then you can load >> the groups you wants with #load: >> >> >>> >>> Antes cuando estaba el >>> Seaside builder me fue muy facil obtener el script. Ahora cuando fui a >>> mirar las configuration me pegue un palo. Por lo menos me gustaria >>> poner algo que loguee en el Transcript los pacs que va instalando, >>> luego me copio de ahi eso y lo importo en dolphin directamente. >> >> Podes hacer esto. Con Metacello podes hacer hasta si queres un "record" >> que hace todo, pero en realidad nada (o sea, resuelve dependencias y blah >> pero no te instala nada). >> >> ConfigurationOfSeaside30 project latestVersion record. >> >> Y a eso le podes imprimir el #loadDirective....hace un print de: >> >> ConfigurationOfSeaside30 project latestVersion record loadDirective. >> >> >> >>> >>> Como reflexion me parece medio extraño esto de las configuration, >>> instalar una clase, luego evaluar en un workspace. Sin animo de >>> ofender, me da la impresion que no le han encontrado la vuelta. O si? >>> >> >> Obvio. Pero no podes empezar haciendo todo de golpe. Primero tiene que >> estar andando bien el software, luego podes crear una UI mas feliz. Yo en >> Ubuntu use el apt-get toda mi vide y nunca necesité el synaptic. Igualmente, >> está Metacello-OB que tiene UI. Aunque ni idae, nunca lo use. Yo lo hago a >> mano. Tambien existe Metaceller y hay otros flacos haciendo otra UI. Ya va a >> llegar. >> >>> >>> Bueno, voy a probar lo otro y tratar de ayudar en lo que pueda para >>> testear en Win. >> >> :) >> >>> >>> Gracias por todo. >>> >>> Saludos >>> >>> -- >>> To post to this group, send email to [email protected] >>> To unsubscribe from this group, send email to >>> [email protected] >>> >>> http://www.clubSmalltalk.org > > -- > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > > http://www.clubSmalltalk.org -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] http://www.clubSmalltalk.org
