[Pharo-project] [squeak-dev] Personalized systems with Treated

Miguel Cobá miguel.coba at gmail.com
Thu May 5 22:22:28 CEST 2011

El jue, 05-05-2011 a las 14:17 -0500, Chris Muller escribió:
> >> I'm more interested to know the answers to these questions:
> >>
> >>   - How does one deploy an application on Pharo that requires a
> >> one-line change to a core system method that is not acceptable to the
> >> Pharo gods?
> >
> > The same tha squeak for changes that aren't accepted/belongs to/are too
> > specific to an application. You include them as an *mypackage extension
> > in some package of yours and then when the mcz is installed, the
> > extension is installed too. That is just monticello as always.
> I'm talking about an override not an extension.

Can't see the difference. Your package just have a method that overrides
one method in a core system class. Or am I missing something?

> >>   - How does one deploy an application on Pharo that loads code from
> >> external web-sites?
> >
> > Using doIts if necessary.
> Right, dropping down into straight load-script and doing it.  Got it!  :)

Yes, because is the last resort. But most scripts are just pulling
dependencies, not resources so if you advocate the scripts just for the
fraction of special uses instead of a reified tool, that is a personal
decision not really an argument.

> >>   - How does one deploy an application on Pharo that requires external
> >> graphics, videos, XML or other resources?
> >
> > Idem.
> Often specific _versions_ of resources go with each specific version
> of an application.  Now I am maintaining those separately, in separate
> places using separate tools.

You can have as many doits as you want (they are methods) and each
version loaded by the configuration can invoke a given doit to load
specific version of your resources.

> I want something to expand the metaphor of an object being
> "encapsulated behavior + state" into my deployment system, so it will
> be "encapsulated behaviors + resources".  Thankfully, even Pharo 1.3
> still supports .SAR files, but no nice GUI to load them, just the
> file-manager.  :(
> >>   - How does one deploy an application on Pharo that requires an
> >> object-graph to be loaded internally into the image that was pre-built
> >> using another tool (e.g., NOT generated via code)?
> >
> > Don't understand the example
> A better example.  What if I just want something that strips my image
> down of lots of code and objects, without leaving any new code loaded?
> It's a rhetorical question, I already know the answer:  Create a
> Metacello config to host only a load-script (doIt).  But I wonder
> whether said doIt would be able to "unload itself" when it was done?
> Probably could.

This is a very specific scenario that most surely is not needed by the
90% of users that metacello is aiming to be useful to. The 10% that need
some very restricted loading scenario can have a script that does
everything that need.

> > I think it does those things, maybe a second look at the existings
> > configurations can clear a lot of doubts.
> The picture seems to be, as long as my app is all just "clean-loading
> MC packages", then I can use Metacello within its normal bounds. (OR,
> I could just use the standard "lighter-weight" SCM tools; Monticello +
> MonticelloConfigurations + Gofer).

Yes, but for most maintainers that "clean-loading MC packages" is what
we need. For example magma. Is a complex project and even so it doesn't
use any of the  spoken features so metacello is good enought to load it
in Pharo.

This argument about scripts vs metacello is like saying that just
because you can do the same with assembler when iterating over a list of
string you don't need a OrderedCollection. yes you can do the same, but
the advantages are greater when working with full objects that with
plain text.

> However, if an application requires anything additional:  overrides,
> resources or special-configurations, then I drop down to the "ultimate
> flexbility" afforded by doIt's - which is just load-scripting.  Even
> then, the resources are not encapsulated as I already said.
> SqueakMap is a repository that hosts load-scripts encasulated with or
> without resources.  It's perfectly complimentary to all of the other
> tools.
> I'm exhausted of talking about this..

Ok, then lets rest it now.

Miguel Cobá

More information about the Pharo-project mailing list