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

Responder a