[From the soapbox:] Update stream are essential!!!

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[From the soapbox:] Update stream are essential!!!

Jerome Peace
 [From the soapbox:] Update stream are essential!!!
>  Andreas Raab andreas.raab at gmx.de
>  Wed Feb 7 00:49:35 UTC 2007

>  
>  Jerome Peace wrote:
>  > My point is that 9 out of ten of the "smartest
and
>  > most efficient Squeakers". choose to develop and
>  > express their vision, focus, with execution using
>  > update streams.
>  
>  Not in my experience. Except for the OLPC team I
don't know any other
>  serious development effort that is based on change
sets (if you disagree
>  name a few).

The context in which I am talking is in maintaining an
image.

A development project with clear boundries may work
very well for a time if it starts in MC.
But once it starts there its locked in.  It can't go
back and forth between change set development and MC
development. That is an unfortunate limitation. The
more developed a package gets the more it the code
will want to shift between packages or will want to be
placed in a new package of its own. MC does not
facilitate interpackage development changesets do.

My position is not to go back to changesets and
abandon MC. My position is that the two need to
interoperate.
Right now MC kills the usefulness of changesets
because of its use of catagories to determine
packages. That is the current unfortunate limitation.



>  And mostly I would claim for OLPC this is
>  due to historical
>  reasons, e.g., we've always used updates for eToys
and

>  there isn't any
>  compelling reason to change that, in particular
>  considering that the
>  people involved have exhaustive experience with
>  managing update streams.
>  
>  > Process has a direct relationship to results.
>  
>  That is certainly true.
>  
>  > Anyone can update and save a current OPLC system
in a
>  > handful of minutes.
>  
>  Yes, that is also true and one of the powerful
things
>  about incremental
>  updates. On the other hand, try to port changes
from
>  the OLPC image to
>  Squeak 3.9 and see how that goes. You'll go wildly
>  fishing through a
>  large number of changes desperately trying to
figure
>  out what got
>  changed where and which effect it might have on
other
>  ends of the system
>  and how (and if) it depends on changes done three
>  months ago. Been
>  there, done that. Monticello makes that kind of
stuff
>  really easy - if
>  we need fixes in Qwaq's internal version of some
>  package we simply do
>  them and at some point we merely merge them back
into
>  the public version
>  and we're done. We can always look what has changed
>  where, when and how.

Okay, thats cool. In the context of Qwaq MC works.  
How big is Qwaq? How old is it? How long does it take
to load and save?

There is some difference in our experiences.
>  
>  In any case, those are different trade-offs for
>  different styles of work
>  and different goals. If you want to make progress
>  quickly, updates and
>  change sets might be for you. If you want to be
able to
>  reflect about
>  the changes in an organized manner and move code
>  between various images
>  and versions, Monticello is pretty much the only
choice.

Yes. And when is it important to do each of those
things?
 
In the context of maintaining the image and repairing
problems I want to be able to
make progress quickly and later at leisure determine
how to separate things into packages.
Good repairs desire to be allowed to happen across
packages.

In the context of developing an alpha image I want
frequent and wide distribution of the image to
interested test pilots so that they can unmask bugs.
The bugs can be patched. And the bugs uncovered by the
fixes found.
As I've tracked thru squeak I've had a better
opportunity to find bugs because of they were hiding
behind bugs I've patched. Also sometimes a hasty patch
of mine has slipped into the stream and caused its own
bug.  I usally find it and fix it quickly. But if it
can't get in to the update stream quickly then others
waste a lot of time refinding the same bug instead of
finding new ones.

In the context of maintaining an image MC is not the
completely right tool. It causes things to happen out
of sequence and puts pressures on programmers to
include messages in the wrong packages to avoid the
work of getting multiple permission. (As Tim says
"Don't ask me how I know this")  


>  
>  Another way to look at the above is where you put
the
>  time - updates are
>  mostly "back-end loaded" as they will require very
>  significant work if
>  you ever need to do anything with the code after it
is
>  out, whereas
>  Monticello is more "front-end loaded", requiring to
put
>  more thought in
>  before you do things. That means Monticello is
>  intrinsically slower to
>  develop initially but also more stable in the
>  long-term. Both of these
>  observations match exactly my experience with both
>  development styles.

Yes, this is like the cathedral and the bazaar
comparison.  Or water and ice.
My veiwpoint would say MC is slower to use and harder
to change.

Changesets are essential because they provide the
mechanism for repair by rapid learning.
Like McCready's gossamar condor being built out of
balsa wood, piano wire, and duct tape. In the context
of getting an image to work you need to be able to
learn your lessons quickly, repair them and learn the
lessons that are now newly exposed by the repairs. For
that you need changesets.

When things are working (lots of little repairs)
taking stock and packaging what is willing to be
packaged is a good way to preserve the gains.  So my
point is that choosing to make MC packages first and
to build the image solely from those is out of
sequence.
 
>  But by the end of the day I'd still insist that the
main difference is
>  not in those tools but rather in the people working
with them.
>
Yes, and good people will always seek the most
appropriate tools and sequences for the job at hand.
If a person has the spirit to learn from there
mistakes. They will improve most rapidly in their
quality and experience if they are allow to get thru
thier mistakes quickly and often.

"You get good results from good choices.
You learn to make go choices from experience.
You get experience from  making bad choices."  --
unknown.

 
>  Cheers,
>     - Andreas

***

>  [From the soapbox:] Update stream are essential!!!
>  
>  Andreas Raab andreas.raab at gmx.de
>  Wed Feb 7 10:23:22 UTC 2007
>  
>  Jerome Peace wrote:
>  > This is a life destroying decision for the squeak
>  > community.
>  >
>  > Look at how fast the OPLC team develops
improvements
>  > and look at the level of feedback they get.
>  >
>  > Now compare that with the glacial pace of the
squeak
>  > image.
>  
>  (Just because I only noticed it and it's so fitting
in
>  this discussion)
>  Even if you do consider The Image to be the sine
qua
>  non of Squeak, you
>  might want to have a look at:
>  
>  http://weeklysqueak.wordpress.com/2007/02/04/
>  recent-squeak-packages-releases-2/
>  
>  which may give you a different view of the
"glacial"
>  pace at which the
>  community as a whole moves. There is a whole lot of
>  stuff going on if
>  you are willing to look beyond the image in front
of
>  you.
>  
>  Cheers,
>     - Andreas
***

Cool.  Good point.

Thank you for the engaging conversation so far.

Yours in curiosity and service, -- Jerome Peace
>  
>


 
____________________________________________________________________________________
Looking for earth-friendly autos?
Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.
http://autos.yahoo.com/green_center/

Reply | Threaded
Open this post in threaded view
|

Update stream are essential!!! [no soapbox]

Ron Teitelbaum
Hi All,

If we fix Monticello Configurations
(http://bugs.impara.de/view.php?id=5217), it can become an update stream.
It's quick and easy to do.  As for speed, I've found it to be very
responsive as long as SqueakSource is running!  I work with the latest code
from many different projects, which is not always fun since people do change
things I depend on!  But I find and fix a lot of bugs that way.

Here is what I do.

| config |

config := (
(MCHttpRepository
        location: 'http://www.squeaksource.com/ARepository'
        user: 'aUserName'
        password: 'aPassword')
versionReaderForFileNamed: 'aConfigFileName.mcm') loadConfiguration
configuration.
config updateFromRepositories upgradeByLoading

(upgradeByLoading prevents the system from overwriting things that you
changed in your image, this can be changed by load which will ask you or
upgradeByMerging which will merge changes)

If we used something like this then any changes saved to a Monticello
repository included in the, let's call it 'updateSteam.mcm', Monticello
configuration file will automatically get loaded.  This works for changes in
any repository not just the one that stores the mcm file, since
configuration files stores and searches though multiple repositories.  

We could have it ask if you want to load changes durring start up like
updateStreams do now.  It could easily tell you what packages have been
updated and even show you the comments of the update.  (In fact those
changes are shown on the transcript now during updateFromRepositories.)  You
could even have different config files to update different parts of the
system.  You could pick from which config files you are interested in and
have the system update the ini file with that info.  MorphicUpdate.mcm,
Network.mcm, EToyLoadForKernalImage.mcm ...

Just some thoughts.

Yours,

Ron Teitelbaum

> From: Jerome Peace
> Sent: Thursday, February 08, 2007 3:35 PM
>
>  [From the soapbox:] Update stream are essential!!!
> >  Andreas Raab andreas.raab at gmx.de
> >  Wed Feb 7 00:49:35 UTC 2007
>
> >
> >  Jerome Peace wrote:
> >  > My point is that 9 out of ten of the "smartest
> and
> >  > most efficient Squeakers". choose to develop and
> >  > express their vision, focus, with execution using
> >  > update streams.
> >
> >  Not in my experience. Except for the OLPC team I
> don't know any other
> >  serious development effort that is based on change
> sets (if you disagree
> >  name a few).
>
> The context in which I am talking is in maintaining an
> image.
>
> A development project with clear boundries may work
> very well for a time if it starts in MC.
> But once it starts there its locked in.  It can't go
> back and forth between change set development and MC
> development. That is an unfortunate limitation. The
> more developed a package gets the more it the code
> will want to shift between packages or will want to be
> placed in a new package of its own. MC does not
> facilitate interpackage development changesets do.
>
> My position is not to go back to changesets and
> abandon MC. My position is that the two need to
> interoperate.
> Right now MC kills the usefulness of changesets
> because of its use of catagories to determine
> packages. That is the current unfortunate limitation.
>
>
>
> >  And mostly I would claim for OLPC this is
> >  due to historical
> >  reasons, e.g., we've always used updates for eToys
> and
> >  there isn't any
> >  compelling reason to change that, in particular
> >  considering that the
> >  people involved have exhaustive experience with
> >  managing update streams.
> >
> >  > Process has a direct relationship to results.
> >
> >  That is certainly true.
> >
> >  > Anyone can update and save a current OPLC system
> in a
> >  > handful of minutes.
> >
> >  Yes, that is also true and one of the powerful
> things
> >  about incremental
> >  updates. On the other hand, try to port changes
> from
> >  the OLPC image to
> >  Squeak 3.9 and see how that goes. You'll go wildly
> >  fishing through a
> >  large number of changes desperately trying to
> figure
> >  out what got
> >  changed where and which effect it might have on
> other
> >  ends of the system
> >  and how (and if) it depends on changes done three
> >  months ago. Been
> >  there, done that. Monticello makes that kind of
> stuff
> >  really easy - if
> >  we need fixes in Qwaq's internal version of some
> >  package we simply do
> >  them and at some point we merely merge them back
> into
> >  the public version
> >  and we're done. We can always look what has changed
> >  where, when and how.
>
> Okay, thats cool. In the context of Qwaq MC works.
> How big is Qwaq? How old is it? How long does it take
> to load and save?
>
> There is some difference in our experiences.
> >
> >  In any case, those are different trade-offs for
> >  different styles of work
> >  and different goals. If you want to make progress
> >  quickly, updates and
> >  change sets might be for you. If you want to be
> able to
> >  reflect about
> >  the changes in an organized manner and move code
> >  between various images
> >  and versions, Monticello is pretty much the only
> choice.
>
> Yes. And when is it important to do each of those
> things?
>
> In the context of maintaining the image and repairing
> problems I want to be able to
> make progress quickly and later at leisure determine
> how to separate things into packages.
> Good repairs desire to be allowed to happen across
> packages.
>
> In the context of developing an alpha image I want
> frequent and wide distribution of the image to
> interested test pilots so that they can unmask bugs.
> The bugs can be patched. And the bugs uncovered by the
> fixes found.
> As I've tracked thru squeak I've had a better
> opportunity to find bugs because of they were hiding
> behind bugs I've patched. Also sometimes a hasty patch
> of mine has slipped into the stream and caused its own
> bug.  I usally find it and fix it quickly. But if it
> can't get in to the update stream quickly then others
> waste a lot of time refinding the same bug instead of
> finding new ones.
>
> In the context of maintaining an image MC is not the
> completely right tool. It causes things to happen out
> of sequence and puts pressures on programmers to
> include messages in the wrong packages to avoid the
> work of getting multiple permission. (As Tim says
> "Don't ask me how I know this")
>
>
> >
> >  Another way to look at the above is where you put
> the
> >  time - updates are
> >  mostly "back-end loaded" as they will require very
> >  significant work if
> >  you ever need to do anything with the code after it
> is
> >  out, whereas
> >  Monticello is more "front-end loaded", requiring to
> put
> >  more thought in
> >  before you do things. That means Monticello is
> >  intrinsically slower to
> >  develop initially but also more stable in the
> >  long-term. Both of these
> >  observations match exactly my experience with both
> >  development styles.
>
> Yes, this is like the cathedral and the bazaar
> comparison.  Or water and ice.
> My veiwpoint would say MC is slower to use and harder
> to change.
>
> Changesets are essential because they provide the
> mechanism for repair by rapid learning.
> Like McCready's gossamar condor being built out of
> balsa wood, piano wire, and duct tape. In the context
> of getting an image to work you need to be able to
> learn your lessons quickly, repair them and learn the
> lessons that are now newly exposed by the repairs. For
> that you need changesets.
>
> When things are working (lots of little repairs)
> taking stock and packaging what is willing to be
> packaged is a good way to preserve the gains.  So my
> point is that choosing to make MC packages first and
> to build the image solely from those is out of
> sequence.
>
> >  But by the end of the day I'd still insist that the
> main difference is
> >  not in those tools but rather in the people working
> with them.
> >
> Yes, and good people will always seek the most
> appropriate tools and sequences for the job at hand.
> If a person has the spirit to learn from there
> mistakes. They will improve most rapidly in their
> quality and experience if they are allow to get thru
> thier mistakes quickly and often.
>
> "You get good results from good choices.
> You learn to make go choices from experience.
> You get experience from  making bad choices."  --
> unknown.
>
>
> >  Cheers,
> >     - Andreas
>
> ***
> >  [From the soapbox:] Update stream are essential!!!
> >
> >  Andreas Raab andreas.raab at gmx.de
> >  Wed Feb 7 10:23:22 UTC 2007
> >
> >  Jerome Peace wrote:
> >  > This is a life destroying decision for the squeak
> >  > community.
> >  >
> >  > Look at how fast the OPLC team develops
> improvements
> >  > and look at the level of feedback they get.
> >  >
> >  > Now compare that with the glacial pace of the
> squeak
> >  > image.
> >
> >  (Just because I only noticed it and it's so fitting
> in
> >  this discussion)
> >  Even if you do consider The Image to be the sine
> qua
> >  non of Squeak, you
> >  might want to have a look at:
> >
> >  http://weeklysqueak.wordpress.com/2007/02/04/
> >  recent-squeak-packages-releases-2/
> >
> >  which may give you a different view of the
> "glacial"
> >  pace at which the
> >  community as a whole moves. There is a whole lot of
> >  stuff going on if
> >  you are willing to look beyond the image in front
> of
> >  you.
> >
> >  Cheers,
> >     - Andreas
> ***
>
> Cool.  Good point.
>
> Thank you for the engaging conversation so far.
>
> Yours in curiosity and service, -- Jerome Peace
> >
> >
>
>
>
> __________________________________________________________________________
> __________
> Looking for earth-friendly autos?
> Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.
> http://autos.yahoo.com/green_center/
>



Reply | Threaded
Open this post in threaded view
|

RE: [From the soapbox:] Update stream are essential!!!

J J-6
In reply to this post by Jerome Peace
Hrm, interesting conversation.  Change sets and Monticello have different
ways of recording changes right? How clean is the change system from each?  
I am just wondering if a concept like darc's "theory of patches" could
replace the current systems (at some point far far into the future :) and
make them all work better together.


>From: Jerome Peace <[hidden email]>
>Reply-To: The general-purpose Squeak developers
>list<[hidden email]>
>To: [hidden email]
>Subject: [From the soapbox:] Update stream are essential!!!
>Date: Thu, 8 Feb 2007 12:35:14 -0800 (PST)
>
>  [From the soapbox:] Update stream are essential!!!
> >  Andreas Raab andreas.raab at gmx.de
> >  Wed Feb 7 00:49:35 UTC 2007
>
> >
> >  Jerome Peace wrote:
> >  > My point is that 9 out of ten of the "smartest
>and
> >  > most efficient Squeakers". choose to develop and
> >  > express their vision, focus, with execution using
> >  > update streams.
> >
> >  Not in my experience. Except for the OLPC team I
>don't know any other
> >  serious development effort that is based on change
>sets (if you disagree
> >  name a few).
>
>The context in which I am talking is in maintaining an
>image.
>
>A development project with clear boundries may work
>very well for a time if it starts in MC.
>But once it starts there its locked in.  It can't go
>back and forth between change set development and MC
>development. That is an unfortunate limitation. The
>more developed a package gets the more it the code
>will want to shift between packages or will want to be
>placed in a new package of its own. MC does not
>facilitate interpackage development changesets do.
>
>My position is not to go back to changesets and
>abandon MC. My position is that the two need to
>interoperate.
>Right now MC kills the usefulness of changesets
>because of its use of catagories to determine
>packages. That is the current unfortunate limitation.
>
>
>
> >  And mostly I would claim for OLPC this is
> >  due to historical
> >  reasons, e.g., we've always used updates for eToys
>and
> >  there isn't any
> >  compelling reason to change that, in particular
> >  considering that the
> >  people involved have exhaustive experience with
> >  managing update streams.
> >
> >  > Process has a direct relationship to results.
> >
> >  That is certainly true.
> >
> >  > Anyone can update and save a current OPLC system
>in a
> >  > handful of minutes.
> >
> >  Yes, that is also true and one of the powerful
>things
> >  about incremental
> >  updates. On the other hand, try to port changes
>from
> >  the OLPC image to
> >  Squeak 3.9 and see how that goes. You'll go wildly
> >  fishing through a
> >  large number of changes desperately trying to
>figure
> >  out what got
> >  changed where and which effect it might have on
>other
> >  ends of the system
> >  and how (and if) it depends on changes done three
> >  months ago. Been
> >  there, done that. Monticello makes that kind of
>stuff
> >  really easy - if
> >  we need fixes in Qwaq's internal version of some
> >  package we simply do
> >  them and at some point we merely merge them back
>into
> >  the public version
> >  and we're done. We can always look what has changed
> >  where, when and how.
>
>Okay, thats cool. In the context of Qwaq MC works.
>How big is Qwaq? How old is it? How long does it take
>to load and save?
>
>There is some difference in our experiences.
> >
> >  In any case, those are different trade-offs for
> >  different styles of work
> >  and different goals. If you want to make progress
> >  quickly, updates and
> >  change sets might be for you. If you want to be
>able to
> >  reflect about
> >  the changes in an organized manner and move code
> >  between various images
> >  and versions, Monticello is pretty much the only
>choice.
>
>Yes. And when is it important to do each of those
>things?
>
>In the context of maintaining the image and repairing
>problems I want to be able to
>make progress quickly and later at leisure determine
>how to separate things into packages.
>Good repairs desire to be allowed to happen across
>packages.
>
>In the context of developing an alpha image I want
>frequent and wide distribution of the image to
>interested test pilots so that they can unmask bugs.
>The bugs can be patched. And the bugs uncovered by the
>fixes found.
>As I've tracked thru squeak I've had a better
>opportunity to find bugs because of they were hiding
>behind bugs I've patched. Also sometimes a hasty patch
>of mine has slipped into the stream and caused its own
>bug.  I usally find it and fix it quickly. But if it
>can't get in to the update stream quickly then others
>waste a lot of time refinding the same bug instead of
>finding new ones.
>
>In the context of maintaining an image MC is not the
>completely right tool. It causes things to happen out
>of sequence and puts pressures on programmers to
>include messages in the wrong packages to avoid the
>work of getting multiple permission. (As Tim says
>"Don't ask me how I know this")
>
>
> >
> >  Another way to look at the above is where you put
>the
> >  time - updates are
> >  mostly "back-end loaded" as they will require very
> >  significant work if
> >  you ever need to do anything with the code after it
>is
> >  out, whereas
> >  Monticello is more "front-end loaded", requiring to
>put
> >  more thought in
> >  before you do things. That means Monticello is
> >  intrinsically slower to
> >  develop initially but also more stable in the
> >  long-term. Both of these
> >  observations match exactly my experience with both
> >  development styles.
>
>Yes, this is like the cathedral and the bazaar
>comparison.  Or water and ice.
>My veiwpoint would say MC is slower to use and harder
>to change.
>
>Changesets are essential because they provide the
>mechanism for repair by rapid learning.
>Like McCready's gossamar condor being built out of
>balsa wood, piano wire, and duct tape. In the context
>of getting an image to work you need to be able to
>learn your lessons quickly, repair them and learn the
>lessons that are now newly exposed by the repairs. For
>that you need changesets.
>
>When things are working (lots of little repairs)
>taking stock and packaging what is willing to be
>packaged is a good way to preserve the gains.  So my
>point is that choosing to make MC packages first and
>to build the image solely from those is out of
>sequence.
>
> >  But by the end of the day I'd still insist that the
>main difference is
> >  not in those tools but rather in the people working
>with them.
> >
>Yes, and good people will always seek the most
>appropriate tools and sequences for the job at hand.
>If a person has the spirit to learn from there
>mistakes. They will improve most rapidly in their
>quality and experience if they are allow to get thru
>thier mistakes quickly and often.
>
>"You get good results from good choices.
>You learn to make go choices from experience.
>You get experience from  making bad choices."  --
>unknown.
>
>
> >  Cheers,
> >     - Andreas
>
>***
> >  [From the soapbox:] Update stream are essential!!!
> >
> >  Andreas Raab andreas.raab at gmx.de
> >  Wed Feb 7 10:23:22 UTC 2007
> >
> >  Jerome Peace wrote:
> >  > This is a life destroying decision for the squeak
> >  > community.
> >  >
> >  > Look at how fast the OPLC team develops
>improvements
> >  > and look at the level of feedback they get.
> >  >
> >  > Now compare that with the glacial pace of the
>squeak
> >  > image.
> >
> >  (Just because I only noticed it and it's so fitting
>in
> >  this discussion)
> >  Even if you do consider The Image to be the sine
>qua
> >  non of Squeak, you
> >  might want to have a look at:
> >
> >  http://weeklysqueak.wordpress.com/2007/02/04/
> >  recent-squeak-packages-releases-2/
> >
> >  which may give you a different view of the
>"glacial"
> >  pace at which the
> >  community as a whole moves. There is a whole lot of
> >  stuff going on if
> >  you are willing to look beyond the image in front
>of
> >  you.
> >
> >  Cheers,
> >     - Andreas
>***
>
>Cool.  Good point.
>
>Thank you for the engaging conversation so far.
>
>Yours in curiosity and service, -- Jerome Peace
> >
> >
>
>
>
>____________________________________________________________________________________
>Looking for earth-friendly autos?
>Browse Top Cars by "Green Rating" at Yahoo! Autos' Green Center.
>http://autos.yahoo.com/green_center/
>

_________________________________________________________________
Laugh, share and connect with Windows Live Messenger
http://clk.atdmt.com/MSN/go/msnnkwme0020000001msn/direct/01/?href=http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=hmtagline


Reply | Threaded
Open this post in threaded view
|

Re: Update stream are essential!!! [no soapbox]

Edgar J. De Cleene
In reply to this post by Ron Teitelbaum



El 2/8/07 6:12 PM, "Ron Teitelbaum" <[hidden email]> escribió:

> We could have it ask if you want to load changes durring start up like
> updateStreams do now.  It could easily tell you what packages have been
> updated and even show you the comments of the update.  (In fact those
> changes are shown on the transcript now during updateFromRepositories.)  You
> could even have different config files to update different parts of the
> system.  You could pick from which config files you are interested in and
> have the system update the ini file with that info.  MorphicUpdate.mcm,
> Network.mcm, EToyLoadForKernalImage.mcm ...
>
> Just some thoughts.
>
> Yours,
>
> Ron Teitelbaum
Ron:

Here I copy the last part, but all post is very useful.

I only wish you and all know what at this time Ralph is very, very, very
busy and can't give us the last word.

As Jerome said in private , I was very lucky in have the best teacher what
we could found !


But in silent or via private the 3.10 team is working.

We listen all formers Squeakers working on releases and have good tips.

Also I go back some steps.


And we must do some mistakes too .

After all is very difficult build a Formula One Ferrari what looks as hand
made Rolls Royce  with parts of Ford / Chevy / Honda (here could put your
car )

Edgar



       

       
               
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
¡Probalo ya!
http://www.yahoo.com.ar/respuestas


Reply | Threaded
Open this post in threaded view
|

Re: Update stream are essential!!!

Andreas.Raab
In reply to this post by Jerome Peace
Jerome Peace wrote:
> The context in which I am talking is in maintaining an
> image.

Well, that's a difficult statement. What defines "maintaining an image"?
In particular comparing the activities of OLPC, Seaside, Sophie,
Croquet, and/or Squeak.org? Which of those do maintain images and which
ones don't? And why?

> A development project with clear boundries may work
> very well for a time if it starts in MC.
> But once it starts there its locked in.  It can't go
> back and forth between change set development and MC
> development. That is an unfortunate limitation. The
> more developed a package gets the more it the code
> will want to shift between packages or will want to be
> placed in a new package of its own. MC does not
> facilitate interpackage development changesets do.

Indeed. Personally, I consider this an advantage although it can be a
little bothersome at times. But keeping changes local to a package,
encapsulating them inside a package is generally a good thing.

> My position is not to go back to changesets and
> abandon MC. My position is that the two need to
> interoperate.

And I would love nothing better!

> Right now MC kills the usefulness of changesets
> because of its use of catagories to determine
> packages. That is the current unfortunate limitation.

Well, but that goes both ways. Changesets kill the usefulness of
Monticello since they have no discipline, no way of specifying which
packages they affect. They carry no versions, no history either, they
cannot be diffed or merged.

>>  if we need fixes in Qwaq's internal version of some
>>  package we simply do them and at some point we merely
>>  merge them back into the public version and we're done.
>>  We can always look what has changed where, when and how.
>
> Okay, thats cool. In the context of Qwaq MC works.  
> How big is Qwaq? How old is it? How long does it take
> to load and save?

Qwaq is the name of our company and it doesn't load and save very well ;-)

> There is some difference in our experiences.

Yes, very likely so. I have spent much of the last years in environments
where I had to constantly maintain various versions of images (Tweak,
Croquet, Tweak in the context of Tinlizzie, Tweak in the context of
Impara and its products, later Croquet in the context of Qwaq etc.)
Doing this would have been plain impossible without the help of
Monticello. Comparing this with my prior (SqC) experience shows the
differences quite clearly - during the SqC days we were only concerned
with a single image and updates are by far superior if you don't have to
maintain multiple images and versions.

I do think that Squeak.org should support the multiple-image style more
than the single-image style though - if only because all "serious"
developers will likely have to support various image versions, and in
this case using MC simply has dramatic advantages. It also helps
breaking out parts and understanding where the boundaries are (but this
is a secondary aspect in this discussion).

>>  If you want to be able to reflect about the changes
>>  in an organized manner and move code between various images
>>  and versions, Monticello is pretty much the only choice.
>
> Yes. And when is it important to do each of those
> things?

Depends on what you do. For me, it's my primary mode of working. The
first thing in the morning is doing a diff of the latest check-in
against my local modifications, merging so that things don't go too far
astray. I used to do this differently by filing out CS'es in the
evening, then updating in the morning and then filing in my changes
again, but fortunately, I don't need that any longer.

> In the context of maintaining the image and repairing
> problems I want to be able to make progress quickly
> and later at leisure determine how to separate things
> into packages. Good repairs desire to be allowed to
> happen across packages.

Actually, if you use it correctly, Monticello does allow all of that.
What it can't deal with very well is doing these modifications as
surgery on a running system. That is its major shortcoming.

> In the context of developing an alpha image I want
> frequent and wide distribution of the image to
> interested test pilots so that they can unmask bugs.
> The bugs can be patched. And the bugs uncovered by the
> fixes found.

Other than speed, I see little contradiction between the workflow you
describe and Monticello. And if the package boundaries were more
well-defined this would likely not be a big issue either.

> As I've tracked thru squeak I've had a better
> opportunity to find bugs because of they were hiding
> behind bugs I've patched. Also sometimes a hasty patch
> of mine has slipped into the stream and caused its own
> bug.  I usally find it and fix it quickly. But if it
> can't get in to the update stream quickly then others
> waste a lot of time refinding the same bug instead of
> finding new ones.

The issue of round-trip time seems unrelated to Monticello to me - even
if uploads are slow they certainly don't take days to complete. Those
issues have gating items elsewhere.

> In the context of maintaining an image MC is not the
> completely right tool. It causes things to happen out
> of sequence and puts pressures on programmers to
> include messages in the wrong packages to avoid the
> work of getting multiple permission. (As Tim says
> "Don't ask me how I know this")

On this particular issue I very strongly disagree. You don't have to get
permission - you can make forks of packages and it is *utterly* trivial
to merge these changes back. Monticello is *made for this* it excels at
dealing with multiple forks, there is no reason *ever* to include
messages in wrong packages (or even worse use overrides).

> Changesets are essential because they provide the
> mechanism for repair by rapid learning.
> Like McCready's gossamar condor being built out of
> balsa wood, piano wire, and duct tape. In the context
> of getting an image to work you need to be able to
> learn your lessons quickly, repair them and learn the
> lessons that are now newly exposed by the repairs. For
> that you need changesets.

You seem to be ultimately coming down to speed here (and also in your
previous argumentation). I don't think any of these arguments would be
made that way if the loading speed of an MC package would be comparable
to change sets. Have you ever tried using .MCDs (server-side diffs
between packages) that Bert did for precisely the reason of accelerating
downloads?

> When things are working (lots of little repairs)
> taking stock and packaging what is willing to be
> packaged is a good way to preserve the gains.  So my
> point is that choosing to make MC packages first and
> to build the image solely from those is out of
> sequence.

Yes, there is something to be said for this - but only if your interest
is in the artifact more than it is in the progress towards the artifact
(which is admittedly true for most people who don't want/need to track
ongoing development).

>>  But by the end of the day I'd still insist that the
>>  main difference is not in those tools but rather
>>  in the people working with them.
> Yes, and good people will always seek the most
> appropriate tools and sequences for the job at hand.
> If a person has the spirit to learn from there
> mistakes. They will improve most rapidly in their
> quality and experience if they are allow to get thru
> thier mistakes quickly and often.

I'm not sure if this is meant to be read that way but I would not call
the use of Monticello a "mistake to be learned from", since to me it is
not a mistake but rather a huge step forward towards distributed
development.

Cheers,
   - Andreas