Hi,
Just wondering - does someone have a copy of Josh's Cassowary port hanging around?! It seems like the original link to http://penguin.cc.gt.atl.ga.us:8080/schwa/63 is dead by now.
Thanks, - Andreas
Andreas;
It looks as though http://lists.squeakfoundation.org/pipermail/squeak-dev/2001-May/013516.html may have the gist of it.
Gary
----- Original Message ----- From: Andreas Raab To: squeak-dev@lists.squeakfoundation.org Sent: Monday, January 06, 2003 6:32 PM Subject: Cassowary anyone?!
Hi,
Just wondering - does someone have a copy of Josh's Cassowary port hanging around?! It seems like the original link to http://penguin.cc.gt.atl.ga.us:8080/schwa/63 is dead by now.
Thanks, - Andreas
On Monday 06 January 2003 03:32 pm, Andreas Raab wrote:
Just wondering - does someone have a copy of Josh's Cassowary port hanging around?! It seems like the original link to http://penguin.cc.gt.atl.ga.us:8080/schwa/63 is dead by now.
This is the 15 May 2001 version.
Thanks - but is this the version that Alan Borning refered to in his post dated May 24th?! Alan claimed that they had made improvements to it and only pointed to the (now broken) URL.
Cheers, - Andreas
-----Original Message----- From: Ned Konz [mailto:ned@bike-nomad.com] Sent: Tuesday, January 07, 2003 2:05 AM To: squeak-dev@lists.squeakfoundation.org Cc: Andreas Raab Subject: Re: Cassowary anyone?!
On Monday 06 January 2003 03:32 pm, Andreas Raab wrote:
Just wondering - does someone have a copy of Josh's Cassowary port hanging around?! It seems like the original link to http://penguin.cc.gt.atl.ga.us:8080/schwa/63 is dead by now.
This is the 15 May 2001 version.
-- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE
The attached version (4?) was labeled May 23, 2001.
Best, -Robert
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Andreas Raab Sent: January 07, 2003 02:11 To: 'Ned Konz'; squeak-dev@lists.squeakfoundation.org Subject: RE: Cassowary anyone?!
Thanks - but is this the version that Alan Borning refered to in his post dated May 24th?! Alan claimed that they had made improvements to it and only pointed to the (now broken) URL.
Cheers,
- Andreas
-----Original Message----- From: Ned Konz [mailto:ned@bike-nomad.com] Sent: Tuesday, January 07, 2003 2:05 AM To: squeak-dev@lists.squeakfoundation.org Cc: Andreas Raab Subject: Re: Cassowary anyone?!
On Monday 06 January 2003 03:32 pm, Andreas Raab wrote:
Just wondering - does someone have a copy of Josh's
Cassowary port
hanging around?! It seems like the original link to http://penguin.cc.gt.atl.ga.us:8080/schwa/63 is dead by now.
This is the 15 May 2001 version.
-- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE
Hi Andreas,
My message to the list seems to have been lost, so I'm resending to you and the list.
You can get Cassowary from: http://www.cc.gatech.edu/~schwa/squeak/packages/
What are you thinking of doing with it? Joshua
Josh,
Thanks - by now I got various copies from people (thanks to all of you!) but this is the kind of thing that really _ought_ to be on SqueakMap (hint, hint!).
What are you thinking of doing with it?
I'm looking into different ways of end-user friendly specification of "object compositions" (aka: layouts). Since I know that Cassowary was used for CSVG and other things I was wondering if it might be a good starting base for some more end-user friendly model than we have right now.
This problem bugged me for a long time now - the AlignmentMorph's in Squeak used to require compositions of compositions of compositions of nested things and they just got in the way of "seeing the thing you are interested in" (namely some object of the composition). So I tried to generalize this into the layouts we have today but while they are more general they are also much harder to understand (lots of very generic properties with lots of unclear compositional effects).
So what I am essentially looking for is some way of specifying "lots of dog-simple constraints" (like: make the left edge of one guy follow the right edge of some other guy) and provide some interactive means for specifying it - so that rather than having a set of generic properties the user gets a (possibly large) number of very concrete mini-constraints. Those need to be solved efficiently and that's when I got into thinking about the various constraint solvers.
BTW, do you know if Cassowary can give feedback about constraints that cannot be resolved (perhaps even potentially)?! I'm interested in this because what I would like to do is give constant feedback about the composition you are building - so that when you add a constraint which "won't work" the system could indicate this by some means.
Cheers, - Andreas
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Joshua 'Schwa' Gargus Sent: Thursday, January 09, 2003 7:32 PM To: Andreas Raab; Squeak Mailing List Subject: Re: Cassowary anyone?!
Hi Andreas,
My message to the list seems to have been lost, so I'm resending to you and the list.
You can get Cassowary from: http://www.cc.gatech.edu/~schwa/squeak/packages/
What are you thinking of doing with it? Joshua
I used Cassowary for checking/finding task schedules. In the end I chose another solver (not in Smalltalk) exactly for the reasons you mentioned: constraint violations are not shown, so it is hard to see what exactly is going on. Sometimes a constraint is preferred over another one (of the same priority) for a reason which is not clear. Then you end up with a network in which one constraint is satisfied, and another one of the same priority is not. In the application for which I wanted to use Cassowary this was not acceptable. Note that if the constraint is 'required' (the highest setting), then such a situation cannot rise: if it cannot be satisfied, an exception is thrown. So I ended up using Cassowary as though it had no constraint hierarchies at all... and then I could better use another solver. With a bit of more time I would have looked at it (I implemented a constraint solver before on top of Soul), but time is absolutely a scarce resource at the moment.
PS: I noticed that this mail is not very clear, depending on your knowledge of Cassowary. Just contact me for more info or the code of the experiments I did.
On Thursday, January 9, 2003, at 08:11 PM, Andreas Raab wrote:
Josh,
Thanks - by now I got various copies from people (thanks to all of you!) but this is the kind of thing that really _ought_ to be on SqueakMap (hint, hint!).
What are you thinking of doing with it?
I'm looking into different ways of end-user friendly specification of "object compositions" (aka: layouts). Since I know that Cassowary was used for CSVG and other things I was wondering if it might be a good starting base for some more end-user friendly model than we have right now.
This problem bugged me for a long time now - the AlignmentMorph's in Squeak used to require compositions of compositions of compositions of nested things and they just got in the way of "seeing the thing you are interested in" (namely some object of the composition). So I tried to generalize this into the layouts we have today but while they are more general they are also much harder to understand (lots of very generic properties with lots of unclear compositional effects).
So what I am essentially looking for is some way of specifying "lots of dog-simple constraints" (like: make the left edge of one guy follow the right edge of some other guy) and provide some interactive means for specifying it - so that rather than having a set of generic properties the user gets a (possibly large) number of very concrete mini-constraints. Those need to be solved efficiently and that's when I got into thinking about the various constraint solvers.
BTW, do you know if Cassowary can give feedback about constraints that cannot be resolved (perhaps even potentially)?! I'm interested in this because what I would like to do is give constant feedback about the composition you are building - so that when you add a constraint which "won't work" the system could indicate this by some means.
Cheers,
- Andreas
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Joshua 'Schwa' Gargus Sent: Thursday, January 09, 2003 7:32 PM To: Andreas Raab; Squeak Mailing List Subject: Re: Cassowary anyone?!
Hi Andreas,
My message to the list seems to have been lost, so I'm resending to you and the list.
You can get Cassowary from: http://www.cc.gatech.edu/~schwa/squeak/packages/
What are you thinking of doing with it? Joshua
Roel Wuyts Software Composition Group roel.wuyts@iam.unibe.ch University of Bern, Switzerland http://www.iam.unibe.ch/~wuyts/ Board Member of the European Smalltalk User Group: www.esug.org
Roel,
Thanks this is helpful information. Yes, I _really_ want to have constraint violations be noticable since otherwise the user won't be able to react to them (if only by removing the last constraint - I really don't care; the important part is to give feedback that "this won't work"). BTW, what constraint solver did you end up using?!
Cheers, - Andreas
-----Original Message----- From: Roel Wuyts [mailto:roel.wuyts@iam.unibe.ch] Sent: Friday, January 10, 2003 5:09 PM To: Andreas Raab Cc: squeak-dev lists.squeakfou Subject: Re: Cassowary anyone?!
I used Cassowary for checking/finding task schedules. In the end I chose another solver (not in Smalltalk) exactly for the reasons you mentioned: constraint violations are not shown, so it is hard to see what exactly is going on. Sometimes a constraint is preferred over another one (of the same priority) for a reason which is not clear. Then you end up with a network in which one constraint is satisfied, and another one of the same priority is not. In the application for which I wanted to use Cassowary this was not acceptable. Note that if the constraint is 'required' (the highest setting), then such a situation cannot rise: if it cannot be satisfied, an exception is thrown. So I ended up using Cassowary as though it had no constraint hierarchies at all... and then I could better use another solver. With a bit of more time I would have looked at it (I implemented a constraint solver before on top of Soul), but time is absolutely a scarce resource at the moment.
PS: I noticed that this mail is not very clear, depending on your knowledge of Cassowary. Just contact me for more info or the code of the experiments I did.
On Thursday, January 9, 2003, at 08:11 PM, Andreas Raab wrote:
Josh,
Thanks - by now I got various copies from people (thanks to all of you!) but this is the kind of thing that really _ought_ to be on SqueakMap (hint, hint!).
What are you thinking of doing with it?
I'm looking into different ways of end-user friendly
specification of
"object compositions" (aka: layouts). Since I know that
Cassowary was
used for CSVG and other things I was wondering if it might be a good starting base for some more end-user friendly model than we
have right
now.
This problem bugged me for a long time now - the AlignmentMorph's in Squeak used to require compositions of compositions of
compositions of
nested things and they just got in the way of "seeing the
thing you are
interested in" (namely some object of the composition). So
I tried to
generalize this into the layouts we have today but while
they are more
general they are also much harder to understand (lots of
very generic
properties with lots of unclear compositional effects).
So what I am essentially looking for is some way of
specifying "lots of
dog-simple constraints" (like: make the left edge of one
guy follow the
right edge of some other guy) and provide some interactive means for specifying it - so that rather than having a set of generic
properties
the user gets a (possibly large) number of very concrete mini-constraints. Those need to be solved efficiently and
that's when I
got into thinking about the various constraint solvers.
BTW, do you know if Cassowary can give feedback about
constraints that
cannot be resolved (perhaps even potentially)?! I'm
interested in this
because what I would like to do is give constant feedback about the composition you are building - so that when you add a
constraint which
"won't work" the system could indicate this by some means.
Cheers,
- Andreas
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Joshua 'Schwa' Gargus Sent: Thursday, January 09, 2003 7:32 PM To: Andreas Raab; Squeak Mailing List Subject: Re: Cassowary anyone?!
Hi Andreas,
My message to the list seems to have been lost, so I'm resending to you and the list.
You can get Cassowary from: http://www.cc.gatech.edu/~schwa/squeak/packages/
What are you thinking of doing with it? Joshua
Roel Wuyts Software Composition Group roel.wuyts@iam.unibe.ch University of Bern, Switzerland http://www.iam.unibe.ch/~wuyts/ Board Member of the European Smalltalk User Group: www.esug.org
I ended up using 'Eclipse' (http://www-icparc.doc.ic.ac.uk/eclipse/) (nothing to do with the IBM open source IDE), a constraint logic programming language. Quite nice for what I had to do with it. I can show it when you come round :-)
On Friday, January 10, 2003, at 08:28 PM, Andreas Raab wrote:
Roel,
Thanks this is helpful information. Yes, I _really_ want to have constraint violations be noticable since otherwise the user won't be able to react to them (if only by removing the last constraint - I really don't care; the important part is to give feedback that "this won't work"). BTW, what constraint solver did you end up using?!
Cheers,
- Andreas
-----Original Message----- From: Roel Wuyts [mailto:roel.wuyts@iam.unibe.ch] Sent: Friday, January 10, 2003 5:09 PM To: Andreas Raab Cc: squeak-dev lists.squeakfou Subject: Re: Cassowary anyone?!
I used Cassowary for checking/finding task schedules. In the end I chose another solver (not in Smalltalk) exactly for the reasons you mentioned: constraint violations are not shown, so it is hard to see what exactly is going on. Sometimes a constraint is preferred over another one (of the same priority) for a reason which is not clear. Then you end up with a network in which one constraint is satisfied, and another one of the same priority is not. In the application for which I wanted to use Cassowary this was not acceptable. Note that if the constraint is 'required' (the highest setting), then such a situation cannot rise: if it cannot be satisfied, an exception is thrown. So I ended up using Cassowary as though it had no constraint hierarchies at all... and then I could better use another solver. With a bit of more time I would have looked at it (I implemented a constraint solver before on top of Soul), but time is absolutely a scarce resource at the moment.
PS: I noticed that this mail is not very clear, depending on your knowledge of Cassowary. Just contact me for more info or the code of the experiments I did.
On Thursday, January 9, 2003, at 08:11 PM, Andreas Raab wrote:
Josh,
Thanks - by now I got various copies from people (thanks to all of you!) but this is the kind of thing that really _ought_ to be on SqueakMap (hint, hint!).
What are you thinking of doing with it?
I'm looking into different ways of end-user friendly
specification of
"object compositions" (aka: layouts). Since I know that
Cassowary was
used for CSVG and other things I was wondering if it might be a good starting base for some more end-user friendly model than we
have right
now.
This problem bugged me for a long time now - the AlignmentMorph's in Squeak used to require compositions of compositions of
compositions of
nested things and they just got in the way of "seeing the
thing you are
interested in" (namely some object of the composition). So
I tried to
generalize this into the layouts we have today but while
they are more
general they are also much harder to understand (lots of
very generic
properties with lots of unclear compositional effects).
So what I am essentially looking for is some way of
specifying "lots of
dog-simple constraints" (like: make the left edge of one
guy follow the
right edge of some other guy) and provide some interactive means for specifying it - so that rather than having a set of generic
properties
the user gets a (possibly large) number of very concrete mini-constraints. Those need to be solved efficiently and
that's when I
got into thinking about the various constraint solvers.
BTW, do you know if Cassowary can give feedback about
constraints that
cannot be resolved (perhaps even potentially)?! I'm
interested in this
because what I would like to do is give constant feedback about the composition you are building - so that when you add a
constraint which
"won't work" the system could indicate this by some means.
Cheers,
- Andreas
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Joshua 'Schwa' Gargus Sent: Thursday, January 09, 2003 7:32 PM To: Andreas Raab; Squeak Mailing List Subject: Re: Cassowary anyone?!
Hi Andreas,
My message to the list seems to have been lost, so I'm resending to you and the list.
You can get Cassowary from: http://www.cc.gatech.edu/~schwa/squeak/packages/
What are you thinking of doing with it? Joshua
Roel Wuyts Software Composition Group roel.wuyts@iam.unibe.ch University of Bern, Switzerland http://www.iam.unibe.ch/~wuyts/ Board Member of the European Smalltalk User Group: www.esug.org
Roel Wuyts Software Composition Group roel.wuyts@iam.unibe.ch University of Bern, Switzerland http://www.iam.unibe.ch/~wuyts/ Board Member of the European Smalltalk User Group: www.esug.org
Aargh, I'm having internet problems; this is the third time writing this email.
On Thu, Jan 09, 2003 at 08:11:31PM +0100, Andreas Raab wrote:
Josh,
Thanks - by now I got various copies from people (thanks to all of you!)
I think mine might be a teensy bit newer.
but this is the kind of thing that really _ought_ to be on SqueakMap (hint, hint!).
Ok, I get the hint :-)
What are you thinking of doing with it?
I'm looking into different ways of end-user friendly specification of "object compositions" (aka: layouts). Since I know that Cassowary was used for CSVG and other things I was wondering if it might be a good starting base for some more end-user friendly model than we have right now.
This problem bugged me for a long time now - the AlignmentMorph's in Squeak used to require compositions of compositions of compositions of nested things and they just got in the way of "seeing the thing you are interested in" (namely some object of the composition). So I tried to generalize this into the layouts we have today but while they are more general they are also much harder to understand (lots of very generic properties with lots of unclear compositional effects).
So what I am essentially looking for is some way of specifying "lots of dog-simple constraints" (like: make the left edge of one guy follow the right edge of some other guy) and provide some interactive means for specifying it - so that rather than having a set of generic properties the user gets a (possibly large) number of very concrete mini-constraints. Those need to be solved efficiently and that's when I got into thinking about the various constraint solvers.
BTW, do you know if Cassowary can give feedback about constraints that cannot be resolved (perhaps even potentially)?! I'm interested in this because what I would like to do is give constant feedback about the composition you are building - so that when you add a constraint which "won't work" the system could indicate this by some means.
An exception is thrown when a required constraint cannot be met. Non-required constraints that cannot be met show up as a penalty in the objective function.
I'm also attaching my Morphowary changesets, which constitute a preliminary attempt at integrating Cassowary into Morphic. My approach has a serious flaw that impacts performance. Each world cycle, constrained morphs that have had their bounds changed add an 'edit variable' to Cassowary, and remove it after the cycle is finished. Unfortunately, adding/removing these variables is slow; it would be better to use the same edit variables throughout a drag, resize, etc. operation. My approach was simpler to implement, and I didn't realize the performance implications until later.
Note that the MorphBoundsRefactoring changeset touches a lot of Morphic classes, and works best in a 3.2-4599 image. This was the second time that I did this refactoring, and it again failed to make it into the image. I don't have time now, but when I do, I'm willing to bring it up to date again if it will be included in the image.
Hope this helps, Joshua
Cheers,
- Andreas
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev-admin@lists.squeakfoundation.org] On Behalf Of Joshua 'Schwa' Gargus Sent: Thursday, January 09, 2003 7:32 PM To: Andreas Raab; Squeak Mailing List Subject: Re: Cassowary anyone?!
Hi Andreas,
My message to the list seems to have been lost, so I'm resending to you and the list.
You can get Cassowary from: http://www.cc.gatech.edu/~schwa/squeak/packages/
What are you thinking of doing with it? Joshua
Yeah, I know that this message passed your inboxes months ago, but I have > 1200 emails in my inbox. :( Nearly all of them are from the Squeak list. :)
Years ago for a HCI class with Alan Borning at the UW, I used the C++ version of Cassowary to build a Delphi UI layout manager. I used the introspection facilities in Delphi components to allow a developer to write a series of formulas describing relationships between the various UI elements. I also made a little cassowary playground that worked like a mini ThingLab.
The thing that I found myself wanting from Cassowary was the ability to specify "brittle" constraints: i.e. ones that once they were unsatisfiable they would no longer influence the outcome of the ones that were satisfiable. If I had that I would have been able to implement things like sticky widgets, where they would 'magnetically' attach to the edges of their container using nothing but constraints with different weights.
Sadly, I no longer have that work. It was with the rest of my academic artifacts that went away when the motor failed on an old Maxtor.
-andrew
On Thu, 9 Jan 2003 20:11:31 +0100, Andreas Raab andreas.raab@gmx.de wrote:
Josh,
Thanks - by now I got various copies from people (thanks to all of you!) but this is the kind of thing that really _ought_ to be on SqueakMap (hint, hint!).
What are you thinking of doing with it?
I'm looking into different ways of end-user friendly specification of "object compositions" (aka: layouts). Since I know that Cassowary was used for CSVG and other things I was wondering if it might be a good starting base for some more end-user friendly model than we have right now.
This problem bugged me for a long time now - the AlignmentMorph's in Squeak used to require compositions of compositions of compositions of nested things and they just got in the way of "seeing the thing you are interested in" (namely some object of the composition). So I tried to generalize this into the layouts we have today but while they are more general they are also much harder to understand (lots of very generic properties with lots of unclear compositional effects).
So what I am essentially looking for is some way of specifying "lots of dog-simple constraints" (like: make the left edge of one guy follow the right edge of some other guy) and provide some interactive means for specifying it - so that rather than having a set of generic properties the user gets a (possibly large) number of very concrete mini-constraints. Those need to be solved efficiently and that's when I got into thinking about the various constraint solvers.
BTW, do you know if Cassowary can give feedback about constraints that cannot be resolved (perhaps even potentially)?! I'm interested in this because what I would like to do is give constant feedback about the composition you are building - so that when you add a constraint which "won't work" the system could indicate this by some means.
Cheers,
- Andreas
-----Original Message----- From: squeak-dev-admin@lists.squeakfoundation.org [mailto:squeak-dev- admin@lists.squeakfoundation.org] On Behalf Of Joshua 'Schwa' Gargus Sent: Thursday, January 09, 2003 7:32 PM To: Andreas Raab; Squeak Mailing List Subject: Re: Cassowary anyone?!
Hi Andreas,
My message to the list seems to have been lost, so I'm resending to you and the list.
You can get Cassowary from: http://www.cc.gatech.edu/~schwa/squeak/packages/
What are you thinking of doing with it? Joshua
squeak-dev@lists.squeakfoundation.org